* Claudio Curci  /  Php developer

Moodle 4.5 e il nuovo Router


Con l’arrivo di Moodle 4.5 ci troviamo davanti a un aggiornamento che porta con sé alcune novità significative, capaci di migliorare sia l’esperienza dei formatori sia la gestione tecnica della piattaforma.
Una delle funzionalità più attese è la possibilità di inserire screenshot e video direttamente dal proprio PC, senza dover passare da caricamenti complessi o da strumenti esterni. Un dettaglio che semplifica la vita quotidiana a chi crea corsi: meno passaggi, meno tempo perso e contenuti multimediali subito pronti all’uso.

Accanto a questo miglioramento per docenti e istruttori, Moodle introduce anche un cambiamento più tecnico ma molto importante per gli sviluppatori: il nuovo Moodle Router.

Il nuovo Moodle Router: ordine e coerenza

Il Router è il nuovo sistema che gestisce le URL e i percorsi interni della piattaforma. Fino a ieri, la logica dei link era spesso meno lineare, con percorsi non sempre coerenti e che potevano risultare macchinosi da gestire. Con il Router, invece, Moodle punta a rendere il tutto più chiaro, ordinato e scalabile.

Architettura più chiara = manutenzione semplificata

Uno dei vantaggi principali di questo approccio è la centralizzazione: tutte le regole che determinano come vengono costruiti e gestiti i link non sono più disperse in più parti del codice, ma sono governate da un unico sistema.
Questo ha ricadute pratiche importanti:

  • Meno complessità per gli sviluppatori: chi crea o aggiorna estensioni e plugin sa esattamente dove intervenire.
  • Maggiore robustezza: riducendo la frammentazione del codice, si abbassa il rischio di bug e conflitti tra plugin diversi.
  • Aggiornamenti più fluidi: una struttura coerente rende meno traumatici i passaggi da una versione all’altra, facilitando la vita ai system administrator.

In altre parole, il Router non è solo un cambiamento tecnico, ma un investimento nella stabilità a lungo termine della piattaforma.

Un esempio concreto

Finora le url venivano scritte in questo modo:

$url = new moodle_url("/admin/tool/demo/index.php", ['id' => 42]);

Con il nuovo Router:
Nel plugin sarà possibile definire una route in modo centralizzato (es. db/routes.php):

$routes = [
    [
        'path' => '/admin/tool/demo/view/{id}',
        'controller' => \tool_demo\controller\main::class,
        'method' => 'view'
    ],
];

E nel controller:

namespace tool_demo\controller;

class main {
    public function view($id) {
        return "Stai visualizzando l'oggetto con ID {$id}";
    }
}

Il codice che lo richiama sarà di questo tipo:

$url = new moodle_url("/admin/tool/demo/view/42");

URL più leggibili, logica centralizzata e minore dipendenza dai file PHP sparsi, con una gestione più moderna in stile MVC.

SEO e oltre

Un altro aspetto da non sottovalutare riguarda la SEO. Grazie a URL più leggibili e consistenti, i portali Moodle aperti al pubblico avranno un vantaggio in termini di indicizzazione sui motori di ricerca. Una buona notizia per università, enti di formazione e aziende che usano Moodle anche come vetrina per corsi aperti e MOOC.

La domanda che molti amministratori si stanno ponendo: “Dovrò stravolgere qualcosa se i miei corsi sono accessibili solo agli utenti registrati?” La risposta è no.
Se i contenuti sono riservati e non visibili ai motori di ricerca, il nuovo Router non cambierà di fatto l’esperienza quotidiana degli utenti finali. Le opportunità SEO e di esposizione riguardano chi lavora con corsi pubblici, mentre per chi gestisce ambienti chiusi l’impatto sarà minimo.

Dal 1997, il Php a Roma!

Claudio Curci
Da quasi trent'anni mi dedico alla programmazione, con oltre 20 anni di esperienza come freelance. Credo in un approccio al lavoro in cui la competenza si sposa con la serenità, dove le urgenze sono vizi, non virtù. Mi impegno a supportare i clienti con risposte chiare e soluzioni concrete, evitando inutili tecnicismi. "La vera efficienza si trova nella serenità." – Henry David Thoreau
Infocurci Questo sito non utilizza cookie, non mostra nessuna pubblicità e non profila nulla. Navigate serenamente, siete i benvenuti.

Ambienti / piattaforme di sviluppo

Amazon Booking.com CodeIgniter Joomla Magento Moodle Kelkoo Kigo PayPal Symfony Wordpress Airbnb FormaLms Laravel Prestashop Shopify Whatsapp