Kohana, CodeIgniter, Framework PHP – Un comparatif entre Kohana et CodeIgniter



On avait affirmé haut et fort notre choix d’un framework PHP à savoir CodeIgniter et voilà qu’un fork de CodeIgniter nommé Kohana viendrait perturber la hiérarchie qui s’élabore lentement parmi les frameworks PHP : Symphony, Zend, CakePHP et puis enfin CodeIgniter.

Kohana ?

Même si le nom évoque plus un animal quasi mascotte de l’Australie, le Koala qu’un framework, une petite recherche sur le site et sur le web nous informe un peu plus. L’origine du nom donne une petite idée de l’intentionnalité des auteurs. En langue sioux, Kohana signifie "swift" c’est à dire rapide, véloce… Si les auteurs ont recherché cette filiation, c’est sans doute pour offrir à la communuaté PHP un framework rapide et robuste. Le slogan qui accompagne Kohana en dit plus que la définition du nom elle-même "Swift, Secure, and Small PHP 5 Framework". Nous voilà donc prevenu sur ce qui a présidé à la naissance de ce Framework inspiré par CodeIgniter, une sorte de "Little Big Man" du framework.

En tous les cas, voilà la défintion officielle données par les auteurs, plus explicite on ne peut pas.

What is Kohana?

Kohana is a PHP5 framework that uses the Model View Controller architectural pattern. It aims to be secure, lightweight, and easy to use.

Avant de livrer in extenso un comparatif avec CodeIgniter, on se permet d’attirer votre attention sur deux atouts majeurs de Kohana. Ces points seront d’ailleurs repris abondamment dans le comparatif, comparatif auquel à largement contribué BinBin que nous remercions chaudement !

Professional CodeIgniter

Professional CodeIgniter

Un très bon bouquin sur le framework sur lequel j'ai abondamment travaillé chez Hecube, CodeIgniter. Un livre est très bien fait, facile, comme le framework d'ailleurs. Un cas concret, suivi pas à pas avec une légère introduction à la méthode Agile ou XP (extreme programming) lié au Framework et au développement MVC. Le code de démonstration peut-être chargé sur la site de WROX, l'éditeur.

Genre(s) : , , , , , , , , ,
Auteur(s) :
Edition(s) :

Kohana et ses librairies

Bien que le titre évoque plus un groupe de rock à la manière de Johnny Diesel and the Injectors, ces éléments vous seront d’une grande utilité et il est souhaitable de télécharger l’ensemble lorsque vous téléchargerez la totalité du Framework.

Le téléchargement de Kohana inclut toutes les "libraries", les "helpers" et les "views" mais il vous faudra aussi sélectionner notamment les modules qui font la force de Kohana.

  • Archive – Compressed archive creation, supports zip, tar, gzip, and bzip.(module d’archivage)
  • Auth – Simple authentication and user management. Uses ORM for models. (module d’authentification)
  • Gmaps – Google Maps integration, geolocation, and API support. (module de d’interfaçage avec Google Maps)
  • Kodoc – Dynamic self-generated documentation. (Beta!) (module de génération de documentation disponible en Beta)
  • Payment – Provides merchant and payment gateway wrappers. Supports Authorize.net, PayPal, Trident, Trust Commerce, and YourPay. (module de paiment)

Kohana + quelques outils

Incluez aussi les deux outils qui vous sont à l’heure actuelle proposés

  • Markdown – Text formatting tool that offers text to HTML markup with a natural syntax.
  • SwiftMailer – Feature-rich emailing library that supports HTML email, SMTP connections, and many other features.

Un petit mot sur l’ORM de Kohana

Selon, l’adage bien connu pourceux d’entre vous qui viennent du RoR "convention over configuration", le recours à un ORM réduit considérablement la quantité de code à produire pour réaliser les tâches habituelles à exécuter sur une BDD. Tâches que l’on a coutume de résumer par l’acronyme CRUD (Create, Read, Update et Delete).
C’est aussi un facteur de rapidité et de viabilité du code, en réduisant l’écriture de code personnel donc en minimisant de facto l’apparition de bugs potentiels.

Deux bémols principaux au recours à un ORM sous Kohana, ils sont d’ailleurs mentionnés dans l’introduction de Kohana sur le chapitre sur l’ORM:

  • L’ORM ne produit pas toujours le code le plus efficient pour opérer des requêtes SQL.
  • Bien que Kohana possède des "drivers" (pilotes) pour se connecter aux principales BDD qui autorisent "foreign key" (clé étrangère) tel que PostgreSQL, MSSQL et MySQL. Pour MySQL, il vous faudra utiliser en priorité des tables de type InnoDB et non MyISAM.

