힌트를 사용하여 의 Jakub Zalas의 답변 (옵션 2)에서 문제를 해결할 수있었습니다. 복사 작곡가의이 autoload_classmap-orig.php
에 autoload_classmap.php
작업
- :에
생각입니다.
- 클래스를 재정렬/변경하려면
composer.json
필요에 따라
- orig 클래스 맵에 대한 새로운 자동로드를 테스트합니다. 한 클래스의 소스 파일보기 자동 다른 클래스 정의를 포함 할 때
는 상황을 방지하려면 (전. 전자. 하나 개 이상의 클래스가 하나 개의 파일에 정의되어 있습니다), 각 클래스는 깨끗한 PHP 환경 (별도의 PHP-CLI 실행)에로드해야합니다.
클래스의 자동로드 검사기 (check.php) :
<?php
// test if a class, mentioned in autoload_classmap-orig.php at line $num,
// can be autoloaded. Exit status: 0 - ok, 4 - failed to autoload,
// 3 - no more classes in autoload_classmap-orig.php
error_reporting(0);
require_once(__DIR__ . "/vendor/autoload.php");
$num = $argv[1];
$classes = array_keys(include('autoload_classmap-orig.php'));
if (!isset($classes[$num])) {
exit(3);
}
$current_class = $classes[$num];
echo $current_class;
if (!class_exists($current_class)) {
exit(4);
}
exit(0);
반복자 (check.sh)
#!/usr/bin/env bash
# call ./check.php until all classes are checked or max number
# of checks reached.
max=500
num=0
while true ; do
php ./check.php $num
status=$?
case $status in
0) echo " - OK" ;;
3) echo "\nFinished." ; break ;;
4) echo " - CAN NOT BE AUTOLOADED" ;;
*) echo " - UNKNOWN ERROR $status" ;;
esac
num=$(($num + 1))
if [ "$num" -gt "$max" ] ; then
echo "\nMax number of classes reached."
break
fi
done
힌트 주셔서 감사합니다
는 그 2 스크립트를 사용! 모든 PHP 클래스 (FQCN)를 어떻게 나열합니까? 거기에 대한 어떤 도구가 있습니까 (내가 grep/sed/awk 작성할 수 있지만 더 신뢰할 수있는 도구가있는 경우). – cronfy