zoukankan      html  css  js  c++  java
  • yii2 container->set使用示例

    <?php
    class TestController extends Controller
    {
        public function actionIndex()
        {
            $order = [
                'id' => 1,
                'order_no' => 20201118
            ];
            $params = [
                'id' => 1,
                'name' => 'xiaoming'
            ];
            Yii::$container->set(TestPay::class, TestOrder::class, [$params, $order]);
            Yii::$container->invoke([$this, 'pay']);
            exit();
        }
    
        public function pay(TestPay $testPay)
        {
            $testPay->notify();
            $testPay->syncSms();
        }
    
    }
    
    abstract class TestPay
    {
        public $params;
        public $order;
    
        public function __construct($params, $order)
        {
            $this->params = $params;
            $this->order = $order;
        }
    
        abstract function validate();
    
        abstract function notify();
    
        public function syncSms()
        {
            print_r('syncSms');
            echo PHP_EOL;
        }
    }
    
    class TestOrder extends TestPay
    {
        public $params;
        public $order;
    
        public function __construct($params, $order)
        {
            parent::__construct($params, $order);
        }
    
        public function validate()
        {
            print_r('validate');
            echo PHP_EOL;
            print_r($this->params);
            echo PHP_EOL;
        }
    
        public function notify()
        {
            print_r('notify');
            echo PHP_EOL;
            print_r($this->order);
            echo PHP_EOL;
        }
    }

    效果截图【/test/index】:

  • 相关阅读:
    ByteArrayInputStream(字节数组输入流) 示例
    ASP.NET 页面对象模型
    HTML常用标记
    [elementui]上线iconfont乱码
    time与timeEnd测试运行时间
    放大镜效果
    canvas
    [css] 样式列表
    千分符
    centos源失败
  • 原文地址:https://www.cnblogs.com/-mrl/p/14003829.html
Copyright © 2011-2022 走看看