{"id":1101,"date":"2009-10-11T15:36:06","date_gmt":"2009-10-11T14:36:06","guid":{"rendered":"http:\/\/flaven.fr\/?p=1101"},"modified":"2026-09-16T08:15:21","modified_gmt":"2026-09-16T06:15:21","slug":"kohana-codeigniter-framework-php-un-comparatif-entre-kohana-et-codeigniter","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2009\/10\/kohana-codeigniter-framework-php-un-comparatif-entre-kohana-et-codeigniter\/","title":{"rendered":"Kohana, CodeIgniter, Framework PHP &#8211;  Un comparatif entre Kohana et CodeIgniter"},"content":{"rendered":"<p><!-- Kohana, CodeIgniter, Framework PHP -  Un comparatif entre Kohana et CodeIgniter --><br \/>\n<!--  Kohana, CodeIgniter, Framework, framework, PHP, PHP5, OOP --><br \/>\nOn avait affirm\u00e9 haut et fort notre choix d&#8217;un framework PHP \u00e0 savoir CodeIgniter et voil\u00e0 qu&#8217;un fork de CodeIgniter nomm\u00e9 Kohana viendrait perturber la hi\u00e9rarchie qui s&#8217;\u00e9labore lentement parmi les frameworks PHP : Symphony, Zend, CakePHP et puis enfin CodeIgniter.<!--more--><\/p>\n<h2>Kohana ?<\/h2>\n<p>M\u00eame si le nom \u00e9voque plus un animal quasi mascotte de l&#8217;Australie, le Koala qu&#8217;un framework, une petite recherche sur le site et sur le web nous informe un peu plus. L\u2019origine du nom donne une petite id\u00e9e de l\u2019intentionnalit\u00e9 des auteurs. En langue sioux, Kohana signifie <em>&quot;swift&quot;<\/em> c&#8217;est \u00e0 dire rapide, v\u00e9loce&#8230; Si les auteurs ont recherch\u00e9 cette filiation, c&#8217;est sans doute pour offrir \u00e0 la communuat\u00e9 PHP un framework rapide et robuste. Le slogan qui accompagne Kohana en dit plus que la d\u00e9finition du nom elle-m\u00eame <em>&quot;Swift, Secure, and Small PHP 5 Framework&quot;<\/em>. Nous voil\u00e0 donc prevenu sur ce qui a pr\u00e9sid\u00e9 \u00e0 la naissance de ce Framework inspir\u00e9 par CodeIgniter, une sorte de &quot;Little Big Man&quot; du framework.<\/p>\n<p>En tous les cas, voil\u00e0 la d\u00e9fintion officielle donn\u00e9es par les auteurs, plus explicite on ne peut pas.<\/p>\n<blockquote><p>What is Kohana?<\/p>\n<p>Kohana is a PHP5 framework that uses the Model View Controller architectural pattern. It aims to be secure, lightweight, and easy to use.<\/p><\/blockquote>\n<p><b>Avant de livrer in extenso un comparatif avec CodeIgniter, on se permet d&#8217;attirer votre attention sur deux atouts majeurs de Kohana. Ces points seront d&#8217;ailleurs repris abondamment dans le comparatif, comparatif auquel \u00e0 largement contribu\u00e9 <code>BinBin<\/code> que nous remercions chaudement !<\/b><\/p>\n\t\t\t\t\t<div class=\"textwidget-unique text\">\n\n\t\t\t\t\t        <div class=\"textwidget-photo\">\n\t\t\t\t\t                <a href=\"https:\/\/flaven.fr\/books\/professional-codeigniter\/\" class=\"photo\" title=\"Professional CodeIgniter\"><img loading=\"lazy\" decoding=\"async\" alt=\"Professional CodeIgniter\" src=\"http:\/\/ecx.images-amazon.com\/images\/I\/41YebbryOWL._SL160_.jpg\" width=\"127\" height=\"160\"><\/a>\n\t\t\t\t\t            <\/div>\n\t\t\t\t\t\t<div class=\"info half\">\n\t\t\t\t\t\t\t<h2 class=\"product-title\"><a class=\"head\" href=\"https:\/\/flaven.fr\/books\/professional-codeigniter\/\" title=\"Professional CodeIgniter\">Professional CodeIgniter<\/a><\/h2>\n\t\t\t\t\t\t\t\n\t\t\t\t\t        <p class=\"product-excerpt\">Un tr\u00e8s bon bouquin sur le framework sur lequel j'ai abondamment travaill\u00e9 chez Hecube, CodeIgniter. Un livre est tr\u00e8s bien fait, facile, comme le framework d'ailleurs. Un cas concret, suivi pas \u00e0 pas avec une l\u00e9g\u00e8re introduction \u00e0 la m\u00e9thode Agile ou XP (extreme programming) li\u00e9 au Framework et au d\u00e9veloppement MVC. Le code de d\u00e9monstration peut-\u00eatre charg\u00e9 sur la site de WROX, l'\u00e9diteur.<\/p>\n\t\t\t\t\t\t\t\tGenre(s) : <a href=\"https:\/\/flaven.fr\/book-type\/agile\/\" rel=\"tag\">Agile<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/api\/\" rel=\"tag\">API<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/applications\/\" rel=\"tag\">Applications<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/developpement-open-source\/\" rel=\"tag\">D\u00e9veloppement<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/html5\/\" rel=\"tag\">HTML5<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/ihm\/\" rel=\"tag\">IHM<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/marketing-digital\/\" rel=\"tag\">Marketing<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/mobile\/\" rel=\"tag\">Mobile<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/tablette\/\" rel=\"tag\">Tablette<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/web-agile-ux\/\" rel=\"tag\">Web<\/a><br>Auteur(s) : <a href=\"https:\/\/flaven.fr\/book-author\/thomas-myer\/\" rel=\"tag\">Thomas Myer<\/a><br>Edition(s) : <a href=\"https:\/\/flaven.fr\/book-description\/wrox\/\" rel=\"tag\">Wrox<\/a><br>\n\t\t\t\t\t<div class=\"but-wrap\"><a href=\"http:\/\/www.amazon.fr\/Professional-CodeIgniter-Thomas-Myer-ebook\/dp\/B003VWCBYC%3FSubscriptionId%3DAKIAJYB2QGGQOTHQLRPA%26tag%3Dhecubenet-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB003VWCBYC\" class=\"button\"><span><i class=\"more\"><\/i>+ d'infos<\/span><\/a><\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\n<h4>Kohana et ses librairies<\/h4>\n<p>Bien que le titre \u00e9voque plus un groupe de rock \u00e0 la mani\u00e8re de <em>Johnny Diesel and the Injectors<\/em>, ces \u00e9l\u00e9ments vous seront d&#8217;une grande utilit\u00e9 et il est souhaitable de t\u00e9l\u00e9charger l\u2019ensemble lorsque vous t\u00e9l\u00e9chargerez la totalit\u00e9 du Framework.<\/p>\n<p>Le t\u00e9l\u00e9chargement de Kohana inclut toutes les &quot;libraries&quot;, les &quot;helpers&quot; et les &quot;views&quot; mais il vous faudra aussi s\u00e9lectionner notamment les modules qui font la force de Kohana.<\/p>\n<ul>\n<li>Archive \u2013 Compressed archive creation, supports zip, tar, gzip, and bzip.(module d&#8217;archivage)<\/li>\n<li>Auth \u2013 Simple authentication and user management. Uses ORM for models. (module d&#8217;authentification)<\/li>\n<li>Gmaps \u2013 Google Maps integration, geolocation, and API support. (module de d&#8217;interfa\u00e7age avec Google Maps)<\/li>\n<li>Kodoc \u2013 Dynamic self-generated documentation. (Beta!) (module de g\u00e9n\u00e9ration de documentation disponible en Beta)<\/li>\n<li>Payment \u2013 Provides merchant and payment gateway wrappers. Supports Authorize.net, PayPal, Trident, Trust Commerce, and YourPay. (module de paiment)<\/li>\n<\/ul>\n<h4>Kohana + quelques outils<\/h4>\n<p>Incluez aussi les deux outils qui vous sont \u00e0 l&#8217;heure actuelle propos\u00e9s<\/p>\n<ul>\n<li>Markdown \u2013 Text formatting tool that offers text to HTML markup with a natural syntax.<\/li>\n<li>SwiftMailer \u2013 Feature-rich emailing library that supports HTML email, SMTP connections, and many other features.<\/li>\n<\/ul>\n<h4>Un petit mot sur l&#8217;ORM de Kohana<\/h4>\n<p>Selon, l&#8217;adage bien connu pourceux d&#8217;entre vous qui viennent du RoR <em>&quot;convention over configuration&quot;<\/em>, le recours \u00e0 un ORM r\u00e9duit consid\u00e9rablement la quantit\u00e9 de code \u00e0 produire pour r\u00e9aliser les t\u00e2ches habituelles \u00e0 ex\u00e9cuter sur une BDD. T\u00e2ches que l&#8217;on a coutume de r\u00e9sumer par l&#8217;acronyme CRUD (Create, Read, Update et Delete).<br \/>\nC&#8217;est aussi un facteur de rapidit\u00e9 et de viabilit\u00e9 du code, en r\u00e9duisant l&#8217;\u00e9criture de code personnel donc en minimisant de facto l&#8217;apparition de bugs potentiels.<\/p>\n<p>Deux b\u00e9mols principaux au recours \u00e0 un ORM sous Kohana, ils sont d&#8217;ailleurs mentionn\u00e9s dans l&#8217;introduction de Kohana sur le chapitre sur l&#8217;ORM: <\/p>\n<ul>\n<li>L&#8217;ORM ne produit pas toujours le code le plus efficient pour op\u00e9rer des requ\u00eates SQL.<\/li>\n<li>Bien que Kohana poss\u00e8de des <em>&quot;drivers&quot;<\/em> (pilotes) pour se connecter aux principales BDD qui autorisent <em>&quot;foreign key&quot;<\/em> (cl\u00e9 \u00e9trang\u00e8re) tel que PostgreSQL, MSSQL et MySQL. Pour MySQL, il vous faudra utiliser en priorit\u00e9 des tables de type InnoDB et non MyISAM.<\/li>\n<\/ul>\n<p><em>Source : <a href=\"http:\/\/docs.kohanaphp.com\/libraries\/orm\" target=\"_blank\">http:\/\/docs.kohanaphp.com\/libraries\/orm<\/a><\/em><\/p>\n<p><b>D\u00e9finition d&#8217;un ORM<\/b><br \/>\nA titre de rappel, voici le d\u00e9finition donn\u00e9e par wikip\u00e9dia.<\/p>\n<blockquote><p>\nUn mapping objet-relationnel (en anglais object-relational mapping ou ORM) est une technique de programmation informatique qui cr\u00e9e l&#8217;illusion d&#8217;une base de donn\u00e9es orient\u00e9e objet \u00e0 partir d&#8217;une base de donn\u00e9es relationnelle en d\u00e9finissant des correspondances entre cette base de donn\u00e9es et les objets du langage utilis\u00e9. On pourrait le d\u00e9signer par &laquo; correspondance entre monde objet et monde relationnel &raquo;\n<\/p><\/blockquote>\n<h2>Une comparaison entre Codeigniter et Kohana<\/h2>\n<p>A tout seigneur tout honneur, on commence par lister les avantages de Kohana bien qu\u2019il ne soit qu\u2019un vassal, pardon un fork de CodeIgniter.<\/p>\n<h4>Les points forts de Kohana<\/h4>\n<p>Ils sont nombreux, les voici dans le d\u00e9sordre mais quasiment tous au complet.<\/p>\n<ul>\n<li>Kohana int\u00e8gre au maximum les fonctionnalit\u00e9s d\u2019un langage Orient\u00e9 Objet (tr\u00e8s OOP, Object-oriented programming) en utilisant PHP5<\/li>\n<li>Kohana est 100% compatible UTF-8<\/li>\n<li>Kohana est l\u00e9ger. Il est extensible \u00e0 souhait (l&#8217;argument de &quot;scalability&quot; ou d&#8217;extensibilit\u00e9)<\/li>\n<li>Kohana poss\u00e8de une architecture souple et modulaire<\/li>\n<li>Kohana, comme tout bon framework, il s\u2019appuie sur le Design pattern MVC<\/li>\n<li>Kohana comprend des <code>Add-ons<\/code> pour technologies externes( Google maps, modules de paiements). <strong>Les fameuses <code>libraries<\/code> (librairies) cit\u00e9s plus haut<\/strong>.<\/li>\n<li>Kohana comprend des Add-ons pour faire un espace membre (authentification via session, d\u00e9connexion etc.)<\/li>\n<li>Kohana poss\u00e8de un syst\u00e8me <code>profiler<\/code> plus pouss\u00e9 que Codeigniter. On peut ainsi choisir exactement ce que l\u2019on veut profiler pour d\u00e9buguer (sessions, cookies, requ\u00eates etc.)<\/li>\n<li>Kohana poss\u00e8de une v\u00e9ritable communaut\u00e9 et n&#8217;est pas \u00e0 l&#8217;origine op\u00e9r\u00e9 par une agence, ellislab pour ne pas la citer comme CodeIgniter. C&#8217;est un argument poru les puristes de l&#8217;open-source.<\/li>\n<\/ul>\n<h4>Les points faibles de Kohana<\/h4>\n<p>Pour certains, ce n&#8217;est pas un point m\u00eame pertinent mais bon, le cas se pr\u00e9sente notamment dans la r\u00e9\u00e9criture compl\u00e8te d\u2019une application. Il peut arriver qu&#8217;il faille assurer le maintien d&#8217;une application en PHP 4, le co\u00fbt du red\u00e9veloppement complet est souvent trop important, le manque de temps aussi ! <\/p>\n<ul>\n<li>Pas de PHP4. Kohana est en PHP5 et seulement en PHP5<\/li>\n<\/ul>\n<h4>Les points forts de CodeIgniter<\/h4>\n<ul>\n<li>CodeIgniter permet d&#8217;utiliser PHP4 comme PHP5. Pas d\u2019obligation de se limiter \u00e0 PHP5.<\/li>\n<li>Comme Kohana, CodeIgniter est l\u00e9ger. Il est extensible \u00e0 souhait (l&#8217;argument de &quot;scalability&quot; ou d&#8217;extensibilit\u00e9)<\/li>\n<li>Comme Kohana, Codeigniter est dot\u00e9 d&#8217;une architecture souple et modulaire et s&#8217;appuie comme tout framework sur le Design pattern MVC<\/li>\n<li>CodeIgniter est puissant mais n\u00e9cessite peu de ressources<\/li>\n<li>CodeIgniter s&#8217;appuie sur une communaut\u00e9 tr\u00e8s active et le niveau d&#8217;adoption est en croissance constante tant du c\u00f4te des d\u00e9veloppeurs que des utilisateur\/clients<\/li>\n<\/ul>\n<h4>Les points faibles de CodeIgniter<\/h4>\n<ul>\n<li>A l&#8217;inverse de Kohana, CodeIgniter poss\u00e8de peu voir pas du tout d\u2019<code>Add-ons<\/code> pour utiliser des technologies externes<\/li>\n<\/ul>\n<h4>Conclusion : Kohana vs CodeIgniter<\/h4>\n<p>Codeigniter et Kohana sont sur de tr\u00e8s nombreux points similaires, ce qui semble normal compte tenu de leur parent\u00e9. Outre le plaisir de la d\u00e9couverte pour Kohana, Kohana se r\u00e9v\u00e8le  beaucoup plus pouss\u00e9 dans ses capacit\u00e9s, essentiellement gr\u00e2ce \u00e0 ces fameuse <code>Add-ons<\/code> et <code>libraries<\/code>. Toutefois, Kohana reste cantonn\u00e9 \u00e0 PHP5, ce qui reste un handicap surmontable. <\/p>\n<p>Et par rapport aux autres frameworks, ce sont les frameworks id\u00e9als car beaucoup moins complexes Zend, CakePHP, Symphony. Ils sont \u00e0 conseiller \u00e0 toute d\u00e9veloppeur qui souhaiterait appr\u00e9hender facilement et rapidement un Framework PHP.<\/p>\n<p>C&#8217;est un peu aussi le sens de la conclusion de l&#8217;article qui avait \u00e9t\u00e9 consacr\u00e9 pr\u00e9c\u00e9demment sur ce blog \u00e0 CodeIgniter.<\/p>\n<ul>\n<li><a href=\"http:\/\/social.hecube.net\/blog\/2009\/05\/23\/framework-php-quel-framework-choisir-entre-codeigniter-cakephp-symphony-zend\/\">Framework PHP &#8211; Quel framework choisir entre CodeIgniter, CakePHP, Symphony, Zend&#8230;<\/a><\/li>\n<\/ul>\n<h2>Pour aller plus loin<\/h2>\n<ul>\n<li>Le site officiel de <code>Kohana: Swift, Secure, and Small PHP 5 Framework<\/code> <br \/>\n<a href=\"http:\/\/www.kohanaphp.com\/\" target=\"_blank\">http:\/\/www.kohanaphp.com\/<\/a><\/li>\n<li>Lien de t\u00e9l\u00e9chargement du framework <code>Kohana<\/code> <br \/>\n<a href=\"http:\/\/www.kohanaphp.com\/download\" target=\"_blank\">http:\/\/www.kohanaphp.com\/download<\/a><\/li>\n<li>Un site complet pour apprendre Kohana en anglais <code>Learning Kohana : Helping you with Kohana framework<\/code> <br \/>\n<a href=\"http:\/\/docs.kohanaphp.com\/overview\" target=\"_blank\">http:\/\/docs.kohanaphp.com\/overview<\/a><\/li>\n<li>Un aper\u00e7u rapide en anglais des avantages du framework <code>Kohana<\/code> <br \/>\n<a href=\"http:\/\/learn.kohanaphp.com\/\" target=\"_blank\">http:\/\/learn.kohanaphp.com\/<\/a><\/li>\n<li>Le site officiel de <code>\tCodeIgniter<\/code> <br \/>\n<a href=\"codeigniter.com\/\" target=\"_blank\">http:\/\/codeigniter.com\/<\/a><\/li>\n<\/ul>\n<p><em>NB : L&#8217;origine japonaise du nom Kohana semble \u00e0 \u00e9carter, que ferait-on d&#8217;un framework nomm\u00e9 &quot;Petite Fleur&quot; ! A moins que les auteurs soient des fans de Sidney Bechet et comme les auteurs de WordPress font une r\u00e9f\u00e9rence constante au jazz.<\/em>.<br \/>\n<i>Il est aussi probable mais pas certain que les concepteur de flash est pens\u00e9 \u00e0 cet adjectif lorsque l&#8217;extension des fichiers flash est devenu <code>.swf<\/code> qu&#8217;on nomme commun\u00e9ment un &#8220;swift&#8221;<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"<p>On avait affirm\u00e9 haut et fort notre choix d&#8217;un framework PHP \u00e0 savoir CodeIgniter et voil\u00e0 qu&#8217;un fork de CodeIgniter nomm\u00e9 Kohana viendrait perturber la&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2009\/10\/kohana-codeigniter-framework-php-un-comparatif-entre-kohana-et-codeigniter\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Kohana, CodeIgniter, Framework PHP &#8211;  Un comparatif entre Kohana et CodeIgniter<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":9504,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Kohana vs CodeIgniter: comparez ces frameworks PHP pour choisir le plus rapide et robuste. Analyse des outils et r\u00e9sultats.","bf_ai_og_title":"Comparatif Kohana CodeIgniter","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3440,3444,3449],"tags":[579,179,2216,245,3455,246,20,247,3490],"class_list":["post-1101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-infrastructure","category-programming-databases","category-tutorials-how-to","tag-apache","tag-codeigniter","tag-framework","tag-kohana","tag-linux","tag-oop","tag-php","tag-php5","tag-postgresql"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-hL","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2009\/10\/framework_ci_kohanaphp_b_2_g_bf.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/1101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=1101"}],"version-history":[{"count":2,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/1101\/revisions"}],"predecessor-version":[{"id":10125,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/1101\/revisions\/10125"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/9504"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=1101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=1101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=1101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}