×ðÁú¿­Ê±¹ÙÍøµÇ¼

thinkphp²å¼þ¹³×ÓµÄʵÏÖ»úÖÆÊÇʲô

ÏÖÔÚÖ÷Á÷µÄcms»òÕßblogµÈϵͳÖУ¬¶¼ÄÚÖõÄÓвå¼þϵͳ£¬¿ÉÊDzã²ãÉîÈë¡¢ÆÊÎöʵÏֵķ½·¨£¬×Åʵ¶¼ÊÇ×î¼òÆӵĹ³×ÓµÄÖش󻯵ÄʵÏÖ¡£

Ç°ÑÔ

²å¼þµÄÖ´ÐÐͨ¹ý¹³×ÓÀ´´¥·¢£»¿ÉÒ԰Ѳå¼þ¿´×÷¹ÒÔÚ¹³×ÓÉϵŤ¾ß£»²å¼þÖ»ÓÐÔÚÀÖ³ÉʵÏÖÏìÓ¦¹³×ÓÒªÁì²¢±»×¼È·×°ÖÃÆôÓúó²Å»ªÖ´ÐС£

¿ª·¢ÕßÒ²¿ÉÒÔÓÃhook(‘test’)ÒªÁìÔÚ¿ØÖÆÆ÷Ö»¼ÓÈë¹³×Ó£¬ÈÃÄãµÄÓ¦ÓþßÓиüºÃµÄÀ©Õ¹ÐÔ£»Í¬Ê±Ò²¿ÉÒÔÄ£°åÀï¼ÓÈë¹³×Ó{:hook(‘footer’)}£»¹³×ÓÒ²Ö§³Ö´«Èë²ÎÊýhook(‘footer’,array(‘test’=>1));

Ïòϵͳ̻¶ÄãµÄ¹³×Ó£¬¾ÍÊÇ°ÑÄãµÄ¹³×ÓÔÚÏìÓ¦µÄÎļþÀïÁгöÀ´£¬ÏµÍ³»áÀ´¼ì²â¡£

{:hooks('documentDetailAfter')}

µÇ¼ºó¸´ÖÆ

Õâ¸öµÄÒâ˼¾ÍÊÇ£ºÏ൱ÓÚÔÚÕâ±ß ´òÒ»¸öµã £¬ÎÒÃÇ¿ÉÒÔ½«²å¼þ¹ÒÔص½ÄÇ

¹Ù·½µÄ˵·¨ÊÇ£ºÎĵµÄ©Î²ÏÔʾÏÔʾµÄ ¹³×Ó

Òâ˼¾ÍÊÇ˵£¬ÔÚÎĵµÄ©Î²µÄʱ¼ä£¬»á×Ô¶¯Å²ÓùÒÔØÔÚË­ÈË ¹³×Ó ÉϵIJå¼þ

Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡±£»

¾ÙÀý˵Ã÷

phpÖÐËùνµÄ¹³×Ó£¬×Åʵ¾ÍÊÇÒ»ÖÖÊÂÎñÇý¶¯£¬Ö÷Òª·ÖΪ¡®×¢²áÊÂÎñ¡¯¡¢¡®´¥·¢ÊÂÎñ¡¯Á½²½¡£Ëùν¡®×¢²áÊÂÎñ¡¯£¬¼´Ä¿µÄÊǸøδÀ´¿ÉÄܱ¬·¢µÄ’ÊÂÇé’ÆðÒ»¸öÃû×Ö,Ãû×Ö,¿ÉÒÔÓõ¥Àýģʽ»òÕß×¢²á Ϊһ¸öÈ«¾ÖµÄ±äÁ¿,ÓõÄʱ¼äÖ±½ÓÔÚ¶ÔÓ¦µÄÒªÁì»òÕßÀàÔÙ»òÕߺ¯ÊýÖвåÈëÕâ¸ö±äÁ¿¼´¿É£»¡®´¥·¢ÊÂÎñ¡¯,ʵÖÊÉϾÍÊÇÔÚÊÂÎñµÄÈ«¾Ö±äÁ¿ÖÐÅÌÎÊÒª´¥·¢µÄʱ¼äÃû³Æ,È»ºóÕÒµ½×¢²áºÅµÄÀàÓëÒªÁì,ʵÀý»¯ÔËÐС£

