Bonjour,
Ayant pas mal de lenteurs avec PS 1.7.8.6 en local, j'aimerais override la méthode countByOrderState du fichier src/PrestaShopBundle/Entity/Repository/OrderInvoiceRepository.php afin de modifier la requête SQL (et plus précisément retirer le "AND oi.number > 0")
Si je comprends bien les bonnes pratiques de Prestashop, il suffit d'override le service. J'ai donc pu trouver dans le fichier src/PrestaShopBundle/Resources/config/services/bundle/repository.yml le service suivant:
services: ... prestashop.core.api.order_invoice.repository: class: PrestaShopBundle\Entity\Repository\OrderInvoiceRepository arguments: - "@doctrine.dbal.default_connection" - "%database_prefix%" ...
J'ai donc créé un module et rajouté un fichier à l'intérieur, voici mon modules/foo/config/services.yml:
services:
prestashop.core.api.order_invoice.repository:
class: foo\Entity\Repository\OrderInvoiceRepository
arguments:
- "@doctrine.dbal.default_connection"
- "%database_prefix%"
J'ai créé un fichier modules/foo/src/Entity/Repository/OrderInvoiceRepository.php
<?php namespace foo\Entity\Repository; use PrestaShopBundle\Entity\Repository\OrderInvoiceRepository as PrestaOrderInvoiceRepository; use Doctrine\DBAL\Connection; /** * Class OrderInvoiceRepository. */ class OrderInvoiceRepository extends PrestaOrderInvoiceRepository { public function countByOrderState(array $shopIds) { // Blablabla } }
Cependant, j'ai une erreur:
Attempted to load class "OrderInvoiceRepository" from namespace "foo\Entity\Repository". Did you forget a "use" statement for "PrestaShopBundle\Entity\Repository\OrderInvoiceRepository"?
[Symfony\Component\Debug\Exception\ClassNotFoundException 0]
J'ai essayé:
- de rajouter un extends vers la classe parente (code ci-dessus)
- de modifier le path de mon fichier et de le mettre à la racine plutôt que dans le fichier src
Malheureusement, ça ne change rien. Avez-vous une idée de pourquoi ? Je ne comprends pas bien ce que j'ai manqué 🤔
Merci d'avance !