Source : http://docs.kohanaphp.com/libraries/orm

Définition d’un ORM
A titre de rappel, voici le définition donnée par wikipédia.

Un mapping objet-relationnel (en anglais object-relational mapping ou ORM) est une technique de programmation informatique qui crée l’illusion d’une base de données orientée objet à partir d’une base de données relationnelle en définissant des correspondances entre cette base de données et les objets du langage utilisé. On pourrait le désigner par « correspondance entre monde objet et monde relationnel »

Une comparaison entre Codeigniter et Kohana

A tout seigneur tout honneur, on commence par lister les avantages de Kohana bien qu’il ne soit qu’un vassal, pardon un fork de CodeIgniter.

Les points forts de Kohana

Ils sont nombreux, les voici dans le désordre mais quasiment tous au complet.

  • Kohana intègre au maximum les fonctionnalités d’un langage Orienté Objet (très OOP, Object-oriented programming) en utilisant PHP5
  • Kohana est 100% compatible UTF-8
  • Kohana est léger. Il est extensible à souhait (l’argument de "scalability" ou d’extensibilité)
  • Kohana possède une architecture souple et modulaire
  • Kohana, comme tout bon framework, il s’appuie sur le Design pattern MVC
  • Kohana comprend des Add-ons pour technologies externes( Google maps, modules de paiements). Les fameuses libraries (librairies) cités plus haut.
  • Kohana comprend des Add-ons pour faire un espace membre (authentification via session, déconnexion etc.)
  • Kohana possède un système profiler plus poussé que Codeigniter. On peut ainsi choisir exactement ce que l’on veut profiler pour débuguer (sessions, cookies, requêtes etc.)
  • Kohana possède une véritable communauté et n’est pas à l’origine opéré par une agence, ellislab pour ne pas la citer comme CodeIgniter. C’est un argument poru les puristes de l’open-source.

Les points faibles de Kohana

Pour certains, ce n’est pas un point même pertinent mais bon, le cas se présente notamment dans la réécriture complète d’une application. Il peut arriver qu’il faille assurer le maintien d’une application en PHP 4, le coût du redéveloppement complet est souvent trop important, le manque de temps aussi !

  • Pas de PHP4. Kohana est en PHP5 et seulement en PHP5

Les points forts de CodeIgniter

  • CodeIgniter permet d’utiliser PHP4 comme PHP5. Pas d’obligation de se limiter à PHP5.
  • Comme Kohana, CodeIgniter est léger. Il est extensible à souhait (l’argument de "scalability" ou d’extensibilité)
  • Comme Kohana, Codeigniter est doté d’une architecture souple et modulaire et s’appuie comme tout framework sur le Design pattern MVC
  • CodeIgniter est puissant mais nécessite peu de ressources
  • CodeIgniter s’appuie sur une communauté très active et le niveau d’adoption est en croissance constante tant du côte des développeurs que des utilisateur/clients

Les points faibles de CodeIgniter

  • A l’inverse de Kohana, CodeIgniter possède peu voir pas du tout d’Add-ons pour utiliser des technologies externes

Conclusion : Kohana vs CodeIgniter

Codeigniter et Kohana sont sur de très nombreux points similaires, ce qui semble normal compte tenu de leur parenté. Outre le plaisir de la découverte pour Kohana, Kohana se révèle beaucoup plus poussé dans ses capacités, essentiellement grâce à ces fameuse Add-ons et libraries. Toutefois, Kohana reste cantonné à PHP5, ce qui reste un handicap surmontable.

Et par rapport aux autres frameworks, ce sont les frameworks idéals car beaucoup moins complexes Zend, CakePHP, Symphony. Ils sont à conseiller à toute développeur qui souhaiterait appréhender facilement et rapidement un Framework PHP.

C’est un peu aussi le sens de la conclusion de l’article qui avait été consacré précédemment sur ce blog à CodeIgniter.

Pour aller plus loin

NB : L’origine japonaise du nom Kohana semble à écarter, que ferait-on d’un framework nommé "Petite Fleur" ! A moins que les auteurs soient des fans de Sidney Bechet et comme les auteurs de WordPress font une référence constante au jazz..
Il est aussi probable mais pas certain que les concepteur de flash est pensé à cet adjectif lorsque l’extension des fichiers flash est devenu .swf qu’on nomme communément un “swift”