Maison  >  Article  >  cadre php  >  Quelle est l'utilité de l'importation dans thinkphp

Quelle est l'utilité de l'importation dans thinkphp

WBOY
WBOYoriginal
2022-04-18 17:03:482724parcourir

Dans thinkphp, la méthode import est utilisée pour implémenter l'encapsulation de l'importation de bibliothèques de classes. Elle peut fournir une prise en charge de l'importation des bibliothèques de classes de projet, des bibliothèques de classes étendues et des bibliothèques de classes tierces. La syntaxe est "import('class library name'. , 'starting path', 'Class library suffixe')" ; Cette méthode possède une méthode de fournisseur d'alias, spécialement utilisée pour importer des bibliothèques de classes tierces.

Quelle est l'utilité de l'importation dans thinkphp

L'environnement d'exploitation de cet article : système Windows 10, ThinkPHP version 3.2, ordinateur Dell G3.

À quoi sert l'importation dans thinkphp ?

La méthode d'importation est l'implémentation d'encapsulation du framework ThinkPHP pour l'importation de bibliothèques de classes, en particulier pour la prise en charge de l'importation de bibliothèques de classes de projet, de bibliothèques de classes d'extension et de bibliothèques de classes tierces antérieures. Les versions de la méthode d'importation peuvent être utilisées avec la méthode d'importation de Java, qui importe également des répertoires et des importations de caractères génériques. Plus tard, compte tenu des problèmes de performances, elle a été continuellement améliorée et simplifiée dans les mises à jour de versions ultérieures, de sorte que l'utilisation actuelle est relativement simple et claire. Format d'appel :

import('类库名', '起始路径', '类库后缀')

La méthode imprt a une méthode de fournisseur d'alias, qui est spécialement utilisée pour importer des bibliothèques de classes tierces. La différence est que le chemin de départ et la valeur par défaut du suffixe de la bibliothèque de classes sont différents.

Analysons l'utilisation spécifique :

1. Importez la bibliothèque de classes de base du système

La bibliothèque de classes de base du système fait en fait référence au package de bibliothèque de classes Think, et le répertoire dans lequel elle se trouve fait référence au répertoire Lib principal de le framework. La méthode d'importation peut être utilisée pour importer la bibliothèque de classes de base du système, par exemple :

import('Think.Util.Array');

signifie importer le fichier de bibliothèque de classes Lib/Util/Array.class.php dans le répertoire système, ce qui est équivalent à la façon dont nous utilisons

require THINK_PATH.'Lib/Util/Array.class.php';

pour prendre en charge les répertoires multi-niveaux, par exemple :

import('Think.Util.U1.ClassA');
import('Think.Util.U1.A2.ClassB');

Après avoir importé la bibliothèque de classes via la méthode d'importation, vous pouvez instancier la bibliothèque de classes.

2. Importez la bibliothèque de classes d'extension

La bibliothèque de classes d'extension se trouve dans le répertoire Extend/Library. Il s'agit du répertoire de bibliothèque de classes d'extension publique du système. Actuellement, les seuls packages de bibliothèques de classes d'extension pris en charge sont ORG et. Com forfaits.

import('ORG.Util.Image');
import('Com.Sina.OAuth');

importera la bibliothèque de classes tierce sous le répertoire d'extension (respectivement les fichiers de bibliothèque de classes Extend/Library/ORG/Util/Image.class.php et Extend/Library/Com/Sina/OAuth.class.php), troisième Les packages de bibliothèque de classes -party ne peuvent prendre en charge que ORG et Com. Les sous-répertoires suivants peuvent être ajoutés à volonté.

3. Importez la bibliothèque de classes d'application du projet

Si le chemin d'importation de départ n'est pas spécifié, les packages de bibliothèque de classes autres que Think, ORG et Com seront considérés pour importer la bibliothèque de classes d'application du projet, par exemple :

import("MyApp.Action.UserAction");
import("MyApp.Model.InfoModel");

signifie importer les fichiers de bibliothèque de classes UserAction et InfoModel du projet MyApp, car généralement, nous importons la bibliothèque de classes sous le projet en cours, elle peut donc être abrégée en :

import("@.Action.UserAction");
import("@.Model.InfoModel");

@ le symbole signifie importer la bibliothèque de classes sous le projet en cours, cette méthode fonctionne également dans une certaine mesure. Elle facilite la transplantation de code de la bibliothèque de classes du projet. Si le nom du projet change ou est déplacé vers un autre projet, la méthode d'écriture n'a pas besoin d'être modifiée.

4. Importer des fichiers de bibliothèque de classes non standard

Les fichiers de bibliothèque de classes non standard mentionnés ici font principalement référence à des fichiers de bibliothèque de classes situés dans des emplacements spéciaux ou avec un suffixe non-.class.php. L'importation de bibliothèques de classes de base, de bibliothèques de classes d'extension et de bibliothèques de classes de projet est toutes basée sur le répertoire de la spécification du framework. Si nous devons importer le fichier MyClass.php dans le répertoire Common du projet, nous pouvons utiliser :

import('Common.MyClass',APP_PATH,'.php');

ou

.
import('MyClass',APP_PATH.'Common','.php');

ou à Importer la bibliothèque de classes RBAC sous le répertoire courant

import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");

Il existe un autre cas particulier, qui est la particularité du nommage de la bibliothèque de classes. Selon les règles du système, la méthode d'importation ne peut pas importer de fichiers de bibliothèque de classes avec des points, car les points seront directement convertis en barres obliques. Par exemple, si nous définissons un fichier nommé User.Info.class.php, utilisez :

If. chargé dans
import("ORG.User.Info");

, une erreur se produira, faisant que le fichier chargé ne sera pas le fichier ORG/User.Info.class.php, mais le fichier ORG/User/Info.class.php. Dans ce cas, nous pouvons utiliser :

import("ORG.User#Info");

à importer.

5. Importation de bibliothèques de classes tierces

Les bibliothèques de classes de base de ThinkPHP portent toutes le suffixe .class.php. Il s'agit d'une convention intégrée au système. Bien sûr, elle peut également être contrôlée via les paramètres d'importation pour en savoir plus. commodité.Pour introduire des bibliothèques de classes provenant d'autres frameworks et systèmes, le système fournit également un alias de fournisseur pour la méthode d'importation, qui est spécifiquement utilisée pour importer des bibliothèques de classes tierces, et le répertoire de démarrage par défaut et le suffixe du fichier de classe sont différents. La bibliothèque de classes tierce se trouve dans le répertoire Vendor sous le répertoire d'extension système. Par exemple, nous mettons le FilterDir.php de Zend sous le répertoire Vendor. À l'heure actuelle, le chemin du fichier Dir est VendorZendFilterDir.php. la méthode du fournisseur pour importer, il suffit d'utiliser :

Vendor('Zend.Filter.Dir');

Vous pouvez importer la bibliothèque de classes Dir.

La méthode Vendor peut également prendre en charge les mêmes paramètres de base de chemin et de suffixe de nom de fichier que la méthode d'importation, par exemple :

Vendor('Zend.Filter.Dir',dirname(__FILE__),'.class.php');

6 Alias ​​​​import

En plus de la méthode d'importation d'espace de noms, la méthode d'importation peut également. prend en charge l'importation d'alias. Pour utiliser l'importation d'alias, vous devez d'abord définir l'alias. Nous pouvons ajouter alias.php dans le répertoire de configuration du projet pour définir l'alias de la bibliothèque de classes qui doit être utilisé dans le projet, par exemple :

return array(
  'rbac' =>LIB_PATH.'Common/Rbac.class.php',
  'page' =>LIB_PATH.'Common/Page.class.php',
 );

Ensuite, vous pouvez l'utiliser directement maintenant :

import("rbac");
import("page");

Import Pour les classes Rbac et Page, la méthode d'importation d'alias interdit l'utilisation des deuxième et troisième paramètres de la méthode d'importation. La méthode d'importation d'alias est plus efficace que la méthode d'importation d'espace de noms. est que les alias pertinents doivent être définis à l'avance.

Vous pouvez définir des alias pour certaines bibliothèques de classes requises, afin qu'elles puissent être automatiquement chargées rapidement sans définir de chemin de chargement automatique.

Dans des circonstances normales, en raison de la méthode de chargement automatique utilisée dans le framework, dans la plupart des cas, les utilisateurs n'ont pas besoin d'importer manuellement les fichiers de bibliothèque de classes. Il est généralement utilisé pour importer des bibliothèques de classes d'extension et des bibliothèques de classes tierces. De plus, avec la définition de la définition d'alias et le chemin de chargement automatique, cela peut également réduire le besoin pour les utilisateurs d'importer manuellement des bibliothèques de classes.

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn