网站备案要幕布照,平凉北京网站建设,嘉瑞建设集团有限公司网站,惠州网站建设电话通过 Tinker 实现 Laravel 命令行交互式 Shell由 学院君 创建于2年前, 最后更新于 1年前版本号 #19508 views4 likes0 collectsREPL 与 PsySHLaravel 自带了一个功能强大的 REPL —— Tinker#xff0c;所谓 REPL#xff0c;是 Read–Eval–Print-Loop 的缩写#xff0c;这是…通过 Tinker 实现 Laravel 命令行交互式 Shell由 学院君 创建于2年前, 最后更新于 1年前版本号 #19508 views4 likes0 collectsREPL 与 PsySHLaravel 自带了一个功能强大的 REPL —— Tinker所谓 REPL是 Read–Eval–Print-Loop 的缩写这是一种交互式 Shell获取用户输入并执行它们然后将结果打印出来返回给用户。在原生 PHP 中我们也可以使用类似的交互式 Shell通过 php -a 命令即可此外还可以通过 PsySH 实现相较于原生的 php -aPsySH 拥有更多高级特性因此功能更加强大。在使用 PsySH 之前需要通过 Composer 全局安装composer g require psy/psysh:stable然后就可以在命令行执行 psysh 进入交互式 Shell 了(确保全局 Composer 的 bin 目录在系统路径中)在 PsySH 中我们能编写各种代码打印语句、计算表达式、编写函数等等甚至还支持基于 XDebug 进行代码调试、与系统 Shell 集成等等更多使用方法可以参考官方文档。Laravel Tinker 就是基于 PsySH 实现的与 Artisan 主要用于编写和执行 Artisan 命令不同通过 Tinker我们可以在命令行中实现与 Laravel 应用的各种交互包括数据库的增删改查。Laravel Tinker 使用下面我们一起来看一下如何通过 Tinker 赋能本地 Laravel 开发。在命令行中通过 php artisan tinker 即可进入 Laravel Tinker 的交互式 Shell。查看帮助文档在 Laravel Tinker 中doc 命令可用于查看某个函数或方法的帮助文档例如我们想查看辅助函数 config() 如何使用可以这么做就会将 config() 函数的文档信息打印出来如果你还想进一步查看该函数的代码通过 show 命令来实现是不是很方便当然仅限于函数查看类方法虽然支持但是还是通过 PHPStorm 的跳转功能快(因为要输入完整的命名空间)。运行 Artisan 命令此外每次我们运行 php artisan tinker 就相当于从控制台启动了 Laravel 应用在运行交互式命令前tinker 命令会添加一些命令到 Shell这些命令定义在 Laravel\Tinker\Console\TinkerCommand 的 $commandWhitelist 属性中protected $commandWhitelist [clear-compiled, down, env, inspire, migrate, optimize, up,];因此你可以在 Tinker Shell 中直接运行这些命令测试 Laravel 代码看完前面两个功能可能你对 Tinker 还是提不起来兴趣毕竟都是可以借助其他方式可以快速完成的甚至效率更高。接下来要介绍的则是 Tinker 最有用的功能了我们可以在 Tinker Shell 中演练测试 Laravel 代码。比如模型和服务你可以使用控制台来创建一个新的模型将其保存到数据库然后查询这条记录(如果之前没有运行过 php artisan migrate 命令创建 users 表先运行 migrate 命令创建)当然我们还可以通过工厂方法 factory() 批量创建用户这在测试的时候很方便比如说我们随机创建三个用户此外Tinker 还是个手动触发队列任务、体验服务和事件的好地方例如下面我们从容器获取一个日志服务并新增一条日志打开 storage/logs/laravel.log就会看到日志已经写进去了[2018-11-21 02:13:05] local.INFO: test了解更多这里我们只是介绍了一些入门级的使用示例更多好玩的东西有赖于你自己在日常开发中去探索PsySH 官方文档 有很多资源让你了解 Tinker 的底层如果你想了解更多关于 Tinker 的内容可以去 Tinker 的 GitHub 仓库逛逛。