Давайте просто сравним код на двух фреймворках, который выполняет одно и то же.
Простая консольная команда, которая выводит на экран первый аргумент команды.
Yii 3
namespace App\Command;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Yiisoft\Yii\Console\ExitCode;
#[AsCommand(
name: 'echo',
description: 'An example command that echoes exactly what it is told to.'
)]
final class EchoCommand extends Command
{
private string $sentence = 'sentence';
protected function configure(): void
{
$this->setDefinition(
new InputDefinition([
new InputArgument($this->sentence, InputArgument::OPTIONAL, 'Sentence to say.', 'Hello!'),
])
);
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln("You said: {$input->getArgument('sentence')}");
return ExitCode::OK;
}
}
Laravel
namespace App\Console\Commands;
use Illuminate\Console\Command;
class EchoCommand extends Command
{
protected $signature = 'echo {sentence=Hello! : Sentence to say.}';
protected $description = 'An example command that echoes exactly what it is told to.';
public function handle()
{
$this->line("You said: {$this->argument('sentence')}");
return self::SUCCESS;
}
}
Что лучше?
Мой вердикт, что вариант Ларавел
- Короче
- Проще
- Понятней
В третьей версии фреймворка Yii есть множество технических преимуществ над Laravel, но, увы, по простоте и удобству в приведённом примере Yii проигрывает Laravel.
Тем не менее, мне нравится Yii 3 и я пожелаю ему удачи.
Кстати, релиз уже не за горами: https://opencollective.com/yiisoft/updates/yii-news-2024