> 백엔드 개발 > PHP 튜토리얼 > 凌晨发贴,问个基础有关问题

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

WBOY
풀어 주다: 2016-06-13 12:12:58
원래의
921명이 탐색했습니다.

凌晨发贴,问个基础问题
在维护个项目,倒是没啥问题,
项目用的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 应该是把核心的文件初始化加载。
------解决思路----------------------
看看入口文件加载了什么。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