【发布时间】:2020-03-22 03:24:11
【问题描述】:
我无法使用 composer 加载本地类。
目录结构及关键文件如下:
/vendor/pisukes/hello-world/composer.json
/vendor/pisukes/hello-world/src/HelloWorld.php
/vendor/autoload.php
/html/index.php
/composer.json
hello-world下的Composer.json:
{
"name": "pisukes/hello-world",
"type": "library",
"minimum-stability": "dev",
"autoload": {
"psr-4": {
"HelloWorld\\": "src/"
}
}
}
根目录下的Composer.json:
{
"repositories": [
{
"type": "path",
"url": "./vendor/pisukes/hello-world"
}
],
"require": {
"pisukes/hello-world": "@dev"
}
}
“composer update”的输出显示没有错误:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
HelloWorld.php:
namespace HelloWorld;
class SayHello
{
public static function world()
{
return 'Hello World!';
}
}
index.php:
require_once '../vendor/autoload.php';
use HelloWorld\SayHello;
echo SayHello::world();
当我运行“php index.php”时,我得到一个类未找到错误:
PHP 致命错误:未捕获错误:类 'HelloWorld\SayHello'
如果我将 HelloWorld.php 移动到 /html 目录并相应地更新 require_once 语句,我会得到预期的输出...
【问题讨论】:
标签: composer-php