¿­·¢k8¹ú¼Ê

̽Ë÷PSR17PHPÖÐHTTP¹¤³§µÄδÀ´ÐÂÇ÷ÊÆ
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº³ÂÏ£·½2025-08-18 00:32:53
ehdihoeyoliehwiepwohef9orifsuhgiosiofhsiohsiwshoilhfiowhoefw

ÔÚÏÖ´úWeb¿ª·¢µÄÎę̀ÉÏ£¬PHPÒÀÈ»ÊÎÑÝ×Ų»¿É»òȱµÄ½ÇÉ«¡£´Ó¹Å°åµÄÍøÒ³ÌìÉúµ½ÏÖÔÚÖØ´óµÄAPIЧÀÍ£¬PHPµÄÒ»Ö±ÑݽøÍƶ¯×Å»¥ÁªÍøÉú³¤µÄÿһ¸öϸ½Ú¡£¶øÔÚÕⲨÊÖÒÕÀ˳±ÖУ¬±ê×¼»¯³ÉΪÌáÉý´úÂë¿Éά»¤ÐÔ¡¢À©Õ¹ÐԺͼæÈÝÐÔµÄÖ÷ÒªÍÆ¶¯Á¦¡£PHP-FIG£¨PHPFrameworkInteropGroup£©ÕýÊÇÒýÁìÕâһƫÏòµÄ½¹µãʵÁ¦£¬ËüÒ»Ö±ÍÆ³öһϵÁеġ°ÍƼö±ê×¼¡±£¬ÒÔÔö½øPHP²î±ð¿ò¼Ü¡¢×é¼þ¼äµÄЭ×÷¡£

¿ËÈÕ£¬±¸ÊÜÖõÄ¿µÄPSR-17¡ª¡ª¼´HTTPFactories£¨HTTP¹¤³§±ê×¼£©ÒýÁì×ÅWeb¿ª·¢½øÈëÁËÒ»¸öȫеĽ׶Ρ£

ʲôÊÇPSR-17£¿¼òÆÓÀ´Ëµ£¬Ëü½ç˵ÁËÔÚPHPÖн¨Éè¡¢²Ù×÷HTTPÐÂÎÅ£¨°üÀ¨ÇëÇóºÍÏìÓ¦£©µÄ¹¤³§½Ó¿Ú¡£ÕâÒâζ×Å£¬ÎÞÂÛÄãʹÓÃÄĸö¿ò¼Ü»ò¿â£¬Ö»Òª×ñÕÕÕâÒ»±ê×¼£¬¿ª·¢³öÀ´µÄ´úÂë¾ÍÄÜÔÚ²î±ðÇéÐμäÎÞ·ìÇл»£¬´ó´ó½µµÍÁ˼æÈݱ¾Ç®¡£Õâ¸ö±ê×¼µÄ·ºÆð£¬ÊÇΪÏàʶ¾öÒÔǰÔÚʹÓÃHTTPÐÂÎÅʱ±£´æµÄ¶àÑù»¯¡¢Ë鯬»¯ÎÊÌâ¡£

¸÷È˶¼ÖªµÀ£¬HTTPÇëÇóºÍÏìÓ¦µÄ¹¹½¨ÔÚÖÖÖÖ¿ò¼ÜºÍ¿âÖÐÍùÍù·×ÆçÑù£¬µ¼ÖÂǨáã¡¢ÕûºÏºÍ²âÊÔ±äµÃÖØ´ó·±Ëö¡£¶øPSR-17ͨ¹ýÌṩһÌ×ͳһµÄ¹¤³§½Ó¿Ú£¬Í³Ò»ÁËHTTPÐÂÎŵĽ¨ÉèÁ÷³Ì¡£

