Cakephp et Yii: similitudes / différences / vitesse?

je suis un programmeur CakePhp. J'ai décidé d'essayer le cadre Yii. Je voudrais savoir en quoi CakePhp est similaire et différent de Yii. En outre, Yii est-il plus rapide que CakePhp comme ils le prétendent?

28
demandé sur Jon 2010-11-29 12:32:11

8 réponses

D'après l'expérience personnelle, il y a plusieurs différences dans les deux cadres, en particulier la façon dont les modèles sont manipulés dans cake vs yii.

  • dans cakephp vous ne pouvez pas utiliser composite clé primaire, c'est le principal un briseur de deal pour moi. Composite la clé primaire est prise en charge dans Yii.
  • Cakephp applique convention, alors que yii favorise convention, vous n'êtes pas obligé de suivre une certaine norme. Alors que la convention est un bon moyen de construire bonne pratique de programmation, en fin de compte la flexibilité que yii a offert gagne ce round pour moi.
  • de la boîte de performance, je pense que yii a l'avantage, mais comme avec le réglage des performances, avec une bonne configuration de cache, et aussi longtemps que vous êtes prudent dans l'utilisation de la ActiveRecord modèles, ils ne sont pas très à part

en guise de note d'accompagnement, j'ai dirigé la mise en œuvre de l'application web avec CakePHP et Yii, le feedback que j'ai reçu de l'équipe était que le moins l'équipe expérimentée préfère CakePHP, alors que Yii est préféré par l'équipe plus expérimentée. Fais de ça ce que tu veux.

41
répondu ZaQ 2010-11-29 13:14:49

Un vieux post, mais juste l'ajout d'une certaine expérience.

j'utilise du gâteau depuis un moment maintenant. 3 ans pour être précis.

actuellement Yii est certainement le leader de la technologie MVC en PHP. Il s'agit d'un cadre auquel aucun autre cadre PHP ne peut actuellement se comparer. Personnellement, j'ai été vraiment impressionné par la "grille"... je pensais que PHP side avait toujours manqué cela d'une certaine manière :) il est étonnamment rapide et convient à une large gamme de développeurs.

Pour CakePHP: j'ai lu le nombre de blogs où les gens prétendent et s'accrochent probablement à "conventions" et "rigueur" de l'infrastructure.

cela dit, je suis d'accord et en désaccord. Les revendications qui sont généralement faites semblent assez évident une fois que vous obtenez accrocher. Chaque règle gâteau citation Force citation peuvent facilement être dépassées. Plus important encore, ce que les gens ne remarquent pourquoi les conventions forcé ?

Si vous êtes un développeur qui a beaucoup de production de pression, je dirais auto-magique de cake qui court derrière la scène, comme obtenir des données de modèles reliés, sauvegarder des données de modèles reliés, définir les relations basées sur conventions c'est absolument incroyable.

la netteté qui vient de suivre ces conventions ne peut pas être expliquée ici mais seulement expérimentée.

j'ai aussi lu beaucoup de blogs où j'ai vu plaintes au sujet de la rapidité du cadre. D'après mon expérience, je dirais que vous devriez lire le livre. les gens définissent le nombre de relations, Cake par défaut récupère toutes les données de ses modèles connexes. Vous pouvez outrepasser ce comportement et juste récupérer les données dont vous avez besoin. En fait votre bind, déboutonnez vos modèles à la volée. Gâteau a aussi un comportement appelé "containable" pour le même but.

une fois que vous avez mis la main sur le gâteau, la production et les développements est en vérité, en vérité "RAPIDE".

aussi, lot a changé depuis CakPHP 2, c'est très rapide et encore plus évolutif.

tout dit, je crois vraiment que Cake a une documentation très pauvre; et avec une meilleure documentation, des exemples plus réels et des dépôts, Ce serait un candidat plus fort.

16
répondu Kishor Kundan 2014-04-07 02:52:43

les deux cadres sont très similaires, mais j'aime Yii parce que est rapide, utilise chargement paresseux sur les modèles, des centaines d'assistants (Widgets jQuery), pas besoin de XML/YAML, beaucoup d'extensions, console et GII générateur de code, interface d'administration sans magie (+customizable, +control), forum actif, entièrement et avec aisance OOP Design, même le système... etc.

Cakephp est un très bon cadre aussi, j'aime qu'ils planifient des cours de formation.

5
répondu ls_ttt 2012-05-06 17:45:16

je prie de différer tous les dénigrement de Cakephp. Être un utilisateur des deux cadres, si vous savez ce que vous faites, Cakephp est très flexible, ce qui signifie qu'ils demandent aux gens d'utiliser des conventions, mais la même documentation vous dit comment contourner cela. Et jusqu'à présent, aucun point de référence n'a été fourni, donc honte à vous tous...

d'après mon expérience, j'ai dû faire des ajustements de performance pour le gâteau, pas Yii donc je suppose que je ne peux pas encore donner la comparaison de la façon dont les choses devraient travail ou comment je attendre des choses à travailler. Plus de la plupart des benchmarks y utiliser Cakephp et d'autres cadres de la boîte, donc je m'attends à Cakephp médiocres.

