【问题标题】:Using CakePHP 3.0 plugin使用 CakePHP 3.0 插件
【发布时间】:2015-03-28 23:59:18
【问题描述】:

我目前正在构建一个版本为 3.0.0-RC1 的新 CakePHP 应用程序,并尝试安装和使用 jasig/phpCAS 插件。使用this guide,,我从命令提示符运行了以下命令:composer require jasig/phpcas

这会正确地将 jasig/phpcas 文件复制到我的应用程序的供应商目录中,但是指南中说应该更新的其他文件之一 (vendor/cakephp-plugins.php) 甚至不存在。

我很难访问该插件。我希望能够调用它的静态方法,但我不断收到以下形式的错误:Error: Class 'App\Controller\phpCAS' not found。 (错误中的确切目录会根据我调用该方法的位置而有所不同。)

我不知道这是因为没有 cakephp-plugins.php 文件,还是我没有正确调用插件。我的理解是,如果加载了插件,我应该能够像这样调用它的静态方法:phpCAS::methodName()

【问题讨论】:

  • 收到错误时,请始终显示complete、exact错误信息!
  • 感谢您的建议。我没有包括它,因为从字面上看,错误所说的唯一内容是“找不到类___”,但我已将其添加到上面以防万一。
  • 在这种情况下特别有用,因为它清楚地表明了您错误地定位课程的地点和方式。

标签: cakephp-3.0 phpcas


【解决方案1】:

首先jasig/phpcas 不是CakePHP 插件。 vendor/cakephp-plugins.php 文件是由 CakePHP 插件安装程序创建的,所以如果你没有看到这样的文件,你似乎还没有安装任何插件,或者你没有使用最新版本的安装程序,因为最近才介绍了如何创建此文件。

关于找不到类的错误,您缺少前导命名空间分隔符 (\phpCAS::methodName()) 来访问全局命名空间中的类,您分别缺少正确的导入 (use phpCAS;),这将使当前命名空间中可用的类。

如果您不熟悉命名空间,您可能需要从:http://php.net/namespaces

【讨论】:

  • 感谢您的回答。我的 Cake 副本有插件安装程序(假设是 vendor\cakephp\plugin-installer),我在 CakePHP 3.0 文档中提供的 packagist 链接中找到了 jasig/phpcas 插件。在该区域,一切似乎都运行良好。添加导入似乎对我来说已经解决了问题。感谢您的帮助;我花了很多时间试图研究是否需要导入,以及如何进行,但找不到任何东西。
  • @Jozomby 更新了我关于插件安装程序的答案,这非常具有误导性。 packagist 是全球作曲家存储库,它适用于一切!它使用作曲家,而不仅仅是 CakePHP(及其插件),它恰好是使用作曲家作为其依赖管理器的众多项目之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多