ΪʲôÕâ¸ö±ê×¼ÔÆÔÆÖ÷Òª£¿Ôµ¹ÊÔ­ÓÉÐí¶à£¬µ«×î½¹µãµÄ£¬ÊÇËü´øÀ´ÁËÆ½Ì¨ºÍ¿ò¼ÜÖ®¼äµÄÇÅÁº×÷Óá£ÏëÏóһϣ¬ÈôÊÇÄ㿪·¢Ò»¸öRESTAPIЧÀÍ£¬¿ÉÄÜ»áÒÀÀµ²î±ðµÄ¿âÀ´´¦Öóͷ£ÇëÇó¡¢ÏìÓ¦£¬ÉõÖÁÔÚ²î±ðµÄÏîÄ¿ÖÐÇл»¿ò¼Ü¡£¶øÓÐÁËPSR-17£¬ËùÓÐÕâЩ¿â¶¼¿ÉÒÔ½ÓÄɱê×¼µÄ¹¤³§½Ó¿ÚÀ´½¨ÉèHTTP¹¤¾ß£¬Ê¹µÃÕû¸öϵͳ±äµÃÔ½·¢Ä£¿é»¯¡¢¿É×éºÏ¡£

Õâ²»µ«¼ÓËÙÁË¿ª·¢Á÷³Ì£¬Ò²ÈòâÊÔ¡¢Éý¼¶¡¢Î¬»¤±äµÃ¸ü¼òÆÓ¡¢¸ü¸ßЧ¡£

³ýÁËÌá¸ß¼æÈÝÐÔ£¬PSR-17»¹ÃãÀø¿ª·¢ÕßÉè¼Æ¸üΪÎÞаµÄ´úÂë½á¹¹¡£Ëü½ç˵Á˶àÖÖ¹¤³§½Ó¿Ú£¬ºÃ±È½¨ÉèÇëÇó¡¢ÏìÓ¦¡¢URI¡¢Í·ÐÅÏ¢µÈµÄ¹¤³§ÒªÁ죬¶øÕâЩ¶¼¿ÉÒÔͨ¹ýÒÀÀµ×¢ÈëÎÞаÉèÖá£Ðí¶à¿ò¼ÜÒѾ­×îÏÈÖ§³Ö»òÖð²½½ÓÄÉÕâÒ»±ê×¼£¬Î´À´£¬ÕÆÎÕPSR-17£¬²»µ«ÄÜÈÃÄãÔÚÐÐÒµÄÚ¼á³Ö¾ºÕùÁ¦£¬»¹ÄÜÔÚÄãµÄÏîÄ¿ÖÐʵÏָ߶ȵÄÁýͳϢÕùñî¡£

ºÃ±ÈÔÚ΢ЧÀͼܹ¹ÖУ¬²î±ðЧÀÍÖ®¼äƵÈÔת´ïHTTPÐÂÎÅ£¬×ñÕÕÕâ¸ö±ê×¼»áÈÃʵÏּƻ®Ô½·¢Í³Ò»¡¢¾«Á·¡£

ËäÈ»£¬PSR-17Ò²²¢·ÇÁæØê±£´æ£¬ËüºÍÆäËüÏà¹Ø±ê×¼ÈçPSR-7£¨HTTPÐÂÎŽӿڣ©ÅäºÏ×é³ÉÁËPHPµÄHTTPÐÂÎÅÉú̬¡ £»»¾ä»°Ëµ£¬PSR-17Ö÷ÒªÈÏÕæ¡°½¨É衱HTTPÐÂÎÅ£¬¶øPSR-7Ôò½ç˵ÁËÕâЩÐÂÎŵġ°ÄÚÈݺͲÙ×÷¡±¡£¶þÕßÏศÏà³É£¬ÐγÉÁËÍêÕûµÄ½â¾ö¼Æ»®£¬´ÓÐÂÎŵġ°ÖÆÔ족µ½¡°´¦Öóͷ£¡±£¬Ã¿Ò»²½¶¼±»±ê×¼»¯¡£

ÕâÑùÒ»À´£¬¿ª·¢Õß¿ÉÒÔרעÓÚÓªÒµÂß¼­£¬ÎÞÐèµ£ÐĵײãµÄÐÂÎÅʵÏÖϸ½Ú¡£

