php - 作曲家:找不到类,找不到我错的地方
问题描述
我有一个 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
我也尝试过:
- 删除声明
use \sineverba\supportdate as Supportdate;
- 直接打电话
$date = new \sineverba\supportdate\SupportDate()
如前所述,$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 被调用和实例化)。
谢谢您的支持
解决方案
有时我在快速打字时无意中添加了不可打印的字符。您遇到的症状适合:
- 一个,但不是另一个类似的类工作,这排除了 composer dump-autoload
- 它在输入另一个文件时起作用。
删除该行,然后慢慢重新键入会迫使您放弃先前的假设并从头开始。如果存在无法打印的字符、大小写差异或任何其他我们有时在开发过程中视而不见的奇怪问题,这将很有帮助。
推荐阅读
- reactjs - 在 Redux 中更新深度嵌套的状态
- kubernetes-helm - Minikube 上的 Helm:更新本地镜像
- r - 为 5 个不同变量的所有可能组合创建平均值
- javascript - 带有 if 语句的 JavaScript for 循环仅检查第一个变量
- angular - Ionic 4 如何从另一个页面获取数据
- jq - 如何转义管道字符“|” 用于jq中的格式化目的?
- android - 如何为 MaterialButton 指定自定义方法?
- java - 斐波那契数,在 Java 中使用单线?
- django - 为列“id”指定了多个默认值
- php - 如何动态更新 wp_options 序列化数组中的帖子 ID?