-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
A structured path from zero to production. Pick the track that matches your available time — each level builds on the one before it.
Goal: Run a working Razy module locally and understand the core loop.
| Step | What You Do | What You Learn |
|------|-------------|----------------|
| 1 | Install Razy | Composer setup, Razy.phar build |
| 2 | Copy the Hello World demo | 4-file minimal module anatomy |
| 3 | php Razy.phar runapp → run /hello_world/ | Interactive shell, route execution |
| 4 | Read each file's comments | module.php → package.php → controller — handler |
After 30 minutes you know:
-
What a module, controller, and route handler are
-
How to run a route in the interactive shell
-
The minimum file structure every module needs
👉 Next: Follow the Getting Started Tutorial to build a module from scratch.
Goal: Build a multi-page app with templates, a JSON API, and event communication.
| # | Topic | Read | Practice |
|---|-------|------|----------|
| 1 | Tutorial | Full walkthrough | Build the app/hello module with 3 routes |
| 2 | Module Structure | File/directory conventions | Rename files, break things, fix them |
| 3 | Routing | addRoute, addLazyRoute, patterns | Add (:d), (:a), optional segments |
| 4 | Controller | Lifecycle hooks, $this context | Add __onReady, try $this->getModuleInfo() |
| # | Topic | Read | Practice |
|---|-------|------|----------|
| 5 | Template Engine | Variables, blocks, modifiers | Build a layout with WRAPPER block |
| 6 | Cross-Module API | Provider / Consumer pattern | Create a second module that calls the first |
| 7 | Event System | trigger() / listen() | Fire an event from module A, catch it in module B |
| 8 | CLI Commands | runapp, scaffold, validate | Scaffold a new module with php Razy.phar scaffold |
After 1 day you know:
-
How to create modules from scratch (or scaffold them)
-
Template variables, blocks, and the
WRAPPERpattern -
Cross-module communication via API and events
-
All the core CLI commands
👉 Next: Pick a track below based on your project's needs.
Goal: Be productive in all major framework subsystems.
| Topic | What You'll Build |
|-------|--------------------|
| Database | Connect to MySQL/PostgreSQL/SQLite, run queries |
| ORM | Define entities, relationships, eager loading |
| Collection | Filter, map, reduce with dot-notation selectors |
| Cache | PSR-16 cache with TTL and namespaces |
| YAML | Parse config files, dump structured data |
| Topic | What You'll Build |
|-------|--------------------|
| Session | Secure session handling |
| CSRF Protection | Form token validation |
| Auth Manager & Gate | Role-based access control |
| Crypt | Encryption, hashing, signing |
| OAuth2 | Third-party login integration |
| Topic | What You'll Build |
|-------|--------------------|
| HTTP Client | Outbound requests, API consumption |
| XHR | JSON API responses with proper headers |
| SSE | Server-Sent Events for live updates |
| WebSocket | Full-duplex real-time communication |
| Mailer | SMTP email with HTML templates |
| Topic | What You'll Build |
|-------|--------------------|
| Middleware | Request/response pipeline |
| Pipeline | Stage-based data processing |
| Plugin System | Custom Template/Collection plugins |
| DI Container | Auto-wired services, interface binding |
| Validation | Input validation rules and messages |
| Topic | What You'll Build |
|-------|--------------------|
| Sites Configuration | Multi-domain setup |
| Packaging & Distribution | Bundle modules as .razy packages |
| Repository & Publishing | Publish to a module repository |
| Caddy Worker Mode | Production-grade persistent worker |
| Testing | PHPUnit integration, test conventions |
After 1 week you can:
-
Build full-stack applications with database, auth, and templates
-
Set up real-time features (SSE, WebSocket)
-
Deploy to production with Caddy worker mode
-
Package and distribute your modules
| I want to…| Start with |
|-------------|-----------|
| Just see it work | Hello World demo |
| Build my first module | Tutorial |
| Understand the file layout | Module Structure |
| Add URL routes | Routing |
| Render HTML pages | Template Engine |
| Build a JSON API | XHR + Cross-Module API |
| Store data in a database | Database, ORM |
| Add user login | Session, Auth Manager |
| Send real-time updates | SSE or WebSocket |
| Deploy to production | Sites Configuration, Caddy Worker |
| Generate a module skeleton | CLI Commands (scaffold) |