推荐一个命令行应用开发工具——Laravel Zero

Posted coding01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一个命令行应用开发工具——Laravel Zero相关的知识,希望对你有一定的参考价值。

今天在 Laravel News 网站无意间看到「Laravel Zero」,主要被这个 Slogan 吸引住了。

像写 Laravel 代码那样优雅地写 console application;而且比 Laravel 和 Lumen 简单,极易上手。

下面我们开始写个简单的 demo 入手:

创建项目


// 1. 创建 notes 项目脚手架 composer create-project --prefer-dist
laravel-zero/laravel-zero notes // 重命名 php application app:rename notes // 创建新的命令 php notes make:command AddCommand

add note

在项目路径下 app/Commands/AddCommand.php,

  • 修改 $signature 值,命令值为:add,一个参数名为:note;
    具体参考:https://laravel.com/docs/5.6/artisan#defining-input-expectations

  • 修改 $description,描述每个 Command 含义;

  • 最后在 handle() 函数,写入执行 command 的代码

具体代码简单,直接看代码:

<?php

namespace App\Commands;
use Illuminate\Console\Scheduling\Schedule;

use Illuminate\Support\Facades\Storage;
use LaravelZero\Framework\Commands\Command;

class AddCommand extends Command{    
   /**     * The signature of the command.     *     * @var string     */    protected $signature = 'add                            {note : the note description}';    
   /**     * The description of the command.     *     * @var string     */    protected $description = '增加一条记录';    
   
   /**     * Execute the console command.     *     * @return void     */    public function handle(): void    {        
       $this->info('增加一条记录');        Storage::append('notes', $this->argument('note'));        
       
       $this->notify('Notes', '增加了一条内容');    }    
       
    /**     * Define the command's schedule.     *     * @param  \Illuminate\Console\Scheduling\Schedule $schedule     *     * @return void     */    public function schedule(Schedule $schedule): void    {        
        // $schedule->command(static::class)->everyMinute();    } }

利用php notes命令,可以看到一些常用指令,同时可以看到已经增加了一个 command:

推荐一个命令行应用开发工具——Laravel Zero

测试一下,看效果:

推荐一个命令行应用开发工具——Laravel Zero

推荐一个命令行应用开发工具——Laravel Zero

发送的 note 信息都保存到 storage/notes 文件里:

推荐一个命令行应用开发工具——Laravel Zero

发钉钉消息

简简单单几条代码,就可以做一个命令行应用,确实好用;

接下来,我们开始加点料。结合之前的钉钉发消息插件 ()。

我的出发点是:当我们在开会时,如果临时有消息和通知,就可以不需要任何钉钉客户端,利用「命令行」把内容推送到工作群里,效果会比较「极客」

以上是关于推荐一个命令行应用开发工具——Laravel Zero的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 的Artisan 命令学习

命令行应用程序 Web 前端的推荐通信模式

Laravel 命令行工具之多线程同步大批量数据 DB连接混乱 解决方案

Laravel 命令行常用命令

使用Docker compose编排Laravel应用

如何使用命令行清除 laravel 中的缓存?