postheadericon preExecute() dans les controller Symfony2

Contrairement à symfony1.x ou à Zend, Symfony2 ne propose pas par défaut un méthode, qui si elle est définie, permet d'exécuter un morceau de code avant toutes les actions d'un controller.

<?php
/** 
 * prototype d'une telle fonction dans symfony 1.x
 * dans un fichier controller, par exemple :
 * /app/frontend/modules/index/actions/actions.class.php
 * 
 */
class indexActions extends sfActions
    public function preExecute()
    {
        // Le code écrit ici sera executé avant chacune des actions de ce controlleur.
    }
}
?>
 
<?php
/** 
 * prototype d'une telle fonction dans Zend 1.x
 * dans un fichier controller, par exemple :
 * /application/controller/indexController.php
 */
class IndexController extends Zend_Controller_Action
{
    public function init()
    {
        // Le code écrit ici sera executé avant chacune des actions de ce controlleur.
    }
}
?>

Toutefois, Symfony2 propose un mécanisme d'event suffisamment avancé pour reproduire un tel comportement.

Lire la suite...

postheadericon Symfony Form utilisation avancée des Validateurs

Dans le cadre d'un projet Symfony, je me suis heurté à une problématique d'apparence simple : l'utilisateur doit pouvoir changer ses informations personnelles, dont son mot de passe.

La difficulté est apparue au moment de mettre en place les validateurs de formulaire.

Lire la suite...

postheadericon Doctrine 2 et Zend Framework

Fidèle utilisateur de doctrine depuis plusieurs années, j'ai réussi à l'imposer dans mon entreprise en tant que 'best practice' dans le développement Php au quotidien.

La grande majorité de nos projets sont fait en Zend Frameork (ZF), principalement pour l'utilisation de ZendAmf. Nous avons donc logiquement utilisé Doctrine en complément de ZF.

Avec l'avènement de Doctrine 2, nous nous intéressons au changement Doctrine 1.x vers Doctrine 2.

Lire la suite...

postheadericon Doctrine - cohérence du charset

Sur un projet professionnel, j'ai été confronté à deux erreurs qui m'ont donné beaucoup de fil à retordre et je souhaite, ici, faire un retour d'expérience à ce sujet.

Contexte

Il s'agit d'un environnement ZendFramework couplé à Doctrine.
Plus précisément, on se trouve dans un service ZendAmf.
Le service en question expose une méthode permettant de changer son mot de passe.
Pour changer le mot de passe, j'utilise le code suivant :

$user = Doctrine::getTable('User')->findOneByEmail($email);
$user->password = $newPassword;
$user->save();

Et là, c'est le drame : le serveur MySQL me renvoi l'erreur suivante :
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

Lire la suite...

postheadericon Synology : régénération d'un certificat SSL

NAS Synology 409+

Suite à la mise à jour de mon Synology avec le dernier firmware, le certificat SSL du NAS a disparu.
Je décris ci dessous les différentes étapes nécessaires à la re-génération d'un certificat SSL.

Lire la suite...