Eventuali modifiche al sistema vanno fatte utilizzando le "estensioni".
Le "Estensioni" sono file che contengono codice che viene aggiunto ai file di sistema.
Tutte le estensioni devono trovarsi nella cartella ext/ che si trova nella cartella principale di phpBB e vanno archiviate utilizzando una struttura di cartelle del tipo "ext/nome-autore/nome-estensione".
Il "nome-autore" può essere il nome utente dell'autore o qualsiasi altro nome scelto per raggruppare le estensioni. Il nome dell'estensione è il nome dell'estensione. In questo tutorial useremo acme come nome del fornitore e demo come nome dell'estensione.
Entrambi i nomi dell'autore e dell'estensione devono iniziare con una lettera maiuscola o minuscola, seguita solo da lettere e numeri. Sottolineature, trattini e altri caratteri non sono permessi.
Compositore JSON
Ogni estensione richiede un file di metadati denominato composer.json per consentire a phpBB di identificare la propria estensione. Questo file contiene informazioni di base su un'estensione e le sue dipendenze. È scritto utilizzando il formato JSON e deve essere memorizzato nella cartella radice dell'estensione, ad esempio phpBB/ext/acme/demo/composer.json .
Le informazioni in composer.json verranno utilizzate da Extensions Manager nell'ACP. I dettagli dei metadati sono spiegati sotto l'esempio, ma per ora diamo un'occhiata al file completo:
Codice: Seleziona tutto
{
"nome" : "acme / demo" ,
"type" : "phpbb-extension" ,
"description" : "Acme Demo Extension per phpBB 3.2" ,
"homepage" : "https://github.com/phpbb/phpbb-ext-acme-demo" ,
"versione" : "0.1.0" ,
"tempo" : "2013-11-05" ,
"parole chiave" : [ "phpbb" , "estensione" , "acme" , "demo" ],
"licenza" : "GPL-2.0" ,
"autori" : [
{
"nome" : "Nickv" ,
"email" : "nickvergessen @ localhost" ,
"homepage" : "https://github.com/nickvergessen/" ,
"ruolo" : "Lead Developer"
}
],
"richiede" : {
"php" : "> = 5.4.0" ,
"compositore / installatore" : "~ 1.0"
},
"require-dev" : {
"phpbb / epv" : "dev-master"
},
"extra" : {
"display-name" : "Acme Demo Extension" ,
"soft-require" : {
"phpbb / phpbb" : "~ 3.2"
}
}
}
È importante ricordare che l'ultimo oggetto o oggetto in qualsiasi array JSON non deve contenere una virgola finale.
autori
Potresti avere autori illimitati. Almeno un autore è altamente raccomandato.
richiede
Elenca le dipendenze richieste dall'estensione, ovvero la versione di PHP e le librerie di terze parti .
extra
Questa sezione può contenere praticamente qualsiasi dato arbitrario in base alle specifiche del compositore. Tuttavia, phpBB richiede due voci speciali in questo array per le estensioni:
Guarda anche
Una spiegazione completa di tutti i campi dello schema JSON disponibili in un file composer.json può essere trovata qui: https://getcomposer.org/doc/04-schema.md
Ulteriori informazioni su come specificare i vincoli della versione del pacchetto possono essere trovate qui: https://getcomposer.org/doc/articles/ve ... onstraints
Finora, la nostra estensione non ha ancora funzionato. Passa alle sezioni successive per saperne di più su come scrivere un'estensione che faccia qualcosa di utile.