Maison  >  Article  >  cadre php  >  Analyse des opérations d'extension de bibliothèque telles que l'extension du framework Thinkphp

Analyse des opérations d'extension de bibliothèque telles que l'extension du framework Thinkphp

coldplay.xixi
coldplay.xixiavant
2020-06-09 11:43:522826parcourir

Analyse des opérations d'extension de bibliothèque telles que l'extension du framework Thinkphp

Explication détaillée des opérations d'extension de bibliothèque telles que l'extension du framework Thinkphp

Cet article principalement présente Il comprend l'extension du framework Thinkphp et d'autres opérations d'extension de bibliothèque de classes, et analyse les principes pertinents, les méthodes de mise en œuvre et les précautions de fonctionnement de l'extension de bibliothèque de classes Thinkphp sous forme d'exemples. Les amis dans le besoin peuvent se référer aux exemples de cet article .

Décrit les opérations d'extension de bibliothèque telles que l'extension du framework Thinkphp. Partagez-le avec tout le monde pour référence, comme suit :

Extension de classe de bibliothèque

La bibliothèque de classes de ThinkPHP comprend principalement des bibliothèques de classes publiques et des bibliothèques de classes d'application, toutes basées sur des espaces de noms définis. et élargi. Tant qu'il est défini conformément aux spécifications, le chargement automatique peut être réalisé.

Classes de bibliothèques publiques

Les bibliothèques de classes publiques font généralement référence aux bibliothèques de classes du répertoire ThinkPHP/Library, par exemple :

Think répertoire : bibliothèque de classes de base du système
Répertoire d'organisation : bibliothèque de classes publique tierce

Les bibliothèques de classes sous ces répertoires peuvent être chargées automatiquement. Il vous suffit de placer la bibliothèque de classes correspondante dans le répertoire. , puis ajoutez ou modifiez la définition de l'espace de noms. Vous pouvez ajouter un fichier Image.class.php sous le répertoire Org/Util/, puis ajouter l'espace de noms comme suit :

namespace Org\Util;
class Image {
}

De cette façon, vous pouvez directement instancier la classe Image de la manière suivante :

$image = new \Org\Util\Image;

En plus de ces répertoires, vous pouvez ajouter votre propre répertoire de bibliothèque de classes sous le répertoire ThinkPHP/Library. Par exemple, nous ajoutons un répertoire Com pour l'extension de bibliothèque de classe entreprise :

Classe ComSinaApp (. situé dans Com /Sina/App.class.php)

namespace Com\Sina;
class App {
}

Classe ComSinaRank (situé dans Com/Sina/Rank.class.php)

namespace Com\Sina;
class Rank {
}

En plus du répertoire Bibliothèque du système, le La bibliothèque de classes publique est également D'autres espaces de noms peuvent être personnalisés. Il suffit d'enregistrer un nouvel espace de noms et d'ajouter les paramètres de configuration suivants dans le fichier de configuration de l'application ou du module :

'AUTOLOAD_NAMESPACE' => array(
  'Lib'   => APP_PATH.'Lib',
)

Nous avons créé un répertoire Lib sous le répertoire de l'application pour. Placez l'extension publique Lib Si nous voulons placer les deux bibliothèques de classes ci-dessus dans le répertoire LibSina, il suffit de l'ajuster à :

classe LibSinaApp (située dans Lib/Sina/App.class.php).

namespace Lib\Sina;
class App {
}

Classe LibSinaRank (située dans Lib/Sina/Rank.class.php)

namespace Lib\Sina;
class Rank {
}

Si votre bibliothèque de classes n'utilise pas d'espace de noms, vous devez utiliser la méthode d'importation pour charger la classe fichier de bibliothèque d'abord, puis instanciez-le, par exemple : Nous avons défini une classe Counter (située dans Com/Sina/Util/Counter.class.php) :

class Counter {
}

Lorsque vous l'utilisez, vous devez l'appeler. de la manière suivante :

import('Com.Sina.Util.Couter');
$object = new \Counter();

Bibliothèque de classes d'application

La bibliothèque de classes d'application est généralement une bibliothèque de classes sous le répertoire d'application ou de module. L'espace de noms de la bibliothèque de classes d'application est généralement le nom du module. comme espace de noms racine, par exemple : classe HomeModelUserModel (située dans ApplicationHomeModel)

espace de noms HomeModel ;

utiliser ThinkModel ;

class UserModel étend le modèle{

>

Classe CommonUtilPay (située dans ApplicationCommonUtil)

namespace Common\Util;
class Pay {
}

Classe AdminApiUserApi (située dans ApplicationAdminApi)

namespace Admin\Api;
use Think\Model;
class UserApi extends Model{
}

Rappelez-vous un principe si le chemin de l'espace de noms correspond au réel. chemin du fichier, le chargement automatique peut être réalisé lors de l'instanciation directe.

Tutoriel 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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer