11
votes

Cadre PHP de la complexité intermédiaire, entre CodeDigniter et Yii?

Quelque chose de facile comme CI (cela signifie une documentation obligatoire bonne, facile, à jour). Mais aussi avec d'autres fonctionnalités que CI.

YII a beaucoup de fonctionnalités, mais il est également plus complexe (et cela vous oblige également à utiliser beaucoup de fonctionnalités informatiques). Cela signifie que l'ajout de certaines fonctionnalités à votre application Web prend trois fois plus longtemps, car vous devez comprendre de nouvelles petites fonctionnalités de Yii.

C'est un peu comme si le CI "sort de votre chemin" quand il a besoin, et Yii se met dans votre chemin, et si vous ne le faites pas, il se casse.

Caractéristiques manquantes dans CI qui serait bien d'avoir dans ce nouveau cadre PHP "intermédiaire":

  • génération de code (CRUD).
  • authentification.
  • Contrôle d'accès.
  • mises en page.
  • widgets.
  • Pagination facile / automatisée (comme Yii)
  • Paramètres Easy Uri

    où yii me cause des problèmes:

    C'est comme pour chaque petite tâche, il y a une fonctionnalité intégrée (c'est bien), mais vous devez utiliser la fonctionnalité intégrée, sinon les mauvaises choses arrivent. (CI sort de votre chemin, mais cela fait-il trop, Yii aide beaucoup, mais ne mène-t-elle trop parfois, et cela vous oblige à examiner sa documentation afin que vous découvriez ces fonctions sans lequel vous n'êtes pas capable de accomplir une tâche qui prendrait quatre fois moins, en CI ou dans une application non-cadre).

    y a-t-il quelque chose entre?

    (ASP.NET MVC pourrait être "ça", mais je ne connais pas la langue, alors l'effort d'apprentissage serait plus grand que d'apprendre vraiment le cadre Yii PHP, alors je cherche un PHP Cadre )


5 commentaires

Excellente question. Je suis dérangé par le même problème. J'avais deux projets depuis que j'ai appris Yii et j'ai décidé d'utiliser CI sur les deux pour les raisons que vous déclarez. Bien que, je ne pense pas que ce soit le troisième cadre qui résoudrait le problème, mais plutôt avoir des tutoriels de plus en plus orientés pour Yii. IMHO, la documentation Yii est trop brute et n'a pas assez d'exemples suffisamment.


Regardez dans Kohana, il est basé sur CI. entendu beaucoup de choses à ce sujet mais il manque d'exposition.


@ Milan Babuškov Si vous auriez posté cela comme une réponse que je l'aurais choisie: "Bien que je ne pense pas que ce soit le troisième cadre qui résoudrait le problème, mais plutôt avoir des tutoriels plus importants pour yii." @ ggfan j'ai entendu parler de Kohana et je l'ai examinée. Ce n'est pas ça.


Avez-vous envisagé d'apprendre Python?


Si vous recherchez une meilleure documentation pour Yii, vous voudrez peut-être consulter ce livre nouvellement publié qui enseigne la framework Yii: Amazon.com/agile-web-Application-Development-PHP5/DP/1847199 585 / ... ... J'ai trouvé le livre très utile avec une amélioration de ma compréhension de ce cadre


9 Réponses :


1
votes

Vous pouvez essayer Kohana (surtout venant de CI)


4 commentaires

Kohana ne fournit pas vraiment les caractéristiques posées sur (bien que est un excellent cadre).


Kohana a moins de documentation que Yii et Docs. ne sont pas bien entretenus. Il s'améliore sur CI, mais elle corrige principalement des trucs dans les internes et n'ajoute pas de nombreuses nouvelles fonctionnalités.


@ Nathan Oui, je comprends ce que vous essayez de dire. Kohana (malheureusement) est l'oposite exacte de CI, car le point le plus fort de CI est pas ses caractéristiques, mais son excellent, concis, exemple de documentation remplie (où comme Yii Strong Point est son caractéristiques, mais n'a pas de bonne documentation). En fait, CI est critiqué pour certains d'entre eux S "Caractéristiques", mais est toujours très populaire pour une raison quelconque ... et la raison est la DOCS. J'ai vérifié Kohana (encore), mais ... les problèmes que cela avaient auparavant sont toujours là.


Ps. Kohana a de bonnes caractéristiques Thoo, j'ai été impressionnée par la façon dont vous pouvez taper de jeter un objet de vision comme une chaîne par exemple. Cette caractéristique m'a semblé très intuitive et très c # comme. De la documentation de Kohana: // rend la vue: $ environ_page = $ View-> Render (); // ou simplement taper le jeter à une chaîne: $ environ_page = (chaîne) $ vue; Malheureusement, comme je l'ai dit, Kohana a d'autres problèmes. (manque également beaucoup de fonctionnalités de Yii)



4
votes

Je suis fan de CakePHP . Je pense que cela a les spécifications que vous avez fournies. Si vous voulez quelque chose de plus de pointe, vous pouvez regarder lithium


7 commentaires

Le lithium nécessite PHP 5.3+, peut donc être moins accessible. CakePHP a une certaine compatibilité à l'envers que je crois, mais pas autant que CodeDigniter qui prend toujours en charge PHP 4.


Je trouve CakePHP d'être encore pire que Yii concernant "Vous devez faire debout" la question initiale.


@Jason, regarde ta première phrase: "Je suis fan de CakePHP"? Cela devrait être un argument très convaincant de voter à nouveau? Peut-être que si Yii auteur écrirait ça;) Deuxième phrase ... Eh bien, disons simplement que je suis en désaccord. Après avoir utilisé les 3 cadres moi-même sur de grands projets, CakePHP a les mêmes problèmes et même pire que Yii. Oui, il a la spécification. du problème, mais pas de la solution. En outre, l'auteur original ne peut même pas descendre, il n'a que 11 réputation.


