Question

Je suis un programmeur CakePHP. J'ai décidé d'essayer le cadre Yii. Je voudrais savoir dans quelle mesure est CakePHP est semblable et différent de Yû. De plus, est plus rapide que Yû CakePhp mesurablement comme ils le prétendent?

Était-ce utile?

La solution 4

Diffrence entre gâteau et Yû

  1. gâteau a par modèle contrôleur alors que Yii a 1 par l'action i.e. contrôleur est indépendant d'un modèle particulier en Yii
  2. Dans Yii vous devez spécifier manuellement votre point de vue et des modèles dans chaque action
  3. Dans Yii liés et les documents associés ne sont pas récupérés manuellement, sauf indication
  4. Dans un modèle peut Yii être de 2 types (i.e. étend à partir de) modèle d'enregistrement actif ou d'un modèle par formulaire si vous souhaitez enregistrer les données ou non, respectivement
  5. CakePHP applique la convention, alors que yu est la flexibilité.

Autres conseils

De son expérience personnelle, il y a plusieurs différences dans les deux cadres, en particulier les modèles de manière sont traités dans le gâteau vs yu.

  • Dans CakePHP vous ne pouvez pas utiliser composite clé primaire, c'est la principale deal-breaker pour moi. Composite clé primaire est prise en charge dans Yii.
  • CakePHP Enforces convention, alors que yu faveurs convention, vous n'êtes pas obligé de suivre une certaine norme. Alors que la convention est appliquée une bonne façon de construire de bonnes pratiques de programmation, à la fin de la flexibilité que yu a offert ce tour gagne pour moi.
  • Sur la performance de la boîte, je pense que yu a l'avantage, mais comme l'optimisation des performances, avec une bonne configuration du cache, et aussi longtemps que vous êtes prudent dans l'utilisation des modèles ActiveRecord, ils ne sont pas beaucoup à part

Comme une note de côté, j'ai mise en œuvre de plomb de l'application Web à la fois avec CakePHP et Yû, les commentaires que je suis arrivé de l'équipe était que l'équipe moins expérimentés preferes CakePHP, tandis que Yû est préféré par l'équipe plus expérimentés. Comprenne ce que vous voulez.

Un ancien poste, mais simplement d'ajouter un peu d'expérience à elle.

J'utilise le gâteau pendant un certain temps maintenant. 3 ans pour être précis.

Actuellement, Yû est sans aucun doute celui qui mène la technologie MVC en PHP. Il est un cadre auquel peut être aucun autre framework PHP peut comparer actuellement. Personnellement, je suis vraiment impressionné par la « grille » ... je pensais que PHP côté avait toujours manqué ce en quelque sorte :) Il est incroyablement rapide et costumes large éventail de développeurs.

Pour CakePHP: J'ai lu nombre de blogs où les gens prétendent et s'accrochent probablement à "conventions" et "" du cadre.

Cela dit, je suis d'accord et en désaccord. Les demandes qui sont habituellement faites de genre semblent assez évident une fois que vous obtenez coup de lui. Chaque règle gâteau quote Forces citation peut facilement être contournée. Plus important encore ce que les gens ne parviennent pas à un avis est pourquoi sont les conventions forcées?

Si vous êtes un développeur qui a beaucoup de pression de production, je dirais que auto-magique de gâteau qui passe derrière la scène, comme l'obtention de données des modèles liés, l'enregistrement des données de modèles connexes, définissant les relations basées sur conventions est absolument incroyable.

Le neatness qui vient de suivre ces conventions ne peuvent pas être expliquées ici mais seulement expérimentés.

J'ai aussi lu beaucoup de blogs où j'ai vu des plaintes sur la vitesse du cadre. Dans mon expérience, je dirais, vous devez lire le livre. Les gens définissent nombre de relations, gâteau par défaut va chercher toutes ses données modèles connexes. Vous pouvez modifier ce comportement et juste récupérer les données que vous avez besoin. En fait, votre Bind, unbind vos modèles à la volée. Gâteau a aussi un comportement appelé "maîtrisables" pour le but.

Une fois que vous obtenez vos mains sur le gâteau défini, la production et l'évolution est vraiment vraiment « rapide ».

En outre, beaucoup de choses ont changé depuis CakPHP 2, il est très rapide et encore plus évolutive.

Tous dit, je crois vraiment gâteau a une documentation très pauvre; et avec une meilleure documentation, plus réel des exemples du monde et des dépôts, ce serait un plus fort concurrent.

Les deux cadres sont très similaires, mais je aime Yii parce est rapide, utilise le chargement paresseux sur des modèles, des centaines d'assistants (jQuery Widgets), pas besoin de XML / YAML, beaucoup d'extensions, générateur de la console et le code Gii, interface d'administration sans magie (+ personnalisable, + contrôle), forum actif, pleinement et beatifully POO conception, système, même ... etc.

CakePHP est un très bon cadre aussi, je l'aime qu'ils planifient sur les cours de formation.

