Umstieg von Slim, CodeIgniter, Yii, CakePHP oder Laminas
Diese Seite richtet sich an Entwickler, deren PHP-Hintergrund eines der klassischen MVC-Frameworks oder ein Micro-Framework ist. Die gute Nachricht: Der PHP-Stil von Exponential (Klassen mit statischen Hilfsmethoden, Active Record, Konvention vor Konfiguration, Arrays als Konfiguration) steht CodeIgniter, Yii 1 und CakePHP näher als Frameworks, die stark auf einen Container setzen. Der Unterschied: Exponential ist inhaltsorientiert; ein Inhaltsmodell, Berechtigungen und eine Administrationsoberfläche sind bereits vorhanden.
Inhalt
Die MVC-Bausteine
| Baustein | In Ihrem Framework | In Exponential 6 |
|---|---|---|
| Controller | eine Klasse mit Action-Methoden | ein Modul-View pro Adresse (Controller) |
| Modell | Active Record (CodeIgniter-Modelle, Yii ActiveRecord, CakePHP-Tables und -Entities) oder ein Table Gateway (Laminas) | eZPersistentObject für Ihre Tabellen, die Inhalts-API für Inhalte (ORM) |
| View | PHP-Templates, Twig oder Plates | die Template-Sprache (Die View-Schicht) |
| Routen | eine Routendatei oder Konventionen | Konventionen nach /<module>/<view> (Routing) |
| Konfiguration | PHP-Arrays | INI-Dateien in Ebenen (Konfiguration) |
| Module, Plugins | HMVC-Module, Yii-Module, CakePHP-Plugins, Laminas-Module | Erweiterungen (Pakete) |
Framework für Framework
| Framework | Vertraut | Anders |
|---|---|---|
| Slim | kleiner Kern, Sie wählen die Teile; Denken in Middleware | keine PSR-15-Pipeline; stattdessen Request-Regeln und Listener (Middleware) |
| CodeIgniter | Adressen nach /controller/method/param sehen aus wie /module/view/param; Helper und Libraries | Berechtigungen, Sitzungen und CSRF sind anders eingebaut (Authentifizierung, Formulare und CSRF) |
| Yii | Active Record, Behaviors, Module, ein Code-Generator (Gii) | die RAD-Werkzeuge übernehmen die Rolle von Gii (RAD-Werkzeuge); RBAC sind Rollen und Richtlinien, als Daten gespeichert (Autorisierung) |
| CakePHP | Konventionen, Bake, Plugins, ORM mit Tables | Schemadateien statt eines Migrations-Plugins (Migrationen) |
| Laminas, Mezzio | Module, Zusammenführen von Konfiguration, Event-Manager | kein Service-Manager (Dependency Injection); ezpEvent statt des Event-Managers (Ereignisse) |
PSR-Standards
Exponential 6 wird mit Composer installiert und lädt den Autoloader von Composer, sodass PSR-4-Bibliotheken in Ihrer
Erweiterung funktionieren. Der Kernel selbst ist älter als PSR-7 und PSR-15: Requests werden über eZHTTPTool und
eZSys gelesen, Responses sind ein Ergebnis-Array oder eine direkte Ausgabe, und es gibt keinen PSR-11-Container.
Planen Sie nicht damit, PSR-7-Objekte durch den Kernel zu reichen.
Was für Sie neu ist
- Inhaltsklassen ersetzen die meisten Tabellen, die Sie sonst entwerfen würden (Das Inhaltsmodell).
- Siteaccesses wählen pro Request eine ganze Konfiguration aus (Siteaccesses).
- Template-Overrides wählen Templates nach Klasse, Knoten oder View-Modus aus (Template-Auflösung).
- Workflows klinken sich in das Veröffentlichen und den Bestellabschluss ein (Workflows).
- Persistente Worker unter Velocity: kein Zustand pro Request in statischen Variablen (Server und Deployment).
Beginnen Sie mit Aufgabe: ein kleines CRUD-Modul bauen; es wird sich anfühlen wie der erste Controller, den Sie in Ihrem Framework geschrieben haben.
Verwandte Seiten
- Begriffswörterbuch
- Umstieg von Symfony, Umstieg von Laravel
- Autoloads und Klassenbenennung
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.