qingbing / php-application
提供application、controller、action的基类,基本已包含web的框架雏形
This package's canonical repository appears to be gone and the package has been frozen as a result.
1.0.1
2019-06-02 02:32 UTC
Requires
- qingbing/php-abstracts-component: >=1.0, <2.0
- qingbing/php-abstracts-store: >=1.0, <2.0
- qingbing/php-config: >=1.0, <2.0
- qingbing/php-helper: >=1.0, <2.0
Requires (Dev)
- qingbing/pf-components-error-handler: >=1.0, <2.0
This package is auto-updated.
Last update: 2021-03-01 00:23:26 UTC
README
描述
提供application、controller、action的基类,基本已包含web的框架雏形
注意事项
- 提供application、controller、action的抽象基类
- 关于 application 基类共有的属性,可配置在 "application.pub"中
- application
- 对于 application的配置参考 qingbing/php-config 组件,配置文件名为"application.ini"下的主空间
- 对于应用,必须继承"\Abstracts\Application"
- 对于不同的应用,可以重写 public function handleException(\Exception $e) 来处理异常
- 对于不同的应用,可以重写 public function handleError($code, $message, $file, $line) 来处理错误
- 对于找不到controller的情况,可以重写 protected function missingController($route),来改变默认的异常抛出
- controller
- 所有的控制器类,必须继承"\Abstracts\BaseController"
- 对于找不到对应的controller.action时,可以重写 public function missingAction($actionID),来进行重分配
- 可能不同的mode的action参数不一样,不一样的时候需要重写 public function getActionParams()
- action
- 对于controller中的action,可以定义参数
- 可提供在控制器中配置单独的actions
- 编写自由action类,必须继承"\Abstracts\Action"
- component
- 对于application中的component的业务参考 "qingbing/php-component" 组件写法
- 每一个component都可以是一个独立的组件存在
- 在application中通过componentConfig属性进行定义,必须指定"class",对于组件的配置,参考"qingbing/php-component"
- 可以通过"$app->{$componentId}" 或 "$app->getComponent($componentId)" 方式进行调用
使用方法
1.pf 使用方法
// 获取组织名称 var_dump(PF::name()); // 获取组织版本 var_dump(PF::version()); // 获取组织主页 var_dump(PF::home()); // 获取组织版权 var_dump(PF::copyRight());
2.app使用方法
// 获取应用名称 var_dump(PF::app()->name); // 获取应用版本 var_dump(PF::app()->version); // 获取应用版本 var_dump(PF::app()->copyRight); // 获取应用主页 var_dump(PF::app()->home);
3. controller和action 的使用
参考源码包"test/*.php"里的使用方法
====== 异常代码集合 ======
异常代码格式:1005 - XXX - XX (组件编号 - 文件编号 - 代码内异常)
- 100500101 : application 只能被实例化一次
- 100500201 : 路由"{route}"找不到对应的控制器
- 100500301 : "{controller}"执行action为空
- 100500302 : 路由"{controller}.{action}"不存在
- 100500303 : Action "{class}" 必须要继承基类 "\Abstracts\Action"
- 100500304 : 对象配置必须执行"class"元素
- 100500305 : 无效的action"{controller}.{action}"
- 100500306 : "{controller}.{action}"请求参数错误