Firebug 1.0b1 est sorti. Et il est bien (tm).
A propos
- something to tell me ? feel free to drop a mail
- Profile LinkedIn
Tuesday 5 December 2006, 11:05
By Geoffrey - Coding - Permalink
Firebug 1.0b1 est sorti. Et il est bien (tm).
Tuesday 28 November 2006, 22:39
By Geoffrey - Coding - Permalink
Une des questions cruciales qui se pose à tout développeur à au moins un moment de sa vie (souvent plusieurs en fait) est le choix d'un environnement de développement. J'en ai testé pas mal, plus ou moins longtemps, et bien que je ne sois jamais complètement satisfait, l'idée de perdre du temps à développer le mien m'indispose. J'ai donc opté pour l'environnement qui me va le mieux: Linux + gVim + Rox-filer.
Note: je ne couvre pas ici les fonctionnalités de débuging avancé, que je n'utilise pas encore, mais pour lesquelles j'ai déjà en tête des solutions qui me conviendront bien mieux que les outils intégrés à un quelconque IDE (je pense fortement à Xdebug).
Friday 24 November 2006, 20:27
By Geoffrey - Coding - Permalink
Pré-requis: Zend_Controller_RewriteRouter.
Nous allons voir aujourd'hui comment générer automagiquement des URLs à partir des routes définies dans le RewriteRouter, ainsi que les avantages que cela présente. Le Helper que nous allons utiliser nécessite le stockage du routeur dans le registre:
Zend::register('router', $router);
Avant de voir le Helper lui même, un petit Use Case. Admettons que vous développiez une application de gestion de petites annonces, vous aurez à un moment ou un autre à créer un lien quelconque pour, par exemple, créer une annonce, et en voir les détails. Disons que vous ayez des routes route du genre (je zappe les defaults):
announceCreate.route = /announce/create announceDetails.route = /announce/:id/details
L'objectif est de pouvoir créer les liens grâce au code suivant (à partir de la view):
<a href="<?php echo $this->href('announceCreate'); ?>">Créer une annonce</a>
<a href="<?php echo $this->href('announceDetails', array('id' => $announce->id)); ?>">Voir l'annonce</a>
Et comme le Zend Framework est bien fait, c'est très simple à réaliser sous forme de ViewHelper:
class Zend_View_Helper_Href {
/**
* Returns the href to a given route
*
* @param string $routeName
* @param array $args
* @return string
*/
public function href($routeName, $args = array()) {
try {
return Zend::registry('router')->getRoute($routeName)->assemble($args);
} catch (Zend_Controller_Router_Exception $e) {
return '#404';
}
}
}
Tellement simple que pour combler un peu je vous offre le docblock qui va avec ;-)
Là où ça devient très pratique, c'est quand on souhaite localiser les URLs. Par exemple, imaginons que vous souhaitiez françiser les URLs pour, par exemple, améliorer votre référencement. Vous n'avez qu'a définir un jeu de routes fr_FR, par exemple ainsi:
announceCreate.route = /annonce/creer
announceDetails.route = /annonce/:id/details
[routes_en_UK]
announceCreate.route = /announce/create
announceDetails.route = /announce/:id/details
[routes:route_fr_FR]
announceCreate.defaults.controller = announce
announceCreate.defaults.action = create
announceDetails.defaults.controller = announce
announceDetails.defaults.action = details
L'utilisation de l'héritage géré par Zend_Config nous permet ici d'éviter la redondance des defaults.
Elle est pas belle la vie ?
Note: cette fonctionnalitée est prévue pour être builtin plus tard.
Thursday 23 November 2006, 13:40
By Geoffrey - Coding - Permalink
Une petite discussion sur l'optimisation en PHP à lieu en ce moment chez NiKo ! Ce n'est pas souvent que je link directement comme ça, donc dites vous que quand je le fais, c'est que ça en vaut la peine ;-)
Sunday 19 November 2006, 21:30
By Geoffrey - Coding - Permalink
L'implémentation du Front Controller du Zend Framework inclue un système bien pratique de plugins, qui va nous permettre de réaliser plus simplement et proprement l'automatisation des vues, initialement embarquée dans une extension de Zend_Controller_Action (ce qui pose quelques problèmes, nottament au lors de l'utilisation de __forward() et _redirect()).
Monday 6 November 2006, 14:28
J'ai fermé le blog Zend que j'avais ouvert, tout simplement parcequ'il me semble de plus en plus clair que le genre de personne susceptible d'écrire sur ce genre de blog possède déjà un blog, et qu'il serait bien présomptueux de penser qu'ils preferreraient écrire sur mon blog plutôt que sur le leur. J'ai donc installé un moonmoon à la place, dont le but ultime est d'aggréger les blogs francophones (ou leurs tags / catégorie) traitant de près ou de loin de PHP, à la manière du Planet PHP originel, donc. La planet en question est donc disponible sur http://phpmafia.net/, et vous y trouverez d'ores et déjà les blogs qui figurent en bonne place dans mon lecteur RSS.
Pour faire partie du planet, il suffit de m'envoyer un mail avec l'adresse de votre blog (ou de sa partie traitant de PHP), ainsi que votre nom / pseudonyme, et c'est tout :-)
Pour en revenir au blog Zend Framework, vous trouverez désormais mes billets sur ce blog, sous le tag Zend Framework.
Wednesday 1 November 2006, 16:10
By Geoffrey - Geekeries - Permalink
Les liens interressants (ou pas) de la semaine:
Sunday 29 October 2006, 16:22
By Geoffrey - Coding - Permalink
Vite fait, un petit jeu pour vous, amis PHPiens.
Dans le snippet de code qui suit se cachent 6 bonnes pratiques (7 selon le degré de subjectivité que l'on inclue dans une bonne pratique), saurez vous les retrouver ?
<?php
$code_is_ugly = true;
if (9069 === $code_author) {
$code_is_ugly = false;
}
?>Friday 13 October 2006, 18:31
By Geoffrey - Coding - Permalink
Nous avons parcouru dernièrement la création du bootstrap HTTP qui sert de socle à une application utilisant le Zend Framework. Le même principe peut s'appliquer aux scripts CLI, mais comme les besoins sont fondamentalements différents, l'implémentation sera elle aussi complètement différente. Nous viserons les objectifs suivants:
Thursday 12 October 2006, 21:51
By Geoffrey - Coding - Permalink
Voilà un article que j'avais déjà proposé sur un site a caractère privé, un peu remis au gout du jour et étoffé de quelques informations et ressources non négligeables. Nous verrons ici comment mettre en place un environement d'execution standard du Zend Framework, également appelé bootstrap de l'autre coté de l'atlantique.
Saturday 16 September 2006, 13:05
By Geoffrey - Coding - Permalink
Commençons par le commencement: le stockage des fichiers. Pour ne pas trébucher sur la longue route que représente l'accomplissement d'un projet, il convient de bien s'organiser dès le début, et savoir précisément où stocker et trouver les choses est une bonne chose. Nous allons donc nous baser sur les recommandations de Zend à ce sujet:
monprojet/
app/
controllers/
models/
views/
library/
www/
A partir de là, on peut faire évoluer un peu. J'ai personellement rajouté un répertoire dist/, qui contient les scripts nécessaire à la distribution de mon application (dump des bases SQL par exemple), et cet article de Rob parle de répertoires comme scripts/ (pour contenir les scripts cron par exemple) et tmp/ (à toutes fins utiles).
Enfin, notons l'utilité d'un répertoire library/ext/ ou assimilé, comme expliqué ici.
Première question a se poser: qu'est-ce qu'un controlleur ? Un controlleur, c'est tout simplement une entité qui va s'occuper de traiter une requête que reçoit l'application. Dans le Zend Framework, les controlleurs possèdent des Actions (sous formes de méthodes), qui permettent d'avoir des URL telles que:
http://example.com/foo/bar/
Dans un tel cas de figure, Zend Framework ira chercher la méthode barAction du controlleur fooController. On voit dès l'ors l'interet de bien définir nos besoins en termes de controlleurs dès maintenant, puisque c'est cela qui définira toute l'architecture de l'application. La marche à suivre est la suivante:
Prenons l'exemple typique d'un portail d'actualité. Voici quelques unes des actions que nous serons susceptibles de proposer:
Ce qui se traduit par:
news/ajouter/)news/lister/)news/voir/id/$id)commentaires/ajouter/news/$id)Cela nous permet donc de prévoir l'arborescence suivante:
app/
controllers/
CommentairesController.php
IndexController.php
NewsController.php
views/
Commentaires/
ajouter.php
Index/
index.php
News/
ajouter.php
lister.php
voir.php
Voilà pour la théorie, pour la pratique, il faut mettre en place un environnement d'execution dans lequel on pourra déployer toutes la puissance du Zend Framework, c'est ce que nous verrons la prochaine fois :-)
Wednesday 6 September 2006, 23:21
By Geoffrey - Coding - Permalink
Il arrive forcément un moment dans un projet où le besoin de fonctionnalités avancées dans un domaine particulier (mail, réseau, etc) se fait sentir. En général, l'utilisation d'une librairie tierce s'avère nécessaire et pose quelques légers et irritants problèmes, particulièrement au niveau de la convention de nommage des classes et de l'arborescence des répertoires qui devient rapidement bordélique. Nos objectifs seront donc:
Ça tombe bien, c'est très simple à réaliser :-)