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文件
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">