如何制作自定义服务命令?

查尔斯

我实际上在我过去的项目中做了这个并且它正在工作,但它现在是一个新版本6.0我以前使用的5.8

所以我尝试了什么,我只是创建了一个命令:

php artisan make:command CustomServeCommand

我将这些代码放在CustomServeCommand类中:

protected function getOptions()
{
    return [
        ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', '127.0.1.1'],//default 127.0.0.1
        ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', 80],
    ];
}

当我php artisan serve它不起作用时。

实际上,上面的代码在5.8版本中工作,返回这些行:

Laravel development server started: <http://127.0.1.1:80>


我现在的问题是如何在 6.0 版中创建自定义服务命令:

相反127.0.0.1:8000,我想服务127.0.1.1:80

有谁知道如何实现这一目标?


编辑

注意:这只是为了减少帖子,我不打算在图片中发布代码。

这是5.8 在此处输入图片说明

这是6.0中生成的代码 在此处输入图片说明

萨利姆·杰尔布

因为在5.8扩展现有命令版本中,composer您自己之前加载的命令中,6.0您不是

serve 像这样扩展现有的命令

这就是您所需要的(删除其余生成的代码)

在 6.0.0 中测试

<?php

namespace App\Console\Commands;

use Illuminate\Foundation\Console\ServeCommand;
use Symfony\Component\Console\Input\InputOption;

class CustomServeCommand extends ServeCommand
{
    protected function getOptions()
    {
        return [
            ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', '127.0.1.1'], //default 127.0.0.1
            ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', 80],
        ];
    }
}

并且注册命令Console\Kernel

你的端口选择有点奇怪,所以你必须做几件事

停止已经使用该端口的服务(假设为 Linux)

sudo service nginx stop 
# or
sudo service apache2 stop 

使用 root 权限执行命令

sudo php artisan serve

 结果

~/Sites/laravel (master ✗) ✹ ★ ᐅ  sudo php artisan serve
Laravel development server started: <http://127.0.1.1:80>
[Thu Sep 26 18:04:02 2019] Failed to listen on 127.0.1.1:80 (reason: Address already in use)
~/Sites/laravel (master ✗) ✹ ★ ᐅ  sudo service nginx stop
~/Sites/laravel (master ✗) ✹ ★ ᐅ  sudo php artisan serve 
Laravel development server started: <http://127.0.1.1:80>
^C
~/Sites/laravel (master ✗) ✹ ★ ᐅ  php artisan serve
Laravel development server started: <http://127.0.1.1:80>
[Thu Sep 26 18:04:23 2019] Failed to listen on 127.0.1.1:80 (reason: Permission denied)
~/Sites/laravel (master ✗) ✹ ★ ᐅ  sudo php artisan serve
Laravel development server started: <http://127.0.1.1:80>
[Thu Sep 26 18:10:28 2019] 127.0.0.1:58714 [200]: /robots.txt
[Thu Sep 26 18:10:29 2019] 127.0.0.1:58716 [200]: /favicon.ico

PS:我个人不建议这样做,80端口是标准的HTTP端口,内置服务器不应该使用

请注意,尽管http://127.0.1.1访问,服务器会将请求代理到不同的本地 IP 和端口

另外,我建议给Laravel Valet一个机会(适用于 Mac 和 Linux),因为它更容易在project.test 没有任何命令的情况下访问

尽管如此,我希望这会有所帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vim制作自定义宏或命令

来自分类Dev

Java如何制作自定义异常?

来自分类Dev

如何制作nbconvert自定义模板

来自分类Dev

如何制作自定义键盘布局?

来自分类Dev

django如何制作自定义网址

来自分类Dev

如何制作自定义键盘布局?

来自分类Dev

如何制作自定义容器?

来自分类Dev

如何制作腻子自定义颜色

来自分类Dev

如何制作自定义通知?

来自分类Dev

如何轻松制作自己的自定义setup.py命令?

来自分类Dev

CKEDITOR 4如何在使用自定义命令使用CTRL + Z撤消之前制作快照

来自分类Dev

命令行中的Windows服务自定义命令

来自分类Dev

如何自定义Bash命令完成?

来自分类Dev

SBT如何创建自定义命令

来自分类Dev

Symfony2-如何在自定义控制台命令中访问服务?

来自分类Dev

制作自定义UINavigationBar

来自分类Dev

如何使用图像和标签制作自定义UIBarButtonItem?

来自分类Dev

如何制作自定义可点击区域?

来自分类Dev

如何制作更好的自定义对话框?

来自分类Dev

Kurento:如何制作自定义过滤器?

来自分类Dev

如何制作自定义填充手柄图案?

来自分类Dev

如何制作自定义视图(imageview + progressbar)?

来自分类Dev

如何制作自定义可拖动脚本

来自分类Dev

VBS如何制作自定义选项按钮?

来自分类Dev

如何制作自定义Cast MediaRouter对话框

来自分类Dev

如何在C#中制作自定义颜色?

来自分类Dev

如何制作水平/自定义Bootstrap下拉列表?

来自分类Dev

如何在Android中制作自定义TextView?

来自分类Dev

如何制作像这样的自定义导航视图动画