PHP简易框架一套
做过.net朋友用过微软的企业库、Subsnoic或其他之类的第三方或自己封装好的程序集;
Java的朋友用过J2EE或Struts或Hibernate这类的代码模型;
对于经过代码设计模式,花了时间去付出实践的代码结构,我们喜欢叫为框架;
我这里整理一份我做PHP开发时用到的代码模型,一个Simple framework Share:
目录结构:
核心思路: 改Simple framework 是设想程序所有入口都从一个入口进入(index.php),然后根据逻辑不同进行将程序分发到不同的处理文件中,然后再处理文件中指定程序渲染结果路径
核心知识点:全局变量$_SERVER对url相关解析、ReflectionClass凡属类使用
反射类使用代码片段:
//实例化执行Simple frameword 中 route function $front = FrontController::getInstance(); $front->route(); //核心发射解析
public function route() { if ( class_exists($this->getController())) { $rc = new ReflectionClass($this->getController()); if ($rc->implementsInterface('IController')) { if ($rc->hasMethod($this->getAction().'Action')) { $controller = $rc->newInstance(); $method = $rc->getMethod($this->getAction().'Action'); $method->invoke($controller); } else { throw new Exception("Action"); } } else { throw new Exception("Interface"); } } else { throw new Exception("Controller"); } }
分发执行不同目录路径文件的代码片段:
function myLoader($class) { if (strstr($class, 'Controller')) { require_once ( dirname(__FILE__).'/controllers/'.$class.'.php'); } else if (strstr($class, 'Model')) { require_once ( dirname(__FILE__).'/models/'.$class.'.php'); } } spl_autoload_register("myLoader");
引用的方式使用该Simple framework :
require_once(dirname(__FILE__).'/framework_wap/index.php');
web Apllaction 执行后的url格式为: host/index.php/controllers/Action/key1/values/key2/values/.......
Simple framework根据需要可用( 分发执行不同目录路径文件的代码片段)中的思路来扩展