За последние недели опубликовали десятки статей о наиболее заметных новых функциях Symfony 5.1, которые будут выпущены через несколько дней. В этих заключительных статьях серии мы продемонстрируем некоторые второстепенные, но полезные новые функции, которые упростят вашу работу по разработке.
Добавлены константы для кодов выхода команд
В Symfony 4.4 изменили консольные команды, чтобы они требовали от них возвращать код статуса выхода в виде целого числа. В Symfony 5.1 добавили несколько констант для наиболее распространенных кодов выхода (Command::SUCCESS
и Command::FAILURE
), чтобы сделать ваш код более читабельным:
// src/Command/CreateUserCommand.php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class CreateUserCommand extends Command
{
protected static $defaultName = 'app:create-user';
// ...
protected function execute(InputInterface $input, OutputInterface $output)
{
// ...
// Before
return 0;
// After
return Command::SUCCESS;
}
}
YAML 1.2 восьмеричная запись
В документах YAML 1.1 0 был префиксом, используемым для определения восьмеричных чисел (например, 072). Эта нотация устарела в YAML 1.2, который заменяет префикс 0 на 0o (например, 0o72). Вот почему в Symfony 5.1 добавили поддержку нотации YAML 1.2 и отказались от поддержки формата YAML 1.1.
Улучшенный tempnam()
Функция PHP tempnam()
создает файл с уникальным именем в заданном каталоге. Функция tempnam()
, предоставляемая компонентом файловой системы Symfony, предоставляет те же возможности, но в Symfony 5.1 улучшили ее с помощью нового необязательного аргумента, который позволяет вам добавить суффикс к сгенерированному имени файла (например, чтобы добавить к нему расширение файла):
use Symfony\Component\Filesystem\Filesystem;
$fs = new Filesystem();
$fs->tempnam('/tmp', 'report_'); // '/tmp/report_Um3nlH'
$fs->tempnam('/tmp', 'report_', '.pdf'); // '/tmp/report_Um3nlH.pdf'
Пользовательские словари для случайных строк
Компонент Symfony String – лучший способ работы со строками в приложениях PHP. В Symfony 5.1 улучшили функцию генерации случайных буквенно-цифровых строк, чтобы вы могли передать собственный словарь символов, который будет включен в сгенерированную строку:
$random = ByteString::fromRandom(6); // 'g6UkL2'
$randomPin = ByteString::fromRandom(4, '0123456789'); // '7385'
$randomKey = ByteString::fromRandom(1, 'WASD'); // 'S'