thinkphp Behavior Extension Behavior application example, thinkphpbehavior_php tutorial

Source: Internet
Author: User

thinkphp Behavior Extension Behavior application examples, Thinkphpbehavior


This paper introduces in detail the implementation method of Thinkphp's behavior extension behavior in the form of an example, which can help the reader to master the development of thinkphp more flexibly, the steps are as follows:

thinkphp behavior Extension (Behavior) process:

The first is to read the configuration file information:

$mode = include is_file (conf_path. ' core.php ')? Conf_path. ' core.php ': Mode_path. App_mode. '. PHP ';

Read configuration file Information thinkphp\mode\common.php

The behavior extension defines the ' tags ' = = Array (' app_init '   = = Array (), ' app_begin '   = = Array (  ' Behavior\readhtmlcache ', Read static cache), ' app_end '    = = Array (  ' behavior\showpagetrace ',//page trace display), ' path_info '   = = Array (), ' Action_begin ' = = Array (), ' action_end '  = = Array (), ' view_begin '  = = Array (), ' view_parse '  = = Array (  ' behavior\parsetemplate ',//template parsing supports PHP, built-in template engine and third-party template engine), ' template_filter ' = = Array (  ' behavior\ Contentreplace ',//template output replacement), ' view_filter '  = = Array (  ' behavior\writehtmlcache ',//write static cache), ' View_end '   = = Array (),),

System behavior extensions are called by default: Static cache reads, page trace display output, template parsing, template content output substitution, static cache writes

The load mode behavior defines if (Isset ($mode [' tags ')]) {Hook::import (the  is_array ($mode [' tags '])? $mode [' Tags ']:include $mode [' Tags ']);} Load app behavior definition if (is_file (conf_path. ' tags.php '))//Allow application to add Development mode configuration definition Hook::import (include Conf_path. ' tags.php ');  

Load system behavior and custom behavior with hooks, and save configuration information to hook private property $tags

App::run () is called when the thinkphp\library\think\think.class.php initialization is complete;

The thinkphp\library\think\app.class.php file is as follows:

/*** shortcut method used to run the application instance portal file * @access public* @return void*/static public Function Run () {//Apply Initialize tag hook::listen (' App_init '); App::init ();//Apply start tag hook::listen (' App_begin ');//Session Initialize if (!IS_CLI) {  session (C (' session_options '));} Log application initialization time g (' inittime '); App::exec ();//Apply end tag Hook::listen (' App_end '); return;}

You can see if the program needs to be processed before the app init through the hooks to listen (see) This action. Loop $tags[' App_init '] gets the class name and automatically executes the behavior extension class using the class name Run method

All hooks are as follows:

' Url_dispatch '     //url dispatch end tag ' app_init '//     Apply initialize tag ' app_begin '/     /Apply start tag ' app_end '//apply     end tag ' action_ Begin '     //action before action ' action_end '//action     after Operation   ' Ajax_return '/     /For extending other return format data ' path_info '       //Detect routing Rules If no then the default rules schedule URL ' template_filter '    //Template compilation Filter label ' View_begin '//      View start tag ' view_end '/       /view end tag ' View_parse ' //      View Resolution label ' View_filter '      //Content Filter Tag

Disadvantages are as follows:

1. The order is not controlled (the configuration file does not have a specific parameter to control the order), such as the App_init also have 2 monitoring when the first call which method.

2. Monitoring is not a global monitoring internal write too dead only some of the definitions can not be automatically controlled by the configuration file for each operation of the hook (probably considering the performance is not added)

The advantages are as follows:

1. A lot of behavioral extensions can be achieved

2. Can agent detection, browser anti-refresh detection, operational routing detection, etc.

Summarize:

A behavior extension is an extra function that is performed when a program is operating. If the program in the operation of the database read the performance information through the Explian and monitor performance bottlenecks, such as the acquisition of data more than a specific number of seconds to email the relevant information to the project manager.


What is the main thing to do with the new widgets and behavior under Lib in Thinkphp30?

Widget extensions are used to output different content on the page as needed, and the widget extension is defined as the Widget class library defined under the project's Lib\widget directory, as detailed in the ThinkPHP3.0 full development manual 13.6 widget extension
Behavior is the application Behavior class library, the behavior extension is first defines the behavior class, then joins a label position, the built-in behavior extension is a very good expansion example. The behavior extension class inherits the built-in behavior base class behavior, with the B method call or automatic loading, see ThinkPHP3.0 Full development manual 13.1.3 behavior extension.

How the Thinkphp extension class inherits to the action

The method is simple.
Inherit the Action class with your own class, and then inherit your own class from the controller.

Technical Support: The 9th section of the paper, for the majority of graduates to provide the best graduation works!

http://www.bkjia.com/PHPjc/844128.html www.bkjia.com true http://www.bkjia.com/PHPjc/844128.html techarticle thinkphp Behavior Extension Behavior application examples in detail, thinkphpbehavior this article in the form of an example of thinkphp behavior extension Behavior implementation method, to help readers more flexible palm ...

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.