Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中加载composer类_Php_Laravel_Composer Php_Packagist - Fatal编程技术网

Php 在laravel中加载composer类

Php 在laravel中加载composer类,php,laravel,composer-php,packagist,Php,Laravel,Composer Php,Packagist,我正在尝试制作一个与laravel兼容的composer/packagist软件包。我用的是拉威尔5.5 我创建了一个包:floor9design/machine identifier。Composer将此下载到供应商/floor9design很好,但尽管阅读/通过谷歌搜索如何做到这一点,我不确定如何将其包括在我的laravel项目中 PHP Storm正确地拾取了类,并按预期自动完成 到目前为止,我还没有修改任何文件。如果我将以下内容添加到控制器: 使用Floor9design\Machine

我正在尝试制作一个与laravel兼容的composer/packagist软件包。我用的是拉威尔5.5

我创建了一个包:
floor9design/machine identifier
。Composer将此下载到
供应商/floor9design
很好,但尽管阅读/通过谷歌搜索如何做到这一点,我不确定如何将其包括在我的laravel项目中

PHP Storm正确地拾取了类,并按预期自动完成

到目前为止,我还没有修改任何文件。如果我将以下内容添加到控制器:

使用Floor9design\MachineIdentifier\MachineIdentifier

(与页面上的某些类用法一起)

PHPStorm会自动完成这一点(就像其他有效调用的类一样)

当我尝试加载此文件时,出现以下错误:

未找到类“Floor9design\MachineIdentifier\MachineIdentifier”

我看了很多教程,很多信息中似乎都没有这最后一步

我意识到有三种方法:

首先: 直接
包括_once
,这在工作时不是正常的方法

第二: Laravel5.5之前的方法(向
app.php
添加一些内容)

第三 Laravel 5.5进近和上升,自动检测某些东西

我故意说了一些东西,因为文档似乎在谈论
服务提供商
,我根本不明白它们是如何工作的

让我把这句话换成一个问题和一个后续问题:

问题:除了
include_once
,如何从Laravel中的
floor9design/machine identifier
加载MachineIdentifier类

问题2:如果答案是通过服务提供商,你能简单地解释一下它们之间的关系吗

谢谢

答复(如下所示) 在composer repo上,我错误地指定了PSR4命名空间,现在更正为:

    "autoload": {
    "psr-4": {
        "Floor9design\\MachineIdentifier\\": "src"
    }
}

前一个命名空间有一个
-
,这是一个非法字符。非常感谢lawrence cherone。

您的PSR4在软件包中有误

floor9design\\machine identifier\\”:“src”

将导致composer/autoload_psr4.php映射到:

'floor9design\\machine-identifier\\' => array($vendorDir . '/floor9design/machine-identifier/src'),
不是有效的类命名空间

您应该更改PSR4以匹配您的类命名空间:

Floor9design\\MachineIdentifier\\”:“src”


一旦你修复了这个问题,你就可以像平常一样在项目中的任何地方使用它。

感谢accept:),你可能会有兴趣从这个类中剥离出一些方法,以涵盖所有的系统信息:非常感谢,很高兴知道。我会复习这些。