0

Hi I would like to create my own custom method which I could use in the migration class. I mean something like this:

MigrationTraitFile.php

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

VersionXXX.php

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

So the trait should addSql to create Table in my migration class. Any idea?

Elly Kedward
  • 41
  • 1
  • 2

1 Answers1

0

Since the trait doesn't/shouldn't have any context, you pass in a parameter:

Trait:

use Doctrine\DBAL\Migrations\AbstractMigration;

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

Version:

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

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