웹 프론트엔드 JS 튜토리얼 CI框架源码解读之利用Hook.php文件完成功能扩展的方法_php实例

CI框架源码解读之利用Hook.php文件完成功能扩展的方法_php实例

Jun 07, 2016 pm 05:07 PM
CI 프레임워크 기능 확장

本文实例讲述了CI框架源码解读之利用Hook.php文件完成功能扩展的方法。分享给大家供大家参考,具体如下:

看了hook.php的源码,就知道CI使用hook来进行扩展的原理了。

hook的基本知识 http://codeigniter.org.cn/user_guide/general/hooks.html

CI中hook的使用经历了一个:开启hook,定义hook,调用hook,执行hook的过程。

手册中已经告知了开启、定义、调用的方法。那么hook的实现原理是啥呢。

<&#63;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;
  }
}
&#63;>

로그인 후 복사

挂钩点可以挂多个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程序设计有所帮助。

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 CI 프레임워크를 사용하는 방법은 무엇입니까? PHP에서 CI 프레임워크를 사용하는 방법은 무엇입니까? Jun 01, 2023 am 08:48 AM

네트워크 기술의 발전으로 PHP는 웹 개발을 위한 중요한 도구 중 하나가 되었습니다. 인기 있는 PHP 프레임워크 중 하나인 CodeIgniter(이하 CI)도 점점 더 많은 관심과 사용을 받고 있습니다. 오늘은 CI 프레임워크를 활용하는 방법에 대해 살펴보겠습니다. 1. CI 프레임워크 설치 먼저 CI 프레임워크를 다운로드하여 설치해야 합니다. CI 공식 홈페이지(https://codeigniter.com/)에서 최신 버전의 CI 프레임워크 압축 패키지를 다운로드하세요. 다운로드가 완료되면 압축을 풀어주세요

exe에서 php로: 기능 확장을 위한 효과적인 전략 exe에서 php로: 기능 확장을 위한 효과적인 전략 Mar 04, 2024 pm 09:36 PM

EXE에서 PHP로: 기능 확장을 위한 효과적인 전략 인터넷의 발전과 함께 더 많은 사용자 액세스와 더 편리한 작업을 위해 점점 더 많은 응용 프로그램이 웹으로 마이그레이션되기 시작했습니다. 이 과정에서 원래 EXE(실행 파일)로 실행되는 기능을 PHP 스크립트로 변환하려는 요구도 점차 늘어나고 있다. 이 기사에서는 기능 확장을 위해 EXE를 PHP로 변환하는 방법에 대해 설명하고 구체적인 코드 예제를 제공합니다. EXE를 PHP 크로스 플랫폼으로 변환하는 이유: PHP는 크로스 플랫폼 언어입니다.

PHP에서 CI 프레임워크를 사용하는 방법 PHP에서 CI 프레임워크를 사용하는 방법 Jun 27, 2023 pm 04:51 PM

PHP는 웹 개발에 널리 사용되는 인기 있는 프로그래밍 언어입니다. CI(CodeIgniter) 프레임워크는 PHP에서 가장 널리 사용되는 프레임워크 중 하나입니다. 이는 기성 도구 및 기능 라이브러리의 전체 세트는 물론 일부 인기 있는 디자인 패턴을 제공하여 개발자가 웹 애플리케이션을 보다 효율적으로 개발할 수 있도록 합니다. 이 기사에서는 CI 프레임워크를 사용하여 PHP 애플리케이션을 개발하는 기본 단계와 방법을 소개합니다. CI 프레임워크의 기본 개념과 구조를 이해합니다. CI 프레임워크를 사용하기 전에 몇 가지 기본 개념과 구조를 이해해야 합니다. 아래에

VUE3 기본 튜토리얼: Vue 플러그인을 사용하여 기능 확장 VUE3 기본 튜토리얼: Vue 플러그인을 사용하여 기능 확장 Jun 15, 2023 pm 09:45 PM

Vue는 널리 사용되는 JavaScript 프레임워크이며 Vue 플러그인은 Vue 기능을 확장하고 개발 효율성을 향상시키는 방법입니다. 이 글에서는 Vue 플러그인을 사용하여 Vue의 기본 기능을 확장하는 방법을 알아봅니다. Vue 플러그인은 설치 메소드가 있는 JavaScript 객체로 구성됩니다. 객체는 함수일 수도 있고 객체일 수도 있으며, 확장할 Vue 기능은 install 메소드에서 정의됩니다. 이러한 설치 방법은 구성요소, 믹서, 지시어를 추가할 수 있습니다.

PHP에서 CI4 프레임워크를 사용하는 방법은 무엇입니까? PHP에서 CI4 프레임워크를 사용하는 방법은 무엇입니까? Jun 01, 2023 pm 02:40 PM

PHP는 널리 사용되는 서버측 스크립팅 언어이며 CodeIgniter4(CI4)는 웹 애플리케이션을 구축하는 빠르고 우수한 방법을 제공하는 인기 있는 PHP 프레임워크입니다. 이 기사에서는 CI4 프레임워크를 사용하여 뛰어난 웹 애플리케이션을 개발하는 방법을 단계별로 안내해 드립니다. 1. CI4 다운로드 및 설치 먼저 공식 웹사이트(https://codeigniter.com/downloa)에서 다운로드해야 합니다.

PHP의 CI 프레임워크 가이드 PHP의 CI 프레임워크 가이드 May 22, 2023 pm 07:10 PM

인터넷이 발전하고 인터넷이 사람들의 삶에 지속적으로 통합됨에 따라 네트워크 애플리케이션의 개발이 점점 더 중요해지고 있습니다. 잘 알려진 프로그래밍 언어인 PHP는 인터넷 애플리케이션 개발에 선호되는 언어 중 하나가 되었습니다. 개발자는 수많은 PHP 프레임워크를 사용하여 개발 프로세스를 단순화할 수 있으며, 가장 널리 사용되는 프레임워크 중 하나는 CodeIgniter(CI) 프레임워크입니다. CI는 강력한 PHP 웹 애플리케이션 프레임워크로, 가볍고 사용하기 쉬우며 성능이 최적화되어 개발자가 빠르게 구축할 수 있다는 특징을 가지고 있습니다.

CI 프레임워크에 CSS를 도입하는 방법 CI 프레임워크에 CSS를 도입하는 방법 Dec 26, 2023 pm 05:20 PM

CI 프레임워크에 CSS 스타일을 도입하는 단계는 다음과 같습니다. 1. CSS 파일을 준비합니다. 2. CSS 파일을 CI 프레임워크 프로젝트의 적절한 위치에 저장합니다. 3. CSS 스타일을 사용해야 하는 페이지에 CSS를 도입합니다. HTML <link> 태그 파일을 통해 4. HTML 요소에 CSS 클래스 또는 ID 이름을 사용하여 해당 스타일을 적용합니다.

CI 프레임워크에서 CSS 스타일을 참조하는 단계에 대한 자세한 설명 CI 프레임워크에서 CSS 스타일을 참조하는 단계에 대한 자세한 설명 Jan 16, 2024 am 09:28 AM

튜토리얼: CI 프레임워크에 CSS 스타일을 도입하기 위한 세부 단계, 특정 코드 예제가 필요합니다. 소개: 스타일은 웹 애플리케이션 개발에 있어 중요한 부분입니다. CSS(Cascading Style Sheets)를 사용하여 웹페이지를 아름답게 만들고 더 나은 사용자 경험을 제공하세요. CodeIgniter(CI) 프레임워크를 사용하여 개발할 때 CSS 스타일을 올바르게 도입하는 방법은 특히 중요합니다. 이 문서에서는 CSS 스타일을 CI 프레임워크에 도입하는 자세한 단계를 소개하고 특정 코드 예제를 제공합니다. 1단계: 먼저 CSS 파일 만들기,

See all articles