Skip to content

Roadmap

Ray Fung edited this page Feb 26, 2026 · 3 revisions

Learning Roadmap

A structured path from zero to production. Pick the track that matches your available time — each level builds on the one before it.


⚡ 30-Minute Quick Start

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 runapprun /hello_world/ Interactive shell, route execution
4 Read each file's comments module.phppackage.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.


🛠️ 1-Day Hands-On

Goal: Build a multi-page app with templates, a JSON API, and event communication.

Morning — Core Module Development (3 h)

# 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()

Afternoon — Templates & APIs (3 h)

# 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 WRAPPER pattern
  • Cross-module communication via API and events
  • All the core CLI commands

➡️ Next: Pick a track below based on your project's needs.


🚀 1-Week Mastery

Goal: Be productive in all major framework subsystems.

Day 2-3 — Data Layer

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

Day 4 — Security & Auth

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

Day 5 — IO & Real-time

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

Day 6 — Architecture & Patterns

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

Day 7 — Deployment & Operations

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

Quick Reference Card

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 DatabaseORM
Add user login SessionAuth Manager
Send real-time updates SSE or WebSocket
Deploy to production Sites ConfigurationCaddy Worker
Generate a module skeleton CLI Commands (scaffold)

Home | Installation

Clone this wiki locally