【Laravel】 Tinkerで手軽にDB操作

人気のphpフレームワーク「Laravel」には、便利な機能がたくさんあります。
今回は、phpやフレームワーク初心者にもおすすめな対話型コンソール「Tinker(ティンカー)」の使い方について。
DBの操作や関数のテストを手軽におこなえるTinkerの魅力をご紹介します。

1.Tinkerとは?

Laravel Tinker is a powerful REPL for the Laravel framework.
(出典:laravel/tinker - GitHub)

REPL(Read-Eval-Print Loop)」というのは、入力・評価・出力のループのこと。

つまり、入力した内容を即座に評価して出力してくれる「対話型の入出力環境」のことを指しています。

2.Tinkerの使用例

ちなみにこの「Tinker」は、Laravel環境に標準で備わっているコマンドラインツールです。

環境を立ち上げたらすぐに使うことができます。以下のコマンドをたたいてみましょう。

>>php artisan tinker

➀Tinkerを使ってできること

〇helpを確認する

Tinkerのコンソールが起動したら、とりあえずコンソール内でできることを確認。

以下のコマンドをたたいてみましょう。

>>help

Tinkerのコンソール内で使用できるコマンドが一覧表示されます。

過去のコマンド履歴が見れるhistoryやphp関数のドキュメントが確認できるdocなど、様々なコマンドがあるので試してみるとよいでしょう。

〇PHP関数の動作確認

私が初心者にTinkerをおすすめする理由はこちら。

PHPやLaravelの関数の動作を確認したいときは、とりあえずTinkerで関数を実行してみるのが手っ取り早いです。

関数の返り値がnullか0か、配列かコレクションかEloquentかなど、勘違いしたまま使ってしまうとバグのもとになりかねませんよね。

関数のシンタックスが不安なときに、手軽に確認できる環境があるのは助かります。

〇DBの操作

TinkerはDBの操作もおこなうことができます。

テスト用にレコードを登録してみたり、登録済みのレコードを編集したりと、通常のModel操作をコンソールから実行可能。

また、同じくLaravel標準機能の「Factory」や「Faker」でデータを量産することできます。

ただし、DBの操作はそのまま反映されてしまうので要注意。

蛇足ですが、「Ruby on Rails」の「rails console」ならDBの操作がロールバックされます。

Tinkerにもこうした機能がついてくれると嬉しいですね。

➁個人的なTinkerの使いどころ

〇定義した関数の呼び出し・動作確認

Tinkerで操作できるのはDBだけではありません。

ModelやController、Configをはじめとして、グローバルに使用するHelper関数など、Laravelで提供されている機能や関数が使えます。

プロジェクト内で定義した関数の結果が期待どおりになっているかどうか、軽くテストしたいときなどに。

〇ライブラリのテスト

新しくライブラリを使用する場合、いろいろ操作を試してみて使用感を確認したいときがあると思います。

いきなりコーディングから入ってもいいですが、私はまずコンソールで基本的な使い方をテストしてから実際のコーディングをしています。

〇DBからのクエリ取得チェック

DBからデータを取得するクエリを組むとき、修正ごとにページを再読み込みして結果を確認するのはちょっと面倒ですよね。

Tinkerは対話型のコンソールでクエリを実行することができるので、適宜結果を確認しながらクエリを組み立てられます。

まとめ

  • TinkerはLaravel標準で使える対話型のコマンドラインツール
  • PHPやLaravelの関数が実行できる初心者の強い味方
  • DBのレコード操作もかんたんにすることができる
手軽に使えるのが一番の魅力!

Laravelを使いはじめた当初からずっとお世話になっているTinkerですが、一番の魅力はなんといってもその手軽さでしょう。

対話型で即座に結果が返ってきてくれるので、PHPを使ってちょっと遊びたいときなどにぜひ使ってみてください。

前へ

【Laravel】 ダミーデータを自動生成しよう ~前編~

次へ

【Git】Gitを知ろう! 昔のソース管理とGit