我有一個前端控制器,它可以設置頁面中的各種元素。但是,我想到可能有些元素的順序不正確。我的意思是,某些元素可能需要在其他元素之前使用/聲明。正確控制前端控制器的代碼?
或者換句話說:我是否以最好/正確的方式構建了文件。例如session_start()應該在'ini_set()之後'等等。
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
$mytimeout = 720 * 60; // (12hrs*60m=720) // minutes * 60
session_set_cookie_params($mytimeout);
$sessdir = "../application/data";
ini_set('session.save_path', $sessdir);
session_cache_expire($mytimeout/60);
ini_set('session.gc_maxlifetime', $mytimeout);
session_start();
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
require_once('../application/models/front.php');
require_once('../application/models/icontroller.php');
require_once('../application/models/view.php');
require_once('../application/models/db.php');
require_once('../application/models/sconfig.php');
require_once('../application/models/acl.php');
require_once('../application/controllers/index.php');
require_once('../application/controllers/user.php');
require_once('../application/controllers/error.php');
require_once('../application/controllers/blog.php');
require_once('../application/controllers/about.php');
function exception_handler($exception) {
echo "Sorry something went wrong; And or we couldnt find what you requested.<br />We suggest you go back to our <a href=\"/\">home page</a> and try again.<br />We have logged this request in order to provide a better service.<br /> *** ". $exception->getMessage()." ***";
}
set_exception_handler('exception_handler');
$fc = FrontController::getInstance();
$c=$fc->getController();
$a=$fc->getAction();
$users=ACL::getInstance();
$sid=session_id();
if(isset($_SESSION['HTTP_USER_AGENT'])){
if($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])){
session_regenerate_id(TRUE);
$_SESSION=array();
$users->removeUser($sid);
if(($c!='error')&&($a!='badsession')){
$fc->redirect("error/badsession");
}
}
}
else{
$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
}
$dbh=DBConnection::getInstance();
setcookie('ct', 1,0,"/");
$config = Configuration::getInstance();
$cf=array();
$cf=$config->getall();
$users=ACL::getInstance();
$users->addUser();
$users->removeOld();
$front = FrontController::getInstance();
$front->route();
echo $front->getBody();
你的代碼是否工作或者是否會產生異常?順便說一句,你已經在同一個腳本中分配了一個'FrontController'實例3次。 'ACL'類似的模式。 – Bart 2013-03-16 14:15:18
@本地代碼工作正常:)我只是想知道如果我已經以最好的方式構建文件。例如session_start()應該在'ini_set()之後'等等。是的,有一些多餘的單身人士。 – Chris 2013-03-16 16:58:22
更新了我的回答 – Bart 2013-03-16 19:41:15