qingbing/php-application

提供application、controller、action的基类,基本已包含web的框架雏形

1.0.1 2019-06-02 02:32 UTC

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}"请求参数错误