{"id":1028,"date":"2025-06-12T11:03:55","date_gmt":"2025-06-12T03:03:55","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1028.html"},"modified":"2025-06-12T11:03:55","modified_gmt":"2025-06-12T03:03:55","slug":"%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85%e5%92%8c%e9%85%8d%e7%bd%aesymfony","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1028.html","title":{"rendered":"\u5982\u4f55\u5b89\u88c5\u548c\u914d\u7f6eSymfony"},"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>&#23433;&#35013;&#21644;&#37197;&#32622;Symfony&#26159;&#19968;&#20010;&#30456;&#23545;&#31616;&#21333;&#30340;&#36807;&#31243;&#65292;&#20197;&#19979;&#26159;&#35814;&#32454;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#23433;&#35013;Composer<\/h3>\n<p>Composer &#26159; PHP &#30340;&#21253;&#31649;&#29702;&#22120;&#65292;&#29992;&#20110;&#23433;&#35013;&#20381;&#36182;&#39033;&#12290;&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#30830;&#20445; Composer &#24050;&#32463;&#23433;&#35013;&#22312;&#20320;&#30340;&#31995;&#32479;&#19978;&#12290;<\/p>\n<h4>&#22312; Windows &#19978;&#23433;&#35013; Composer<\/h4>\n<ol>\n<li>&#35775;&#38382; <a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcv\" rel=\"noopener noreferrer nofollow\">Composer &#23448;&#26041;&#32593;&#31449;<\/a>&#12290;<\/li>\n<li>&#19979;&#36733;&#36866;&#21512;&#20320;&#25805;&#20316;&#31995;&#32479;&#30340;&#21387;&#32553;&#25991;&#20214;&#12290;<\/li>\n<li>&#36816;&#34892;&#19979;&#36733;&#30340;&#21387;&#32553;&#25991;&#20214;&#24182;&#25353;&#29031;&#25552;&#31034;&#23436;&#25104;&#23433;&#35013;&#12290;<\/li>\n<\/ol>\n<h4>&#22312; macOS &#25110; Linux &#19978;&#23433;&#35013; Composer<\/h4>\n<ol>\n<li>&#25171;&#24320;&#32456;&#31471;&#12290;<\/li>\n<li>&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#23433;&#35013; Composer&#65306;\n<pre><code class=\"language-bash\">curl -sS https:\/\/getcomposer.org\/installer | php -- --install-dir=\/usr\/local\/bin --filename=composer<\/code><\/pre><\/li>\n<\/ol>\n<h3>2. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Symfony &#39033;&#30446;<\/h3>\n<p>&#20351;&#29992; Composer &#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Symfony &#39033;&#30446;&#12290;<\/p>\n<pre><code class=\"language-bash\"># &#20551;&#35774;&#20320;&#35201;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; \"myproject\" &#30340;&#39033;&#30446;\ncomposer create-project symfony\/skeleton myproject<\/code><\/pre>\n<h3>3. &#36827;&#20837;&#39033;&#30446;&#30446;&#24405;<\/h3>\n<p>&#36827;&#20837;&#20320;&#21018;&#21018;&#21019;&#24314;&#30340;&#39033;&#30446;&#30446;&#24405;&#12290;<\/p>\n<pre><code class=\"language-bash\">cd myproject<\/code><\/pre>\n<h3>4. &#37197;&#32622;&#29615;&#22659;&#21464;&#37327;&#65288;&#21487;&#36873;&#65289;<\/h3>\n<p>&#22914;&#26524;&#20320;&#24076;&#26395;&#22312;&#24320;&#21457;&#29615;&#22659;&#20013;&#20351;&#29992;&#29305;&#23450;&#30340;&#25968;&#25454;&#24211;&#25110;&#20854;&#20182;&#35774;&#32622;&#65292;&#21487;&#20197;&#22312; <code>.env<\/code> &#25991;&#20214;&#20013;&#36827;&#34892;&#37197;&#32622;&#12290;<\/p>\n<pre><code class=\"language-bash\"># &#31034;&#20363; .env &#25991;&#20214;&#20869;&#23481;\nDATABASE_URL=mysql:\/\/user:password@localhost\/mydatabase\nAPP_ENV=dev<\/code><\/pre>\n<h3>5. &#21551;&#21160;&#24320;&#21457;&#26381;&#21153;&#22120;<\/h3>\n<p>&#20351;&#29992; Composer &#26469;&#21551;&#21160;&#24320;&#21457;&#26381;&#21153;&#22120;&#12290;<\/p>\n<pre><code class=\"language-bash\">composer serve<\/code><\/pre>\n<p>&#25171;&#24320;&#27983;&#35272;&#22120;&#65292;&#35775;&#38382; <code>http:\/\/127.0.0.1:8000<\/code>&#65292;&#20320;&#24212;&#35813;&#20250;&#30475;&#21040; Symfony &#30340;&#40664;&#35748;&#27426;&#36814;&#39029;&#38754;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;&#65306;&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;&#25511;&#21046;&#22120;<\/h3>\n<p>&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702; HTTP &#35831;&#27714;&#12290;<\/p>\n<ol>\n<li>&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#31867;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ src\/Controller\/HelloController.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass HelloController extends AbstractController\n{\n    public function index(): Response\n    {\n        return $this-&gt;render('hello\/index.html.twig', [\n            'message' =&gt; 'Hello, Symfony!',\n        ]);\n    }\n}<\/code><\/pre>\n<ol start=\"2\">\n<li>&#21019;&#24314;&#19968;&#20010;&#27169;&#26495;&#25991;&#20214;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-twig\">&lt;!-- templates\/hello\/index.html.twig --&gt;\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;Hello Symfony!&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;{{ message }}&lt;\/h1&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#24403;&#20320;&#35775;&#38382; <code>http:\/\/127.0.0.1:8000<\/code> &#26102;&#65292;&#20320;&#24212;&#35813;&#20250;&#30475;&#21040;&#26174;&#31034;&ldquo;Hello, Symfony!&rdquo;&#30340;&#28040;&#24687;&#12290;<\/p>\n<p>&#36890;&#36807;&#36825;&#20123;&#27493;&#39588;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#25104;&#21151;&#22320;&#23433;&#35013;&#21644;&#37197;&#32622; Symfony&#65292;&#24182;&#24320;&#22987;&#32534;&#20889;&#20320;&#30340;&#31532;&#19968;&#20010;&#24212;&#29992;&#31243;&#24207;&#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><h3>&#20171;&#32461;<\/h3><p>Symfony &#26159;&#19968;&#20010;&#38750;&#24120;&#21463;&#27426;&#36814;&#30340; PHP &#26694;&#26550;&#65292;&#20026;&#38656;&#35201;&#31616;&#21333;&#19988;&#20248;&#38597;&#24037;&#20855;&#26469;&#21019;&#24314;&#20840;&#21151;&#33021; Web &#24212;&#29992;&#31243;&#24207;&#30340;&#24320;&#21457;&#20154;&#21592;&#35774;&#35745;&#12290;&#26412;&#25351;&#21335;&#23558;&#24102;&#20320;&#20102;&#35299;&#22914;&#20309;&#35774;&#32622;&#21644;&#37197;&#32622;&#19968;&#20010;&#26032;&#30340; Symfony &#39033;&#30446;&#65292;&#21253;&#25324;&#19968;&#20123;&#22522;&#26412;&#21644;&#39640;&#32423;&#37197;&#32622;&#12290;<\/p><h3>&#23433;&#35013;Symfony<\/h3><p>&#22312;&#24320;&#22987;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24050;&#23433;&#35013;Composer&#65292;&#36825;&#26159;PHP&#30340;&#20381;&#36182;&#31649;&#29702;&#24037;&#20855;&#12290;&#20934;&#22791;&#22909;&#21518;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#23433;&#35013;Symfony&#65306;<\/p><pre><code>composer create-project symfony\/website-skeleton my_project_name\n<\/code><\/pre><p>&#35813;&#21629;&#20196;&#23558;&#22312;&#21517;&#20026;&#30340;&#30446;&#24405;&#19979;&#35774;&#32622;&#19968;&#20010;&#26032;&#30340;Symfony&#24212;&#29992;&#12290;<code>my_project_name<\/code>&#25265;&#27465;&#65292;&#25105;&#26080;&#27861;&#29702;&#35299;&#20320;&#30340;&#28040;&#24687;&#65292;&#35831;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#20320;&#30340;&#38656;&#27714;&#21543;&#12290;<code>website-skeleton<\/code>&#23433;&#35013;&#21253;&#39044;&#37197;&#32622;&#22909;&#20102;&#65292;&#36866;&#29992;&#20110;&#22823;&#22810;&#25968;&#38656;&#35201;&#29992;&#25143;&#30028;&#38754;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;<\/p><h3>&#29702;&#35299;Symfony&#30340;&#32467;&#26500;<\/h3><p>&#19968;&#26086;&#23433;&#35013;&#23436;&#27605;&#65292;&#33457;&#28857;&#26102;&#38388;&#29087;&#24713;Symfony&#30340;&#30446;&#24405;&#32467;&#26500;&#65306;<\/p><p><code>\/vendor<\/code>&#65306;Composer &#20381;&#36182;&#39033;&#24050;&#23433;&#35013;&#22312;&#27492;&#22788;&#12290;<\/p><p><code>\/var<\/code>&#65306;&#29992;&#20110;&#26085;&#24535;&#21644;&#32531;&#23384;&#25991;&#20214;&#12290;<\/p><p><code>\/translations<\/code>&#65306;&#21253;&#21547;&#22810;&#35821;&#35328;&#25903;&#25345;&#30340;&#32763;&#35793;&#25991;&#20214;&#12290;<\/p><p><code>\/templates<\/code>&#65306;Twig &#27169;&#26495;&#25991;&#20214;&#30340;&#20301;&#32622;&#22312;&#21738;&#37324;&#12290;<\/p><p><code>\/src<\/code>&#65306;&#21253;&#21547;&#25511;&#21046;&#22120;&#21644;&#39046;&#22495;&#20195;&#30721;&#30340;PHP&#20195;&#30721;&#25991;&#20214;&#24212;&#25918;&#22312;&#20320;&#30340;&#39033;&#30446;&#32467;&#26500;&#20013;&#12290;<\/p><p><code>\/public<\/code>&#65306;&#39033;&#30446;&#30340;Web&#26681;&#30446;&#24405;&#65292;&#21363;&#20320;&#30340;&#21069;&#31471;&#25511;&#21046;&#22120;&#25152;&#22312;&#30340;&#20301;&#32622;&#12290;<\/p><p><code>\/config<\/code>&#65306;&#20445;&#31649;&#25152;&#26377;&#37197;&#32622;&#25991;&#20214;&#12290;<\/p><p><code>\/bin<\/code>&#21253;&#21547;Symfony&#30340;&#21487;&#25191;&#34892;&#25991;&#20214;&#12290;<\/p><p><code>\/assets<\/code>&#23384;&#20648;&#21069;&#31471;&#25991;&#20214;&#65292;&#22914;JavaScript&#21644;CSS&#12290;<\/p><p>&#22312;&#29702;&#35299;&#39033;&#30446;&#24067;&#23616;&#21518;&#65292;&#24744;&#21487;&#20197;&#24320;&#22987;&#37197;&#32622;&#20102;&#12290;<\/p><h3>&#37197;&#32622;.env&#25991;&#20214;<\/h3><p>&#29615;&#22659;&#37197;&#32622;&#65292;&#20363;&#22914;&#25968;&#25454;&#24211;&#36830;&#25509;&#23383;&#31526;&#20018;&#65292;&#20301;&#20110;&#12290;<code>.env<\/code>&#23558;&#25991;&#20214;&#25918;&#22312;&#39033;&#30446;&#30340;&#26681;&#30446;&#24405;&#19979;&#65292;&#22797;&#21046;&#23427;&#12290;<code>.env<\/code>&#35831;&#25552;&#20379;&#38656;&#35201;&#26597;&#25214;&#30340;&#25991;&#20214;&#21517;&#25110;&#25551;&#36848;&#65292;&#20197;&#20415;&#25105;&#24110;&#21161;&#24744;&#25214;&#21040;&#37325;&#22797;&#39033;&#12290;<code>.env.local<\/code>&#20026;&#20102;&#19981;&#24433;&#21709;&#29256;&#26412;&#25511;&#21046;&#65292;&#21487;&#20197;&#24378;&#21046;&#25191;&#34892;&#35774;&#32622;&#65306;<\/p><pre><code># .env.local\nDATABASE_URL=mysql:\/\/db_user:[email&nbsp;protected]:3306\/db_name\n<\/code><\/pre><h3>&#21019;&#24314;&#25968;&#25454;&#24211;<\/h3><p>&#22312;&#37197;&#32622;&#25968;&#25454;&#24211;&#36830;&#25509;&#21518;&#65292;&#20351;&#29992;Symfony&#25511;&#21046;&#21488;&#21629;&#20196;&#21019;&#24314;&#25968;&#25454;&#24211;&#65306;<\/p><pre><code>php bin\/console doctrine:database:create\n<\/code><\/pre><p>&#26816;&#26597;&#36755;&#20986;&#20197;&#30830;&#20445;&#25968;&#25454;&#24211;&#21019;&#24314;&#25104;&#21151;&#12290;<\/p><h3>&#21019;&#24314;&#23454;&#20307;<\/h3><p>&#19968;&#20010;&#23454;&#20307;&#20195;&#34920;&#25968;&#25454;&#24211;&#20013;&#30340;&#34920;&#12290;&#20363;&#22914;&#65292;&#21019;&#24314;&#19968;&#20010;&#23454;&#20307;Player&#65306;<\/p><pre><code>php bin\/console make:entity Player\n<\/code><\/pre><p>&#22312;&#22238;&#31572;&#20102;&#19968;&#20123;&#38382;&#39064;&#21518;&#65292;&#24744;&#30340;&#23454;&#20307;&#19982;&#20851;&#32852;&#30340;PHP&#31867;&#34987;&#21019;&#24314;&#20102;&#12290;<\/p><h3>&#21019;&#24314;&#25511;&#21046;&#22120;<\/h3><p>&#25511;&#21046;&#22120;&#31649;&#29702;&#24212;&#29992;&#31243;&#24207;&#30340;&#25191;&#34892;&#27969;&#12290;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#65306;<\/p><pre><code>php bin\/console make:controller PlayerController\n<\/code><\/pre><p>&#36825;&#20010;&#21160;&#20316;&#20250;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;<code>PlayerController<\/code>&#22312;&#31867;&#20869;&#12290;<code>src\/Controller\/<\/code>&#40664;&#35748;&#25991;&#20214;&#22841;<code>index<\/code>&#26041;&#27861;&#12290;<\/p><h3>&#36335;&#30001;&#37197;&#32622;<\/h3><p>&#36335;&#30001;&#23450;&#20041;&#20102;&#24212;&#29992;&#31243;&#24207;&#30340;URL&#12290;&#20320;&#21487;&#20197;&#37197;&#32622;&#36335;&#30001;&#22312;&#20013;&#12290;<code>config\/routes.yaml<\/code>&#20351;&#29992;&#27880;&#35299;&#22312;&#25511;&#21046;&#22120;&#30340;&#26041;&#27861;&#19978;&#25991;&#20214;&#25110;&#20197;&#19978;&#65306;<\/p><pre><code>\/\n# src\/Controller\/PlayerController.php\n\/**\n * @Route(\"\/player\", name=\"player_index\")\n *\/\npublic function index(): Response\n{\n \/\/ ...\n}\n<\/code><\/pre><h3>&#39640;&#32423;&#37197;&#32622;&#65306;&#21019;&#24314;&#26381;&#21153;<\/h3><p>&#24403;&#20320;&#23545;Symfony&#21464;&#24471;&#36234;&#26469;&#36234;&#29087;&#24713;&#26102;&#65292;&#20320;&#20250;&#36935;&#21040;&#38656;&#35201;&#39640;&#32423;&#37197;&#32622;&#30340;&#24773;&#20917;&#65292;&#27604;&#22914;&#33258;&#23450;&#20041;&#26381;&#21153;&#12289;&#30417;&#21548;&#22120;&#25110;&#23433;&#20840;&#35774;&#32622;&#31561;&#12290;&#35753;&#25105;&#20204;&#26469;&#35848;&#35848;&#22914;&#20309;&#21019;&#24314;&#19968;&#20010;&#26381;&#21153;&#12290;<\/p><p>&#26381;&#21153;&#31867;&#26159;&#22312;&#23454;&#20307;&#25110;&#25511;&#21046;&#22120;&#20043;&#22806;&#25918;&#32622;&#36923;&#36753;&#30340;&#22320;&#26041;&#12290;&#39318;&#20808;&#65292;&#21019;&#24314;&#20320;&#30340;&#26381;&#21153;&#31867;&#65306;<\/p><pre><code>namespace AppService;\n\nclass PlayerManager\n{\n    public function create() \n    {\n        \/\/ Your logic here\n    }\n}\n<\/code><\/pre><p>&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#23450;&#20041;&#23427;&#12290;<code>config\/services.yaml<\/code>&#20026;&#20102;&#20351;&#20854;&#21487;&#29992;&#20316;&#20381;&#36182;&#27880;&#20837;&#65306;<\/p><pre><code>services:\n    AppServicePlayerManager:\n        # you can configure your service here\n<\/code><\/pre><p>&#29616;&#22312;&#20320;&#21487;&#20197;&#25226;&#36825;&#20010;&#26381;&#21153;&#27880;&#20837;&#21040;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#26381;&#21153;&#20013;&#12290;<\/p><h3>&#27491;&#22312;&#27979;&#35797;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;<\/h3><p>&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#25353;&#39044;&#26399;&#24037;&#20316;&#33267;&#20851;&#37325;&#35201;&#12290;Symfony&#26377;&#19968;&#20010;&#20869;&#32622;&#30340;PHPUnit&#26725;&#65292;&#24744;&#21487;&#20197;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#25191;&#34892;&#27979;&#35797;&#65306;<\/p><pre><code>php bin\/phpunit\n<\/code><\/pre><h3>&#32467;&#35770;<\/h3><p>&#26412;&#25351;&#21335;&#27010;&#36848;&#20102;&#20174;&#23433;&#35013;&#21021;&#22987;&#39033;&#30446;&#21040;&#39640;&#32423;&#37197;&#32622;&#65288;&#22914;&#26381;&#21153;&#21019;&#24314;&#21644;&#36816;&#34892;&#27979;&#35797;&#65289;&#25152;&#38656;&#30340;&#27493;&#39588;&#12290;&#26377;&#20102;&#36825;&#20123;&#30693;&#35782;&#65292;&#24744;&#24050;&#32463;&#20934;&#22791;&#22909;&#20351;&#29992;Symfony&#26694;&#26550;&#24320;&#21457;&#24378;&#22823;&#30340;PHP&#24212;&#29992;&#31243;&#24207;&#20102;&#12290;&#35831;&#35760;&#20303;&#65292;Symfony&#25991;&#26723;&#26159;&#24744;&#25193;&#23637;Symfony&#25216;&#33021;&#26102;&#30340;&#23453;&#36149;&#36164;&#28304;&#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>&#23433;&#35013;&#21644;&#37197;&#32622; Symfony &#26159;&#19968;&#20010;&#22797;&#26434;&#20294;&#38750;&#24120;&#26377;&#29992;&#30340;&#36807;&#31243;&#65292;&#29305;&#21035;&#26159;&#23545;&#20110;&#37027;&#20123;&#24819;&#35201;&#20351;&#29992; PHP &#21644; Symfony &#26500;&#24314; Web &#24212;&#29992;&#31243;&#24207;&#30340;&#20154;&#26469;&#35828;&#12290;&#20197;&#19979;&#26159;&#19968;&#33324;&#24615;&#30340;&#25351;&#21335;&#65292;&#24110;&#21161;&#24744;&#24320;&#22987;&#65306;<\/p>\n<h3>1. &#23433;&#35013; Composer<\/h3>\n<p>&#39318;&#20808;&#30830;&#20445;&#24744;&#30340;&#31995;&#32479;&#24050;&#32463;&#23433;&#35013;&#20102; Composer&#65292;&#23427;&#26159;&#29992;&#20110;&#31649;&#29702; PHP &#39033;&#30446;&#20381;&#36182;&#30340;&#21253;&#31649;&#29702;&#22120;&#12290;&#25171;&#24320;&#21629;&#20196;&#34892;&#24037;&#20855;&#65288;&#22914; Terminal &#25110; Command Prompt&#65289;&#65292;&#36755;&#20837;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013; Composer&#65306;<\/p>\n<pre><code class=\"language-bash\">php -r \"copy('https:\/\/getcomposer.org\/installer', 'path\/to\/installer.php'); php installer.php --install-dir=\/usr\/local\/bin --filename=composer\";<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#36890;&#36807;&#36816;&#34892; <code>chmod +x \/usr\/local\/bin\/composer<\/code> &#26469;&#36171;&#20104; composer &#21487;&#25191;&#34892;&#26435;&#38480;&#12290;<\/p>\n<h3>2. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Symfony &#39033;&#30446;<\/h3>\n<p>&#29616;&#22312;&#24744;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Symfony &#39033;&#30446;&#20102;&#12290;&#25171;&#24320;&#21629;&#20196;&#34892;&#24037;&#20855;&#65292;&#23548;&#33322;&#21040;&#35201;&#21019;&#24314;&#39033;&#30446;&#30340;&#30446;&#24405;&#65292;&#24182;&#36755;&#20837;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p>\n<pre><code class=\"language-bash\">mkdir my-project\ncd my-project<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#36827;&#20837; Composer &#30340;&#30446;&#24405;&#24182;&#21021;&#22987;&#21270;&#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer init<\/code><\/pre>\n<h3>3. &#32534;&#36753; composer.json &#25991;&#20214;<\/h3>\n<p>&#25171;&#24320; <code>composer.json<\/code> &#25991;&#20214;&#65292;&#28155;&#21152;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p>\n<pre><code class=\"language-json\">{\n    \"require\": {\n        \"symfony\/framework-bundle\": \"^4.4\"\n    }\n}<\/code><\/pre>\n<p>&#36825;&#21578;&#35785; Composer &#20351;&#29992; Symfony 4.4 &#29256;&#26412;&#26500;&#24314;&#39033;&#30446;&#12290;<\/p>\n<h3>4. &#23433;&#35013; Symfony &#26694;&#26550;<\/h3>\n<p>&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013; Symfony&#65306;<\/p>\n<pre><code class=\"language-bash\">composer install<\/code><\/pre>\n<p>&#27492;&#36807;&#31243;&#20250;&#19979;&#36733;&#24182;&#23433;&#35013;&#25152;&#26377;&#25152;&#38656;&#30340; Symfony &#21253;&#12290;<\/p>\n<h3>5. &#37197;&#32622;&#26381;&#21153;&#22120;&#29615;&#22659;<\/h3>\n<ul>\n<li>&#30830;&#20445;&#24744;&#30340;&#26381;&#21153;&#22120;&#19978;&#24050;&#21551;&#29992; PHP &#34394;&#25311;&#20027;&#26426;&#12290;<\/li>\n<li>&#22914;&#26524;&#26159; Windows&#65292;&#21487;&#20197;&#20351;&#29992; IIS&#65307;&#22914;&#26524;&#26159; Linux&#65292;&#21487;&#20197;&#20351;&#29992; Apache &#25110; Nginx&#12290;<\/li>\n<li>&#22312;&#26381;&#21153;&#22120;&#19978;&#21551;&#21160; Symfony &#26381;&#21153;&#65306;<code>sudo service symfony-server start<\/code>&#65288;Linux&#65289;&#25110; <code>sudo service apache2 restart<\/code>&#65288;Windows&#65289;&#12290;<\/li>\n<\/ul>\n<h3>6. &#37096;&#32626;&#24212;&#29992;<\/h3>\n<p>&#37096;&#32626;&#24212;&#29992;&#31243;&#24207;&#21518;&#65292;&#21487;&#20197;&#36890;&#36807;&#35775;&#38382; <a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cDovL2xvY2FsaG9zdDo4MDAwLw==\" rel=\"noopener noreferrer nofollow\">http:\/\/localhost:8000\/<\/a> &#26469;&#26597;&#30475;&#23427;&#26159;&#21542;&#27491;&#24120;&#24037;&#20316;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340; Symfony &#24212;&#29992;&#65292;&#20854;&#20013;&#21253;&#21547;&#19968;&#20010;&#25511;&#21046;&#22120;&#21644;&#20004;&#20010;&#35270;&#22270;&#27169;&#26495;&#65306;<\/p>\n<h4>&#25511;&#21046;&#22120;&#25991;&#20214; (AppController.php)<\/h4>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass AppController extends AbstractController\n{\n    public function indexAction()\n    {\n        return new Response('Hello World!');\n    }\n}<\/code><\/pre>\n<h4>&#35270;&#22270;&#27169;&#26495; (views\/index.html.twig)<\/h4>\n<pre><code class=\"language-twig\">{% extends \"base.html.twig\" %}\n\n{% block body_content %}\n  &lt;h1&gt;Hello, World!&lt;\/h1&gt;\n{% endblock %}<\/code><\/pre>\n<p>&#20197;&#19978;&#23601;&#26159;&#22522;&#26412;&#30340; Symfony &#23433;&#35013;&#21644;&#37197;&#32622;&#36807;&#31243;&#12290;&#24076;&#26395;&#36825;&#23545;&#24744;&#26377;&#25152;&#24110;&#21161;&#65281;&#22914;&#26524;&#24744;&#26377;&#26356;&#22810;&#20851;&#20110; Symfony &#30340;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#25552;&#38382;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#23433;&#35013;&#21644;&#37197;&#32622;Symfony&#26159;&#19968;&#20010;&#30456;&#23545;&#31616;&#21333;&#30340;&#36807;&#31243;&#038;#652..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1028","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\/1028","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=1028"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1028"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1028"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}