php轻量化架构与编码约定

[img]http://dl2.iteye.com/upload/attachment/0127/2004/94defd80-bfef-307d-b08c-a47255a570d5.jpg[/img]

架构原则:
一切都是对象,摒弃函数和全局变量([b]面向过程和面向函数自有其特定优势,而使用JAVA语言一样可以编写出优质或者拙劣的面向过程和面向函数的代码,php这里只为实现自动类文件装载[/b])。
一切都有命名空间。

具体实现:
ROOT为站点根目录

代码片段

#ROOT/.htaccess
#将请求从站点根目录转发到项目根目录
RewriteRule .* /com/kb/$0 [L]



#ROOT/com/kb/.htaccess
#约定ROOT/com/kb/app下为php文件所在目录,所有php请求转发到ROOT/com/kb/index.php
#其余目录绝无php文件
RewriteRule ^app.*\.php$ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]


所有php文件如下约定:
除视图模块php和ROOT/com/kb/index.php外,其余php文件每个文件对应一个类,命名空间、类名和文件路径保持一致,比如ROOT/com/kb/app/Xxx.php命名空间为\com\kb\app


//ROOT/com/kb/index.php代码片段
//实现类自动装载的方法之一
namespace {

function __autoload($classname) {
$class_path = \str_replace('\\', DIRECTORY_SEPARATOR, $classname);
$file = __DIR__ . '/../../' . $class_path . '.php';
if (\file_exists($file)) {
require_once($file);
if (\class_exists($classname, false)) {
return true;
}
}
return false;
}

}


在此基础上实现完全的MVC模式。

ROOT/com/fall下为常用的工具类集合


[b]相关阅读[/b]:
我的java web架构方案 [url]http://afadgaeg.iteye.com/blog/2395132[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值