Laravel ist das derzeit am häufigsten verwendete Framework innerhalb des PHP-Ökosystems. Aber wer ihn nicht kennt, wird kaum wissen, dass er einen jüngeren, aber nicht weniger interessanten Bruder namens Lumen hat.
Lumen zielt auf die Erstellung von APIs ab. Tatsächlich handelt es sich um ein Mikro-Framework mit einer Codebasis, die der seines älteren Bruders sehr ähnlich ist, jedoch mit einem wichtigen Unterschied: Lumen opfert einige Funktionen zugunsten einer besseren Leistung .
Zu den Funktionen, die Sie bei der Verwendung von Lumen vermissen werden, gehören:
Der letzte Punkt hat meine Aufmerksamkeit wirklich erregt, da das Fehlen einiger Funktionen in Artisan keinen direkten Einfluss auf die Leistung der Anwendung hat.
Wenn Sie noch nie von Artisan gehört haben, ist es erwähnenswert, dass es sich um ein leistungsstarkes Befehlszeilendienstprogramm handelt, das mit Laravel oder Lumen interagiert und Sie bei der Entwicklung Ihrer Anwendungen unterstützt.
Das Fehlen dieser Ressourcen wirkt sich direkt auf die Produktivität der Entwickler aus.
Bei meinem ersten Kontakt mit Lumen habe ich den Befehl verpasst:
$ php artisan serve
Wenn der Befehl „serve“ nicht vorhanden ist, besteht die Alternative darin, den PHP-eigenen integrierten Server mit dem folgenden Befehl zu verwenden:
$ php -S localhost:8000 -t public/
Anscheinend einfach, aber unpraktisch.
Und mit diesem Gedanken im Hinterkopf, um zu vermeiden, dass Sie diesen Befehl jedes Mal eingeben müssen, wenn Sie den Server hochladen, habe ich die notwendigen Anpassungen vorgenommen, um den Befehl „serve“ wieder in Lumen zu bringen.
Lass uns Schritt für Schritt vorgehen.
<?php // File: app/Console/Commands/ServeCommand.php namespace App\Console\Commands; use Illuminate\Console\Command; use Symfony\Component\Console\Input\InputOption; class ServeCommand extends Command { protected $name = 'serve'; protected $description = "Serve the application on the PHP development server"; public function handle(): void { $base = $this->laravel->basePath(); $host = $this->input->getOption('host'); $port = $this->input->getOption('port'); $this->info("Lumen development server started on http://{$host}:{$port}/"); passthru('"' . PHP_BINARY . '"' . " -S {$host}:{$port} -t \"{$base}/public\""); } protected function getOptions(): array { $url = env('APP_URL', ''); $host = parse_url($url, PHP_URL_HOST); $port = parse_url($url, PHP_URL_PORT); // Defaults $host = $host ? $host : 'localhost'; $port = $port ? $port : 8080; return [ ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', $host], ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', $port], ]; } }
<?php // File: app/Console/Kernel.php namespace App\Console; use Laravel\Lumen\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { protected $commands = [ // Add Support to Artisan Serve Commands\ServeCommand::class, ]; }
Fertig!! Jetzt nutzen Sie es einfach.
$ php artisan serve
Lumen development server started on http://localhost:8080/ [Mon Sep 27 19:38:07 2021] PHP 8.1.0RC2 Development Server (http://localhost:8080) started
Das obige ist der detaillierte Inhalt vonArtisan Serve no Lumen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!