4

以下是問題:我沒有成功安裝symphony 2的doctrine擴展,特別是timestampable。我跟着this tutorial在Symfony 2項目中安裝Doctrine擴展會導致致命錯誤

我如何着手:

我在DEPS文件中添加此行:

[gedmo-doctrine-extensions] 
    git=http://github.com/l3pp4rd/DoctrineExtensions.git 

[Stof-DoctrineExtensionsBundle] 
    git=https://github.com/stof/StofDoctrineExtensionsBundle.git 
    target=/bundles/Stof/DoctrineExtensionsBundle 

然後我進入線

./bin/vendors install --reinstall 

一切都很好。

然後,我在有關文件

# config.yml 
stof_doctrine_extensions: 
    default_locale: fr_FR 
    orm: 
     default: 
      timestampable: true 


# AppKernel.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(), 
      [...] 
     ); 

# autoload.php 
use Symfony\Component\ClassLoader\UniversalClassLoader; 
use Doctrine\Common\Annotations\AnnotationRegistry; 

$loader = new UniversalClassLoader(); 
$loader->registerNamespaces(array(
    'Gedmo'   => __DIR__.'/../vendor/gedmo-doctrine-extensions/lib', 
    'Stof'    => __DIR__.'/../vendor/bundles', 
    [...] 
    )); 

最後激活的擴展,我添加批註我的實體

/** 
* @var datetime $updatedAt 
* 
* @ORM\Column(name="updated_at", type="datetime") 
* @Gedmo:Timestampable(on="update") 
*/ 
private $updatedAt; 

但我有此錯誤:

Fatal error: Class 'Gedmo\Timestampable\TimestampableListener' not found in /Symfony/app/cache/dev/appDevDebugProjectContainer.php on line 203

我該怎麼辦錯了?

+0

本教程說你必須使用'\'而不是':'。這樣做並清除緩存。 – greg0ire

+0

@ greg0ire。我不敢相信我在那個愚蠢的錯誤上失去了2個小時。感謝所有。這是有效的... – JiDai

+0

我在我的評論中嘗試了一些格式,但反斜槓似乎逃避反向,我的意思是「\」而不是':' – greg0ire

回答

1

使用@Gedmo\Timestampable(on="update")並在註冊名稱空間時放置正確的路徑似乎可以解決問題。

0

對於Symfony 2.0.x和Doctrine 2.1.x.你需要指定擴展的兼容版本,這是對我有用的工具:

[DoctrineExtensions] 
    git=https://github.com/l3pp4rd/DoctrineExtensions.git 
    target=/gedmo-doctrine-extensions 
    version=origin/doctrine2.1.x 

[StofDoctrineExtensionsBundle] 
    git=https://github.com/stof/StofDoctrineExtensionsBundle.git 
    target=/bundles/Stof/DoctrineExtensionsBundle 
    version=1.0.2