在shell中使用schema

时间:2016-12-21 09:09:36

标签: cakephp cakephp-2.5

在插件上下文中,我正在编写一个shell子命令,我需要调用该模式的公共方法:

// 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

1 个答案:

答案 0 :(得分:0)

可耻的无蛋糕解决方法,让它不惜任何代价(请不要在家尝试,小猫可能会受伤):

// 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();
    }
}