PSR-17µÄ·ºÆð£¬²»µ«ÌáÉýÁËPHPÔÚHTTPͨѶ·½ÃæµÄµ×²ã±ê×¼»¯Ë®Æ½£¬¸üΪδÀ´Web¿ª·¢ÌṩÁËǿʢµÄ»ù´¡ÉèÊ©¡£ÎÞÂÛÊǹ¹½¨¸ßÐÔÄܵÄAPI¡¢Î¢Ð§ÀÍ£¬ÕվɾÙÐÐϵͳµÄÉý¼¶Ç¨áã£¬ÕÆÎÕÕâ¸ö±ê×¼¶¼ÄÜ´øÀ´ÏÔÖøµÄÓÅÊÆ¡£Ëæ×ÅÔ½À´Ô½¶àµÄ¿ªÔ´ÏîÄ¿ºÍ¿ò¼ÜÖ§³ÖPSR-17£¬ÌáǰÃ÷È·²¢Ó¦ÓÃÕâÒ»±ê×¼£¬½«»áÈÃÄãµÄ¿ª·¢Ö®Â·¸ü˳³©¡¢¸ü¸ßЧ¡£

ÉîÈëÏàʶPSR-17µÄ½¹µã½Ó¿ÚÓëʵÏÖ·½·¨£¬²»µ«¿ÉÒÔ°ïÄãд³ö¸üÇкÏÐÐÒµ¹æ·¶µÄ´úÂ룬ҲÄÜΪÄãµÄÏîÄ¿´øÀ´¾ÃÔ¶µÄÊÕÒæ¡£±ê×¼µÄʵÖÊ£¬ÊÇΪÁ˽µµÍ¸÷ÈËÔÚ²î±ð×é¼þÖ®¼äµÄ¼¯³ÉÄѶÈ£¬Ê¹µÃ´úÂë±äµÃ¸ü¾ß»¥²Ù×÷ÐԺͿÉά»¤ÐÔ¡£ÎÒÃǽ«Ïêϸ²ð½âPSR-17ÖеÄÒªº¦½Ó¿Ú£¬Ì½ÌÖËüÃǵÄÉè¼ÆÍ·ÄÔºÍÏÖʵӦÓó¡¾°¡£

PSR-17½ç˵Á˼¸¸ö½¹µã¹¤³§½Ó¿Ú£¬×îÖ÷ÒªµÄ°üÀ¨£º

ServerRequestFactoryInterface£ºÓÃÓÚ½¨ÉèЧÀÍÆ÷ÇëÇó¹¤¾ß £»RequestFactoryInterface£ºÓÃÓÚ½¨ÉèÇëÇó¹¤¾ß £»ResponseFactoryInterface£ºÓÃÓÚ½¨ÉèÏìÓ¦¹¤¾ß £»StreamFactoryInterface£ºÓÃÓÚ½¨ÉèÁ÷¹¤¾ß £»UploadedFileFactoryInterface£ºÓÃÓÚ½¨ÉèÉÏ´«µÄÎļþ¹¤¾ß £»UriFactoryInterface£ºÓÃÓÚ½¨ÉèURI¹¤¾ß¡£

ÕâЩ½Ó¿ÚµÄÅäºÏÄ¿µÄ£¬ÊÇÌṩһÌ×ͳһµÄÁ÷³Ì£¬ÓÃÀ´ÌìÉúHTTPÏà¹ØµÄÖÖÖÖ¹¤¾ß¡£ºÃ±È£¬RequestFactoryInterface»áÌṩһ¸öÒªÁìcreateRequest()£¬ÈÃÄã¿ÉÒÔÓòî±ðµÄ²ÎÊý¿ìËÙ¹¹½¨ÇëÇ󹤾ߣ¬ÎÞÐëµ£ÐÄÏêϸµÄʵÏÖϸ½Ú¡£ÕâÖÖ¡°½Ó¿Ú+¹¤³§¡±µÄÉè¼ÆÍ·ÄÔ£¬¼«´óµØÔöÇ¿ÁË´úÂëµÄÎÞаÐÔºÍÀ©Õ¹ÐÔ¡£

ÔÚʵÏÖ²ãÃæ£¬´ó²¿·Ö³ÉÊìµÄPHP¿âÒÑÖ§³ÖÕâЩ½Ó¿Ú¡£ºÃ±È£¬ZendDiactoros¡¢NyholmPSR-7ʵÏÖ¶¼ÌṩÁ˸÷×ԵŤ³§À࣬ÇкÏPSR-17±ê×¼¡£¿ª·¢Õß¿ÉÒÔÑ¡Ôñ×Ô¼ºÏ°¹ßµÄʵÏÖ£¬ÉõÖÁ×Ô½ç˵¹¤³§£¬Ö»ÒªÖª×ã½Ó¿Ú½ç˵¾ÍÐС£ÕâÖÖ×ÔÓɶÈ£¬Îª²î±ðÏîÄ¿µÄÌØÊâÐèÇó·­¿ªÁ˿ռ䣬¸üÀû±ãºóÆÚµÄ²âÊÔ»òÄ£Äâ¡£

ÏêϸӦÓÃʾÀý£º¼ÙÉèÄãÔÚ¿ª·¢Ò»¸öAPIЧÀÍ£¬ÄãÐèÒªÔÚ´¦Öóͷ£ÇëÇóʱÌìÉúÏìÓ¦¹¤¾ß£¬»òÕßÔÚÖÐÐļþÖÐÐÞ¸ÄÇëÇóµÄijЩ²¿·Ö¡£Ê¹ÓÃÇкÏPSR-17µÄ¹¤³§£¬Äã¿ÉÒÔÏñÕâÑù²Ù×÷£º

$factory=newNyholm\Psr7\Factory\Psr17Factory();//PSR-17±ê×¼¹¤³§$request=$factory->createRequest('GET','https://api.example.com/data');$response=$factory->createResponse(200);

ÕâÑù£¬ÎÞÂ۵ײãʵÏÖÔõÑù±ä»»£¬Ö»ÒªÇкϽӿÚ£¬´úÂë¶¼¿ÉÒÔÎȹÌÔËÐУ¬´Ó¶øÊµÏÖÕæÕýµÄ½âñî¡£

PSR-17²»Ö¹ÓÃÓÚͨË×ÇëÇó/ÏìÓ¦µÄ½¨Éè¡£ÔÚ¹¹½¨ÖØ´óµÄÖÐÐļþ»ò²âÊÔÇéÐÎʱ£¬ÕâÒ»±ê×¼±äµÃÓÈΪÖ÷Òª¡£ºÃ±È£¬Ä£ÄâÇëÇóʾÀý£º

//½¨ÉèÒ»¸öÄ£ÄâÇëÇó£¬ÓÃÓÚ²âÊÔ$mockRequest=$factory->createRequest('POST','/submit')->withHeader('Content-Type','application/json')->withBody($bodyStream);

ÕâÑùÒ»À´£¬²âÊÔÓÃÀý±äµÃ¼òÆÓÖ±¹Û¡£ÔٺñÈ£¬ÎªÁËʵÏÖ¶à°æ±¾µÄAPI¼æÈÝ£¬Äã¿ÉÒÔÔÚ²î±ðÇéÐÎÖÐÇл»²î±ðµÄ¹¤³§ÊµÏÖ£¬²»ÐèÒªÐÞ¸ÄÓªÒµÂß¼­¡£

