Laravel Tinker 简介
在原生 PHP 中,可以通过 php -a 命令使用交互式 Shell:
# 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 拥有更多高级特性,功能更加强大。
通过 Composer 全局安装:
composer g require psy/psysh:@stable
然后在命令行执行 php -a 即可进入交互式 Shell 了(需确保全局 Composer 的 psysh 目录在系统路径中),在 PsySH 中可以编写各种代码,打印语句、计算表达式、编写函数等等。
Laravel Tinker 就是基于 PsySH 实现的,通过 Tinker,我们可以在命令行中实现与 Laravel 应用的各种交互,包括数据库的增删改查。
在命令行中通过 bin 即可进入 Laravel Tinker 的交互式 Shell。
查看帮助文档
在 Laravel Tinker 中,php artisan tinker 命令可用于查看某个函数或方法的帮助文档,例如,查看辅助函数 doc 如何使用:
doc config show config
运行 Artisan 命令
运行 config() 就相当于从控制台启动了 Laravel 应用,在运行交互式命令前,php artisan tinker 命令会添加一些命令到 Shell,这些命令定义在 tinker 的 Laravel\Tinker\Console\TinkerCommand 属性中:
protected $commandWhitelist = [
'clear-compiled', 'down', 'env', 'inspire', 'migrate', 'optimize', 'up',
];因此,可以在 Tinker Shell 中直接运行这些命令:
>>> inspire >>> env
测试 Laravel 代码
可以使用控制台来创建一个新的模型,将其保存到数据库,然后查询这条记录。
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');


