Zend Code Generator : une vrai pépite

Ce qui prend du temps quand on est développeur web, ce sont les taches répétitives, et elles n’apportent aucune nouvelle connaissance.

Pire, si ces taches sont espacées dans le temps, (création d’1 application tous les 6 mois / 1 an), on veut implémenter de nouvelles choses, plus innovantes, plus réfléchies que les fois précédentes. Et 3 ou 4 ans après, on n’a aucune base solide pour créer un nouveau projet sans repartir « from scratch ». On récupère quelques morceaux de codes par-ci, par-là, c’est assez chaotique.

Pour contrecarrer ce travail ennuyeux, pourquoi ne pas créer votre application « modèle » ?

Une application fonctionnelle, simple, de base.

Le but est de créer une application, basée ou non sur une base de données, avec toutes les composantes que d’habitude vous « copiez-collez » depuis vos anciens projets, oui, oui on le fait tous copier-coller, moi ? jamais ! ne niez pas…

Zend Code Generator permet de structurer vos fichiers, php certes, mais on peut aussi bien l’utiliser pour d’autres langages ou des fichiers de config par exemple

Il y a d’abord Zend_CodeGenerator_Php_File

$dbClassFile = new Zend_CodeGenerator_Php_File();
$dbClassFile->setFilename('/models/' . $name . 'DB.php');
$dbClassFile->setBody('le contenu de mon fichier php');
file_put_contents($dbClassFile->getFilename(), $dbClassFile->getBody());

On peut inclure dans la generation des require_once

$a_required[] = "' . APPLICATION_PATH . '../models/" . $name . "DB.php";
$controllerClassFile->setRequiredFiles($a_required);

je vous l’accorde c’est pas très beau quand on utilise des constantes pour les chemins parce qu’il génère quelque chose comme ça :

require_once '' . APPLICATION_PATH . '../models/AnimalDB.php';

On peut inclure une classe Zend_CodeGenerator_Php_Class

$controllerClassFile->setClass($controllerClass);

Zend_CodeGenerator_Php_Class permet de définir

  • son nom évidement
  • la classe dont elle hérite
  • les propriétés de votre objet
  • des méthodes
  • et les commentaires phpDoc qui vont avec
$db_class = new Zend_CodeGenerator_Php_Class();
$db_class->setName($name .'DbTable');
$db_class->setDocblock(new Zend_CodeGenerator_Php_Docblock(array(
 'shortDescription' => $name . ' db parser',
 'tags' => array($a_authorTag, $a_versionTag, $a_packageTag["modelParser"]))));

$db_class->setExtendedClass('Zend_Db_Table_Abstract');
$db_class->setProperty(array('name' => '_name',
 'visibility' => 'protected',
 'defaultValue' => $table,
 'docblock' => array('tags' => array(new Zend_CodeGenerator_Php_Docblock_Tag(array('name' => 'var', 'description' => 'string table name'))))));

Pour les méthodes, rien de bien compliqué, Zend_CodeGenerator_Php_Method a des méthodes setName, setBody et setDocBlock

$my_o_method->setBody('$TestTable = new TestDbTable(array(\'db\' => \'my_db\'));
 $Tests = $TestTable->fetchAll();
 echo "<pre>";
 print_r($Tests);
 echo "</pre>";'
);

Si vous arrivez à bien vous représenter ce que vous faites à chaque nouveau projet, vous pourrez gagner beaucoup de temps.

Malgré le fait qu’il ne soit pas très connu, il a été créé dans la v1.8, ce composant a un potentiel énorme.

Adopté !!

la doc officielle

Hallucinant ! Le site SFR.fr a des horaires d’ouverture

Posted On 9 avril 2009

Filed under 1

Comments Dropped leave a response

Veuillez repasser plus tard madame ! Cela me conforte un peu plus dans mon opinion envers les opérateurs mobiles en général.

Voulant changer de forfait pour un forfait moins cher (20 minutes au lieu d’une heure) je me suis rendue dans une boutique SFR, qui m’a gentiment dit qu’ils ne pouvaient pas faire cette opération en boutique. Pour payer mon cher, c’est pas ici 🙂 Faut téléphoner ou aller sur votre compte en ligne.

Sur le site, on ne me propose que des forfait supérieurs et plus chers bien entendu !

Tant qu’à faire, je regarde si je peux changer de mobile avec mes points fidélités, après tout cela ne fait que 7 longues années que je suis chez eux ! ma fidélité doit être récompensée, c’est leur pub qui dit ça : vous savez les petits cadeaux au dessus de la tête des abonnés.strive

Et ben non je peux pas, je dois revenir un autre jour preuve en image : je crois qu’ils nous prennent vraiment pour des pigeons

sfr_site_horaires

MC Yogi : Obama ’08

Posted On 20 octobre 2008

Filed under 1

Comments Dropped leave a response

Le clip est bien fait, la musique entraînante, et c’est pour la bonne cause :