Introduction à Laravel Tinker
En PHP natif, vous pouvez utiliser le shell interactif via le php -a
commande :
# php -a php > $msg = "Hello world!"; php > print $msg; Hello world! php > $num = array_sum([1, 2, 3]); php > print $num; 6
De plus, vous pouvez également utiliser PsySH Par rapport au php -a
natif, PsySH a des fonctionnalités plus avancées et est plus puissant.
Installez globalement via Composer :
composer g require psy/psysh:@stable
Ensuite, exécutez psysh
sur la ligne de commande pour entrer dans le shell interactif (assurez-vous que le répertoire bin
de global Composer est dans le chemin système) , dans Vous pouvez écrire divers codes dans PsySH, imprimer des instructions, calculer des expressions, écrire des fonctions, etc.
Laravel Tinker est implémenté sur la base de PsySH. Grâce à Tinker, nous pouvons réaliser diverses interactions avec les applications Laravel en ligne de commande, y compris des ajouts, des suppressions, des modifications et des requêtes de la base de données.
Appuyez sur php artisan tinker
sur la ligne de commande pour accéder au shell interactif de Laravel Tinker.
Afficher la documentation d'aide
Dans Laravel Tinker, la commande doc
peut être utilisée pour afficher la documentation d'aide d'une fonction ou d'une méthode, par exemple, afficher la fonction d'assistance config()
Comment utilisez :
doc config show config
Exécuter la commande Artisan
Exécuter php artisan tinker
équivaut à démarrer l'application Laravel depuis la console. Avant d'exécuter la commande interactive, la commande tinker
ajoutera quelques commandes au fichier. Shell Ces commandes sont définies dans Dans l'attribut LaravelTinkerConsoleTinkerCommand
de $commandWhitelist
:
protected $commandWhitelist = [ 'clear-compiled', 'down', 'env', 'inspire', 'migrate', 'optimize', 'up', ];
Par conséquent, vous pouvez exécuter ces commandes directement dans Tinker Shell :
>>> inspire >>> env
Test du code Laravel
Vous pouvez utiliser la console pour créer un nouveau modèle, l'enregistrer dans la base de données et rechercher cet enregistrement.
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');