DALT.PHP
Introduction

What is DALT.PHP?

Understanding the platform, its goals, and architecture

DALT.PHP is an interactive educational platform that teaches backend web development through debugging intentionally broken code.

The Core Concept

Instead of following traditional tutorials where you build applications from scratch, DALT.PHP presents you with working applications that have bugs. Your job is to:

  1. Understand what the code should do
  2. Identify what's broken
  3. Debug and fix the issues
  4. Verify your solution works

This approach mirrors real-world development where you'll spend significant time debugging existing code rather than always writing new code.

Platform Components

1. Learning Content

5 Comprehensive Lessons covering backend fundamentals:

  • Request lifecycle and HTTP flow
  • Routing and URL mapping
  • Middleware and request filtering
  • Authentication and security
  • Database queries and SQL injection prevention

Each lesson explains concepts clearly with code examples and diagrams.

2. Broken Challenges

5 Debugging Challenges with realistic bugs:

  • Broken Routing - Route order and registration issues
  • Broken Middleware - Auth checks and CSRF validation bugs
  • Broken Authentication - Insecure password comparison
  • Broken Database - SQL injection vulnerabilities
  • Broken Session - Flash data handling issues

Each challenge contains 1-2 bugs that you must find and fix.

3. Verification System

Automated testing that provides instant feedback:

  • Run tests with php artisan verify broken-routing
  • Get clear pass/fail results
  • Receive helpful hints for failures
  • Track progress automatically

4. Custom Framework

Educational micro-framework built for learning:

  • Readable source code (no magic)
  • Core classes: Router, Database, Session, Middleware
  • Similar to Laravel but simplified for education
  • Raw SQL instead of ORM abstractions

How It Works

graph LR
    A[Read Lesson] --> B[Copy Broken Code]
    B --> C[Debug & Fix]
    C --> D[Run Verification]
    D --> E{Tests Pass?}
    E -->|No| F[Read Hints]
    F --> C
    E -->|Yes| G[Challenge Complete!]

Step-by-Step Process

  1. Learn the Concept

    • Read a lesson (e.g., "Routing")
    • Understand how it should work
    • See examples of correct implementation
  2. Setup the Challenge

    • Copy broken files to your workspace
    • Start the development server
    • Observe the buggy behavior
  3. Debug the Code

    • Inspect the broken code
    • Identify the bugs
    • Apply fixes based on your understanding
  4. Verify Your Solution

    • Run automated tests
    • Get instant feedback
    • Iterate until all tests pass
  5. Move to Next Challenge

    • Progress to more complex topics
    • Build on previous knowledge
    • Master backend development

What You Get

Local Development Environment

  • Full PHP backend with SQLite database
  • Vue 3 frontend for interactive UI
  • Vite dev server for hot reloading
  • Artisan CLI for common tasks

Complete Codebase

  • Framework source code (readable and educational)
  • Challenge files (broken code to fix)
  • Lesson content (markdown explanations)
  • Verification tests (automated checking)

Learning Tools

  • Interactive web interface at /learn
  • CLI commands for verification
  • Progress tracking and logging
  • Helpful error messages and hints

Architecture Overview

DALT.PHP/
├── .dalt/              # Platform code (hidden)
│   ├── Http/           # Learning UI controllers
│   ├── resources/      # Platform assets
│   └── routes/         # Platform routes
├── app/                # Your workspace
├── course/             # Learning content
│   ├── lessons/        # 5 lessons
│   └── challenges/     # 5 challenges
├── framework/          # Framework source
│   └── Core/           # Router, Database, etc.
├── database/           # SQLite + migrations
├── public/             # Web root
└── routes/             # Your routes

The .dalt/ directory contains platform code (learning UI, verification system). It's hidden to keep your workspace clean and focused on backend learning.

Key Features

1. Transparent Framework

Unlike production frameworks with complex abstractions, DALT.PHP's framework is:

  • Readable - Clean, well-commented code
  • Simple - Core concepts without extra features
  • Educational - Designed for learning, not production

2. Raw SQL Migrations

No ORM, no query builder abstractions:

-- You write real SQL
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    email VARCHAR(255) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL
);

This is intentional - you learn actual SQL, not framework-specific syntax.

3. Real-World Bugs

Challenges contain bugs developers actually encounter:

  • SQL injection vulnerabilities
  • Authentication bypass issues
  • Route order problems
  • CSRF token validation errors
  • Session handling bugs

4. Instant Feedback

Verification system provides:

  • ✅ Clear pass/fail indicators
  • 💡 Helpful hints for failures
  • 📊 Progress tracking
  • 🎯 Specific error messages

What DALT.PHP Is NOT

Not a Production Framework

DALT.PHP is built for learning, not production use. It lacks features like:

  • Queues and job processing
  • Event broadcasting
  • Advanced caching
  • Email sending
  • File storage abstractions

For production apps, use Laravel, Symfony, or similar frameworks.

Comparison with Other Learning Resources

FeatureDALT.PHPTraditional TutorialsVideo Courses
Hands-on✅ Debug real code⚠️ Follow along❌ Watch only
Instant Feedback✅ Automated tests❌ Manual checking❌ No feedback
Real Bugs✅ Authentic issues⚠️ Simplified⚠️ Simplified
Self-Paced✅ Your speed✅ Your speed⚠️ Video length
Interactive✅ Web UI + CLI❌ Text only❌ Video only
Progress Tracking✅ Automatic❌ Manual❌ Manual

Who Built This?

DALT.PHP was created to address a gap in backend education:

  • Most tutorials focus on building from scratch
  • Few resources teach debugging skills
  • Limited hands-on practice with real bugs
  • Lack of instant feedback mechanisms

The platform combines:

  • Educational best practices (active learning)
  • Real-world relevance (authentic bugs)
  • Modern tooling (automated testing)
  • Clean architecture (readable framework)

Next Steps

On this page