{"id":1078,"date":"2025-06-12T12:16:08","date_gmt":"2025-06-12T04:16:08","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1078.html"},"modified":"2025-06-12T12:16:08","modified_gmt":"2025-06-12T04:16:08","slug":"symfony%ef%bc%9a%e5%b0%86%e8%af%b7%e6%b1%82%e5%af%b9%e8%b1%a1%e8%bd%ac%e6%8d%a2%e4%b8%ba%e5%93%8d%e5%ba%94%e5%af%b9%e8%b1%a1","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1078.html","title":{"rendered":"Symfony\uff1a\u5c06\u8bf7\u6c42\u5bf9\u8c61\u8f6c\u6362\u4e3a\u54cd\u5e94\u5bf9\u8c61"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;Symfony&#26694;&#26550;&#20013;&#65292;&#23558;&#35831;&#27714;&#23545;&#35937;&#36716;&#25442;&#20026;&#21709;&#24212;&#23545;&#35937;&#26159;&#22788;&#29702;HTTP&#35831;&#27714;&#21644;&#29983;&#25104;HTTP&#21709;&#24212;&#30340;&#20851;&#38190;&#27493;&#39588;&#12290;&#36825;&#36890;&#24120;&#28041;&#21450;&#21040;&#20351;&#29992;<code>Response<\/code>&#31867;&#26469;&#21019;&#24314;&#21709;&#24212;&#65292;&#24182;&#23558;&#35831;&#27714;&#25968;&#25454;&#23553;&#35013;&#21040;&#21709;&#24212;&#20013;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#23558;&#35831;&#27714;&#23545;&#35937;&#36716;&#25442;&#20026;&#21709;&#24212;&#23545;&#35937;&#65306;<\/p>\n<pre><code class=\"language-php\">use SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpFoundationResponse;\n\n\/\/ &#21019;&#24314;&#19968;&#20010;&#35831;&#27714;&#23545;&#35937;\n$request = Request::createFromGlobals();\n\n\/\/ &#21019;&#24314;&#19968;&#20010;&#21709;&#24212;&#23545;&#35937;\n$response = new Response('Hello, World!', 200);\n\n\/\/ &#23558;&#35831;&#27714;&#25968;&#25454;&#28155;&#21152;&#21040;&#21709;&#24212;&#20013;\n$response-&gt;setContent($request-&gt;getContent());\n\n\/\/ &#36820;&#22238;&#21709;&#24212;\nreturn $response;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#20351;&#29992;<code>Request::createFromGlobals()<\/code>&#26041;&#27861;&#20174;&#20840;&#23616;&#21464;&#37327;&#20013;&#21019;&#24314;&#20102;&#19968;&#20010;&#35831;&#27714;&#23545;&#35937;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;<code>Response<\/code>&#23545;&#35937;&#65292;&#24182;&#35774;&#32622;&#20854;&#29366;&#24577;&#30721;&#65288;&#20363;&#22914;200&#34920;&#31034;&#25104;&#21151;&#65289;&#21644;&#20869;&#23481;&#12290;<\/p>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#23558;&#35831;&#27714;&#30340;&#21407;&#22987;&#20869;&#23481;&#28155;&#21152;&#21040;&#21709;&#24212;&#30340;&#20869;&#23481;&#20013;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#36820;&#22238;&#36825;&#20010;&#21709;&#24212;&#23545;&#35937;&#65292;&#20197;&#20415;&#23458;&#25143;&#31471;&#33021;&#22815;&#25509;&#25910;&#21040;&#21253;&#21547;&#35831;&#27714;&#25968;&#25454;&#30340;&#21709;&#24212;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#23454;&#38469;&#24212;&#29992;&#20013;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#36827;&#34892;&#26356;&#22810;&#30340;&#37197;&#32622;&#21644;&#22788;&#29702;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#20197;&#26681;&#25454;&#35831;&#27714;&#22836;&#12289;&#26597;&#35810;&#21442;&#25968;&#25110;&#20854;&#20182;&#20449;&#24687;&#26469;&#23450;&#21046;&#21709;&#24212;&#20869;&#23481;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#27010;&#35272;<\/h2><p>Symfony&#65292;&#20316;&#20026;Web&#24212;&#29992;&#31243;&#24207;&#26694;&#26550;&#65292;&#20026;&#26500;&#24314;&#24378;&#22823;&#19988;&#32467;&#26500;&#21270;&#30340;PHP&#24212;&#29992;&#25552;&#20379;&#20102;&#22522;&#30784;&#12290;&#22312;&#29616;&#20195;&#30340;Web&#26694;&#26550;&#22914;Symfony&#20013;&#65292;HTTP&#35831;&#27714;-&#21709;&#24212;&#24490;&#29615;&#26159;&#26680;&#24515;&#27010;&#24565;&#20043;&#19968;&#12290;Symfony&#36890;&#36807;&#20004;&#20010;&#20851;&#38190;&#23545;&#35937;&#26469;&#34920;&#31034;&#36825;&#20123;&#27010;&#24565;&#65306;<code>Request<\/code>and<code>Response<\/code>&#22312;HttpFoundation&#32452;&#20214;&#30340;&#19968;&#37096;&#20998;&#12290;&#23613;&#31649;&#36825;&#20123;&#23545;&#35937;&#21508;&#33258;&#26377;&#19981;&#21516;&#30340;&#29992;&#36884;&#65292;&#26377;&#26102;&#30830;&#23454;&#38656;&#35201;&#20174;&#23427;&#20204;&#20013;&#34893;&#29983;&#20986;&#19968;&#20010;&#12290;<code>Response<\/code>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#38382;&#39064;&#20284;&#20046;&#27809;&#26377;&#25552;&#20379;&#36275;&#22815;&#30340;&#20449;&#24687;&#35753;&#25105;&#33021;&#22815;&#29702;&#35299;&#25110;&#22238;&#31572;&#12290;&#22914;&#26524;&#24744;&#33021;&#25552;&#20379;&#26356;&#22810;&#35814;&#32454;&#20449;&#24687;&#25110;&#32773;&#37325;&#26032;&#25551;&#36848;&#24744;&#30340;&#38382;&#39064;&#65292;&#25105;&#23558;&#24456;&#20048;&#24847;&#24110;&#21161;&#24744;&#12290;<code>Request<\/code>&#26412;&#25945;&#31243;&#23558;&#25351;&#23548;&#24744;&#23436;&#25104;&#36825;&#19968;&#36716;&#25442;&#36807;&#31243;&#12290;<\/p><p>&#39318;&#20808;&#65292;&#35753;&#25105;&#20204;&#30830;&#20445;&#25105;&#20204;&#28165;&#26970;&#22320;&#20102;&#35299;&#21452;&#26041;&#20250;&#35758;&#30340;&#30446;&#30340;&#26159;&#20160;&#20040;&#12290;<code>Request<\/code>and &#26159;&ldquo;&#21644;&rdquo;&#30340;&#24847;&#24605;&#12290;<code>Response<\/code>&#29289;&#20307;&#12290;<code>Request<\/code>&#34920;&#31034;&#19968;&#20010;HTTP&#35831;&#27714;&#65292;&#23553;&#35013;&#20102;&#20840;&#23616;&#21464;&#37327;$_GET&#12289;$_POST&#31561;&#20854;&#20182;&#21464;&#37327;&#12290;<code>Response<\/code>&#23545;&#35937;&#25658;&#24102;&#23558;&#35201;&#21457;&#36865;&#22238;&#23458;&#25143;&#31471;&#30340;&#20449;&#24687;&#65292;&#20363;&#22914;&#20869;&#23481;&#12289;&#29366;&#24577;&#30721;&#21644;&#22836;&#20449;&#24687;&#12290;<\/p><h2>&#35774;&#32622;&#19968;&#20010;Symfony&#39033;&#30446;<\/h2><p>&#22312;&#24320;&#22987;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#24050;&#32463;&#22312;&#26426;&#22120;&#19978;&#23433;&#35013;&#20102;Symfony&#12290;&#22914;&#26524;&#24744;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#20351;&#29992;Composer&#36827;&#34892;&#23433;&#35013;&#65306;<\/p><pre><code>composer create-project symfony\/skeleton my_project_name\n<\/code><\/pre><p>&#22312;&#35774;&#32622;&#22909;Symfony&#39033;&#30446;&#21518;&#65292;&#36827;&#20837;&#39033;&#30446;&#30446;&#24405;&#36827;&#34892;&#20197;&#19979;&#27493;&#39588;&#12290;<\/p><h2>&#29702;&#35299;&#35831;&#27714;&#21709;&#24212;&#29983;&#21629;&#21608;&#26399;<\/h2><p>&#22312;Symfony&#20013;&#65292;&#24403;&#35831;&#27714;&#21040;&#36798;Web&#24212;&#29992;&#31243;&#24207;&#26102;&#65292;&#30456;&#24212;&#30340;&#25511;&#21046;&#22120;&#24517;&#39035;&#36820;&#22238;&#19968;&#20010;&#21709;&#24212;&#12290;<code>Response<\/code>&#23545;&#35937;&#12290;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#12290;<code>Response<\/code>&#35831;&#30452;&#25509;&#22635;&#20805;&#20869;&#23481;&#12289;&#29366;&#24577;&#30721;&#21644;&#22836;&#20449;&#24687;&#65306;<\/p><pre><code>\/\/ src\/Controller\/MyController.php\n\nuse SymfonyComponentHttpFoundationResponse;\n\npublic function myAction()\n{\n    $content = 'Hello World!';\n    $status = 200;\n    $headers = [];\n\n    return new Response($content, $status, $headers);\n}\n<\/code><\/pre><p>&#28982;&#32780;&#65292;&#26377;&#26102;&#20320;&#38656;&#35201;&#25512;&#23548;&#20986;<code>Response<\/code>&#22522;&#20110;&#20869;&#23481;&#25110;&#23646;&#24615;&#30340;&#22788;&#29702;<code>Request<\/code>Symfony &#19981;&#25552;&#20379;&#20869;&#32622;&#26041;&#27861;&#26469;&#36716;&#25442;&#19968;&#20010;<code>Request<\/code>&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>Response<\/code>&#23427;&#20204;&#26381;&#21153;&#20110;HTTP&#24490;&#29615;&#30340;&#19981;&#21516;&#37096;&#20998;&#12290;&#20294;&#26159;&#35753;&#25105;&#20204;&#25506;&#32034;&#19968;&#20010;&#35299;&#20915;&#26041;&#26696;&#12290;<\/p><h2>&#26681;&#25454;&#35831;&#27714;&#29983;&#25104;&#22238;&#22797;&#12290;<\/h2><p>&#20026;&#20102;&#23558;&#35831;&#27714;&#23545;&#35937;&#36716;&#25442;&#20026;&#21709;&#24212;&#23545;&#35937;&#65292;&#25105;&#20204;&#38656;&#35201;&#25552;&#21462;&#25105;&#20204;&#24076;&#26395;&#21033;&#29992;&#30340;&#20449;&#24687;&#26469;&#24418;&#25104;&#21709;&#24212;&#12290;<\/p><pre><code>\/\/ src\/Controller\/MyController.php\n\nuse SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpFoundationResponse;\n\npublic function myAction(Request $request)\n{\n    \/\/ Assume we want to respond with the same content type as the request\n    $contentType = $request-&gt;headers-&gt;get('Content-Type');\n    $content = 'This is a response containing the request content type.';\n\n    return new Response($content, Response::HTTP_OK, ['Content-Type' =&gt; $contentType]);\n}\n<\/code><\/pre><p>&#36825;&#37324;&#26159;&#65292;&#25105;&#20204;&#35774;&#23450;&#21709;&#24212;&#30340;&#12290;<code>Content-Type<\/code>&#22836;&#37096;&#24212;&#19982;&#35831;&#27714;&#21305;&#37197;&#12290;&#22312;API&#24320;&#21457;&#20013;&#65292;&#36825;&#22312;&#23458;&#25143;&#31471;&#21487;&#20197;&#25509;&#21463;&#36164;&#28304;&#30340;&#19981;&#21516;&#34920;&#31034;&#24418;&#24335;&#26102;&#38750;&#24120;&#23454;&#29992;&#12290;<\/p><h2>&#19982;&#35831;&#27714;&#20869;&#23481;&#21512;&#20316;<\/h2><p>&#26377;&#26102;&#65292;&#24744;&#21487;&#33021;&#24076;&#26395;&#22312;&#21709;&#24212;&#20013;&#21253;&#21547;&#35831;&#27714;&#20027;&#20307;&#30340;&#19968;&#37096;&#20998;&#12290;&#20363;&#22914;&#65306;<\/p><pre><code>public function mirrorContentAction(Request $request)\n{\n    $content = $request-&gt;getContent();\n\n    return new Response($content, Response::HTTP_OK);\n}\n<\/code><\/pre><p>&#36825;&#26159;&#22312;&#21709;&#24212;&#20013;&#22238;&#26174;&#35831;&#27714;&#20307;&#30340;&#21151;&#33021;&#12290;&#36825;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#22238;&#22768;&#26381;&#21153;&#22120;&#65292;&#21487;&#29992;&#20110;&#27979;&#35797;&#21644;&#39564;&#35777;&#12290;<\/p><h2>&#20351;&#29992;&#23376;&#35831;&#27714;<\/h2><p>&#22312;&#26576;&#20123;&#22330;&#26223;&#19979;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#22312;&#24212;&#29992;&#20869;&#37096;&#25191;&#34892;&#21478;&#19968;&#20010;&#35831;&#27714;&#24182;&#36820;&#22238;&#20854;&#21709;&#24212;&#26469;&#22788;&#29702;&#19968;&#20010;&#35831;&#27714;&#12290;Symfony &#25552;&#20379;&#20102;&#19968;&#31181;&#26041;&#27861;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#65292;&#21487;&#20197;&#36890;&#36807;&#22312;&#25511;&#21046;&#22120;&#20869;&#20351;&#29992; HttpKernel &#30340;&#23376;&#35831;&#27714;&#21151;&#33021;&#26469;&#36827;&#34892;&#12290;<code>handle()<\/code>&#35813;&#26041;&#27861;&#23558;&#22788;&#29702;&#20869;&#37096;&#35831;&#27714;&#24182;&#36820;&#22238;&#19968;&#20010;<code>Response<\/code>&#23545;&#35937;&#12290;<\/p><pre><code>\/\/ src\/Controller\/MyController.php\n\nuse SymfonyComponentHttpKernelHttpKernelInterface;\n\npublic function myAction(Request $request, HttpKernelInterface $httpKernel)\n{\n    $subRequest = $request::create(\n        '\/some\/other\/route',\n        'GET',\n        [],\n        $request-&gt;cookies-&gt;all(),\n        $request-&gt;files-&gt;all(),\n        $request-&gt;server-&gt;all()\n    );\n\n    \/\/ Forward the original Content-Type header\n    $subRequest-&gt;headers-&gt;set('Content-Type', $request-&gt;headers-&gt;get('Content-Type'));\n\n    $response = $httpKernel-&gt;handle($subRequest, HttpKernelInterface::MAIN_REQUEST);\n\n    return $response;\n}\n<\/code><\/pre><p>&#36825;&#20010;&#20869;&#37096;&#37325;&#23450;&#21521;&#21040;&#21478;&#19968;&#20010;&#36335;&#30001;&#65292;&#21516;&#26102;&#20445;&#25345;&#21407;&#22987;&#35831;&#27714;&#22836;&#12290;<\/p><h2>&#20351;&#29992;&#24037;&#21378;&#21644;&#26381;&#21153;&#12290;<\/h2><p>&#22914;&#26524;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#20027;&#35201;&#20381;&#36182;&#20110;&#23558;&#35831;&#27714;&#36716;&#25442;&#20026;&#21709;&#24212;&#65292;&#24744;&#21487;&#20197;&#32771;&#34385;&#32534;&#20889;&#19968;&#20010;&#24037;&#21378;&#25110;&#26381;&#21153;&#31867;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;&#36825;&#20010;&#31867;&#21487;&#20197;&#20174;&#25968;&#25454;&#28304;&#25552;&#21462;&#25152;&#38656;&#30340;&#25968;&#25454;&#12290;<code>Request<\/code>&#29289;&#20307;&#24182;&#21019;&#24314;<code>Response<\/code>&#26681;&#25454;&#24744;&#30340;&#24212;&#29992;&#29305;&#23450;&#35201;&#27714;&#65292;&#23545;&#35937;&#20250;&#36319;&#38543;&#24744;&#30340;&#24212;&#29992;&#12290;<\/p><pre><code>use SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass ResponseFactory\n{\n    public function createFromRequest(Request $request): Response\n    {\n        \/\/ ... extract data from request and craft response\n\n        return $response;\n    }\n}\n<\/code><\/pre><p>&#19978;&#36848;&#22823;&#32434;&#25552;&#20379;&#20102;&#19968;&#20010;&#22522;&#26412;&#30340;&#21709;&#24212;&#24037;&#21378;&#39592;&#26550;&#12290;&#20320;&#38656;&#35201;&#22312;&#27492;&#22522;&#30784;&#19978;&#26500;&#24314;&#24212;&#29992;&#36923;&#36753;&#65292;&#20197;&#29983;&#25104;&#20855;&#20307;&#30340;&#20869;&#23481;&#12290;<code>Response<\/code>&#22522;&#20110;&#23545;&#35937;&#30340;<code>Request<\/code>&#25968;&#25454;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#34429;&#28982;Symfony&#24182;&#27809;&#26377;&#25552;&#20379;&#19968;&#31181;&#36866;&#29992;&#20110;&#25152;&#26377;&#24773;&#20917;&#30340;&#26041;&#27861;&#26469;&#36716;&#25442;&#19968;&#20010;<code>Request<\/code>into a<code>Response<\/code>`HttpFoundation&#32452;&#20214;&#25552;&#20379;&#20102;&#26500;&#24314;&#19982;&#35831;&#27714;&#30456;&#20851;&#30340;&#21709;&#24212;&#30340;&#28789;&#27963;&#24615;&#12290;&#19978;&#36848;&#35752;&#35770;&#30340;&#21508;&#31181;&#25216;&#26415;&#24212;&#20316;&#20026;&#22312;Symfony&#24212;&#29992;&#20013;&#38598;&#25104;&#35831;&#27714;&#21040;&#21709;&#24212;&#36716;&#25442;&#30340;&#22522;&#30784;&#12290;<\/p><p>&#35760;&#24471;&#22312;&#25511;&#21046;&#22120;&#21644;&#26381;&#21153;&#20043;&#38388;&#22987;&#32456;&#20445;&#25345;&#28165;&#26224;&#30340;&#32844;&#36131;&#20998;&#31163;&#65292;&#24182;&#32771;&#34385;&#20351;&#29992;&#20381;&#36182;&#27880;&#20837;&#21644;Symfony&#30340;&#26381;&#21153;&#23481;&#22120;&#26469;&#32452;&#32455;&#35831;&#27714;&#21040;&#21709;&#24212;&#36716;&#25442;&#36923;&#36753;&#12290;&#31069;&#20320;&#32534;&#31243;&#24841;&#24555;&#65281;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;&#20351;&#29992;Symfony&#26694;&#26550;&#26102;&#65292;&#20320;&#38656;&#35201;&#23558;PHP&#35831;&#27714;&#65288;&#36890;&#24120;&#26159;GET&#21644;POST&#65289;&#36716;&#25442;&#20026;&#21709;&#24212;&#23545;&#35937;&#12290;&#36825;&#36890;&#24120;&#28041;&#21450;&#21040;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;HTTP&#21709;&#24212;&#65292;&#24182;&#35774;&#32622;&#20854;&#29366;&#24577;&#30721;&#12289;&#22836;&#37096;&#20449;&#24687;&#20197;&#21450;&#25968;&#25454;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;HttpMessage\n$response = new PsrHttpMessageServerRequestInterface();\n\n\/\/ &#35774;&#32622;&#35831;&#27714;&#30340;&#26041;&#27861;\n$response-&gt;withMethod('POST');\n\n\/\/ &#35774;&#32622;&#35831;&#27714;&#30340;URL\n$response-&gt;withUri('\/api\/users');\n\n\/\/ &#35774;&#32622;&#35831;&#27714;&#30340;&#25968;&#25454;\n$data = ['name' =&gt; 'John Doe', 'age' =&gt; 30];\n\n\/\/ &#23558;&#25968;&#25454;&#28155;&#21152;&#21040;&#21709;&#24212;&#20013;\n$response-&gt;getBody()-&gt;write(json_encode($data));\n\n\/\/ &#35774;&#32622;&#21709;&#24212;&#30340;&#29366;&#24577;&#30721;&#65288;&#20363;&#22914;201 Created&#65289;\n$response-&gt;withStatus(201);\n\n\/\/ &#35774;&#32622;&#21709;&#24212;&#30340;&#22836;&#37096;&#20449;&#24687;\n$response-&gt;setHeader('Content-Type', 'application\/json');\n$response-&gt;setHeader('Access-Control-Allow-Origin', '*');\n\n\/\/ &#36820;&#22238;&#21709;&#24212;\nreturn $response;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#21019;&#24314;&#20102;&#19968;&#20010;&#26032;&#30340;<code>ServerRequestInterface<\/code>&#23454;&#20363;&#65292;&#28982;&#21518;&#35774;&#32622;&#20102;&#23427;&#30340;&#26041;&#27861;&#12289;URL&#21644;&#25968;&#25454;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#23558;&#25968;&#25454;&#24207;&#21015;&#21270;&#25104;JSON&#26684;&#24335;&#24182;&#23558;&#20854;&#38468;&#21152;&#21040;&#21709;&#24212;&#20013;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#35774;&#32622;&#20102;&#21709;&#24212;&#30340;&#29366;&#24577;&#30721;&#21644;&#22836;&#37096;&#20449;&#24687;&#12290;<\/p>\n<p>&#27880;&#24847;&#65292;&#36825;&#20010;&#20363;&#23376;&#20551;&#35774;&#20320;&#27491;&#22312;&#22788;&#29702;&#30340;&#26159;POST&#35831;&#27714;&#65292;&#24182;&#19988;&#20320;&#24819;&#36820;&#22238;&#19968;&#20010;JSON&#21709;&#24212;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#22788;&#29702;&#20854;&#20182;&#31867;&#22411;&#30340;&#35831;&#27714;&#25110;&#32773;&#19981;&#21516;&#30340;&#21709;&#24212;&#31867;&#22411;&#65292;&#20320;&#38656;&#35201;&#35843;&#25972;&#36825;&#20010;&#20363;&#23376;&#20197;&#36866;&#24212;&#20320;&#30340;&#38656;&#27714;&#12290;<\/p>\n<p>&#27492;&#22806;&#65292;&#20026;&#20102;&#20351;&#21709;&#24212;&#26356;&#23433;&#20840;&#65292;&#20320;&#21487;&#20197;&#32771;&#34385;&#20351;&#29992;&#19968;&#20123;&#20013;&#38388;&#20214;&#26469;&#39564;&#35777;&#21644;&#38480;&#21046;&#23458;&#25143;&#31471;&#23545;&#21709;&#24212;&#30340;&#35775;&#38382;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>@Secure<\/code>&#35013;&#39280;&#22120;&#26469;&#30830;&#20445;&#21482;&#26377;&#32463;&#36807;&#36523;&#20221;&#39564;&#35777;&#30340;&#29992;&#25143;&#25165;&#33021;&#35775;&#38382;&#21709;&#24212;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312;Symfony&#26694;&#26550;&#20013;&#65292;&#23558;&#35831;&#27714;&#23545;&#35937;&#36716;&#25442;&#20026;&#21709;&#24212;&#038;#235..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1078","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1078"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1078"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1078"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}