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
登入後複製
然後在命令列執行psysh
即可進入互動式Shell 了(需確保全域Composer 的bin
目錄在系統路徑中),在PsySH 中可以寫各種程式碼,列印語句、計算表達式、寫函數等等。
Laravel Tinker 是基於 PsySH 實現的,透過 Tinker,我們可以在命令列中實現與 Laravel 應用的各種交互,包括資料庫的增刪改查。
在命令列中透過 php artisan tinker
即可進入 Laravel Tinker 的互動式 Shell。
查看幫助文檔
在Laravel Tinker 中,doc
命令可用於查看某個函數或方法的幫助文檔,例如,查看輔助函數config( )
如何使用:
doc config show config
登入後複製
運行Artisan 命令
運行php artisan tinker
就相當於從控制台啟動了Laravel 應用,在運行交互式命令前,tinker
指令會加入一些指令到Shell,這些指令定義在Laravel\Tinker\Console\TinkerCommand
的$commandWhitelist
屬性中:
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');
登入後複製