无法在作曲家中找到所需的课程

时间:2017-04-27 16:59:04

标签: php namespaces composer-php autoload

以下是composer.json

{
  "name": "uci/uci-wp-webauth",
  "description": "Wordpress plugin for enabling WebAuth logging in for UCI users on a site-by-site basis.",
  "type": "project",
  "license": "GPL-3.0",
  "minimimum-stability": "stable",
  "autoload": {
    "psr-4": {
      "": "includes/"
    }
  },
  "require": {
    "uci/uci-lib": "dev-master#9097b4f"
  },
  "repositories": [
    {
      "type": "vcs",
      "url": "git@github.com:username/uci-lib"
    }
  ]
}

目录结构如下:

UCI
    -WebAuth.php

WebAuth类的结构是这样的:

namespace UCI;

class WebAuth {}

实现WebAuth的类/代码:

namespace WebAuth;

use UCI\WebAuth;

class Handler
{
   public function __construct()
    {
        $this->init();

        $this->webauth = new WebAuth();

由于某些原因,PHP继续报告:

Fatal error: Uncaught Error: Class 'UCI\WebAuth' not found

在设立作曲家项目之前,我已经这么做了很多次,但是这个真的让我难过。

1 个答案:

答案 0 :(得分:0)

你没有指定名称空间的PSR-4自动加载器,所以这基本上是错误的:

"autoload": {
  "psr-4": {
    "": "includes/"
  }
},

您必须指定要映射到文件夹的命名空间,但我宁愿用简单psr-4替换整个classmap事物:

"autoload": {
  "classmap:: ["includes/"]
},