Laravel Architecture
Instructions
Architecture Patterns
- Laravel Actions: Business logic organized in Action classes
(
lorisleiva/laravel-actions) - Inertia.js: Frontend built with Vue.js via Inertia.js
- Domain Organization: Features organized by domain (Auth, MentorPrograms, etc.)
- Repository Pattern: Not explicitly used, relies on Eloquent models
- Service Layer: Implemented via Action classes
- Database Migrations: Every change in the DB structure should be reflected in a new migration
- Database Seeders: Every change in DB data should be reflected in a seeder
- Database Factories: Every change in DB data should be reflected in a factory
- Database Queries: Prefer Eloquent models over raw queries
- Database Relationships: Prefer Eloquent relationships to raw queries
- Database Eager Loading: Prefer Eloquent eager loading over raw queries
- Database Pagination: Prefer Eloquent pagination over raw queries
- Database Scopes: Prefer Eloquent scopes over raw queries
- Database Soft Deletes: Prefer Eloquent soft deletes over raw queries
Performance Considerations
- Laravel Octane: Uses FrankenPHP for high-performance application server
- Redis: Used for caching, sessions, and queue management
- Database: PostgreSQL with proper indexing
- Asset Optimization: Image optimization tools included in Docker setup
Laravel 12 Structure
- No middleware files in
app/Http/Middleware/. bootstrap/app.phpis the file to register middleware, exceptions, and routing files.bootstrap/providers.phpcontains application specific service providers.- No app\Console\Kernel.php - use
bootstrap/app.phporroutes/console.phpfor console configuration. - Commands auto-register - files in
app/Console/Commands/are automatically available and do not require manual registration.
