本文档描述了在symfony 1.3/1.4更改和升级你的需要做什么1.2 symfonob娱乐下载y项目。
如果你想要更多的详细信息已经更改/ symfony中添加1.3/1.4,你可以阅读ob娱乐下载有什么新鲜事吗?教程。
谨慎
ob娱乐下载symfony是兼容PHP 5.2.4 1.3/1.4或更高版本。它还可能与PHP 5.2.0 5.2.3但没有保证。
没有升级任务symfony 1.4这个版本是一样的symob娱乐下载fony 1.3(-所有弃用功能)。升级到1.4,你必须先升级到1.3,然后切换到1.4版本。
在升级到1.4之前,您还可以验证您的项目不使用任何弃用类/方法/函数/设置/…通过运行项目:验证任务:
项目:验证
美元php ob娱乐下载symfony项目:验证
任务列表的所有文件需要更改之前切换到1.4 symfony。ob娱乐下载
请注意,任务是一个光荣的正则表达式和可能给你很多假阳性。此外,它不能检测,所以它只是一个工具,可以帮助你识别可能出现的问题,不是一个神奇的工具。你仍然需要仔细阅读弃用教程。
请注意
sfCompat10Plugin和sfProtoculousPlugin从1.4已被移除。如果你明确禁用他们项目的配置类文件,如配置/ ProjectConfiguration.class.php,你必须删除所有提到的这些文件。
sfCompat10Plugin
sfProtoculousPlugin
配置/ ProjectConfiguration.class.php
升级一个项目:
检查您的项目使用的所有插件兼容1.3 symfonyob娱乐下载
如果你不使用SCM工具,请备份您的项目。
symfony升ob娱乐下载级到1.3
插件升级到1.3版本
启动项目:upgrade1.3从你的项目目录执行任务自动升级:
项目:upgrade1.3
php syob娱乐下载mfony项目:美元upgrade1.3
这个任务可以启动几次,没有任何副作用。每次升级到一个新的symfony 1.3β/ RC或最后一个sob娱乐下载ymfony 1.3,您必须启动这一任务。
你需要重建模型和形式由于一些变化描述如下:
#教义美元php symfony学ob娱乐下载说:构建——所有类#推动php symfony推动美元:构建——所有类
清除缓存:
美元php ob娱乐下载symfony缓存:清楚
剩下的部分解释的主要更改symfony 1.3需要某种形式的升级(自动)。ob娱乐下载
在symfony 1.ob娱乐下载3开发,我们已经弃用和删除一些设置,类,方法,功能和任务。请参考不支持在1.3为更多的信息。
symfonob娱乐下载y 1.3下的文件lib /供应商/目录默认不再自动装载。如果你想自动装载一些lib /供应商/子目录中,在应用程序中添加一个新条目autoload.yml配置文件:
lib /供应商/
autoload.yml
自动装载:vendor_some_lib:路径:% SF_LIB_DIR % /供应商/ some_lib_dir递归:
的自动半自动的lib /供应商/目录是问题有几个方面的原因:
如果你把图书馆下lib /供应商/目录中已经有一个自动装载机制,symfony将解析的文件和缓存中添加一些不必要的信息(见# 5893ob娱乐下载 - http://trac.symfony-project.org/ticket/5893)。
如果你不是叫syob娱乐下载mfony目录lib /供应商/ sob娱乐下载ymfony /装弹机,该项目将重新解析整个symfony目录和一些问题可能发生(见# 6064 - http:/ob娱乐下载/trac.symfony-project.org/ticket/6064)。
lib /供应商/ sob娱乐下载ymfony /
半自动的symfony 1.3ob娱乐下载现在是不区分大小写的。
的sfPatternRouting: setRoutes (),sfPatternRouting: prependRoutes (),sfPatternRouting: insertRouteBefore (),sfPatternRouting: connect ()方法没有返回的路线作为数组一样在以前的版本中。
sfPatternRouting: setRoutes ()
sfPatternRouting: prependRoutes ()
sfPatternRouting: insertRouteBefore ()
sfPatternRouting: connect ()
的lazy_routes_deserialize选择已被删除,因为它不需要了。
lazy_routes_deserialize
symfonob娱乐下载y 1.3,缓存路由是禁用的,因为这是最好的选择对于大多数项目就性能而言。所以,如果你没有定制路由缓存,它为所有应用程序将自动禁用。如果升级到1.3后,您的项目是慢的,你可能想添加一些路由缓存,看看是否对你有帮助。这是symfony 1.ob娱乐下载2默认的配置可以添加回你factories.yml:
factories.yml
路由:param:缓存:类:sfFileCache参数:automatic_cleaning_factor: 0 cache_dir: % SF_CONFIG_CACHE_DIR % /路由寿命:31556926的前缀:% SF_APP_DIR % /路由
的sfCommonFilter已经弃用,不使用默认了。这个过滤器用于自动注入javascript和样式表标签的响应内容。你现在需要手动将这些资产通过显式地调用include_stylesheets ()和include_javascripts ()助手在你的布局:
sfCommonFilter
include_stylesheets ()
include_javascripts ()
< ? phpinclude_javascripts()? >< ? phpinclude_stylesheets()? >
它已经删除了几个原因:
我们已经有一个更好的,简单,和更灵活的解决方案include_stylesheets ()和include_javascripts ()助手)
即使过滤器可以轻松地禁用,它不是一项容易的任务,您必须首先了解它的存在和它的“幕后”神奇的工作
使用助手提供了更细粒度的控制何时何地资产中包括布局(样式表头标签,JavaScripts只是在年底前身体例如标签)
头
身体
它总是更好的是明确的,而不是隐式(没有魔力,也没有WTF效果;看到很多投诉的用户邮件列表在这个问题上)
它提供了一个小的速度提高
如何升级?
的常见的过滤器需要移除所有filters.yml配置文件(这是自动完成的项目:upgrade1.3的任务)。
常见的
filters.yml
您需要添加include_stylesheets ()和include_javascripts ()调用在你的布局(s)之前有相同的行为(这是自动完成的项目:upgrade1.3对HTML布局中包含的任务模板/应用程序的目录——他们必须有一个<头>标签;你需要手动升级其他布局,或没有任何页面布局,但仍依赖于javascript文件和/或样式表)。
模板/
<头>
的sfCommonFilter类仍然是捆绑在symfony 1.3,所以你仍然可以在你ob娱乐下载使用它filters.yml如果你需要。
下面的任务类已经更名为:
sfConfigureDatabaseTask
sfDoctrineConfigureDatabaseTask
sfPropelConfigureDatabaseTask
sfDoctrineLoadDataTask
sfDoctrineDataLoadTask
sfDoctrineDumpDataTask
sfDoctrineDataDumpTask
sfPropelLoadDataTask
sfPropelDataLoadTask
sfPropelDumpDataTask
sfPropelDataDumpTask
的签名*:数据加载任务已经改变了。特定的目录或文件现在必须作为参数提供。的- - - dir选项已被删除。
*:数据加载
- - - dir
美元php ob娱乐下载symfony原则:数据加载数据/装置/ dev
的sfFormatter:格式()第三个参数被移除。
sfFormatter:格式()
的esc_js_no_entities (),提到了ESC_JS_NO_ENTITIES被更新为正确处理non-ANSI字符。在此之前改变所有但与ANSI字符值37来177年是逃出来的。现在只会逃避反斜杠\、报价”&”和美化下\ n&r \。但是你之前不太可能依赖于这破碎的行为。
esc_js_no_entities ()
ESC_JS_NO_ENTITIES
37
177年
\
”
\ n
r \
学说已经更新外部使用最新和最优原则1.2版本。你可以阅读什么是1.2新学说在这里。
管理发电机批量删除了获取记录和问题delete ()方法每一个单独而不是发行一个DQL查询删除它们。原因是这样的事件调用删除每个记录。
delete ()
您可以覆盖模型包含在插件YAML模式仅仅通过定义相同的模型在本地模式。例如,添加一个列sfDoctrineGuardPlugin的“电子邮件”sfGuardUser模型中,添加以下配置/理论/ schema.yml:
sfGuardUser
配置/理论/ schema.yml
sfGuardUser:列:电子邮件:类型:字符串(255)
包选项是教义的特性和使用模式的symfony插件。ob娱乐下载这并不意味着可以使用包功能独立包装您的模型。它必须直接使用,只有symfony插件。ob娱乐下载
原则整合日志查询运行使用sfEventDispatcher而不是直接访问日志记录器对象。此外,这些事件的主题是连接或语句运行查询。日志是新做的sfDoctrineConnectionProfiler类,它可以通过访问sfDoctrineDatabase对象。
sfEventDispatcher
sfDoctrineConnectionProfiler
sfDoctrineDatabase
如果你使用enableAllPluginsExcept ()管理启用插件在你的方法ProjectConfiguration类,被警告说,现在我们的插件名称排序,以确保一致性在不同的平台上。
enableAllPluginsExcept ()
ProjectConfiguration
的sfWidgetFormInput类现在是抽象的。现在创建文本输入字段sfWidgetFormInputText类。这一变化是为了缓解形式类的自省。
sfWidgetFormInput
sfWidgetFormInputText
ob娱乐下载Symfony 1.3有一个新的梅勒工厂。当创建一个新的应用程序,factories.yml明智的违约了测试和dev环境。但是如果你升级现有的项目,你可能需要更新factories.yml这些环境使用以下配置:
测试
dev
梅勒:param: delivery_strategy:没有
与以前的配置,邮件不会发送。当然,他们仍将被记录,梅勒测试仍然在你的功能测试工作。
梅勒
如果你宁愿想收到所有的邮件到一个地址,您可以使用single_address(交付策略dev环境为例):
single_address
戴夫:梅勒:param: delivery_strategy: single_address delivery_address: foo@example.com
如果您的项目使用的是旧版本的Swiftmailer,你必须删除它。
sfYAML现在更兼容1.2规范。这里有更改您可能需要在您的配置文件:
布尔值现在只能代表的真正的或假字符串。如果你使用了替代字符串在下面的列表,你必须用真正的或假:
真正的
假
在
y
是的
+
从
n
没有
- - - - - -
的项目:升级任务告诉你用旧语法但不解决问题(例如避免失去评论)。你必须手工修复它们。
项目:升级
如果你不想检查你所有的YAML文件,迫使YAML解析器可以使用1.1 YAML规范使用sfYaml: setSpecVersion ()方法:
sfYaml: setSpecVersion ()
sfYaml::setSpecVersion(“1.1”);
自定义推动构建器类中使用以前版本的symfony已经替换为新的推动1.4类的行为。ob娱乐下载利用这种增强您的项目propel.ini文件必须被更新。
propel.ini
删除旧的建筑类:
;propel.builder.peer构建器设置。类= plugins.sfPropelPlugin.lib.builder。SfPeerBuilder propel.builder.object。类= plugins.sfPropelPlugin.lib.builder。SfObjectBuilder propel.builder.objectstub。类= plugins.sfPropelPlugin.lib.builder。SfExtensionObjectBuilder propel.builder.peerstub。类= plugins.sfPropelPlugin.lib.builder。SfExtensionPeerBuilder propel.builder.objectmultiextend。类= plugins.sfPropelPlugin.lib.builder。SfMultiExtendObjectBuilder propel.builder.mapbuilder。类= plugins.sfPropelPlugin.lib.builder。SfMapBuilderBuilder
和添加新的行为类:
;行为propel.behavior.default = symfony,ob娱乐下载 symfony_i18n propel.behavior.symfony。类= plugins.sfPropelPlugin.lib.behavior。SfPropelBehaviorob娱乐下载Symfony propel.behavior.symfony_i18n。类= plugins.sfPropelPlugin.lib.behavior。SfPropelBehaviorI18n propel.behavior.ob娱乐下载symfony_i18n_translation。类= plugins.sfPropelPlugin.lib.behavior。SfPropelBehaviorI18nTranslation propel.behavior.ob娱乐下载symfony_behaviors。类= plugins.sfPropelPlugin.lib.behavior。SfPropelBehaviorob娱乐下载SymfonyBehaviors propel.behavior.symfony_timestampable。类= plugins.sfPropelPlugin.lib.behavior。SfPropelBehaviorTimestampable
的项目:升级任务试图为你做这种改变,但可能无法如果你让当地的变化propel.ini。
的BaseFormFilterPropel类中生成错误lib /过滤器/基地在syob娱乐下载mfony 1.2。这是纠正在symfony 1.3;ob娱乐下载现在生成的类lib /过滤器。的项目:升级任务将这个文件给你。
BaseFormFilterPropel
lib /过滤器/基地
lib /过滤器
单元测试引导文件,测试/引导/ unit.php已得到增强,更好地处理项目类文件的半自动的。下面的线必须添加到这个脚本:
测试/引导/ unit.php
自动装载美元= sfSimpleAutoload::getInstance(sfConfig::得到(“sf_cache_dir”)。' / project_autoload.cache ');自动装载美元- >loadConfiguration(sfFinder::类型(“文件”)- >的名字(“autoload.yml”)- >在(数组(sfConfig::得到(“sf_ob娱乐下载symfony_lib_dir”)。“/ config / config”,sfConfig::得到(“sf_config_dir”),)));自动装载美元- >注册();
的项目:升级任务试图为你做这种改变,但可能无法如果你让当地的变化测试/引导/ unit.php。
这个工作许可适用创作共用署名下衍生著作3.0 Unported许可执照。