Dynamic Websites, Forms, APIs & Content Systems with Savv
Explicit routing, controllers, honeypot defenses, REST endpoints, and flat-file blogs
Expand beyond static presentations into dynamic, interactive web applications. Master explicit routes in routes/web.php, controller architecture, request validation, silent honeypot spam protection, transactional email delivery with PHPMailer, REST API endpoints, and a markdown-powered flat-file blog engine.
Course Prerequisites
- Savv Framework Foundations & High-Performance Website Engineering or equivalent Savv/PHP experience.
Part of Academy Track:
What You Will Master
Curriculum Modules (5 Modules)
Explore the structured module breakdown, lesson outcomes, and practical lab exercises.
Module 1: Explicit Routing, Route Groups & Controllers
4 Lessons • ~5.8 Study Hours (0.58 CEUs)Welcome to Module 1: Explicit Routing, Route Groups & Controllers. In this section of the curriculum, learners dive deep into foundational and advanced principles designed for production application. This module covers: Understand when to use explicit route declarations over file-based routing, structure routes/web.php, and bind routes to controller methods and closures.; Capture dynamic URL parameters using curly braces ({slug}), pass them into closures or controller methods, and generate robust URLs using route().; Organize large route collections using route groups with shared prefixes, route names, and middleware pipelines across routes/api.php and routes/web.php..
Explicit Routes vs. File-Based Routing in routes/web.php
Understand when to use explicit route declarations over file-based routing, structure routes/web.php, and bind routes to controller methods and closures.
Route Parameters, Dynamic Slugs & URL Generation with route()
Capture dynamic URL parameters using curly braces ({slug}), pass them into closures or controller methods, and generate robust URLs using route().
Route Groups, Prefixes, and API Route Registration
Organize large route collections using route groups with shared prefixes, route names, and middleware pipelines across routes/api.php and routes/web.php.
Structuring Controllers in app/Controllers/
Build clean, single-responsibility controller classes in app/Controllers/, use PSR-4 autoloading, and leverage dependency injection and helpers.
Module 2: Form Handling, Validation & Security
4 Lessons • ~6.1 Study Hours (0.61 CEUs)Welcome to Module 2: Form Handling, Validation & Security. In this section of the curriculum, learners dive deep into foundational and advanced principles designed for production application. This module covers: Extract submitted form fields safely using request()->only(), request()->except(), and input sanitization to prevent data contamination.; Master the Savv Validator: apply required, email, min, max, numeric, and url rules, and handle automatic 422 JSON validation error responses.; Protect public forms from automated spam bots using silent honeypot fields and behavioral timing checks without degrading UX with annoying CAPTCHAs..
Capturing Form Submissions with the request() Utility
Extract submitted form fields safely using request()->only(), request()->except(), and input sanitization to prevent data contamination.
Input Validation with validate() and Validation Rules
Master the Savv Validator: apply required, email, min, max, numeric, and url rules, and handle automatic 422 JSON validation error responses.
Silent Bot Defense: Honeypots and Anti-Spam Patterns
Protect public forms from automated spam bots using silent honeypot fields and behavioral timing checks without degrading UX with annoying CAPTCHAs.
Sanitization, CSRF Mitigation, and Secure Data Handling
Enforce HTML entity encoding (htmlspecialchars), prevent Cross-Site Scripting (XSS), implement origin header verification, and sanitize untrusted inputs.
Module 3: Contact Systems & Transactional SMTP Mailing
4 Lessons • ~5.4 Study Hours (0.54 CEUs)Welcome to Module 3: Contact Systems & Transactional SMTP Mailing. In this section of the curriculum, learners dive deep into foundational and advanced principles designed for production application. This module covers: Design the end-to-end flow of a production contact system: HTML form capture, client-side validation, honeypot defense, SMTP dispatch, and audit logging.; Establish authenticated SMTP credentials using environment variables and configs/mail.php, supporting providers like Mailgun, Postmark, and Brevo.; Implement PHPMailer with TLS encryption, HTML email templates, attachment support, and comprehensive exception handling and error logging..
Architecture of a Production Contact System
Design the end-to-end flow of a production contact system: HTML form capture, client-side validation, honeypot defense, SMTP dispatch, and audit logging.
Configuring Mail Credentials with .env and configs/mail.php
Establish authenticated SMTP credentials using environment variables and configs/mail.php, supporting providers like Mailgun, Postmark, and Brevo.
Integrating PHPMailer for Reliable SMTP Delivery
Implement PHPMailer with TLS encryption, HTML email templates, attachment support, and comprehensive exception handling and error logging.
Frontend AJAX Contact Forms with Asynchronous JSON Responses
Connect the HTML contact form to the Savv API using modern JavaScript fetch(), show loading spinners, handle 422 validation errors, and display toast notifications.
Module 4: Building REST APIs & Middleware Pipelines
4 Lessons • ~5.9 Study Hours (0.59 CEUs)Welcome to Module 4: Building REST APIs & Middleware Pipelines. In this section of the curriculum, learners dive deep into foundational and advanced principles designed for production application. This module covers: Structure consistent REST API responses with response()->json(), manage HTTP status codes (200, 201, 400, 401, 403, 404, 500), and format payloads.; Understand HTTP middleware architecture: implement the PSR-style handle(Request $request, callable $next) contract to intercept and filter requests.; Register middleware aliases in app/Constants/MiddlewareConstants.php and attach them to individual routes or route groups..
Designing Clean JSON Responses with response()->json()
Structure consistent REST API responses with response()->json(), manage HTTP status codes (200, 201, 400, 401, 403, 404, 500), and format payloads.
Building Middleware Classes: The handle(Request, $next) Contract
Understand HTTP middleware architecture: implement the PSR-style handle(Request $request, callable $next) contract to intercept and filter requests.
Registering Middleware Aliases in MiddlewareConstants
Register middleware aliases in app/Constants/MiddlewareConstants.php and attach them to individual routes or route groups.
Logging & Error Handling with the logger() Utility
Master Savv's daily rotating file logger: write structured logs with logger('message', $context), log errors, and configure log rotation.
Module 5: High-Performance Flat-File & Markdown Blog Engine
4 Lessons • ~5.1 Study Hours (0.51 CEUs)Welcome to Module 5: High-Performance Flat-File & Markdown Blog Engine. In this section of the curriculum, learners dive deep into foundational and advanced principles designed for production application. This module covers: Understand why flat-file and Markdown architectures beat MySQL/database bloat for company blogs: zero query latency, version control in Git, and instant backups.; Structure Markdown articles with YAML frontmatters, parse headings, code blocks, and metadata, and render HTML via parsedown or Savv services.; Build the blog listing page: render paginated article cards, filter by category tags, and calculate estimated reading time dynamically..
Flat-File Content Architecture vs. Database Bloat
Understand why flat-file and Markdown architectures beat MySQL/database bloat for company blogs: zero query latency, version control in Git, and instant backups.
Markdown Parsing and Article Metadata in Savv
Structure Markdown articles with YAML frontmatters, parse headings, code blocks, and metadata, and render HTML via parsedown or Savv services.
Dynamic Post Indexing, Category Filtering & Reading Time
Build the blog listing page: render paginated article cards, filter by category tags, and calculate estimated reading time dynamically.
Milestone Project: Full-Featured Corporate Website with Dynamic Blog
Synthesize all Course 2 capabilities into an enterprise corporate website featuring explicit API routes, honeypot contact system, and a dynamic Markdown blog.
Savv Web Engineering Progression
Continue advancing through the sequential curriculum stages of this academy track: