>PHP 프레임워크 >ThinkPHP >spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다

spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다

咔咔
咔咔원래의
2020-09-01 00:10:071625검색

이 기사는 spl_autoload_register에 속한 이야기를 이해하도록 안내합니다.

Foreword

Kaka가 도로를 편집했습니다. 지도, 면접 가이드 작성 시작, 이 로드맵에 따라 글을 작성할 예정이며, 추후 추가되지 않은 지식 포인트도 추가할 예정입니다. 댓글란에도 기대하겠습니다! 사진 설명 삽입

spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다 1. spl_autoload_register 과거 및 현재
제가 PHP를 접하고 프레임워크를 사용하지 않기 전에는 대부분의 파트너가 include와 require, 물론 include_once와 require_once를 사용했다고 생각합니다.

Include는 오류가 보고될 때만 경고를 표시하는 반면, require는 스크립트를 직접 중지합니다.

네임스페이스 개념은 PHP5.3에서 도입되었습니다. 이러한 이유로 한 기여자는 11년 전 PHP 문서에서 나중에 "좋지만 느리다"고 할 수 있는 것을 권장하지 않기 위해 이 벤치마크를 만들었습니다. I made this benchmark to ensure that I don't recommend something that could be called "nice, but slow" later

翻译过来是“我做的这个测试,是为了确保我以后不推荐可以称之为不错,但是很慢的东西”。

做的这个测试就是定义了10个文件夹,每个文件夹有10个子文件夹并且每个子文件夹里都有10个类,然后使用了autoload和spl_autoload对比之后,平均执行时间多50ms。

那么这个东西指的就是_autoload()

번역은 "좋다고 할 수 있지만 매우 느린 것을 추천하지 않기 위해 이 테스트를 수행했습니다"입니다.

우리가 수행한 테스트는 10개의 폴더를 정의하는 것이었고, 각 폴더에는 10개의 하위 폴더가 있고 각 하위 폴더에는 10개의 클래스가 있습니다. 그런 다음 autoload와 spl_autoload를 사용하여 비교한 후 평균 실행 시간이 50ms 더 길어졌습니다.

그러면 이것은 , 이 메서드는 결국 PHP7.2에서 폐기됩니다. <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"></p>효율성 문제 외에도 _autoload 메서드가 최종적으로 폐기된 또 다른 이유가 있습니다. <h1 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; color: black; font-size: 25px;"> <span class="prefix" style="color: rgb(64, 184, 250); display: none;"> 필요에 따라 여러 개의 spl_autoload_register를 작성할 수 있습니다. 로드 순서는 대기열 모드에서 선입선출입니다. </span><span class="content" style="display: inline-block; color: rgb(64, 184, 250);">autoload는 전역 함수이므로 한 번만 정의할 수 있습니다. 여러 번 정의하면 오류가 보고됩니다. 여러 프레임워크를 사용하여 프로젝트를 구현하면 이 문제가 발생합니다. </span><span class="suffix" style="display: inline-block; color: rgb(64, 184, 250);"></span> </h1> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"> 2. spl_autoload_register의 간단한 사용 </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"></p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"></p> 이 함수에는 세 개의 매개변수만 있습니다. 두 번째 매개변수는 자동으로 등록된 함수가 실패할 때 예외를 발생시킬지 여부입니다. 매개변수는 대기열의 꼬리가 아닌 대기열의 선두에 함수를 추가하는 것입니다. <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"></p>위 내용은 모두 사실을 기준으로 정의되었습니다. 🎜🎜say와 user라는 두 파일을 정의합니다🎜🎜say 파일은 Say 클래스를 선언하고 hello 메소드를 설정합니다🎜<figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://img-blog.csdnimg.cn/2020083123565047.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYW5nNw==,size_16,color_FFFFFF,t_70#pic_center" alt="spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다" style="max-width:90%"><figcaption style="margin-top: 5px; text-align: center; font-size: 13px;"><span style="background-image: url(https://img.alicdn.com/tfs/TB1Yycwyrj1gK0jSZFuXXcrHpXa-32-32.png); display: inline-block; width: 18px; height: 18px; background-size: 18px; background-repeat: no-repeat; background-position: center; margin-right: 5px; margin-bottom: -5px;"></span>여기에 그림 설명 삽입</figcaption></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;">이제 사용자 파일에 오면 먼저 자동 로드 방법을 정의한 다음 spl_autoload_register를 사용하여 </p> <p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;"><img src="https://img-blog.csdnimg.cn/20200831235709536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYW5nNw==,size_16,color_FFFFFF,t_70#pic_center" alt="spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다" style="max-width:90%">인쇄된 데이터 결과<img src="https://img-blog.csdnimg.cn/20200831235844383.png#pic_center" alt="spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다" style="max-width:90%"></p> <blockquote data-tool="mdnice编辑器" style="font-size: 0.9em; overflow: auto; padding-top: 10px; padding-bottom: 10px; padding-right: 10px; margin-bottom: 20px; margin-top: 20px; text-size-adjust: 100%; line-height: 1.55em; border-radius: 6px; color: rgb(89, 89, 89); box-sizing: inherit; border-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-color: rgba(64, 184, 250, 0.4); border-image: initial; background: rgba(64, 184, 250, 0.1);"> <span style="color: RGBA(64, 184, 250, .5); font-size: 34px; line-height: 1; font-weight: 700;">❝</span><p style="padding-top: 8px; padding-bottom: 8px; font-size: 14px; word-spacing: 2px; margin-top: 0px; margin-bottom: 0px; line-height: 26px;">Keep을 등록해야 합니다. 학습, 블로그 활동 및 공유에 대한 인내심은 Kaka가 업계에서 항상 고수해 온 신념입니다. Kaka의 기사가 거대한 인터넷 </p> <span style="float: right; color: RGBA(64, 184, 250, .5);">❞</span> </blockquote>
에 조금이나마 도움이 되기를 바랍니다.

위 내용은 spl_autoload_register의 과거와 현재의 삶에 대해 이야기합시다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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