2016-03-28 7 views
0

Ich arbeite mit einem CakePHP 3.0-Projekt, das mit einer sehr alten Version von SQL Server sprechen muss, und ich habe gefunden, dass es notwendig ist, die Sqlserver-Datenbanktreiberklasse sowie das SqlserverDialectTrait-Merkmal zu erweitern, um zu überschreiben ein paar Funktionen darin.Wohin mit der benutzerdefinierten Datenbanktreiberklasse im CakePHP 3.0-Projekt?

Dieser Teil, ich habe gut genug funktioniert. Wo ich feststecke, ist das: Wo platziere ich die neuen Klassendateien tatsächlich in meinem Projekt, damit ich sie im Parameter "driver" meiner Datenbankkonfiguration verwenden kann?

(Die gesamte Dokumentation, die ich dazu finden konnte, scheint sich eher auf CakePHP 2.0 als auf 3.0 zu beziehen, obwohl ich dankbar wäre, wenn jemand auf etwas hinweisen könnte, das ich übersehen habe.)

Antwort

0

Theoretisch können Sie sie überall dort platzieren, wo Composer sie laden kann, wenn Sie über einen vollständig qualifizierten Namen darauf verweisen, den Sie in der Option driver Ihrer Datenquellenkonfiguration festlegen können.

Um die Dinge Cake-ish zu halten, und den Treiber auch ohne Angabe des voll qualifizierten Namens ladbar zu haben, aber nur einen Klassennamen (dies funktioniert ähnlich an verschiedenen anderen Stellen wie Komponenten, Helfer, Tabellen, etc) sollte dem CakePHP Core Naming/Ordner-Schema folgen, dh Treiber gehen zu src/Database/Driver mit einem passenden Namespace, dh App\Database\Driver, und das Dialekt-Merkmal würde (ohne von dem CakePHP Classname-only loadability dingy betroffen zu sein) in src/Database/Dialect gehen.

Dann wäre es nicht nur mit den voll qualifizierten Namen arbeiten wie

'driver' => '\App\Database\Driver\MyCustomDriver' 

aber auch nur mit dem Klassennamen, wie

'driver' => 'MyCustomDriver' 

Siehe auch

+0

Danke. Es scheint nicht zu funktionieren, wenn nur der Klassenname wie beschrieben angegeben wird (d. H. Ich muss immer noch den voll qualifizierten Namen in meiner App-Konfiguration verwenden), aber alles andere tickt mit. Ich bin mir sicher, dass ich etwas Subtiles übersehen habe. –

+0

@DavidJProkopetz Auch wenn dies dokumentiert ist, wurde die Unterstützung für dieses Tool nicht implementiert ** https: //github.com/cakephp/cakephp/pull/8566** – ndm