Home  >  Article  >  Backend Development  >  凌晨发贴,问个基础有关问题

凌晨发贴,问个基础有关问题

WBOY
WBOYOriginal
2016-06-13 12:12:58885browse

凌晨发贴,问个基础问题
在维护个项目,倒是没啥问题,
项目用的doitphp框架
有个问题搜索没找到答案
比如说JAVA C# delphi等等语言,
如果在继承一个类,应该要引入对应的命名空间,文件之类的
但是在这个PHP项目中,
就是直接

<br />class AccountController extends Controller<br />

他是怎么去找到基类并继承他呢?

------解决思路----------------------
一般情况下,你得先加载 Controller 类定义文件
但你用的是框架,那么加载基础类的工作已由框架完成。你只需使用即可
------解决思路----------------------
在入口文件处就require了基础的文件类
------解决思路----------------------
框架把好多操作都进行了封装,你的想法是没问题的
------解决思路----------------------
二楼正解,甚至在入口文件中会重新处理类名与文件名的关联问题,这个在YiiMailler插件中就有(包括楼主的问题,看看这个插件的代码也能解决)
------解决思路----------------------
这个框架比Thinkphp还简单
doit.class.php----> 281行 加载 Controller类   self::loadFile(DOIT_ROOT . 'core/Controller.class.php');
doit.class.php----> 286行 加载经过路由处理出来的当前控制器 self::loadFile(CONTROLLER_DIR . $controller . '.class.php');
doit.class.php----> 312行 执行当前控制器默认方法  $_app[$appId] = $appObject->$action();

------解决思路----------------------
DoitPHP.php 应该是把核心的文件初始化加载。
------解决思路----------------------
看看入口文件加载了什么。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn