A框架 第三步 先加载父类,如果加载子类.立马报错.里面继承的父类还没有导入
先导入 超级父类 如object.php ----controller.php 框架文件中
后导入 当前请求的controller的抽象父类(controller_abstract)
最后 导入当前controller
http://www.acms.com/admin/?app=system&controller=admin&action=login
先进入admin目录,后面的参数忽略掉
如果admin目录下有index.php文件就执行.否则执行index.html文件 ,(服务器配置好,默认文件)
url参数在index.php-->主程序cmstop.php->router.php中再接收
核心core中的router路由类--负责接收所有url发送的get请求.
交给主程序cmstop--拼接引入当前请求的父类, 在引入当前请求控制器文件--并(拼接类名)实例化
$this->controller = $_GET['controller'];
$this->args = $_GET;
主程序cmstop中 一旦require_once($file)导入一个控制器.并且该控制器中有继承extends controller_abstract
必定触发loader中的自动加载方法,需要手动写(__autoload())-->自动加载extends后面的父类controller_abstract
function __autoload($class)
{
return loader::load($class);
}
自动加载除了加载cache_storge类.
其他控制器.只是触发了__autoload方法.对方接收到了controller_abstract抽象父类名称.实际没有加载成功(没有通过这里加载)
当前请求的控制器. 按照新格式.已经实现了自动导入
public function set_controller($controller)
{
if ($this->client === 'admin')
{
$this->class = 'controller_admin_'.$controller;
$file = $this->app_dir.'controller'.DS.'admin'.DS.$controller.'.php';//如果是后台进入,放置admin目录下(入口时.实例
化cmstop并传递admin参数,用来确定访问入口)
}
else
{
$this->class = 'controller_'.$controller;
$file = $this->app_dir.'controller'.DS.$controller.'.php';
}
if (!file_exists($file)) $this->showmessage("$controller 控制器不存在");
if (!class_exists('controller_abstract'))
{
require_once($this->app_dir.'controller'.DS.'abstract.php');//A 先导入父类抽象类
}
require_once($file);////B再导入当前请求控制器
$this->controller = $controller;
}
01先设置好运行的模块.同时保留这个模块的路径.给导入控制器使用
public function set_app($app)
{
$this->app_dir = CMSTOP_PATH.'apps'.DS.$app.DS;//设置好当前请求模块路径.
$this->app = $app;
loader::set_app($this->app);
}
admin后台入口文件index.php-->(导入cmstop实例化传递admin)
到主程序cmstop.php-->引入framwork.php框架文件
-->已经导入所有父类(核心类core中的)-->
object.php
controller.php.model.php.view.php以及子类template.php
-->其他控制器和抽象类.都是在cmstop接收到请求后.才导入
A框架 第三步 先加载父类,如果加载子类.立马报错.里面继承的父类还没有导入的更多相关文章
- python︱模块加载(pip安装)以及pycharm安装与报错解决方式
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...
- 马虎将classname加到了id属性中,造成报错
今天做了一个瀑布流布局的小例子,自己在写代码的过程中一直报cannot read property 'style' of null,百度之后说是页面还没有加载完,但是我看了代码是写在window.on ...
- 从 0 开始手写一个 Mybatis 框架,三步搞定!
阅读本文大概需要 3 分钟. MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展,高内聚,低耦合的规范的代码. 本文完成的Mybatis功能比较简单,代码还有许 ...
- Servlet(三):获取表单数据、解决乱码和报错问题
在了解了servlet的生命周期以及运行过程后,再来动手写一个小例子,加深对servlet的理解. 一.需求说明 在用户注册信息页面,输入用户名.密码.性别.邮箱等一些信息后,页面返回刚刚填写的信息. ...
- 使用laravel框架开发接口时ajax post请求报错419
nginx服务器,使用laravel框架开发后台接口.get请求正常,但是post请求一直报错.H5和APP都不成功,code=419. 解决办法: 找到 VerifyCsrfToken.php文件( ...
- 三步解决 vue 按需加载
1 webpack 的 output 配置 chunkFleName 树干名称: " chunks/[name]-[chunkhash:8].js " 这一步是配合第三步, 生 ...
- Android 框架练成 教你打造高效的图片加载框架(转)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41874561,本文出自:[张鸿洋的博客] 1.概述 优秀的图片加载框架不要太多, ...
- Android 框架练成 教你打造高效的图片加载框架
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41874561,本文出自:[张鸿洋的博客] 1.概述 优秀的图片加载框架不要太多, ...
- 关于pythoh面向过程开发人员三步转面向对象的补充,再加一步,四步走战略。转面向对象也可以有固定公式。
前言: oop非常非常非常重要.搞不懂oop,就玩不了python,就算能写也一定是写代码时候喜欢靠猜瞎猫碰死老鼠写得心很虚.为什么这么说呢,我也是从面向过程编程到死走过来的,一路def到死,一看到有 ...
随机推荐
- Location-aware Associated Data Placement for Geo-distributed Data-intensive Applications--INFOCOM 2015
[标题] [作者] [来源] [对本文评价] [why] 存在的问题 [how] [不足] assumption future work [相关方法或论文] [重点提示] [其它]
- 安装mysql的遇到的问题
源:安装用的是mysql官网的binary包. 之前装mysql都是直接放到/usr/local,就想试试放到其他地方,然后..就悲剧了. 安装步骤没啥说的,官网上有.因为放置的位置不一样所以有些执行 ...
- PHP面向对象编程 对象的基本概念 PHP面向对象的基本实践 PHP面向对象的高级实践 PHP面向对象的特殊实践
再次梳理一下面向对象编程的要点. 此文是以php为例,但思想是通用的. 总结的PHP面向对象编程笔记 对象的基本概念 对象的基本构成 对象包含两部分 一.对象的组成元素 是对象的数据模型,用于描述对象 ...
- php 编程效率(2)
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静态方法的 ...
- ServiceContract,OperationContract
代码如下 [ServiceContract] //服务协定定义 using System.ServiceModel; public interface IInterface1 { [Operation ...
- mongodb部署单节点(一)
部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu.com/s/1jIQAGlw 密码:l7pf) 第一步:上传该文 ...
- RabbitMQ高可用配置(Haproxy + Keepalived)
网络结构如下图: 共有104.105.106三台RabbitMQ Server,互为集群 其中104和105安装了Haproxy,每个Haproxy承担三台RabbitMQ server的负载均衡 两 ...
- Git回退到服务器某个版本正确姿势
背景: Git协作中,成员不可避免地会提交一些错误的版本,由于Git相比SVN引入了本地仓库,操作会相对复杂,以下为姿势分解 找一个源文件RspUtils.java,加上一行注释 //测试回退git服 ...
- 第九十八节,JavaScript语法、关键保留字及变量
JavaScript语法.关键保留字及变量 学习要点: 1.语法构成 2.关键字保留字 3.变量 任何语言的核心都必然会描述这门语言最基本的工作原理.而JavaScript的语言核心就是ECMAScr ...
- php 异步
.post(handle,{username: username.val(),content: content.val()},function(data){ },'json');