Kochbuch
Jede Seite des Kochbuchs baut eine Sache von Anfang bis Ende: die Dateien, die Sie schreiben, die Einstellungen, die sie aktivieren, den Befehl, der sie prüft, und das, was am häufigsten schiefgeht. Die Seiten bauen über eine Beispielerweiterung, expexample, aufeinander auf, sodass der Code einer Seite auf der nächsten weiterverwendet wird. Lesen Sie zuerst Ein Erweiterungsgerüst, wenn Sie noch nie eine Erweiterung erstellt haben.
Jedes Beispiel wurde anhand des Codes dieser Version geschrieben und geprüft, wo das mit wenig Aufwand möglich ist:
PHP-Dateien mit php -l, Templates mit bin/php/eztemplatecheck.php, XML-Dateien mit xmllint. Jede Seite nennt,
was geprüft wurde, und führt die Quelldateien auf, aus denen sie abgeleitet ist. Nichts davon wurde gegen eine
Produktivdatenbank ausgeführt; probieren Sie jedes Beispiel zuerst an einer Kopie Ihrer Website aus.
Die Rezepte
| Aufgabe | Seite | Was sie berührt |
|---|---|---|
| Eine eigene Erweiterung beginnen | Ein Erweiterungsgerüst | extension/<name>/, ezinfo.php, extension.xml, composer.json, ActiveExtensions[], das Autoload-Array |
| Eine Inhaltsklasse anlegen | Eine Inhaltsklasse anlegen | Setup > Klassen, oder eZContentClass und eZContentClassAttribute in einem Skript |
| Ändern, wie eine Seite oder Klasse aussieht | Ein Template-Override | override.ini.append.php, design/<design>/override/templates/, der Override-Cache |
| Einen Template-Operator hinzufügen | Ein eigener Template-Operator | autoloads/eztemplateautoload.php, [TemplateSettings] ExtensionAutoloadPath[] |
| Eine Seite mit eigener Adresse und Richtlinie hinzufügen | Ein eigenes Modul mit Ansicht | modules/<module>/module.php, module.ini [ModuleSettings], $FunctionList, Rollen und Richtlinien |
| Eine neue Art von Feld speichern | Ein eigener Datentyp | datatypes/<type>/<type>type.php, content.ini [DataTypeSettings], die Templates des Datentyps |
| Code ausführen, wenn Inhalte veröffentlicht werden | Ein Workflow-Ereignis | eventtypes/event/<type>/, workflow.ini [EventSettings], Setup > Workflows und Auslöser |
| Code nach Zeitplan ausführen | Ein Cronjob | cronjobs/, cronjob.ini [CronjobSettings] und [CronjobPart-<part>], die Crontab |
| Inhalte als JSON aus einem Skript oder dem Browser lesen | REST- und JSON-Aufrufe | ezjscore-Serverfunktionen, ezjscore.ini [ezjscServer_<name>], die REST-API unterhalb von /api/ |
| Mehrere Websites aus einer Installation bedienen | Mehrere Websites: Siteaccesses | site.ini [SiteAccessSettings], settings/siteaccess/<name>/, VarDir, CacheVarDir |
| Die Texte einer Erweiterung übersetzen | Übersetzungen | translations/<locale>/translation.ts, ezpI18n::tr(), |i18n, TranslationExtensions[] |
| Seiten schnell machen und aktuell halten | Caching | der View-Cache, cache-block, ezcache.php, der Response-Cache von Velocity |
| Eine PHP-Änderung live schalten | Deployment mit Velocity | exp:velocity deploy und seine Schritte |
| Was Sie einrichten, zu einer Migration machen | Eine Sitzung aufzeichnen | exp:migration:record:*, Setup > Migrationen > Aufzeichnung, exp:migration:generate --from-recording |
Die Beispielerweiterung im Überblick
extension/expexample/
├── ezinfo.php what the extension is (Setup > About, Setup > Extensions)
├── extension.xml the same, read first; the same version number
├── composer.json when it is installed with Composer
├── autoloads/ template operators (custom-template-operator.md)
├── classes/ classes found through the autoload array (rest-json-fetch.md)
├── cronjobs/ cronjob scripts (cronjob.md)
├── datatypes/expcolor/ a datatype (custom-datatype.md)
├── eventtypes/event/explogpublish/ a workflow event (workflow-event.md)
├── modules/expexample/ a module with two views (custom-module-view.md)
├── design/standard/templates/ its templates; design/standard/javascript/ its scripts
├── translations/ger-DE/ its German texts (translations.md)
└── settings/ *.ini.append.php: what switches each part onDie Namen folgen der Konvention des Projekts für neuen Code: Die Erweiterung, ihr Modul und ihre Klassen beginnen mit
exp (expexample, expExample...), niemals mit ez.
Referenzmaterial
Das Kochbuch zeigt, wie es geht; die Referenzbereiche listen auf, was es gibt, aus dem Code erzeugt:
- Template-Operatoren und Fetch-Funktionen
- Modulansichten und Richtlinienfunktionen
- INI-Einstellungen, Datentypen, Workflow-Ereignisse, Cronjob-Teile
- Befehle und Erweiterungspunkte
Die Programmierregeln und der Musterkatalog (wie Code, Templates und Dokumentation in diesem Projekt geschrieben werden) stehen in den Standards; das Kochbuch folgt ihnen und wiederholt sie nicht.
Verwandte Seiten
- Beispiele: alle Beispielbereiche, einschließlich der Webserver-Konfigurationen.
- Erweiterungen: finden, installieren, konfigurieren, bauen und veröffentlichen
- Templates und Design
- RAD-Werkzeuge: die Assistenten, die die meisten dieser Gerüste für Sie schreiben.
- Freie Dokumentation: Diese Seite darf frei kopiert, übersetzt und verbessert werden.