今天我开始研究一个以前开发人员没有完成的项目。由于他/她没有使用任何框架,但硬编码php,首先我想了解他是如何得到他的"框架"建立。所以我把他的索引作为某种门户。以下是此代码的示例:
<?php session_start();
ob_start();
require_once 'config.php'; //config file
require_once 'global_functions.php'; //some functions we use in project
require_once 'dil/'.$lang.'/main.php'; //language file
switch($redirect){
case "test" :
require_once 'test.php';
break;
case "login" :
require_once 'login_page.php';
break;
//like 50 cases here
default://i added this there was no default page before, tell if i did wrong.
if (!isset($_SESSION['LoginName']))
{
$yonlendir = 'login';
require_once 'login_page.php';
break;
}else{
$yonlendir = 'main';
require_once 'main.php';
break;
}
break;
}
ob_end_flush();
?>
我想学习的是,这是处理网址路由的有效且可靠的方法吗?如果是的话,有没有提到这个的文件,我可以检查一下吗?
提前致谢。
更新: global_functions.php示例代码,有超过50个函数,但没有类......似乎他被项目所淹没,因为那根本不是OOP ..
<?php
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));
return date("d.m.Y", $date);
}
function check_get_req($value){
return $value;
$reparray_var1 = array("%20","%21","%22","%23","%24","%25","%26","%27","%28","%29","%3B","%FC","%E9","%2F","%3F","%E1","'", " ");
$reparray_sil1 = array(" ","!","\"","#","$","%","&",""","(",")",";","Ü","é","-","?","á",""", "");
return str_replace($reparray_var1,$reparray_sil1,$value);
}
//some calculations and array functions goes on and on....
?>
答案 0 :(得分:0)
我建议您可以轻松地将代码移至Yii2
框架。它很适合你的情况。
https://github.com/yiisoft/yii2
Yii的最低要求是您的Web服务器支持PHP 5.4。
或使用pagekit
的趋势非常好。
答案 1 :(得分:0)
如果你想继续使用这个旧代码,你应该为自己做一些重构做好准备。例如,如果$ request值与文件名匹配,则可以使用以下内容轻松替换switch语句:
$file_to_include = $redirect.'.php';
if(!empty($redirect)) {
include_once ($file_to_include);
} else {
if (!isset($_SESSION['LoginName'])) {
$yonlendir = 'login';
include_once 'login_page.php';
}else{
$yonlendir = 'main';
include_once 'main.php';
}
}
但是在这种情况下,我还建议检查文件是否可用file_exists($file_to_include)
并且au contraire转到默认页面。故事可能变得难看。
重用或重构这样的函数式编程意大利面条代码真的很难。尝试将整个东西迁移到一些轻量级框架(这将花费你更少的nervs :))