Использовать схему в оболочке

В контексте плагина я пишу подкоманду оболочки, и мне нужно вызвать общедоступный метод схемы:

// app\Plugin\FooManager\Config\Schema\schema.php
App::uses('BaseSchema', 'FooManager.Config/Schema');
class FooManagerSchema extends BaseSchema {
    public function getLocalisableValues() {
    }
}

Как обычно, я не могу понять синтаксис.

// app\Plugin\FooManager\Console\Command\DevShell.php
class DevShell extends AppShell {
    public function i18n_dump_database_values() {
        $schema = ????????;
        $schema->getLocalisableValues();
    }
}

Как я могу загрузить экземпляр FooManagerSchema в $schema?


person Álvaro González    schedule 21.12.2016    source источник
comment
@DownVoter Не все такие умные, как ты. Пожалуйста, объясните, как улучшить этот вопрос, чтобы сделать его полезным и понятным, или закрыть его как дубликат.   -  person Álvaro González    schedule 21.12.2016


Ответы (1)


Позорный обходной путь, чтобы заставить его работать любой ценой (пожалуйста, не пытайтесь повторить это дома, котята могут пострадать):

// app\Plugin\FooManager\Console\Command\DevShell.php
class DevShell extends AppShell {
    public function i18n_dump_database_values() {
        // Ugly (and will possibly break things):
        include_once(__DIR__ . '/../../../../../lib/Cake/Model/CakeSchema.php');
        include_once(__DIR__ . '/../../Config/Schema/schema.php');
        $schema = new FooManagerSchema();

        $schema->getLocalisableValues();
    }
}
person Álvaro González    schedule 21.12.2016