>백엔드 개발 >PHP 튜토리얼 >ThinkPHP에 Composer 자동 로딩을 추가하는 데 실패하는 이유는 무엇입니까?

ThinkPHP에 Composer 자동 로딩을 추가하는 데 실패하는 이유는 무엇입니까?

WBOY
WBOY원래의
2016-12-01 01:27:543467검색

ThinkPHPindex.php에 다음을 추가했습니다.

<code>// 添加第三方库自动加载
require './vendor/autoload.php';</code>

단, 사용 시에는 类不存在 메시지가 표시됩니다.

단, Controllerrequire을 추가하여 사용할 수 있습니다.

<code>require APP_PATH.'../vendor/autoload.php'; </code>

원인은 무엇인가요? 클래스 로더는 하나만 존재할 수 있나요? ThinkPHP도 하나 작성했는데, 이로 인해 Composer의 클래스 로더를 덮어쓰게 되었다고요?

아시는 분 계시나요? 모두 감사합니다.

이 질문을 보니 영어 문서에 있다고 응답자가 있었습니다.

spl_autoload_register는 여러 로더가 필요한 상황을 처리할 수 있습니다. 이 경우 spl_autoload_register는 이전에 등록된 로더를 순서대로 호출합니다. 반면에 __autoload는 함수이기 때문에 한 번만 정의할 수 있습니다.

여러 개가 있어야 합니다.

답글 내용:

ThinkPHPindex.php에 다음을 추가했습니다.

<code>// 添加第三方库自动加载
require './vendor/autoload.php';</code>

단, 사용 시에는 类不存在 메시지가 표시됩니다.

단, Controllerrequire을 추가하여 사용할 수 있습니다.

<code>require APP_PATH.'../vendor/autoload.php'; </code>

원인은 무엇인가요? 클래스 로더는 하나만 존재할 수 있나요? ThinkPHP도 하나 작성했는데, 이로 인해 Composer의 클래스 로더를 덮어쓰게 되었다고요?

아시는 분 계시나요? 모두 감사합니다.

이 질문을 보니 영어 문서에 있다고 응답자가 있었습니다.

spl_autoload_register는 여러 로더가 필요한 상황을 처리할 수 있습니다. 이 경우 spl_autoload_register는 이전에 등록된 로더를 순서대로 호출합니다. 반면에 __autoload는 함수이기 때문에 한 번만 정의할 수 있습니다.

여러 개가 있어야 합니다.

5.0版本支持Composer安装的类库的自动加载,你可以直接按照Composer依赖库中的命名空间直接调用。

이것은 thinkphp가 작곡가의 자동 로딩 메커니즘을 통합했다는 것을 의미합니다. 다운로드한 후 필요한 경우 네임스페이스를 가져오는 데 사용하면 됩니다. require APP_PATH.'../vendor/autoload.php'; 직접 작성하면 됩니다.

ThinkPHP에 Composer 자동 로딩을 추가하는 데 실패하는 이유는 무엇입니까?

맙소사 원인은 알겠습니다... requireThinkPHP.php에 있기 전, 소개된 이후에는 사실 require './ThinkPHP/ThinkPHP.php'; 당시에는 이미 , 통과했습니다 경로가 진입했습니다 执行ThinkPHP...Controller

틀림:

<code>// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';

// 添加第三方库自动加载
require './vendor/autoload.php';</code>

오른쪽:

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 소켓 문제다음 기사:PHP 소켓 문제