이 글은 주로 Config의 소스 코드에 대한 간단한 실행 분석을 진행합니다. 다이어그램부터 코드까지 더 깊이 이해하시기 바랍니다. 위에서 언급한 yaconf는 여기에 반영되어 있으며, 모든 기사는 다음 내용을 위한 길을 열어줍니다.
위의 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
구성 파일 자동 로딩을 시작했고, config 클래스에서 로드 메소드도 호출했는데, 이 역시 함께 읽어야 합니다.
여기까지 오신 후 간략하게 해석하셔야 합니다
이 코드는 elseif로 바로 이동합니다. 왜냐하면 앱에서는 디렉토리에 설정된 config 디렉토리가 없습니다그리고 여기에 configPath 속성이 있으니 익숙하시죠! 이 값은D:phpstudy_proWWWWThinkPHPSourceCodeAnalyticconfig
여기 있습니다. config 디렉토리의 모든 파일을 꺼냅니다. 구성 클래스의 로드 메소드에 전달
여기서 언급할 몇 가지 지식 사항이 있으니 검토해 보세요.
이 코드에는 configExt 속성이 있습니다. 이 값은 환경 변수에서 읽혀집니다. 주어진 값은 php
Kaka는 경력을 시작한 이래로 항상 학습, 블로그 및 공유를 고집해 왔습니다. .믿음이 유지되었습니다. 거대 인터넷에 올라온 카카의 글이 조금이나마 도움이 되었으면 좋겠습니다. 저는 카카입니다. 다음에 만나요.
위 내용은 ThinkPHP 구성 소스 코드 실행 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!