Приветствую всех вошедших
По средствам консоли охота сделать обращение не к папке commands, а к классу лежащему в другой папке ( в моем случае testpack )
Можно ли такое реализовать?
p.s. Ну ест-но средствами yii2, без классических приёмов php include/require )
UPD
//дополнительная папка с контроллерами в YII2 basic
'controllerMap' => [
'command' => [
'class' => 'yii\testpack\PrivetController',
'namespace' => 'privet',
],
],
//обращение php yii privet
//сам контроллер - копия hello world, только переписано на privet. из родной папки ест-но работает, а вот из testpack - нет
//файл ест-но на месте
$ php yii privet
An Error occurred while handling another error:
exception 'ReflectionException' with message 'Class yii\testpack\PrivetController does not exist'
Исправляю ответ, скорее всего вы не так сделали, сделал только что у себя демо, у меня работает ! Давайте по порядку. Config
'controllerMap' => [
'test' => [
'class' => 'frontend\controllers\TestController',
],
],
где значение 'class' это путь к вашему контроллеру
И сам контроллер
namespace frontend\controller;
use yii\console\Controller;
class TestController extends Controller
{
public function actionShow()
{
echo 12345;
}
}
Да, забыл сказать, скорее всего по этому и была ошибка, контроллер в обязательном порядке должен быть унаследован от
yii\console\Controller
Вот и все, запускается командой ./yii test/show. Так как у вас basic, пропишите правильные пути к файлам
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники