CakePHP TinyAuth适配器实现

问题描述 投票:0回答:1

我正在使用TinyAuth CakePHP插件来管理我的网站上的权限。

他们也有一个使用CakePHP 3.7+使用数据库来管理ACL(访问控制列表)的插件,但是该插件不适用于CakePHP 4.0

我目前正在编写自定义适配器来管理数据库的授权,如建议的here

我的主要问题是:我不知道应该在哪里编写新适配器?

当前,它们位于TinyAuth供应商文件夹中,我将它们导入到app_local.php中,如下所示:

 'TinyAuth' => [
        'multiRole' => true,
        'aclAdapter' => TinyAuth\Auth\AclAdapter\DbAclAdapter::class,
    ],

这正在起作用。我没有设法使它们在我的项目文件夹中工作,因为我无法导入类(???)

这是一种安全/好的方法吗?对我来说,创建自己的插件或在其他地方编写php类并将其导入会更好吗?在CakePHP 4 app_local.php中导入文件安全吗?

我真的是PSR-4和CakePHP框架标准的新手,很抱歉,如果我的问题很愚蠢,但是我真的想正确地做事情...

提前谢谢您

cakephp conventions psr-4 cakephp-4.x
1个回答
0
投票

除非您正在调试,否则您永远不要将内容放入vendor文件夹中,否则,您将面临一些非常非常奇怪的极端情况,这些情况绝对无法以其他任何方式解决,但是这种情况极为罕见。当依赖关系正在更新时,您将失去所做的更改。

如果您想了解PSR-4,有无穷的资源,例如从官方网站开始:https://www.php-fig.org/psr/psr-4/

所有这些,基于官方应用程序模板的默认CakePHP 4.x应用程序的快速示例:

  • 文件路径:src/TinyAuth/Auth/AclAdapter/DbAclAdapter.php
  • 名称空间:App\TinyAuth\Auth\AclAdapter
  • 类别名称:DbAclAdapter
  • 用法:'aclAdapter' => \App\TinyAuth\Auth\AclAdapter\DbAclAdapter::class,

无论您是在引用类时使用完全限定名称(需要加反斜杠),还是使用use语句导入名称,从技术角度来看实际上都没有关系,它在任何PHP中都可以使用文件。

无论您将自定义代码直接放在应用程序中,还是放在插件或常规库中,实际上都取决于您打算如何使用它。如果您想重用它或将其公开,则可能需要将其放在插件/库中。

© www.soinside.com 2019 - 2024. All rights reserved.