thinkphp5ÊÇ·ñÖ§³ÖÊÂÎñ
Ê×ÏÈ£¬ÎÒÃÇÐèÒªÏàʶʲôÊÇÊÂÎñ¡£ÊÂÎñ£¨Event£©ÊÇÅÌËã»úϵͳÖб¬·¢µÄijЩÊÂÇ飬¿ÉÒÔÊÇÓ²¼þ×°±¸·¢³öµÄÐźţ¬Ò²¿ÉÒÔÊÇÈí¼þ³ÌÐòÖеÄijЩÐÐΪ¡£ÔÚ¹¤¾ßµ¼ÏòµÄ±à³ÌÖУ¬ÊÂÎñÖ¸±»´¥·¢µÄÐÐΪ»òÀú³Ì£¬Í¨³£ÓÃÓÚ˵Ã÷¹¤¾ß״̬µÄת±ä¡£ÊÂÎñ¿ÉÒÔÓɲÙ×÷ϵͳ¡¢Ó¦ÓóÌÐò¡¢Óû§½»»¥µÈ¶àÖÖ·½·¨´¥·¢¡£
ÔÚWebÓ¦ÓóÌÐòÖУ¬ÊÂÎñÒ²ÊǺÜÊÇÖ÷ÒªµÄ¿´·¨¡£ÀýÈ磬µ±Óû§µã»÷°´Å¥Ê±£¬½«´¥·¢Ò»¸öÊÂÎñ£¬Õâ¸öÊÂÎñ½«Òý·¢Ò»ÏµÁеIJÙ×÷£¬ÀýÈçÌá½»±íµ¥¡¢ÑéÖ¤Êý¾Ý¡¢´¦ÀíÂß¼¡¢¸üÐÂÊý¾Ý¿âµÈ¡£ÔÚMVCÄ£×ÓÖУ¬¿ÉÒÔ½«ÊÂÎñ´¦Àí×÷ΪControllerÖеÄÒ»ÏЧ£¬ÒÔ±ã¸üºÃµØÕÆ¿ØÓ¦ÓóÌÐòµÄÐÐΪ£¬Ìá¸ßÓû§ÌåÑé¡£
ÄÇô£¬¼ÈÈ»ÊÂÎñÔÆÔÆÖ÷Òª£¬ThinkPHP5ÊÇ·ñÖ§³ÖÊÂÎñÄØ£¿ÃÕµ×ÊÇÒ»¶¨µÄ¡£
ÔÚThinkPHP5ÖУ¬ÊÂÎñ±»³ÆΪ¡°Hook¡±£¬Hook»úÖÆÊÇ¿ò¼ÜÌṩµÄÒ»ÖÖÀ©Õ¹»úÖÆ£¬¿ÉÒÔÉÁ¿ª·¢ÕßÔÚָ׼ʱ¿ÌÖ´ÐÐһЩ×Ô½ç˵µÄ´úÂëÂß¼£¬À´ÔöÇ¿Ó¦ÓóÌÐòµÄ¹¦Ð§¡£¾Ù¸öÀý×Ó£¬ÎÒÃÇ¿ÉÒÔ×Ô¶¯·¢ËÍÒ»·âÓʼþÀ´Í¨ÖªÄ³¸ö²Ù×÷ÒÑÍê³É£¬»òÕß¼ÍÈÎÃü»§µÇ¼ÐÅÏ¢ÔڵǼÀֳɺó¡£
Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡±£»
PHPµÄsplÌṩµÄEventÏà¹ØµÄÀà±»ÓÃÓÚʵÏÖThinkPHP5µÄHook»úÖÆ¡£Ïêϸ¶øÑÔ£¬Ó¦ÓóÌÐòÖпÉÒÔͨ¹ýÒ»¸öÊÂÎñÃû³ÆÀ´°ó¶¨¶à¸öÊÂÎñ´¦Àíº¯Êý£¬ÕâЩÊÂÎñ´¦Àíº¯Êý½«Æ¾Ö¤Ö´ÐеÄÏȺó˳Ðò±»ÒÀ´ÎÖ´ÐС£
ʹÓÃThinkPHP5µÄHook»úÖƺÜÊǼòÆÓ¡£ÔÚÓ¦ÓóÌÐòÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏ·½·¨×¢²áÒ»¸öÊÂÎñ´¦Àíº¯Êý£º
// ×¢²áÊÂÎñ´¦Àíº¯Êý \think\Hook::add('event_name', function() { // ÊÂÎñ´¦ÀíÂß¼ }); // ´¥·¢ÊÂÎñ \think\Hook::trigger('event_name');
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊö´úÂëÖУ¬ÎÒÃÇÊ×ÏÈͨ¹ýadd()ÒªÁì×¢²áÁËÒ»¸öÃûΪevent_nameµÄÊÂÎñ´¦Àíº¯Êý¡£µ±Ó¦ÓóÌÐòÔËÐе½Ä³¸öÌض¨µÄλÖÃʱ£¬¿ÉÒÔͨ¹ýtrigger()ÒªÁìŲÓøÃÊÂÎñ£¬´Ó¶ø´¥·¢¸ÃÊÂÎñ´¦Àíº¯Êý¡£
ÐèҪעÖصÄÊÇ£¬¿ÉÒÔͨ¹ýadd()ÒªÁìΪͳһ¸öÊÂÎñ°ó¶¨¶à¸öÊÂÎñ´¦Àíº¯Êý£¬ÕâЩÊÂÎñ´¦Àíº¯Êý½«Æ¾Ö¤×¢²áµÄÏȺó˳Ðò±»ÒÀ´ÎÖ´ÐС£ÁíÍ⣬ÎÒÃÇ»¹¿ÉÒÔͨ¹ýremove()ÒªÁìÀ´ÒƳýij¸öÊÂÎñ´¦Àíº¯Êý£¬»òÕßͨ¹ýget()ÒªÁìÅÌÎÊij¸öÊÂÎñµÄËùÓд¦Àíº¯Êý¡£
³ýÁËÉÏÊö»ù±¾¹¦Ð§Í⣬ThinkPHP5µÄHook»úÖÆ»¹ÌṩÁ˸»ºñµÄÊÂÎñ¹³×Ó£¬¿ÉÒÔÖª×㿪·¢ÕßÖÖÖÖÐèÇó¡£ÀýÈ磬ÔÚÇëÇóµÖ´ïʱ¡¢¿ØÖÆÆ÷³õʼ»¯Ê±¡¢ÊÓͼäÖȾʱ¡¢Ó¦ÓóÌÐò¿¢ÊÂʱµÈµÈ£¬¶¼¿ÉÒÔͨ¹ýÏìÓ¦µÄÊÂÎñ¹³×ÓÀ´À©Õ¹Ó¦ÓóÌÐòµÄ¹¦Ð§¡£
ÒÔÉϾÍÊÇthinkphp5ÊÇ·ñÖ§³ÖÊÂÎñµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