|
16 | 16 | use Symfony\Component\Console\Input\InputInterface;
|
17 | 17 | use Symfony\Component\Console\Input\InputOption;
|
18 | 18 | use Symfony\Component\Console\Output\OutputInterface;
|
| 19 | +use Symfony\Component\String\Slugger\AsciiSlugger; |
19 | 20 |
|
20 | 21 |
|
21 | 22 | class CreateCommand extends BaseCommand
|
@@ -118,7 +119,7 @@ protected function getGroup($type)
|
118 | 119 |
|
119 | 120 | $matchedGroups = [];
|
120 | 121 | foreach ($this->config->getGroups() as $group) {
|
121 |
| - if (Strings::match($group->name, $groupNamePattern)) { |
| 122 | + if (preg_match($groupNamePattern, $group->name)) { |
122 | 123 | $matchedGroups[] = $group;
|
123 | 124 | }
|
124 | 125 | }
|
@@ -148,7 +149,21 @@ protected function getGroup($type)
|
148 | 149 | */
|
149 | 150 | protected function getFileName($label, $extension)
|
150 | 151 | {
|
151 |
| - return date('Y-m-d-His-') . Strings::webalize($label, '.') . '.' . $extension; |
| 152 | + if (preg_match('#^[a-z0-9.-]++$#i', $label)) { |
| 153 | + $slug = strtolower($label); |
| 154 | + |
| 155 | + } elseif (class_exists('Nette\Utils\Strings')) { |
| 156 | + $slug = Strings::webalize($label, '.'); |
| 157 | + |
| 158 | + } elseif (class_exists('Symfony\Component\String\Slugger\AsciiSlugger')) { |
| 159 | + $slugger = new AsciiSlugger('en'); |
| 160 | + $slug = $slugger->slug($label)->toString(); |
| 161 | + |
| 162 | + } else { |
| 163 | + throw new Nextras\Migrations\LogicException("Provided label '$label' contains invalid characters."); |
| 164 | + } |
| 165 | + |
| 166 | + return date('Y-m-d-His-') . $slug . '.' . $extension; |
152 | 167 | }
|
153 | 168 |
|
154 | 169 |
|
|
0 commit comments