在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中加载一个作曲家类的主要内容,如果未能解决你的问题,请参考以下文章
Composer 更新 - 无法在 http://packagist.org 中加载软件包 shopware/shopware: