laravel ÃÅÃæÔÀíÔõôʵÏÖ
laravelÊÇÒ»¸ö¼«ÆäÊ¢ÐеÄphp¿ò¼Ü£¬ÆäÐí¶àÌØÕ÷¶¼ÒѾ³ÉΪÁËphp¿ª·¢µÄ±ê×¼¡£laravelÃÅÃ棨facade£©ÊÇÒ»¸ö·Ç¾³£ÓõÄÌØÕ÷£¬Ëü¿É¼ò»¯¿ª·¢£¬Ê¹´úÂë¸üÈÝÒ×ÔĶÁ¡¢Ã÷È·ºÍά»¤¡£ÃÅÃæ±³ºóµÄÔÀíÊÇʲô£¿ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«ÌÖÂÛÃÅÃæģʽµÄÊÂÇéÔÀí£¬ÒÔ¼°ÔÚlaravelÖÐÔõÑùʵÏÖËü¡£
ÃÅÃæģʽ
ÃÅÃæģʽÊÇÒ»ÖÖÉè¼Æģʽ£¬ÓÃÓÚΪÏÖÓеÄÖØ´ó´úÂë¿âÌṩ¼ò»¯µÄ»á¼û½Ó¿Ú¡£Õâ¸ö½Ó¿Úͨ³£ÊÇÒ»¸ö¾²Ì¬ÒªÁ죬¿ÉÒÔŲÓÃÖØ´óµÄ¡¢ÃæÏò¹¤¾ßµÄ´úÂë¿â£¬Í¨¹ý¼òÆÓ»òÒ×ÓÚÃ÷È·µÄ·½·¨£¬¼ò»¯ÁË»á¼û¡£ÃÅÃæģʽµÄʵÏÖ¿ÉÒÔ¼ò»¯´úÂ룬²¢Ìá¸ß¿É¶ÁÐԺͿÉά»¤ÐÔ¡£
ÃÅÃæģʽµÄʹÓÃÕßÎÞÐèÏàʶÖØ´óµÄʵÏÖϸ½Ú£¬Ö»ÐèҪŲÓþ²Ì¬½Ó¿Ú¼´¿ÉÍê³ÉÄ¿µÄ²Ù×÷¡£Òò´Ë£¬ÃÅÃæÌṩÁËÒ»ÖÖ¸üºÃµÄ½çÃ棬ÒÔÒþ²ØÖØ´óÐÔ²¢Ìṩ¸üÒ×ÓÚʹÓõÄAPI¡£
ÔÚLaravelÖУ¬ÃÅÃæ±»ÓÃÀ´ÌåÏÖLaravelÖеÄЧÀÍ¡£ÀýÈ磬ÔÚ»á¼û»º´æЧÀÍʱ£¬Äú¿ÉÒÔʹÓÃLaravelµÄCacheÃÅÃæ¡£
LaravelÃÅÃæÔÀí
ÔÚLaravelÖУ¬ÃÅÃæÊÇÒ»ÖÖÁýͳÓÃÓÚ»á¼ûЧÀ͵ÄÀà¡£LaravelÌṩÁËÐí¶àЧÀÍ£¬ÕâЩЧÀÍ¿ÉÒÔͨ¹ýÃÅÃæÀ´»á¼û¡£ÃÅÃæÒþ²ØÁËЧÀÍÈÝÆ÷µÄʵÏÖϸ½Ú£¬Ê¹¿ª·¢Ö°Ô±¿ÉÒÔ¸üÇáËɵØʹÓúÍά»¤Ð§ÀÍ¡£
LaravelÄÚÖõÄÃÅÃæºÍÄú½ç˵µÄÃÅÃæÏàͬ¡£¿ÉÊÇ£¬LaravelÖеÄÃÅÃæʵÏÖÊÇÓÐЩÌرðµÄ¡£
ÃÅÃæÓÐÁ½¸öÖ÷Òª²¿·Ö£ºÊôÓÚLaravelµÄÃÅÃæ»ùÀ࣬ºÍÄú½ç˵µÄÃÅÃæÀà¡£
́̾ȝˈ
LaravelµÄÃÅÃæ»ùÀàΪÄúµÄÃÅÃæÌṩÁËÐí¶à±ãµ±¡£Ëü¾ßÓÐÒÔϹ¦Ð§£º
¾²Ì¬ÊðÀí
»á¼ûЧÀÍÈÝÆ÷
ʵÀý»¯ÃÅÃæÀà
LaravelÌṩÁËÒ»¸öIlluminate\Support\FacadesÃüÃû¿Õ¼ä£¬¿ÉÓÃÓÚ½ç˵ÃÅÃæ¡£DoSomethingÃÅÃæ¿ÉÒÔ½ç˵Ϊ£º
namespace Illuminate\Support\Facades; class DoSomething extends Facade { protected static function getFacadeAccessor() { return 'Something'; } }
µÇ¼ºó¸´ÖÆ
Õâ¸öÃÅÃæÀà¼ÌÐø×ÔIlluminate\Support\Facades\Facade¡£¸ÃÀàÓÐÒ»¸öÊܱ£»¤µÄgetFacadeAccessorÒªÁ죬·µ»Ø¡°Something¡±¡£È»ºó£¬LaravelʹÓøÃÒªÁì¼ìË÷ÓëÃÅÃæ¹ØÁªµÄʵÀý¡£ÔÚÕâÖÖÇéÐÎÏ£¬Ëü½«´ÓЧÀÍÈÝÆ÷ÖмìË÷Ò»¸öÃûΪ Something µÄʵÀý¡£
́̾ˈ
ÃÅÃæÀàÃû×Öí§Ò⣬µ«Í¨³£Ãû³ÆÓëЧÀÍÃû³ÆÏàͬ£¬¶¼Ê¹ÓÃÍÕ·åÃüÃû·¨¡£
ÃÅÃæÀàÊÇÕæÕýʹÓÃÃÅÃæµÄµØ·½¡£Ëüͨ³£ÊÇÒ»¸öµ¥ÀýʵÀý£¬²¢¿ÉÓÃÓÚÍê³ÉÐí¶à²î±ðµÄʹÃü¡£
ÀýÈ磬ÒÔÏÂÊÇÒ»¸öÃÅÃæÀàʾÀý£º
namespace App\Facades; use Illuminate\Support\Facades\Facade; class MyService extends Facade { protected static function getFacadeAccessor() { return 'my-service'; } }
µÇ¼ºó¸´ÖÆ
»ùÀàÈ·¶¨ÁËFacadeÀàÔõÑùʵÏֵIJÙ×÷£¬¶ø²»ÊÇÃÅÃæÀà¡£FacadeÀ಻ÐèʵÏÖÈκι¦Ð§¡£
ÃÅÃæÀàʵÏÖËùÓеIJÙ×÷¡£
ÔÚÕâ¸öʾÀýÖУ¬ÃÅÃæÀà¡° MyService ¡±¼ÌÐø×ÔFacade»ùÀ࣬²¢ÊµÏÖÁËgetFacadeAccessor()ÒªÁìÀ´¼ìË÷ЧÀÍÈÝÆ÷ÖеÄʵÀý¡£ÔÚ±¾ÀýÖУ¬ÃÅÃæʹÓÃÁËÒ»¸öÃûΪ¡° my-service ¡±µÄʵÀý¡£
ÃÅÃæµÄʹÓÃ
LaravelÃÅÃæÊÇÓÃÓÚ»á¼ûЧÀ͵Ä×î³£¼ûÒªÁìÖ®Ò»¡£Ôڼܹ¹Öдó×ÚʹÓã¬ËüʹµÃÄúÄܹ»ÇáËɵØÖÎÀíºÍʹÓÃЧÀÍ¡£
ÒÔÏÂÊÇÔõÑùÔÚLaravelÓ¦ÓóÌÐòÖÐʹÓÃÃÅÃæµÄʾÀý£º
use App\Facades\MyService; // ŲÓÃÃÅÃ澲̬ҪÁì MyService::doSomething();
µÇ¼ºó¸´ÖÆ
µ±ÄúŲÓÃÃÅÃæʱ£¬Laravel»á½øÒ»²½Ê¹ÓÃÃÅÃæ»ùÀàºÍÃÅÃæÀàÀ´´¦ÀíÇëÇó¡£LaravelʹÓÃÃÅÃæ»ùÀàÀ´ÊµÀý»¯ÃÅÃæÀ࣬²¢»Øµ÷ÃÅÃæÀàµÄ¾²Ì¬doSomething()ÒªÁì¡£
ÁíÒ»¸ö³£¼ûÓÃÀýÊǸ߼¶ÉèÖá£ÃÅÃ滹¿ÉÒÔÓÃÓÚ»á¼ûÉèÖÃÎļþÖеÄÉèÖÃÑ¡Ï
use Illuminate\Support\Facades\Config; // »ñÈ¡ÉèÖÃÑ¡Ïî $debug_mode = Config::get('app.debug');
µÇ¼ºó¸´ÖÆ
µ±ÄúŲÓÃÃÅÃæʱ£¬Laravel¼ìË÷ÉèÖÃÎļþµÄÄÚÈÝ¡£ConfigÃÅÃæ¶ÁÈ¡ÉèÖÃÎļþ²¢·µ»Øconfig/app.phpÎļþÖÐÃûΪ¡° debug ¡±µÄÑ¡Ïî¡£Ëü²»ÐèÒªÖ¸¶¨ÆäËûÈκÎÄÚÈÝ¡£
ÃÅÃæµÄÀûÒæ
ÃÅÃæģʽÓм¸¸öÀûÒ棺
ÌṩÁËÒ»¸ö¼òÆӵĽӿڣ¬Õâ¸ö½Ó¿Ú¿ÉÒÔ»á¼û¸üÖØ´óµÄ´úÂë¿â¡£
Ö§³ÖÓû§¼¶±ðµÄ»á¼û¿ØÖÆ£¬²¢ÔÊÐíÄúÒþ²ØÀàµÄʵÏÖϸ½Ú¡£
¼ò»¯´úÂ룬ʹµÃËü¸üÒ×ÓÚÃ÷È·ºÍά»¤¡£
ÔÚLaravelÖУ¬ÃÅÃæÔÚ¸ü¸ßµÄÌõÀíÉÏÌṩÁËͬÑùµÄÀûÒ棺
¼ò»¯ÁË»á¼ûЧÀ͵ÄǶÌ×´úÂë¡£
ͨ¹ýʹЧÀÍÖÎÀíϵͳ¸üÈÝÒ×»á¼ûÀ´Ìá¸ßÁË¿ÉÀ©Õ¹ÐÔ¡£
Ö§³Ö¸ß¼¶ÉèÖã¬Ê¹³ÌÐòÄܹ»Ë³Ó¦¸ü¶àµÄÇéÐΡ£
½áÂÛ
ÃÅÃæģʽÊÇÒ»ÖÖÓÐÓõÄÉè¼Æģʽ£¬¿ÉÓÃÓÚ»á¼û¸üÖØ´óµÄ´úÂë¿â¡£LaravelÃÅÃæÀû±ãÁË»á¼ûЧÀÍ£¬²¢ÌṩÁ˸üÍâ¹ÛµÄ½çÃ棬½µµÍÁË´úÂëµÄÖØƯºóºÍά»¤ÄѶȡ£
Ã÷È·ÃÅÃæÔÚLaravelÖеÄÊÂÇéÔÀí¹ØÓÚ׼ȷʹÓúÍʵÏÖËüÃÇÖÁ¹ØÖ÷Òª¡£LaravelÄÚÖõÄÃÅÃæÌṩÁ˱ã½ÝÇÒÇå¾²µÄ·½·¨À´»á¼ûЧÀÍ£¬µ«ÔÚÐèҪʱ£¬ÄúÒ²¿ÉÒÔ½¨Éè×Ô¼ºµÄÃÅÃæÀà¡£
ʹÓÃÃÅÃæ¿ÉÒÔ´ó´ó¼ò»¯´úÂ룬²¢½«¿ª·¢Ö°Ô±µÄ×¢ÖØÁ¦´ÓÖØ´óµÄʵÏÖϸ½ÚÖнâ·Å³öÀ´£¬Ê¹ËûÃǸüºÃµØ¹Ø×¢ÓÚÓªÒµÂß¼¡£ÈôÊÇÄú»¹Ã»ÓÐʵÑé¹ýÃÅÃ棬ÄÇôÏÖÔÚÊÇʱ¼ä×îÏÈÁË¡£
ÒÔÉϾÍÊÇlaravel ÃÅÃæÔÀíÔõôʵÏÖµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