¿­·¢k8¹ú¼Ê

̽Ë÷PSR17PHPÖÐHTTP¹¤³§µÄδÀ´ÐÂÇ÷ÊÆ
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº³Â־ǿ2025-08-15 04:13:46
bsyufguiaskjbcjkfbwuegfubsadlfxzbkujfweqbfugskjfbsjksdf

ÔÚÏÖ´ú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¿ª·¢ÐÂʱ´ú°É¡£

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