Comment Symfony 2 étend les solutions tierces
淡淡烟草味
淡淡烟草味 2017-05-16 16:45:49
0
1
326

Comment étendre le tiers dans la structure des répertoires de symfony2 ?
L'écrivez-vous vous-même dans le fournisseur ou existe-t-il un format de répertoire prescrit ?
Symfony1 propose un mode assistant. Symfony2 a-t-il également le même mécanisme ?

淡淡烟草味
淡淡烟草味

répondre à tous(1)
黄舟

J'ai collé du code directement à partir du document :

Pour étendre un certain bundle, il vous suffit de déclarer quel bundle est étendu via la méthode getParent() dans votre propre bundle. Ce qui suit utilise FOSUserBundle comme objet d'extension.

// src/Acme/UserBundle/AcmeUserBundle.php
namespace Acme\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}

L'extension d'un contrôleur est plus simple, il suffit d'hériter directement du contrôleur cible :

// src/Acme/UserBundle/Controller/RegistrationController.php
namespace Acme\UserBundle\Controller;

use FOS\UserBundle\Controller\RegistrationController as BaseController;

class RegistrationController extends BaseController
{
    public function registerAction()
    {
        $response = parent::registerAction();

        // ... do custom stuff
        return $response;
    }
}

En ce qui concerne d'autres éléments tels que les modèles, le routage, etc., quel que soit celui que vous souhaitez réutiliser ou réécrire, créez-le simplement dans votre propre bundle avec le même chemin de fichier.

Documentation : http://symfony.com/doc/current/cookbo...

MISE À JOUR1 :

Si vous souhaitez simplement ajouter du code tiers, conformément aux spécifications, il doit être placé chez les fournisseurs. Si votre code est conforme au PSR-0, le chargement automatique peut être réalisé, sinon vous devez l'ajouter dans l'application. /autoload.php Riga l'include correspondant.

Quant à savoir si le code étendu peut être utilisé globalement, cela dépend de l'appel et non de la définition. Pour faciliter la maintenance, vous pouvez résumer l'interface vous-même ou définir le service dans SF2.

Vous pouvez vous référer à la documentation du bundle sf2 et à Composer.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!