Laravel 自定义包加载问题
Laravel custom package loading issue
我有个小问题。我正在尝试制作一个 Laravel 包,但无法加载。每当我尝试在 config/app.php 中添加它的提供者时,我得到:
Error class 'Something\HttpRequest\HttpRequestServiceProvider' not found
目前它只有一个文件,位于 "vendor/something/http-request/src/HttpRequestServiceProvider"。我怀疑与路径有关,但我不确定。
我试过了
composer dump-autoload
但它没有被映射。
编辑:
我还将它发布到 packagist 并通过 composer 安装它,以检查它是否有效(好吧,它没有 :D)。
服务提供商存根如下所示:
<?php
namespace Something\HttpRequest;
use Illuminate\Support\ServiceProvider;
class HttpRequestServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
}
所以基本上它只是 Laravel 生成的一个。我怀疑这是问题的根源,但谁知道呢。
有什么想法吗?
仔细检查各处的命名空间。
不要忘记将您的 class 添加到 composer.jsom
,这样 Laravel 就可以 autoload
它:
"autoload": {
"classmap": [
"database",
"app/custom"
],
"files": [
"app/someFolder/customHelpers.php"
]
运行 composer dumpauto
之后。如果它不起作用,请尝试 运行 composer dumpauto -o
(带有 -o
标志),有时它会有所帮助。
更新
当您将您的包上传到 packagist 并使用 composer 安装它时,您需要将 autoload
部分添加到包的 composer.json
,例如:
"autoload": {
"psr-4": {
"YourName\YourPackage\": "src/"
}
}
我有个小问题。我正在尝试制作一个 Laravel 包,但无法加载。每当我尝试在 config/app.php 中添加它的提供者时,我得到:
Error class 'Something\HttpRequest\HttpRequestServiceProvider' not found
目前它只有一个文件,位于 "vendor/something/http-request/src/HttpRequestServiceProvider"。我怀疑与路径有关,但我不确定。
我试过了
composer dump-autoload
但它没有被映射。
编辑:
我还将它发布到 packagist 并通过 composer 安装它,以检查它是否有效(好吧,它没有 :D)。
服务提供商存根如下所示:
<?php
namespace Something\HttpRequest;
use Illuminate\Support\ServiceProvider;
class HttpRequestServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
}
所以基本上它只是 Laravel 生成的一个。我怀疑这是问题的根源,但谁知道呢。
有什么想法吗?
仔细检查各处的命名空间。
不要忘记将您的 class 添加到 composer.jsom
,这样 Laravel 就可以 autoload
它:
"autoload": {
"classmap": [
"database",
"app/custom"
],
"files": [
"app/someFolder/customHelpers.php"
]
运行 composer dumpauto
之后。如果它不起作用,请尝试 运行 composer dumpauto -o
(带有 -o
标志),有时它会有所帮助。
更新
当您将您的包上传到 packagist 并使用 composer 安装它时,您需要将 autoload
部分添加到包的 composer.json
,例如:
"autoload": {
"psr-4": {
"YourName\YourPackage\": "src/"
}
}