【phpcms-v9】phpcms-v9应用程序创建类phpcms/libs/classes/application.cla
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-24 09:55:36 浏览: 评论:0
【phpcms-v9】phpcms-v9应用程序创建类phpcms/libs/classes/application.class.php文件分析.
- <?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)) {//以_开头的方法都是protected类型的方法
- 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 (emptyempty($filename)) $filename = ROUTE_C;//控制器名
- if (emptyempty($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)) {//如果存在 MY_*控制器文件
- $classname = 'MY_'.$filename;//主要用于二次开发的控制器文件
- include $mypath;//引入MY_*.php控制器文件
- }
- if(class_exists($classname)){//如果控制器类名存在的话
- return new $classname;//实例化控制器类对象
- }else{
- exit('Controller does not exist.');//提示 控制器不存在
- } //开源代码phpfensi.com
- } else {
- exit('Controller does not exist.');//提示 控制器不存在
- }
- }
- }
- ?>
Tags: phpcms应用程序 phpcms创建类
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)