00 / PHP
Learn Laravel, Eloquent and the databasegraded by the real tools
PHP is drafted: the full syllabus is designed and the track shape is set, but no lesson has shipped yet - see what's planned before you wait for it.
01 / what grades you
Grading runs the real tools the job actually uses, in the copy of VS Code you already have open - not a simulated sandbox and not a recording.
When a lesson says PASSED, that verdict came from the real debugger, the real test runner, or a real service running on your machine.
02 / the free tier
PHP is drafted
There is no free tier to try yet - PHP has not shipped a lesson. 200 lessons across 10 tracks are planned; the syllabus below is the plan of record for what ships.
03 / syllabus
200 lessons across 10 tracks
Debugging with Xdebug
Your first breakpoint/Stepping through code/Reading the call stack/Inspecting variables/Conditional breakpoints/Watch expressions/Stepping into vendor/Exception breakpoints/The request lifecycle, live/Why var_dump is not debugging/The null relationship/The N+1 caught live/Debugging a Blade view/Debugging validation/Debugging a queued job/Debugging an artisan command/Middleware order surprises/The Eloquent lazy-load trap/Tinker as a live REPL/dump-server and ray/Remote attach into Sail/Profiling the slow endpoint/The race in the queue/Logpoints without editing code/Debugging an outbound API call/The vanishing session/A stack trace that lies/Capstone: fix a bug you have never seen
PHP language
Values and types/Strings properly/Arrays: list and map in one/The null-coalescing family/Functions/Named arguments/Closures and arrow functions/First-class callable syntax/References, honestly/Classes and objects/Constructor promotion/readonly properties/Interfaces/Traits/Abstract classes/static and self/Enums/match over switch/Namespaces/PSR-4 autoloading/Exceptions/Custom exception types/Generators/Attributes/Type declarations/declare(strict_types=1)/DateTimeImmutable/Regex in PHP/The standard library's sharp edges/Capstone
Git
Repo anatomy/The three areas/Commits done well/Ignoring the right things/Branching/Two kinds of merge/The conflict/Branch lifecycle/Amend/Rebase onto a moved main/Squash and fixup/Reword, reorder, drop/Cherry-pick and revert/Reflog, the undo of undos/Reset: soft, mixed, hard/Stash/Bisect/Remotes: clone, fetch, pull, push/Pull with rebase/Force with lease, and tags/The feature workflow/Capstone: inherit the mess
Testing
The first test (Pest)/Feature vs unit/The RefreshDatabase trait/Factories in tests/Testing HTTP endpoints/Asserting JSON structure/Http::fake for external APIs/Mocking and spies/Testing queued jobs/Testing validation rules/Database assertions/Dusk: browser end-to-end/What a good test proves/Capstone
Composer and tooling
Composer: the daily driver/Autoloading explained/Semver constraints/composer.lock, and why/Composer scripts/The PSR standards that matter/PHP-CS-Fixer/PHPStan: static analysis from zero/Larastan for Laravel/Raising the level safely/Tooling in CI
Laravel foundations
Routing/Route model binding/Controllers/Form requests in/Responses out/Blade basics/Blade components/The service container/Service providers/Config and env/artisan/Writing a make command/The service layer/Dependency injection done right/Facades, honestly/Collections/The helpers worth knowing/Capstone
Eloquent and the database
Migrations/Schema design/Models/Mass assignment and guarding/The query builder/Eloquent basics/hasMany and belongsTo/belongsToMany/Polymorphic relations/The N+1 problem, named/Eager loading that fixes it/Factories/Seeders/Mutators and casts/Query scopes/Soft deletes/Transactions/Testing against the database/Raw SQL when you must/Capstone
SQL
The server and your first query/Tables and types/First inserts/SELECT and WHERE/Order, limit, distinct/Aggregates/HAVING/CASE and conditional aggregation/INNER JOIN/LEFT JOIN and the NULL side/The fan-out trap/Self-join/Anti-joins and the NOT IN landmine/UPDATE, DELETE, RETURNING/Constraints/UPSERT/NULL three-valued logic/Transactions/SQL injection/Subqueries and CTEs/Set operations/Dates and strings/Window functions/Views/jsonb/Indexes and EXPLAIN/Fix the slow query/Recursive CTEs/Schema design/Capstone: the wrong report
HTTP and APIs
Form request validation/API resources/Resource collections/Sanctum token auth/Middleware you write/Rate limiting/File uploads/Pagination/Error handling and JSON responses/Events and listeners/Jobs and queues/Queued work off the request/The scheduler/Notifications/Mail/The HTTP client/Broadcasting basics/Capstone
Security and authorization
Mass assignment as a vulnerability/SQL injection, and why Eloquent saves you/XSS in Blade: escaped vs raw/CSRF and the token/Authentication vs authorization/Gates/Policies/Password hashing with Hash::/Secrets, .env, and what never ships
04 / how it grades you
Do the work
Open the lesson in VS Code and write the fix, the query, or the test - in your own editor, with your own tools.
The real tool checks it
The debugger, the test runner, or the real service your code talks to decides pass or fail - not a string match on your keystrokes.
Hints, then the solution
Stuck lessons escalate through hints before the reference solution unlocks - spoilers are earned, not browsable.
05 / your machine
What to expect on your machine
By track, per operating system
| Track | Windows | macOS | Linux |
|---|---|---|---|
| Full curriculum | not yet | not yet | not yet |
| PHP has not shipped a lesson, so there is nothing to measure yet. This matrix fills in, verified against CI, once lessons exist and the gate runs - and not before. | |||
measuring, 2026-08-30
TO BE VERIFIED Windows, macOS, Linux
Per-operating-system expectations are published here once the CI gate has run - measured, with run ids, the way the shipped products do it. Nothing is claimed before then.
06 / receipts
Receipts
Receipts land when this ships. TESTED first, receipts with it - that is the order.