2017-09-24 1 views
0

Ich möchte die Klasse Doctrine \ ORM \ Tools \ Pagination \ Paginator in einem Service in Symfony, so dass der Service eine Instanz für diese Klasse nicht existiert zurückgeben. Mit Best Practice sollte ich die Klasse direkt übergeben oder einen Service erstellen, der eine Instanz dieser Klasse zurückgibt.Symfony Passage Doctrine Paginator zu einem Service

Antwort

1

Ich empfehle, einen Service mit Factory Method pattern zu erstellen, um die Paginator-Klasse mit erforderlichen Parametern (Query/QueryBuilder und fetchJoinCollection) zu instanziieren und in Ihre Klasse zu injizieren. Wenn Sie diesen Ansatz verwenden, können Sie das Paginator-Objekt beim Testen des Dienstes durch die Einheit verspotten.

1

Erstellen Ihnen einen privaten Service als parametre

services: 
    your.service.name: 
     class: AppBundle\Services\YourClassName 
     arguments: ['@doctrine.services.paginator'] 

    doctrine.services.paginator: 
     class: Doctrine\ORM\Tools\Pagination\Paginator 
     public: false 
+0

Aber Paginator braucht Konstruktor parametre – spinoza