courtyard/forum
Courtyard Forum is the core package of an event-driven forum platform for developers. Built to be stable, scalable, and extensible, it provides a clean API to build custom communities, with optional Symfony2 integration via ForumBundle.
Illuminate\Events), enabling seamless integration for workflows like notifications, analytics, or third-party syncs. The component’s abstraction of core forum logic (threads, posts, users) reduces redundant development for common features.EventDispatcher, Security). This is a double-edged sword: the flexibility is a strength, but the lack of native Laravel support introduces friction.post.created).Security or HttpFoundation need wrappers or replacements.Auth, Events).laravel-forum) or framework-agnostic solutions (e.g., Flarum) for total cost of ownership.Security, HttpKernel).| Layer | Laravel Tool | Courtyard Integration |
|---|---|---|
| ORM | Eloquent | Convert Courtyard\Entity to Eloquent models |
| Events | Illuminate\Events |
Replace Symfony EventDispatcher |
| Auth | Illuminate\Auth |
Build custom guard or wrapper for Security |
| Notifications | Illuminate\Notifications |
Adapt event listeners to use Laravel channels |
| Search | Laravel Scout/Algolia | Custom service or Scout driver |
| Queue | Laravel Queues | Replace Symfony Messenger with Laravel jobs |
Phase 1: Proof of Concept (2–3 weeks)
EventDispatcher with Laravel’s.Thread, Post, and User entities to Eloquent models.ForumServiceProvider to bind Courtyard services.Phase 2: Laravel Parity (4–6 weeks)
Security with Laravel’s Auth (e.g., custom guard).Notifiable interface.Schema builder.Phase 3: Optimization & Customization (Ongoing)
doctrine/dbal to generate Laravel-compatible SQL.| Symfony Component | Laravel Equivalent | Integration Notes |
|---|---|---|
EventDispatcher |
Illuminate\Events\Dispatcher |
Bind Courtyard’s event listeners to Laravel’s. |
Security |
Illuminate\Auth |
Custom guard or facade wrapper. |
HttpFoundation |
Illuminate\Http |
Use Laravel’s request/response objects. |
Messenger (Queue) |
Illuminate\Queue |
Replace message buses with Laravel jobs. |
How can I help you explore Laravel packages today?