{"id":1142,"date":"2025-06-12T14:06:34","date_gmt":"2025-06-12T06:06:34","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1142.html"},"modified":"2025-06-12T14:06:34","modified_gmt":"2025-06-12T06:06:34","slug":"symfony%ef%bc%9a%e5%a6%82%e4%bd%95%e4%bb%8etwig%e6%a8%a1%e6%9d%bf%e4%b8%ad%e8%ae%bf%e9%97%ae%e4%bc%9a%e8%af%9d","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1142.html","title":{"rendered":"Symfony\uff1a\u5982\u4f55\u4eceTwig\u6a21\u677f\u4e2d\u8bbf\u95ee\u4f1a\u8bdd"},"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>Symfony &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#24191;&#27867;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#12290;&#35201;&#20174; Twig &#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#65292;&#20320;&#38656;&#35201;&#30830;&#20445;&#20250;&#35805;&#24050;&#32463;&#21551;&#29992;&#20102;&#65292;&#24182;&#19988;&#20320;&#30340;&#24212;&#29992;&#33021;&#22815;&#27491;&#30830;&#22788;&#29702;&#20250;&#35805;&#25968;&#25454;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#27493;&#39588;&#21644;&#31034;&#20363;&#20195;&#30721;&#65292;&#24110;&#21161;&#20320;&#22312; Symfony &#20013;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p>\n<h3>1. &#21551;&#29992;&#20250;&#35805;<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#30340; <code>config\/packages\/framework.yaml<\/code> &#25991;&#20214;&#20013;&#21551;&#29992;&#20102;&#20250;&#35805;&#21151;&#33021;&#65306;<\/p>\n<pre><code class=\"language-yaml\">framework:\n    session:\n        enabled: true<\/code><\/pre>\n<h3>2. &#22312;&#25511;&#21046;&#22120;&#20013;&#35774;&#32622;&#20250;&#35805;&#21464;&#37327;<\/h3>\n<p>&#22312;&#25511;&#21046;&#22120;&#20013;&#35774;&#32622;&#20250;&#35805;&#21464;&#37327;&#65306;<\/p>\n<pre><code class=\"language-php\">use SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass DefaultController extends AbstractController\n{\n    public function setSessionVariableAction(): Response\n    {\n        \/\/ &#35774;&#32622;&#20250;&#35805;&#21464;&#37327;\n        $session = $this-&gt;get('session');\n        $session-&gt;set('username', 'JohnDoe');\n\n        return new Response('Session variable set successfully!');\n    }\n}<\/code><\/pre>\n<h3>3. &#22312; Twig &#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#21464;&#37327;<\/h3>\n<p>&#22312; Twig &#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#21464;&#37327;&#65306;<\/p>\n<pre><code class=\"language-twig\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Access Session in Twig&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Welcome, {{ username }}!&lt;\/h1&gt;\n\n    {% if session.has('username') %}\n        &lt;p&gt;Your username is: {{ session.get('username') }}&lt;\/p&gt;\n    {% else %}\n        &lt;p&gt;No username found in the session.&lt;\/p&gt;\n    {% endif %}\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;&#35299;&#37322;<\/h3>\n<ol>\n<li>\n<p><strong>&#21551;&#29992;&#20250;&#35805;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#22312; <code>config\/packages\/framework.yaml<\/code> &#20013;&#28155;&#21152; <code>enabled: true<\/code> &#26469;&#21551;&#29992;&#20250;&#35805;&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#20250;&#35805;&#21464;&#37327;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#22312;&#25511;&#21046;&#22120;&#30340; <code>setSessionVariableAction<\/code> &#26041;&#27861;&#20013;&#65292;&#20351;&#29992; <code>$this-&gt;get('session')-&gt;set('username', 'JohnDoe');<\/code> &#23558;&#29992;&#25143;&#21517;&#35774;&#32622;&#20026; <code>'JohnDoe'<\/code>&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#22312; Twig &#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#21464;&#37327;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#20351;&#29992; <code>{% if session.has('username') %}<\/code> &#21644; <code>{% session.get('username') %}<\/code> &#26469;&#26816;&#26597;&#24182;&#26174;&#31034;&#20250;&#35805;&#20013;&#30340;&#29992;&#25143;&#21517;&#12290;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>&#36890;&#36807;&#36825;&#20123;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#25104;&#21151;&#22320;&#22312; Symfony &#20013;&#20174; Twig &#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#21464;&#37327;&#12290;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#38382;&#39064;&#25110;&#38656;&#35201;&#36827;&#19968;&#27493;&#30340;&#24110;&#21161;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#65281;<\/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>&#20171;&#32461;<\/h2><p>Symfony &#26159; PHP &#20013;&#26368;&#30693;&#21517;&#30340;&#26694;&#26550;&#20043;&#19968;&#65292;&#23427;&#25552;&#20379;&#20102;&#19968;&#31181;&#20248;&#38597;&#30340;&#26041;&#24335;&#26469;&#22788;&#29702;&#20250;&#35805;&#65292;&#24182;&#19988;&#19982;Twig&#65288;&#20854;&#40664;&#35748;&#30340;&#27169;&#26495;&#24341;&#25806;&#65289;&#26080;&#32541;&#38598;&#25104;&#12290;&#22312; Web &#24212;&#29992;&#31243;&#24207;&#30340;&#19978;&#19979;&#25991;&#20013;&#65292;&#19968;&#20010;&#20250;&#35805;&#26159;&#22312;&#26381;&#21153;&#22120;&#31471;&#23384;&#20648;&#30340;&#20449;&#24687;&#65292;&#36825;&#20123;&#20449;&#24687;&#38656;&#35201;&#22312;&#25972;&#20010;&#29992;&#25143;&#19982; Web &#24212;&#29992;&#31243;&#24207;&#20132;&#20114;&#30340;&#36807;&#31243;&#20013;&#20445;&#25345;&#25345;&#20037;&#21270;&#12290;&#21478;&#19968;&#26041;&#38754;&#65292;Twig &#20855;&#26377;&#31616;&#27905;&#30340;&#35821;&#27861;&#21644;&#28789;&#27963;&#24615;&#65292;&#20351;&#24471;&#24320;&#21457;&#20154;&#21592;&#21487;&#20197;&#36731;&#26494;&#21019;&#24314;&#21160;&#24577;&#20869;&#23481;&#12290;<\/p><p>&#20170;&#22825;&#25105;&#20204;&#23558;&#36890;&#36807;Twig&#27169;&#26495;&#20013;&#30340;&#20250;&#35805;&#21464;&#37327;&#35775;&#38382;&#32454;&#33410;&#65292;&#26412;&#25945;&#31243;&#23558;&#36880;&#27493;&#25351;&#23548;&#24744;&#65292;&#26080;&#35770;&#24744;&#23545;Symfony&#25110;Twig&#30340;&#29087;&#24713;&#31243;&#24230;&#22914;&#20309;&#65292;&#37117;&#33021;&#25214;&#21040;&#23454;&#29992;&#30340;&#35265;&#35299;&#21644;&#26368;&#20339;&#23454;&#36341;&#12290;<\/p><p>&#22312;&#28145;&#20837;&#35752;&#35770;&#20043;&#21069;&#65292;&#29702;&#35299;&#29616;&#20195;Symfony&#24212;&#29992;&#20013;&#30340;&#33391;&#22909;&#23454;&#36341;&#33267;&#20851;&#37325;&#35201;&#65306;&#19994;&#21153;&#36923;&#36753;&#24212;&#23613;&#21487;&#33021;&#22320;&#25918;&#22312;&#25511;&#21046;&#22120;&#25110;&#26381;&#21153;&#20013;&#22788;&#29702;&#65292;&#32780;&#21482;&#20256;&#36882;&#24517;&#35201;&#30340;&#25968;&#25454;&#21040;Twig&#27169;&#26495;&#12290;&#28982;&#32780;&#65292;&#22312;&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#30452;&#25509;&#20174;Twig&#35775;&#38382;&#20250;&#35805;&#21487;&#33021;&#26159;&#26368;&#31616;&#21333;&#30340;&#35299;&#20915;&#26041;&#26696;&mdash;&mdash;&#20363;&#22914;&#26174;&#31034;Flash&#28040;&#24687;&#25110;&#29992;&#25143;&#29305;&#23450;&#30340;&#25968;&#25454;&#12290;&#22240;&#27492;&#65292;&#35753;&#25105;&#20204;&#32487;&#32493;&#36827;&#34892;&#12290;<\/p><h2>&#35774;&#32622;&#24744;&#30340;Symfony&#39033;&#30446;<\/h2><p>&#22914;&#26524;&#20320;&#26159;&#20174;&#22836;&#24320;&#22987;&#65292;&#20320;&#38656;&#35201;&#39318;&#20808;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Symfony&#39033;&#30446;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;Symfony&#21629;&#20196;&#34892;&#24037;&#20855;&#26469;&#23436;&#25104;&#36825;&#20010;&#36807;&#31243;&#65306;<\/p><pre><code>symfony new my_project --full<\/code><\/pre><p>&#35813;&#21629;&#20196;&#20250;&#20026;&#26032;&#39033;&#30446;&#35774;&#32622;&#25152;&#26377;&#25152;&#38656;&#30340;&#40664;&#35748;&#37197;&#32622;&#65292;&#20197;&#25903;&#25345;Web&#24212;&#29992;&#31243;&#24207;&#12290;&#22312;&#36816;&#34892;&#27492;&#21629;&#20196;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24050;&#23433;&#35013;Symfony CLI&#12290;&#22914;&#26524;&#26410;&#23433;&#35013;&#65292;&#35831;&#35775;&#38382;&#23448;&#26041;Symfony&#32593;&#31449;&#33719;&#21462;&#23433;&#35013;&#35828;&#26126;&#12290;<\/p><p>&#19968;&#26086;&#20320;&#30340;&#39033;&#30446;&#36816;&#34892;&#36215;&#26469;&#65292;&#25105;&#20204;&#21487;&#20197;&#35752;&#35770;&#20250;&#35805;&#20102;&#12290;<\/p><h2>&#29702;&#35299;Symfony&#20013;&#30340;&#20250;&#35805;&#65288;Sessions&#65289;<\/h2><p>Symfony &#30340;&#20250;&#35805;&#21487;&#20197;&#36890;&#36807;&#27880;&#20837;&#26469;&#31649;&#29702;&#12290;<code>session<\/code>&#22312;&#24744;&#30340;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#26381;&#21153;&#12290;&#36825;&#20010;&#26381;&#21153;&#26159;&#19968;&#20010;&#23454;&#20363;&#12290;<code>SessionInterface<\/code>&#23427;&#25552;&#20379;&#20102;&#35774;&#32622;&#12289;&#33719;&#21462;&#21644;&#31227;&#38500;&#20250;&#35805;&#23646;&#24615;&#30340;&#26041;&#27861;&#12290;<\/p><p>&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;Symfony&#25511;&#21046;&#22120;&#20013;&#22788;&#29702;&#20250;&#35805;&#30340;&#31616;&#21333;&#31034;&#20363;&#65306;<\/p><pre><code>use SymfonyComponentHttpFoundationSessionSessionInterface;\n\npublic function index(SessionInterface $session)\n{\n    \/\/ Setting a session attribute\n    $session-&gt;set('key', 'value');\n\n    \/\/ Getting a session attribute\n    $value = $session-&gt;get('key');\n\n    \/\/ Removing a session attribute\n    $session-&gt;remove('key');\n}<\/code><\/pre><p>&#36825;&#26159;&#20026;&#35774;&#32622;&#22330;&#26223;&#20570;&#22909;&#20934;&#22791;&#65292;&#20294;&#25105;&#20204;&#30340;&#30446;&#26631;&#26159;&#22312;Twig&#27169;&#26495;&#20013;&#21033;&#29992;&#20250;&#35805;&#21464;&#37327;&#12290;<\/p><h2>&#35775;&#38382;&#20250;&#35805;&#22312;Twig&#20013;<\/h2><p>&#22312;Twig&#20013;&#65292;&#20840;&#23616;&#21464;&#37327;&#12290;<code>app<\/code>&#21464;&#37327;&#22312;&#27169;&#26495;&#20013;&#33258;&#21160;&#21487;&#29992;&#12290;&#22312;&#36825;&#20010;<code>app<\/code>&#21464;&#37327;&#65292;&#21571;&#65292;&#36825;&#20010;&#12290;<code>session<\/code>&#21487;&#20197;&#35775;&#38382;&#20197;&#35835;&#21462;&#20250;&#35805;&#30456;&#20851;&#25968;&#25454;&#12290;&#36825;&#24847;&#21619;&#30528;&#24744;&#26080;&#38656;&#20570;&#20219;&#20309;&#29305;&#27530;&#25805;&#20316;&#21363;&#21487;&#35775;&#38382;&#20250;&#35805;&#65306;&#23427;&#24050;&#32463;&#20026;&#24744;&#20934;&#22791;&#22909;&#20102;&#12290;<\/p><p>&#22312;Twig&#20013;&#65292;&#20320;&#21487;&#20197;&#22914;&#20309;&#35775;&#38382;&#21644;&#26174;&#31034;&#20250;&#35805;&#21464;&#37327;&#65306;<\/p><pre><code>{{ app.session.get('key') }}<\/code><\/pre><p>&#37027;&#23601;&#26159;&#36825;&#20040;&#31616;&#21333;&#65292;&#20294;&#26159;Twig&#29978;&#33267;&#26356;&#36827;&#19968;&#27493;&#65292;&#20801;&#35768;&#26816;&#26597;&#20250;&#35805;&#26159;&#21542;&#26377;&#29305;&#23450;&#30340;&#23646;&#24615;&#65306;<\/p><pre><code>{% if app.session.has('key') %}\n    The value of 'key' is: {{ app.session.get('key') }}\n{% endif %}<\/code><\/pre><p>&#29992;&#20110;&#26174;&#31034;&#38378;&#29616;&#28040;&#24687;&#65292;session flashbag&#38750;&#24120;&#26377;&#29992;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;Twig&#20013;&#36941;&#21382;&#38378;&#29616;&#28040;&#24687;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>{% for message in app.flashes('notice') %}<\/code><\/pre><p>&#25910;&#21040;&#65292;&#24744;&#38656;&#35201;&#25105;&#32763;&#35793;&#20160;&#20040;&#20869;&#23481;&#21602;&#65311;<\/p><pre><code>\n{% endfor %}<\/code><\/pre><p>&#35831;&#35760;&#20303;&#65292;Flash&#28040;&#24687;&#26159;&#19968;&#31181;&#19968;&#27425;&#24615;&#20351;&#29992;&#30340;&#20250;&#35805;&#23646;&#24615;&#12290;&#23427;&#20204;&#29992;&#20110;&#21521;&#29992;&#25143;&#26174;&#31034;&#36890;&#30693;&#65292;&#24182;&#23558;&#22312;&#19979;&#19968;&#27425;&#39029;&#38754;&#21152;&#36733;&#26102;&#28040;&#22833;&#12290;<\/p><h2>&#26368;&#20339;&#23454;&#36341;<\/h2><p>&#30446;&#21069;&#65292;&#25105;&#20204;&#26080;&#27861;&#25552;&#20379;&#24744;&#25152;&#35201;&#27714;&#30340;&#20449;&#24687;&#12290;&#35831;&#31245;&#21518;&#20877;&#35797;&#19968;&#27425;&#12290;<code>app.session<\/code>&#20174;Twig&#21487;&#33021;&#24456;&#26041;&#20415;&#65292;&#20294;&#38656;&#35201;&#35880;&#24910;&#34892;&#20107;&#12290;&#22987;&#32456;&#32771;&#34385;&#26159;&#21542;&#23558;&#35774;&#32622;&#25110;&#20462;&#25913;&#20250;&#35805;&#20540;&#30340;&#36923;&#36753;&#30041;&#22312;&#25511;&#21046;&#22120;&#20869;&#12290;&#22312;&#23558;&#20250;&#35805;&#25968;&#25454;&#26292;&#38706;&#32473;&#27169;&#26495;&#26102;&#35201;&#23567;&#24515;&#65292;&#30830;&#20445;&#21482;&#20256;&#36882;&#24517;&#35201;&#30340;&#20449;&#24687;&#12290;&#36807;&#24230;&#20381;&#36182;&#20110;&#36825;&#20123;&#20570;&#27861;&#21487;&#33021;&#20250;&#24102;&#26469;&#38382;&#39064;&#12290;<code>app.session<\/code>&#22312;Twig&#20013;&#36807;&#24230;&#20351;&#29992;&#21487;&#33021;&#20250;&#23548;&#33268;&#27169;&#26495;&#21464;&#24471;&#26434;&#20081;&#26080;&#31456;&#65292;&#36825;&#19982;Symfony&#25552;&#20513;&#30340;MVC&#27169;&#24335;&#21407;&#21017;&#30456;&#36829;&#32972;&#12290;<\/p><p>&#21478;&#19968;&#20010;&#26368;&#20339;&#23454;&#36341;&#26159;&#22312;&#23384;&#20648;&#23545;&#35937;&#21040;&#20250;&#35805;&#20043;&#21069;&#36827;&#34892;&#24207;&#21015;&#21270;&#65292;&#22240;&#20026;&#19981;&#26159;&#25152;&#26377;&#30340;&#23545;&#35937;&#37117;&#21487;&#20197;&#34987;&#24207;&#21015;&#21270;&#25110;&#22312;&#21453;&#24207;&#21015;&#21270;&#26102;&#21487;&#33021;&#19981;&#20250;&#21253;&#21547;&#30456;&#21516;&#30340;&#29366;&#24577;&#12290;&#20363;&#22914;&#65292;&#23384;&#20648;Entity&#23545;&#35937;&#21487;&#33021;&#20250;&#23548;&#33268;&#24847;&#22806;&#30340;&#32467;&#26524;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#24635;&#32467;&#19968;&#19979;&#65292;Twig &#27169;&#26495;&#20013;&#30340;&#20250;&#35805;&#21464;&#37327;&#35775;&#38382;&#38750;&#24120;&#31616;&#21333;&#65292;&#24471;&#30410;&#20110;&#20840;&#23616;&#21464;&#37327;&#12290;<code>app<\/code>&#30001;Twig&#26725;&#25552;&#20379;&#30340;&#21464;&#37327;&#12290;&#20294;&#26159;&#65292;&#35831;&#22987;&#32456;&#36981;&#24490;&#26368;&#20339;&#23454;&#36341;&#65292;&#36127;&#36131;&#20219;&#22320;&#31649;&#29702;&#20250;&#35805;&#12290;&#20351;&#29992;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;&#19994;&#21153;&#36923;&#36753;&#65292;&#24182;&#20445;&#25345;Twig&#27169;&#26495;&#24178;&#20928;&#12289;&#19987;&#27880;&#20110;&#21576;&#29616;&#25968;&#25454;&#12290;<\/p><p>&#25105;&#20204;&#24050;&#32463;&#35752;&#35770;&#20102;&#22914;&#20309;&#23454;&#29616;&#65292;&#20294;&#24744;&#30340;&#26053;&#31243;&#24182;&#26410;&#32467;&#26463;&#20110;&#27492;&#12290;&#36890;&#36807;&#32771;&#34385;&#36825;&#19968;&#36807;&#31243;&#22914;&#20309;&#19982;&#29992;&#25143;&#36523;&#20221;&#39564;&#35777;&#12289;&#22312;&#35831;&#27714;&#20043;&#38388;&#20445;&#25345;&#29366;&#24577;&#20197;&#21450;&#21327;&#35843;&#19982;&#23433;&#20840;&#38450;&#28779;&#22681;&#30340;&#20114;&#21160;&#65292;&#24744;&#23558;&#36827;&#19968;&#27493;&#25193;&#23637;&#23545;&#27010;&#24565;&#30340;&#29702;&#35299;&#12290;&#25484;&#25569;&#20102;&#22522;&#26412;&#21407;&#29702;&#21518;&#65292;&#29616;&#22312;&#24744;&#21487;&#20197;&#20687;&#32463;&#39564;&#20016;&#23500;&#30340;Symfony&#24320;&#21457;&#20154;&#21592;&#19968;&#26679;&#22788;&#29702;&#20250;&#35805;&#12290;&#24841;&#24555;&#32534;&#30721;&#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>&#20320;&#22909;&#65281;&#22312;&#20351;&#29992;Symfony&#26694;&#26550;&#30340;&#29615;&#22659;&#20013;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#20174;Twig&#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#25968;&#25454;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#20960;&#31181;&#26041;&#24335;&#23454;&#29616;&#65306;<\/p>\n<h3>1. &#20351;&#29992;<code>SessionBag<\/code>&#31867;<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#30340;&#24212;&#29992;&#20013;&#26377;&#27491;&#30830;&#30340;&#37197;&#32622;&#25991;&#20214;&#26469;&#21551;&#29992;&#20250;&#35805;&#21151;&#33021;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#26159;&#22312;<code>app\/config\/services.yml<\/code>&#25991;&#20214;&#20013;&#35774;&#32622;&#65306;<\/p>\n<pre><code class=\"language-yaml\">services:\n    # ...\n    symfony.session.session_manager:\n        class: SymfonyComponentHttpFoundationSessionManagerAbstractSessionManager\n        arguments: ['@session_storage', '@session_cookie_storage']<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#22312;Twig&#27169;&#26495;&#20013;&#65292;&#21487;&#20197;&#36825;&#26679;&#20351;&#29992;<code>$this-&gt;session<\/code>&#65306;<\/p>\n<pre><code class=\"language-twig\">{{ session('key') }}<\/code><\/pre>\n<p>&#20854;&#20013;&#65292;<code>session<\/code>&#20989;&#25968;&#26159;&#29992;&#20110;&#33719;&#21462;&#20250;&#35805;&#20013;&#30340;&#29305;&#23450;&#38190;&#20540;&#23545;&#30340;&#26041;&#27861;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026;<code>MyController.php<\/code>&#30340;&#25511;&#21046;&#22120;&#65292;&#23427;&#26377;&#22914;&#19979;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">public function indexAction(Request $request)\n{\n    \/\/ ...\n\n    $this-&gt;session-&gt;set('my_key', 'value');\n\n    return $this-&gt;render('@your_template.twig');\n}<\/code><\/pre>\n<p>&#22312;<code>indexAction<\/code>&#20013;&#65292;&#25105;&#20204;&#35774;&#32622;&#20102;&#20250;&#35805;&#21464;&#37327;&#65292;&#24182;&#36820;&#22238;&#28210;&#26579;&#21518;&#30340;&#35270;&#22270;&#27169;&#26495;&#12290;<\/p>\n<h3>2. &#20351;&#29992;<code>Request<\/code>&#21644;<code>Response<\/code>&#23545;&#35937;<\/h3>\n<p>&#21478;&#19968;&#31181;&#26041;&#27861;&#26159;&#21033;&#29992;<code>Request<\/code>&#21644;<code>Response<\/code>&#23545;&#35937;&#12290;&#36825;&#20010;&#26041;&#27861;&#36890;&#24120;&#21482;&#22312;&#20320;&#38656;&#35201;&#22312;&#21709;&#24212;&#20013;&#28155;&#21152;&#20250;&#35805;&#20449;&#24687;&#26102;&#20351;&#29992;&#12290;<\/p>\n<pre><code class=\"language-php\">$request = Request::createFromGlobals();\n$response = Response::create();\n\n\/\/ &#33719;&#21462;&#20250;&#35805;&#25968;&#25454;\n$sessionData = $request-&gt;getSession()-&gt;get($this-&gt;container['session.key']);\n\n\/\/ &#35774;&#32622;&#20250;&#35805;&#25968;&#25454;&#21040;&#21709;&#24212;\n$response-&gt;setContent(json_encode([\n    'session_data' =&gt; $sessionData,\n]));\n\nreturn $response;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#26032;&#30340;&#35831;&#27714;&#24182;&#23558;&#20854;&#20256;&#36882;&#32473;&#21709;&#24212;&#23545;&#35937;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#20174;&#35831;&#27714;&#20013;&#33719;&#21462;&#20250;&#35805;&#25968;&#25454;&#65292;&#23558;&#36825;&#20123;&#25968;&#25454;&#36716;&#25442;&#20026;JSON&#26684;&#24335;&#65292;&#24182;&#23558;&#21709;&#24212;&#30340;&#20869;&#23481;&#35774;&#32622;&#20026;&#36825;&#20010;JSON&#23383;&#31526;&#20018;&#12290;<\/p>\n<h3>&#32467;&#35770;<\/h3>\n<p>&#36873;&#25321;&#21738;&#31181;&#26041;&#27861;&#21462;&#20915;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#12290;&#22914;&#26524;&#20320;&#21482;&#38656;&#35201;&#31616;&#21333;&#22320;&#22312;&#27169;&#26495;&#20013;&#35775;&#38382;&#20250;&#35805;&#25968;&#25454;&#65292;&#37027;&#20040;<code>SessionBag<\/code>&#31867;&#24212;&#35813;&#36275;&#22815;&#20102;&#12290;&#20294;&#26159;&#65292;&#22914;&#26524;&#20320;&#38656;&#35201;&#22312;&#21709;&#24212;&#20013;&#28155;&#21152;&#20250;&#35805;&#20449;&#24687;&#65292;&#25110;&#32773;&#38656;&#35201;&#26356;&#28789;&#27963;&#30340;&#26041;&#24335;&#26469;&#25805;&#20316;&#20250;&#35805;&#25968;&#25454;&#65292;&#37027;&#20040;<code>Request<\/code>&#21644;<code>Response<\/code>&#23545;&#35937;&#21487;&#33021;&#26159;&#26356;&#22909;&#30340;&#36873;&#25321;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; Symfony &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#24191;&#27867;&#29992;&#20110;&#26500;&#038;#24314..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1142","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\/1142","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=1142"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1142"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1142"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}