Archives pour 'symfony'
1 juin 2009
Dans le cadre de mon boulot, voici une petite tâche Symfony (1.2), développée dans le but de vous afficher une liste de tous les modules/actions ainsi que les credentials symfony associés.
J’ai fait ça rapidement mais cela semble pas trop mal marcher. La sortie vous indique également les droits correspondants aux modules associés à vos applications. Toutefois, seul les modules activés dans tous les environnements (la section all de settings.yml) seront découverts. Cela peut être utile pour découvrir les actions non protégés et prévenir le « url hacking ».

Pour la faire fonctionner, il suffit de déposer le fichier php contenu dans le zip attaché à cet article dans le repertoire lib/task de votre projet Symfony 1.2 et l’appeler en ligne de commande.
credentialMapTask.class.php
Dans Info et autres geekeries | 2 commentaires | Tags : pmsipilot > symfony > symfony 1.2
17 avril 2009
Je viens de signaler les plugins Symfony que j’utilise. Cette fonction est disponible depuis peu sur la site de symfony et peine à, disons, trouver son public. Pourtant, malgré le peu de votes à ce jour, je trouve que cela permet déjà de dégager les très bon plugins. J’invite donc tous les utilisateurs de plugin à indiquer ceux qu’ils utilisent.
Remarquez que ce système ne me flatte guère car le seul plugin que j’ai libéré n’a reçu qu’un vote …. le mien ! ;-) (pourtant il est bien)
Dans Info et autres geekeries | Un commentaire | Tags : plugin symfony > symfony
20 février 2009
Si vous n’avez pas donné votre avis, je vous invite à le faire : http://symfony.uservoice.com/pages/symfony

Personnellement, je ne connaissais pas ce système et je le trouve franchement épatant pour avoir du feedback sur un projet.
Dans Info et autres geekeries | Un commentaire | Tags : symfony > symfony 1.3 > uservoice
17 février 2009

Je travaille avec Symfony depuis la version 0.6.3, le framework a énormément évolué depuis en prenant un virage résolument professionnel. A vrai dire, je suis un peu bluffé par l’endurance de la « core team », qui, à peine la 1.2 sortie, embraille sur la 1.3.
Lire la suite »
Dans Info et autres geekeries | 9 commentaires | Tags : php > php5 > symfony > symfony 1.2
16 janvier 2009
Le système d’évènements de Symfony est une avancée particulièrement intéressante dans le framework. Toutefois, la documentation officielle est un peu spartiate sur le domaine. Voici donc un exemple pratique plus didactique pour utiliser les évènements.
Le système d’évènement de Symfony est basé sur le motif de programmation observer qui est un grand classique du genre.
Tout d’abord, il faut enregistrer le listener. On peut le faire à peu près n’importe ou, par exemple dans le preExecute du code d’un contrôleur, ou plus globalement dans le fichier config/ProjectConfiguration.class.php qui va gérer la configuration globale de votre projet.
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
// listener
if (!sfConfig::get('already_event_connected', false))
{
$this->getEventDispatcher()->connect('a.name', 'aclass::dosomething');
sfConfig::set('already_event_connected', true);
}
}
}
Ce code vous assure que le listener sera enregistré une unique fois. En effet, si il est enregistré deux fois, a chaque notification il sera exécuté deux fois ….
Ensuite, n’importe ou dans votre code, vous pouvez « lancer » cet évènement. Par exemple, dans le code d’un contrôleur.
// notification
sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent(get_class($this), 'a.name',
array(
'a_var' => $foo,
'another_var' => $bar,
)));
La fonction de callback, ici une méthode statique, récupère un objet sfEvent en paramètre. Via ce dernier, on a également accès aux variables passées lors de la notification de l’évènement.
// dans la classe aclass
public static function dosomething (sfEvent $event)
{
$foo = $event['a_var'];
$bar = $event['another_var'];
// code
}
Et voilà, à vous de jouer.
Dans Info et autres geekeries | Un commentaire | Tags : php > php5 > symfony > symfony 1.2
7 janvier 2009

