シェア
//プログラマーがLaravel Tinkerを使用する方法

プログラマーがLaravel Tinkerを使用する方法

Tinkerとは?

Laravel Tinkerは、PsySHパッケージを使ったLaravelフレームワークの強力なREPLです。
— Laravel Doc

Laravel Tinkerは、ルート(routes)を作成することなくデータベースとやり取りできるツールです。Laravel Tinkerは、「PHP artisan」と一緒に使用してオブジェクトを作成したり、データを編集したりします。「PHP artisan」はLaravelに標準で搭載されているコマンドラインインターフェースです。Tinkerは「PHP artisan」と連携するコマンドラインツールで、オブジェクトを作成したり、データベースにデータを挿入したりすることができます。

いつTinkerを使うべきか?

ソフトウェア開発者がクエリの結果をすばやく確認したいとき、通常はコントローラー、ルート、モデルなどいくつかの操作が必要です。しかし、php artisan tinkerを使用すれば、非常に迅速に結果を見ることができます。Tinkerは、stop()dd()、さらにはprint_r()を使用してデータと直接やり取りすることができます。

Tinkerはどのように動作するか?

Tinkerを始めるには、ターミナルを開き、php artisan tinkerと入力します。これにより、インタラクティブなコマンドライン環境が開きます。ここで、PHPのコマンドを入力して、Laravelアプリケーションとやり取りを行うことができます。例えば、User::all()を入力して、データベース内のすべてのユーザーを取得することができます。これで、アプリケーション内のユーザーオブジェクトのリストが表示されます。簡単で迅速でしょう?

php artisan tinker

1. データベースクエリ

  • 条件によるクエリ(複数条件):

\App\Models\Post::query() \

->with(‘user’) \

->where(‘count_view’, ‘>’, 200) \

->whereRaw(‘month(created_at) = ?’, [Carbon\Carbon::now()->month]) \

->orderByDesc(‘count_view’) \

->limit(10) \

->get();

  • レコードの追加:

$user = new App\Models\User;

$user->email = “[email protected]

$user->name = “RCVN”

$user->password = \Hash::make(‘gX6JgDbmNd)97FS*’)

$user->save();

  • データベース内のレコードの削除:

$user = App\Models\User::where(‘name’, ‘like’, ‘%leone%’)->first();

$user->delete();

2. Tinkerでの関数作成

関数は通常、複数の行から構成されますが、Tinkerでは行を下げることでコマンドの終了として認識します。したがって、Tinkerで関数を作成する場合は、\で各行の終了を示し、次の行を開始できます。

function sayHelloName($userId) { \

$user = App\Models\User::find($userId); \

return “Hello {$user->name}”; \

}

> sayHelloName(101)

= “Hello RCVN”

3. サイトのアップダウン(メンテナンスモード)

サイトをダウンさせます。

バグが修正された後、「アップ」サイトを再開します。

4. 関数やクラスのソースコードを見る

show <functionName>

5. Tinkerのコマンド

Artisanコマンドラインアプリケーションのように、Tinkerはさまざまなコマンドやユーティリティを提供しており、デバッグやコード実行のプロセスを簡素化します。下記にTinkerが提供するコマンドをリストアップしています(これらはTinker REPL内でhelpコマンドを使用して探索できます):

コマンド説明ショートカット
helpTinkerコマンドのリストを表示します。?
docオブジェクト、クラス、定数、メソッド、またはプロパティのドキュメントを表示します。rtfm, man
lsローカル変数、メソッド、定数、クラスのリストを表示します。list, dir
showオブジェクト、クラス、定数、メソッド、またはプロパティのコードを表示します。
wtf直近の例外のスタックトレースを表示します。last-exception, wtf?
whereami現在のコードの位置を表示します。
trace現在のコールスタックを表示します。
throw-upPsy Shellから例外をスローします。
buffer入力バッファの内容を表示または削除します。buf
clearPsy Shellの画面をクリアします。
historyPsy Shellの履歴を表示します。hist
exit現在のセッションを終了し、呼び出し元に戻ります。quit, q
clear-compiledコンパイルされたクラスファイルを削除します。
downアプリケーションをメンテナンスモードにします。
env現在の環境設定を表示します。
optimizeフレームワークを最適化し、パフォーマンスを向上させます。
upアプリケーションをメンテナンスモードから復帰させます。
migrateデータベースのマイグレーションを実行します。
schedule:list スケジュールに設定されているタスクをリスト表示します。
schedule:runスケジュールタスクを実行します。

Laravel Tinkerをブラウザ上で使用する

もしターミナルでTinkerを使っている場合、長いコードをコピーして貼り付ける必要があるときに不便さを感じたことがあるかもしれません(Tinkerでの関数作成のような場合)。その不便さを解消するために、laravel-web-tinkerが必要です。

他のパッケージと同様に、以下のコマンドで簡単にインストールできます:

composer require spatie/laravel-web-tinker –dev

php artisan web-tinker:install

php artisan vendor:publish –provider=”Spatie\WebTinker\WebTinkerServiceProvider” –tag=”config”

ファイルのconfigを変更します:

次に、localhost:8000/tinker にアクセスして、体験を楽しんでください:

まとめ

この記事では、ターミナルおよびウェブインターフェースでTinkerを使う基本的な方法について紹介しました。読者の皆さんにとって有益な情報を提供でき、Laravelを「マスター」する道のりに役立ててもらえれば幸いです。

参考文献: Laravel Doc

Laravel web Tinker

Hồ Nguyễn Văn NhậtPHP開発者

今すぐ応募







    福利厚生

    給料・ボーナス制度

    社員の感情・願望を理解しているので、リバークレーンベトナムは特に年2回の定期昇給制度を設けています。毎年6月と12月に評価を行い、毎年1月と7月に給与が変更されます。また、社員は月次と年次の優秀な個人には定期的な業績賞与が別で支給されます。

    日本研修制度

    世界中の新しい技術分野に触れるために、社員を日本にオンサイトさせる方針があります。さらに、技術分野か管理分野かのキャリアパスは社員の決定次第です。

    毎年社員旅行

    リバークレイン・ベトナムは、スタッフに挑戦の機会を提供するだけでなく、年に一度の魅力的な旅行で彼らを楽しませています。エキサイティングなガラディナーやチームビルディングゲームは、リバークレインのメンバー同士の絆をさらに深める手助けをします。

    リバークレイン イベント

    チームビルディング・ファミリーデー・お夏休み・中秋節などのイベントはチーム内のメンバーが接続出来るしお互いに自分のことを共有出来る機会です。ご家族員に連携する際にはそれも誇りに言われています。

    社会保険制度

    リバークレーンベトナムは従業員に社会保険、医療保険、失業手当などの社会保険制度があります。当社は、これらの保険に関するあらゆる手続きをスタッフに必ずサポートしています。さらに、他の保険契約も考慮され、検討されています。

    他福利

    社員向けの活動をサポートすることもあります。 ・文化・芸術・スポーツクラブの運営費用 ・技術研究の教科書を購入する金額 ・エンジニア試験・言語能力試験を受験料 ・ソフトスキルのセミナー・コースの参加費 ・等 また会社政策通り、他のベネフィットもあります。

    © 2012 RiverCrane Vietnam. All rights reserved.

    Close