jeudi 13 août 2015

8 Nouveaux Outils PHP et Applications pour les développeurs


Si vous êtes un développeur PHP ou graphiste web, vous devez être conscient et de connaissance sur les outils de base nécessite une par laquelle pour accomplir certaines tâches liées au Web. Cependant, la plupart des développeurs et web designers expérimentés constamment à la recherche des nouveaux outils qu'ils peuvent utiliser pour faire leurs tâches de workflow et web liés facile, plus rapide et de meilleure qualité.
Dans cet article, nous avons rassemblé quelques-uns des meilleurs outils et d'applications PHP pour vous aider dans les tâches liées au travail. Nous espérons que vous les trouverez utiles vers votre PHP et les tâches liées au développement.
Si vous aimez l'article que vous pourriez être intéressé par notre autre article sur les meilleurs cadres pour les développeurs PHP .

1. phpFastCache

phpfastcache
phpFastCache est une bibliothèque de cache source PHP ouverte qui vient comme asingle-fichier et peut être intégré aussi vite. Il a un support pour de multiples méthodes de mise en cache (APC, memcache, memcached, WinCache, fichiers, AOP et mpdo), la période de mise en cache peut être défini et a une API très simplifiée.

2. ICEcoder: PHP Powered & Open Source Web IDE

glace codeur
ICEcoder est une source ouverte et IDE basé sur le Web qui est construit avec PHP et fonctionne rapidement. Il fonctionne simplement en faisant glisser son dossier app partout nous préférons et tous les fichiers et sous-dossiers là-bas (à l'intérieur) sommes prêts à être édités.

3. Oups: Bibliothèque de rapport d'erreurs PHP

whoops
Whoops est une bibliothèque PHP pour la gestion des erreurs et de les déboguer plus facilement. La bibliothèque fournit la manipulation avec une interface d'erreur de bonne mine erreur basé sur la pile. Il dispose d'une API simple pour traiter les exceptions, oligo-cadres + leurs données et peuvent intégrer à tout cadre (intégrations prêtes à l'emploi existent pour la fin et Silex).

4. Erreur PHP

phperror
Erreur PHP est une bibliothèque open source PHP pour convertir les messages standard d'erreur de PHP -Que sont habituellement confrontés au cours de la Process- de développement dans de meilleurs. Il intègre étroitement dans tout environnement de PHP (fonctionne sur tous les cas, que dans l'environnement de développement, que dans certains projets, etc.) et affiche les erreurs avec la coloration syntaxique.

5. phpFreeChat

phpfreechat
phpFreeChat est une source PHP application gratuite et ouverte de chat qui ne nécessite pas de base de données afin de fonctionner mais utilise plutôt le système de fichiers pour cela. Il peut être utilisé en même temps par un certain nombre d'utilisateurs, a une disposition sensible qui fonctionne dans le mobile aussi, et dispose d'un système d'authentification modulaire qui peut être intégré dans toute application.

6. PHP Mobile Detect

mobiledetect
PHP Mobile Detect est une classe PHP léger pour détecter les appareils mobiles, y compris les tablettes et les smartphones. Il détecte un environnement mobile en utilisant la chaîne User-Agent avec les en-têtes HTTP spécifiques.

7. Faker

Faker
Faker génère de fausses données pour vous en utilisant PHP. Il le rend facile à remplir une base de données, créer des docs bonne mine XML, anonymiser les données à partir d'un service de production, ou de stress tester une application. Vous pouvez le télécharger à partir de GitHub ou installer à l'aide du compositeur.

8. Unirest: Bibliothèques HTTP dans plusieurs langues

unirest
Unirest est un ensemble de bibliothèques, légers simplifiées HTTP en Java, PHP, Ruby, Python et Objective-C. Chacun est entièrement documenté et gère une variété de fonctions.

jeudi 30 juillet 2015

Quelques bonnes pratiques de développement PHP

Si vous êtes développeur PHP, vous devez lire au moins une fois cette cinquantaine de commandements PHP !
Quelle fonction utiliser plutôt qu'une autre, comment améliorer les performances de vos scripts, les bonnes pratiques ...
Les 50+ commandements en PHP
Ces commandements sont une traduction du billet de chez HM2K que j'ai jugé très intéressant et que je souhaite faire partager aux développeurs non anglophones.

  1. echo est plus rapide que print[Citation]
  2. Mettre ses chaines de caractères entre simple quotes '...' est plus rapide qu'entre des doubles quotes "..." car PHP analyse s'il y'a des variables entre les doubles quotes. Utiliser les simple quote pour du texte pur.
  3. Utiliser sprintf au lieu de mettre des variables dans des double quotes, C'est 10x plus rapide. [Citation]
  4. Utiliser les paramètres multiples dans un echo au lieu de la concaténation des chaines. [Citation]
  5. Utiliser le plus possible des variables pour les calculs, éviter de les mettre dans les boucles. Exemple
    1.<a onclick="window.open(this.href); return false;" href="http://www.php.net/for">for</a> ($x=0; $x count($array); $x)
    La fonction count est appelée à chaque boucle, mieux vaut utiliser $max=count($array) pour stocker le résultat du calcul avant la boucle. [Citation]
  6. Pensez à unset ou rendre null vos variables, en particulier les gros tableaux. [Citation]
  7. Eviter les méthodes magiques comme __get, __set__autoload[Citation]
  8. Utiliser require() au lieu de require_once() quand c'est possible. [Citation]
  9. Utilisez desz chemins complets dans vos include et require. C'est du temps gagné pour la résolution du chemin au niveau de votre OS. [Citation]
  10. require() et include() sont identiques à part que require arrete le script si le fichier n'est pas trouvé. Les performances sont quasi identiques. [Citation]
  11. Depuis PHP5, l'heure de démarrage d'un script peut être trouvé grâce à $_SERVER[’REQUEST_TIME’], à utiliser à la place de time() ou microtime(). [Citation]
  12. PCRE regex est plus rapide que EREG, mais il faut toujours regarder s'il n'est pas posssible d'utiliser une fonction native comme strncasecmpstrpbrk et stripos à la place. [Citation]
  13. Quand vous parsez du XML en PHP essayez xml2array, qui permet d'utiliser les fonctions PHP XML, pour du HTML vous pouvez essayer DOM document ou DOM XML en PHP4. [Citation]
  14. str_replace est plus rapide que preg_replace, str_replace est globalement le meilleur dans tous les cas, même si quelques fois strtr est plus rapide avec des chaines longues. Utiliser un array() dans str_replace est plus rapide que d'utiliser plusieurs str_replace. [Citation]
  15. “else if” est plus rapide qu'un case/switch[Citation]
  16. La suppression d'erreurs avec @ est très lent. [Citation]
  17. Pour réduire l'utilisation de la bande passante, il faut activer le mode mod_deflate dans Apache2 [Citation] ou mod_gzip pour Apache1. [Citation]
  18. Fermer les connexions aux BDD après les avoir utilisé. [Citation]
  19. $row[’id’] est 7 fois plus rapide que $row[id], car si vous ne mettez pas les quotes, PHP Pense qu'il va s'agir d'une constante. [Citation]
  20. L'utilisation de tags d'un autre style ou des shorts tags pour ouvrir du code PHP est déconseillé. [Citation]
  21. L'utilisation d'un code strict permettant de supprimer toutes les erreurs, warning etc est conseillé.error_reporting(E_ALL) doit toujours être activé. [Citation]
  22. Les scripts PHP sont rendus 2 à 10 fois moins rapidement par Apache qu'une page statique. Essayez d'utiliser au maximum des pages statiques. [Citation]
  23. Les scripts PHP sont compilés à la volée (si pas de cache). Installez un système de cache PHP (commememcachedeAccelerator ou Turck MMCache) permet d'augmenter de 25-100% les performances[Citation]
  24. Une alternative aux systèmes de cache est de générer régulièrement le rendu en HTML statique. Essayez Smartyou Cache Lite[Citation]
  25. Utilisez isset où c'est possible au lieu de strlen. (ie: if (strlen($foo) < 5) { echo “Foo is too short”; } vs. if (!isset($foo{5})) { echo “Foo is too short”; } ). [Citation]
  26. ++$i est plus rapide que $ i++, donc utilisez le pre-increment quand c'est possible[Citation]
  27. Ne réinventez pas la roue, utilisez les fonctions natives de PHP qui seront toujouts plus rapides; Si vous avez le temps de réecrire, faites le sous forme de modules C / C++. [Citation]
  28. Analysez votre code (Profiler). Utilisez Xdebug debugger pour profilker du code PHP. [Citation]
  29. Documentez  votre code. [Citation]
  30. Apprenez les différences entre du bon et du mauvais code. [Citation]
  31. Utilisez les standarts pour une meilleure compréhension de votre code par les autres. [Citation]
  32. Séparez les couches: Contenu, PHP et HTML. HTML dans un autre fichier que le PHP. [Citation]
  33. IL n'est pas obligatoire d'utiliser des systèmes de templates complexes comme Smarty, PHP en intègre déjà, regardez  ob_get_contents et extract[Citation]
  34. Ne jamais avoir confiance en les variables utilisateurs: $_POST et $_GET. Utilisez mysql_real_escape_stringquand vous utilisez MySQL, et htmlspecialchars quand vous rendez du HTML. [Citation]
  35. Pour des raisons de sécurité, ne dévoillez jamais d'infos concernant vos paths, extensions et configuration, comme utiliser display_errors ou phpinfo(). [Citation]
  36. Désactivez register_globals (Normalement désactivé par défaut, pas pour rien!). L'utiliser = risque de sécurité. Bientôt, le PHP6 supprimera complètement cette fonction ! [Citation]
  37. Ne jamais utiliser du texte clair pour stocker les mots de passe ou les comparer. Utilisez un hash md5 au minimum. [Citation]
  38. Utilisez ip2long() et long2ip() pour stocker les adresses IP en INT plutôt qu'en STRING. [Citation]
  39. Pour ne pas réinventer la roue, vous pouvez utiliser les nombreux projets PEAR souvent standarts. [Citation]
  40. Quand vous utilisez header(’Location: ‘.$url); n'oubliez pas d'y faire suivre un die(); car le script continue de tourner même après l'instruction. [Citation]
  41. En POO, si une méthode peut être static, alors déclarez la en static. Elle sera 4 fois plus rapide. [Citation].
  42. Incrémenter une variable locale dans une méthode POO est le plus rapide. [Citation]
  43. Incrémenter une propriété d'un objet (eg. $this->prop++) est 3 fois plus lent qu'une variable locale. [Citation]
  44. Incrémenter une variable indéfinie est 9-10 fois plus lent qu'une variable pré définie. [Citation]
  45. Déclarer une variable globale dans une fonction sans l'utiliser ralenti les choses. PHP doit faire une sorte de check sur la variable pour vérifier qu'elle existe. [Citation]
  46. Le nombre de méthodes dans une classe ne change rien aux performances d'appel d'une méthode. [Citation]
  47. Les méthodes d'une classe dérivée vont plus vite que celles de la classe mère. [Citation]
  48. Une fonction appelée avec un ou zéro paramètre prend environ 7-8 fois un $localvar++. 15 $localvar++ pour l'appel d'une méthode similaire. [Citation]
  49. Tout ne doit pas être objet, chaque méthode et propriété consomme de la mémoire. [Citation]
  50. Echappez les chaines provenant de l'extérieur avec mysql_real_escape_string, au lieu de mysql_escape_string ou addslashes. Si magic_quotes_gpc est activé, mieux vaut utiliser stripslashes en premier. [Citation]
  51. Attention lors de l'utilisation de mail() et de ses headers, il y'a des failles de sécurité. [Citation]
  52. Il faut unset les variables que l'on ne se sert plus après s'être connecté à la BDD
Vous n'avez plus qu'à respecter tout ces conseils pour avoir un code PHP optimisé !

lundi 29 juin 2015

Elvis KonJoh's Blog: Comment sécuriser son site internet

Elvis KonJoh's Blog: Comment sécuriser son site internet: Salut à tous et à chacun. Comment sécuriser son site internet De nos jours plusieurs site sur internet récupères des fichiers chez le ut...

samedi 6 juin 2015

Dreaming of a new africa

Salut salut.
Je rêve les yeux ouverts et je me vois dans une voiture.
Vous vous dites c'est normal?
Moi je le dis aussi.
Sauf que là ce n'est pas une voiture comme les autres. 
C'est une voiture 100% Camerounaise faite
au Cameroun
par les Camerounais et
avec les matériaux Camerounais.
Oui c'est cette voiture là que je voudrais conduire.
Vous allez me demander pourquoi j'entre donc dans d'autres voitures?
Alors je réponds tout de suite:
1 - elles sont faites avec les matériaux qui proviennent d'Afrique
2 - elles sont fabriqués par des ingénieurs d'origines Africaine
3 - Ces voitures consomment les produits provenant de notre sous-sol
Vous allez dire que que je cherches des excuses.
Et beh!! oui vous avez raisons.
Mais le jour où je serai dans ce véhicule alors je dirai OUI OUI!!! Nous pouvons. Et qu'en fin le monde nous rend ce qu'il nous a toujours volé.
I have dream!!!!
i'm dreaming of new Africa.
C'est à nous de le faire..................
Elvis Konjoh

Appel à la conscience

Bonjour les ami(e)s.
Parfois je me demande où va le monde?
Je ne sais pas si vous également vous faite le constat de ce qui ce passe dans le monde.
Moi si!!!
Au fur et à mesure que le temps passe la technologie avance nous fourrant ainsi dans l'oubli total.
Nous ne pensons plus. On pense pour nous.
Nous alors, que sommes-nous?
Des bêtes?
Ils vont finir par nous voler ce qui fait de nous des hommes.
Si tu ne penses plus alors tu es mort.
Combien d'entre nous se lève le matin et dit bonjour au voisin? Pourtant ces mêmes personnes n’hésiteraient pas une seule seconde de poster un bonjour sur réseaux social ou sur une application telle whastapp, viber.... et j'en passe,
Communiquant ainsi avec pour la plupart des personnes virtuelles.
Parfois je pleure de voir ce que l’inconscience nous envahi.
"Génération tête baissée" c'est un qualificatif fort et je comprends aujourd'hui que l'auteur a eu raison.
Il suffit de marcher la tête levée et les yeux ouverts pour voir que nos jeunes marchent tous nus filles comme garçons.
Qui suivent- ils?
La mode?
Voilà encore une autre problématique.
Autrefois nous étions "nue" tel Adam et Ève.
Quelque milliers d'années sont passé pour que nous commencions à nous couvrir.
Et maintenant nous cherchons à devenir "nus".
Au lieu de nous habiller, nous nous montrons à découvert un peu plus chaque jour qui passe.
Etre nu est - il la nouvelle mode?

Moi je pense que le corps de tout un chacun est sacré.
Pourquoi l'exposer?

Parfois seul et égaré dans mes pensées je me demande pourquoi nous ne changeons pas nous aussi les choses?
Mais la réponse est sous nos yeux.
Nos jeunes ne rêvent plus, tout ce qui les intéresse c'est maintenant et tout de suite pas le lendemain.
Ils vivent chaque jour comme le dernier.
Je dis à tous les jeunes que nous sommes arrêtons cela pensons, innovons, changeons les choses.
Le prochain Bil Gate c'est peut-être toi.

Apprenons à ne pas suivre aveuglement la mode, les réseaux sociaux, internet car cela ne nous fait pas rêver au contraire cela contribue à nous endormir.
On a l'impression que tout est fait or tout est à faire.


Si tu penses comme moi, alors je partage

Elvis Konjoh

jeudi 23 octobre 2014

Etude comparative des Frameworks php

Etude comparative des Frameworks php


Qu'est ce qu'un framework ?

Selon Wikipedia,
"Un framework est un ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture et des patterns, l'ensemble formant ou promouvant un « squelette » de programme. Il est souvent fourni sous la forme d'une bibliothèque logicielle, et accompagné du plan de l'architecture cible du framework.

Un framework est conçu en vue d'aider les programmeurs dans leur travail. L'organisation du framework vise la productivité maximale du programmeur qui va l'utiliser — gage de baisse des coûts de construction et maintenance du programme. Le contenu exact du framework est dicté par le type de programme et l'architecture cible pour lequel il est conçu. "

Pour moi voici comment je voie un framework

Un framework est un cadre de travail ou cadre d'application offrant un ensemble d'outils et de briques logicielles, qui permettent d’automatiser certaines parties du développement d'applications.

Le développement adopte alors des conventions et devient rigoureux et standardisé. Il assure ainsi une meilleure maintenabilité, tout en favorisant capitalisation,  industrialisation et ré utilisabilité du code.

Dans le cadre d’une entreprise, ces notions sont largement prises en compte.

Le framework n’est autre qu’une  super collection de bibliothèques permettant l’application d’un cadre de développement destiné à donner toute sa puissance en s’appuyant sur des modèles de conception standard et réputés.

L’utilisation  d'un framework présente plusieurs avantages :

  •  l’accélération du temps de développement, 
  • la conservation d’un code homogène 
  • une pérennité certaine des projets. 
  • les applications sont plus facilement sécurisées.

Si le gain de temps est indéniable, en terme de qualité, le gain est remarquable.

L’élaboration d’un framework représente le travail d’une multitude de personnes qui s’appuient sur l’expérience de l’ensemble des utilisateurs, pour détecter et corriger les problèmes ou failles de sécurité.
Par conséquent les frameworks sont en général mieux conçus et plus robustes qu’une application développée par un seul programmeur.

Un nombre important de frameworks est disponible dans de nombreux langages. Il n’est pas toujours évident de trouver le sien. Il n'y a pas de framework idéal, chacun possède ses avantages et ses inconvénients.
Pour faire le bon choix il convient, après une première présélection,  d’en tester plusieurs afin de déterminer celui répondant le mieux  à vos besoins.

Les frameworks PHP :

Le langage PHP contient nativement une innombrable quantité de fonctions et de classes sensées faciliter le travail  du développeur.  Malgré tout, force est de constater que de nombreuses tâches répétitives restent à gérer ceci du au fait de vouloir faciliter leurs utilisations.
Le langage PHP bien qu'ayant plusieurs fonction de façon native manque encore de quelques chose raison pour laquelle de nombreux développeur travaillent nuits et jours pour l'améliorer.

L’utilisation d’un framework, ajoute encore d’autres classes et fonctions appelées à prendre  en charge ces tâches récurrentes, communes à de nombreux projets.

Parmi celles-ci, il convient de citer : la gestion des utilisateurs, des bases de données, le système MVC…

Parmi la multitude d’excellents frameworks PHP j'ai choisi de comparer six d’entre eux,  adoptant tous la structure MVC (Model-View-Controller ou Modèle-Vue-Contrôleur) :

  1. Le Modèle : c’est le comportement de l'application. 
  2. La Vue : c’est l'interface manipulée par l'utilisateur. 
  3. Le Contrôleur : c’est le gestionnaire des événements de mise à jour de la vue et de synchronisation des informations par le modèle.


Ces frameworks sont parmi les plus connus et renommés :
cakePHP
Code Igniter
Yii
Symfony
Laravel
Zend

Comment définit-on le meilleur framework PHP ?

Il convient avant tout de définir des critères avant d’élire le meilleur framework PHP. En voici quelques uns :

Prise en main : dans tous les frameworks, il est nécessaire de passer quelques temps afin de le prendre en main. Cette période peut être plus ou moins longues (de quelques heures à plusieurs semaines).
Flexibilité : le framework peut imposer des contraintes très fortes pour obliger tous les développeurs à développer de la même façon. Mais cela peut finir par être limitant.
Taille des projets : les petits projets peuvent être développer avec un framework ultralight.
Documentation : une documentation complète est un réel plus !
Performance : certaines frameworks sont trop gourmands. Même le moindre « Hello World » peut nécessiter l’appel à plus de 100 fichiers différents.
Communauté : un forum actif sera synonymes de personne prête à vous aider en cas de problème
Évolutivité : de quand date la dernière mise à jour ?
Toutes ces critères peuvent être plus ou moins pondérés en fonction de ce que vous attendez d’un framework. Pour ma part, je souhaitais un framework simple à prendre en main (en l’espace de quelques jours maximums), assez flexible et très bien documenté.


CakePHP
Comme son nom l’indique, CakePHP, est un framework PHP. Il est relativement simple à prendre en main comparé à certains autres frameworks PHP tels que Zend, pour ne citer que l’un des plus connus

CakePHP permet le développement rapide d’applications (RAD : Rapid Application Development) et simplifie leur maintenance.

Projet open-source démarré en 2005, CakePHP convient autant aux développeurs débutants qu’aux confirmés. Il est basé et conçu sur le principe Ruby on Rails.

Les principes de base de CakePHP sont avant tout sa robustesse et sa simplicité de mise en œuvre quelque soit le type d’application. Il la rend facilement extensible et personnalisable avec l’architecture MVC.

Les principales caractéristiques de CakePHP :

  •  Compatible PHP 4 et PHP 5.
  •  Pas de configuration nécessaire.
  •  Utilisation d’une simplicité peu commune.
  •  Communauté conséquente et active.
  •  Licence MIT (toute application développée peut être vendue).
  •  Entièrement conçu et maintenu par l’équipe de développeurs.
  •  Intègre l’architecture MVC.
  •  Gestion facilitée des bases de données grâce à Active Record.
  •  Entièrement Orienté Objet (OO).
  •  Nombreux outils de développement (ajax, formulaires…).
  •  Génération d’applications CRUD (Create/Read/Update/Delete)

Son architecture extensible permet de développer et maintenir les applications en optimisant les tâches du développeur et favorisant un gain de productivité non négligeable.

Ces avantages sont rendus possibles grâce à l’adoption des systèmes MVC (Modèle-Vue-Contôleur) et ORM (Object-Relational Mapping).
Framework d’applications rapides (RAD) CakePHP est avant tout de conception robuste. Il prend en charge tous les aspects d’une page web, de la requête initiale à l’interface finale. En appliquant les principes de l’architecture MVC, il permet toute forme de personnalisation et d'extension de chaque application.

Reposant sur un concept simple et puissant, une organisation structurée, CakePHP se positionne parmi les meilleurs frameworks et offre aux développeurs toutes les facilités nécessaires à l’élaboration rapide d’applications sérieuses et complexes en leur assurant consistance et logique.


CodeIgniter


CodeIgniter est un framework PHP puissant, bien que léger, basé sur le fonctionnement de Ruby on Rails et adoptant l’architecture MVC (Modèle-Vue-Contrôleur).
Développé à l’origine pour les propres besoins de l’entreprise EllisLab en 2006, il a depuis adapté le statut open source.
Codelgniter est particulièrement simple à utiliser, performant et d’une vitesse d’exécution remarquable.
Il est fortement recommandé aux développeurs débutants
Les principales caractéristiques de CodeIgniter :

  •  Compatible PHP 4 et PHP 5
  •  Simplicité de prise en main
  •  Intégration de l’architecture MVC
  •  Nombreuses librairies
  •  Complètement orienté objet
  •  Importante communauté très active (anglophone en majorité)
  •  Abondante documentation
  •  Souplesse et évolution constante

CodeIgniter est un framework PHP qui comme tout framework permet de réduire le temps de développement et d’optimiser le code d’une application.
Il est particulièrement souple et adapté aux débutants car aisément compréhensible.
Moins connu que CakePHP ou Zend, CodeIgniter est maintenu par la Société EllisLab et remarquablement documenté.
Son avenir semble prometteur, à en juger par l’importance de sa communauté.
CodeIgniter est puissant bien que nécessitant peu de ressources.
Il est en constante évolution et son importante collection de librairies contribue largement aux gains de productivité que l’on attend d’un framework, en matière de développement d’applications de toutes natures..
Sa simplicité d’utilisation par rapport à Symfony ou Zend contribue à sa popularité au sein des développeurs PHP.
CodeIgniter est le framework idéal pour le développement de petites et moyennes applications. En effet il nécessite peu de ressources tout en offrant un maximum de fonctionnalités.
Son système de cache lui procure d’excellentes performances et minimise l’impact sur le chargement des pages.

Ses principaux atouts : extrème légèreté, robustesse et fiabilité. Facile à installer et acceptant de multiples environnements, CodeIgniter à tout pour séduire.

Selon un test réalisé il y a quelques mois par Richard Goutorbe, consultant informatique à Montpellier, l’utilisation de CodeIgniter pour le développement d'applications PHP offre un gain de productivité de 50%. La perte de performance liée à son exécution est de l'ordre de 10%, très largement compensée par une augmentation de fiabilité et de maintenabilité due à la réutilisation du code.

Yii

Le Yii Framework ("Yes, It Is") est un framework pour PHP 5 et utilise le paradigme de programmation orientée objet. Il est destiné au développement d'applications Web. Yii nécessite minimalement la version 5.1.0 de PHP. Une documentation complète est disponible. La communauté autour du projet est très active. Le créateur et développeur principal de Yii est Qiang Xu, qui a également développé et maintenu le framework PHP Prado pendant 3 ans. Yii est d'ailleurs le successeur officiel de Prado.

Il offre notamment les fonctionnalités suivantes :


  • de hautes performances ;
  • une architecture Modèle-Vue-Contrôleur ;
  • un accès aux bases de données par DAO/ActiveRecord ;
  • les fonctions nécessaires pour la gestion de l'internationalisation (I18N/L10N) ;
  • la gestion de caches ;
  • le support de AJAX via l'intégration de jQuery ;
  • le contrôle d'accès par la gestion de rôles utilisateurs (RBAC) ;
  • la génération automatique du code PHP pour les opérations de base (création, lecture, mise à jour et suppression) sur la base de données (scaffolding) ;
  • le contrôle des saisies utilisateurs sur les formulaires ;
  • la notion de widgets ;
  • les événements sur les éléments des pages (boutons, liens...) ;
  • la gestion de thèmes pour l'habillage des sites ;
  • le support des services Web ;
  • la possibilité d'ajouter des fonctions via un système de plugins ;
  • le support des tests unitaires et fonctionnels.
  • la migration de bases de données ;

Son architecture extensible permet de développer et maintenir les applications en optimisant les tâches du développeur et favorisant un gain de productivité non négligeable.

Ces avantages sont rendus possibles grâce à l’adoption des systèmes MVC (Modèle-Vue-Contôleur) et ORM (Object-Relational Mapping).


Symfony

Symfony est un framework open source écrit en PHP 5, utilisant l’architecture MVC.
Conçu dès l’origine en 2005 par une société française, Sensio Labs, bien connue pour ses idées novatrices dans le développement web, Symfony est robuste, fiable, très puissant, et s’adapte à un très grand nombre de configurations.
Développé par une équipe de professionnels expérimentés, il est spécialement dédié à la conception d’applications moyennes à très lourdes, c’est pourquoi il trouve tout naturellement sa place dans l’entreprise.
Ses multiples fonctionnalités et son abondante documentation ont fait de Symfony, en quelques années, l’un des frameworks PHP les plus utilisés.
Les principales caractéristiques de Symfony :

  •  Compatible PHP 5 totalement orienté objet.
  •  Intègre l’architecture MVC et la méthode ORM.
  •  Licence MIT (tout ce qui est réalisé avec Symfony peut être vendu).
  •  Extensible et modulaire.
  •  Supporte ajax.
  •  Système de templates.
  •  Importante communauté très active.
  •  Très grand nombre de traductions.
  •  Conçu pour une utilisation professionnelle.

Comme chaque framework le but de Symfony est d’abord de faciliter et d’accélérer le temps de développement par sa puissance, tout en optimisant le code en en permettant sa réutilisation, en toute sécurité.

Un des nombreux avantages de Symfony est sa facilité d’installation sur la plupart des configurations existantes.

Sa compatibilité avec la quasi-totalité des bases de données fait de Symfony un framework que les développeurs web confirmés ont peu de difficultés à prendre en main rapidement.

Bien plus qu’un framework MVC, Symfony réunit les meilleurs outils de développement PHP afin d’aborder avec cohérence la réalisation d’applications web.

L’architecture, outils et composants de Symfony favorisent et facilitent la conception d’applications complexes avec une aisance et une rapidité certaine.

Basé sur l’expérience, fiable et multi-fonctionnel, Symfony gagne de jour en jour en notoriété et reconnaissance.

Les nouveaux arrivants trouvent auprès de l’importante communauté, appui, documentation et contributions.

En effet, le développement actuel de Symfony repose pour une bonne partie sur l’ajout de modules ou plugins (plus de 600 aujourd’hui), très faciles à produire et utiliser.

Fabien Potencier, créateur et responsable du développement de Symfony et PDG de Sensio Labs, confirme l’adoption de cette méthode dans les évolutions futures. Il désigne Zend comme son principal concurrent.


Laravel

Laravel a été créé par Taylor Otwell1 en juin 20112.

Le référentiel Larave/laravel présent sur le site GitHub contient le code source des premières versions de Larave. À partir de la quatrième version, le framework est développé au sein du référentiel Laravl/framework.

En peu de temps, une communauté d'utilisateurs du framework s'est constituée.

La quatrième version de Laravel est écrite en PHP 5.3.73 et son installation est basée sur le gestionnaire de paquets Composer.

Dans une syntaxe élégante, Laravel fournit des fonctionnalités en termes de routage de requête, de mapping objet-relationnel (un système baptisé Eloquent implémentant Active Record), d'authentification, de migration de base de données, de gestion des exceptions et de test unitaire1.

L'ensemble des éléments constitué de la documentation du framework, de tutoriels et de copies d'écran permettent l'apprentissage du framework.


Zend

Zend Framework est un framework PHP 5 créé par la société Zend Technologies, appelée aussi The PHP Company car fondée par les pères du PHP moderne : Andi Gutmans et Zeev Suraski. Il est distribué open source sous la New BSD license.
De part son histoire, Zend tient une place particulière dans l’univers des Frameworks PHP.
Bénéficiant d’une communauté massive à travers le monde, il est aujourd’hui à n’en pas douter le plus connu et utilisé des frameworks.

Notons que son utilisation requiert toutefois une connaissance approfondie de PHP.

Zend Technologies l’a développé en privilégiant les « bonnes pratiques ». Il est totalement orienté objet et intègre l’architecture MVC.

Les principales caractéristiques de Zend Framework :


  •  Compatible PHP 5
  •  Conception totalement orientée objet
  •  Intègration de l’architecture MVC (Modèle-Vue-Contrôleur)
  •  Faible dépendance des composants entre eux, permet leur utilisation individuelle (use-at-will)
  •  Puissant, extensible et modulaire
  •  Imposante communauté hyper-active
  •  Fortement adapté à l’environnement professionnel
  •  Développeurs externes respectant la licence open source
  •  Alliés et contributeurs hors normes : Microsoft, Google…


Zend Framework peut être considéré actuellement comme le leader des Frameworks PHP.

Sa souplesse est telle, qu’à partir d’une base quelconque, il est possible de créer une liaison avec d’autres frameworks ou composants.
D’une puissance, robustesse et fiabilité à toute épreuve, la conception de Zend Framework est particulière et le différencie des autres frameworks PHP.

En effet, ses composants ont la faculté d’être utilisés individuellement, car très peu dépendants des uns envers les autres.

Par contre, utilisés ensemble dans la librairie standard de Zend Framework, ils donnent au framework sa redoutable puissance.

De même, bien que l’architecture MVC soit présente nativement dans Zend Framework, elle n’est pas imposée mais optionnelle.

Toujours à la pointe du développement, de multiples composants permettent l’accès aux services web les plus modernes.

Le principal moteur du projet reste évidemment Zend Technologies, mais certaines sociétés extérieures ont développé leur propres composants et les ont mis ensuite à la disposition de la communauté. Parmi ces contributeurs exceptionnels, ils convient de citer Google et Microsoft, deux des plus importants acteurs du web.

Zend Framework est en perpétuel développement, et chaque entreprise intéressée peut développer ses composants, à la seule condition de les mettre gracieusement à la disposition des utilisateurs, dans le respect de la licence.

Le concept PHP reste l’esprit de Zend Framework : libre, ouvert, simple, efficace et puissant !!!



Récapitulatif 
Nom
PHP
Modèle
ORM
Template
Cache
Url conviviales
Validation de formulaire
Ajax
Extension
Générateur de code
Cake PHP
4/5
MVC
AR
PHP
0
0
0
0
0
0
CodeIgniter
4/5
MVC
AR
PHP
0
0
0
N
0
N
Yii
5
MVC
DAO
Twig ou Smarty
0
0
0
0
0
0
Laravel
5
MVC
AR
PHP 
0
0
N
N
0
N
 Symfony
5
MVC
Propel
PHP ou smarty
0
0
0
0
0
0
Zend
5
MVC
/
PHP
0
0
N
N
N
N

Légende
0 = oui
N= non
AR= Active Record
MVC = Modèle-Vue-Contrôleur
Propel= Mapping objet relationnel (ORM)
DAO= Data Access Object

Conclusion

Pour finir, ZEND me semble très complet, et son formalisme est certainement très apprécié pour les gros projets. Par ailleurs, on peut aussi certainement l’utiliser aussi pour de petits projets à condition de l’avoir déjà pratiqué auparavant. Ainsi cela ne me semble pas envisageable de l’utiliser dans le cas du développement rapide d’applications webs à réaliser facilement et où le temps d’apprentissage est limité à quelques demi-journée.

C’est pourquoi je suggère d’utiliser YII pour les futurs applications webs. Cela permettra de mettre un peu de formalisme dans les projets, tout en laissant tout de même de nombreuses possibilité de dérive et d’avoir un temps de formation réduit au strict minimum (de l’ordre de quelques heures pour comprendre le fonctionnement pouvoir commencer à réaliser quelque chose de concret).