【发布时间】:2016-06-30 23:05:44
【问题描述】:
我已尽力找到适用的问题/答案,但我认为我对自动加载器的了解不够,无法识别合适的答案。
我有一个包含以下 composer.json 的包:
{
"name": "Pva_agent",
"type":"library",
"description" : "query the pva agent",
"version":"0.1b",
"authors" : [
{
"name":"Ed Greenberg",
"email":"ed@precisionpros.com"
}
],
"minimum-stability":"dev",
"require": {},
"autoload": {
"psr-0": {
"Pva_agent": "."
}
}
}
composer安装包后我的目录结构:
.
./vendor
./vendor/autoload.php
./vendor/Pva_agent
./vendor/Pva_agent/Agent.php
./vendor/Pva_agent/composer.json
./vendor/Pva_agent/.gitignore
./vendor/composer
./vendor/composer/autoload_psr4.php
./vendor/composer/autoload_real.php
./vendor/composer/autoload_classmap.php
./vendor/composer/autoload_namespaces.php
./vendor/composer/installed.json
./vendor/composer/autoload_static.php
./vendor/composer/ClassLoader.php
./vendor/composer/LICENSE
./composer.lock
./composer.json
./test_pva_agent.php
我的测试程序:
<?php
require_once('vendor/autoload.php');
use Pva_agent\Agent;
$agent = new Agent();
我的结果:
edg@arthur pva_project $ php test_pva_agent.php
PHP Fatal error: Class 'Pva_agent\Agent' not found in /home/edg/PhpstormProjects/pva_project/test_pva_agent.php on line 6
PHP Stack trace:
PHP 1. {main}() /home/edg/PhpstormProjects/pva_project/test_pva_agent.php:0
edg@arthur pva_project $
我认为我不需要'use'语句,因为自动加载器应该找到类,对吧?
谁能告诉我问题出在哪里?
谢谢,
艾德·格林伯格
【问题讨论】:
标签: php composer-php autoload