¾Ù¸öÀý×ÓÀ´ËµÃ÷һϡ£

ÏîĿ˾Àí¸øÎÒÃÇÁËÈçϵÄÐèÇó£º

µÚÒ»Ì죺¿ª·¢×¢²áµÄ¹¦Ð§¡£

³ÌÐòÔ±°ÍÀ­°ÍÀ­£¬ÈýÏÂÎå³ý¶þ¾ÍÍê³ÉÁË¡£

µÚ¶þÌ죺ÔÚ×¢²áÇ°Ìí¼Ó·¢ËͶÌÐÅÑéÖ¤ÂëµÄ¹¦Ð§¡£

³ÌÐòÔ±°ÍÀ­°ÍÀ­£¬ÈýÏ¿Îå³ý¶þ¾ÍÓÖÍê³ÉÁË¡£

µÚÈýÌ죺ע²áÍê³ÉÖ®ºó£¬¸øÓû§Ìí¼ÓÏìÓ¦µÄ»ý·Ö¡£

³ÌÐòÔ±ÓÖ×îÏÈ°ÍÀ­°ÍÀ­ing¡­¡­

    class Register{
        public function index(){
            /**
             * µÚ¶þÌì·¢ËͶÌÐŹ¦Ð§
             */
            
            /**
             * µÚÒ»Ìì×¢²á´úÂë
             */
            
            /**
             * µÚÈýÌìÔöÌí»ý·Ö¹¦Ð§ 
             */
        }
    }

µÇ¼ºó¸´ÖÆ

ÕâÑùһСÎÒ˽ÈË¿ª·¢»ØºÃ£¬¶àСÎÒ˽ÈË¿ª·¢£¬ÊƱػáÔì³ÉÅäºÏƶÀ§µÄÎÊÌ⣬ͬʱ´úÂëÒ²»á±äµÃÔÓÂÒ¡£

×÷ΪÓÅÒì³ÌÐòÔ±µÄÎÒÃÇ£¬ËäÈ»²»ÔÊÐíÎÒÃdzÌÐòÖдúÂëÈßÓà¡¢ÔÓÂҵķºÆð£¬ÓÚÊÇÎÒÃÇ°ÑÒªÁìд³Éº¯Êý×ÔÁ¦³öÀ´£¬Àû±ãŲÓÃÓë´úÂë¼ò½é¡£ÓÚÊÇÐγÉÈçÏ´úÂ룺

    class Register{
        public function index(){
            /**
             * µÚ¶þÌì·¢ËͶÌÐŹ¦Ð§
             */
             sendMsg($data);
            /**
             * µÚÒ»Ìì×¢²á´úÂë
             */
            
            /**
             * µÚÈýÌìÔöÌí»ý·Ö¹¦Ð§ 
             */
            sendIntegral($data);
        }
    }
    /**
     * ·¢ËͶÌÐÅ
     * @param  {[type]} $data [description]
     * @return {[type]}       [description]
     */
    function sendMsg($data){
        /*
                balabala
         */
    }
    /**
     * ÔùÓè»ý·Ö
     * @param  {[type]} $data [description]
     * @return {[type]}       [description]
     */
    function sendIntegral($data){
        /*
                balabala
         */
    }

µÇ¼ºó¸´ÖÆ

