ZentaoFramework的代码组织

1,App的公用配置文件

跟module目录平齐的config目录内有config.php和my.php,都可以定义配置项。

在module的controller和model的代码中,可以通过$this->config这种方式访问,这是因为在它们的构造函数中,都有这样的定义:

(出自framework/control.class.php)

global $app, $config, $lang, $dbh;
$this->app    = $app;
$this->config = $config;
$this->lang   = $lang;
$this->dbh    = $dbh;

 

而这个全局的$config,是在router内被初始化:

(出自framework/route.class.php中loadConfig())

global $config;
if(!is_object($config)) $config = new config();

 

在配置文件中诸如此类的定义:

$config->views  = ',html,json,';          // Supported view formats.
$config->themes = 'default';  

在初始化完$config后,会通过include关键字被加载进来,实现声明和定义类成员:

(出自framework/route.class.php中loadConfig())

foreach($configFiles as $configFile)
{
            ……
            include $configFile;
            ……

}

$this->config = $config;

 

从上面可以看出,PHP这种异常灵活的语言接近javascript,假如不遵从一个框架,代码可读性一定会非常差。

 

2,从PHP到html

每个模块、每个controller中的method都可以创建跟method名字相同的html文件,处理html文件的过程在control类中:

(framework/control.class.php的parseDefault())

extract((array)$this->view);
ob_start();
include $viewFile;
if(isset($hookFiles)) foreach($hookFiles as $hookFile) include $hookFile;
$this->output .= ob_get_contents();
ob_end_clean();

从extract()可以看出,所有跟html相关的PHP变量,都要放在$this->view对象中。

而include关键字实现加载html页面,include关键字的说明是这样的:

当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此原因,目标文件中应被当作 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中。

转载于:https://www.cnblogs.com/tara/archive/2012/11/20/2779177.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值