SiteAccess, Content, and Media APIs, which lack direct Laravel equivalents (e.g., no built-in SiteAccess concept in Laravel).ezpublish database schema (e.g., ezcontentobject, ezcontentobject_attribute), while Laravel typically uses Eloquent or custom migrations. Cross-site linking logic tied to eZ’s schema won’t port cleanly.URL::to() + custom middleware for site-aware paths.SiteAccess facade to manage multi-site configurations (e.g., via config('sites.[site_name]')).EventDispatcher vs. Laravel’s Events system.ContentService vs. Laravel’s repository pattern.Design system vs. Laravel Blade/Views).SiteLinkResolver service in Laravel that proxies to eZ).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Framework Mismatch | High | Rewrite core logic for Laravel; avoid direct bundle use. |
| Database Coupling | High | Abstract eZ-specific queries; use Laravel’s query builder. |
| Event System Gaps | Medium | Replace eZ events with Laravel’s Listeners or custom hooks. |
| Performance Overhead | Medium | Profile before/after; optimize with caching (e.g., Cache::remember). |
| Maintenance Burden | High | Treat as a one-time port; avoid long-term dependency. |
site_links table)?SiteAccess, ContentService), or will a rewrite be necessary?ezsystems/platform-repository-bundle, ezsystems/siteaccess) are Symfony/eZ-specific and incompatible with Laravel’s stack.| Step | Actionable Tasks | Tools/Dependencies |
|---|---|---|
| Assessment | Audit current eZ link generation logic; document use cases (e.g., media links). | Postman (API testing), Laravel Tinker |
| Feature Extraction | Isolate core logic (e.g., resolveSiteLink(), getSiteAccessUrl()). |
PHPUnit (test extraction), Laravel IDE |
| Laravel Rewrite | Implement equivalents using: | |
- URL::to() + middleware for site-aware paths. |
||
- Custom SiteAccess facade (e.g., config('sites')). |
||
| - Eloquent models for link storage (if migrating from eZ). | ||
| API Integration (if hybrid) | Create a Laravel service to call eZ’s REST API for link resolution. | Guzzle, Laravel HTTP Client |
| Testing | Validate edge cases: | |
| - Cross-site redirects. | PestPHP, Dusk | |
| - Media asset URLs. | ||
| - Fallback behavior (e.g., 404 for invalid sites). |
SiteAccess → Laravel’s config('sites') or custom facade.ContentService → Laravel’s Repository pattern or API calls.HasSiteAccess).SiteLinkResolver).Route::get() with site-aware logic).ezplatform).SiteAccess lookups).Cache::remember('site-links', now()->addHours(1), fn() => ...)).SiteAccess data.| Scenario | Impact | Mitigation |
|---|---|---|
How can I help you explore Laravel packages today?