Je vous prie de différer avec tous les dénigrement 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 de conventions d'utilisation, mais la même documentation vous indique comment contourner ce problème. Et à ce jour, pas de repères réels ont été fournis, de sorte que la honte sur vous tous ...

Dans mon expérience, j'ai dû faire l'optimisation des performances pour le gâteau, pas Yû donc je suppose que je ne peux pas donner la comparaison pour l'instant de comment les choses devraient travailler ou comment je me attends à des choses au travail. De plus la plupart des points de référence là-bas utiliser CakePHP et d'autres cadres de la boîte, donc je me attends CakePHP à de mauvais résultats.

J'ai travaillé avec CakePHP pendant environ 2 ans et presque terminé mon premier en Yii. (J'ai aussi fait un an à ZendF et détestais) CakePHP était bon pour son système strict, mais avait beaucoup de limites à sa flexibilité. Yu est en fait parfaitement d'une manière que j'appelle « me pirater ». La meilleure caractéristique est qu'il commence la journée avec une classe vide contrôleur qui est utilisé pour hériter tous vos contrôleurs. Mais bientôt, je trouve, je peux sauter et passer outre les fonctions standard YII avec champ d'application spéciale large, comme le rendu. Dans le gâteau, vous ne pouvez pas faire beaucoup pirater votre code d'application. vous finirez par aller dans le répertoire de base pour certains cas très très spéciaux (très mauvaise idée quand vous faites une mise à jour de base).

Les plugins / extensions dans yu sont si faciles à créer par rapport à CakePHP.

CakePHP jusqu'à ce que je sais, ne prend pas en charge les modules. Je ne suis pas un fan module de moi-même, mais finalement quand la croissance de votre code de l'application, vous voulez diviser dehors dans un groupe distinct, par exemple vous pouvez externaliser le module à quelqu'un d'autre.

Je crois, le noyau CakePHP est assez lourd pour ralentissement sur les sites à fort trafic. ZendF est bien pire. Yu a une pile d'appels plus petit au moment où vous l'action est appelée.

Il n'y a pas cakephpt.php mais il y a un yiit.php (cadre entier dans une seule file, l'utilisation de la production uniquement) pour tout pré-compilation en utilisant yu apc / etc et sauver quelques millisecs dans le fichier système appels ouverts.

L'ensemble de règles d'URL de YII et son algo inverse est imbattable pour peut-être tous les autres cadres en php. OMI yu config URL est trop facile par rapport à CakePHP. puis, il commence à faire l'url du navigateur exact aussi de cette même configuration lorsque vous appelez createUrl, qui fait vos urls dans votre changement app juste avec un fichier de configuration. si vous choisissez de déplacer un contrôleur / module dans un domaine distinct (sous), juste des changements de configuration sont nécessaires, votre code d'application peut rester insouciante.

Les modèles de façon ont des étiquettes d'attributs, règles, celles-ci peuvent également être modifiés. tout le soutien méthode modèle get / propriétés post - bouée de sauvetage. alors les règles de relations sont aussi beaucoup mieux que ce qui est capable de CakePHP. et même le code de validation php premières dans certaines règles est beaucoup de flexibilité.

La convention de chemin de fichier qui est très flexible est également unique à yu. puis mises en page sous rendent également très facilement pour créer réutilisabilité de vos vues.

J'ai essayé d'apprendre CakePHP mais la documentation bien qu'important est pauvre dans sa structure. Par exemple, dans la section FormHelper du manuel, il parle d'options de formulaire sans expliquer comment cela fonctionne, juste la syntaxe et affiche alors la sortie html. Pour un débutant comme moi, je veux savoir le ok de la syntaxe, mais aussi où se trouvent les données sous forme recueillies vont, comment puis-je récupérer les champs d'entrée, comment puis-je l'entrée de forme directe où aller, qu'est-ce que cela signifie que vous « créer le contexte de la forme », ce qui est dans ce contexte et comment est-ce utilisé, etc.

Qu'est-ce que cela signifie ,

  

« En supposant que l'utilisateur hasAndBelongsToMany Group Dans votre contrôleur, définir une variable pluriel camelCase (groupe -> groupes dans ce cas, ou ExtraFunkyModel -> extraFunkyModels) avec les options de sélection Dans l'action du contrôleur vous mettriez ce qui suit:.. » .

J'ai étudié Codeigniter et qui était si intuitive dans ses explications, mais la documentation CakePHP, alors qu'il est très bien présenté, n'explique pas, mais les choses se lit plus comme un manuel de référence. Je cherche actuellement à Yû et alors que son plus complexe que CodeIgniter, la documentation est beaucoup plus instructif et donc compréhensible que CakePHP.

Yû vaut mieux pour un débutant à MVC, mais CakePHP est peu difficile pour un débutant. Les deux sont beaux cadres, mais ont plus Yii tutoriels ou documentation disponibles dans le filet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top