Den Code für ein Bundle beschaffen
Diese Seite richtet sich an alle, die den Build eines Bundles schreiben. Die Installationsanleitung dokumentiert drei Wege, den Code zu beschaffen (3.2 Drei Wege zum Code); jeder passt zu einer anderen Art von Bundle.
Inhalt
Die drei Wege
| Weg | Liefert Ihnen | Quelle |
|---|---|---|
A. git clone und composer install | den Kernel und jede se7enxweb-Erweiterung als Git-Klone mit ihrer Historie | 3.2 A |
B. composer create-project | Release-Archive ohne Historie (Klone mit --prefer-source --keep-vcs) | 3.2 B |
C. composer require in ein leeres Verzeichnis | den Kernel als Paket Ihres eigenen Projekts, mit Ihrer eigenen composer.json | 3.2 C |
Welcher Weg für welches Bundle
| Bundle | Weg | Warum |
|---|---|---|
| Container- oder Server-Image eines festen Releases | B, mit Version | Archive sind kleiner; das Image wird ohnehin für jedes Update neu gebaut |
| Starter-Kit einer Agentur | C | Ihre composer.json und composer.lock sind die Spezifikation des Kits |
| Ein Bundle, auf dem die Empfänger weiterentwickeln | A | Git zeigt, was sich geändert hat, und erlaubt Updates mit Git (Mit Git entwickeln) |
| Installer für ein Hosting-Panel | B oder ein vorbereitetes Archiv von B | schnell, keine Historie in jedem Konto nötig |
| Distributionspaket | B oder ein Quellarchiv des Tags | der Paketmanager übernimmt die Updates |
Build-Befehle
Ein festgelegtes Release, Archive, keine Testwerkzeuge (Weg B):
composer create-project se7enxweb/exponential:v6.0.14 exponential --no-devcreate-project "behandelt die heruntergeladene composer.json als Wurzelpaket, daher gelten ihre
config.allow-plugins ... und ihr post-install-cmd-Skript: Am Ende werden die Klassenzuordnungen erzeugt
(php bin/php/ezpgenerateautoloads.php). Auf einem Produktionsserver ergänzen Sie --no-dev, das die Testwerkzeuge
weglässt" (3.2 B).
Ihr eigenes Projekt (Weg C):
mkdir exponential
cd exponential
composer config allow-plugins.se7enxweb/exponential-legacy-installer true
composer require se7enxweb/exponential
php bin/php/ezpgenerateautoloads.phpDas Paket hat den Typ ezpublish-legacy; das Installer-Plugin legt es im Wurzelverzeichnis des Projekts ab. "Wenn
Sie [dem Plugin zu vertrauen] verneinen, landet der Kernel in vendor/se7enxweb/exponential/ und die Erweiterungen
ebenfalls in vendor/, wo nichts sie findet." Composer führt nur die Skripte Ihres Wurzelpakets aus, erzeugen Sie die
Klassenzuordnungen also selbst.
Hinweis Welches PHP eine Version braucht, entscheidet, ob Composer sie überhaupt installiert:
v6.0.8bisv6.0.14verlangen PHP^8.1; die Linie 6.0.15 (main) akzeptiert PHP 8.0. "Kein veröffentlichter Tag akzeptiert PHP 8.0" (3.1). Bauen Sie mit dem PHP, das Ihr Bundle ausliefert.
Das Ergebnis prüfen
php bin/php/console --version
ls vendor/autoload.php
composer show se7enxweb/exponentialDer erste Befehl nennt die Version (zum Beispiel console (Exponential) 6.0.15stable). "Fehlt
vendor/autoload.php, hat Composer nicht fertig gearbeitet; führen Sie composer install erneut aus und lesen Sie
die Ausgabe ab dem ersten Fehler" (Das Ergebnis prüfen).
Prüfen Sie danach, was dem PHP Ihres Bundles fehlt:
php bin/php/console exp:velocity ext checkDer Befehl "listet jede Erweiterung auf, die die Installation braucht, markiert, was fehlt, und gibt den Installationsbefehl aus" (Container: Docker und Podman).
Häufige Fehler
- Aus
mainbauen und es Release nennen.mainbewegt sich; halten Sie den Commit fest oder bauen Sie aus einem Tag (Versionen, Tags und Pinning). composer updatein einem Build ausführen. Es löst jedes Mal neue Versionen auf. Bauen Sie mitcomposer installaus Ihrer Lock-Datei (Lock-Dateien und reproduzierbare Builds).- Als root bauen und Dateien im Besitz von root ausliefern. Korrigieren Sie die Besitzrechte vor dem Paketieren (Dateirechte und Besitz von var/).
- Versehentlich
.git-Verzeichnisse ausliefern. Weg A und--keep-vcsbehalten sie; entscheiden Sie, ob Ihre Empfänger sie haben wollen.
Verwandte Seiten
- Kapitel 3: Den Code beschaffen
- Bundles auf Composer-Basis
- Composer und Git auf Servern
- 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.