Reflection을 사용하여 객체를 만들고 매번이 오류를 얻으려고하면이 오류를 해결할 수 없습니다.PHP ReflectionClass - 치명적인 오류 : 클래스 이름은 유효한 객체 또는 문자열이어야합니다.
public static function getMapper($klass) {
echo $klass;
if(class_exists($klass)) {
echo "YES!";
} else {
echo "NO!";
}
$mapperClass = new \ReflectionClass($klass);
print_r($mapperClass);
return new $mapperClass->newInstance();
}
첫 번째 에코 인쇄 "\ 도메인 \ 회원"
여기 내 코드입니다. 이것은 내가 통과 한 것이므로 Object의 생성을 시도하는 클래스입니다.
다음으로 에코는 "예"를 인쇄합니다. 클래스가 존재합니다! 도메인이 사라지기 전에
ReflectionClass Object ([name] => domain\Member)
\주의 :
다음, 나는 ...
다음 인 print_r 인쇄를 ReflectionClass에 KLASS $ 통과. 문제의 일부일 수 있습니까?
그런 다음 newInstance()를 호출하면 오류가 발생합니다.
치명적인 오류 : 클래스 이름은 유효한 개체 또는 C의 문자열이어야합니다 : \ 사용자 그래서 무슨 문제가 모르는 라인 (53)
에 Registry.php \ 잭 \ PhpstormProjects \ MyApp를 \ 기반을 \ 입니다. Member 클래스는 도메인 네임 스페이스에 있습니다. 어쩌면 회원의 어떤 것이 잘못되었을 수도 있습니다. 여기 있습니다. 아직 많지 않음 :
<?php
namespace domain;
use base\Registry;
use domain\base\BaseMember;
class Member extends BaseMember {
/**
* @param $displayName
* @return Member
*/
public static function findMemberByDisplayName($displayName) {
return Registry::memberRepository()->findMemberByDisplayName($displayName);
}
아, 항상 너무 작습니다 ... – user1513171