首页 > 解决方案 > 作曲家:找不到类,找不到我错的地方

问题描述

我有一个 php 项目。

这是 composer.json

{
    "require": {
        "bcosca/fatfree": "3.6.4",
        "sineverba/domoticz-api": "^1.0",
        "sineverba/supportdate":"dev-v1.0.0-alpha"
    },
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@github.com:sineverba/supportdate.git"
        }
    ]
}

sineverba\domotic-api发布在 packagegist 上。sineverba\supportdate不(今晚开始)。

在文件夹Script.php下的文件中app/models

app | models Script.php

我需要我的 2 个库(domoticz-api 和 supportdate)

我有

<?php

/**
 * Main script class
 * 
 * @since 1.0.0
 */

namespace models;
use \sineverba\domoticzapi as Api;
use \sineverba\supportdate as Supportdate;

class Script() {

    //some property here

    public function __construct() {

        $api = new Api\Client( $this->_user,$this->_password,$this->_host );
        $date = new Supportdate\SupportDate();

    }
}

$api 对象已正确创建。$date 我得到错误Class 'sineverba\supportdate\SupportDate' not found

我也尝试过:

如前所述,$api(在 packagist 上发布的 sineverba\domoticz-api 的对象)已正确实例化,因此 Fat Free Framework(我使用的框架)的自动加载模式工作正常。

您也可以在 composer.json 中看到domoticz-api并且supportdate非常相似。

在我的网络服务器中,两个库的文件夹都正确存在于 /vendor/sineverba/domoticz-api 和 /vendor/sineverba/supportdate 下

我确实尝试过在我的supportdate库中创建一个 index.php

<?php

require("vendor/autoload");

$date = new \sineverba\supportdate\SupportDate();

它有效。

因此,我们可以排除库/作曲家错误和 F3 框架错误(因为 API 被调用和实例化)。

谢谢您的支持

标签: phpcomposer-php

解决方案


有时我在快速打字时无意中添加了不可打印的字符。您遇到的症状适合:

  1. 一个,但不是另一个类似的类工作,这排除了 composer dump-autoload
  2. 它在输入另一个文件时起作用。

删除该行,然后慢慢重新键入会迫使您放弃先前的假设并从头开始。如果存在无法打印的字符、大小写差异或任何其他我们有时在开发过程中视而不见的奇怪问题,这将很有帮助。


推荐阅读