Jump to content

Impossible d'overrider le OrderInvoiceRepository.php


Recommended Posts

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 !

Edited by PrestaPaul (see edit history)
Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...