Archive for the ‘Ruby’ Category

Analyser un objet en PHP

27 janvier 2009

Ruby est un langage qui s’auto documente. On peut analyser en permanence n’importe quel objet. Le motto étant de ne pas forcer un type, mais de vérifier si un objet répond à ce qu’on demande.

En Java ou PHP on force généralement le type lors de l’appel d’une fonction. Par exemple :

function do_something(Integer $num) {
  $num->do_another_thing();
}

Alors qu’en ruby on va plutôt faire ceci :

def do_something(num)
  if num.respond_to? :do_another_thing  
    num.do_another_thing
  else
    raise Exception.new "num can't do another thing!"
  end
end

Qu’importe la classe de num, tant qu’elle répond à la méthode do_another_thing.

Est-ce possible en PHP5 ? (more…)

À propos des Frameworks

16 janvier 2009

Je pratique les frameworks depuis quelques années, car je trouve les principes type Domain, MVC, etc. extrèmement pratiques. Je n’arrive cependant pas à en trouver un qui me plaise. Je fais régulièrement le tour des frameworks PHP principaux, mais je trouve généralement qu’ils sont beaucoup trop compliqués, et qu’ils ne résolvent pas mes problèmes. Le principal étant de me simplifier au maximum la vie sur les tâches répétitives et d’être opérant immédiatement, sans avoir à coder 5 classes juste pour un modèle.

Je n’ai par exemple toujours pas compris comment créer un modèle avec le Zend Framework. À part qu’il faut apparemment générer 3 classes, juste pour un modèle.

J’ai donc fini par me coder un framework perso, que j’ai réécrit deux fois. Mais :

  • il n’y a aucun test unitaire ;
  • je suis le seul à bosser dessus ;
  • je n’ai donc aucun retours d’utilisateurs ou d’autres programmeurs ;
  • la plupart des idées de la dernière version viennent directement de Rails.

Pourquoi m’embêter à coder en PHP ce qui existe déjà pour Ruby ? En plus, Rails est plein d’idées que je trouve excellentes, qui me plaisent et que je copie sans vergogne. Quel intérêt alors de maintenir un tel framework ? Ça me semble idiot, surtout depuis que j’ai lu Practices of an Agile Developer.

Certes, développer un bon framework, simple, accessible et reprenant les bonnées idées de Rails mais basé sur PHP et non pas Ruby est intéressant. PHP est plus courant chez les hébergeurs par exemple, donc plus facile à déployer. Cependant coder tout seul dans son coin, et voir ses projets (Webcomics.fr par ex.) traîner du pied parce qu’il faut maintenir et faire évoluer son framework… c’est juste idiot.

Je ne rejette pas l’idée de coder un framework PHP5 tel que définit au paragraphe précédent, mais pas tout seul, et surtout : développé Test Driven, c’est-à-dire que les tests doivent conduire la programmation (et pas l’inverse). Si ça vous êtes intéresse et que vous maîtrisez le modèle objet PHP5, contactez-moi, car ça m’intéresse !

Pour le moment j’étudie Ruby, Rails, et j’apprends des trucs. Je ne sais pas ce qu’il en ressortira : un framework calqué sur Rails mais pour PHP5 ? Ou peut-être finirai-je par switcher et passer à Ruby ?