12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- /**
- * application.class.php PHPCMS应用程序创建类
- *
- * @copyright (C) 2005-2010 PHPCMS
- * @license http://www.phpcms.cn/license/
- * @lastmodify 2010-6-7
- */
- class application {
-
- /**
- * 构造函数
- */
- public function __construct() {
- $param = pc_base::load_sys_class('param');
- define('ROUTE_M', $param->route_m());
- define('ROUTE_C', $param->route_c());
- define('ROUTE_A', $param->route_a());
- $this->init();
- }
-
- /**
- * 调用件事
- */
- private function init() {
- $controller = $this->load_controller();
- if (method_exists($controller, ROUTE_A)) {
- if (preg_match('/^[_]/i', ROUTE_A)) {
- exit('You are visiting the action is to protect the private action');
- } else {
- call_user_func(array($controller, ROUTE_A));
- }
- } else {
- exit('Action does not exist.');
- }
- }
-
- /**
- * 加载控制器
- * @param string $filename
- * @param string $m
- * @return obj
- */
- private function load_controller($filename = '', $m = '') {
- if (empty($filename)) $filename = ROUTE_C;
- if (empty($m)) $m = ROUTE_M;
- $filepath = PC_PATH.'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.$filename.'.php';
- if (file_exists($filepath)) {
- $classname = $filename;
- include $filepath;
- if ($mypath = pc_base::my_path($filepath)) {
- $classname = 'MY_'.$filename;
- include $mypath;
- }
- if(class_exists($classname)){
- return new $classname;
- }else{
- exit('Controller does not exist.');
- }
- } else {
- exit('Controller does not exist.');
- }
- }
- }
|