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\WillGetData
eFlarum\Api\Event\WillSerializeData
sono stati deprecati, l'extenderApiController
va utilizzato al suo postoFlarum\Api\Event\Serializing
eFlarum\Event\GetApiRelationship
sono stati deprecati, l'extenderApiSerializer
va utilizzato al suo postoFlarum\Formatter\Event\Parsing
è obsoleto, il metodoparse
diFormatter
va utilizzato al suo postoFlarum\Formatter\Event\Rendering
è obsoleto, il metodorender
diFormatter
va utilizzato al suo postoFlarum\Notification\Event\Sending
è obsoleto, il metododriver
diNotification
va 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 metodotype
diNotification
va utilizzato al suo postoFlarum\Event\ConfigurePostTypes
è obsoleto, il metodotype
diPost
va 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 metodoregisterPreference
diUser
va utilizzato al suo postoFlarum\Foundation\Event\Validating
è ormai obsoleto, il metodoconfigure
diValidator
va 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\Builder
può 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::can
non è 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 metodoserializeToForum
semplifica 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.php
può 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:
momentjs
non funziona più come alias perdayjs
this.props
ethis.initProps
non più alias dithis.attrs
ethis.initAttrs
per la classe baseComponent
m.withAttr
em.stream
non più alias diflarum/utils/withAttr
eflarum/utils/Stream
app.cache.discussionList
è stato rimossothis.content
ethis.editor
sono stati rimossi daComposerBody
this.component
,this.content
, ethis.value
sono stati rimossi daComposerState
- I seguenti layer BC back-end deprecati sono stati rimossi:
publicPath
,storagePath
, evendorPath
diFlarum\Foundation\Application
sono stati rimossibase_path
,public_path
, estorage_path
sono stati rimossigetEmailSubject
diFlarum\Notification\MailableInterface
DEVE ora prendere un'istanza di traduttore come argomentoFlarum\User\AssertPermissionTrait
è stato rimosso, i metodi analoghi suFlarum\User\User
andranno utilizzati al suo postoFlarum\Event\PrepareUserGroups
è stato rimosso, usa invece l'extenderUser
Flarum\User\Event\GetDisplayName
è stato rimosso, usa invece l'extenderUser