Tinkerwell 4 is out now! See what's new or buy now.
Tinkerwell background image
Tinkerwell Logo Tinkerwell

Alex Garrett-Smith has invited you to use Tinkerwell!

If you buy via this link, you'll get access to 14 months of Tinkerwell updates.

Tinkerwell - The PHP Scratchpad

Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.

Tinkerwell
SQL
1 2 3 4 5
// Get a user from your database
$user = User::find(42);

// Add Tinkerwell to the user's apps
$wasAdded = $user->attachApp(Tinkerwell::class);
                            
SELECT * FROM `users` WHERE `id` = 42
App\Models\User {#3846
      id: 42
      name: "Marcel Pociot"
      email: "[email protected]"
      provider_id: "804684"
      provider_token: "ghu_zgN5qayX1!wYA2xoAD4JZm43QI9MvqR04Tf8d"
      provider_refresh_token: null
      created_at: "2023-09-01 11:45:12"
      updated_at: "2023-09-11 13:24:19"
      current_installation_id: null
      username: "mpociot"
      avatar: "https://avatars.githubusercontent.com/u/804684?v=4"
      current_account_id: 56
      provider: "github"
      account_reminder_sent_at: null
      provider_http_token: null
      provider_url: null
    }
    
INSERT INTO `user_apps` ( `user_id`, `app_id` ) VALUES ( 42, 1 )
true
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
[!] Aliasing 'User' to 'App\User' for this Tinker session.
App\User {#4076
  #connection: "mysql"
  #table: "users"
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  +preventsLazyLoading: false
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #escapeWhenCastingToString: false
  #attributes: array:21 [
    "id" => 49
    "name" => "Marcel"
    "email" => "[email protected]"
    "password" => "$2y$10$7UxZSEfJtplRlH.e7eMUDe8WGuwrmrhZhP9WhGO.c.H7g14tqDOGm"
    "quaderno_id" => ""
    "remember_token" => null
    "created_at" => "2023-06-08 09:16:07"
    "updated_at" => "2023-09-29 11:36:42"
    "package" => "premium"
    "paddle_id" => null
    "confirmed_at" => "2023-06-08 09:16:20"
    "confirmation_code" => null
    "public" => 0
    "twitter" => null
    "github" => null
    "web" => null
    "bio" => null
    "github_id" => null
    "last_login_at" => "2023-06-08 09:16:34"
    "educational_email" => null
    "educational_email_last_verified_at" => null
  ]
  #original: array:21 [
    "id" => 49
    "name" => "Marcel"
    "email" => "[email protected]"
    "password" => "$2y$10$7UxZSEfJtplRlH.e7eMUDe8WGuwrmrhZhP9WhGO.c.H7g14tqDOGm"
    "quaderno_id" => ""
    "remember_token" => null
    "created_at" => "2023-06-08 09:16:07"
    "updated_at" => "2023-09-29 11:36:42"
    "package" => "premium"
    "paddle_id" => null
    "confirmed_at" => "2023-06-08 09:16:20"
    "confirmation_code" => null
    "public" => 0
    "twitter" => null
    "github" => null
    "web" => null
    "bio" => null
    "github_id" => null
    "last_login_at" => "2023-06-08 09:16:34"
    "educational_email" => null
    "educational_email_last_verified_at" => null
  ]
  #changes: []
  #casts: array:2 [
    "last_login_at" => "datetime"
    "educational_email_last_verified_at" => "datetime"
  ]
  #classCastCache: []
  #attributeCastCache: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  +usesUniqueIds: false
  #hidden: array:2 [
    0 => "password"
    1 => "remember_token"
  ]
  #visible: []
  #fillable: array:17 [
    0 => "name"
    1 => "email"
    2 => "password"
    3 => "quaderno_id"
    4 => "package"
    5 => "paddle_id"
    6 => "confirmed_at"
    7 => "github"
    8 => "github_id"
    9 => "twitter"
    10 => "web"
    11 => "bio"
    12 => "public"
    13 => "last_login_at"
    14 => "onboarding_disabled"
    15 => "educational_email"
    16 => "educational_email_last_verified_at"
  ]
  #guarded: array:1 [
    0 => "*"
  ]
  #rememberTokenName: "remember_token"
}
Single Developer License
  • Icon background image Available for macOS, Windows and Linux
  • Icon background image License for two devices
  • Icon background image 30-days money-back guarantee
  • Icon background image Includes access to all updates for one year
  • Icon background image Perpetual fallback license (pay once, use forever)