CI框架源码解读之利用Hook.php文件完成功能扩展的方法_php实例
本文实例讲述了CI框架源码解读之利用Hook.php文件完成功能扩展的方法。分享给大家供大家参考,具体如下:
看了hook.php的源码,就知道CI使用hook来进行扩展的原理了。
hook的基本知识 http://codeigniter.org.cn/user_guide/general/hooks.html
CI中hook的使用经历了一个:开启hook,定义hook,调用hook,执行hook的过程。
手册中已经告知了开启、定义、调用的方法。那么hook的实现原理是啥呢。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class CI_Hooks { var $enabled = FALSE; //开启hook的标志,默认是关闭的。APPPATH/config/config.php中的配置也是默认关闭的,如果想使用hook,要在config.php中开启。 var $hooks = array(); //在_initialize()函数初始化的过程中将APPPATH/config/hook.php中定义的hook数组,引用到$this->hooks; var $in_progress = FALSE; //当一个hook执行的时候,会给标记 $in_process = TRUE ,是为了防止同一个hook被同时调用。 function __construct() { $this->_initialize(); log_message('debug', "Hooks Class Initialized"); } function _initialize() { //初始化hook //判断config.php中是否开启hook //include(hook.php),将文件里定义的hook数组引用到$this->hooks //$this->enable = TRUE } function _call_hook($which = '')//pre_system { //以pre_system挂钩点为例,当调用_call_hook('pre_system')时 //确保$this->enable = TRUE && 定义了$this->hooks['pre_system'] //如果是二维数组就遍历,依次_run_hook($this->hooks['pre_system'][$val]) //如果是一维数组,那么直接_run_hook($this->hooks['pre_system']) } function _run_hook($data) //$data 是传递过来的hook数组 { //$data 就是我们在APPPATH/config/hook.php 定义的hook数组 //$hook['pre_controller'] = array( // 'class' => 'MyClass', // 'function' => 'Myfunction', // 'filename' => 'Myclass.php', // 'filepath' => 'hooks', // 'params' => array('beer', 'wine', 'snacks') // ); //取出data里面的数据,加载 APPPATH.$data['filepath'].$data['filename']; //实例化钩子类,调用function。应用到示例中就是 $this->in_process = TRUE; $Hook = new MyClass(); $Hook->Myfunction($params); $this->in_process = FALSE; } } ?>
挂钩点可以挂多个hook,所以,当我们想扩展ci的时候,只需要将hook文件放到APPPATH文件夹下,然后 到APPPATH/config/hook.php中声明定义的hook的信息即可。那么系统运行到挂钩点的时候,会自动调用声明的hook。
如此一来便实现了可扩展性
更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Mit der Entwicklung der Netzwerktechnologie ist PHP zu einem wichtigen Werkzeug für die Webentwicklung geworden. Eines der beliebtesten PHP-Frameworks – CodeIgniter (im Folgenden als CI bezeichnet) hat ebenfalls immer mehr Aufmerksamkeit und Verwendung gefunden. Heute werfen wir einen Blick auf die Verwendung des CI-Frameworks. 1. Installieren Sie das CI-Framework. Zuerst müssen wir das CI-Framework herunterladen und installieren. Laden Sie die neueste Version des komprimierten CI-Framework-Pakets von der offiziellen Website von CI herunter (https://codeigniter.com/). Nachdem der Download abgeschlossen ist, entpacken Sie ihn

EXE zu PHP: Eine effektive Strategie zur Funktionserweiterung Mit der Entwicklung des Internets haben immer mehr Anwendungen begonnen, ins Web zu migrieren, um einen breiteren Benutzerzugriff und komfortablere Bedienung zu ermöglichen. Dabei steigt auch sukzessive der Bedarf, ursprünglich als EXE (ausführbare Dateien) ausgeführte Funktionen in PHP-Skripte umzuwandeln. In diesem Artikel wird erläutert, wie EXE in PHP konvertiert wird, um eine Funktionserweiterung zu erreichen, und es werden spezifische Codebeispiele gegeben. Warum EXE in PHP plattformübergreifend konvertieren: PHP ist eine plattformübergreifende Sprache

PHP ist eine beliebte Programmiersprache, die in der Webentwicklung weit verbreitet ist. Das CI-Framework (CodeIgniter) ist eines der beliebtesten Frameworks in PHP. Es bietet einen vollständigen Satz vorgefertigter Tools und Funktionsbibliotheken sowie einige beliebte Designmuster, mit denen Entwickler Webanwendungen effizienter entwickeln können. In diesem Artikel werden die grundlegenden Schritte und Methoden zur Entwicklung von PHP-Anwendungen mithilfe des CI-Frameworks vorgestellt. Verstehen Sie die grundlegenden Konzepte und Strukturen des CI-Frameworks. Bevor wir das CI-Framework verwenden, müssen wir einige grundlegende Konzepte und Strukturen verstehen. Runter

Vue ist ein beliebtes JavaScript-Framework und Vue-Plug-Ins sind eine Möglichkeit, die Vue-Funktionalität zu erweitern und unsere Entwicklungseffizienz zu verbessern. In diesem Artikel erfahren Sie, wie Sie die Grundfunktionalität von Vue mithilfe von Vue-Plugins erweitern. Vue-Plugins bestehen aus einem JavaScript-Objekt mit einer Installationsmethode. Das Objekt kann eine Funktion oder ein Objekt sein und die zu erweiternde Vue-Funktionalität wird in der Installationsmethode definiert. Diese Installationsmethoden können Komponenten, Mixer und Anweisungen hinzufügen

PHP ist eine weit verbreitete serverseitige Skriptsprache und CodeIgniter4 (CI4) ist ein beliebtes PHP-Framework, das eine schnelle und hervorragende Möglichkeit zum Erstellen von Webanwendungen bietet. In diesem Artikel machen wir Sie mit dem CI4-Framework vertraut, um herausragende Webanwendungen zu entwickeln, indem wir Sie durch die Verwendung führen. 1. Laden Sie CI4 herunter und installieren Sie es. Zuerst müssen Sie es von der offiziellen Website herunterladen (https://codeigniter.com/downloa).

Mit der Entwicklung des Internets und seiner kontinuierlichen Integration in das Leben der Menschen hat die Entwicklung von Netzwerkanwendungen immer mehr an Bedeutung gewonnen. Als bekannte Programmiersprache hat sich PHP zu einer der bevorzugten Sprachen für die Entwicklung von Internetanwendungen entwickelt. Entwickler können zahlreiche PHP-Frameworks verwenden, um den Entwicklungsprozess zu vereinfachen. Eines der beliebtesten ist das CodeIgniter (CI)-Framework. CI ist ein leistungsstarkes PHP-Webanwendungs-Framework, das sich durch geringes Gewicht, Benutzerfreundlichkeit und optimierte Leistung auszeichnet und es Entwicklern ermöglicht, schnell zu erstellen

Die Schritte zum Einführen von CSS-Stilen in das CI-Framework sind wie folgt: 1. CSS-Dateien vorbereiten; 2. CSS-Dateien am entsprechenden Speicherort des CI-Framework-Projekts speichern; 3. CSS auf den Seiten einführen, die CSS-Stile verwenden müssen über die HTML-<link>-Tag-Datei 4. Verwenden Sie den CSS-Klassen- oder ID-Namen im HTML-Element, um den entsprechenden Stil anzuwenden.

Tutorial: Detaillierte Schritte zur Einführung von CSS-Stilen im CI-Framework, spezifische Codebeispiele sind erforderlich. Einführung: Stil ist ein entscheidender Bestandteil bei der Entwicklung von Webanwendungen. Verwenden Sie CSS (Cascading Style Sheets), um Webseiten zu verschönern und ein besseres Benutzererlebnis zu bieten. Bei der Entwicklung mit dem CodeIgniter (CI)-Framework ist die korrekte Einführung von CSS-Stilen besonders wichtig. In diesem Artikel werden die detaillierten Schritte zur Einführung von CSS-Stilen im CI-Framework vorgestellt und Ihnen spezifische Codebeispiele bereitgestellt. Schritt 1: Erstellen Sie zuerst eine CSS-Datei.