4
répondu vsecades 2012-04-30 16:24:42

Diffrence entre Cake et Yii

  1. Cake a un Model par Controller où comme Yii a 1 par action I. le contrôleur est indépendant d'un modèle particulier dans Yii
  2. Dans Yii vous devez spécifier manuellement votre point de vue et des modèles dans chaque action
  3. Dans Yii liées et les dossiers ne sont pas récupérées, sauf si spécifié manuellement
  4. dans Yii un modèle peut être de 2 types (I. e s'étend de) le modèle de dossier actif ou le modèle de Forme Basé sur si vous voulez enregistrer les données ou non respectivement
  5. Cakephp applique la convention, alors que yii est flexibilité.
4
répondu Web Developer 2014-03-02 17:35:17

j'ai travaillé avec cakephp pendant environ 2 ans et j'ai presque terminé ma première en Yii. (J'ai aussi fait un an à ZendF et je l'ai détesté) Cakephp était bon pour son système strict mais avait beaucoup de limites à sa flexibilité. Yii est fait parfaitement d'une façon que j'appelle "hack me". La meilleure fonctionnalité est qu'elle commence votre journée avec une classe de Controller vide qui est utilisée pour hériter tous vos controllers. Mais bientôt je découvre, je peux sauter dans et outrepasser les fonctions Yii standard avec application spéciale large portée, comme un rendu. Dans cake, vous ne pouvez pas faire beaucoup de piratage dans votre code d'application. vous finirez par aller dans le répertoire core pour quelques cas très très spéciaux (très mauvaise idée lorsque vous faites une mise à jour du noyau).

Les plugins/extensions dans yii sont si faciles à créer par rapport à cakephp.

cakephp jusqu'à ce que je sache, ne supporte pas les modules. Je ne suis pas un fan de module moi-même, mais finalement quand votre code d'application grandit, vous voudriez le diviser en un groupe séparé, par exemple, vous pouvez externaliser le module à quelqu'un d'autre.

je crois, cakephp core est assez lourd pour ralentir sur les sites à fort trafic. ZendF est bien pire. Yii a une plus petite pile d'appels au moment où votre action est appelée.

il n'y a pas de cakephpt.php mais il y a un yiit.php (cadre entier en un seul fichier, utilisation en production seulement) pour pré-compiler tout dans yii en utilisant apc/etc et sauver quelques millisecks dans les appels ouverts de fichiers système.

le jeu de règles de L'URL de YII et son algo inversé est imbattable à peut-être tous les autres cadres en php. IMO Yii URL config est trop facile comparé à cakephp. et puis, il commence à faire l'url exacte du navigateur aussi à partir de cette même config lorsque vous appelez createUrl, qui rend vos urls dans votre application changer juste avec le fichier de configuration. si vous choisissez de déplacer un contrôleur/module dans un (sous)domaine séparé, il suffit de modifier la configuration, votre code app peut rester imprudent.

la façon dont les modèles ont des étiquettes d'attribut, des règles, celles-ci peuvent aussi être changées. tout support de la méthode model propriétés get/post - lifesaver. alors les règles relationnelles sont aussi bien meilleures que ce qui est capable dans cakephp. les validations et même le code PHP brut dans certaines règles est beaucoup de flexibilité.

la convention file path qui est très flexible est également unique à yii. et puis les mises en page de sub aussi le font très facilement pour créer la réutilisabilité de vos vues.

1
répondu thevikas 2013-03-15 12:43:28

j'ai essayé d'apprendre Cakephp mais la documentation bien que vaste est pauvre dans sa structure. Par exemple dans la section FormHelper du manuel, il parle des options de forme sans expliquer comment cela fonctionne, juste la syntaxe et montre ensuite la sortie html. Pour un débutant comme moi, je veux connaître la syntaxe ok, mais aussi, où vont les données de formulaire collectées, Comment puis-je récupérer les champs d'entrée, Comment puis-je diriger l'entrée de formulaire où aller, qu'est-ce que cela signifie que vous 'créer le formulaire contexte", Quel Est ce contexte et comment est-il utilisé, etc.

Qu'est-ce à dire,

"en supposant que L'Utilisateur a etbelongstomany Group. Dans votre controller, définissez une variable camelCase pluriel (group -> groups dans ce cas, ou ExtraFunkyModel -> extraFunkyModels) avec les options select. Dans l'action controller vous mettriez ce qui suit:".

J'ai étudié Codeigniter et c'était si intuitif dans ses explications, mais La documentation de Cakephp, bien qu'elle soit très bien présentée, n'explique pas les choses mais lit plutôt comme un manuel de référence. Je regarde actuellement Yii et bien que sa plus complexe que Codeigniter, la documentation est beaucoup plus informative et donc compréhensible que celle de Cakephp.

0
répondu Jason 2014-07-24 18:28:55

Yii est meilleur pour un débutant à MVC, mais cakephp est un peu difficile pour un débutant. Les deux sont de beaux cadres, mais Yii ont plus de tutoriels ou de documentation disponibles dans net.

-4
répondu Ben 2012-03-02 13:27:31