Как подключать вложенные классы при запуске через PHP CLI?

Вызываю скрипт из консоли
php /var/www/myFile.php
В нем я подключаю класс, с помощью этого кода (нашел в инете)
function classes($class)
{
    $app = dirname(__DIR__);

    $class = str_replace('app\\', '', $class);

    $file = $app . "/" . str_replace("\\", "/", $class) . ".php";

    if (file_exists($file)) {
        require_once $file;
    }
}

spl_autoload_register('classes');

Но если подключаемый класс содержит другие классы, то он вложенные не видит.
Так работает
function classes($class)
{
    $app = dirname(__DIR__);

    $class = str_replace('app\\', '', $class);

    $file = $app . "/" . str_replace("\\", "/", $class) . ".php";

    if (file_exists($file)) {
        require_once $file;
    }
}

spl_autoload_register('classes');

// /var/www/www-root/data/www/dev.goti.ru/app/components/Xml.php

$class = new Class();

Но если в Class.php вызываются другие классы, то они не подключаются. Все это делаю в yii2.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
usdglander
@usdglander
Yipee-ki-yay
У вас в тэгах указан Yii. Почему вы не создали команду (консольный контроллер) средствами самого фреймворка и не запускаете её через php yii <controller>/<action>?

upd: Вот тут достаточно хорошо и понятно всё описано.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы