在vendor
目录中的项目中,我创建了一个名为 Hello
的新目录,并使用命名空间 HelloTest
创建了一个新的类HelloWorld.php
。然后在Hello
根目录中,我创建了一个具有默认元数据(author
,license
,desc
,required
)的composer.json
,并添加了自动加载PSR-4 Hello\Test\
。
那么接下来我需要做什么才能自动加载我的包裹。我查看了一些Symfony组件,它们的composer.json
包和配置是相同的。
是否可以像这样从vendor
自动加载我的本地包?
目录结构:
|-my_project
|-composer.json
|---vendor
|-------composer
|-------autoload.php
|-------Hello
|-----------composer.json
|-----------HelloWorld.php
./vendor/Hello/composer.json
{
"name": "Zend/Hello",
"description": "My test package",
"license": "MIT",
"authors": [
{
"name": "Zend Zend",
"email": "test@example.com"
}
],
"autoload": {
"psr-4": {
"Hello\Test\": ""
}
}
}
我的HelloWorld.php课有namespace HelloTest;
在里面index.php
我做include 'vendor/autoload.php
和根作曲家.json
{
"autoload": {
"psr-4": {
"": "src/",
"Hello\Test\": "./vendor/Hello"
}
},
"require": {
"Hello/Test": "*"
}
}
composer update
好的!抱歉回复晚了。你只需要一个 composer.json 来完成这项工作。主项目目录中的那个。
尝试使用这个:
{
"name": "Zend/Hello",
"description": "My test package",
"license": "MIT",
"authors": [
{
"name": "Zend Zend",
"email": "test@example.com"
}
],
"autoload": {
"psr-4": {
"Hello\Test\": "vendor/Hello"
}
}
}
你的HelloWorld.php文件应该是这样的:
<?php
namespace HelloTest;
class HelloWorld {
// your methods goes here
}
运行作曲家自我更新以获取运行composer update
的最新作曲家,现在应该将其添加到您的供应商/作曲家/autoload_psr4.php文件中