BIGtheme.net http://bigtheme.net/ecommerce/opencart OpenCart Templates
Home / Sviluppo Software / CMS / Tutorial Symfony2 Come rimuovere un Bundle

Tutorial Symfony2 Come rimuovere un Bundle

Nella precedente guida abbiamo visto che cos’è e come realizzare un  Bundle, oggi invece vedremo come rimuovere un Bundle.

Partiamo dal bundle di prova chiamato AcmeDemoBundle messo a disposizione da Symfony. Questo è un ottimo riferimento durante l’inizio di un progetto, ma probabilmente si vorrà rimuoverlo in un secondo momento.

Ecco cosa dobbiamo fare per rimuovere un Bundle:

  • De-registrare il bundle in AppKernel

Per sconnettere il bundel dal framework, occorre rimuoverlo dal metodo Appkernel::registerBundles().

Il bundle si trova solitamente nell’array $bundles, ma AcmeDemoBundle viene registrato solamente in ambiente di sviluppo, quindi lo si può trovare nell’istruzione successiva:

    // app/AppKernel.php
    // …
    class AppKernel extends Kernel
    {
        public function registerBundles()
        {
            $bundles = array(…);
            if (in_array($this->getEnvironment(), array(‘dev’, ‘test’))) {
                // commentare o eliminare questa riga:
                // $bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
                // …
            }
        }
    }
  • Rimuovere la configurazione del bundle

Ora che Symfony non sa più nulla del bundle, occorre rimuovere ogni configirazione, dalla cartella app/config, che faccia riferimento al bundle.

 2.1 Rimuovere le rotte del bundle
Le rotte di AcmeDemoBundle si trovano in app/config/routing_dev.yml. Rimuovere la voce _acme_demo alla fine di questo file.

 2.2 Rimuovere la configurazione del bundle
Alcuni bundle contengono configurazione nei file app/config/config*.yml. Assicurarsi di rimuovere la configurazione relativa da questi file. Si può trovare rapidamente la configurazione del bundle, cercando la stringa acme_demo (o il nome del bundle, p.e. fos_user per FOSUserBundle) nei file di configurazione.

AcmeDemoBundle non ha configurazioni. Tuttavia, il bundle viene usato nella configurazione del file app/config/security.yml. Lo si può usare come base per la sicurezza, ma si può anche rimuovere tutto: a Symfony non importa se lo si rimuove o meno.

  • Rimuovere il bundle dal filesystem

Ora che ogni riferimento al bundle è stato rimosso, si può cancellare il bundle dal filesystem. Il bundle si trova nella cartella src/Acme/DemoBundle. Si rimuova tale cartella e si può rimuovere anche la cartella Acme.

Se non si conosce la posizione di un bundle, si può usare il metodo getPath() per ottenerne il percorso:
echo $this->container->get(‘kernel’)->getBundle(‘AcmeDemoBundle’)->getPath();

  •  Rimuovere l’integrazione con altri bundle

Questa parte non si applica a AcmeDemoBundle, non essendoci altri bundle che dipendono da esso, quindi si può saltare questo passo.
Alcuni bundle dipendono da altri bundle: rimuovendone solo uno, l’altro probabilmente non funzionerà. Assicurarsi che nessun altro bundle, di terze parti o fatto in casa, si appoggi al bundle che si vuole rimuovere.
Se un bundle si appoggia a un altro, la maggior parte delle volte è perché ne usa dei servizi. La ricerca della stringa acme_demo può aiutare a trovare tali servizi.
Se un bundle di terze parti si appoggia a un altro bundle, lo si può trovare menzionato nel file composer.json, incluso nella cartella del bundle.

Con questa  guida speriamo di esservi stati utili, per qualsiasi chiarimento fateci sapere.

Puoi leggere Anche

WordPress, Come tornare alla versione precedente di un Plugin

Dopo aver visto come tornare ad una versione precedente del nostro CMS di WordPress, oggi ...