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

Laravel artisan以编程方式运行带有任何参数且不带键的命令

基础概念

Laravel Artisan 是 Laravel 框架提供的一个命令行工具,它允许开发者通过命令行执行各种任务,如生成控制器、模型、迁移文件等。Artisan 命令可以通过命令行直接运行,也可以通过编程方式调用。

相关优势

  1. 自动化:通过编程方式运行 Artisan 命令可以实现任务的自动化,减少手动操作。
  2. 灵活性:可以根据不同的条件或环境变量来决定运行哪些命令。
  3. 集成:可以与其他系统或脚本集成,实现更复杂的流程控制。

类型

Laravel Artisan 命令分为两类:

  • 内置命令:Laravel 自带的命令,如 php artisan make:controller
  • 自定义命令:开发者可以创建自己的命令来执行特定的任务。

应用场景

  1. 自动化部署:在持续集成/持续部署(CI/CD)流程中自动运行数据库迁移或种子文件。
  2. 测试环境设置:在测试环境中自动生成测试数据。
  3. 批量操作:批量生成文件或执行数据库操作。

问题及解决方法

问题:如何以编程方式运行带有任何参数且不带键的命令?

原因

Laravel Artisan 命令通常通过命令行运行,但有时需要在代码中调用这些命令,特别是在自动化脚本或测试中。

解决方法

可以通过 Artisan::call 方法以编程方式运行 Artisan 命令,并传递参数。以下是一个示例:

代码语言:txt
复制
use Illuminate\Support\Facades\Artisan;

// 运行带有参数的命令
$result = Artisan::call('make:model', ['Post']);

// 输出命令的输出
echo $result;

在这个示例中,make:model 是命令,Post 是参数。

示例代码

代码语言:txt
复制
use Illuminate\Support\Facades\Artisan;

// 运行带有参数的命令
$result = Artisan::call('make:model', ['Post']);

// 输出命令的输出
echo $result;

参考链接

总结

通过 Artisan::call 方法,可以在 Laravel 应用程序中以编程方式运行 Artisan 命令,并传递所需的参数。这种方法在自动化任务和集成脚本中非常有用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 Laravel 中编写高级的 Artisan 命令

参数和选项 通过上一篇教程,我们已经知道 $signature 属性可以配置命令名称,除此之外,还可以将 Artisan 命令的参数和选项定义在里面,添加参数和选项到 Artisan 命令非常简单,我们以系统自带的...= 'welcome:message {name : 用户名} {--city : 来自的城市}'; 在命令类中我们可以通过 this->argument() 方法获取参数值,不带参数返回所有参数值...; } 这样,我们运行 php artisan welcome:message,带上参数和选项信息,就可以输出对应的欢迎信息了: 用户交互 除了在命令行运行命令时手动设置参数值和选项值获取输入信息之外...,Artisan 还支持通过其它方式获取用户输入,比如用户在执行命令期间通过键盘输入参数信息。...正如你所看到的,参数和选项通过参数名和选项名作为键,如果选项没有值的话,以 true 或 false 替代。