[edit Juillet 2010] cette offre est toujours d’actualité ! PMSIpilot recrute aussi des commerciaux sédentaires.
Voici une offre qui pourrait intéresser certains. La société PMSIpilot, éditeur de logiciels, recrute des développeurs symfony.
Les pré-requis sont les suivants :
- avoir entre bac+2 et bac+5 en informatique ou une expérience significative,
- maitriser PHP ou un langage objet et surtout avoir envie de faire du symfony,
- avoir de bonnes connaissances HTML, CSS, Javascript et un bon bagage web,
- ne pas avoir peur de bosser sous Linux. ;-)
Le tout afin de venir renforcer une équipe développant et maintenant des logiciels dans le domaine médical. Vous trouverez sur Viméo quelques screencasts et retour clients de PMSIpilot. Il y a des infos sur le service technique sur pmsipilot.org.
Les conditions de travail ainsi que les perspectives sont très bonnes. Si vous êtes intéressé vous pouvez me contacter aux coordonnées que vous trouverez sur mon cv et je ferais suivre, ou bien directement via le site de pmsipilot.
N’hésitez pas à diffuser cette information.
Dans Autres choses | 11 commentaires | Tags : emploi > php > php5 > pmsipilot > recrutement > symfony
6 janvier 2009
Symfony va stocker les informations de l’utilisateur courant dans un cookie de session avec / comme chemin. Si vous avez plusieurs applications symfony sur le même serveur et si celles ci sont gérées via des alias apache et non des virtual host, cela peut poser problème. En effet, une fois loggué sur une application, vous pouvez naviguer sur une autre avec tous les crédentials et autre variables de session définies sur cette première application.
Pour changer cela, voici comment je procède. Il faut simplement ajouter un fichier config/factories.yml et y insérer les lignes suivantes :
all:
storage:
class: sfSessionStorage
param:
session_cookie_path: <?php echoln(dirname($_SERVER['SCRIPT_NAME'])); ?>
Dans Info et autres geekeries | 4 commentaires | Tags : factories.yml > symfony > symfony 1.2
2 décembre 2008
Pour info, j’ai packagé un petit helper Symfony pour le dépot de plugins du projet. Il permet simplement de faire des liens entre applications d’un même projet. Il est compatible Symfony 1.2 uniquement.
Merci de vos retours si vous rencontrez des soucis avec ce helper.
http://www.symfony-project.org/plugins/omCrossAppUrlPlugin
Dans Info et autres geekeries | 2 commentaires | Tags : php > php5 > plugin symfony > symfony > symfony 1.2
10 novembre 2008
Après une première tentative peu concluante, voici un autre helper permettant de faire des liens entre différentes applications dans Symfony 1.2.
<?php
/**
* @author Olivier Mansour
*/
/**
* return an url for a given symfony application and an internal url
*
* @author Olivier Mansour
*
* @param string $appname
* @param string $url
* @param boolean $absolute
* @param string $env
* @param boolean $debug
* @return string
*/
function cross_app_url_for($appname, $url, $absolute = 'false', $env = null, $debug = 'false')
{
$initial_app = sfContext::getInstance()->getConfiguration()->getApplication();
$initial_web_controler = basename(sfContext::getInstance()->getRequest()->getScriptName());
// get the environment
if (is_null($env))
{
$env = sfContext::getInstance()->getConfiguration()->getEnvironment();
}
// context creation
if (!sfContext::hasInstance($appname))
{
$context = sfContext::createInstance(ProjectConfiguration::getApplicationConfiguration($appname, $env, $debug), $appname);
}
else
{
$context = sfContext::getInstance($appname);
}
$web_url = $context->getController()->genUrl($url, $absolute);
sfContext::switchTo($initial_app); // usefull ?
unset($context);
//remove initial web controler
// genUrl use $this->context->getRequest()->getScriptName();, its a call to $_SERVER
// so I need this (sort of) hack
$script_name = $appname;
if (($env != 'prod') and $env)
{
$script_name.='_'.$env;
}
$script_name.='.php';
// check if this file exist
if (!file_exists(sfConfig::get('sf_web_dir').DIRECTORY_SEPARATOR.$script_name))
throw new sfException('can t find '.$script_name.' in the web directory');
$web_url = str_replace ($initial_web_controler, $script_name, $web_url);
return $web_url;
}
Pour l’utiliser, c’est à peu près comme url_for :
<?php echo cross_app_url_for('front' , 'module/action?id=5&tmp=ok#raoul'); ?>
<?php echo cross_app_url_for('front' , '@route'); ?>
Jusqu’ici ça marche (Symfony 1.2 est en cours de développement, l’API peut encore un peu changer, attention) ! N’hésitez pas à mettre un commentaire si vous avez un retour.
Dans Info et autres geekeries | 8 commentaires | Tags : cross app links > php > php5 > symfony > symfony 1.2
3 novembre 2008
J’ai participé à des projets de développement informatique utilisant massivement le générateur d’admin de Symfony. Depuis qu’il existe je l’ai toujours trouvé vraiment pratique, en particulier depuis que le système de plugin existe et permet de facilement fabriquer et diffuser son propre thème (c.a.d. son propre moteur) pour ce générateur. Quelle classe de faire sortir des dizaines d’écrans de gestion de données efficaces et fonctionnels en quelques jours.
Et bien l’équipe de Symfony vient de rehéditer leur performance en sortant un tout nouvel « admin générator » avec pleins de trusc super dedans et utilisant complètement la nouvelle architecture de Symfony !
http://www.symfony-project.org/blog/2008/10/31/new-in-symfony-1-2-the-admin-generator
http://www.symfony-project.org/book/1_2/14-Generators
Dans Info et autres geekeries | 4 commentaires | Tags : symfony