In questa guida vi dirò come installare le vostre estensioni in locale per poterle sviluppare e testare senza farlo per forza online.
Se vuoi creare la tua estensione sulla tua installazione locale di Flarum, incontrerai il problema che la tua estensione non viene riconosciuta se crei semplicemente una directory nella root di Flarum. Questo perché composer non sa che quella è una repository locale. Un messaggio di errore comune che vedrai è:
Fatal error: Uncaught exception 'ReflectionException' with message 'Class <YourClass> does not exist' in <SomePathToContainer> ...
Questo tutorial spiegherà come configurare il tuo ambiente di sviluppo per consentire a qualsiasi estensione su cui lavori di essere acquisita da composer.
Ovviamente questa guida dà per scontato che abbiate installato composer e Flarum in locale e node.js
Terminologia
root/docroot - la cartella dove risiede Flarum
workbench - directory dove metterete le vostre estensioni
package - il nome che andrà su packagist, che identifica la vostra estensione, per esempio:
flarum/core
o hyn/guardian
.
vendor - l'autore dell'estensione,che risiede sempre nella prima parte del nome: flarum/core, hyn/guardian
La directory delle estensioni
Creare una cartella nella docroot chiamataworkbench
. Qui inseriremo le cartelle delle nostre estensioni.
Aggiornate composer.json
Modificate il file composer.json di Flarum nella docroot aggiungendo la seguente riga qui sotto😀
`"repositories": [
{
"type": "path",
"url": "workbench/*/"
}
],`
Ora il file composer.json somiglierà a questo:
`{
"name": "flarum/flarum",
"description": "Delightfully simple forum software.",
"type": "project",
"keywords": ["forum", "discussion"],
"homepage": "http://flarum.org",
"license": "MIT",
"authors": [
{
"name": "Toby Zerner",
"email": "toby.zerner@gmail.com"
},
{
"name": "Franz Liedke",
"email": "franz@develophp.org"
}
],
"support": {
"issues": "https://github.com/flarum/core/issues",
"source": "https://github.com/flarum/flarum",
"docs": "http://flarum.org/docs"
},
"require": {
"flarum/core": "^0.1.0",
"flarum/akismet": "^0.1.0",
"flarum/approval": "^0.1.0",
"flarum/auth-facebook": "^0.1.0",
"flarum/auth-github": "^0.1.0",
"flarum/auth-twitter": "^0.1.0",
"flarum/bbcode": "^0.1.0",
"flarum/emoji": "^0.1.0",
"flarum/english": "^0.1.0",
"flarum/flags": "^0.1.0",
"flarum/likes": "^0.1.0",
"flarum/lock": "^0.1.0",
"flarum/markdown": "^0.1.0",
"flarum/mentions": "^0.1.0",
"flarum/pusher": "^0.1.0",
"flarum/sticky": "^0.1.0",
"flarum/subscriptions": "^0.1.0",
"flarum/suspend": "^0.1.0",
"flarum/tags": "^0.1.0"
},
"repositories": [
{
"type": "path",
"url": "workbench/*/"
}
],
"require-dev": {
"franzl/studio": "0.10.x@dev"
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "beta"
}`
Aggiunta / creazione della tua estensione in workbench
Nel caso tu abbia già un'estensione in git (github). Vai alla directory del workbench con ssh ed esegui il comando per creare un clone del tuo codice:
git clone <repository>
Questo creerà automaticamente una directory sotto workbench con il nome del tuo repository (senza il nome del creatore). Ricorda il nome del pacchetto nel tuo file composer.json
.
Registra l'estensione in Flarum e ancora una volta modifica il composer.json
nel docroot. Se il nome del pacchetto non è menzionato sotto require, aggiungilo. Il valore deve essere *@dev
.
Ora con ssh esegui l'aggiornamento del composer e dovresti vedere che il tuo pacchetto è ora collegato simbolicamente dalla directory del workbench.