卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章65728本站已运行420

工匠服务无流明

工匠服务无流明

Laravel 是目前 PHP 生态系统中最常用的框架。但对于那些不认识他的人来说,他们很难知道他还有一个更年轻但同样有趣的弟弟,名叫Lumen。

Lumen 旨在创建 API,事实上,它是一个微框架,其代码库与它的前辈非常接近,但有一个重要的区别,Lumen 牺牲了一些资源以换取更好的性能。

使用 Lumen 时您会错过的功能包括:

  • 模板引擎
  • ORM(Eloquent 默认禁用)
  • Facades(默认禁用)
  • 会话管理引擎
  • 工匠特色

最后一点真正引起了我的注意,因为 Artisan 中某些功能的缺乏并不会直接影响应用程序的性能。

如果您从未听说过 Artisan,那么值得注意的是,它是一个功能强大的命令行实用程序,可以与 Laravel 或 Lumen 交互,帮助您开发应用程序。

这些资源的缺乏直接影响开发者的生产力。

在我第一次接触 Lumen 时,我错过了命令:

$ php 工匠服务

在没有“serve”命令的情况下,替代方案是使用 PHP 自带的内置服务器,使用命令:

$ php -S localhost:8000 -t public/




看似简单但不实用。

正是考虑到这一点,为了避免每次上传服务器时都键入此命令,我创建了必要的调整,以将“serve”命令带回 Lumen。

让我们一步一步来吧

    创建ServeCommand.php文件
<?php // 文件:app/Console/Commands/ServeCommand.php 命名空间 AppConsoleCommands; 使用 IlluminateConsoleCommand; 使用 SymfonyComponentConsoleInputInputOption; ServeCommand 类扩展 Command { 受保护的 $name = '服务'; protected $description = "在 PHP 开发服务器上为应用程序提供服务"; 公共函数句柄():无效 { $base = $this->laravel->basePath(); $host = $this->input->getOption('host'); $port = $this->input->getOption('port'); $this->info("Lumen 开发服务器在 http://{$host}:{$port}/ 上启动"); passthru('"' . PHP_BINARY . '"' . " -S {$host}:{$port} -t "{$base}/public""); } 受保护函数 getOptions(): 数组 { $url = env('APP_URL', ''); $host = parse_url($url, PHP_URL_HOST); $port = parse_url($url, PHP_URL_PORT); // 默认值 $主机=$主机? $主机:'本地主机'; $端口=$端口? $端口:8080; 返回 [ ['host', null, InputOption::VALUE_OPTIONAL, '为应用程序提供服务的主机地址。', $host], ['port', null, InputOption::VALUE_OPTIONAL, '为应用程序提供服务的端口。', $port], ]; } }




    将调用包含在 Kernel.php 中
<?php // 文件:app/Console/Kernel.php 命名空间AppConsole; 使用 LaravelLumenConsoleKernel 作为 ConsoleKernel; 类 Kernel 扩展 ConsoleKernel { 受保护的$命令= [ // 添加对 Artisan Serve 的支持 CommandsServeCommand::类, ]; }
准备好了!!现在就用它吧。<p>
<br></p>$ php 工匠服务 
<pre class="brush:php;toolbar:false">





Lumen 开发服务器在 http://localhost:8080/ 上启动 [2021 年 9 月 27 日星期一 19:38:07] PHP 8.1.0RC2 开发服务器 (http://localhost:8080) 启动





          
卓越飞翔博客
上一篇: php框架在人工智能时代的演进
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