1<?php 2 3namespace Doctrine\DBAL\Event; 4 5use Doctrine\DBAL\Platforms\AbstractPlatform; 6use Doctrine\DBAL\Schema\Column; 7use Doctrine\DBAL\Schema\TableDiff; 8 9use function array_merge; 10use function func_get_args; 11use function is_array; 12 13/** 14 * Event Arguments used when SQL queries for renaming table columns are generated inside {@link AbstractPlatform}. 15 */ 16class SchemaAlterTableRenameColumnEventArgs extends SchemaEventArgs 17{ 18 /** @var string */ 19 private $oldColumnName; 20 21 /** @var Column */ 22 private $column; 23 24 /** @var TableDiff */ 25 private $tableDiff; 26 27 /** @var AbstractPlatform */ 28 private $platform; 29 30 /** @var string[] */ 31 private $sql = []; 32 33 /** 34 * @param string $oldColumnName 35 */ 36 public function __construct($oldColumnName, Column $column, TableDiff $tableDiff, AbstractPlatform $platform) 37 { 38 $this->oldColumnName = $oldColumnName; 39 $this->column = $column; 40 $this->tableDiff = $tableDiff; 41 $this->platform = $platform; 42 } 43 44 /** 45 * @return string 46 */ 47 public function getOldColumnName() 48 { 49 return $this->oldColumnName; 50 } 51 52 /** 53 * @return Column 54 */ 55 public function getColumn() 56 { 57 return $this->column; 58 } 59 60 /** 61 * @return TableDiff 62 */ 63 public function getTableDiff() 64 { 65 return $this->tableDiff; 66 } 67 68 /** 69 * @return AbstractPlatform 70 */ 71 public function getPlatform() 72 { 73 return $this->platform; 74 } 75 76 /** 77 * Passing multiple SQL statements as an array is deprecated. Pass each statement as an individual argument instead. 78 * 79 * @param string|string[] $sql 80 * 81 * @return SchemaAlterTableRenameColumnEventArgs 82 */ 83 public function addSql($sql) 84 { 85 $this->sql = array_merge($this->sql, is_array($sql) ? $sql : func_get_args()); 86 87 return $this; 88 } 89 90 /** 91 * @return string[] 92 */ 93 public function getSql() 94 { 95 return $this->sql; 96 } 97} 98