首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 中编写第一个 Artisan 命令

Laravel 中,我们可以通过三种工具实现命令行交互: Artisan:Laravel 内置的命令行操作工具集,支持自定义命令; Tinker:一个由 PsySH 扩展包驱动的 REPL,允许你通过命令行与整个...我们执行 php artisan 命令时,artisan 就指的是根目录下的 artisan 文件,所以命令需要在应用根目录下执行,然后 artisan 之后的部门都是作为请求参数被控制台应用获取并处理...dump server 收集 dump 信息 preset:切换应用前端框架脚手架代码,比如从 Vue 切换到 React 选项 我们继续介绍 Artisan 命令其它内容之前,我们先来看一下在运行...命令 介绍完系统内置的所有命令之后,我们接下来看看如何编写自定义Artisan 命令,这种需求实际项目开发中还是常有的,比如数据迁移、数据修复、定时任务等。...至此,你应该 Artisan 命令的使用和编写有了一个初步的概念,下一篇我们将介绍如何通过命令类编写更加复杂的交互命令

3.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel 5.0 之 Middleware (Filter-Style)

你可能还留意到原本应该是路由过滤器的地方,变成了 Middleware 的引用。 实际上给 Laravel 应用添加自定义的 Middleware 以前的版本中就有了。...每个特定的中间层都可以应用逻辑之前、之后进行处理,或者同时应用逻辑之前和之后进行处理。...通过执行 artisan 命令: $ php artisan make:middleware MyMiddleware 这条命令会生成一个简单的 middleware 文件,代码如下: namespace... $middleware 中的 middleware 会在每次请求时运行,而 $routeMiddleware 中的 middleware 必须被启用才会运行。...而 "after" middleware 是先调用 $next() 方法让请求被堆栈处理,之后它执行操作。 写在最后 如果你还不熟悉 middleware, 你的大脑可能会被它的概念纠缠一会儿。

2K40

使用 Laravel 制定 MySQL 数据库备份计划任务

现在让我们将这个命令通过使用 artisan 命令进行封装,使其更易于运行和可加入计划任务。...这意味着,一旦有参数被修改,我们不需要通过命令本身进行调整。接下来,我们可以来创建这个控制台命令。 通过运行 php artisan make:comman 命令来创建一个自定义命令。...我们将 shell 命令和所需的参数传入到 sprintf() 函数中,它会将占位符替换成实际的参数。处理完 process 实例后,我们可以进行下一步 handle)( 方法的处理。... handle 方法里,我们有个一 try-catch 代码块。...若要运行这个调度器,我们需要执行 php artisan schedule:run 命令,然后它会触发所有需要运行命令。这很棒,我们仅需一行命令就可以指定的时间触发对应的任意命令

2.8K10

深入理解Laravel定时任务调度机制

其任务指令格式如下: 命令行crontab -e进入crontab编辑,把自己要执行的指令编辑好之后保存退出即可生效。...也就是说必须要等到Task 1执行完成之后,Task 2才会开始执行。在这种情况下,如果Task 1非常耗时,则会影响到Task 2的按时执行,这一点开发中是尤其需要注意的。...something*/}) // 后置钩子,命令执行完之后执行此回调 ->runInBackground(); // 后台运行命令 // 每分钟执行command命令:php artisan...不过在任务改为后台执行之后,又有了一个新的问题,即如何触发任务的后置钩子函数。因为后置钩子函数是需要在任务跑完之后立即执行,所以必须要有办法监测到后台运行的任务结束的一瞬间。...代码如下: // Illuminate/Console/Scheduling/ScheduleFinishCommand.php // php artisan schedule:finish指令的源代码

10.4K162

laravel 定时任务通过队列发送邮件

1.用database队列驱动,生成创建这些表的迁移 php artisan queue:table php artisan migrate 用redis 队列驱动需要在配置文件 config/database.php...中配置 Redis 数据库连接 2.生成任务类 php artisan make:job SendToStarterMail 生成之后handle方法中处理发送邮件 <?...make:command SendStarterEmail 就会在app/Console/Commands下生成一个SendStarterEmail.php文件,进入这个文件,自定义指令名: protected...5.运行队列监听服务 php artisan queue:work database --queue=emails #database为对接驱动,emails为队列名称,可自定义 正式环境请配置supervisor...dev/null 2>&1 测试环境,可运行以下代替: php artisan schedule:run 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111733

1.2K10

基于 Redis 布隆过滤器实现海量数据去重及其 PHP 爬虫系统中的应用

