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 :
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
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/
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.
<?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, ]; }
Prêt !! Maintenant, utilisez-le.
$ 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
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!