我正在使用MSSQL並希望實現WITH
函數(根據Using ZF2, create a WITH statement?)。爲此,我擴展了\Zend\Db\Sql\Select
類,添加了添加WITH
函數所需的屬性和方法。現在我該如何告訴我的應用程序使用這個Select類而不是Zend?如何擴展Zend Db Sql Select?
一種方法是在我composer.json文件中指定的autoload
:
"autoload": {
"psr-4": {
"Zend\\Db\\Sql\\": "vendor/rpk/Rpk/Zend/Db/Sql"
}
}
將看在我的供應商文件夾中任何Sql
命名空間的東西看在Zend的文件夾之前,但是這需要我來複制zend select類的全部內容放入我的選擇類中 - 這是不可取的,因爲我的類不會從將來的補丁中受益於zend分支。
爲什麼你甚至需要強制它加載該命名空間?手動實例化你自己的類來使用它.. – Andrew
我在我的模型中使用TableGateways。這些實例化'Zend \ Db \ Sql \ Sql',然後實例化'Zend \ Db \ Sql \ Select'。爲了讓我選擇的類被使用,我將不得不創建一個新的表格網關類和一個新的sql類,在我去的時候替換'Sql'和'Select'的所有實例。我希望有一個更優雅的解決方案 - 可能是模塊引導類或全局配置文件中的少數幾行? –