在原生 PHP 中,能够经过 php -a
命令使用交互式 Shell:php
# php -a php > $msg = "Hello world!"; php > print $msg; Hello world! php > $num = array_sum([1, 2, 3]); php > print $num; 6
此外,还能够使用 PsySH ,相较于原生的 php -a
,PsySH 拥有更多高级特性,功能更增强大。git
经过 Composer 全局安装:github
composer g require psy/psysh:@stable
而后在命令行执行 psysh
便可进入交互式 Shell 了(需确保全局 Composer 的 bin
目录在系统路径中),在 PsySH 中能够编写各类代码,打印语句、计算表达式、编写函数等等。数据库
Laravel Tinker 就是基于 PsySH 实现的,经过 Tinker,咱们能够在命令行中实现与 Laravel 应用的各类交互,包括数据库的增删改查。app
在命令行中经过 php artisan tinker
便可进入 Laravel Tinker 的交互式 Shell。composer
在 Laravel Tinker 中,doc
命令可用于查看某个函数或方法的帮助文档,例如,查看辅助函数 config()
如何使用:函数
doc config show config
运行 php artisan tinker
就至关于从控制台启动了 Laravel 应用,在运行交互式命令前,tinker
命令会添加一些命令到 Shell,这些命令定义在 Laravel\Tinker\Console\TinkerCommand
的 $commandWhitelist
属性中:测试
protected $commandWhitelist = [ 'clear-compiled', 'down', 'env', 'inspire', 'migrate', 'optimize', 'up', ];
所以,能够在 Tinker Shell 中直接运行这些命令:ui
>>> inspire >>> env
能够使用控制台来建立一个新的模型,将其保存到数据库,而后查询这条记录。命令行
php artisan tinker >>> migrate >>> use App\User; >>> $user = new User(); >>> $user->name = "test"; >>> $user->email = "test@163.com"; >>> $user->password = bcrypt('123456'); >>> $user->save(); >>> $user = User::where('email', 'test@163.com')->first(); >>> factory(User::class, 3)->create(); >>> >>> $user = App\User::find(1); >>> $user->delete(); >>> >>> $log = app('log'); >>> $log->info('test');