- 测试Behavior
- 建议
- 建议
测试Behavior
Behavior 遵循TP的自动加载方式,所以直接创建对应的Behavior 并填写模拟参数调用run()方法即可
样例:
行为PaidChongzhiOrderBehavior.class.php
/*** 支付充值订单后*/class PaidChongzhiOrderBehavior extends BaseBehavior {/*** @param PaidOrderBehaviorParam $param*/public function run(&$param) {parent::run($param);//你的代码}}
Behavior参数类PaidOrderBehaviorParam.class.php
class PaidOrderBehaviorParam extends BaseBehaviorParam {/*** @var 订单号*/public $orderid;}
调用样例:
<?phpnamespace Payment\Controller;use Common\Controller\Base;use Payment\Behavior\PaidChongzhiOrderBehavior;use Payment\BehaviorParam\PaidOrderBehaviorParam;class TestController extends Base {function testPaidChongzhiOrderBehavior(){$b = new PaidChongzhiOrderBehavior();$bp = PaidOrderBehaviorParam::create(['orderid' => '2016111011144970299']);$b->run($bp);}}
建议
为每个行为都配合写一个 PaidOrderBehaviorParam ,这样明确了,执行该行为的回调函数时
到底含有哪一些参数
BaseBehavior.class参考如下(未来将会内置到 CMS 中):
<?phpnamespace Common\BehaviorParam;/*** 行为回调参数**/class BaseBehaviorParam {function __get($name) {return $this->$name;}function __set($name, $value) {$this->$name = $value;}/*** 创建参数实例* @param array $data* @return mixed*/static function create(array $data) {$class = __CLASS__;$param = new $class;foreach ($data as $key => $val){if(empty($param->$key)){$param->$key = $val;}}return $param;}}
