PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.1
Independent Analytics – WordPress Analytics Plugin v2.15.1
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / database / Schema / Grammars / RenameColumn.php
independent-analytics / vendor / illuminate / database / Schema / Grammars Last commit date
ChangeColumn.php 1 month ago Grammar.php 1 month ago MySqlGrammar.php 1 month ago PostgresGrammar.php 1 month ago RenameColumn.php 2 years ago SQLiteGrammar.php 1 month ago SqlServerGrammar.php 1 month ago
RenameColumn.php
71 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Database\Schema\Grammars;
4
5 use IAWPSCOPED\Doctrine\DBAL\Schema\AbstractSchemaManager as SchemaManager;
6 use IAWPSCOPED\Doctrine\DBAL\Schema\Column;
7 use IAWPSCOPED\Doctrine\DBAL\Schema\TableDiff;
8 use IAWPSCOPED\Illuminate\Database\Connection;
9 use IAWPSCOPED\Illuminate\Database\Schema\Blueprint;
10 use IAWPSCOPED\Illuminate\Support\Fluent;
11 /** @internal */
12 class RenameColumn
13 {
14 /**
15 * Compile a rename column command.
16 *
17 * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar
18 * @param \Illuminate\Database\Schema\Blueprint $blueprint
19 * @param \Illuminate\Support\Fluent $command
20 * @param \Illuminate\Database\Connection $connection
21 * @return array
22 */
23 public static function compile(Grammar $grammar, Blueprint $blueprint, Fluent $command, Connection $connection)
24 {
25 $schema = $connection->getDoctrineSchemaManager();
26 $databasePlatform = $schema->getDatabasePlatform();
27 $databasePlatform->registerDoctrineTypeMapping('enum', 'string');
28 $column = $connection->getDoctrineColumn($grammar->getTablePrefix() . $blueprint->getTable(), $command->from);
29 return (array) $databasePlatform->getAlterTableSQL(static::getRenamedDiff($grammar, $blueprint, $command, $column, $schema));
30 }
31 /**
32 * Get a new column instance with the new column name.
33 *
34 * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar
35 * @param \Illuminate\Database\Schema\Blueprint $blueprint
36 * @param \Illuminate\Support\Fluent $command
37 * @param \Doctrine\DBAL\Schema\Column $column
38 * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema
39 * @return \Doctrine\DBAL\Schema\TableDiff
40 */
41 protected static function getRenamedDiff(Grammar $grammar, Blueprint $blueprint, Fluent $command, Column $column, SchemaManager $schema)
42 {
43 return static::setRenamedColumns($grammar->getDoctrineTableDiff($blueprint, $schema), $command, $column);
44 }
45 /**
46 * Set the renamed columns on the table diff.
47 *
48 * @param \Doctrine\DBAL\Schema\TableDiff $tableDiff
49 * @param \Illuminate\Support\Fluent $command
50 * @param \Doctrine\DBAL\Schema\Column $column
51 * @return \Doctrine\DBAL\Schema\TableDiff
52 */
53 protected static function setRenamedColumns(TableDiff $tableDiff, Fluent $command, Column $column)
54 {
55 $tableDiff->renamedColumns = [$command->from => new Column($command->to, $column->getType(), self::getWritableColumnOptions($column))];
56 return $tableDiff;
57 }
58 /**
59 * Get the writable column options.
60 *
61 * @param \Doctrine\DBAL\Schema\Column $column
62 * @return array
63 */
64 private static function getWritableColumnOptions(Column $column)
65 {
66 return \array_filter($column->toArray(), function (string $name) use($column) {
67 return \method_exists($column, 'set' . $name);
68 }, \ARRAY_FILTER_USE_KEY);
69 }
70 }
71