为什么 Lumen 5.2 中删除了 artisan serve 命令?

23

请问有人知道为什么 Lumen 团队删除了命令 php artisan serve 吗?那个命令非常有用!


related - bummi
正如Feeda和JamesG所说,如果你只想以简单的方式提供应用程序服务,请使用内置的php Web服务器。我已在Lumen 5.3中实现了它,这里是链接:https://gist.github.com/dotnetCarpenter/b0801d4e5e5688de390ed4c1d7342450 - dotnetCarpenter
5个回答

94

为什么不使用PHP内置的Web服务器?当您将PHP安装到计算机上时,它会自带。

只需进入Lumen应用程序的根目录,然后键入以下命令,即可在本地提供项目服务。

 php -S localhost:8000 -t ./public

注意:这个 PHP 内置的 Web 服务器仅适用于开发环境。

2
这是一个很好的想法!我已经在Lumen 5.3中实现了它。请看这里:https://gist.github.com/dotnetCarpenter/b0801d4e5e5688de390ed4c1d7342450 - dotnetCarpenter

17

或者,您可以尝试切换到您的Lumen应用程序中的public文件夹并运行php -S localhost:8080。这在OS X上肯定有效-不确定其他平台。您还可以侦听端口80,但需要以管理员权限执行命令。

尽管PHP的内置Web服务器是在版本5.4中添加的,但Lumen需要PHP版本5.5.9或更高版本,因此这个解决方案应该有效。


14
我不代表Taylor发言,但我猜他的想法是一个微框架不应该知道或关心运行它的服务器。微框架只需要假设它会正常工作,让开发者找出最好的工具来实现它。
Laravel则不同,它提供了更加完整和高度自主的工具集来启动你的Web应用程序。在一个全栈框架中,提供至少一个简单的PHP服务器脚本并不罕见。
因此,考虑到这一点,将Laravel的服务器实现和艺术家命令引导到您的Lumen应用程序中应该不太难。
如果您真的想使用“php artisan serve”命令而不是像Vagrant这样更可配置的东西,您可能只需将Laravel的server.php复制到您的Lumen应用程序的根目录中,然后将Laravel's own Serve Command注册到Lumen中。

你可能需要更改第42行的基础路径,但除此之外,移植应该相当容易。


谢谢你的回答!我明白你想说什么,但我认为命令 php artisan serve 对开发人员非常有帮助,而且团队没有在发布说明中提到删除该命令的事情。 - vanhonit
除了给你指导,让你自己把它放回原处外,我对此无能为力。如果你查看我发送给你的链接,serve 命令只是 PHP 内置服务器的一个非常简单的包装器,因此你可以自行将其放回原处。你也可以自由地发起拉取请求或者查看论坛。如果这回答了你的问题,请将其标记为已解决。 - maiorano84

5

2

我尝试过很多简单的解决方案。你可以用以下命令来使用php composer包flipbox/lumen-generator。

composer require flipbox/lumen-generator

接着,在您的app/bootstrap.php文件中注册此包:

$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);

就这些!使用php artisan命令可以创建资源(控制器,模型),而您还可以使用php artisan serve命令


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接