Pourquoi utiliser la Doctrine au lieu de L'ORM de base de données standard de CakePHP?
je suis sur le point de commencer à travailler sur un nouveau projet web en utilisant CakePHP 2.2, ayant principalement travaillé avec Zend Framework 1 auparavant.
a première vue, J'aime vraiment la façon dont CakePHP gère les modèles et les tables de base de données sous-jacentes, particulièrement en ce qui concerne l'obtention de relations un-à-plusieurs et plusieurs-à-plusieurs configurées rapidement avec le minimum de tracas. Il semble, très franchement, une bouffée d'air frais par rapport à la façon dont je faisais les choses dans le cadre de Zend.
Toutefois, au cours de la ces dernières années, alors que J'utilisais Zend Framework, j'avais examiné l'utilisation de la Doctrine pour fournir les relations modèles que ZF était plutôt maladroit à faire. Doctrine m'a semblé être très puissant et souple.
alors maintenant je me demande, avant d'aller trop loin dans mon nouveau projet CakePHP, devrais-je encore envisager D'utiliser la Doctrine avec mon nouveau choix de cadre? Quels avantages et inconvénients la Doctrine apporte-t-elle à la table (pas de jeu de mots!) comparé à L'ORM intégré et la base de données de CakePHP la fonctionnalité?
2 réponses
CakePHP fonctionne mieux s'il est utilisé dans son ensemble. Dans votre cas spécifique si vous pouvez utiliser la Doctrine au lieu de ORM de gâteau si vous aimez mais vous perdrez beaucoup de traits de gâteau. Pour eg. le FormHelper fait beaucoup de choses "par magie" comme deviner le type d'entrée approprié pour les champs, etc. en utilisant le schéma du modèle, en affichant automatiquement le message d'erreur au-dessous des champs appropriés dans les formulaires lorsque la validation échoue, etc.
Comme vous avez dit que vous n'avez pas beaucoup d'expérience avec la Doctrine soit donc, je voudrais suggérez de s'en tenir à L'ORM de CakePHP et cherchez l'option seulement si vous la trouvez inadéquate pour vos besoins.
si vous avez déjà travaillé avec Doctrine et ORM de CakePHP, vous pouvez décider en fonction des principales raisons pour changer:
- Qu'est-ce qui vous donnera plus de productivité?
- Qu'est-ce qui vous donnera plus de maintenabilité?
- Qu'est-ce qui vous donnera moins de courbe d'apprentissage?
Personnellement, je choisirais la Doctrine, basée sur le fait que c'est vraiment spécifique à un problème.