thinkphp에서 import 메소드는 클래스 라이브러리 가져오기를 캡슐화하는 데 사용됩니다. 이는 프로젝트 클래스 라이브러리, 확장 클래스 라이브러리 및 타사 클래스 라이브러리에 대한 가져오기 지원을 제공할 수 있습니다. 구문은 "import('클래스 라이브러리 이름', '시작 경로', '클래스 라이브러리 접미사')"; 이 메소드에는 타사 클래스 라이브러리를 가져오는 데 특별히 사용되는 별칭 공급업체 메소드가 있습니다.
이 문서의 운영 환경: Windows 10 시스템, ThinkPHP 버전 3.2, Dell G3 컴퓨터.
import 메소드는 특히 프로젝트 클래스 라이브러리, 확장 클래스 라이브러리 및 타사 클래스 라이브러리의 가져오기 지원을 위한 ThinkPHP 프레임워크의 캡슐화 구현입니다. 버전의 가져오기 메소드는 Java의 가져오기 메소드와 함께 사용할 수 있으며 디렉토리 가져오기 및 와일드카드 가져오기도 나중에 성능 문제를 고려하여 후속 버전 업데이트에서 지속적으로 개선되고 단순화되었으므로 현재 사용법은 비교적 간단하고 명확합니다. 호출 형식:
import('类库名', '起始路径', '类库后缀')
imrt 메서드에는 타사 클래스 라이브러리를 가져오는 데 특별히 사용되는 별칭 공급업체 메서드가 있습니다. 차이점은 시작 경로와 클래스 라이브러리 접미사의 기본값이 다르다는 것입니다.
구체적인 사용법을 분석해 보겠습니다.
1. 시스템 기본 클래스 라이브러리 가져오기
시스템 기본 클래스 라이브러리는 실제로 Think 클래스 라이브러리 패키지를 참조하며, 해당 디렉터리가 위치한 디렉터리는 Think 클래스의 핵심 Lib 디렉터리를 참조합니다. 시스템 기본 클래스 라이브러리를 가져오는 데 import 메소드를 사용할 수 있습니다. 예:
import('Think.Util.Array');
는 Lib/Util/Array.class.php 클래스 라이브러리 파일을 시스템 디렉토리 아래로 가져오는 것을 의미하며 이는 우리가 사용하는 방법과 동일합니다.
require THINK_PATH.'Lib/Util/Array.class.php';
다중 레벨 디렉터리를 지원하려면 다음과 같이 하세요. 예:
import('Think.Util.U1.ClassA'); import('Think.Util.U1.A2.ClassB');
가져오기 메서드를 통해 클래스 라이브러리를 가져온 후 클래스 라이브러리를 인스턴스화할 수 있습니다.
2. 확장 클래스 라이브러리 가져오기
확장 클래스 라이브러리는 Extend/Library 디렉터리에 있습니다. 이는 현재 지원되는 유일한 확장 클래스 라이브러리 패키지입니다. 컴 패키지.
import('ORG.Util.Image'); import('Com.Sina.OAuth');
는 확장 디렉터리(각각 Extend/Library/ORG/Util/Image.class.php 및 Extend/Library/Com/Sina/OAuth.class.php 클래스 라이브러리 파일) 아래에 타사 클래스 라이브러리를 가져옵니다. -party 클래스 라이브러리 패키지는 ORG 및 Com만 지원할 수 있습니다. 다음 하위 디렉터리는 원하는 대로 추가할 수 있습니다.
3. 프로젝트 애플리케이션 클래스 라이브러리 가져오기
가져오기 시작 경로가 지정되지 않은 경우 Think, ORG 및 Com 이외의 클래스 라이브러리 패키지가 프로젝트 애플리케이션 클래스 라이브러리를 가져오는 것으로 간주됩니다. 예:
import("MyApp.Action.UserAction"); import("MyApp.Model.InfoModel");
는 MyApp 프로젝트의 UserAction 및 InfoModel 클래스 라이브러리 파일 가져오기를 의미합니다. 일반적으로 현재 프로젝트 아래에 클래스 라이브러리를 가져오기 때문에 다음과 같이 축약할 수 있습니다.
import("@.Action.UserAction"); import("@.Model.InfoModel");
@ 기호는 현재 프로젝트 아래에 클래스 라이브러리를 가져오는 것을 의미합니다. 이 방법도 어느 정도 효과가 있어 프로젝트 클래스 라이브러리의 코드 이식이 용이해집니다. 프로젝트 이름이 변경되거나 다른 프로젝트로 이동하는 경우 작성 방법을 변경할 필요가 없습니다.
4. 비표준 클래스 라이브러리 파일 가져오기
여기서 언급된 비표준 클래스 라이브러리 파일은 주로 특수 위치에 있거나 .class.php 접미사가 아닌 클래스 라이브러리 파일을 참조합니다. 기본 클래스 라이브러리, 확장 클래스 라이브러리 및 프로젝트 클래스 라이브러리 가져오기는 모두 프레임워크 사양의 디렉터리를 기반으로 합니다. 프로젝트의 Common 디렉터리에서 MyClass.php 파일을 가져와야 하는 경우
import('Common.MyClass',APP_PATH,'.php');
또는
를 사용할 수 있습니다.import('MyClass',APP_PATH.'Common','.php');
또는 현재 디렉토리
import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");
아래에 RBAC 클래스 라이브러리를 가져오는 데 또 다른 특별한 경우가 있는데, 이는 클래스 라이브러리 이름 지정의 특수성입니다. 시스템 규칙에 따르면 점이 있는 클래스 라이브러리 파일을 가져올 수 없습니다. 예를 들어 User.Info.class.php라는 파일을 정의하는 경우 다음을 사용하세요.
import("ORG.User.Info");
import("ORG.User#Info");
5. 타사 클래스 라이브러리 가져오기
ThinkPHP의 기본 클래스 라이브러리에는 모두 .class.php라는 접미사가 붙습니다. 이는 시스템에 내장된 규칙입니다. 물론 가져오기 매개변수를 통해 제어할 수도 있습니다. 더욱 편리하게 다른 프레임워크 및 시스템의 클래스 라이브러리를 도입하기 위해 시스템은 특히 타사 클래스 라이브러리를 가져오는 데 사용되는 가져오기 방법에 대한 별칭 공급업체를 제공하며 기본 시작 디렉터리와 클래스 파일 접미사는 다릅니다. 타사 클래스 라이브러리는 시스템 확장 디렉터리 아래의 Vendor 디렉터리에 있습니다. 예를 들어, Vendor 디렉터리 아래에 Zend의 FilterDir.php를 넣습니다. 이때 Dir 파일의 경로는 VendorZendFilterDir.php입니다. 가져올 공급업체 메소드는 다음과 같습니다.Vendor('Zend.Filter.Dir');
Vendor('Zend.Filter.Dir',dirname(__FILE__),'.class.php');
6 별칭 가져오기
네임스페이스 가져오기 방법 외에도 가져오기 방법도 가능합니다. 별칭 가져오기를 사용하려면 먼저 별칭을 정의해야 합니다. 프로젝트 구성 디렉터리에 alias.php를 추가하여 프로젝트에서 사용해야 하는 클래스 라이브러리 별칭을 정의할 수 있습니다. 예:return array( 'rbac' =>LIB_PATH.'Common/Rbac.class.php', 'page' =>LIB_PATH.'Common/Page.class.php', );
import("rbac"); import("page");
일부 필수 클래스 라이브러리에 대한 별칭을 정의할 수 있으므로 자동 로딩 경로를 정의하지 않고도 자동으로 빠르게 로드할 수 있습니다.
일반적인 상황에서는 프레임워크 내부에서 사용되는 자동 로딩 방법으로 인해 대부분의 경우 사용자가 클래스 라이브러리 파일을 수동으로 가져올 필요가 없습니다. 이는 일반적으로 확장 클래스 라이브러리 및 타사 클래스 라이브러리를 가져오는 데 사용됩니다. 또한 별칭 정의 및 자동 로딩 경로 정의를 통해 사용자가 클래스 라이브러리를 수동으로 가져올 필요성도 줄일 수 있습니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 thinkphp에서 import 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!