Ö÷ÒªµÄÊÇ£¬ÒªÃ÷È·PSR-17µÄÉè¼ÆÀíÄîÊÇ¡°½Ó¿ÚÓÅÏÈ¡±¡ªËü½ç˵ÁËÃ÷È·µÄ×óȯ£¬µ«Ã»Óаó¶¨ÏêϸµÄʵÏÖ¡£ÔÆÔÆÒ»À´£¬ÈκÎÖ§³ÖPSR-17µÄ¿â¶¼¿ÉÒÔÎÞ·ìÁ¬Ïµ¡£Õâ²»µ«¼ò»¯ÁË¿ò¼ÜÓë¿âÖ®¼äµÄÏàÖú£¬¸üΪδÀ´µÄ¿ª·¢Ä£Ê½ÆÌƽÁËõè¾¶¡£ºÃ±È£¬Ëæ×ÅÔÆÔ­Éú¡¢ÈÝÆ÷»¯µÄÉú³¤£¬±ê×¼»¯µÄAPI½¨É蹤³§ÈÃ΢ЧÀÍÖ®¼äµÄͨѶ±äµÃÏñÆ´²å»ýľһÑù±ãµ±¡£

¼ÌÐøÍÆ½øÕâ¸öÀíÄһЩ¾­µäµÄ¿ò¼ÜÈçLaravel¡¢SymfonyÒ²ÔÚÖð²½ÒýÈëPSR-17½Ó¿Ú£¬ÒÔÔöÇ¿À©Õ¹ÐԺͻ¥²Ù×÷ÐÔ¡£×÷Ϊ¿ª·¢Õߣ¬³ýÁËÕÆÎչŰåµÄÇëÇóÏìÓ¦´¦Öóͷ££¬¸üÓ¦µ±¹Ø×¢±ê×¼½Ó¿ÚµÄʹÓ㬰ÑËü×÷Ϊ¹¹½¨¸ßÆ·ÖÊ¡¢¿ÉÀ©Õ¹PHPÓ¦ÓõĻùʯ¡£

δÀ´Ç÷ÊÆÏÔȻָÏò¸ü±ê×¼»¯¡¢¸üÄ£¿é»¯µÄWeb¿ª·¢¼Ü¹¹¡£ÕÆÎÕPSR-17£¬²»µ«Òâζ×ÅÄãÕ¾ÔÚÁËÊÖÒÕµÄÇ°ÑØ£¬¸üÒâζ×ÅÄãÄÜÔÚһֱת±äµÄÊÖÒÕÇéÐÎÖÐÇáËÉÓ¦¶ÔÖÖÖÖÌôÕ½¡£ÎÞÂÛÊÇÖØ´óµÄAPI¼¯³É£¬ÕÕ¾É΢ЧÀ͵ÄÄ£¿é»¯°²ÅÅ£¬HTTP¹¤³§µÄ±ê×¼»áΪÄãÌṩ¼áʵµÄ»ù´¡¡£¾ÍÏñÒ»¿é¸ßÆ·ÖÊµÄÆ´Í¼£¬ÕâЩ±ê×¼Õýһֱƴ½Ó³öPHPµÄδÀ´»­¾í¡£

×ܽ᣺´ÓÏàʶ½¹µã½Ó¿Ú£¬µ½ÏÖʵӦÓó¡¾°£¬ÔÙµ½Î´À´Éú³¤Æ«Ïò£¬PSR-17¶¼Õ¹ÏÖ³öÁËÆäÔÚPHPÉú̬ÖеÄÖ÷Òª¼ÛÖµ¡£ÈÃÎÒÃÇÅäºÏÆÚ´ý£¬ÕâÒ»±ê×¼ÄÜÏòµ¼PHP¿ª·¢ÕßÒ»ÆðÂõÏòÔ½·¢¸ßЧ¡¢Í³Ò»¡¢¿Éά»¤µÄWeb¿ª·¢ÐÂʱ´ú°É¡£

»ã·á¿Ø¹ÉÔÚ¸Û½»Ëù»Ø¹º122Íò¹É ½ð¶î1.19ÒÚ¸ÛÔª
ÔðÈα༭£º ³Â¼ªÏé
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È·£¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼£¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Ò飬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP£¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«Öںţ¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƲúʱ»ú¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
¹ãÖÝ£ºÖ§³Ö¹ãÖÝÆÚ»õÉúÒâËùÍÆ³öÓëÏã¸ÛÉúÒâËù¿ç¾³ÏàÖúÆ·ÖÖ
//1
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