此框架开始设计于2013年,当时公司正在做一个企业项目,在此项目中甲方明确要求使用PHP语言,而项目中所有人员均为Java程序员,并且零PHP基础。 项目周期十分紧张,如果在去学习一些比较成型的PHP框架,开发周期无法完全把控,只能开发一个和现有的JAVA框架类似,使这些项目成员以最快的速度使用并开发。框架最大程序上的兼容了Struts的一些逻辑,使用起来看着有点像Struts. 框架经过几次小的修改后最终成型,并想到了开源。也就上传上来和大家共享一下了。 注:不管是PHPER还是JAVAER你们可以尽情的喷啊喷,(反正我也不在乎,框架名字都改成“找骂”了,人不要脸天下无敌,哈哈。)。但是如果你们有更好的建议,我也会虚心接受。☺☺☺
下载项目并解压到你的磁盘目录 /the_path_user_project
并配置Apache vhosts:
<VirtualHost htd.dimain.host:80> ServerAdmin domainadmin@126.com DocumentRoot "/the_path_user_project" ServerName the.dimain.host ServerAlias the.dimain.host <Directory "/the_path_user_project"> Options Indexes FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+) index.php/$1 [L] AllowOverride all Require local Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost htd.dimain.host:80> ServerAdmin domainadmin@126.com DocumentRoot "/the_path_user_project/htdocs" ServerName htd.dimain.host ServerAlias htd.dimain.host </VirtualHost>
默认配置(Config.class.php):
// 系统默认加载配置 $autoload = array("config", "database", "route"); //开发模式 $config['debug'] = false; //默认请求解析器 $config["request"] = "Request"; // 默认系统控制器 $config['default_controller'] = 'index'; // 系统默认控制方法 $config['default_controller_method'] = 'index'; // 系统默认错误页面 $config['error_page'] = array( "404" => "/system/error/404.php", "500" => "/system/error/500.php" ); //默认返回结果显示控制器 $config["views_renderer"]["controller"] = array( "html" => "IncludeViewRenderer", "htm" => "IncludeViewRenderer", "php" => "PHPViewRenderer", "tpl" => "SmartyViewRenderer" );
自动加载配置项
在文件:/application/config/config.php
$autoload = $autoload + array("redis", "zeromq", ...);
开发模式
在文件:/application/config/config.php
$config['debug'] = true;
默认错误页面控制
在文件:/application/config/config.php
if (!$config["debug"]) { //系统默认定义的错误页面 $config['error_page'] = array( "404" => "/application/view/404.html", "500" => "/application/view/500.html" ); }
默认首页控制
在文件:/application/config/config.php
$config['default_controller'] = 'test'; $config['default_controller_method'] = 'test';
路由表
在文件:/application/config/route.php
$config["route"] = array( "index" => "test/html", "smarty" => "test/smarty", "goto/*" => "test/$1" );
注:在路由表中“*”等价正则表达式(/w+)
请求处理器(Request)扩展
请求处理控制器的扩展需要下面三步: 1、在文件夹/application/library中编写自己的请求控制类CustomRequest并继承Request 2、在配置文件/application/config/config.php中配置使用默认请求处理器
$config["request"] = "CustomRequest";
3、在/application/config/autoload.php中注册类的自动加载机制
spl_autoload_register(function ($class) { if($class == "CustomRequest"){ include_once ROOT . "/application/library/request.php"; } ... });
结果控制器(ViewRenderer)扩展
结果控制器的扩展需要以下三步: 1、在/application/library目录中编写结果控制器CustomViewRenderer并继承ViewRenderer
class CustomViewRenderer extends ViewRenderer { public function display() { @header("Content-Type:text/plain; charset=UTF-8"); echo file_get_contents($this->viewPath($this->view)); } }
2、在/application/config/config.php中注册结果控制器
$config["views_renderer"]["controller"] = $config["views_renderer"]["controller"] + array( "txt" => "CustomViewRenderer" );
3、在/application/config/autoload.php中注册类的自动加载机制
spl_autoload_register(function ($class) { if($class == "CustomViewRenderer"){ include_once ROOT . "/application/library/renderer.php"; } ... });
如果你觉得次框架开源使用或者您已经在你的项目中使用(估计不大可能),那请联系作者添加到【使用者友情链接】中去,当然如果你愿意的话。
======= # zhaoma-framework