我正在使用CakePHP 3.0项目,该项目需要与非常旧版本的SQL Server进行通信,我发现有必要扩展Sqlserver数据库驱动程序类以及SqlserverDialectTrait特性,以便覆盖其中的几个功能。
那部分,我已经运作良好了。我被困在哪里:我在哪里实际将新类文件放在我的项目中,以便我可以在我的数据库配置的“驱动程序”参数中使用它们?
(我在做这类事情时能够找到的所有文档似乎都是指CakePHP 2.0,而不是3.0,但如果有人能指出我忽略的任何内容,我将不胜感激。)
答案 0 :(得分:1)
理论上,当您通过完全限定名称引用它时,您可以将它们放置在编辑器可以加载它们的任何位置,您可以在数据源配置的driver
选项中设置该名称。
为了保持Cake-ish,并且即使没有指定完全限定名称也可以加载驱动程序,但只是一个类名(这在各种其他地方类似,如组件,帮助器,表等),你应该遵循CakePHP核心命名/文件夹模式,即驱动程序进入具有匹配命名空间的src/Database/Driver
,即App\Database\Driver
,并且方言特征(虽然不受CakePHP类名唯一可加载性东西的影响)将会进入src/Database/Dialect
。
然后它不仅可以使用像
这样的完全限定名称'driver' => '\App\Database\Driver\MyCustomDriver'
但也只有classname,比如
'driver' => 'MyCustomDriver'
另见