0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel Tinkerで特定のメソッドを実行する

Posted at

Laravel Tinkerで特定のメソッドを実行する

Laravel Tinkerは、アプリケーション内で特定のメソッドを簡単に実行できる便利なツールだ。インスタンス化してメソッドを呼び出す方法や、引数を変数、連想配列、多次元配列で定義する方法を紹介する。

Tinkerの起動

プロジェクトのディレクトリに移動して、以下のコマンドでtinkerを起動する。

php artisan tinker

クラスのインスタンス化とメソッド実行

クラスをインスタンス化し、メソッドを実行することで、データベース操作やロジックを試せる。

// クラスのインスタンスを作成
$user = new App\Models\User();

// インスタンスメソッドを引数付きで実行
$user->calculateDiscount(100, 'VIP');

引数を変数や配列で定義してメソッドを実行

1. 変数を使って引数を渡す

// 変数で引数を定義
$amount = 150;
$category = 'Gold';

// メソッドを実行
$user->applyDiscount($amount, $category);

2. 配列を使って複数の引数を渡す

// 配列で引数を定義
$args = ['SUMMER2024', 30, 'VIP'];

// スプレッド演算子を使用してメソッドを実行
$user->applyCoupon(...$args);

連想配列を渡す場合

メソッドが連想配列(キーと値のペア)を引数として受け取る場合、連想配列を定義して渡すことができる。

// 連想配列で引数を定義
$data = [
    'code' => 'WELCOME2024',
    'discount' => 20,
    'user_type' => 'Premium'
];

// メソッドを実行
$user->applyPromotion($data);
  • $data: キーと値のペアで構成される連想配列。

多次元配列を渡す場合

多次元配列を渡す場合も、配列を定義してメソッドに渡すことが可能だ。

// 多次元配列で引数を定義
$complexData = [
    'user' => [
        'id' => 1,
        'name' => 'John Doe'
    ],
    'orders' => [
        ['order_id' => 101, 'amount' => 50],
        ['order_id' => 102, 'amount' => 75]
    ]
];

// メソッドを実行
$user->processOrder($complexData);
  • $complexData: 多次元配列で構成され、ネストされたデータをメソッドに渡す例。

静的メソッドの実行

静的メソッドは、インスタンス化せずにそのまま呼び出せる。

// 静的メソッドの実行
App\Services\DiscountService::calculateTotal(200, 15);
  • calculateTotal(200, 15): DiscountServiceクラスの静的メソッドを引数付きで実行する。

リターン値の確認

Tinkerでは、メソッドのリターン値をその場で簡単に確認できる。

$points = $user->getRewardPoints(5);
$points;
  • getRewardPoints(5): 引数5を渡してリワードポイントを取得するメソッドを実行する。

Tinkerを終了する

tinkerを終了するには、exitquitを入力するか、Ctrl + Dを押す。

exit

まとめ

  • インスタンス化: クラスのインスタンスを作成してメソッドを呼び出す方法。
  • 配列の活用: 変数、連想配列、多次元配列を使って柔軟に引数を定義し、メソッドに渡せる。
  • スプレッド演算子: 配列を展開してメソッドに渡す場合に使用する。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?