SchemaAlterTableAddColumnEventArgs.php 1.6 KB
Newer Older
1 2 3 4
<?php

namespace Doctrine\DBAL\Event;

Benjamin Morel's avatar
Benjamin Morel committed
5 6 7
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Schema\Column;
use Doctrine\DBAL\Schema\TableDiff;
8 9
use function array_merge;
use function is_array;
10 11 12 13

/**
 * Event Arguments used when SQL queries for adding table columns are generated inside Doctrine\DBAL\Platform\*Platform.
 */
jsor's avatar
jsor committed
14
class SchemaAlterTableAddColumnEventArgs extends SchemaEventArgs
15
{
16
    /** @var Column */
17
    private $column;
18

19
    /** @var TableDiff */
20
    private $tableDiff;
21

22
    /** @var AbstractPlatform */
23
    private $platform;
24

25
    /** @var string[] */
26
    private $sql = [];
27 28 29

    public function __construct(Column $column, TableDiff $tableDiff, AbstractPlatform $platform)
    {
30 31 32
        $this->column    = $column;
        $this->tableDiff = $tableDiff;
        $this->platform  = $platform;
33 34 35
    }

    /**
36
     * @return Column
37 38 39
     */
    public function getColumn()
    {
40
        return $this->column;
41 42 43
    }

    /**
44
     * @return TableDiff
45 46 47
     */
    public function getTableDiff()
    {
48
        return $this->tableDiff;
49 50 51
    }

    /**
52
     * @return AbstractPlatform
53 54 55
     */
    public function getPlatform()
    {
56
        return $this->platform;
57 58 59
    }

    /**
60
     * @param string|string[] $sql
Benjamin Morel's avatar
Benjamin Morel committed
61
     *
62
     * @return \Doctrine\DBAL\Event\SchemaAlterTableAddColumnEventArgs
63 64 65 66
     */
    public function addSql($sql)
    {
        if (is_array($sql)) {
67
            $this->sql = array_merge($this->sql, $sql);
68
        } else {
69
            $this->sql[] = $sql;
70 71 72 73 74 75
        }

        return $this;
    }

    /**
76
     * @return string[]
77 78 79
     */
    public function getSql()
    {
80
        return $this->sql;
81 82
    }
}