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根据需要可用( 分发执行不同目录路径文件的代码片段)中的思路来扩展

 framework.zip

posted @ 2010-10-27 17:57  小肖程序  阅读(646)  评论(0编辑  收藏  举报