2013-06-03 11 views
13

Domyślam się, że to naprawdę trywialne i głupie pytanie, ale nie wiem jak zainstalować rozszerzenia Doctrine - https://github.com/beberlei/DoctrineExtensions w moim projekcie Symfony2. Potrzebuję ich z powodu funkcji MIESIĄCA, ROK. Gdzie powinienem umieścić ich folder? I czy powinienem umieścić cały folder DoctrineExtensions? I gdzie to zapisać:Jak zainstalować rozszerzenia Doctrine w projekcie Symfony2?

<?php 

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

W osobnym pliku? Gdzie go umieścić i jak go nazwać?

A potem to wszystko muszę ich używać:

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'); 

Dziękuję bardzo z góry i jeszcze raz przepraszam za to pytanie, ale nie mogłem znaleźć samouczek (co sprawia, że ​​czuję się jeszcze bardziej winni, bo myślę, że to zbyt trywialne, gdy nie ma nawet samouczka).

Odpowiedz

28

Można go zainstalować przez kompozytora. Wystarczy dodać go do swojej composer.json a następnie php composer.phar update beberlei/DoctrineExtensions

"beberlei/DoctrineExtensions": "*", 

Następnie można zarejestrować funkcje do 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

Dziękuję bardzo! :) To się udało! – Faery

+0

Wats funkcję dla "DZIEŃ" ?? – Shaun

+0

[DAY] (http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_day) jest synonimem DAYOFMONTH() –

1

Jest też ładny widelec przez wiredmedia z @beberlei który zawiera jeszcze więcej datetime_functions jak DATA() się:

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.

U naczej Wersja 0.1 obejmuje tylko widelec, a nie wszystkie funkcje. Czekamy na stabilnym wydaniu:

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

Ale można dodać je ręcznie unitl stabilna wersja jest.

Powiązane problemy