为啥从 Lumen 5.2 中删除了 artisan serve 命令?
Posted
技术标签:
【中文标题】为啥从 Lumen 5.2 中删除了 artisan serve 命令?【英文标题】:Why has the artisan serve command been removed from Lumen 5.2?为什么从 Lumen 5.2 中删除了 artisan serve 命令? 【发布时间】:2016-04-14 01:42:47 【问题描述】:请。有人知道为什么 Lumen 的团队删除了命令php artisan serve
吗?该命令非常有用!。
【问题讨论】:
related 正如 Feeda 和 JamesG 所说,如果您只是想要一种简单的方式来为您的应用程序提供服务,请使用内置的 php Web 服务器。我在 Lumen 5.3 中实现了它:gist.github.com/dotnetCarpenter/… 【参考方案1】:我不代表 Taylor,但我的猜测是他的推理是给定的微框架不应该知道 - 或关心 - 运行它的服务器。微框架应该假设它会工作,并让开发人员找出最适合实现这一目标的工具。
Laravel 的不同之处在于它提供了一套更“完整”且高度自以为是的工具来让您的 Web 应用程序起步。在全栈框架中,至少提供一个简单的 PHP 服务器脚本并不少见。
因此,考虑到这一点,将 Laravel 自己的服务器实现和工匠命令引导到您的 Lumen 应用程序中应该不会太难。
如果你真的想要使用php artisan serve
命令而不是像Vagrant 这样更易于配置的命令,你可以将Laravel 的server.php 复制到你的Lumen 应用程序的根目录中,然后将Laravel's own Serve Command注册到Lumen。
您可能需要更改第 42 行的基本路径,但除此之外,它应该很容易移植。
【讨论】:
感谢您的回答!我明白你想说什么,但我认为命令php artisan serve
对开发人员非常有帮助,而且团队在发行说明中没有看到关于删除该命令的一件事。
除了为您提供自己将其放回原位所需的方向外,我对此无能为力。如果您查看我发送给您的链接,serve 命令实际上只是 PHP 内置服务器的一个非常简单的包装器,因此您可以自行将其放回原处。您也可以免费联系open a pull request 或check the forums。如果这回答了您的问题,请将此标记为已回答。【参考方案2】:
你可以找到一个非常轻量级的 Composer 包来添加 artisan serve
到你的 Lumen 应用 https://github.com/mlntn/lumen-artisan-serve
【讨论】:
【参考方案3】:或者,您可以尝试切换到 Lumen 应用程序的 public
文件夹并运行 php -S localhost:8080
。这绝对适用于 OS X - 不确定其他平台。您也可以在端口 80 上监听,但您需要以管理员权限调用该命令。
虽然 PHP 的内置 web 服务器只在 5.4 版本中添加,但 Lumen 需要 PHP 5.5.9 或更高版本,所以这个解决方案应该可以工作。
【讨论】:
【参考方案4】:当您将 PHP 安装到您的计算机上时,为什么不使用 PHP 的内置 Web 服务器?
只需进入 Lumen 应用的根目录并键入以下内容,您的项目就会在本地提供服务。
php -S localhost:8000 -t ./public
注意:此 PHP 内置 Web 服务器仅供开发环境使用。
【讨论】:
这是个好主意!我已经在 Lumen 5.3 中实现了它。见这里:gist.github.com/dotnetCarpenter/…【参考方案5】:我尝试过很多简单的解决方案。 您可以通过以下命令简单地使用 php composer package flipbox/lumen-generator。
composer require flipbox/lumen-generator
然后在你的 app/bootstrap.php 文件中注册这个包
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
就是这样!您可以使用 php artisan 命令来制作资源(控制器、模型)和**
你也可以使用 php artisan serve 命令
【讨论】:
以上是关于为啥从 Lumen 5.2 中删除了 artisan serve 命令?的主要内容,如果未能解决你的问题,请参考以下文章
从 Lumen 5.2 控制器端点提供 Angular 5 SPA 时的路由问题