在原生 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');