自定义布隆过滤器参数 实际使用时,如果需要的话,可以通过 bf.add 之前执行 bf.reserve 指令自定义布隆过滤器的参数,这个指令支持三个参数: key:指定键名; error_rate:错误率...如果结果集为空,你可以继续运行数据库填充命令,或者手动设置一些重复记录。...命令代码如下: <?...运行 sail artisan start:crawl 推送任务到队列,这个时候可以看到 Processed 日志输出,表明布隆过滤器已经介入并进行了去重操作,运行完成后,通过如下命令启动队列处理器进程消费队列...对于爬虫而言,这个误差率还是有点高的,你可以参考上面介绍的自定义配置参数进行调优,再看看误差率是否得到了优化。

1.9K11

Laravel命令行问用户要数据!

实现了一个简单的命令行,和一个复杂的发送邮件通知的功能。 可是细心的读者你发现了没有,使用自定义命令行,全程我们没有输入一个参数,没有一个数据,这,这,这,太不寻常了吧!...事前询问 首先我们要区分获取参数的两种方式,一种是输入命令行时直接给定的,还有一种是程序运行过程中,等待用户输入信息之后才能继续。...}'; 假设上述类已经完成功能开发,命令行中调用: php artisan password:reset 5 代码中使用 $this->argument() 方法,打印其结果是一个数组,内容如下:.../ 所有选项 $options = $this->option(); $sendEmail = $this->option('sendEmail'); } 事中确认 有些参数是要在程序运行用户进行询问...设计命令行的时候一定要想清楚,规划好,到底用哪一个,代码中才能有的放矢地读取。并且使用询问等待可以制作更多灵活的引导型程序,非常实用。

85900

Laravel命令行问用户要数据!

实现了一个简单的命令行,和一个复杂的发送邮件通知的功能。 可是细心的读者你发现了没有,使用自定义命令行,全程我们没有输入一个参数,没有一个数据,这,这,这,太不寻常了吧!...事前询问 首先我们要区分获取参数的两种方式,一种是输入命令行时直接给定的,还有一种是程序运行过程中,等待用户输入信息之后才能继续。...}'; 假设上述类已经完成功能开发,命令行中调用: php artisan password:reset 5 代码中使用 $this->argument() 方法,打印其结果是一个数组,内容如下:.../ 所有选项 $options = $this->option(); $sendEmail = $this->option('sendEmail'); } 事中确认 有些参数是要在程序运行用户进行询问...设计命令行的时候一定要想清楚,规划好,到底用哪一个,代码中才能有的放矢地读取。并且使用询问等待可以制作更多灵活的引导型程序,非常实用。

50620

Laravel之队列「建议收藏」

使用databases为例 为了使用database 队列驱动,需要一张数据库表来存放任务,要生成创建该表的迁移,运行 Artisan 命令queue:table ,迁移被创建好了之后,使用migrate...命令运行迁移: php artisan queue:table php artisan migrate 安装依赖包 项目根目录可安装如下依赖包 下面是以上列出队列驱动需要安装的依赖: • Amazon...该命令将会在app/Jobs 目录下生成一个新的类,并且该类实现了Illuminate\Contracts\Queue\ShouldQueue接口 2.SendReminderEmail.php代码如下...相较于queue:listen 命令命令 CPU 的使用有明显降低: php artisan queue:work connection --daemon php artisan queue:work...2.如果修改了代码,在后台队列中是无效的,必须重启队列 php artisan queue:restart 这个命令依赖于缓存系统重启进度表,默认情况下,APC CLI 任务中无法正常工作,如果你使用

1.7K10

laravel5.5功能尝鲜

,进入代码所在文件夹,将文件.env.example 改为.env,执行以下命令生成key php artisan key:generate 第三步 启动页面 php artisan serve...7 make:rule 自定义验证 例如 自定义一个规则叫PhoneValidate php artisan make:rule PhoneValidate 命令执行完成后就可以app/Rules/目录下看到新生成的...app/Providers/AppServiceProvider.php文件中可以自定义blade标签。示例代码如下 ? 前端页面代码 ?...命令 以前的 laravel 版本中,我们自己创建 Artisan 命令的时候需要到 Kernel 文件中注册命令才可以生效,而在 5.5 的时候,Laravel 通过 load 的方法实现,直接就在生成命令之后可以使用命令了...创建一个自定义命令 SayHello php artisan make:command SayHello 对应的app/Console/Commands文件夹下会生成一个SayHello.php文件

3K40

Laravel 中编写高级的 Artisan 命令

