Je développe en PHP depuis environ 8 ans comme hobby. En 2009, j'ai choisi codeigniter et depuis lors je n'ai pas réussi à développer un seul projet.
Je trouve que cela me ralentit en essayant de savoir comment le modifier pour qu'il fonctionne comme je le souhaite, si je travaillais en PHP pur, je le saurais ou je serais en mesure de trouver rapidement un extrait de code.
J'ai essayé CodeIgniter, Kohana et Symfony. J'adore la facilité d'utilisation (et j'ai également commencé à utiliser doctrine comme ORM qui a massivement accéléré mon travail de base de données), mais je trouve que les projets me prennent 3 à 4 fois plus le temps qu'il a fallu en PHP pur. Je m'ennuie et je suis frustré quand je ne trouve pas de solution à un problème que j'ai déjà résolu en PHP pur.
Quelqu'un est-il revenu de l'utilisation de cadres à une approche sans cadre? Existe-t-il quelque chose comme un cadre de sécurité de base (empêcher XSS, filtrer les données publiées, fournir une fonction de nettoyage à utiliser avec les bases de données)? Je pense que quelque chose comme ça me bénéficierait beaucoup plus qu'un cadre à grande échelle. Je pense qu'apprendre à travailler avec des frameworks m'a beaucoup appris, mais je serais plus heureux de travailler avec mon propre code.
Les versions actuelles de PHP5 incluent une grande partie du cadre de sécurité que vous recherchez dans le cadre de la bibliothèque standard.
httponly
à session_set_cookie_params () (Protège contre les scripts lisant le cookie de session dans les navigateurs compatibles)httponly
avec setcookie () .Si vous acceptez HTML comme entrée, je vous recommande de saisir HTML Purifier et de l'appeler via une ligne FILTER_CALLBACK dans votre configuration filter_input_array. Son approche de la sécurité des entrées basée sur la liste blanche constitue une excellente (et très puissante) première ligne de défense contre XSS.
Pour autant que je sache, PHP ne comprend pas de mécanisme de protection contre la falsification de requêtes intersites , mais je suis sûr que Google peut vous aider avec cela une. Les OWASP Security Cheatsheets incluent une section si vous souhaitez implémenter votre propre protection.
Par curiosité, j'ai décidé de commencer également à regarder les composants autonomes et voici ce que j'ai trouvé jusqu'à présent:
Modèles:
Des choses que je n'ai pas encore examinées correctement:
Je ne crois pas aux cadres ... J'ai travaillé dans beaucoup d'entre eux.
Raisons de détester les frameworks MVC:
1) Code bloat, j'achète des classes premium qui m'aident dans le développement. Telles que les classes de formulaire ou les classes SQL.
2) Je pense que les frameworks MVC ne sont pas facilement portables, surtout lorsque vous utilisez des gestionnaires de dépendances.
3) Je pense que vous écrivez plus de code avec un framework MVC que si vous deviez utiliser un passe-partout avec une tonne de classes utiles qui gèrent l'authentification, etc.
4) La plupart des frameworks ne prennent en charge en natif qu'une ou deux bases de données.
Je suggérerais de trouver un framework de formulaire avec authentification et éditeur de texte & un framework sql comme madoo + une classe email ...
90% de votre demande est toujours des formulaires, des classes sql et ajax - le reste peut être acquis en cas de besoin
Je suis un minimaliste et je lutte avec l'idée d'avoir du code dans mon application qui ne fait rien ... juste au cas où j'en aurais besoin ça ne marche pas pour moi.
Sur la base de votre déclaration que vous avez utilisé PHP comme passe-temps, ainsi que de votre déclaration de profil "y arriver lentement", cela semble être un problème de courbe d'apprentissage. Vous ne semblez pas avoir la profondeur et l'étendue de l'expérience pour a) comprendre comment travailler au sein de la structure que le cadre impose et b) vous ne pouvez donc pas bénéficier des gains d'efficacité que le cadre permet.
Je vous exhorte à vous y tenir. Revenez au début avec les didacticiels vidéo. Trouvez et lisez le code d'autres personnes jusqu'à ce que vous le compreniez. Construisez vos projets de bas en haut - commencez simplement et ajoutez des fonctionnalités. Suivez les forums, essayez de répondre vous-même aux questions avant de lire les réponses.
Je programme professionnellement depuis près de 20 ans, sur une variété de plateformes, et il m'a encore fallu un certain temps pour me familiariser avec CI. Mais maintenant que je le suis, je ne retournerais pas au pur PHP (pour mes propres projets) à moins d'avoir un site à une échelle suffisante pour exposer des problèmes de performances quantifiables (pensez Twitter).
Avec autant d'expérience derrière vous, vous devez avoir votre propre ensemble de bibliothèques préférées, les sélectionner manuellement et créer votre propre cadre simple. Cadre ou pas de cadre (et lequel à cela) dépend du type de projet en cours, aucun gant ne convient à tous. Je suggérerais donc fortement que si vous sentez que les cadres existants vous ralentissent, passez quelque temps et trouvez un cadre qui fonctionne selon vos besoins.
Zend Framework est vraiment super pour ça. Vous pouvez en utiliser autant ou aussi peu que vous le souhaitez. Tout est codé en php et open source afin que vous puissiez simplement le pirater et le personnaliser. Les différents composants ne dépendent pas autant les uns des autres que dans d'autres cadres.
Vous pouvez créer vous-même un framework simple en utilisant certains composants de Zend sans aucun problème.
Vérifiez ça!
Je sais exactement ce que tu ressens. J'ai commencé il y a 4 ~ 5 ans dans PHP (je venais de Delphi, lol), et j'ai commencé en php pur. Ce que j'avais en retour, c'était un "CMS Panel like" qui venait de lire tous les champs des tableaux et de créer le formulaire. Après un certain temps, j'ai atteint d'une manière ou d'une autre la connaissance de PHP Frameworks, j'ai essayé CakePHP pour la première fois et je n'ai pas aimé, après, je suis entré dans Yii ce qui à mon avis est assez intuitif et facile- utilisation (Avec son générateur Gii, il oscille à peu près). J'ai essayé Symfony, ZF2, Laravel, Yii2-Beta et certains frameworks pour RAD, mais je ne me sentais pas assez vite comme avant les frameworks.
Je suis arrivé que j'ai développé mon propre framework (Ce n'est naturellement pas exactement que je me suis réveillé un jour et j'ai dit "je vais créer un nouveau framework", c'est arrivé avec le temps). Je sais que c'est une mauvaise mauvaise mauvaise pratique et un mouvement de "réinvention des roues", MAIS, je développe maintenant mes projets beaucoup plus rapidement (plus que PHP seulement).
Puisque son code est un MESS total, j'ai commencé il y a environ un mois à reformuler mon framework, maintenant il utilise le compositeur, suit les règles communes qui existent entre les frameworks php, c'est MVC.
Pourquoi je reformule? Parce que si quelqu'un a besoin de réparer un de mes projets, ce ne sera pas une autre chose du monde.
Alors je vous comprends.
Mon conseil est de préparer vos outils (appelez-le un framework, une application prédéfinie ou tout autre nom) et utilisez-le comme vous vous sentez mieux, mais suivez toujours quelques règles communes (comme MVC, des choses "faciles à moduler" qui vous pouvez remplacer en cas de rupture.
Pour la sécurité de base, j'utilise une méthode de filtrage personnalisée qui enveloppe mes superglobaux . Sa syntaxe a besoin d'un peu de temps pour s'y habituer, mais elle est plus simple que l'API PHP filter_var () et ne vous laisse pas glisser la désinfection:
$_GET->text("inputvar") or $_POST->name["field"]
Il a également permis l'échappement inline $ _REQUEST-> sql (). Mais pour le travail de base de données, continuez à utiliser SQL paramétré, ou votre DAL/ORM de votre choix.
Je ne sais pas ce qui vous dérange mais codeigniter est un excellent framework.Il a une bonne documentation et comme beaucoup de gens utilisent codeigniter vous trouverez toute l'aide dans sa documentation, ou forum ou sur stackoverflow.J'ai travaillé sur de nombreux frameworks ( Codeigniter, CakePHP, Zend, Spring 3.0, Ruby on Rails), mais je dois dire que codeigniter a la meilleure documentation. Il y a beaucoup de choses dans codeigiter qui sont gérées automatiquement et vous n'avez pas de se soucier de la sécurité. Travailler sur le noyau PHP, c'est comme réinventer la roue. Eh bien, la chose la plus importante est que le passage d'un noyau à un framework nécessitera beaucoup d'efforts une fois que vous serez habitué à , vous allez commencer à l'aimer. Aussi Ruby on Rails est également un excellent cadre une fois que vous connaissez ses tenants et aboutissants, vous pouvez avoir une vitesse double).
J'ai fait une étude d'une journée de ToroPHP et je l'ai trouvé assez agréable. Il s'agit d'un framework minimaliste destiné aux applications RESTful. Cela permet de garder le code côté serveur modulaire, sans avoir à faire face à une surcharge de n'importe quel framework.