我已经创建了自己的作曲家包,但在尝试在包本身之外加载和使用它时遇到了一些问题(即在我的 laravel 应用程序中)。
我的作曲家文件如下所示:
{
"name": "joelwmale/rss-feed-php",
"type": "library",
"description": "RSS Feeds for PHP is a very small, lightweight, and easy-to-use library for consuming an RSS feed.",
"keywords": [
"rss",
"feed",
"php"
],
"homepage": "https://github.com/joelwmale/rss-feed-php",
"support": {
"issues": "https://github.com/joelwmale/rss-feed-php/issues",
"source": "https://github.com/joelwmale/rss-feed-php"
},
"license": "MIT",
"authors": [
{
"name": "Joel Male",
"email": "joel@joelmale.com",
"homepage": "https://www.joelmale.com",
"role": "Author"
}
],
"minimum-stability": "dev",
"require": {
"php": "^7.1",
"ext-simplexml": "*",
"nesbot/carbon": "^1.26.3"
},
"require-dev": {
"phpunit/phpunit": "^7.5",
"phpstan/phpstan": "^0.11.0@dev"
},
"autoload": {
"psr-4": {
"RSSFeedPHP\": "src/RSSFeedPHP/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"scripts": {
"test": [
"@phpunit",
"@phpcs"
],
"phpunit": "vendor/bin/phpunit",
"phpcs": "php-cs-fixer fix -v --diff --dry-run",
"phpstan": "phpstan analyse --configuration phpstan.neon --level 3 src tests"
},
"extra": {
"laravel": {
"providers": [
"RSSFeedPHP\Laravel\ServiceProvider"
]
}
}
}
我的主要班级位于:src/RSSFeedPHP/RSSFeedPHP.php
.但是,当我尝试在我的 laravel 应用程序中加载它时:
use joelwmaleRSSFeedPHP;
我得到:
"Class 'joelwmaleRSSFeedPHP' not found"
即使我已经在我的拉拉维尔应用程序中需要它。我可以看到供应商内部的joelwmale文件夹,也可以看到我的软件包及其作曲家文件。
composer.json 或我设置项目的方式一定有问题 - 但我无法弄清楚。
有什么想法吗?
编辑:存储库链接:https://github.com/joelwmale/rss-feed-php
"autoload": {
"psr-4": {
"RSSFeedPHP\": "src/RSSFeedPHP/"
}
},
这会在 RSSFeedPHP
命名空间下注册您的类。src/RSSFeedPHP/ 目录中的任何内容现在可以像在该命名空间中一样加载。尝试使用
use RSSFeedPHPRSSFeedPHP;
请注意,如果你的文件叫做RSSFeedPHP.php,你的类的名称必须RSSFeedPHP
,因此它的命名空间也必须RSSFeedPHP
,即
<?php
namespace RSSFeedPHP;
class RSSFeedPHP {}