2013-06-03 21 views
13

我想這是一個非常微不足道的問題,但我不知道如何在我的Symfony2項目中安裝Doctrine Extensions - https://github.com/beberlei/DoctrineExtensions。我需要他們,因爲MONTH,YEAR職能。我應該在哪裏放他們的文件夾?我應該把整個DoctrineExtensions文件夾?並寫在這裏:如何在Symfony2項目中安裝Doctrine Extensions

<?php 

$classLoader = new \Doctrine\Common\ClassLoader('DoctrineExtensions', "/path/to/extensions"); 
$classLoader->register(); 

在一個單獨的文件?在哪裏放置以及如何調用它?

,然後這一切我需要使用它們:

public function findOneByYearMonthDay($year, $month, $day) 
{ 
    $emConfig = $this->getEntityManager()->getConfiguration(); 
    $emConfig->addCustomDatetimeFunction('YEAR', 'DoctrineExtensions\Query\Mysql\Year'); 
    $emConfig->addCustomDatetimeFunction('MONTH', 'DoctrineExtensions\Query\Mysql\Month'); 
    $emConfig->addCustomDatetimeFunction('DAY', 'DoctrineExtensions\Query\Mysql\Day'); 

非常感謝你提前和遺憾再次提出這個問題,但我無法找到一個教程(這讓我感覺更更內疚,因爲我猜這是太瑣碎了,甚至沒有教程)

回答

28

您可以通過作曲家安裝它。只需將它添加到您的composer.json然後php composer.phar update beberlei/DoctrineExtensions

"beberlei/DoctrineExtensions": "*", 

然後你就可以註冊功能,以您的ORM

doctrine: 
    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     entity_managers: 
     default: 
      auto_mapping: true 
      dql: 
      datetime_functions: 
       MONTH: DoctrineExtensions\Query\Mysql\Month 
       YEAR: DoctrineExtensions\Query\Mysql\Year 
+0

非常感謝! :)這工作! – Faery

+0

Wats「DAY」的功能? – Shaun

+0

[DAY](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_day)是DAYOFMONTH()的同義詞 –

1

還有就是通過@beberlei wiredmedia一個很好的叉子,其中包括更datetime_functions像DATE()本身:

This is an unsanctioned fork of https://github.com/beberlei/DoctrineExtensions since he seems to have gone off grid and is not merging pull requests.

ù不幸的是,版本0.1只包含分叉而不是所有的功能。 我們正在等待一個穩定版本:

Please create taged stable version for set in my composer #2

但是你可以手動添加它們unitl一個穩定的版本出來了。

相關問題