>  기사  >  PHP 프레임워크  >  ThinkPHP 컨테이너의 반사 메커니즘

ThinkPHP 컨테이너의 반사 메커니즘

咔咔
咔咔원래의
2020-10-10 11:29:391846검색

Reflection은 소스코드를 보지 않고서는 이해할 수 없는 중요성을 가지고 있습니다. 이 글을 꼭 읽어보세요

넷째, Reflection 메커니즘을 알아야 합니다

I. GO에 대해 배워보셨는지 모르겠습니다. 솔직히 말해서, Kaka는 Go의 반사 메커니즘을 보고 조금 혼란스러워했습니다.

하지만 나중에 PHP의 리플렉션을 보고 나면 go의 리플렉션에 대해 어느 정도 깊이 있게 이해할 수 있을 뿐만 아니라 PHP의 리플렉션에 대해서도 더 잘 이해할 수 있게 되었습니다.

Reflection 개념은 PHP5.0에서 도입되었습니다. 현재 사용되는 프레임워크 중 thinkphp와 laravel은 모두 Reflection을 사용하여 종속성 주입을 구현합니다.

리플렉션의 이해: 사실은 루트에서 루트가 아닌 다른 것을 얻는 것입니다. 프로그래밍에서는 클래스만 알면 이 클래스의 모든 속성과 메서드를 알 수 있습니다.

Case

이것은 클래스의 모든 메서드와 속성을 가져오는 간단한 구현 사례입니다. 아래 그림의 인쇄 결과가 TestReflection과 일치하는지 확인할 수 있습니다.

ThinkPHP 컨테이너의 반사 메커니즘ThinkPHP 컨테이너의 반사 메커니즘

이것도 측면에서 문제가 됩니다. 즉, 노출되어서는 안되는 일부 정보가 노출된다는 것입니다.

리플렉션에서 제공하는 더 많은 인터페이스가 있습니다. 다음은 일반적으로 사용되는 몇 가지 인터페이스이며 나머지는 프레임워크 소스 코드에서 구문 분석됩니다.

리플렉션을 사용하여 클래스의 메서드 실행

인쇄된 결과는 클릭입니다

ThinkPHP 컨테이너의 반사 메커니즘리플렉션을 사용하여 클래스의 매개변수가 있는 메서드를 실행합니다.

ThinkPHP 컨테이너의 반사 메커니즘
여기에 그림 설명 삽입

리플렉션 사용 클래스에서 매개변수 없이 메소드 실행

ThinkPHP 컨테이너의 반사 메커니즘 이 리플렉션 인터페이스는 기본 개발에서는 자주 사용되지 않기 때문에 다른 메소드를 직접 시도해 볼 수도 있습니다.

이제 성찰을 이해했으니 성찰이 무엇을 할 수 있을까요? 문서를 자동으로 생성하는 기능 포인트가 있습니다.

여기서 반영 내용을 간략히 살펴보겠습니다. 인터페이스 사용에 대해 더 자세히 알고 싶으시면 공식 웹사이트에 접속하여 해당 인터페이스 정보를 확인하실 수 있습니다.

ThinkPHP 컨테이너의 반사 메커니즘
여기에 사진 설명 삽입

반성을 이해한 후 이제 비즈니스에 착수할 시간이며 공식적으로 컨테이너 링크에 들어가야 합니다. 위의 기초를 놓는 것만으로 다음 컨테이너를 더 잘 이해할 수 있습니다.

배움의 끈기, 블로그의 끈기, 공유의 끈기는 카카가 창립 이래 늘 지켜온 신념입니다. 거대 인터넷에 올라온 카카의 글이 조금이나마 도움이 되었으면 좋겠습니다. 저는 카카입니다. 다음에 만나요.

위 내용은 ThinkPHP 컨테이너의 반사 메커니즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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