一点感想

来源:互联网 发布:淘宝主图背景图片素材 编辑:程序博客网 时间:2024/04/20 11:01

看了VTiger这个东东也有几天了(-_-!),由于只需要对软件的部分功能做改进,因此重点针对一个模块进行了阅读,稍微看了一下其它模块,程序的组织结构应该是大同小异的.
做网页相关的东东也不久,呵呵,但是感觉VTiger对网页的转向的处理是比较特殊的,它的所有的页面的转向都是像index.php提交参数,再转向相应模块的.
如下所示:Index.php
----------------------------------------------------------------------------------------------------------------------
if(isset($action) && isset($module))
{
 $currentModuleFile = 'modules/'.$module.'/'.$action.'.php';
 $currentModule = $module;
}
elseif(isset($module))
{
 $currentModule = $module;
 $currentModuleFile = $moduleDefaultFile[$currentModule];
}
else {
        header("Location: index.php?action=$default_action&module=$default_module");
    exit();
}
----------------------------------------------------------------------------------------------------------------------
设计的参数有module,action等
当actoin不为空时,有下面:
----------------------------------------------------------------------------------------------------------------------
 >>>>>>>>>$currentModuleFile ='modules/'.$module.'/'.$action.'.php';<<<<<<<<<<<<
 >>>>>>>>>$currentModule = $module;<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------------------------
当有对模块操作的动作时,利用以上这种方式将需要转向的模块动作文件:
----------------------------------------------------------------------------------------------------------------------
if ($display == "No")
{
 $display == "";
}
else
{
 include($currentModuleFile);
}
----------------------------------------------------------------------------------------------------------------------
由于各个模块操作的文件都是包含进来的,因此由PHP的灵活性,在这些模块里就可以直接引用在index.php里头设置的全局变量了
而当action为index时,则直接转向各个模块的index.php文件
----------------------------------------------------------------------------------------------------------------------
foreach ($moduleList as $mod) {
 $moduleDefaultFile[$mod] = "modules/".$currentModule."/index.php";
}
----------------------------------------------------------------------------------------------------------------------
而一般的modules文件夹中的主module文件都是定义为该module的基类,其中封装该module涉及的变量和操作方法.
由上文,程序定向的时候直接转向相应的PHP文件,因此操作起来思路非常清晰,也非常方便,但是PHP的灵活性在其中也有演变成复杂的趋势,由于全局变量的使用,因此经常要花很大的功夫来查找全局变量的位置,因此控制全局变量的使用也是VTiger的一个特点吧,个人感觉,只有少数必要的变量,如日志,数据库连接等放在了index.php中

明天开始改代码了,感觉php确实是为动态网页所设计的,希望能触类旁通,更深的理解更多开发方面的理念吧V_V

原创粉丝点击