ThinkPHP 구성 소스 코드 실행 프로세스

咔咔
풀어 주다: 2020-10-09 16:01:08
원래의
1510명이 탐색했습니다.

이 글은 주로 Config의 소스 코드에 대한 간단한 실행 분석을 진행합니다. 다이어그램부터 코드까지 더 깊이 이해하시기 바랍니다. 위에서 언급한 yaconf는 여기에 반영되어 있으며, 모든 기사는 다음 내용을 위한 길을 열어줍니다.

6. Config 소스 코드 실행 과정

위의 Yaconf는 Config 소스 코드 분석에 그다지 도움이 되지는 않지만, 생각의 폭을 넓히는 데 도움이 됩니다. 미래.

본론으로 들어가겠습니다. Config가 어떻게 로드되고 파싱되는지 알고 싶다면 먼저 그림을 그려보세요. config를 로드하는 실행 과정을 살펴보겠습니다.

다시public/index.php로 돌아가서, base.php 파일을 로딩하는 과정에서 클래스 자동 로딩이 실행된다고 지난 호에서 언급한 적이 있습니다.

그러면 구성 로딩이 아래 그림과 같이 구성됩니다. 여기에는 컨테이너가 포함되며, 컨테이너를 분석하는 별도의 주제가 있습니다.

여기서는 더 이상 설명이 없습니다. 이 코드는 `D:phpstudy_proWWWWThinkPHPSourceCodeAnalyticthinkphplibrarythinkApp.php' 파일의 실행 메소드를 실행하기 위해 돌아갑니다.

그리고실행에서 추적해야 하는 내용초기화이 기능을 초기화합니다run方法中需要追踪的是initialize应用初始化这个函数

接着在initialize这个方法中就会看到配置文件的蛛丝马迹,随之而来就是一个初始化应用init

直到走到init方法中,才算是进入了主题。

开始了自动加载配置文件,并且还调用了config类中的load方法,也是需要一起阅读的。

来到这里之后需要简单的进行解读一下

这段代码会直接走到elseif中,因为在app目录下没有设置config目录

并且这里有个configPath这个属性熟悉吧!这个值最终就是D:phpstudy_proWWWThinkPHPSourceCodeAnalysisconfig

그러면 초기화이 방법 구성 파일에 대한 단서가 있고 그 뒤에는 초기화 애플리케이션이 있습니다 init
테마를 입력하는 init 메소드에 도달할 때까지는 그렇지 않습니다.

구성 파일 자동 로딩을 시작했고, config 클래스에서 로드 메소드도 호출했는데, 이 역시 함께 읽어야 합니다.

여기까지 오신 후 간략하게 해석하셔야 합니다

이 코드는 elseif로 바로 이동합니다. 왜냐하면 앱에서는 디렉토리에 설정된 config 디렉토리가 없습니다그리고 여기에 configPath 속성이 있으니 익숙하시죠! 이 값은 D:phpstudy_proWWWWThinkPHPSourceCodeAnalyticconfig여기 있습니다. config 디렉토리의 모든 파일을 꺼냅니다. 구성 클래스의 로드 메소드에 전달

여기서 언급할 몇 가지 지식 사항이 있으니 검토해 보세요.

  • scandir: 디렉터리의 모든 파일을 오름차순으로 반환하고, 두 번째 매개변수 1은 디렉터리의 파일을 내림차순으로 반환한다는 의미입니다.
  • pathinfo: 디렉터리 이름, 파일 이름, 확장명 등의 파일 정보를 배열 형식으로 반환합니다. 아래 그림에서 여러 매개 변수가 언급됩니다.

이 코드에는 configExt 속성이 있습니다. 이 값은 환경 변수에서 읽혀집니다. 주어진 값은 php

Kaka는 경력을 시작한 이래로 항상 학습, 블로그 및 공유를 고집해 왔습니다. .믿음이 유지되었습니다. 거대 인터넷에 올라온 카카의 글이 조금이나마 도움이 되었으면 좋겠습니다. 저는 카카입니다. 다음에 만나요.

위 내용은 ThinkPHP 구성 소스 코드 실행 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!