{"id":1068,"date":"2025-06-12T11:54:13","date_gmt":"2025-06-12T03:54:13","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1068.html"},"modified":"2025-06-12T11:54:13","modified_gmt":"2025-06-12T03:54:13","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8symfony%e4%b8%ad%e4%bd%bf%e7%94%a8%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1068.html","title":{"rendered":"\u5982\u4f55\u5728Symfony\u4e2d\u4f7f\u7528\u73af\u5883\u53d8\u91cf"},"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 &#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#19981;&#21516;&#30340;&#24320;&#21457;&#21644;&#29983;&#20135;&#29615;&#22659;&#20013;&#31649;&#29702;&#37197;&#32622;&#20449;&#24687;&#65292;&#20363;&#22914;&#25968;&#25454;&#24211;&#36830;&#25509;&#23383;&#31526;&#20018;&#12289;API&#23494;&#38053;&#31561;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312; Symfony &#39033;&#30446;&#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#30340;&#35814;&#32454;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#23433;&#35013;&#24182;&#37197;&#32622;&#29615;&#22659;&#21464;&#37327;<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013; <code>symfony\/symfony<\/code> &#21644; <code>symfony\/environnement-variables-bundle<\/code>&#12290;<\/p>\n<pre><code class=\"language-bash\">composer require symfony\/symfony symfony\/environnement-variables-bundle<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010; <code>env.yaml<\/code> &#25991;&#20214;&#26469;&#23450;&#20041;&#20320;&#30340;&#29615;&#22659;&#21464;&#37327;&#12290;<\/p>\n<pre><code class=\"language-yaml\"># config\/env.yaml\nparameters:\n    database_host: localhost\n    database_port: 3306\n    database_name: mydatabase\n    database_user: root\n    database_password: ''\n    api_key: 'your_api_key_here'\n\nenvironment_variables:\n    DATABASE_URL: \"%kernel.project_dir%\/%kernel.environment%\/databases\/$database_name\"\n    API_KEY: '%kernel.environment%'<\/code><\/pre>\n<h3>2. &#20351;&#29992;&#29615;&#22659;&#21464;&#37327;<\/h3>\n<p>&#29616;&#22312;&#20320;&#21487;&#20197;&#20351;&#29992;&#36825;&#20123;&#29615;&#22659;&#21464;&#37327;&#26469;&#26367;&#25442;&#37197;&#32622;&#25991;&#20214;&#20013;&#30340;&#21344;&#20301;&#31526;&#12290;<\/p>\n<h4>&#22312;&#37197;&#32622;&#25991;&#20214;&#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;<\/h4>\n<p>&#22312;&#20320;&#30340;&#37197;&#32622;&#25991;&#20214;&#65288;&#22914; <code>config\/packages\/dev\/database.yaml<\/code>&#65289;&#20013;&#65292;&#20351;&#29992; <code>%parameter_name%<\/code> &#26469;&#24341;&#29992;&#21442;&#25968;&#12290;<\/p>\n<pre><code class=\"language-yaml\"># config\/packages\/dev\/database.yaml\ndoctrine:\n    dbal:\n        url: \"%DATABASE_URL%\"\n        driver: pdo_mysql\n        charset: utf8mb4\n        default_table_prefix: \"\"\n        entities:\n            - AppEntityYourEntity<\/code><\/pre>\n<h4>&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;<\/h4>\n<p>&#21516;&#26679;&#65292;&#20320;&#21487;&#20197;&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992; <code>%parameter_name%<\/code> &#26469;&#24341;&#29992;&#21442;&#25968;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ src\/Controller\/DefaultController.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass DefaultController extends AbstractController\n{\n    public function index(): Response\n    {\n        $apiKey = $this-&gt;getParameter('api_key');\n        return new Response(\"API Key: \" . $apiKey);\n    }\n}<\/code><\/pre>\n<h3>3. &#36816;&#34892;&#24212;&#29992;&#31243;&#24207;<\/h3>\n<p>&#20026;&#20102;&#30830;&#20445;&#29615;&#22659;&#21464;&#37327;&#27491;&#30830;&#21152;&#36733;&#65292;&#20320;&#21487;&#20197;&#36816;&#34892;&#20320;&#30340; Symfony &#24212;&#29992;&#31243;&#24207;&#65292;&#24182;&#26597;&#30475;&#25511;&#21046;&#21488;&#36755;&#20986;&#20197;&#30830;&#35748;&#21442;&#25968;&#34987;&#27491;&#30830;&#26367;&#25442;&#12290;<\/p>\n<pre><code class=\"language-bash\">bin\/console server:run<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;&#30456;&#20851;&#27493;&#39588;<\/h3>\n<p>&#20551;&#35774;&#20320;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340;&#21629;&#20196;&#34892;&#24037;&#20855;&#65292;&#38656;&#35201;&#20174;&#37197;&#32622;&#25991;&#20214;&#20013;&#35835;&#21462;&#25968;&#25454;&#24211;&#36830;&#25509;&#23383;&#31526;&#20018;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#27493;&#39588;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#37197;&#32622;&#25991;&#20214;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-yaml\"># config\/packages\/dev\/databases.yaml\ndoctrine:\n   dbal:\n       url: \"%kernel.project_dir%\/%kernel.environment%\/databases\/mydatabase\"\n       driver: pdo_mysql\n       charset: utf8mb4\n       default_table_prefix: \"\"\n       entities:\n           - AppEntityYourEntity<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#32534;&#20889;&#21629;&#20196;&#34892;&#24037;&#20855;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ src\/Command\/DatabaseInfoCommand.php\nnamespace AppCommand;\n\nuse DoctrineORMEntityManagerInterface;\nuse SymfonyComponentConsoleCommandCommand;\nuse SymfonyComponentConsoleInputInputInterface;\nuse SymfonyComponentConsoleOutputOutputInterface;\n\nclass DatabaseInfoCommand extends Command\n{\n   protected static $defaultName = 'app:db-info';\n\n   private $entityManager;\n\n   public function __construct(EntityManagerInterface $entityManager)\n   {\n       $this-&gt;entityManager = $entityManager;\n       parent::__construct();\n   }\n\n   protected function configure()\n   {\n       $this-&gt;setDescription('Display database connection information');\n   }\n\n   protected function execute(InputInterface $input, OutputInterface $output): int\n   {\n       $configuration = $this-&gt;entityManager-&gt;getConnection()-&gt;getConfiguration();\n       $driverOptions = $configuration-&gt;getOptions();\n\n       $output-&gt;writeln(\"Database Host: \" . $driverOptions['host']);\n       $output-&gt;writeln(\"Database Port: \" . $driverOptions['port']);\n       $output-&gt;writeln(\"Database Name: \" . $driverOptions['dbname']);\n\n       return Command::SUCCESS;\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#27880;&#20876;&#21629;&#20196;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ src\/AppKernel.php\nnamespace App;\n\nuse SymfonyComponentHttpKernelBundleBundle;\nuse SymfonyComponentDependencyInjectionContainerBuilder;\nuse SymfonyComponentDependencyInjectionExtensionExtensionInterface;\nuse SymfonyComponentDependencyInjectionLoaderConfiguratorLoaderInterface;\n\nclass AppBundle extends Bundle\n{\n   public function registerCommands(CommandRegistry $registry)\n   {\n       $registry-&gt;addCommand(new DatabaseInfoCommand($this-&gt;getContainer()-&gt;get('doctrine.orm.entity_manager')));\n   }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#22312; Symfony &#39033;&#30446;&#20013;&#26377;&#25928;&#22320;&#31649;&#29702;&#21644;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#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>&#26377;&#25928;&#31649;&#29702;&#29615;&#22659;&#21464;&#37327;&#23545;&#20110;&#29616;&#20195;Web&#24212;&#29992;&#31243;&#24207;&#30340;&#24320;&#21457;&#33267;&#20851;&#37325;&#35201;&#12290;&#22312;&#27969;&#34892;&#30340;PHP&#26694;&#26550;Symfony&#20013;&#65292;&#29615;&#22659;&#21464;&#37327;&#65288;&#20063;&#31216;&#20026;ENV&#21464;&#37327;&#65289;&#23545;&#20110;&#21306;&#20998;&#19981;&#21516;&#24212;&#29992;&#35774;&#32622;&#30340;&#24320;&#21457;&#12289;&#27979;&#35797;&#21644;&#29983;&#20135;&#29615;&#22659;&#38750;&#24120;&#37325;&#35201;&#12290;&#26412;&#25945;&#31243;&#23558;&#25506;&#32034;&#29615;&#22659;&#21464;&#37327;&#22312;Symfony&#20013;&#30340;&#22797;&#26434;&#24615;&#65292;&#24182;&#36890;&#36807;&#35814;&#32454;&#30340;&#20195;&#30721;&#31034;&#20363;&#28436;&#31034;&#20960;&#20010;&#23454;&#29992;&#30340;&#24212;&#29992;&#22330;&#26223;&#12290;<\/p><h2>&#29702;&#35299;&#29615;&#22659;&#21464;&#37327;<\/h2><p>&#22312;Symfony&#20013;&#65292;&#29615;&#22659;&#21464;&#37327;&#26159;&#23384;&#20648;&#37197;&#32622;&#20540;&#30340;&#21344;&#20301;&#31526;&#65292;&#36825;&#20123;&#37197;&#32622;&#20540;&#19981;&#22312;&#24212;&#29992;&#31243;&#24207;&#20195;&#30721;&#20013;&#23450;&#20041;&#65292;&#22240;&#27492;&#21487;&#20197;&#23454;&#29616;&#23433;&#20840;&#21644;&#28789;&#27963;&#30340;&#37197;&#32622;&#31649;&#29702;&#12290;&#23427;&#20204;&#38750;&#24120;&#36866;&#21512;&#23384;&#20648;&#25935;&#24863;&#25968;&#25454;&#65292;&#22914;&#25968;&#25454;&#24211;&#20973;&#25454;&#25110;API&#23494;&#38053;&#65292;&#24182;&#19988;&#21487;&#20197;&#22312;&#19981;&#21516;&#24773;&#20917;&#19979;&#36890;&#36807;&#20195;&#30721;&#26356;&#25913;&#26469;&#25913;&#21464;&#24212;&#29992;&#30340;&#34892;&#20026;&#12290;<\/p><h2>&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;<\/h2><p>&#39318;&#20808;&#65292;&#29615;&#22659;&#21464;&#37327;&#21487;&#20197;&#22312;&#31995;&#32479;&#20840;&#23616;&#35774;&#32622;&#25110;&#22312;&#24212;&#29992;&#26412;&#22320;&#35774;&#32622;&#20013;&#36827;&#34892;&#12290;&#22312;Symfony&#20013;&#65292;&#36890;&#24120;&#36890;&#36807;&#31649;&#29702;&#26412;&#22320;&#29615;&#22659;&#21464;&#37327;&#26469;&#22788;&#29702;&#36825;&#20123;&#21464;&#37327;&#12290;<code>.env<\/code>&#25991;&#20214;&#12290;<\/p><pre><code># .env\nDATABASE_URL=\"mysql:\/\/db_user:db_password@localhost:3306\/db_name\"\n<\/code><\/pre><p>&#24744;&#20063;&#21487;&#33021;&#38656;&#35201;&#26377;&#20855;&#20307;&#30340;&#12290;<code>.env<\/code>&#38024;&#23545;&#19981;&#21516;&#29615;&#22659;&#30340;&#25991;&#20214;&#65306;<\/p><pre><code># .env.dev\n# .env.test\n# .env.prod\n<\/code><\/pre><p>&#27492;&#22806;&#65292;Symfony &#20351;&#29992;&#20102; Dotenv &#32452;&#20214;&#65292;&#36825;&#26377;&#21161;&#20110;&#20174; .env &#25991;&#20214;&#21152;&#36733;&#21464;&#37327;&#12290;<code>.env<\/code>&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;&#24212;&#29992;&#30340;&#29615;&#22659;&#12290;<\/p><h2>&#22312;Symfony&#26694;&#26550;&#20013;&#65292;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#35775;&#38382;&#29615;&#22659;&#21464;&#37327;&#65306;\n\n&#20351;&#29992; env &#26041;&#27861;&#65306;\n$environment = $this-&gt;container-&gt;get(&#8216;kernel&#8217;)-&gt;getEnvironment();\n\n&#36890;&#36807;&#23481;&#22120;&#27880;&#20837;&#26381;&#21153;&#65306;\n\nuse SymfonyComponentDependencyInjectionContainerInterface;\n\npublic function __construct(ContainerInterface $container)\n{\n$this-&gt;container = $container;\n}\n&#28982;&#21518;&#22312;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#31867;&#20013;&#20351;&#29992; `$this-&gt;container-&gt;get(&#8216;your_service&#8217;)` &#26469;&#33719;&#21462;&#26381;&#21153;&#23454;&#20363;&#12290;\n\n3. &#30452;&#25509;&#20174;&#37197;&#32622;&#25991;&#20214;&#35835;&#21462;&#65288;&#20165;&#36866;&#29992;&#20110;&#26576;&#20123;&#29305;&#23450;&#30340;&#29615;&#22659;&#21464;&#37327;&#65289;&#65306;\n&#8220;`yaml\nparameters:\n app.environment: &#8220;%kernel.environment%&#8221;\n&#36825;&#26679;&#23601;&#21487;&#20197;&#22312;&#24212;&#29992;&#20013;&#20351;&#29992; %app.environment% &#26469;&#24341;&#29992;&#24403;&#21069;&#29615;&#22659;&#21517;&#31216;&#12290;\n\n&#21033;&#29992; @var &#27880;&#37322;&#26469;&#22768;&#26126;&#19968;&#20010;&#24120;&#37327;&#65306;\n\n\/**\n* @var string\n*\/\nprivate $environment;\n\npublic function __construct()\n{\n$this-&gt;environment = env(&#8216;APP_ENV&#8217;);\n}\n\n5. &#22312;&#21629;&#20196;&#34892;&#24037;&#20855;&#25110;&#33050;&#26412;&#20013;&#30452;&#25509;&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;&#65306;\n&#8220;`bash\nexport APP_ENV=prod\n\n&#20351;&#29992; config &#27169;&#26495;&#21152;&#36733;&#22120;&#21152;&#36733;&#29615;&#22659;&#30456;&#20851;&#30340;&#37197;&#32622;&#65306;\n\nuse SymfonyComponentConfigLoaderLoaderResolverInterface;\nuse SymfonyComponentConfigResourceFileResource;\n\nclass ConfigFile extends AbstractConfigFile\n{\npublic function load(LoaderResolverInterface $resolver, array $configs, FileResource $resource)\n{\nif ($resource instanceof ConfigFile) {\n\/\/ &#21152;&#36733;&#19982;&#29615;&#22659;&#30456;&#20851;&#32852;&#30340;&#37197;&#32622;\n}\n}\n}\n\n7. &#20351;&#29992; `ParameterBag` &#31867;&#20013;&#30340;&#26041;&#27861;&#65306;\n&#8220;`php\n$parameters = new ParameterBag([&#8216;APP_ENV&#8217; =&gt; &#8216;dev&#8217;]);\necho $parameters-&gt;get(&#8216;APP_ENV&#8217;); \/\/ &#36755;&#20986; &#8220;dev&#8221;\n\n&#21033;&#29992; PHP &#30340; putenv() &#20989;&#25968;&#20020;&#26102;&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;&#65306;\nputenv(&#8220;APP_ENV=production&#8221;);\n\n&#37197;&#32622;&#25991;&#20214;&#20013;&#20351;&#29992; env &#26631;&#31614;&#65306;\nparameters:\napp.environment: %env(APP_ENV)% # &#22914;&#26524;&#38656;&#35201;&#21160;&#24577;&#33719;&#21462;&#29615;&#22659;&#21464;&#37327;\n\n&#36825;&#20123;&#26041;&#27861;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;Symfony&#39033;&#30446;&#20013;&#28789;&#27963;&#22320;&#31649;&#29702;&#21644;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#12290;<\/h2><p>&#22312;&#24744;&#30340;Symfony&#24212;&#29992;&#31243;&#24207;&#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#65292;&#21487;&#20197;&#30452;&#25509;&#20174;&#37027;&#37324;&#35775;&#38382;&#23427;&#12290;<code>$_ENV<\/code>&#20351;&#29992;&#36229;&#32423;&#20840;&#23616;&#65292;&#25110;&#32773;&#36890;&#36807;Symfony&#21442;&#25968;&#31995;&#32479;&#12290;<\/p><pre><code>\/\/ Using superglobals\ndb_user = $_ENV['DATABASE_USER'];\n\n\/\/ Using Symfony's parameter system\n$this-&gt;getParameter('env(DATABASE_USER)');\n<\/code><\/pre><p>Symfony &#20063;&#20801;&#35768;&#20320;&#22312;&#29615;&#22659;&#21464;&#37327;&#26410;&#35774;&#32622;&#26102;&#23450;&#20041;&#40664;&#35748;&#20540;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#37197;&#32622;&#25991;&#20214;&#22312;&#36825;&#20123;&#20301;&#32622;&#20351;&#29992;&#36825;&#31181;&#26041;&#27861;&#12290;<code>env()<\/code>&#21151;&#33021;&#65306;<\/p><pre><code>parameters:\n    database_user: '%env(default:root)DATABASE_USER%'\n<\/code><\/pre><h2>&#31867;&#22411;C&#29615;&#22659;&#21464;&#37327;&#35774;&#32622;&#29615;&#22659;&#21464;&#37327;<\/h2><p>&#22312;Symfony&#20013;&#65292;&#29615;&#22659;&#21464;&#37327;&#40664;&#35748;&#20026;&#23383;&#31526;&#20018;&#31867;&#22411;&#12290;&#28982;&#32780;&#65292;&#24744;&#21487;&#33021;&#38656;&#35201;&#24744;&#30340;&#21464;&#37327;&#20855;&#26377;&#19981;&#21516;&#30340;&#31867;&#22411;&#65292;&#20363;&#22914;&#25972;&#25968;&#25110;&#24067;&#23572;&#20540;&#12290;Symfony&#36890;&#36807;&#31867;&#22411;&#36716;&#25442;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#65306;<\/p><pre><code>parameters:\n    my_boolean: '%env(bool:MY_BOOLEAN)%'\n    my_integer: '%env(int:MY_INTEGER)%'\n<\/code><\/pre><h2>&#22312;&#26381;&#21153;&#20013;&#23450;&#20041;&#29615;&#22659;&#21464;&#37327;<\/h2><p>&#35201;&#22312;&#19968;&#20010;&#26381;&#21153;&#20013;&#30452;&#25509;&#20351;&#29992;&#19968;&#20010;&#29615;&#22659;&#21464;&#37327;&#65292;&#20320;&#38656;&#35201;&#22312; services.yaml &#25991;&#20214;&#20013;&#24341;&#29992;&#23427;&#65306;<\/p><pre><code>services:\n    AppServiceMyService:\n        arguments:\n            $myParam: '%env(MY_ENV_VARIABLE)%'\n<\/code><\/pre><p>&#36825;&#23558;&#20801;&#35768;Symfony&#30340;&#20381;&#36182;&#27880;&#20837;&#23481;&#22120;&#33258;&#21160;&#23558;&#29615;&#22659;&#21464;&#37327;&#20256;&#36882;&#21040;&#24744;&#30340;&#26381;&#21153;&#20013;&#12290;<\/p><h2>&#26368;&#20339;&#23454;&#36341;&#65306;&#29615;&#22659;&#21464;&#37327;&#65288;ENV Variables&#65289;<\/h2><p>&#39564;&#35777;&#29615;&#22659;&#21464;&#37327;&#65306;&#30830;&#20445;&#24744;&#30340;&#29615;&#22659;&#21464;&#37327;&#25552;&#20379;&#26377;&#25928;&#30340;&#25968;&#25454;&#31867;&#22411;&#21644;&#20540;&#65292;&#20197;&#20379;&#24212;&#29992;&#31243;&#24207;&#20351;&#29992;&#12290;<\/p><p>&#19981;&#35201;&#20381;&#36182;&#29615;&#22659;&#21464;&#37327;&#26469;&#22788;&#29702;&#24212;&#29992;&#31243;&#24207;&#36923;&#36753;&#65306;&#36825;&#31181;&#20381;&#36182;&#20250;&#20351;&#20195;&#30721;&#26356;&#19981;&#20855;&#26377;&#21487;&#31227;&#26893;&#24615;&#21644;&#27979;&#35797;&#24615;&#12290;<\/p><p>&#35831;&#23558;.env&#25991;&#20214;&#20174;&#29256;&#26412;&#25511;&#21046;&#20013;&#31227;&#38500;&#65306;&#25935;&#24863;&#20449;&#24687;&#19981;&#24212;&#23384;&#20648;&#22312;&#20195;&#30721;&#24211;&#20013;&#12290;<\/p><h2>&#39640;&#32423;&#25552;&#31034;<\/h2><p>&#20320;&#21487;&#20197;&#29992;Symfony&#30340;&#36830;&#36143;&#35821;&#27861;&#36229;&#36234;&#36825;&#20123;&#22522;&#26412;&#29992;&#36884;&#65306;<\/p><pre><code>parameters:\n    dsn: '%env(resolve:DATABASE_URL)%'\n<\/code><\/pre><p>&#24182;&#19988;&#65292;&#20026;&#20102;&#23454;&#29616;&#32456;&#26497;&#25511;&#21046;&#65292;Symfony &#25903;&#25345;&#21019;&#24314;&#33258;&#23450;&#20041;&#29615;&#22659;&#21464;&#37327;&#22788;&#29702;&#22120;&#12290;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#23454;&#29616;&#20102;&#30340;&#31867;&#12290;<code>EnvVarProcessorInterface<\/code>&#22788;&#29702;&#21464;&#37327;&#38656;&#35201;&#26681;&#25454;&#20320;&#30340;&#38656;&#27714;&#36827;&#34892;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#26377;&#25928;&#22320;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#22312;Symfony&#20013;&#30830;&#20445;&#25935;&#24863;&#20449;&#24687;&#24471;&#21040;&#20445;&#25252;&#65292;&#21516;&#26102;&#20415;&#20110;&#19981;&#21516;&#29615;&#22659;&#19979;&#30340;&#24212;&#29992;&#37197;&#32622;&#12290;&#21033;&#29992;Symfony&#30340;&#28789;&#27963;&#24615;&#65292;&#32467;&#21512;ENV&#21464;&#37327;&#65292;&#21487;&#20197;&#22686;&#24378;&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#24615;&#21644;&#21487;&#31227;&#26893;&#24615;&#65292;&#36825;&#27491;&#26159;&#26412;&#25991;&#25945;&#31243;&#25152;&#24378;&#35843;&#30340;&#20869;&#23481;&#12290;<\/p><h2>&#19979;&#19968;&#27493;&#25805;&#20316;<\/h2><p>&#22312;&#25552;&#20379;&#30340;&#31034;&#20363;&#22522;&#30784;&#19978;&#36827;&#34892;&#23454;&#39564;&#65292;&#23558;&#29615;&#22659;&#21464;&#37327;&#38598;&#25104;&#21040;&#24212;&#29992;&#31243;&#24207;&#30340;&#26381;&#21153;&#20013;&#65292;&#24182;&#32487;&#32493;&#20248;&#21270;&#37197;&#32622;&#31649;&#29702;&#31574;&#30053;&#20197;&#20805;&#20998;&#21033;&#29992;Symfony&#30340;&#29615;&#22659;&#21464;&#37327;&#31995;&#32479;&#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>&#22312;Symfony&#26694;&#26550;&#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;<code>Environment<\/code>&#31867;&#26469;&#35775;&#38382;&#21644;&#25805;&#20316;&#24212;&#29992;&#31243;&#24207;&#30340;&#29615;&#22659;&#21464;&#37327;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#30340;&#22522;&#26412;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#30830;&#20445;&#22312;&#20320;&#30340;&#24212;&#29992;&#37197;&#32622;&#25991;&#20214;&#65288;&#36890;&#24120;&#26159;<code>app\/config\/config.yml<\/code>&#65289;&#20013;&#23450;&#20041;&#20102;&#29615;&#22659;&#21464;&#37327;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026;<code>APP_ENVIRONMENT<\/code>&#30340;&#29615;&#22659;&#21464;&#37327;&#65292;&#24182;&#19988;&#20320;&#24819;&#23558;&#20854;&#35774;&#32622;&#20026;&#29983;&#20135;&#27169;&#24335;&#65292;&#20320;&#24212;&#35813;&#36825;&#26679;&#20570;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-yml\"># app\/config\/config.yml\n\nenvironment:\n  APP_ENVIRONMENT: production<\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p>&#28982;&#21518;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#29615;&#22659;&#21464;&#37327;&#23545;&#35937;&#65292;&#36825;&#20010;&#23545;&#35937;&#21487;&#20197;&#29992;&#26469;&#35835;&#21462;&#21644;&#20462;&#25913;&#29615;&#22659;&#21464;&#37327;&#12290;&#36825;&#36890;&#24120;&#26159;&#22312;&#26381;&#21153;&#22120;&#21551;&#21160;&#26102;&#23436;&#25104;&#30340;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#20351;&#29992;<code>$env<\/code>&#23545;&#35937;&#26469;&#33719;&#21462;&#24403;&#21069;&#30340;&#24212;&#29992;&#29615;&#22659;&#21464;&#37327;&#20540;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;<code>APP_ENVIRONMENT<\/code>&#26159;&#29983;&#20135;&#27169;&#24335;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#35775;&#38382;&#23427;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$env = $this-&gt;container-&gt;get('environment');\n$production_env = $env-&gt;isProduction();\necho \"Is in production mode? {$production_env ? 'Yes' : 'No'}\";<\/code><\/pre>\n<ol start=\"4\">\n<li>&#22914;&#26524;&#20320;&#38656;&#35201;&#20462;&#25913;&#29615;&#22659;&#21464;&#37327;&#30340;&#20540;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>set()<\/code>&#26041;&#27861;&#23558;&#26032;&#30340;&#20540;&#28155;&#21152;&#21040;&#29615;&#22659;&#20013;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#24819;&#35753;&#29983;&#20135;&#27169;&#24335;&#19979;&#30340;&#29615;&#22659;&#21464;&#37327;&#21464;&#20026;&#27979;&#35797;&#27169;&#24335;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#26356;&#25913;&#23427;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$env-&gt;set('APP_ENVIRONMENT', 'test');<\/code><\/pre>\n<ol start=\"5\">\n<li>&#22312;&#20320;&#30340;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#32452;&#20214;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>$env<\/code>&#23545;&#35937;&#26469;&#33719;&#21462;&#25110;&#20462;&#25913;&#29615;&#22659;&#21464;&#37327;&#30340;&#20540;&#12290;<\/li>\n<\/ol>\n<p>&#36825;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Symfony &#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#12290;&#23454;&#38469;&#30340;&#23454;&#29616;&#21487;&#33021;&#20250;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#26377;&#25152;&#19981;&#21516;&#65292;&#20294;&#22522;&#26412;&#21407;&#29702;&#26159;&#19968;&#26679;&#30340;&#65306;&#36890;&#36807;&#29615;&#22659;&#21464;&#37327;&#26469;&#25511;&#21046;&#24212;&#29992;&#31243;&#24207;&#30340;&#34892;&#20026;&#21644;&#37197;&#32622;&#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 &#20013;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#19981;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1068","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\/1068","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=1068"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1068"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1068"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}