Aggiornamenti Beta 15
La Beta 15 presenta molti nuovi extender, una riprogettazione totale del dashboard di amministrazione e molte altre interessanti funzionalità per le estensioni. Come sempre, abbiamo fatto del nostro meglio per fornire livelli di compatibilità con le versioni precedenti e consigliamo di abbandonare i sistemi obsoleti il prima possibile per rendere le estensioni più stabili.
If you need help applying these changes or using new features, please start a discussion on the community forum or Discord chat.
Nuove funzionalità / deprecazioni
Extender
Flarum\Api\Event\WillGetDataeFlarum\Api\Event\WillSerializeDatasono stati deprecati, l'extenderApiControllerva utilizzato al suo postoFlarum\Api\Event\SerializingeFlarum\Event\GetApiRelationshipsono stati deprecati, l'extenderApiSerializerva utilizzato al suo postoFlarum\Formatter\Event\Parsingè obsoleto, il metodoparsediFormatterva utilizzato al suo postoFlarum\Formatter\Event\Renderingè obsoleto, il metodorenderdiFormatterva utilizzato al suo postoFlarum\Notification\Event\Sendingè obsoleto, il metododriverdiNotificationva utilizzato al suo posto- Si noti che il nuovo sistema di driver di notifica non è un analogo esatto del vecchio evento
Sending, poiché può solo aggiungere nuovi driver, non modificare la funzionalità del driver di avviso della campana di notifica predefinito. Se l'estensione deve modificare come o a chi vengono inviate le notifiche, potrebbe essere necessario sostituireFlarum\Notification\NotificationSyncer.
- Si noti che il nuovo sistema di driver di notifica non è un analogo esatto del vecchio evento
Flarum\Event\ConfigureNotificationTypesè obsoleto, il metodotypediNotificationva utilizzato al suo postoFlarum\Event\ConfigurePostTypesè obsoleto, il metodotypediPostva utilizzato al suo postoFlarum\Post\Event\CheckingForFloodingè ormai obsoleto comeFlarum\Post\Floodgate. Sono stati sostituiti con un sistema di limitazione basato su middleware che si applica a TUTTE le richieste a / api / * e possono essere configurati tramite ilThrottleApi. Per favore guarda la documentazione limitazioni API per informazioni.Flarum\Event\ConfigureUserPreferencesè ormai obsoleto, il metodoregisterPreferencediUserva utilizzato al suo postoFlarum\Foundation\Event\Validatingè ormai obsoleto, il metodoconfigurediValidatorva utilizzato al suo postoIl sistema delle politiche è stato leggermente rielaborato per essere più intuitivo. In precedenza, i criteri contenevano sia i criteri effettivi, che determinano se un utente può eseguire alcune capacità, sia gli ambiti di visibilità del modello, che consentivano un'efficace limitazione delle query solo agli elementi a cui gli utenti hanno accesso. Guarda documentazione sulle autorizzazioni per maggiori informazioni su questo sistema. Ora:
Flarum\Event\ScopeModelVisibilityè ormai obsoleto. Nuovi scopers possono essere registrati tramite l'extenderModelVisibility, e ogni queryEloquent\Builderpuò essere richiamata dal metodowhereVisibleTo, con l'abilità in questione come secondo argomento opzionale (il valore predefinito èview).Flarum\Event\GetPermissionè ormai obsoleto. Le policy possono essere registrate tramite extenderPolicy.Flarum\User\User::cannon è cambiato. Si prega di notare che le nuove policy devono restituire uno dei valori$this->allow(),$this->deny(),$this->forceAllow(),$this->forceDeny(), non booleano.
L'extender
ModelUrlè stato aggiunto, consentendo la registrazione di nuovi driver di slug. Ciò accompagna il nuovo sistema di slug di Flarum, che consente alle estensioni di definire strategie personalizzate per i modelli. L'estensore supporta modelli al di fuori del nucleo Flarum. Si prega di consultare il nostro file model slugging per informazioni.L'extender
Settingsè stato aggiunto, il metodoserializeToForumsemplifica la serializzazione di un'impostazione nel forum.L'extender
ServiceProviderè stato aggiunto. Questo dovrebbe essere usato con estrema cautela solo per casi d'uso avanzati, dove non ci sono alternative. Tieni presente che il livello del fornitore di servizi non è considerato API pubblica ed è soggetto a modifiche in qualsiasi momento, senza preavviso.
Pannello Amministrazione ridisegnato
La dashboard dell'amministratore è stata completamente ridisegnata, con l'obiettivo di barre di navigazione per ogni estensione. Anche l'API per le estensioni per registrare impostazioni, autorizzazioni e pagine personalizzate è stata notevolmente semplificata. Ora puoi anche aggiornare la tua estensione composer.json per fornire link per finanziamenti, supporto, siti web e così via che verranno visualizzati nella pagina di amministrazione della tua estensione. Please see our Admin JS documentation for more information on how to use the new system.
Altre feauture nuove
- Sul backend, il nome del percorso è ora disponibile tramite
$request->getAttribute('routeName'), e per il middleware che viene eseguito dopoFlarum\Http\Middleware\ResolveRoute.php. Flarum\Api\Controller\UploadImageController.phppuò ora essere utilizzato come classe base per i controller che caricano immagini (come per il logo e la favicon).- AIl ripristino automatico dello scorrimento del browser ora può essere disabilitato per le singole pagine vedere la nostra documentazione del frontend per maggiori informazioni.
Cambiamenti decisivi
- I seguenti layer BC deprecati del frontend sono stati rimossi:
momentjsnon funziona più come alias perdayjsthis.propsethis.initPropsnon più alias dithis.attrsethis.initAttrsper la classe baseComponentm.withAttrem.streamnon più alias diflarum/utils/withAttreflarum/utils/Streamapp.cache.discussionListè stato rimossothis.contentethis.editorsono stati rimossi daComposerBodythis.component,this.content, ethis.valuesono stati rimossi daComposerState
- I seguenti layer BC back-end deprecati sono stati rimossi:
publicPath,storagePath, evendorPathdiFlarum\Foundation\Applicationsono stati rimossibase_path,public_path, estorage_pathsono stati rimossigetEmailSubjectdiFlarum\Notification\MailableInterfaceDEVE ora prendere un'istanza di traduttore come argomentoFlarum\User\AssertPermissionTraitè stato rimosso, i metodi analoghi suFlarum\User\Userandranno utilizzati al suo postoFlarum\Event\PrepareUserGroupsè stato rimosso, usa invece l'extenderUserFlarum\User\Event\GetDisplayNameè stato rimosso, usa invece l'extenderUser