Używam MSSQL i chcę zaimplementować funkcję WITH
(zgodnie z Using ZF2, create a WITH statement?). W tym celu rozszerzam klasę \Zend\Db\Sql\Select
dodając właściwości i metody wymagane do dodania funkcji WITH
. Jak mam teraz poinformować moją aplikację, aby używała tej klasy Select zamiast Zend?Jak przedłużyć Zend Db Sql Select?
Jednym ze sposobów jest określić autoload
w moim pliku composer.json:
"autoload": {
"psr-4": {
"Zend\\Db\\Sql\\": "vendor/rpk/Rpk/Zend/Db/Sql"
}
}
który będzie wyglądać w moim folderze dostawcy dla każdej rzeczy Sql
namespace zanim patrząc w folderze zend, ale wymaga to mnie do skopiowania całość zend wybierz klasę do mojej klasy select - jest to niepożądane, ponieważ moja klasa nie będzie korzystać z przyszłych poprawek do gałęzi zend.
Dlaczego musisz wymusić załadowanie go w tym obszarze nazw? ręcznie stwórz własną klasę, aby z niej korzystać .. – Andrew
Używam TableGateways w moich modelach. Te instancyjne 'Zend \ Db \ Sql \ Sql', które z kolei tworzą instancję' Zend \ Db \ Sql \ Select'. Aby uzyskać dostęp do mojej klasy select, musiałbym utworzyć nową klasę bramy tabeli i nową klasę sql, zastępując wszystkie wystąpienia z 'Sql' i' Select' w trakcie pracy. Mam nadzieję, że istnieje bardziej eleganckie rozwiązanie - być może kilka linii w module bootstrap lub globalnym pliku konfiguracyjnym? –