现在你知道symfony很好,你已经ob娱乐下载能够深入理解其核心代码设计和发现新的隐藏的能力。但在扩展symfony类来匹配你的要求,你应该仔细ob娱乐下载看看的一些配置文件。许多功能已经内置symfony,可以激活更改配置设置。ob娱乐下载这意味着您可以调整symfony核心行为没有覆盖类。ob娱乐下载本章带你深入到配置文件及其强大的功能。
的myapp / config / settings.yml文件包含的主要symfony的配置ob娱乐下载myapp应用程序。你已经见过许多的功能设置从这个文件在前面的章节,但让我们重新审视他们。
myapp / config / settings.yml
myapp
在第五章解释说,这个文件是依赖环境,这意味着每个设置为每个环境可以采取不同的值。记住,在这个文件中定义的每个参数可以从PHP代码中通过sfConfig类。参数名称设置名称前缀sf_。例如,如果您想要的值缓存参数,你只需要调用sfConfig: get (“sf_cache”)。
sfConfig
sf_
缓存
sfConfig: get (“sf_cache”)
当一个路由规则没有定义模块或者是行动参数值settings.yml使用文件:
模块
行动
settings.yml
default_module
默认的
default_action
指数
ob娱乐下载Symfony提供了默认页面的特殊情况。在路由的情况下错误,symfony执行的行动ob娱乐下载默认的存储在模块$ sfob娱乐下载_symfony_data_dir /模块/违约目录中。的settings.yml文件定义行动是根据执行的错误:
$ sfob娱乐下载_symfony_data_dir /模块/违约
error_404_module
error_404_action
sfError404Exception
默认的/那么error404
login_module
login_action
安全
security.yml
默认的/登录
secure_module
secure_action
默认的/安全
module_disabled_module
module_disabled_action
module.yml
默认的/禁用
unavailable_module
unavailable_action
默认的/不可用
可用
从
将应用程序部署到生产环境之前,你应该定制这些行动,因为默认的页面上的模块模板包括symfony的标志。ob娱乐下载参见图之时价为其中一个页面的屏幕截图,错误404页面。
图之时价,默认404错误页面
您可以覆盖默认的页面在两个方面:
模块/
那么error404
登录
禁用
不可用
indexSuccess.php
error404Success.php
loginSuccess.php
secureSuccess.php
disabledSuccess.php
unavailableSuccess.php
两个其他页面熊symfony的外观,他们还需要ob娱乐下载在部署前定制生产。这些页面并不在默认的模块,因为他们被称为当symfony不能正常运行。ob娱乐下载相反,你会发现这些默认页面sf_sob娱乐下载ymfony_data_dir / web /错误/美元目录:
sf_sob娱乐下载ymfony_data_dir / web /错误/美元
error500.php
SF_DEBUG
真正的
unavailable.php
ob娱乐下载清除缓存后
定制这些页面,简单地创建error500.php和unavailable.php在应用程序的页面web /错误/目录中。ob娱乐下载Symfony将使用这些,而不是自己的。
web /错误/
请注意
请求重定向到unavailable.php页面在需要时,您需要设置check_lock设置为在在应用程序中settings.yml。检查默认情况下是关闭的,因为它增加了一个非常轻微的开销为每个请求。
check_lock
在
的一些参数settings.yml文件控制可选的框架特性,可以启用或禁用。未使用的功能提升表演才会安静下来,所以确保审查表中列出的设置之时价之前部署您的应用程序。
表之时价,通过设定可选特性settings.yml
use_database
use_security
sfBasicSecurityFilter
use_flash
set_flash ()
sfFlashFilter
i18n
logging_enabled
escaping_strategy
sf_data美元
公元前
cache.yml
sfCacheFilter
web_debug
sfWebDebugFilter
check_ob娱乐下载symfony_version
clear-cache
美元/ ob娱乐下载unavailable.php sf_symfony_data_dir / web /错误
压缩
use_process_cache
ob娱乐下载Symfony使用的一些参数settings.yml改变行为的内置特性如表单验证、缓存和第三方模块。
输出逃离设置控制变量的访问在模板(见第7章)。settings.yml文件包括两个设置这个功能:
这两个
ESC_RAW
ESC_ENTITIES
ESC_JS
ESC_JS_NO_ENTITIES
两个路由设置(见第9章)都存储在settings.yml:
后缀
。
. html
no_script_name
表单验证设置错误消息输出的控制方式验证助手(参见第十章)。这些错误包括在< div >标签,他们使用validation_error_类设置为类属性和validation_error_id_prefix设置构建id属性。默认值是form_error和error_for_,所以属性调用的输出form_error ()辅助输入名字foobar将类= " form_error " id = " error_for_foobar "。
验证
< div >
validation_error_类
类
validation_error_id_prefix
id
form_error
error_for_
form_error ()
foobar
类= " form_error " id = " error_for_foobar "
两个设置确定哪些字符之前,每一个错误信息:validation_error_prefix和validation_error_suffix。你可以改变他们定制的错误消息。
validation_error_prefix
validation_error_suffix
缓存设置中定义cache.yml在大多数情况下,除了两个settings.yml:缓存使模板缓存机制,etag使ETag处理在服务器端(见第15章)。
etag
两个日志设置(见第16章)都存储在settings.yml:
error_reporting
E_PARSE
E_COMPILE_ERROR
E_ERROR
E_CORE_ERROR
E_USER_ERROR
E_ALL
代码
的settings.yml文件还存储路径的资产。如果你想使用另一个版本的资产比与symfony绑定,您可以更改这些路径设置:ob娱乐下载
rich_text_js_dir
js / tiny_mce
prototype_web_dir
/科幻/原型
admin_web_dir
web_debug_web_dir
calendar_web_dir
默认的帮手,加载每个模板中声明standard_helpers设置(见第7章)。默认情况下,这些都是部分,缓存,形式辅助组。如果你使用一个辅助集团在所有应用程序的模板,将它的名字添加到standard_helpers设置保存您声明它的麻烦use_helper ()在每个模板。
standard_helpers
部分
形式
use_helper ()
激活模块从symfony核心插件或声明ob娱乐下载enabled_modules参数。即使一个插件包一个模块,用户无法请求这个模块中声明的,除非它是enabled_modules。的默认的模块,它提供了默认symfony页面(恭喜你,页面没有找到,等等),是ob娱乐下载唯一默认启用模块。
enabled_modules
字符集的反应是一个通用的应用程序的设置,因为它是由许多组件使用的框架(模板、输出逃脱者,帮手,等等)。中定义的字符集设置,其默认值(建议)utf - 8。
字符集
utf - 8
的settings.yml文件包含更多的参数,在内部使用symfony的核心行为。ob娱乐下载清单之时价列出他们出现在配置文件中。
清单之时价,其他配置设置,myapp / config / settings.yml
#删除评论core_compile核心框架中定义的类。yml strip_comments: #功能请求时调用一个类,而不是已经加载#预计可调用的数组。桥梁所使用的框架。autoloading_functions: ~ #会话超时,在几秒钟内超时:1800 #最大数量的前锋后面跟着行动之前提高异常max_forwards: 5 #全球常数path_info_array:服务器path_info_key: PATH_INFO url_format:路径
侧边栏
添加应用程序设置
的settings.yml文件定义symfony应用ob娱乐下载程序设置。正如在第5章所讨论的,当您想要添加新的参数,最好的地方是在这样做myapp / config / app.yml文件。这个文件也依赖环境,它定义的设置可通过sfConfig类的app_前缀。
myapp / config / app.yml
app_
:信用卡:假:# app_creditcards_fake签证:在# app_creditcards_visa americanexpress: # app_creditcards_americanexpress
你也可以写一个app.yml在项目配置文件目录,这提供了一种方法来定义自定义项目设置。级联配置也适用于这个文件,所以在应用程序中定义的设置app.yml文件覆盖的定义在项目级别。
app.yml
半自动的特性,在第二章简要解释,免除你要求类在代码中如果他们位于特定目录。这意味着您可以让框架为你做这项工作,只允许它加载必要的类在适当的时候,只有在需要的时候。
的autoload.yml文件列表自动装载类存储的路径。第一次配置文件处理,symfony中引用解析所有目录文件。ob娱乐下载每次文件结束. php在其中一个目录,文件路径和类名中发现这个文件被添加到一个内部的半自动的类列表。这个列表保存在缓存中,在一个文件中配置/ config_autoload.yml.php。然后,在运行时,使用一个类时,symfony看起来在这个列表的类路径,包括ob娱乐下载. php自动文件。
autoload.yml
. php
配置/ config_autoload.yml.php
半自动的适用于所有. php文件包含类和/或接口。
默认情况下,类存储在以下目录在您的项目自动半自动的好处:
myproject / lib /
myproject / lib /模型
/ myapp / lib / myproject /应用程序
myproject /应用程序/ myapp /模块/ mymodule里/ lib
没有autoload.yml文件的默认应用程序配置目录。如果你想修改框架设置——例如,自动装载类存储在其他地方在你的文件结构,创建一个空的自动装载。yml文件并覆盖的设置美元sfob娱乐下载_symfony_data_dir / config / autoload.yml或添加您自己的。
美元sfob娱乐下载_symfony_data_dir / config / autoload.yml
自动装载。yml文件必须从一个自动装载:密钥和symfony的地点应该寻找类列表。ob娱乐下载每个位置都需要一个标签;这使您能够覆盖symfony的条目。ob娱乐下载为每一个位置,提供一个的名字(它会显示一个评论config_autoload.yml.php)和一个绝对路径。然后如果搜索必须定义递归,指导symfony的所有子目录ob娱乐下载. php文件,排除你想要的子目录。超越那个清单显示了默认情况下使用的位置和文件的语法。
的名字
config_autoload.yml.php
路径
递归
排除
超越那个清单违约半自动的配置,在美元sfob娱乐下载_symfony_data_dir / config / autoload.yml
自动装载:# symfoob娱乐下载ny核心symfony:名称:symfony路径:% SF_SYMFONY_LIB_DIR %递归:排除:[供应商]推动:名称:推进路径:% SF_SYMFONY_LIB_DIR % /供应商/推动递归:克里奥尔语:名称:克里奥尔语路径:% SF_SYMFONY_LIB_DIR % /供应商/克里奥尔语递归:propel_addon:名称:推动插件文件:推动:% SF_SYMFONY_LIB_DIR % /插件/推动/ sfPropelAutoload。php插件plugins_lib:名称:插件自由路径:% SF_PLUGINS_DIR % / * / lib递归:plugins_module_lib:名称:插件模块自由路径:% SF_PLUGINS_DIR % / * / * / lib /模块前缀:2递归:#项目项目:名称:项目路径:% SF_LIB_DIR %递归:排除:[模型,symfony] project_model:名称:项目模型路径:% SF_MODEL_LIB_DIR %递归:#应用应用程序:名称:应用程序路径:% SF_APP_LIB_DIR %递归:模块:名称:模块路径:% Sob娱乐下载F_APP_DIR % /模块/ * / lib前缀:1递归:
一个规则路径可以包含通配符和使用的文件路径参数constants.php文件(参见下一节)。如果你使用这些参数在配置文件中,他们必须使用大写,开始和结束%。
constants.php
%
编辑你自己的autoload.yml将添加新的地点symfony的半自动的,但你可能想扩ob娱乐下载展这个机制和添加自己的半自动的处理程序symfony的处理程序。这是可能的autoloading_functions参数settings.yml文件。预计可调用的值数组,如下:
autoloading_functions
.settings: autoloading_functions: - (myToolkit,自动装载)
当symfob娱乐下载ony遇到一个新类,它将第一次尝试自己的半自动的系统(和使用中定义的位置autoload.yml)。如果没有找到类定义,它会尝试其他半自动的功能settings.yml,直到被发现的类。所以你可以添加你想要尽可能多的半自动的机制——例如,提供一个桥梁和其他框架组件(见第17章)。
每次框架使用一个路径寻找的东西(从核心类模板、插件配置,等等),它使用一个路径变量,而不是一个实际的路径。通过改变这些变量,您可以完全改变一个symfony项目的目录结构,并适应任何的文件组织需求的客户。ob娱乐下载
谨慎
定制一个symfony项目的目录结构是可能的,但不一定是一个好主意。ob娱乐下载像symfony框架的优点之一是,任何web开发人员可以查看项目建造,有宾至如归的ob娱乐下载感觉,因为尊重约定。确保你考虑这个问题之前决定使用自己的目录结构。
路径中定义的变量美元sfob娱乐下载_symfony_data_dir / config / constants.php文件,包括当应用程序。这些变量存储在sfConfig对象,所以他们很容易被覆盖。清单19-3显示了清单他们引用的变量和目录的路径。
美元sfob娱乐下载_symfony_data_dir / config / constants.php
清单19-3 -默认文件结构变量,从美元sfob娱乐下载_symfony_data_dir / config / constants.php
sf_root_dir # myproject / #应用/ sf_app_dir # myapp / sf_app_config_dir # # lib / config / sf_app_i18n_dir # i18n / sf_app_lib_dir sf_app_module_dir #模块/ sf_app_template_dir #模板/批sf_bin_dir # #缓存/ sf_base_cache_dir # myapp sf_cache_dir #刺激/ sf_template_cache_dir #模板/ sf_i18n_cache_dir # i18n /配置/ sf_test_cache_dir sf_config_cache_dir # #测试/ sf_module_cache_dir #模块/配置/ sf_data_dir sf_config_dir # # #文档/数据/ sf_doc_dir sf_lib_dir # #模型/ lib / sf_model_lib_dir sf_log_dir #日志/测试/ sf_plugins_dir sf_test_dir # #插件/ web / sf_upload_dir sf_web_dir # #上传/
每条路径的一个关键目录是由一个参数决定结束_dir。总是使用路径变量,而不是真正的文件路径(相对或绝对),这样你将能够改变他们后,如果必要的。例如,当你想要移动的文件上传/目录应用程序中,您应该使用sfConfig: get (“sf_upload_dir”)的路径,而不是SF_ROOT_DIR。“/ web /上传/”。
_dir
上传/
sfConfig: get (“sf_upload_dir”)
SF_ROOT_DIR。“/ web /上传/”
在运行时定义的模块目录结构,当路由系统决定了模块名称(module_name美元)。它是自动构建中定义的路径名constants.php文件,如清单19-4所示。
module_name美元
清单19-4 -默认模块文件结构变量
sf_app_module_dir #模块/ module_name # mymodule里/ sf_app_module_action_dir_name #行动/ sf_app_module_template_dir_name #模板/ sf_app_module_lib_dir_name # #视图/ lib / sf_app_module_view_dir_name sf_app_module_validate_dir_name #验证/配置/ sf_app_module_i18n_dir_name sf_app_module_config_dir_name # # i18n /
例如,路径验证/当前模块在运行时动态地建立的目录:
验证/
sfConfig::得到(“sf_app_module_dir”)。' / '。module_name美元。' / '.sfConfig::得到(“sf_app_module_validate_dir_name”)
你可能需要修改默认项目文件结构如果您开发一个应用程序定义的一个客户已经有一个目录结构,谁不愿意改变它遵守symfony逻辑。ob娱乐下载通过重写sf_XXX_dir和sf_XXX_dir_name变量与sfConfig,你可以让symfony工作比ob娱乐下载默认的结构完全不同的目录结构。最好的地方是在应用程序中config。文件。
sf_XXX_dir
sf_XXX_dir_name
config。
使用应用程序config。而不是项目覆盖sf_XXX_dir和sf_XXX_dir_name变量与sfConfig。这个项目配置/ config。文件加载早期生活的请求,的时候sfConfig类还不存在,当constants.php文件还没有加载。
配置/ config。
例如,如果你想让所有的应用程序共享一个公共目录模板布局,添加这一行myapp / config / config . php文件覆盖sf_app_template_dir设置:
myapp / config / config . php
sf_app_template_dir
sfConfig::集(“sf_app_template_dir”,sfConfig::得到(“sf_root_dir”).DIRECTORY_SEPARATOR。“模板”);
注意,应用程序配置。php文件不是空的,所以如果你需要包括文件结构定义,在文件的末尾。
内置的所有路径constants.php依靠项目根目录,这是一个常数定义在前端控制器(SF_ROOT_DIR)。通常,根目录是一个水平之上web /目录,但是您可以使用一个不同的结构。假设你的主目录结构是由两个目录,一个公共和私人,见清单19-5。这通常发生在举办一个项目在一个共享的主机。
SF_ROOT_DIR
web /
清单19-5 -自定义为一个共享的主机目录结构的例子
ob娱乐下载symfony / #私人领域的应用/批/缓存/…www / #公共区域图像/ css / js / index . php
在这种情况下,根目录ob娱乐下载symfony /目录中。因此,index . php前端控制器只需要定义SF_ROOT_DIR应用程序的工作如下:
ob娱乐下载symfony /
index . php
定义(“SF_ROOT_DIR”,目录名(__FILE__)。“/ . ob娱乐下载. / symfony”);
此外,由于公共区域www /而不是通常的web /,你必须重写应用程序中的两个文件路径config。文件,如下:
www /
sfConfig::添加(数组(“sf_web_dir”= > SF_ROOT_DIR。“/ . . / www”,“sf_upload_dir”= > SF_ROOT_DIR。“/ . . / www /”.sfConfig::得到(“sf_upload_dir_name”),));
框架文件的路径中定义的项目config。文件,如清单19胜6败中可以看到。
清单19胜6败——框架文件的路径myproject / config / config . php
myproject / config / config . php
< ? php/ /ob娱乐下载 symfony目录sf_sob娱乐下载ymfony_lib_dir美元=“/ symfonyob娱乐下载 / lib /道路/”;sf_sob娱乐下载ymfony_data_dir美元=/道路/ / symob娱乐下载fony /数据的;
这些路径是初始化时调用ob娱乐下载symfony init-project从命令行,参考安装symfony用于构建项目。ob娱乐下载使用命令行和MVC架构。
ob娱乐下载symfony init-project
这意味着您可以切换到另一个安装symfony框架文件通过改变路径。ob娱乐下载
这些路径应该是绝对的,但是通过使用目录名(__FILE__)内,您可以参考文件项目结构和保持独立的选择安装目录项目。例如,许多项目选择symfonyob娱乐下载lib /在项目的目录显示为一个符号链接lib ob娱乐下载/ symfony /symfony目录,并做同样的事ob娱乐下载数据/目录,如下:
目录名(__FILE__)
lib /
lib ob娱乐下载/ symfony /
数据/
myproject / lib ob娱乐下载/ symfony / = > /道路/数据/ symfony / lib / symfony / = > /道路/ / symfony /数据
在这种情况下,项目配置。php文件只需要定义symfony目录如下:ob娱乐下载
sf_sob娱乐下载ymfony_lib_dir美元=目录名(__FILE__)。“/ . . / ob娱乐下载lib / symfony”;sf_sob娱乐下载ymfony_data_dir美元=目录名(__FILE__)。“/ . . /数据ob娱乐下载/ symfony”;
同样的原则也适用于如果你选择包括作为一个symfony文件ob娱乐下载svn:外部在项目的lib /供应商/目录:
svn:外部
lib /供应商/
myproject / lib /供应商/ svn:外部symfony htob娱乐下载tp://svn.symfony-project.com/branches/1.0
在这种情况下,config。文件应该是这样的:
sf_sob娱乐下载ymfony_lib_dir美元=目录名(__FILE__)。“/ . . / lib /供应ob娱乐下载商/ symfony / lib”;sf_sob娱乐下载ymfony_data_dir美元=目录名(__FILE__)。“/ . . / lib /供应ob娱乐下载商/ symfony /数据的;
提示
有时,不同的服务器上运行一个应用程序没有相同的路径symfony库。ob娱乐下载使这一问题的有效途径是排除项目config。从同步(通过添加文件rsync_exclude.txt)。另一种方法是保持相同的路径在开发和生产的版本config。,但这些路径指向符号链接,可以根据不同的服务器。
rsync_exclude.txt
每个配置文件都有一个处理程序。配置处理程序的工作是管理配置级联,并配置文件之间的转换和优化PHP代码在运行时执行。
配置存储在默认处理程序美元sfob娱乐下载_symfony_data_dir / config / config_handlers.yml。这个文件链接的处理程序配置文件根据文件路径。清单晚显示了这个文件的提取。
美元sfob娱乐下载_symfony_data_dir / config / config_handlers.yml
清单晚-提取的美元sfob娱乐下载_symfony_data_dir / config / config_handlers.yml
配置/设置。yml:类:sfDefineEnvironmentConfigHandler参数:前缀:sf_配置/应用程序。yml:类:sfDefineEnvironmentConfigHandler参数:前缀:app_配置/过滤器。yml:类:sfFilterConfigHandler模块/ * / config /模块。yml:类:sfDefineEnvironmentConfigHandler参数:前缀:mod_模块:是的
为每个配置文件(config_handlers.yml标识与通配符),每个文件的文件路径下的指定处理程序类类关键。
config_handlers.yml
由配置文件的设置sfDefineEnvironmentConfigHandler可以在代码中直接通过吗sfConfig类,参数键包含前缀值。
sfDefineEnvironmentConfigHandler
您可以添加或修改处理器用于处理每个配置文件——例如,使用INI文件或XML而不是YAML文件。
配置处理程序config_handlers.yml文件是sfRootConfigHandler很明显,它不能被改变。
sfRootConfigHandler
如果你需要修改配置解析的方式,创建一个空的config_handlers.yml文件在您的应用程序配置/文件夹,覆盖类行与你写的类。
配置/
使用处理程序来处理配置文件提供了两个重要的好处:
如果你觉得自己编写配置处理程序,遵循的例子使用的结构框架sf_sob娱乐下载ymfony_lib_dir / config /美元目录中。
sf_sob娱乐下载ymfony_lib_dir / config /美元
假设您的应用程序包含一个myMapAPI类,它提供了一个接口,第三方web服务提供的地图。这门课需要初始化一个URL和一个用户名,如清单19-8所示。
myMapAPI
清单19-8 -初始化的例子myMapAPI类
mapApi美元=新myMapAPI();mapApi美元- >setUrl($ url);mapApi美元- >setUser($ user);
您可能想要将这两个参数存储在一个自定义配置文件map.yml位于应用程序配置/目录中。这个配置文件可能包含以下:
map.yml
api: url: map.api.example.com用户:foobar
为了将这些设置转换为代码清单19-8相当于,你必须建立一个配置处理程序。每个配置处理程序必须扩展sfConfigHandler并提供一个execute ()文件路径的方法,该方法将一个数组作为参数,配置文件,必须返回数据被写入缓存文件。YAML文件处理程序应该延长sfYamlConfigHandler类,它提供了额外的设施YAML解析。为map.yml文件,一个典型的配置处理程序可以写成清单胜负所示。
sfConfigHandler
execute ()
sfYamlConfigHandler
清单胜负——自定义配置处理程序,myapp / lib / myMapConfigHandler.class.php
myapp / lib / myMapConfigHandler.class.php
< ? php类myMapConfigHandler扩展sfYamlConfigHandler{公共函数执行(configfile美元){这个美元- >初始化();/ /解析yaml美元配置=这个美元- >parseYamls(configfile美元);元数据=“< ? php\ n”;元数据。=”美元\mapApi = new myMapAPI ();\ n”;如果(收取(美元配置(“api”](“url”]){元数据。=sprintf(”美元\mapApi - > setUrl (' % s ');\ n”,美元配置(“api”](“url”]);}如果(收取(美元配置(“api”](“用户”]){元数据。=sprintf(”美元\mapApi - > setUser (' % s ');\ n”,美元配置(“api”](“用户”]);}返回元数据;}}
的configfile美元symfony传递的数ob娱乐下载组execute ()方法将包含所有的道路map.yml文件中发现的配置/文件夹。的parseYamls ()方法将处理配置级联。
configfile美元
parseYamls ()
为了把这个新的处理程序map.yml文件,您必须创建一个config_handlers.yml配置文件包含以下内容:
配置/地图。yml:类:myMapConfigHandler
的类必须是自动装载(的情况)或文件中定义的路径是用谁的文件以下参数参数关键。
文件
参数
当你需要代码的基础上map.yml文件和生成的myMapConfigHandler处理程序在您的应用程序,调用以下行:
myMapConfigHandler
包括(sfConfigCache::getInstance()- >checkConfig(sfConfig::得到(“sf_app_config_dir_name”)。' / map.yml '));
当调用checkConfig ()方法,symfoob娱乐下载ny查找现有的map.yml配置目录中的文件和流程中指定的处理程序config_handlers.yml文件,如果map.yml.php在缓存中不存在或者map.yml比缓存文件是最近的。
checkConfig ()
map.yml.php
如果你想在YAML处理环境配置文件,处理程序可以扩展sfDefineEnvironmentConfigHandler类,而不是sfYamlConfigHandler。后调用parseYaml ()方法检索配置,你应该调用mergeEnvironment ()方法。你可以通过调用都在一行$ config = $ this - > mergeEnvironment ($ this - > parseYamls (configfile美元));。
parseYaml ()
mergeEnvironment ()
$ config = $ this - > mergeEnvironment ($ this - > parseYamls (configfile美元));
使用现有的配置处理程序
如果你只需要从代码通过允许用户检索值sfConfig,你可以使用sfDefineEnvironmentConfigHandler配置处理程序类。例如,有url和用户参数可作为sfConfig: get (“map_url”)和sfConfig: get (“map_user”),定义处理程序如下:
url
用户
sfConfig: get (“map_url”)
sfConfig: get (“map_user”)
配置/地图。yml:类:sfDefineEnvironmentConfigHandler参数:前缀:map_
小心不要选择一个前缀已经使用由另一个处理器。现有的前缀sf_,app_,的mod_。
的mod_
为了有一个PHP环境兼容的规则和最佳实践敏捷开发,symfony的检查和覆盖的几个设置ob娱乐下载php . ini配置。这是的目的php.yml文件。清单19-10显示默认值php.yml文件。
php . ini
php.yml
清单19-10——默认PHP设置Symfonyob娱乐下载美元sfob娱乐下载_symfony_data_dir / config / php.yml
美元sfob娱乐下载_symfony_data_dir / config / php.yml
设置:magic_quotes_runtime: log_errors: arg_separator。output: | & check: zend.ze1_compatibility_mode: off warn: magic_quotes_gpc: off register_globals: off session.auto_start: off
这个文件的主要目的是检查PHP配置应用程序兼容。也是非常有用的检查您的开发服务器配置尽可能相似的生产服务器。这就是为什么你应该检查生产服务器配置在项目的开始,并报告其PHP设置php.yml文件在您的项目中。然后您可以开发和测试有信心,你就不会遇到任何兼容性错误一旦你将你的项目部署到生产平台。
下定义的变量集头被修改(尽管它们是如何定义的服务器php . ini文件)。下定义的变量警告类别不能修改,但symfony可以运行,即使他们不正确设置。它只是认为是糟糕的实践这些设ob娱乐下载置为其设置,和symfony将记录一个警告。下定义的变量检查动态类别不能修改,但他们必须为symfony运行有一定的价值。ob娱乐下载所以,在这种情况下,提出了如果是一个例外php . ini文件是不正确的。
集
警告
检查
默认的php。yml文件集log_errors symfony项目,这样你就可以跟踪错误。ob娱乐下载它还建议register_globals被设置为从防止安全漏洞。
register_globals
如果你不想symfony应用这些设置ob娱乐下载,或者如果你想要运行一个项目magic_quotes_gpc和register_globals设置为在没有警告,然后创建一个php.yml文件在您的应用程序配置/目录,并覆盖设置你想要改变。
magic_quotes_gpc
另外,如果你的项目需要一个扩展,您可以指定它扩展类别。预计一个扩展数组名称,如下:
扩展
扩展(gd mysql mbstring):
配置文件可以大量修改框架的工作方式。因为symfonob娱乐下载y依赖配置甚至为其核心功能和文件加载,它可以适应更多的环境不仅仅是标准的专用主机。这个伟大的可配置性是symfony的主要优势之一。ob娱乐下载即使它有时候害怕新来的,配置文件中看到很多约定来学习,它允许symfony应用程序兼容大量的平台和环境。ob娱乐下载一旦你成为大师symfony的配置,没有服务器会拒绝运行ob娱乐下载您的应用程序!
这项工作是GFDL许可执照。