저는 의존성 관리를 위해 작곡가를 사용하기 시작했습니다. 어떻게 자동 로딩을 위해 psr-4를 준수하지 않는지 파악하기가 어려워서 조언을 구하기 위해 여기에 있습니다. 이미 packagist에있는 임의의 값을 생성하는 클래스가 있습니다. 프로젝트 구조는 (필자는 composer.json 파일 A와 B를 표시 한) 다음입니다 :PHP 작곡가 autoload가 클래스를로드하지 않습니다
디렉토리 프로젝트
|classfile.php
A |composer.json
|vendor
|autoload.php
|ejfrancis
|php-random-value
B |composer.json
|RandomValue.php <--the class I want autoloaded
composer.json
{
"require": {
"ejfrancis/php-random-value": "dev-master"
}
}
composer.json의 B
{
"name": "ejfrancis/php-random-value",
"description": "Secure random value generator.",
"require": {
"php": ">=5.3.0"
},
"license": "MIT",
"autoload": {
"psr-4": {
"ejfrancis\\" : ""
}
}
}
마지막으로 ejfrancis 네임 스페이스를 선언하는 RandomValue.php 파일
namespace ejfrancis;
class RandomValue{
//foo
}
내가 '클래스 RandomValue 찾을 수 없습니다'오류가 발생하므로 올바르게로드되지 않습니다. 나는 psr-4를 따르지 않습니까, 아니면 제가 잘못하고있는 다른 것이 있습니까? 나는 또한 성공을 위해 "classmap" : ["RandomValue.php"]
같은 작곡가 클래스 맵을 사용하여 자동 로딩을 시도했습니다. 도움
업데이트에 대한 감사합니다 : 그것은 꽤 될 수 있도록 내가 composer.json의 B 파일에 '작곡가의 유효성 검사를'실행했습니다, 그것은 확실히 전화
오류가 발생한 코드는 어떻게 보이나요? 내가 보았을 때 올바른 네임 스페이스를 사용하지 못했을 가능성이 높습니다. – Sven
이 (가) 정확한 것처럼 보입니다. 코드는 '$ randomValue = new RandomValue'였습니다. 클래스 파일의 맨 위에 'use ejfrancis \ RandomValue as RandomValue'를 추가했는데 이제는 작동합니다. 이것을 전체 대답으로 추가하고 주석이 아닌 경우에는이를 올바르게 표시 할 것입니다. – ejfrancis