Merci Symfony

avr 11 2010 Published by admin under programmation

Il était une fois…

IL était une fois une équipe qui réalisa un site web pour un client. Tout se passa normalement au cours du développement.
Mais un jour, alors que nous devions mettre sur le serveur du client, nous apprîmes (oui, oui! apprîmes) que:

  • le serveur du client était en fait 2 serveurs,
  • ces 2 serveurs étaient « load-balancés » (pas de » sticky-tcpip » possible)
  • la gestion des sessions PHP était « basique » (file)
  • nous n’avions pas la possibilité de changer la configuration des 2 serveurs (pour utiliser memcached par exemple) ou du « load-balancer »

(je vous passe les détails de mauvaises communications entre les équipes techniques en jeu…)

Horreur!

Qu’allons-nous devenir?

Que faisons-nous?

OMG!

Heureusement…

…tel le petit poucet qui avait pris soin de mettre des pierres dans ses poches, nous avions développé notre site avec le framework Symfony (1.4).

Il est possible de changer très facilement la manière dont sont sauvegardées les sessions PHP avec Symfony, grâce au fichier factories.yml.

Il n’a donc pas fallu plus que 30 minutes pour changer la manière de gérer les sessions!

Merci à…

Notes

  1. Oui, je sais, j’ai mis un « S » majuscule à « Symfony », c’est pour m’habituer.
  2. « … et à la fin, ils firent pleins de projets Symfony. »

One response so far

Symfony 2.0 – Notes

mar 06 2010 Published by admin under programmation

Some thoughts about Symfony 2. I didn’t play with the sandbox yet, I just read the doc and browse the code (a little bit). So more to come…

routing « inheritence »

One main routing file that can include to other routing files

# hello/config/routing.yml
homepage:
  pattern:  /
  defaults: { _bundle: WebBundle, _controller: Default, _action: index }

hello:
  resource: HelloBundle/Resources/config/routing.yml

Components are actions, yeah!!

Everything is an action, and you can include an action into a template. That’s great, no need to define an action that just include a component (when you need some ajax but the first load is not ajax)

Generating Links

The generate() method takes the route name and an array of values as arguments.

Mmm, I hope there is another way to generate a route, using the controller name and action name (like the old « url_for »…). I think it’s part of the « kill the magic » cleanup…

Assets and links to images, css, js…

<img src="<?php echo $view->assets->getUrl('images/logo.png') ?>" />

You will be able to change the URL root path of your web app without breaking any links. I love it, but HTML integrators will complain… But I like it… and they will (have to?) live with that.

« imports » directive in Configuration file: cleaner configuration files!

#in config_prod.yml
imports:
  - { resource: config.yml }

No responses yet

Google Analytics API – Enfin (too soon?)

avr 23 2009 Published by saadtazi under programmation

Et oui, tu le voulais pour Noël, Google l’a fait: Google vient de lancer une API pour accéder en lecture seulement les données de Google Analytics: http://analytics.blogspot.com/2009/04/attention-developers-google-analytics.html

Pour l’instant, il y a une librairie Javascript, Java et « Raw » (HTTP et XML). Pour PHP, il va falloir attendre un peu, mais on peut espérer que Zend inclut sous peu à son component Zend_GData des classes spécifiques pour Google Analytics. Il est déjà possible de s’autentifier avec le framework et d’optenir le XML à peu de frais (voir ce lien par exemple tiré de analyseweb.fr, merci Julien Coquet)

No responses yet

Zend, the good, the bad and the ugly

avr 20 2009 Published by saadtazi under programmation

Bon, le framework Zend c’est bien, très bien même. Ne me faites pas dire ce je n’ai pas dit, ok?

Mais quand même, une mini-liste de chose que je n’ai pas été capable de faire avec le Zend framework (1.7):

  • Zend_Feed: créer un feed atom custom, avec mes propres tag et namespaces. En fait, c’est faisable, mais qu’est ce que c’est compliqué…
  • Zend_SOAP:  ajouter un header du coté du client pour « consommer » un Web Service. Là, j’ai été obligé de me servir de SoapClient (inclus maintenant dans PHP). Je n’ai vraiment pas trouvé comment. Pas trop grave, car Zend_Soap n’est qu’un « wapper » de SoapClient et SoapServer (du propre aveu de Matthew Weier O’Phinney au la conférence PHP Québec).

Sinon, je me sers souvent de Zend_Mail, parfait, parfait, parfait. Zend_Amf, les tests ont été très concluant, la suite dans un prochain épisode.

No responses yet