php框架 - 我使用组件吗?

时间:2016-01-22 15:49:33

标签: php cakephp model-view-controller yii

我正在使用Yii框架,(之前在CakePHP中有类似的问题)因为我想为HTML页面创建一个解析器。将会有一些不同的页面需要被删除和解析,因此我正在考虑使用设计模式来实现这一点,可能是"策略模式"。

但我的问题是,我在哪里将这个功能添加到Yii?它不是模型或控制器?我将最有可能创建一些类来解析不同的页面。这是我创建组件的地方吗?或者Yii中的其他地方我可以添加此代码并从控制器中使用它吗?

1 个答案:

答案 0 :(得分:0)

你可以在Yii2框架中创建一个exented the Component class

的组件
namespace app\components;

use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;

class MyComponent extends Component
{
    public function test()
    {
    echo "Test Component ";
    }

}

在config main.php中添加组件

在config / web.php文件中添加您的组件

例如:

'components' => [

     'mycomponent' => [

        'class' => 'app\components\MyComponent',

        ],
       ]
   .......

您可以在控制器中与您的组件相关联

namespace app\controllers;
use Yii;

class TestController extends \yii\web\Controller
{
   public function actionTest()
   {
      Yii::$app->mycomponent->Test();
    }

}

您可以参考此doc of Yii2和/或this sample..