Добавьте свой собственный метод в DoctrineMigrations

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

MigrationTraitFile.php

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

VersionXXX.php

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

Так что эта черта должна добавить SQL для создания таблицы в моем классе миграции. Любая идея?

1 ответ

Поскольку эта черта не имеет / не должна иметь никакого контекста, вы передаете параметр:

Черта характера:

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)
    }
}
Другие вопросы по тегам