如何把握和创造新的环境
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.0,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何把握和创造新的环境
每个应用程序的代码和一组配置组合显示代码应该如何函数。配置可以定义所使用的数据库,如果应该缓存或冗长的日志应该如何。
在Syob娱乐下载mfony中,“环境”的概念是相同的代码库可以使用多个不同的配置运行。例如,dev
环境应该使用配置,使得开发简单和友好,而刺激
环境应该使用一组配置优化的速度。
不同的环境,不同的配置文件
一个典型的Symfoob娱乐下载ny应用始于三个环境:dev
,刺激
和测试
。如前所述,每个环境代表一个方法执行相同的代码库与不同的配置。它应该不足为奇每个环境加载自己的个人配置文件。这些不同的文件是由环境:
- 为
dev
环境:/ dev / config /包
- 为
刺激
环境:配置/包/刺激/
- 为
测试
环境:/测试/ config /包
在现实中,每个环境只有从别人有点不同。这意味着所有环境有一大群共同配置。这个配置是直接放入文件配置/包/
目录中。
这些文件的位置被定义为应用程序的内核:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
/ / src / Kernel.php/ /……类内核扩展BaseKernel{/ /……受保护的函数configureContainer(ContainerBuilder美元容器,LoaderInterface美元加载程序){/ /……美元confDir=美元这- >getProjectDir ()。“/配置”;/ /总负载/ config /包/的所有文件美元加载程序- >负载(美元confDir。“/包/ *”。自我::CONFIG_EXTS,“水珠”);/ /然后,如果可用,加载特定环境中的文件目录如果(is_dir (美元confDir。' /包/ '。美元这- >环境)){美元加载程序- >负载(美元confDir。' /包/ '。美元这- >环境。“/ * * / *”。自我::CONFIG_EXTS,“水珠”);}/ /加载一个特殊服务。(yaml / xml / php),如果可用,services_ENVIRONMENT。(yaml / xml / php)文件美元加载程序- >负载(美元confDir。/服务的。自我::CONFIG_EXTS,“水珠”);美元加载程序- >负载(美元confDir。' / services_ '。美元这- >环境。自我::CONFIG_EXTS,“水珠”);}}
框架方案,安装在默认情况下,作为一个例子:
- 加载在所有环境中,
配置/包/ framework.yaml
一些配置框架秘密
设置; - 在刺激环境,没有额外的将没有
配置/包/刺激/
目录; - 这同样适用于dev,没有
配置/包/ dev / framework.yaml
。然而其他包(如。routing.yaml
)有特殊dev设置; - 最后,在测试环境,框架的测试功能被启用
配置/包/测试/ framework.yaml
。
执行应用程序在不同的环境中
在每个环境中执行应用程序,更改APP_ENV
环境变量。在开发期间,这是完成的.env
:
1 2 3 4 5
# .envAPP_ENV = dev#或测试:# APP_ENV =测试
参观http://localhost: 8000 / index . php
在您的web浏览器中页面看到您的应用程序的配置环境。
提示
在生产中,建议在你的配置环境变量web服务器配置。
请注意
给定的url假设您的web服务器配置为使用公共/
应用程序的根目录。阅读更多的安装Symfonyob娱乐下载。
如果你打开文件访问(公共/ index . php
),你会发现环境变量传递给内核:
1 2 3 4 5 6
/ /公共/ index . php/ /……美元内核=新内核(美元_SERVER(“APP_ENV”)? ?“开发”,美元_SERVER(“APP_DEBUG”)? ?假);/ /……
你也可以代替$ _SERVER (“APP_ENV”) ? ?“开发”
通过“开发”
总是在开发环境中运行应用程序,独立的APP_ENV
变量。
请注意
的测试
使用环境编写功能测试时,通常不直接在浏览器中访问通过前端控制器。
控制台命令选择环境
默认情况下,Symfonob娱乐下载y命令执行的任何环境中定义的APP_ENV
环境变量(通常在你的配置.env
文件)。
使用- - - env
和——没有调试
选项来修改这个行为:
1 2 3 4 5 6 7 8
#“开发”环境和启用调试美元php command_name bin /控制台#“刺激”环境(调试总是禁用“刺激”)美元php bin /控制台command_name - env =刺激#“测试”环境和调试禁用美元php bin /控制台command_name - env =测试——没有调试
创建一个新的环境
从一个环境只不过是一个字符串,该字符串对应于一组配置,创建一个新的环境是相当容易的。
例如,假设在部署之前,您需要应用程序基准。基准测试应用程序的一个方法是使用预设置,但在Symfony的ob娱乐下载web_profiler
启用。这允许Symfony基准ob娱乐下载测试时记录您的应用程序的信息。
完成这个的最好办法是通过一个新的环境,例如,基准
。首先创建一个新的配置目录和一个配置文件:
- YAML
- XML
- PHP
1 2 3
#配置/包/基准/ web_profiler.yaml框架:分析器:{only_exceptions:假}
和…你完成!应用程序现在支持一个新的环境基准
。
改变APP_ENV
变量来基准
能够通过浏览器访问新环境:
1 2
# .envAPP_ENV =基准
环境和缓存目录
ob娱乐下载Symfony利用缓存在许多方面:应用程序配置,路由配置,树枝模板和更多的缓存PHP对象存储在文件系统上的文件。
默认情况下,这些主要是存储在缓存文件var /缓存/
目录中。然而,每个环境缓存它自己的一组文件:
1 2 3 4 5 6
您的项目/├─var /│├─缓存/││├─dev / #缓存目录* dev *环境││└─刺激/ *刺激* #缓存目录环境│├─……
有时,当调试,这可能有助于检查缓存文件了解工作。当这样做时,记得要看环境的目录你使用(最常见的dev /
在开发和调试)。虽然各不相同,/ dev / var /缓存
目录包括以下:
-
appDevDebugProjectContainer.php
- 缓存的服务容器,代表了缓存的应用程序配置。
-
appDevUrlGenerator.php
- PHP类时产生的路由配置和使用生成的url。
-
appDevUrlMatcher.php
- 使用的PHP类路径匹配——看逻辑编译正则表达式用于匹配传入的url来不同的路线。
-
树枝/
- 这个目录包含所有缓存的树枝模板。
请注意
你可以很容易地改变位置和名称的目录。欲了解更多信息,请阅读这篇文章如何覆盖Symfony的默认目录ob娱乐下载结构。
要进一步
读了这篇文章服务容器外部参数如何设置。