Wiki
Clone wikiplugsystem / Плагины и как они устроены
В этой записи постараюсь рассказать как устроены плагины.
Если структурно то сам плагин имеет следующую структуру
/nameplugin/config.php главный файл где прописываются параметры плагина
/nameplugin/controllers/backend/Nameplugin.php - контроллер backend
/nameplugin/controllers/frontend/Nameplugin.php - контроллер backend
/nameplugin/controllers/cron/Nameplugin.php - контроллер backend
/nameplugin/config.php
#!php <?php namespace plugins\nameplugin; use plugsystem\models\AbstractConfig; class config extends AbstractConfig { public function __construct() { parent::__construct("nameplugin", "routeplugin", true); } }
Пример frontend контроллера
/nameplugin/controllers/frontend/Nameplugin.php
#!php <?php namespace plugins\nameplugin\controllers\frontend; class Nameplugin extends \plugsystem\core\FrontendController { public function actionTest() { echo "test"; } }
/nameplugin/controllers/frontend/SecondNameplugin.php
#!php <?php namespace plugins\nameplugin\controllers\frontend; class SecondNameplugin extends \plugsystem\core\FrontendController { public function actionTest() { echo "test"; } }
Пример backend контроллера
/nameplugin/controllers/backend/Nameplugin.php
#!php <?php namespace plugins\nameplugin\controllers\backend; class Nameplugin extends \plugsystem\core\FrontendController { public function actionTest() { echo "test"; } }
/nameplugin/controllers/backend/SecondNameplugin.php
#!php <?php namespace plugins\nameplugin\controllers\backend; class SecondNameplugin extends \plugsystem\core\FrontendController { public function actionTest() { echo "test"; } }
При переходе по ссылке http://site.ru/pathtoadmin/routeplugin/test будет вызываться Nameplugin с методом actionTest При переходе по ссылке http://site.ru/pathtoadmin/routeplugin/secondtest будет вызываться SecondNameplugin с методом actionTest
Пример cron контроллера
/nameplugin/controllers/cron/Nameplugin.php
#!php <?php namespace plugins\nameplugin\controllers\cron; class Nameplugin extends \plugsystem\core\FrontendController { public function actionTest() { echo "test"; } }
/nameplugin/controllers/cron/SecondNameplugin.php
#!php <?php namespace plugins\nameplugin\controllers\cron; class SecondNameplugin extends \plugsystem\core\FrontendController { public function actionTest() { echo "test"; } }
Для вызова Nameplugin с методом actionTest необходимо использовать /yii hello/index /routeplugin/test
Для вызова SecondNameplugin с методом actionTest необходимо использовать /yii hello/index /routeplugin/second/test
Updated