En bref, j'ai vu 3 réponses jusqu'à présent et aucun d'entre eux ne donne une réponse qui mérite d'avoir la peine de voter dans l'OMHO, car aucun d'entre eux ne résout le problème dont l'auteur d'origine parle. Il me semble qu'aucun des gens de la façon dont la réponse n'a été rempli jusqu'à présent utilisé à la fois CI et Yii et ils font simplement des suppositions sauvages.


@Milan. Je venais d'offrir des alternatives. Si vous n'aimez pas ma suggestion, ne le prenez pas et ne voterez pas. Je pense juste que c'est drôle que vous ayez donné un vote sur une réponse légitime, bien que boiteux à votre avis.


@Jason: C'est ce que voit le vote. Il ne s'agit pas d'être "légitime", il s'agit de résoudre le problème ou non.


Jusqu'à voté pour annuler le vote ridicule de Milan Babuškov.



1
votes

Vous devriez consulter la communauté CI, certaines de ces extensions ont peut-être été écrites par quelqu'un d'autre (je me souviens de voir l'authentification et les composants / widgets quelque part)

symfony vaut la peine de vérifier. Personnellement, je n'aime pas beaucoup parce qu'ils ont choisi un prototype sur JQuery pour leurs caractéristiques Ajax, ce qui est vraiment ennuyeux à utiliser lorsque vous êtes habitué à JQuery.

Le lithium pourrait être bon de vérifier également. Cependant, c'est PHP 5.3 uniquement et vous devez vraiment faire attention à ce que cette version de PHP soit prise en charge sur le serveur, le site sera déployé sur.


0 commentaires

0
votes

Pour ce que sa valeur, si vous recherchez un cadre PHP, comme ASP.NET MVC, je pense que Prado est la chose la plus proche que vous trouverez.


0 commentaires

0
votes

Vous pourriez avoir un coup d'œil à QCodo / Qcubed . Ils sont à la fois facile à ramasser et à offrir une génération de code / orm

moyen facile de créer des formulaires d'une manière MVC.


0 commentaires

1
votes

Voir cette liste pour une bonne comparisson:

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP_2

D'un point de vue personnel, j'aller avec symfony à cause de sa

  • riche en fonctionnalités et
  • grande intégration avec de nombreux autres composants déjà bundeled (Doctrine, Swift Mailer, ..),
  • bon (mais premier complexe) la génération de code qui produit un code utilisable pour vous realy obtenir rapidement Startet,
  • l'utilisation de powerfull Templating (qui sera le point que vous mentionnez sous « mises en page)
  • beaucoup de différents, , y compris l'authentification et le contrôle d'accès (il a également a une plug-in pour obtenir un soutien jQuery )
  • l'un des meilleurs tutoriels que j'ai vu un cadre

    Le seul inconvénient est un

    • structure plus complexe,
    • structure de fichier OMI câblé,
    • un peu en désordre API documentaion par rapport au tutoriel

      CodeIgniter est un cadre agréable si vous ne voulez pas créer de grandes applications, mais il manque un integretaion grande base de données et vous avez déjà mentionné la génération de code.


0 commentaires

2
votes

J'ai utilisé à la fois CI et YII (sur mes propres projets si cela fait toute différence). CI a été ma première introduction à MVC, et je l'ai trouvé facile parce que cela me permettait d'utiliser une structure et un code de merde. J'ai écrit deux sites complètes à CI (www.insolvencyNews.com et www.thebigeat.com si vous voulez voir la complexité.)

J'ai regardé CakePHP mais je n'ai nulle part.

Puis je suis passé à Yii et, comme toi, je l'ai trouvé assez dur et rigide. Mais j'ai ensuite trouvé que c'était si puissant et extensible que j'étais tellement plus efficace. Lorsque je devais ajouter quelques nouvelles fonctionnalités aux anciens sites CI, il était plus rapide de réécrire les sites entiers sur Yii que de coder les fonctionnalités supplémentaires de CI.

Je ne peux pas recommander un cadre au milieu, mais je peux recommander de coller avec Yii. Quand vous dites que Yii se met dans la voie, pouvez-vous donner un exemple? En regardant des trucs de DB (en ordre croissant de dépendance sur Yii):

  1. Vous pouvez coder utiliser les fonctions Core MySQL de PHP.

    $ résultat = mysql_query ($ sql);

  2. Vous pouvez utiliser la couche d'abstraction DB de YII.

    yii :: app () -> dB-> créeecommand ($ SQL) -> Queryall ();

  3. Vous pouvez utiliser Yii's Aciverecord:

    à emporter :: modèle () -> résultats ();


2 commentaires

Vous ne pouvez pas simplement éclater un peu de code et l'obtenir avec. Vous devez utiliser toutes sortes de méthodes surplexées. Ex: "Manuellement" Mise en œuvre d'un onglets JQuery-UI. Vous devez "découvrir" la Yii :: app () -> Clientcript-> RegisterscriptFile () Fonction d'abord. Mais si vous ne saviez pas que cela existe en premier lieu, comment "découvrir"-tu? Lorsque vous recherchez sur Google pour savoir comment le faire fonctionner. Je ne pense pas que cela explique nulle part dans la documentation sur la manière de charger la jQuery qui est "groupée" avec Yii et qui est utilisée pour la pagination et des trucs Ajax, ou que vous pouvez même faire ou si vous êtes supposé faire une telle chose.


Je vous entends - la documentation inadéquate. Vous avez toujours deux options avec Yii cependant: CODE Votre propre manipulation JavaScript en PHP ou simplement frapper