Bonjour

Voila le problème, je n'arrive pas à faire fonctionner les extension de Doctrine avec symfony 2, en particulier Timestampable.

Comment j'ai procédé :

Config du dépot :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
[gedmo-doctrine-extensions]
   git=http://github.com/l3pp4rd/DoctrineExtensions.git
 
[Stof-DoctrineExtensionsBundle]
   git=https://github.com/stof/StofDoctrineExtensionsBundle.git
   target=/bundles/Stof/DoctrineExtensionsBundle
Puis j'ai lancé la commande suivante pour installer les extensions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
./bin/vendors install --reinstall
Tout se déroule bien.

J'active ensuite les extensions dans les différents fichiers concernés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
# config.yml
stof_doctrine_extensions:
    default_locale: fr_FR
    orm:
        default:
            timestampable: true
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
# AppKernel.php
<?php
 
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
 
class AppKernel extends Kernel
{
	public function registerBundles()
	{
		$bundles = array(
			[...]
			new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
			[...]
        );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
# autoload.php
use Symfony\Component\ClassLoader\UniversalClassLoader;
use Doctrine\Common\Annotations\AnnotationRegistry;
 
$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
    'Gedmo'            => __DIR__.'/../vendor/doctrine-extensions/lib',
    'Stof'             => __DIR__.'/../vendor/bundles', 
    [...]
    ));
Et enfin je configure mon entité avec une nouvelle propriété
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
    /**
     * @var datetime $updatedAt
     *
     * @ORM\Column(name="updated_at", type="datetime")
     * @Gedmo:Timestampable(on="update")
     */
    private $updatedAt;
Après ça j'obtiens une fatal error :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Fatal error: Class 'Gedmo\Timestampable\TimestampableListener' not found in /Symfony/app/cache/dev/appDevDebugProjectContainer.php on line 203
Qu'ai-je fait de mal ?