将自己的自定义方法添加到DoctrineMigrations

时间:2016-12-08 20:50:14

标签: php symfony doctrine-orm doctrine-migrations

您好我想创建自己的自定义方法,我可以在迁移类中使用它。我的意思是这样的:

MigrationTraitFile.php

trait MigrationTrait {
    public function addAdditionalTable() {
        ...
    }

VersionXXX.php

class VersionXXX {
    use MigrationTrait;
    public function up() {
        $this->addAdditionalTable()
    }

因此,trait应该使用addSql在我的迁移类中创建Table。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于特征不具有/不应具有任何上下文,因此您传入参数:

特点:

use Doctrine\DBAL\Migrations\AbstractMigration;

trait MigrationTrait {
    public function addAdditionalTable(AbstractMigration $migration) {
        $migration->addSql('...');
    }
}

版本:

use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;

class VersionXXX extends AbstractMigration {
    use MigrationTrait;
    public function up(Schema $schema) {
        $this->addAdditionalTable($this)
    }
}