¿ÉÊÇÎÒÃÇÏëÒª°Ñ³ÌÐò¿ªÔª³öÈ¥Èøü¶àµÄÈ˼ÓÈ룬ÕâÖÖÖ±½ÓÐÞ¸ÄÔ´ÂëÂëµÄ·½·¨Ê¼ÖÕ²»ÊÇÌ«ºÃ£¬Õâ¸öʱ¼ä£¬ÎÒÃǾͿÉÒÔʹÓù³×ӵķ½·¨£¬ÔÚ×¢²áÀÖ³ÉÇ°ºó×¢²áÁ½¸ö¹³×Ó£¬ÎÒÃÇÖ»ÐèÒª°Ñ¹³×Ó¸æËß¿ª·¢Ö°Ô±¾ÍÐÐÁË£¬ÕâÑùËûÃDz»±Ø¸Ä±äÔ´ÂëÂë¾Í¿ÉÒÔÈÝÒ׵ľÙÐÐÍØÕ¹¡£

    class Register{
        public function index(){
            
            //×¢²áÇ°¹³×Ó
            Hook::run('registerBefore');
            /**
             * ×¢²á´úÂë
             */
            
            //×¢²áºó¹³×Ó
            Hook::run('registerAfter');
        }
    }

µÇ¼ºó¸´ÖÆ

¹³×ӵļòÖÊÆÓÏÖ´úÂë

Ŀ¼½á¹¹£º../hook/Hook.php

¹³×Ó½¹µãÀàHook.php£º

    <?php
    
    namespace hook;
    class Hook{
        
        static protected $hook = [];
        
        /**
         * ²å¼þ×¢²á
         * @param [type] $name   [description]
         * @param [type] $addons [description]
         */
        static public function add($name,$addons){
            self::$hook[$name] = $addons;
        }
        /**
         * ²å¼þÖ´ÐÐ
         * @param  [type] $name [description]
         * @return [type]       [description]
         */
        static public function run($name){
            if(isset(self::$hook[$name])){
                $method = (new self::$hook[$name]());
                   call_user_func([$method,$name]);
            }
            
        }
    }

µÇ¼ºó¸´ÖÆ

¼òÆӵIJå¼þdemo£º

    <?php
    namespace addons\demo;
    class Demo{
        public function registerBefore(){
            echo 'registerBefore'.'</br>';
        }
        public function registerAfter(){
            echo 'registerAfter'.'</br>';
        }    
    }

µÇ¼ºó¸´ÖÆ

²å¼þʵÏֵĵط½£¬¼´ÉÏÎĵÄ×¢²áµÄÎļþ£º

    <?php
    namespace index\controller;
    use hook\Hook;
    class Index{
        public function index(){
            Hook::run('registerBefore');
            echo '×¢²áÍê³É'.'</br>';
            Hook::run('registerAfter');
            
        }
    }

µÇ¼ºó¸´ÖÆ

Èë¿ÚÎļþindex.php

    <?php
    use index\controller\Index;
    spl_autoload_register('autoload');
    function autoload($name){
        require_once('/'.str_replace('\\','/',$name).'.php');
    }
    //²å¼þ×¢²á
    hook\Hook::add('registerBefore','\\addons\\demo\\Demo');
    hook\Hook::add('registerAfter','\\addons\\demo\\Demo');
    //ŲÓÃ
    $index = new Index();
    $index->index();

µÇ¼ºó¸´ÖÆ

ÔËÐнӿÚÈçÏ£º

    registerBefore    ×¢²áÍê³É    registerAfter

ÈôÊÇÒªÌí¼ÓÐµĹ¦Ð§£¬³ÌÐòÔ±Ö»ÒªÐÞ¸ÄdemoµÄ²å¼þ¾Í¿É£¬ÈôÊÇÒªÍØÕ¹ÐµĹ¦Ð§£¬Ö»ÐèÒªÍØÕ¹registerBeforeºÍregisterAfter¼´¿É¡£ 

ÒÔÉϾÍÊÇthinkphp²å¼þ¹³×ÓµÄʵÏÖ»úÖÆÊÇʲôµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