적용된 질문/답변을 찾기 위해 최선을 다했지만 오토로더가 적합한 대답을 인식 할만큼 충분히 이해하지 못했습니다.첫 번째 작곡가 패키지 - 오토로더가 작동하지 않음
.
./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();
패키지의 작곡가 설치 후
{
"name": "Pva_agent",
"type":"library",
"description" : "query the pva agent",
"version":"0.1b",
"authors" : [
{
"name":"Ed Greenberg",
"email":"[email protected]"
}
],
"minimum-stability":"dev",
"require": {},
"autoload": {
"psr-0": {
"Pva_agent": "."
}
}
}
내 디렉토리 구조 :
나는 다음과 같은 composer.json와 패키지를 내 결과 :
[email protected] 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
[email protected] pva_project $
오토로더가 클래스를 찾아야하므로 '사용'문이 필요하지 않다고 생각 했습니까?
누군가가 문제가있는 곳을 말해 줄 수 있습니까? 귀하의 Pva_agent 라이브러리가 vendor/
디렉토리에 앉아서는 안
흠 ... 고마워, 루카스,하지만 당신의 대답은 더 많은 질문을 생성합니다 :) 작곡가는 웹에서 가져온 모든 자료를 넣는 것처럼 내 라이브러리를 공급 업체에 넣습니다. –
작곡가는 소스 코드를'vendor /'아래에 두어서는 안됩니다. 'vendor /'폴더를 들여다 보면 라이브러리의 경로가'vendor/composer/autoload_psr4.php'에 있어야합니다. 예를 들어 내 [PhiKettle 라이브러리] (https://github.com/loftdigital/PhiKettle)의 구조를 확인할 수 있습니다. 프로젝트를 복제하고'composer update'를 실행하십시오. –