8.3K20
  • 创建并运行一个新的 Laravel 项目

    注:本系列教程基于 Laravel 5.7+ 1、创建一个新的 Laravel 项目 正如官方文档所言,有两种方式可以创建一个新的 Laravel 项目,这两种创建方式都是从命令行执行的:第一种是通过全局的...artisan:允许你在项目根目录下通过 php artisan 执行 Artisan 命令 .gitignore 和 .gitattributes:Git 配置文件 composer.json 和 composer.lock...这些配置文件都会返回一个数组,数组中的每个值都可以通过配置键获取(配置键以配置文件名为前缀,以「.」号分隔数组层级),例如,如果你在 config/services.php 中定义了如下配置: // config...4、运行 安装好 Laravel 项目,了解了目录结构及其作用,以及如何对项目进行配置后,我们就可以运行这个应用了,启动方式因开发环境而异,我们在前面的 Homestead、Laradock、Valet...,所以可以通过以下命令运行示例测试: .

    6.9K30

    Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】

    本教程示例代码见:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷的解决方式就是去看我的示例代码。...本文需要你付出一定的心智去解决一些或大或小的隐藏任务,以达到真正理解 Laravel 运行逻辑的目的。 1. 安装 许多人被拦在了学习Laravel的第一步,安装。...推荐以 “修改 composer 的配置文件” 方式配置。...Laravel 已经为我们准备好了 Auth 部分的 migration,运行以下命令执行数据库迁移操作: php artisan migrate 得到的结果如下: 如果你运行命令报错,请检查数据库连接设置...这里需要强调一下,用命令行的方式创建文件,和自己手动创建文件没有任何区别,你也可以尝试自己创建这两个 Model 类。 Model 即为 MVC 中的 M,翻译为 模型,负责跟数据库交互。

    3.5K20

    Laravel在命令行问用户要数据!

    引言 上一章我教会大家如何在3分钟的时间,通过laravel跻身geek之列(听一下就好[捂嘴.jpg])。实现了一个简单的命令行,和一个复杂的发送邮件通知的功能。...可是细心的读者你发现了没有,使用自定义的命令行,全程我们没有输入一个参数,没有一个数据,这,这,这,太不寻常了吧! linux下的命令,没有一个是不带参数自己玩儿的!...所以本文教你改造命令行,做一个标准的应用程序。 事前询问 首先我们要区分获取参数的两种方式,一种是在输入命令行时直接给定的,还有一种是在程序运行过程中,等待用户输入信息之后才能继续。...先说第一种方式,也分为两种,一种叫参数 argument,一种叫选项 option。在laravel程序里,这两个名字没有变化。...用法类似,获取单个的选项值,只要传入键名就可以了: $this->option('userId'); 为了演示两个方法的用法,我们为命令行调用方式声明两种获取参数的方式: protected $signature

    52520

    Laravel在命令行问用户要数据!

    引言 上一章我教会大家如何在3分钟的时间,通过laravel跻身geek之列(听一下就好[捂嘴.jpg])。实现了一个简单的命令行,和一个复杂的发送邮件通知的功能。...可是细心的读者你发现了没有,使用自定义的命令行,全程我们没有输入一个参数,没有一个数据,这,这,这,太不寻常了吧! linux下的命令,没有一个是不带参数自己玩儿的!...所以本文教你改造命令行,做一个标准的应用程序。 事前询问 首先我们要区分获取参数的两种方式,一种是在输入命令行时直接给定的,还有一种是在程序运行过程中,等待用户输入信息之后才能继续。...先说第一种方式,也分为两种,一种叫参数 argument,一种叫选项 option。在laravel程序里,这两个名字没有变化。...用法类似,获取单个的选项值,只要传入键名就可以了: $this->option('userId'); 为了演示两个方法的用法,我们为命令行调用方式声明两种获取参数的方式: protected $signature

    87900

    Laravel 7.x 使用 keyspace notification 监听不到 Key 过期事件

    这个在 Laravel 中其实有更好的选择方式 队列,使用延时队列 ProcessPodcast::dispatch($podcast)->delay(now()->addMinutes(30)); 但是我还想到一种方案就是使用...参考如下表格: 字符 发送的通知 K 键空间通知,所有通知以 keyspace@ 为前缀 E 键事件通知,所有通知以 keyevent@ 为前缀 g DEL 、 EXPIRE 、 RENAME...等类型无关的通用命令的通知 $ 字符串命令的通知 l 列表命令的通知 s 集合命令的通知 h 哈希命令的通知 z 有序集合命令的通知 x 过期事件:每当有过期键被删除时发送 e 驱逐(evict)事件...:每当有键因为 maxmemory 政策而被删除时发送 A 参数 g$lshzxe 的别名 好了,言归正传,接下来在 Laravel 中,我是新建一个 Command 命令 php artisan make..._2000123421',5,'2000123421'); }); 接下来运行行项目 我们首先在 Laravel 项目中运行 控制台命令 php artisan order:expire 接下来在 red-cli

    1.7K10

    Redis 分布式锁在 Laravel 任务调度底层实现中的应用

    /app/artisan schedule:run >> /dev/null 2>&1 该任务每分钟调度一次,执行的是上述定义调度任务的 Laravel 项目提供的 Artisan 命令 schedule...当 Laravel 应用处于维护模式下,默认不会执行任何任务调度。...以 Artisan 命令类型的调度任务为例,所有的调度任务都是 Illuminate\Console\Scheduling\Event 对象实例,最终执行的则是通过 Application::formatCommandString...以确保操作的原子性,但是在 Redis 中运行 LUA 脚本本身也是个原子操作,所以上述通过 LUA 脚本包裹的 EXISTS 和 SETEX 指令整体运行依然是原子操作,所以我们也可以通过这种方式实现基于...可以看到,在 Laravel 底层,其实是通过面向对象的 PHP 代码对 Cron 条目 Shell 命令进行了封装,以便通过更加灵活的方式来管理和维护调度任务的运行。

    6.2K21

    Laravel 通过迁移文件定义数据表结构

    每一张新表、每个新的字段、索引、以及外键都可以通过编写代码来定义,这样做的好处是在任何新环境中,你可以通过执行一个命令几秒钟就搞定项目的数据库结构。...以 Laravel 自带的 users 表迁移文件为例,代码如下所示: 正如你所看到的,这个迁移类包含了 up 方法和 down 方法,分别用于创建 users 表和删除 users 表。...创建迁移文件 正如我们在 Artisan 命令中所提到的,Laravel 提供了一个 Artisan 命令 make:migration 帮助我们快速生成数据库迁移文件,该命名包含一个参数,就是要创建的迁移的名称...回滚要稍微复杂点,Laravel 支持多种形式的回滚,如果只回滚最后一个迁移文件的变更,可以通过: php artisan migrate:rollback 来实现,如果要回滚多个迁移文件的变更,可以通过...--step= 指定步数(按照迁移文件生成时间逆序执行): php artisan migrate:rollback --step=5 如果是要回滚所有迁移文件的变更,将数据库恢复到初始状态,需要运行以下命令

    2.1K21

    Laravel5.5之事件监听、任务调度、队列

    2.2 command方式 生成命令:php artisan make:command SayHello 的参数是这个任务类的实例: 利用模型工厂生成30个用户: ?...3.4 运行队列处理器 php artisan queue:work Tips:要注意,一旦 queue:work 命令开始,它将一直运行,直到你手动停止或者你关闭控制台 处理单一任务:你可以使用 --...拓展:使用 Beanstalkd 管理队列,Supervisor 则是用来监听队列的任务,并在队列存在任务的情况下自动帮我们去执行,免去手动敲 php artisan 的命令,保证自己的队列可以正确执行...参考文档:Laravel5.5 的事件系统 参考视频01:Coding 10编程原动力 - Laravel5.5 事件监听 参考视频02:Coding 10编程原动力 - Laravel5.5 定时任务

    1.4K20

    3分钟短文 | Laravel 内3种数据校验的写法,你喜欢哪一个?

    引言 web应用程序公开访问几乎没有不带用户交互的,难免要接收用户输入的奇奇怪怪的东西。对于后端程序,必须对输入的内容进行有效性过滤。 ? 这就是本文的重点,说一说laravel中输入请求的校验。...在第一个规则下,验证了names字段必须为array类型,且长度至少为3。 接着使用星号匹配数组内元素,要求都是string字符串,且不得重复 distinct,且每个字符串长度最小为3。...laravel 5.5 以后的版本,你无需手动实例化 Validaor 对象,可以在 Request 对象直接调用 validate 方法实现。....*" => "required|string|distinct|min:3", ]); 上面两种方式校验之后,都可以使用 $validator->fails() 方法判断是否通过,如果 true 就是有错误...自定义验证 laravel内你也可以自定义验证规则,使用 artisan 命令新建一个验证类: php artisan make:request SomeRequest

    1.3K20

    通过 Laravel 创建一个 Vue 单页面应用(三)

    如果你有一个运行在你设备上的 MySQL 实例,你可以使用以下命令行相当快速创建一个新数据库(假设你本地环境没有设置密码): mysql -u root -e"create database vue_spa...--seed 如果你愿意,你也可以使用单独的artisan db:seed命令!...('App\User', 10)->make(); }); 我们来新建一个控制器类,这样可以在生产环境使用 php artisan route:cache 来获得一定的益处,这种方式不支持闭包。...本教程未向您展示如何构建分页,因此您可以自己找到(或创建)自己喜欢的分页! 分页是一种很好的方法,可以向您展示如何以编程方式使用 Vue 路由器在 SPA中 导航。...我还要指出的是,我向您展示 了上一个和下一个动作的元素,主要是为了演示 通过编程方式进行导航 的过程 vue-router,您很可能会使用它 来自动在分页路线之间导航

    5.2K10

    LaravelLumen 使用 redis队列

    laravel中 app/Jobs 不存在,在运行 Artisan 命令 make:job 的时候,它将会自动创建。... 接口, 告诉 Laravel 将该任务推送到队列,而不是立即运行: lumen中 app/Jobs目录已经存在,由于不能执行artisan命令,直接复制目录中的ExampleJob.php即可。...dispatch 方法需要的唯一参数就是该任务的实例: lumen中用法: 4、指定最大失败次数 指定队列任务最大失败次数的一种实现方式是通过 Artisan 命令 --tries 切换: php...9、运行队列进程 Laravel 自带了一个队列进程用来处理被推送到队列的新任务。你可以使用 queue:work 命令运行这个队列进程。...简单处理可以使用 php artisan queue:work --daemon & 10、运行队列监听器 开始进行队列监听 laravel 包含了一个 Artisan 命令来运行推送到队列中的任务的执行

    2.4K20

    开始laravel项目+理解

    大家好,又见面了,我是你们的朋友全栈君。 一.laravel运行理解 Ⅰ.开始,public/index.php 此文件有两个作用。...可以通过这个命令,利用新安装依赖带有的autoload信息,自动给你配置东西,达到目的:项目里可以直接用新依赖提供的类。不用你重新安装啥的,就是图个方便。...Artisan 理解 composer 与artisan 傻傻分不清 artisan 是 laravel提供的命令行接口,用来与larave 应用程序进行交互。...选项) 详见:https://learnku.com/docs/laravel/6.x/artisan/5158#arguments 参数跟函数感觉起来差不多。虽然说写法有点区别,参数 的写法是名字。...选项带有两个横杠 — 参数是必填的东西,选项是可填的东西,填/不填的情况下可指示布尔值。

    6.7K10

    基于 RoadRunner 驱动 Octane 构建高性能 Laravel 应用

    (Worker),你也可以在基于 Octane 启动服务器时通过 --workers 参数手动指定 Worker 数量: php artisan octane:start --workers=4 PHP...应用常驻内存带来的另一个问题是内存泄露,你可以通过 --max-request 参数指定一个 Worker 最多能够处理的请求数来解决这个问题: php artisan octane:start --...和 boot 方法只有第一次加载时会被调用,这就是所谓的「常驻内存」),所以我们在切换到基于 Laravel Octane 驱动 的 HTTP 服务器时,对于服务注入要格外小心,不要将后续会变动的对象以单例模式注入服务容器...请求注入 请求注入和服务容器类似,因为不同用户请求对象不同,并且可能带有认证状态,所以不能在不同请求之间共享,也就不能作为构造函数参数以单例模式注入服务容器: use App\Service; /**...配置注入 应用配置也是一个会在运行时发生变更的对象,所以不应该在单例模式服务注入时以构造函数参数形式传入: use App\Service; /** * Register any application

    2K30

    在 Laravel 中编写第一个 Artisan 命令

    我们在执行 php artisan 命令时,artisan 就指的是根目录下的 artisan 文件,所以命令需要在应用根目录下执行,然后 artisan 之后的部门都是作为请求参数被控制台应用获取并处理...内置 Artisan 命令 运行 php artisan list 命令后,你会看到新安装的 Laravel 应用默认提供了很多 Artisan 命令,我们不可能把每一个都讲一遍下来(实际上,我们会在每篇教程中分散提到...Artisan 命令时可以传入的选项参数: -q:禁止所有输出 -v、-vv、-vvv:命令执行输出的三个级别,分别代表正常、详细、调试 --no-interaction:不会问任何交互问题,所以适用于运行无人值守自动处理命令...--env:允许你指定命令运行的环境 --version:打印当前 Laravel 版本 上述选项可以单独运行,也可以和具体命令一起运行。...welcome:message 该命令的第一个参数就是要创建的 Artisan 命令类名,还可以传递一个选项参数 --command 用于自定义该命令的名称(不指定的话会系统会根据类名自动生成)。

    3.1K20
    领券