Artisan Serve no Lumen

王林
Freigeben: 2024-07-16 21:21:11
Original
912 Leute haben es durchsucht

Artisan Serve no Lumen

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:

  • Vorlagen-Engine
  • ORM (Eloquent ist standardmäßig deaktiviert)
  • Fassaden (standardmäßig deaktiviert)
  • Sitzungsverwaltungsmechanismus
  • Handwerkliche Merkmale

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
Nach dem Login kopieren

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/
Nach dem Login kopieren

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.

  1. Erstellen Sie die Datei ServeCommand.php
<?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],
        ];
    }

}

Nach dem Login kopieren
  1. Fügen Sie den Aufruf in Kernel.php ein
<?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,
    ];
}

Nach dem Login kopieren

Fertig!! Jetzt nutzen Sie es einfach.

$ php artisan serve 
Nach dem Login kopieren
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
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!