Heim  >  Artikel  >  Backend-Entwicklung  >  Artisan Serve no Lumen

Artisan Serve no Lumen

王林
王林Original
2024-07-16 21:21:11918Durchsuche

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

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.

  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],
        ];
    }

}

  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,
    ];
}

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!

Stellungnahme:
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