在我vendor
目录中的项目中,我创建了一个名为Hello
的新目录,并创建了一个名为HelloWorld.php
的新类Hello\Test
。然后在Hello
的根目录中,我使用默认元数据(composer.json
,author
,license
,desc
)创建了required
,并添加了自动加载PSR-4 Hello\\Test\\
。
那么我自动加载我的包后需要做什么呢。我查看了一些Symfony组件,它们的composer.json
包和配置是相同的。
是否可以像这样从vendor
自动加载我的本地包?
目录结构:
|-my_project
|-composer.json
|---vendor
|-------composer
|-------autoload.php
|-------Hello
|-----------composer.json
|-----------HelloWorld.php
./供应商/你好/ 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 Hello\Test;
在index.php
内{i} include 'vendor/autoload.php
和root composer.json
{
"autoload": {
"psr-4": {
"": "src/",
"Hello\\Test\\": "./vendor/Hello"
}
},
"require": {
"Hello/Test": "*"
}
}
composer update
答案 0 :(得分:4)
好!这么晚才回复很抱歉。 你只需要一个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 Hello\Test;
class HelloWorld {
// your methods goes here
}
运行一个composer self update以使最新的作曲家运行composer update
,现在它应该被添加到你的vendor / composer / autoload_psr4.php文件中