Billet du blogue

Kohana

Kohana est un framework PHP basé sur CodeIgniter mais dont le code a complètement été ré-écrit.

Ses différences par rapport à CodeIgniter (extraites de cette page) sont :

  1. Utilise les fonctionnalités strictes de PHP5 en matière de programmation orientée objet.
  2. Développé par une communauté, et non par une compagnie.
  3. Les variables $_GET, $_POST, $_COOKIE, $_SESSION sont disponibles — CodeIgniter écrase $_GET avec sa ré-écriture d’URLs.
  4. Les contrôleurs et les modèles doivent être nommés respectivement « MonControleur_Controller » et « MonModele_Model ». Cela empêche d’avoir des conflits dans les noms de classes. Par exemple, on pourrait avoir un contrôleur « Openid_Controller » et un modèle « Openid_Model ».
  5. Auto-chargement des classes. Les fichiers requis pour la classe sont inclus automatiquement lors de l’appel de cette dernière. Ils ne sont pas pré-loadés.
  6. Système d’évènements. Les évènements dans Kohana peuvent être ajoutés, remplacés ou enlevés complètment. Cette fonctionnalité s’apparente aux filters de WordPress.

Exemple de code avec CodeIgniter

class Bienvenue extends Controller {

  function Bienvenue() {
    parent::Controller();
    $this->load->library('session');
    $this->load->model('billets');
  }

  function index() {
    $data = array();
    $data['message'] = "Bienvenue dans CodeIgniter";
    $this->load->view('bienvenue', $data);
  }

}

Exemple de code avec Kohana

class Bienvenue_Controller extends Controller {

  function __construct() {
    parent::__contruct();
    $this->load->library('session');
    $this->load->model('billets');
  }

  function index() {
    $this->layout=$this->load->view('bienvenue');
    $this->layout->message = "Bienvenue dans Kohana";
    $this->layout->render(true);
  }

}

J’ai joué un peu avec le framework — j’ai tenté de migrer mon blogue vers Kohana en utilisant ce tutoriel, mais sans succès. J’ai abandonné lorsque j’ai été incapable de loader une librairie dans un modèle — comme je faisais très bien avec CodeIgniter.

Différences notables avec CodeIgniter

Voici une petite liste des choses qui m’ont ralenties dans le passage (pas encore complété) de mon application vers Kohana :

  • Il est impossible de loader quoi que ce soit dans un modèle.
  • Comme les vues sont maintenant des objets, il est impossible d’avoir accès à la variable $this interagir avec le modèle ou une librairie. Tout doit se faire dans le contrôleur et non dans la vue. J’avoue que c’est une meilleure pratique, mais je n’avais pas pensé à cela lorsque j’y codé mon application!
  • Comme les helpers sont maintenant des objets eux aussi, toutes les fonctions deviennent des méthodes. Exemple: site_url() devient url::site().
  • Le URL helper ne contient pas de méthode anchor comme celui de CodeIgniter. J’utilisais cette méthode abondamment pour créer rapidement des éléments HTML A. Il a fallu que je recopie la méthode de CI. Mon erreur — la méthode appartient au HTML helper
  • à suivre…

J’ai bien aimé ce que j’ai vu par contre — le fait que le système soit conçu pour utiliser les fonctionnalités d’OOP de PHP 5 est un gros plus — cela force le développeur à utiliser des méthodes plus réfléchies et mieux structurées.

Le fait que le développement du framework soit contrôlé par la communauté me fait aussi pencher vers celui-ci. C’est également un framework très jeune et assez prometteur. Lorsque j’aurai à bâtir ma prochaine application web, il fera partie des frameworks que j’envisagerai d’utiliser!

Posté le avec les tags: , , et .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet0 commentaires

Aucun commentaire n'a été posté pour ce billet.