类似的,命令类中可以通过 public function handle() { $this->info('欢迎来自' . $this->option('city') . '的' ....; } 这样,我们运行 php artisan welcome:message,带上参数和选项信息,就可以输出对应的欢迎信息了: 用户交互 除了命令运行命令时手动设置参数值和选项值获取输入信息之外...,需要提供表头 headers 和表数据 data,这段代码输出结果如下: 进度条 如果你之前运行过 npm install,就会看到安装过程中有进度条显示安装进度, Artisan 命令执行过程中,...应用代码中调用 Artisan 命令 除了命令运行 Artisan 命令之外,还可以应用代码中通过 Artisan 门面调用它。...你还可以一个 Artisan 命令类中调用另一个 Artisan 命令命令类中调用 Artisan 命令,可以通过 Artisan:call(),也可以直接通过 this->call() 方法,还可以通过

8.2K20

LaravelLumen 使用 redis队列

要生成创建这些表的迁移,可以项目目录下运行 Artisan 命令 queue:table,迁移被创建之后,可以使用 migrate 命令生成这些表: php artisan queue:table php...laravel中 app/Jobs 不存在,在运行 Artisan 命令 make:job 的时候,它将会自动创建。...类似的,队列任务最大运行时长(秒)可以通过 Artisan 命令上的 --timeout 开关来指定: php artisan queue:work --timeout=30 同样,你也可以在任务类中定义该任务允许运行的最大时长...简单处理可以使用 php artisan queue:work --daemon & 10、运行队列监听器 开始进行队列监听 laravel 包含了一个 Artisan 命令运行推送到队列中的任务的执行...编辑配置文件:找到最后一行,引入自定义配置文件 ;[include] ;files = conf.d/*.ini 去掉[include]和files前面的“;” include生效,/etc/supervisor

2.3K20

Laravel 简短学习 just write the code in the PHP way

只要在命令前面加上 help 即可显示帮助界面: php artisan help migrate php artisan make:auth 编写命令 ---- 除了使用 Artisan 本身所提供的命令之外...,Laravel 也允许你自定义 Artisan 命令。...自定义命令默认存储 app/Console/Commands 目录中,当然,只要在 composer.json 文件中的配置了自动加载,你可以自由选择想要放置的地方。...命令运行handle 方法会被调用,请将程序逻辑放置在此方法中。 接下来讲解一个发送邮件的例子。 为了更好的代码重用性,还有可读性,建议把处理业务逻辑的代码抽到一个功能类里。...相较于其它知名的 PHP 模板引擎,Blade 并不会限制你必须得视图中使用 PHP 代码。所有 Blade 视图都会被编译缓存成普通的 PHP 代码,一直到它们被更改为止。

1.1K50

Laravel源码解析之Console内核

内核绑定 跟HTTP内核一样,应用初始化阶有一个内核绑定的过程,将Console内核注册到应用的服务容器里去,还是引用上一篇文章引用过的 bootstrap/app.php里的代码 <?...shell脚本里可以通过 $0获取脚本文件名, $1 $2这些依次获取后面传递给shell脚本的参数选项)索引0应的是脚本文件名,接下来依次是命令行里传递给脚本的所有参数选项,所以命令行里通过 artisan...脚本执行的命令 artisan脚本中 $_SERVER['argv']数组里索引0应的永远是 artisan这个字符串,命令行里后面的参数会依次对应到 $_SERVER['argv']数组后续的元素里...引导应用 Console内核的 handle方法里我们可以看到和HTTP内核处理请求前使用 bootstrapper程序引用应用一样开始处理命令任务之前也会有引导应用这一步操作 其父类 「Illuminate...还有就是打开命令类后我们可以看到并没有run方法,我们把处理逻辑都写在了 handle方法中,仔细查看代码会发现 run方法定义父类中, run方法会中会调用子类中定义的 handle方法来完成任务处理

1.7K20

Laravel 7发行说明

Artisan test 命令 test 命令由 Nuno Maduro 贡献 除了 phpunit命令之外,现在可以使用 test Artisan 命令运行测试。...此外,运行器将在第一次测试失败时自动停止: php artisan test 可以传递给 phpunit 命令的任何参数也可以传递给 Artisan test 命令: php artisan test...自定义代码 自定义代码由 Taylor Otwell贡献 Artisan 控制台的 make 命令用于创建各种类,例如控制器,任务,迁移和测试。 这些类是根据输入填充值使用「桩代码」生成文件的。...为此,Laravel 7提供了 stub:publish 命令来发布最常见的自定义代码: php artisan stub:publish 发布的桩代码将位于应用程序根目录中的 stubs 目录中。...当使用 Artisan 的 make 命令生成它们的相应类时,这些桩代码所做的任何更改都会反映出来。

9K20
领券