在CakePHP 3.0项目中,在何处放置自定义数据库驱动程序类?

在CakePHP 3.0项目中,在何处放置自定义数据库驱动程序类?,cakephp,naming-conventions,cakephp-3.0,conventions,Cakephp,Naming Conventions,Cakephp 3.0,Conventions,我正在处理一个CakePHP 3.0项目,该项目需要与非常旧版本的SQL Server对话,我发现有必要扩展SQL Server数据库驱动程序类以及SQL Server驱动程序,以便覆盖其中的几个函数 那部分,我已经做得很好了。我陷入困境的地方是:我应该将新的类文件放在我的项目中的什么位置,以便在数据库配置的“驱动程序”参数中使用它们 (我能找到的关于这类事情的所有文档似乎都引用CakePHP 2.0,而不是3.0,不过如果有人能指出我忽略的任何内容,我将不胜感激。)理论上,当您通过完全限定的名

我正在处理一个CakePHP 3.0项目,该项目需要与非常旧版本的SQL Server对话,我发现有必要扩展SQL Server数据库驱动程序类以及SQL Server驱动程序,以便覆盖其中的几个函数

那部分,我已经做得很好了。我陷入困境的地方是:我应该将新的类文件放在我的项目中的什么位置,以便在数据库配置的“驱动程序”参数中使用它们


(我能找到的关于这类事情的所有文档似乎都引用CakePHP 2.0,而不是3.0,不过如果有人能指出我忽略的任何内容,我将不胜感激。)

理论上,当您通过完全限定的名称引用时,您可以将它们放在composer可以加载它们的任何地方,您可以在数据源配置的
驱动程序
选项中设置

为了让事情变得简单,并且即使不指定完全限定名,也可以加载驱动程序,而只需指定类名(这在组件、助手、表等其他地方也可以使用),您应该遵循CakePHP核心命名/文件夹模式,ie驱动程序进入带有匹配名称空间的
src/Database/Driver
,ie
App\Database\Driver
,方言特征(不受CakePHP类名仅可加载性的影响)将进入
src/Database/dialent

然后,它将不仅适用于完全限定的名称,如

'driver' => '\App\Database\Driver\MyCustomDriver'
但是也只有类名,比如

'driver' => 'MyCustomDriver'
另见


谢谢。当只指定所描述的类名(即,我仍然必须在我的应用程序配置中使用完全限定名)时,它似乎不起作用,但其他一切都在进行中。我肯定我忽略了一些微妙的东西。@DavidJProkopetz尽管有文档记录,但对它的支持并没有真正实现