Tinker Command

Table of contents

  1. Overview
  2. Requirements
  3. Starting Tinker
  4. Examples

1. Overview Table of Contents

The tinker command gives you an interactive REPL (Read-Eval-Print Loop) for your application. It allows you to interact with your models, database, and framework utilities without running the full application.

This is extremely useful for debugging, testing, and development.


2. ✅ Requirements Table of Contents

You must install psysh as a dev dependency first:

composer require --dev psy/psysh


3. 🚀 Starting Tinker Table of Contents

In your project root:

php console tinker

YOu will see a prompt:

Psy Shell v0.12.0 (PHP 8.x — cli) by Justin Hileman
>>>


4. 💡 Examples Table of Contents

1️⃣ Access Models

use App\Models\Users;
$admin = Users::findById(1);
print_r($admin);


2️⃣ Test Utilities

use Core\Helper;
Helper::currentPage();


3️⃣ Read Environment Variables

use Core\Lib\Utilities\Env;
Env::get('APP_DOMAIN');


4️⃣ Manually Validate a Model

use App\Models\Users;
$user = new Users();
$user->email = 'invalid-email';
$user->runValidation(new EmailValidator($user, ['field' => 'email', 'message' => 'Invalid email']));
print_r($user->getErrorMessages());


5️⃣ Run Raw SQL Queries

use Core\DB;
$db = DB::getInstance();
$results = $db->query("SELECT * FROM users")->results();
print_r($results);


6️⃣ Create New Records

use App\Models\Users;
$user = new Users();
$user->username = 'chad';
$user->email = 'chad@example.com';
$user->save();
echo $user->id;