1. Vorbereitung: Die composer.json
Damit Packagist und TYPO3 wissen, was sie mit deinem Code anfangen sollen, ist eine korrekte composer.json im Root-Verzeichnis deiner Extension essenziell. Für moderne Installationen (TYPO3 v13 & v14) setzen wir auf PHP 8.3+ und aktuelle Standards.
{
"name": "rmsstuttgart/rms-ai-search",
"type": "typo3-cms-extension",
"description": "AI Search extension for TYPO3 - connect your TYPO3 to chat.rm-solutions.de/",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "Michael Kettel",
"role": "Developer",
"homepage": "https://rm-solutions.de"
}
],
"config": {
"allow-plugins": {
"typo3/cms-composer-installers": true,
"typo3/class-alias-loader": true
}
},
"require": {
"php": "^8.3",
"typo3/cms-core": "^12.4 || ^13.4 || ^14.0"
},
"require-dev": {
"phpstan/phpstan": "^1.10",
"typo3/coding-standards": "^0.8",
"ssch/typo3-rector": "^2.15"
},
"autoload": {
"psr-4": {
"Rmsstuttgart\\RmsAiSearch\\": "Classes/"
}
},
"extra": {
"typo3/cms": {
"extension-key": "rms_ai_search"
}
}
}
2. GitHub Deployment
Erstelle ein neues öffentliches Repository auf GitHub und pushe deinen Code dorthin. Eine saubere Versionierung ist hierbei der Schlüssel.
git init
git add .
git commit -m "Initial commit: Support for TYPO3 v13 and v14"
git branch -M main
git remote add origin github.com/nutzername/my-extension.git
git push -u origin main
3. Packagist-Registrierung
Damit Nutzer deine Extension via composer require finden, musst du sie auf Packagist.org anmelden.
- Logge dich bei Packagist ein (am besten via GitHub-Login).
- Klicke auf den Button Submit.
- Gib die GitHub-URL deines Repositories ein.
- Klicke auf Check und nach der Validierung auf Submit.
4. Automatisierung per Webhook
Damit Packagist sofort mitbekommt, wenn du eine neue Version (ein neues Tag) veröffentlichst, richten wir eine automatische Synchronisation ein. Dies verhindert, dass du nach jedem Release manuell auf "Update" bei Packagist klicken musst.
Der Weg über den GitHub Webhook:
- Gehe auf Packagist zu deinem Profil > Show API Token. Kopiere diesen Token.
- Gehe in dein GitHub-Repository > Settings > Webhooks.
- Klicke auf Add webhook.
- Payload URL: packagist.org/api/github
- Content type: application/json
- Secret: Dein Packagist API Token.
- Wähle "Just the push event" (Packagist filtert relevante Tags automatisch heraus).
- Add webhook.
Sobald du nun ein Git-Tag erstellst und pushst, wird Packagist innerhalb von Sekunden aktualisiert:
git tag 1.0.0
git push origin --tags
5. Installation der Extension
Nachdem alles eingerichtet ist, können Nutzer (oder du selbst in einem Testprojekt) die Extension einfach installieren. Composer kümmert sich dank des Typs typo3-cms-extension automatisch um die korrekte Platzierung im TYPO3-System:
composer require rmsstuttgart/rms-ai-search