我正在使用Yii框架,(之前在CakePHP中有类似的问题)因为我想为HTML页面创建一个解析器。将会有一些不同的页面需要被删除和解析,因此我正在考虑使用设计模式来实现这一点,可能是"策略模式"。
但我的问题是,我在哪里将这个功能添加到Yii?它不是模型或控制器?我将最有可能创建一些类来解析不同的页面。这是我创建组件的地方吗?或者Yii中的其他地方我可以添加此代码并从控制器中使用它吗?
答案 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..