{"id":1027,"date":"2025-06-12T11:02:15","date_gmt":"2025-06-12T03:02:15","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1027.html"},"modified":"2025-06-12T11:02:15","modified_gmt":"2025-06-12T03:02:15","slug":"php-symfony%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f%e4%b8%ba%e4%bb%80%e4%b9%88%e4%bd%a0%e5%ba%94%e8%af%a5%e5%85%b3%e5%bf%83%ef%bc%9f","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1027.html","title":{"rendered":"PHP Symfony\u662f\u4ec0\u4e48\uff1f\u4e3a\u4ec0\u4e48\u4f60\u5e94\u8be5\u5173\u5fc3\uff1f"},"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>PHP Symfony&#26159;&#19968;&#20010;&#29992;&#20110;&#26500;&#24314;&#29616;&#20195;Web&#24212;&#29992;&#31243;&#24207;&#30340;&#26694;&#26550;&#65292;&#23427;&#22522;&#20110;PHP&#21644;HTML5&#12290;Symfony&#25552;&#20379;&#20102;&#19968;&#20010;&#23436;&#25972;&#30340;&#24320;&#21457;&#29615;&#22659;&#65292;&#21253;&#25324;&#25968;&#25454;&#24211;&#12289;&#27169;&#26495;&#24341;&#25806;&#12289;&#23433;&#20840;&#24615;&#21644;&#24615;&#33021;&#20248;&#21270;&#31561;&#12290;&#23427;&#40723;&#21169;&#24320;&#21457;&#32773;&#20351;&#29992;&#26368;&#20339;&#23454;&#36341;&#26469;&#25552;&#39640;&#24320;&#21457;&#25928;&#29575;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#19968;&#20123;&#21407;&#22240;&#20026;&#20160;&#20040;&#20320;&#24212;&#35813;&#20851;&#24515;PHP Symfony&#65306;<\/p>\n<ol>\n<li><strong>&#39640;&#25928;&#24615;<\/strong>&#65306;Symfony&#30340;&#35774;&#35745;&#30446;&#26631;&#26159;&#25552;&#20379;&#24555;&#36895;&#21709;&#24212;&#30340;&#26102;&#38388;&#65292;&#36890;&#36807;&#20943;&#23569;&#37325;&#22797;&#20195;&#30721;&#24182;&#21033;&#29992;&#33258;&#21160;&#37197;&#32622;&#26426;&#21046;&#12290;<\/li>\n<li><strong>&#28789;&#27963;&#24615;<\/strong>&#65306;Symfony&#25552;&#20379;&#20102;&#22823;&#37327;&#30340;&#25193;&#23637;&#21644;&#25554;&#20214;&#65292;&#20801;&#35768;&#24320;&#21457;&#32773;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#36827;&#34892;&#23450;&#21046;&#12290;<\/li>\n<li><strong>&#23433;&#20840;&#24615;<\/strong>&#65306;Symfony&#20869;&#32622;&#20102;&#35768;&#22810;&#23433;&#20840;&#25514;&#26045;&#65292;&#22914;CSRF&#20445;&#25252;&#12289;&#38450;&#27490;XSS&#25915;&#20987;&#31561;&#12290;<\/li>\n<li><strong>&#31038;&#21306;&#25903;&#25345;<\/strong>&#65306;Symfony&#26377;&#19968;&#20010;&#27963;&#36291;&#30340;&#31038;&#21306;&#65292;&#26377;&#35768;&#22810;&#36164;&#28304;&#21644;&#25991;&#26723;&#21487;&#20379;&#21442;&#32771;&#12290;<\/li>\n<li><strong>&#21487;&#32500;&#25252;&#24615;<\/strong>&#65306;Symfony&#30340;&#20195;&#30721;&#32467;&#26500;&#28165;&#26224;&#65292;&#26131;&#20110;&#29702;&#35299;&#21644;&#32500;&#25252;&#12290;<\/li>\n<\/ol>\n<p>&#19979;&#38754;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#22914;&#20309;&#22312;Symfony&#39033;&#30446;&#20013;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;HTTP&#35831;&#27714;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ src\/Controller\/HelloWorldController.php\n\nnamespace AppController;\n\nuse SymfonyComponentHttpFoundationResponse;\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\n\nclass HelloWorldController extends AbstractController\n{\n    public function index(): Response\n    {\n        return $this-&gt;render('hello_world\/index.html.twig', [\n            'message' =&gt; 'Hello, Symfony!',\n        ]);\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#21517;&#20026;<code>HelloWorldController<\/code>&#30340;&#31867;&#65292;&#24182;&#23450;&#20041;&#20102;&#19968;&#20010;<code>index<\/code>&#26041;&#27861;&#65292;&#35813;&#26041;&#27861;&#36820;&#22238;&#19968;&#20010;&#28210;&#26579;&#22909;&#30340;&#27169;&#26495;<code>hello_world\/index.html.twig<\/code>&#65292;&#24182;&#22312;&#27169;&#26495;&#20013;&#26174;&#31034;&#19968;&#26465;&#28040;&#24687;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#20010;&#20449;&#24687;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;&#22914;&#26524;&#20320;&#26377;&#20219;&#20309;&#20854;&#20182;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#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><p>Symfony &#26159;&#19968;&#20010;&#27969;&#34892;&#30340; PHP &#26694;&#26550;&#65292;&#29992;&#20110;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#12290;&#23427;&#26159;&#19968;&#20010;&#22522;&#20110;&#27169;&#22411;-&#35270;&#22270;-&#25511;&#21046;&#22120;&#65288;MVC&#65289;&#27169;&#24335;&#30340;&#22823;&#22411; PHP MVC &#26694;&#26550;&#65292;&#26088;&#22312;&#36890;&#36807;&#20419;&#36827;&#26377;&#32452;&#32455;&#30340;&#32534;&#30721;&#21644;&#20026;&#26131;&#20110;&#32500;&#25252;&#30340;&#24212;&#29992;&#31243;&#24207;&#38138;&#24179;&#36947;&#36335;&#12290;&#26412;&#25945;&#31243;&#23558;&#24102;&#20320;&#20102;&#35299;&#20160;&#20040;&#26159; Symfony&#12289;&#20026;&#20160;&#20040;&#23427;&#24456;&#37325;&#35201;&#20197;&#21450;&#22914;&#20309;&#20351;&#29992;&#20195;&#30721;&#31034;&#20363;&#65288;&#20174;&#22522;&#30784;&#21040;&#39640;&#32423;&#65289;&#24320;&#22987;&#22312;&#39033;&#30446;&#20013;&#20351;&#29992;&#23427;&#12290;<\/p><h2>&#29702;&#35299;PHP&#26694;&#26550;<\/h2><p>&#22312;Web&#24320;&#21457;&#20013;&#65292;&#26694;&#26550;&#26159;&#19968;&#32452;&#39044;&#20808;&#20889;&#22909;&#30340;&#20195;&#30721;&#65292;&#24320;&#21457;&#32773;&#21487;&#20197;&#20351;&#29992;&#36825;&#20123;&#20195;&#30721;&#26469;&#21152;&#36895;&#24320;&#21457;&#36807;&#31243;&#12290;&#23427;&#26377;&#21161;&#20110;&#20943;&#23569;&#37325;&#22797;&#32534;&#20889;&#20195;&#30721;&#30340;&#38656;&#27714;&#24182;&#20419;&#36827;&#20195;&#30721;&#37325;&#29992;&#12290;Symfony&#12289;Laravel&#21644;CodeIgniter&#31561;&#26159;&#27969;&#34892;&#30340;PHP&#26694;&#26550;&#12290;PHP&#26694;&#26550;&#31616;&#21270;&#20102;&#25968;&#25454;&#24211;&#20132;&#20114;&#65292;&#30830;&#20445;&#20102;&#26368;&#20339;&#30340;&#23433;&#20840;&#23454;&#36341;&#65292;&#24182;&#24110;&#21161;&#32452;&#32455;&#25991;&#20214;&#21644;&#25991;&#20214;&#22841;&#22312;&#19968;&#20010;&#26631;&#20934;&#32467;&#26500;&#20013;&#65292;&#20174;&#32780;&#20351;&#24471;&#26356;&#26131;&#20110;&#32500;&#25252;&#30340;&#20195;&#30721;&#24211;&#25104;&#20026;&#21487;&#33021;&#12290;<\/p><h2>&#20026;&#20160;&#20040;&#36873;&#25321;Symfony&#65311;<\/h2><p>Symfony&#20197;&#20854;&#24378;&#22823;&#30340;&#21151;&#33021;&#12289;&#28789;&#27963;&#24615;&#21644;&#39640;&#37197;&#32622;&#24615;&#33879;&#31216;&#65292;&#20351;&#20854;&#25104;&#20026;&#22797;&#26434;&#20225;&#19994;&#39033;&#30446;&#30340;&#39318;&#36873;&#26694;&#26550;&#12290;&#20854;&#29983;&#24577;&#31995;&#32479;&#24222;&#22823;&#65292;&#21253;&#21547;&#19968;&#32452;&#21487;&#37325;&#29992;&#30340;PHP&#32452;&#20214;&#20197;&#21450;&#19968;&#32676;&#28909;&#24773;&#30340;PHP&#31038;&#21306;&#25104;&#21592;&#12290;&#23427;&#25552;&#20379;&#20102;&#19968;&#20010;&#20869;&#32622;&#27979;&#35797;&#22871;&#20214;&#65292;&#20016;&#23500;&#30340;&#25991;&#26723;&#65292;&#24182;&#19988;&#25317;&#26377;&#19968;&#20010;&#25903;&#25345;&#24615;&#30340;&#31038;&#21306;&#12290;&#27492;&#22806;&#65292;Symfony&#30340;&#19968;&#20010;&#20851;&#38190;&#29305;&#24615;&#26159;&#20854;bundle&#31995;&#32479;&#65292;&#35813;&#31995;&#32479;&#20801;&#35768;&#20320;&#22312;&#39033;&#30446;&#20013;&#37325;&#26032;&#23450;&#20041;&#25110;&#37197;&#32622;&#24211;&#30340;&#34892;&#20026;&#65292;&#32780;&#26080;&#38656;&#20462;&#25913;&#24211;&#30340;&#21407;&#22987;&#20195;&#30721;&#12290;<\/p><h2>&#24320;&#22987;&#20351;&#29992;Symfony<\/h2><p>&#35201;&#24320;&#22987;&#20351;&#29992;Symfony&#65292;&#20320;&#38656;&#35201;&#23433;&#35013;PHP 7.2.5&#25110;&#26356;&#39640;&#29256;&#26412;&#20197;&#21450;Composer&#22312;&#20320;&#30340;&#35745;&#31639;&#26426;&#19978;&#12290;&#19968;&#26086;&#26377;&#20102;&#36825;&#20123;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#21629;&#20196;&#34892;&#23433;&#35013;Symfony&#65306;<\/p><pre><code>composer create-project symfony\/skeleton my_project_name<\/code><\/pre><p>&#36825;&#20010;&#21629;&#20196;&#20250;&#19979;&#36733;Symfony&#39592;&#26550;&#39033;&#30446;&#21450;&#20854;&#25152;&#26377;&#20381;&#36182;&#39033;&#21040;&#19968;&#20010;&#26032;&#30340;&#30446;&#24405;&#21517;&#20026;&ldquo;my_project_name&rdquo;&#30340;&#26032;&#30446;&#24405;&#20013;&#12290;&#35774;&#32622;&#23436;&#39592;&#26550;&#21518;&#65292;&#20320;&#21487;&#20197;&#29992;&#20197;&#19979;&#26041;&#24335;&#21551;&#21160;&#26412;&#22320;&#26381;&#21153;&#22120;&#65306;<\/p><pre><code>php -S localhost:8000 -t public<\/code><\/pre><p>&#35831;&#23558;&#20197;&#19979;&#22522;&#26412;&#25511;&#21046;&#22120;&#31034;&#20363;&#25918;&#32622;&#21040;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214; src\/Controller\/HelloWorldController.php &#20013;&#65292;&#29992;&#20110;&#22788;&#29702;Web&#35831;&#27714;&#65306;<\/p><pre><code>&lt;?php\n\nnamespace AppController;\n\nuse SymfonyComponentHttpFoundationResponse;\n\nclass HelloWorldController \n{\n    public function hello() \n    {\n        return new Response('&lt;html&gt;&lt;body&gt;Hello World!&lt;\/body&gt;&lt;\/html&gt;');\n    }\n}\n<\/code><\/pre><p>&#27979;&#35797;&#25511;&#21046;&#22120;&#65292;&#35831;&#23558;&#19968;&#20010; Web &#35831;&#27714;&#36335;&#30001;&#21040;&#23427;&#12290;<\/p><h2>&#29702;&#35299;&#25511;&#21046;&#22120;&#30340;&#22522;&#30784;&#30693;&#35782;<\/h2><p>&#22312;Symfony&#20013;&#65292;&#25511;&#21046;&#22120;&#26159;&#24212;&#29992;&#31243;&#24207;&#30340;&#26680;&#24515;&#28857;&#12290;&#23427;&#20204;&#25910;&#38598;&#36755;&#20837;&#65292;&#24182;&#36127;&#36131;&#21521;&#27983;&#35272;&#22120;&#36820;&#22238;&#21709;&#24212;&#12290;&#25511;&#21046;&#22120;&#23558;&#22788;&#29702;&#36755;&#20837;&#12289;&#22788;&#29702;&#25968;&#25454;&#24211;&#20132;&#20114;&#25110;&#28210;&#26579;HTML&#35270;&#22270;&#30340;&#20219;&#21153;&#22996;&#25176;&#32473;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#20854;&#20182;&#32452;&#20214;&#12290;&#35753;&#25105;&#20204;&#28155;&#21152;&#36335;&#30001;&#37197;&#32622;&#65306;<\/p><pre><code># config\/routes.yaml\nhello_world:\n    path: \/hello\n    name: hello_world_controller\n    controller: AppControllerHelloWorldController::hello\n<\/code><\/pre><p>&#24403;&#20320;&#35775;&#38382; localhost:8000\/hello &#26102;&#65292;&#20320;&#30340; HelloWorldController &#20013;&#30340; hello() &#26041;&#27861;&#20250;&#34987;&#35843;&#29992;&#65292;&#20320;&#20250;&#22312;&#27983;&#35272;&#22120;&#20013;&#30475;&#21040; &#8220;Hello World!&#8221;&#12290;<\/p><h2>Twig&#65306;Symfony&#30340;&#27169;&#26495;&#24341;&#25806;<\/h2><p>Twig &#26159;Symfony&#30340;&#27169;&#26495;&#24341;&#25806;&#12290;&#23427;&#23558;&#36923;&#36753;&#20195;&#30721;&#21644;&#21576;&#29616;&#20195;&#30721;&#36827;&#34892;&#20102;&#28165;&#26224;&#30340;&#20998;&#31163;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#20351;&#29992;Twig&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>&lt;!-- templates\/hello_world.html.twig --&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;title&gt;Hello World Page&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;h1&gt;Hello {{ name }}!&lt;\/h1&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre><p>&#22312;&#20320;&#30340;&#25511;&#21046;&#22120;&#20869;&#37096;&#65306;<\/p><pre><code>public function hello($name) \n{\n    return $this-&gt;render('hello_world.html.twig', ['name' =&gt; $name]);\n}\n<\/code><\/pre><h2>Symfony&#30340;Form&#32452;&#20214;<\/h2><p>Symfony&#30340;&#19968;&#20010;&#24378;&#39033;&#23601;&#26159;&#23427;&#30340;&#34920;&#21333;&#32452;&#20214;&#65292;&#23427;&#35753;&#20320;&#33021;&#22815;&#36731;&#26494;&#22320;&#31649;&#29702;HTML&#34920;&#21333;&#12290;&#36825;&#37324;&#26159;&#19968;&#20010;Symfony&#39033;&#30446;&#20013;&#30340;&#31616;&#21333;&#34920;&#21333;&#31034;&#20363;&#65306;<\/p><pre><code>\/\/ src\/Form\/TaskType.php\n\nnamespace AppForm;\n\nuse SymfonyComponentFormAbstractType;\nuse SymfonyComponentFormFormBuilderInterface;\nuse SymfonyComponentFormExtensionCoreTypeSubmitType;\n\nclass TaskType extends AbstractType\n{\n    public function buildForm(FormBuilderInterface $builder, array $options)\n    {\n        $builder\n            -&gt;add('task')\n            -&gt;add('dueDate', null, ['widget' =&gt; 'single_text'])\n            -&gt;add('save', SubmitType::class);\n    }\n}\n<\/code><\/pre><p>&#28982;&#21518;&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#36825;&#20010;&#34920;&#21333;&#31867;&#65306;<\/p><pre><code>use AppFormTaskType;\n\npublic function new(Request $request)\n{\n    $form = $this-&gt;createForm(TaskType::class);\n    $form-&gt;handleRequest($request);\n\n    if ($form-&gt;isSubmitted() &amp;&amp; $form-&gt;isValid()) {\n        $task = $form-&gt;getData();\n        \/\/ ... perform some action, such as saving the task to the database\n        \/\/ return a Response or redirect\n        return $this-&gt;redirectToRoute('task_success');\n    }\n\n    return $this-&gt;render('new.html.twig', ['form' =&gt; $form-&gt;createView()]);\n}\n<\/code><\/pre><p>&#35813;&#20195;&#30721;&#35774;&#32622;&#20102;&#19968;&#20010;&#31616;&#21333;&#30340;&#34920;&#21333;&#24182;&#22788;&#29702;&#20854;&#25552;&#20132;&#65292;&#21253;&#25324;&#39564;&#35777;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>Symfony &#26159;&#19968;&#20010;&#24378;&#22823;&#30340; PHP &#26694;&#26550;&#12290;&#25105;&#20204;&#21482;&#35302;&#21450;&#20102;&#23427;&#30340;&#34920;&#38754;&#65292;&#20174;&#25991;&#20214;&#30340;&#32467;&#26500;&#21040;&#32534;&#20889;&#21487;&#32500;&#25252;&#20195;&#30721;&#12289;&#19982;&#25968;&#25454;&#24211;&#20132;&#20114;&#21644;&#22788;&#29702;&#34920;&#21333;&#31561;&#26041;&#38754;&#12290;&#20973;&#20511;&#20016;&#23500;&#30340;&#25991;&#26723;&#21644;&#24378;&#22823;&#30340;&#31038;&#21306;&#25903;&#25345;&#65292;Symfony &#21487;&#20197;&#25104;&#20026;&#20219;&#20309; PHP &#24320;&#21457;&#32773;&#30340;&#23453;&#36149;&#36164;&#20135;&#12290;<\/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>PHP Symphony &#26159;&#19968;&#27454; PHP &#24320;&#21457;&#30340;&#24320;&#28304;&#26694;&#26550;&#65292;&#30001; Fabien Potencier &#21644;&#20854;&#20182;&#22242;&#38431;&#25104;&#21592;&#21019;&#24314;&#21644;&#32500;&#25252;&#12290;&#23427;&#25552;&#20379;&#20102;&#19968;&#31995;&#21015;&#21151;&#33021;&#65292;&#22914; ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#12289;Web &#23433;&#20840;&#12289;&#25968;&#25454;&#24211;&#38598;&#25104;&#31561;&#65292;&#20351;&#24471;&#24320;&#21457;&#32773;&#21487;&#20197;&#26356;&#39640;&#25928;&#22320;&#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#20960;&#20010;&#21407;&#22240;&#65292;&#35828;&#26126;&#20320;&#24212;&#35813;&#20851;&#24515;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#24615;&#33021;&#20248;&#21270;<\/strong>&#65306;Symphony &#20351;&#29992;&#20102; MVC&#65288;&#27169;&#22411;-&#35270;&#22270;-&#25511;&#21046;&#22120;&#65289;&#26550;&#26500;&#65292;&#36825;&#26377;&#21161;&#20110;&#25552;&#39640;&#24212;&#29992;&#31243;&#24207;&#30340;&#24615;&#33021;&#12290;MVC &#32467;&#26500;&#20351;&#20195;&#30721;&#26356;&#23481;&#26131;&#32452;&#32455;&#65292;&#24182;&#20801;&#35768;&#24320;&#21457;&#32773;&#19987;&#27880;&#20110;&#19994;&#21153;&#36923;&#36753;&#32780;&#38750;&#26381;&#21153;&#22120;&#31471;&#23454;&#29616;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#23433;&#20840;&#24615;<\/strong>&#65306;Symphony &#25552;&#20379;&#20102;&#24378;&#22823;&#30340;&#23433;&#20840;&#21151;&#33021;&#65292;&#21253;&#25324; SQL &#27880;&#20837;&#20445;&#25252;&#12289;XSS &#25915;&#20987;&#38450;&#25252;&#31561;&#12290;&#36825;&#20123;&#29305;&#24615;&#23545;&#20110;&#22788;&#29702;&#25935;&#24863;&#25968;&#25454;&#30340;&#24212;&#29992;&#26469;&#35828;&#38750;&#24120;&#37325;&#35201;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#27169;&#22359;&#21270;<\/strong>&#65306;Symphony &#30340;&#35774;&#35745;&#40723;&#21169;&#27169;&#22359;&#21270;&#32534;&#31243;&#65292;&#36825;&#24847;&#21619;&#30528;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#28155;&#21152;&#25110;&#21024;&#38500;&#29305;&#23450;&#30340;&#21151;&#33021;&#32780;&#19981;&#24433;&#21709;&#25972;&#20010;&#31995;&#32479;&#12290;&#36825;&#23545;&#20110;&#24555;&#36895;&#36845;&#20195;&#21644;&#36866;&#24212;&#21464;&#21270;&#38750;&#24120;&#26377;&#24110;&#21161;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#31038;&#21306;&#25903;&#25345;<\/strong>&#65306;Symphony &#26377;&#19968;&#20010;&#27963;&#36291;&#30340;&#31038;&#21306;&#65292;&#26377;&#24456;&#22810;&#29992;&#25143;&#21644;&#24320;&#21457;&#32773;&#20998;&#20139;&#30693;&#35782;&#21644;&#32463;&#39564;&#12290;&#36825;&#31181;&#31038;&#21306;&#25903;&#25345;&#26377;&#21161;&#20110;&#35299;&#20915;&#24120;&#35265;&#30340;&#38382;&#39064;&#65292;&#24182;&#19988;&#21487;&#20197;&#20419;&#36827;&#25345;&#32493;&#30340;&#25216;&#26415;&#36827;&#27493;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#36328;&#24179;&#21488;&#20860;&#23481;&#24615;<\/strong>&#65306;&#30001;&#20110;&#20351;&#29992; PHP&#65292;Symphony &#21487;&#20197;&#36816;&#34892;&#22312;&#22810;&#31181;&#24179;&#21488;&#19978;&#65292;&#21253;&#25324; Linux&#12289;Windows &#21644; macOS &#31561;&#12290;&#36825;&#23545;&#20225;&#19994;&#26469;&#35828;&#26159;&#20010;&#24456;&#22823;&#30340;&#20248;&#21183;&#65292;&#22240;&#20026;&#23427;&#21487;&#20197;&#35753;&#19981;&#21516;&#37096;&#38376;&#30340;&#21592;&#24037;&#35775;&#38382;&#24182;&#32500;&#25252;&#21516;&#19968;&#22871;&#24212;&#29992;&#31243;&#24207;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#22270;&#24418;&#29992;&#25143;&#30028;&#38754;<\/strong>&#65306;&#22914;&#26524;&#20320;&#27491;&#22312;&#24320;&#21457;&#22522;&#20110;&#27983;&#35272;&#22120;&#30340;&#24212;&#29992;&#65292;Symphony &#30340;&#22270;&#24418;&#29992;&#25143;&#30028;&#38754;&#65288;GUI&#65289;&#21487;&#20197;&#24110;&#21161;&#20320;&#26356;&#24555;&#22320;&#25645;&#24314;&#32593;&#31449;&#12290;Symphony &#36824;&#25903;&#25345;&#23450;&#21046;&#21270;&#30340; GUI&#65292;&#22240;&#27492;&#21487;&#20197;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#36827;&#34892;&#35843;&#25972;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#20363;&#22914;&#65292;&#20551;&#35774;&#20320;&#38656;&#35201;&#24320;&#21457;&#19968;&#20010;&#22312;&#32447;&#21830;&#24215;&#65292;&#21487;&#20197;&#20351;&#29992; Symphony &#26469;&#26500;&#24314;&#21518;&#31471;&#32467;&#26500;&#12290;&#39318;&#20808;&#65292;&#23433;&#35013; Symphony &#24182;&#35774;&#32622;&#39033;&#30446;&#12290;&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; Symphony &#25552;&#20379;&#30340; ORM &#21151;&#33021;&#26469;&#23384;&#20648;&#21644;&#26816;&#32034;&#21830;&#21697;&#20449;&#24687;&#12290;&#27492;&#22806;&#65292;Symphony &#38598;&#25104;&#20102;&#25903;&#20184;&#32593;&#20851;&#65292;&#36825;&#26679;&#20320;&#23601;&#21487;&#20197;&#30452;&#25509;&#22312;&#32593;&#31449;&#19978;&#22788;&#29702;&#29992;&#25143;&#30340;&#20184;&#27454;&#35831;&#27714;&#12290;&#26368;&#21518;&#65292;&#36890;&#36807;&#37197;&#32622; Symphony &#30340; GUI&#65292;&#20320;&#21487;&#20197;&#36731;&#26494;&#31649;&#29702;&#24211;&#23384;&#12289;&#35746;&#21333;&#21644;&#29992;&#25143;&#20449;&#24687;&#31561;&#12290;<\/p>\n<p>&#24635;&#20043;&#65292;Symphony &#26159;&#19968;&#20010;&#24378;&#22823;&#30340; PHP &#24320;&#21457;&#26694;&#26550;&#65292;&#33021;&#22815;&#28385;&#36275;&#22823;&#22810;&#25968;&#20225;&#19994;&#32423;&#24212;&#29992;&#30340;&#38656;&#27714;&#12290;&#23427;&#30340;&#27169;&#22359;&#21270;&#29305;&#24615;&#12289;&#33391;&#22909;&#30340;&#31038;&#21306;&#25903;&#25345;&#20197;&#21450;&#20016;&#23500;&#30340;&#21151;&#33021;&#20351;&#20854;&#25104;&#20026;&#19968;&#20010;&#20540;&#24471;&#32771;&#34385;&#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; PHP Symfony&#26159;&#19968;&#20010;&#29992;&#20110;&#26500;&#24314;&#29616;&#20195;Web&#24212;&#29992;&#31243;&#24207;&#30340;&#038;#2669..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1027","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\/1027","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=1027"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1027"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1027"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}