在laravel中加载一个作曲家类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在laravel中加载一个作曲家类相关的知识,希望对你有一定的参考价值。

我正在尝试制作兼容laravel的composer / packagist包。我正在使用Laravel 5.5。

我创建了一个包:floor9design/machine-identifier。 Composer下载到vendors/floor9design很好,但尽管阅读/谷歌搜索如何做到这一点,我不知道如何将这包括在我的laravel项目中。

php Storm正在正确地提升课程,按照预期自动完成。

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

use Floor9design\MachineIdentifier\MachineIdentifier;

(以及页面上的一些类用法)。

PHP风暴自动完成此功能(与其他有效调用的类一样)。

当我尝试加载它时,会出现以下错误:

Class 'Floor9design\MachineIdentifier\MachineIdentifier' not found

我已经浏览了大量的教程,并且很多信息似乎都缺少这最后一步。

我意识到有三种方法:

第一:直接qazxsw poi,虽然工作,但不是正常的方法

其次:Pre-laravel 5.5方法(在include_once上添加一些东西)

第三,Laravel 5.5进近,自动检测某些东西。

我故意说了些什么,因为文档似乎谈论app.php,我根本不知道它们是如何工作的。

让我把它改成一个问题和一个后续问题:

问题:除了ServiceProviders之外,如何从Laravel中的include_once加载MachineIdentifer类。

问题2:如果答案是通过服务提供商,您可以简单地解释它们之间的关系。

谢谢

答案(如下所述)

在作曲家回购中,我错误地指定了PSR4名称空间,现在更正为:

floor9design/machine-identifier

之前的命名空间有一个 "autoload": { "psr-4": { "Floor9design\\MachineIdentifier\\": "src" } } ,这是一个非法字符。非常感谢lawrence-cherone。

答案

您的PSR4包装错误

-

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

floor9design\\machine-identifier\\": "src"

哪个不是有效的类命名空间。

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

'floor9design\\machine-identifier\\' => array($vendorDir . '/floor9design/machine-identifier/src'),

一旦你修复了它,你就可以在项目的任何地方正常使用它。

以上是关于在laravel中加载一个作曲家类的主要内容,如果未能解决你的问题,请参考以下文章

在扩展片段活动android的类中加载soundpool

Composer 更新 - 无法在 http://packagist.org 中加载软件包 shopware/shopware:

只有在被选中时才在 ViewPager 中加载片段

Xampp:作曲家安装问题:模块 openssl 已在第 0 行的未知中加载

从mysql的片段中加载ListView

在一个活动中加载单个片段两次,从本地json文件中加载2个问题