Artisan ne sert pas de lumière

王林
Libérer: 2024-07-16 21:21:11
original
912 Les gens l'ont consulté

Artisan Serve no Lumen

Laravel est le framework actuellement le plus utilisé au sein de l'écosystème PHP. Mais pour ceux qui ne le connaissent pas, ils sauront à peine qu'il a un frère plus jeune, mais non moins intéressant, appelé Lumen.

Lumen est destiné à créer des API. En fait, il s'agit d'un micro-framework avec une base de code très proche de son grand frère, mais avec une différence importante : Lumen sacrifie certaines fonctionnalités au profit de meilleures performances. .

Parmi les fonctionnalités qui vous manqueront lors de l'utilisation de Lumen figurent :

  • Moteur de modèles
  • ORM (Eloquent est désactivé par défaut)
  • Façades (Désactivées par défaut)
  • Mécanisme de gestion de session
  • Caractéristiques artisanales

Le dernier point a vraiment retenu mon attention car le manque de certaines fonctionnalités dans Artisan n'impacte pas directement les performances de l'application.

Si vous n'avez jamais entendu parler d'Artisan, sachez qu'il s'agit d'un puissant utilitaire de ligne de commande qui interagit avec Laravel ou Lumen, vous aidant à développer vos applications.

L'absence de ces ressources impacte directement la productivité des développeurs.

Lors de mon premier contact avec Lumen j'ai raté la commande :

$ php artisan serve
Copier après la connexion

En l'absence de commande "serve", l'alternative est d'utiliser le propre serveur intégré de PHP, en utilisant la commande :

$ php -S localhost:8000 -t public/
Copier après la connexion

Apparemment simple mais pas pratique.

Et c'est dans cette optique, pour éviter de taper cette commande à chaque fois que vous téléchargez le serveur, que j'ai créé l'ajustement nécessaire pour ramener la commande "serve" à Lumen.

Allons-y étape par étape.

  1. Créez le fichier 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],
        ];
    }

}

Copier après la connexion
  1. Inclure l'appel dans Kernel.php
<?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,
    ];
}

Copier après la connexion

Prêt !! Maintenant, utilisez-le.

$ php artisan serve 
Copier après la connexion
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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!