新在symfony 1.3/ob娱乐下载1.4是什么?
本教程是一个快速的技术引入symfony 1.3/1.4。ob娱乐下载的开发人员来说,它已经与symfony 1.2和那些想快速学习新特性symfony的1.3/1.4。ob娱乐下载
首先,请注意,symfony 1.3兼容PHP ob娱乐下载5.2.4或更高版本。
如果你想从1.2升级,请阅读升级文件中发现的symfony分布。ob娱乐下载你会有所有所需的信息安全升级你的symfony项目1.3。ob娱乐下载
梅勒
symfonob娱乐下载y的1.3/1.4,有一个新的默认梅勒基于SwiftMailer 4.1。
发送一个电子邮件一样简单的使用composeAndSend ()
方法从一个动作:
这个美元- >getMailer()- >composeAndSend(“from@example.com”,“to@example.com”,“主题”,“身体”);
如果你需要更大的灵活性,您还可以使用组成()
方法,然后将其发送。这是例如如何添加一个附件的信息:
美元的消息=这个美元- >getMailer()- >组成(“from@example.com”,“to@example.com”,“主题”,“身体”)- >附加(Swift_Attachment::fromPath(“/道路/ / / file.zip”));这个美元- >getMailer()- >发送(美元的消息);
梅勒是相当强大的,参考文档的更多信息。欧宝官网下载app
安全
当与创建一个新的应用程序生成:应用程序
任务,现在的安全设置是默认启用:
escaping_strategy
:现在的价值真正的
在默认情况下(可以禁用——escaping-strategy
选项)。csrf_secret
:默认生成一个随机密码,因此,CSRF保护是默认启用(可以被禁用——csrf-secret
选项)。强烈建议您更改默认生成的密码,通过编辑settings.yml
配置文件,或者通过使用——csrf-secret
选择。
小部件
默认的标签
当一个标签自动生成的字段名,_id
目前的后缀删除:
first_name
= >名字(前)author_id
= >作者(之前是“作者身份”)
sfWidgetFormInputText
的sfWidgetFormInput
类现在是抽象的。现在创建文本输入字段sfWidgetFormInputText
类。这一变化是为了缓解形式类的自省。
I18n小部件
添加了以下部件:
sfWidgetFormI18nChoiceLanguage
sfWidgetFormI18nChoiceCurrency
sfWidgetFormI18nChoiceCountry
sfWidgetFormI18nChoiceTimezone
其中前三个取代现在的弃用sfWidgetFormI18nSelectLanguage
,sfWidgetFormI18nSelectCurrency
,sfWidgetFormI18nSelectCountry
小部件。
连贯接口
现在小部件实现流体界面下面的方法:
sfWidgetForm
:setDefault ()
,setLabel ()
,setIdFormat ()
,setHidden ()
sfWidget
:addRequiredOption ()
,使用addOption ()
,setOption ()
,setoption ()
,setAttribute ()
,setAttributes ()
sfWidgetFormSchema
:setDefault ()
,setDefaults ()
,addFormFormatter ()
,setFormFormatterName ()
,setNameFormat ()
,setLabels ()
,setLabel ()
,setHelps ()
,setHelp ()
,setParent ()
sfWidgetFormSchemaDecorator
:addFormFormatter ()
,setFormFormatterName ()
,setNameFormat ()
,setLabels ()
,setHelps ()
,setHelp ()
,setParent ()
,setPositions ()
验证器
sfValidatorRegex
的sfValidatorRegex
有一个新的must_match
选择。如果设置为假
正则表达式不能匹配,验证器。
的模式
选择sfValidatorRegex
现在可以的一个实例吗sfCallable
时,返回一个正则表达式。
sfValidatorUrl
的sfValidatorUrl
有一个新的协议
选择。这允许您指定协议允许:
美元的验证器=新sfValidatorUrl(数组(“协议”= >数组(“http”,“https”)));
默认允许以下协议:
http
https
ftp
ftp
sfValidatorSchemaCompare
的sfValidatorSchemaCompare
类有两个新的比较器:
相同的
,相当于= = =
;NOT_IDENTICAL
,相当于= = !
;
sfValidatorChoice
,sfValidatorPropelChoice
,sfValidatorDoctrineChoice
的sfValidatorChoice
,sfValidatorPropelChoice
,sfValidatorDoctrineChoice
验证器有两个新选项只有在启用多个
选择是真正的
:
最小值
需要选择值的最小数量马克斯
需要选择的值的最大数量
I18n验证器
添加了验证器如下:
sfValidatorI18nChoiceTimezone
默认错误消息
现在,您可以定义默认错误消息在全球范围内使用sfValidatorBase: setDefaultMessage ()
方法:
sfValidatorBase::setDefaultMessage(“要求”,这个字段是必需的。);
前面的代码将覆盖默认的要求。所有验证器”的信息。注意,默认消息之前,必须定义任何验证器创建(configuration类)的好地方。
请注意
的setRequiredMessage ()
和setInvalidMessage ()
弃用和调用新的方法setDefaultMessage ()
方法。
symfoob娱乐下载ny会显示一个错误时,错误消息使用确定如下:
ob娱乐下载Symfony查找创建消息传递时验证器(通过验证器的构造函数的第二个参数);
如果没有定义,它寻找一个默认的消息定义
setDefaultMessage ()
方法;如果没有定义,它落回到默认消息定义的验证器本身(当消息被添加
addMessage ()
方法)。
连贯接口
现在验证器实现流体界面以下方法:
sfValidatorSchema
:setPreValidator ()
,setPostValidator ()
sfValidatorErrorSchema
:addError ()
,adderror ()
sfValidatorBase
:addMessage ()
,setMessage ()
,setMessages ()
,使用addOption ()
,setOption ()
,setoption ()
,addRequiredOption ()
sfValidatorFile
抛出异常sfValidatorFile如果在创建一个实例file_uploads
是禁用的php . ini
。
形式
sfForm: useFields ()
新sfForm: useFields ()
方法删除所有non-hidden字段除了作为参数给出的一种形式。有时容易明确给领域你想保持的一种形式,而不是取消所有不必要的字段。例如,当添加新字段基本形式,他们不会自动出现在表单直到显式地添加(认为模型的形式,你添加一个新的列相关表)。
类ArticleForm扩展BaseArticleForm{公共函数配置(){这个美元- >useFields(数组(“标题”,“内容”));}}
默认情况下,数组字段还用于改变字段的顺序。你可以通过假
作为第二个参数useFields ()
禁用自动重新排序。
sfForm: getEmbeddedForm(名称)
现在,您可以访问一个特定的嵌入式形式使用- > getEmbeddedForm ()
方法。
sfForm: renderHiddenFields ()
的- > renderHiddenFields ()
方法现在呈现从嵌入式表单隐藏字段。争论已经添加禁用递归,有用的,如果你使用格式化程序嵌入形式呈现。
/ /显示所有隐藏字段,包括嵌入式形式回声美元的形式- >renderHiddenFields();/ /渲染隐藏字段没有再次发生回声美元的形式- >renderHiddenFields(假);
sfFormob娱乐下载Symfony
新sfFormob娱乐下载Symfony
类介绍了事件调度器symfony形式。ob娱乐下载你可以从表单类内部访问分配器自我::$调度员
。现在事件通知symfony以下形式:ob娱乐下载
form.post_configure
:此通知后任何形式配置form.filter_values
:这个事件过滤器合并后,污染参数和文件数组之前绑定form.validation_error
:此通知每当表单验证失败form.method_not_found
:此通知每当一个未知的方法被调用
标识
每一个新的symfoob娱乐下载ny项目包括一个1.3/1.4标识
类,您可以用它来扩展表单组件或添加特定项目的功能。产生的形式sfDoctrinePlugin
和sfPropelPlugin
自动扩展这个类。如果你现在他们应该创建额外的形式类扩展标识
而不是sfForm
。
sfForm: doBind ()
污染的清洗参数已被隔离在一个开发人员友好的方法,- > doBind ()
,接收数组参数和文件的合并- > bind ()
。
sfForm(教义|推动)::doUpdateObject ()
原则,推动形成类现在包括开发者- > doUpdateObject ()
方法。该方法接收一个数组的值- > updateObject ()
已经处理了- > processValues ()
。
sfForm: enableLocalCSRFProtection ()
和sfForm: disableLocalCSRFProtection ()
使用sfForm: enableLocalCSRFProtection ()
和sfForm: disableLocalCSRFProtection ()
方法,您现在可以轻松地配置的CSRF保护配置()
表单类的方法。
禁用的CSRF保护形式,在其添加以下行配置()
方法:
这个美元- >disableLocalCSRFProtection();
通过调用disableLocalCSRFProtection ()
CSRF保护将被禁用,即使你通过CSRF秘密当创建一个表单实例。
连贯接口
一些sfForm
现在的方法实现连贯接口:addCSRFProtection ()
,setValidators ()
,setValidator ()
,setValidatorSchema ()
,setWidgets ()
,setWidget ()
,setWidgetSchema ()
,setOption ()
,setDefault ()
,setDefaults ()
。
自动装卸机
现在syob娱乐下载mfony自动装卸机都是不区分大小写的。PHP是不区分大小写的,现在是symfony。ob娱乐下载
sfAutoloadAgain
(实验)
添加了一个特殊的自动装卸机就是在调试模式下使用。新sfAutoloadAgain
类将重载标准symfony自动装卸机和搜索文件系统类的问题。ob娱乐下载净效应是你不再需要运行ob娱乐下载symfony cc
之后添加一个新的类项目。
测试
加速测试
当你有一个大型的测试套件,它可以是非常耗时间的发射所有测试每次你做出改变,特别是一些测试失败。这是因为每次你解决一个测试,你应该再次运行整个测试套件,以确保你没有打破东西。但只要失败的测试都不是固定不变的,是没有意义的重新执行所有其他测试。symfonob娱乐下载y的1.3/1.4测试:所有
和ob娱乐下载symfony:测试
有一个任务——only-failed
(- f
作为快捷方式)选项,部队的任务只有在上一次运行重新执行测试失败:
php syob娱乐下载mfony测试:美元——only-failed
这是它是如何工作的:第一次,像往常一样运行所有测试。但对于后续的测试运行,仅执行上次测试失败。当你修复你的代码,会通过一些测试,并将在随后的运行中删除。当所有测试通过,完整的测试套件运行……然后您可以清洗和重复的方法。
功能测试
当一个请求产生一个异常,调试()
方法的响应测试仪现在输出的可读的文本表示异常,而不是正常的HTML输出。它使调试更加容易。
sfTesterResponse
有一个新的匹配()
方法运行一个正则表达式在整个响应内容。很大的帮助在非类似xml响应,在哪里checkElement ()
不是可用的。它也取代了它包含()
方法:
美元的浏览器- >与(“响应”)- >开始()- >匹配(/我有\ d+苹果/ ')- >/ /正则表达式作为参数匹配(”!/我有\ d+苹果/ ')- >/ / !一开始意味着正则表达式必须不匹配匹配(”!/我有\ d+苹果/我)- >/ /正则表达式还可以添加修饰符结束();
JUnit兼容的XML输出
测试任务现在可以输出一个JUnit兼容的XML文件使用——xml
选择:
美元php ob娱乐下载symfony测试:所有——xml = log.xml
简单的调试
为了缓解调试测试报告失败的测试时,您现在可以通过——跟踪
选项对失败有一个详细的输出:
美元php ob娱乐下载symfony测试:所有- t
石灰输出彩色化
symfonob娱乐下载y的1.3/1.4,石灰和彩色化而言正确的事。这意味着,你可以几乎总是省略石灰构造函数的第二个参数lime_test
:
$ t=新lime_test(1);
sfTesterResponse: checkForm ()
响应测试仪现在包括一个方法方便地验证表单中的所有字段都呈现响应:
美元的浏览器- >与(“响应”)- >开始()- >checkForm(“ArticleForm”)- >结束();
或者,如果你喜欢,你可以通过一个表单对象:
美元的浏览器- >与(“响应”)- >开始()- >checkForm(美元的浏览器- >getArticleForm())- >结束();
如果响应包含多种形式可以选择提供一个CSS选择器来确定哪个部分DOM的测试:
美元的浏览器- >与(“响应”)- >开始()- >checkForm(“ArticleForm”,“# articleForm”)- >结束();
sfTesterResponse: isValid ()
现在可以检查是否格式良好的XML响应测试仪的响应- > isValid ()
方法:
美元的浏览器- >与(“响应”)- >开始()- >isValid()- >结束();
你也验证反应对其文档类型是通过真正的
作为一个参数:
美元的浏览器- >与(“响应”)- >开始()- >isValid(真正的)- >结束();
另外,如果你有一个XSD或RelaxNG模式验证,您可以提供这个文件的路径:
美元的浏览器- >与(“响应”)- >开始()- >isValid(“/道路/ / schema.xsd”)- >结束();
听context.load_factories
你现在可以添加侦听器context.load_factories
活动你的功能测试。这是不可能的在早期版本的symfony。ob娱乐下载
美元的浏览器- >addListener(“context.load_factories”,数组(美元的浏览器,“listenForNewContext”));
一个更好的- >点击()
你现在可以通过任何CSS选择器- >点击()
方法,使它更容易的目标元素语义。
美元的浏览器- >得到(/登录的)- >点击(美元的形式[行动= " /登录")输入(type =“提交”)”);
任务
symfob娱乐下载ony CLI现在试图检测终端窗口的宽度和格式适合。如果发现是不可能的CLI默认为78列宽。
sfTask: askAndValidate ()
有一个新的sfTask: askAndValidate ()
方法向用户提问并验证其输入:
美元的答案=这个美元- >askAndValidate(“你的电子邮件是什么?”,新sfValidatorEmail());
该方法还接受的选项数组(有关更多信息,请参见API文档)。
ob娱乐下载symfony:测试
不时地,开发人员需要运行symfony测试套件来检查symfony适用特定平台。ob娱乐下载直到现在,他们必须知道prove.php
脚本与symfony捆绑在一起。ob娱乐下载symfonob娱乐下载y的1.3/1.4,有一个内置的任务,ob娱乐下载symfony:测试
发射symfony的核心从命令行测试ob娱乐下载套件,像任何其他任务:
php syob娱乐下载mfony symfony:美元测试
如果你是用来运行php / bin / prove.php测试
现在,你应该相当于运行php data / biob娱乐下载n / symfony symfony:测试
命令。
项目:部署
的项目:部署
任务已略有改善。现在显示实时文件传输的进度,但只有在- t
选择是通过。如果不是,任务是沉默,当然除了错误。说到错误,如果一个人发生,缓解问题的输出是在红色背景上识别。
生成:项目
symfonob娱乐下载y的1.3/1.4,教义是默认配置ORM时执行生成:项目
任务:
php /道路/美元/ symob娱乐下载fony生成:项目foo
为推动生成一个项目,使用——orm
选择:
php /道路/美元/ symob娱乐下载fony生成:项目foo, orm =推动
如果你不想使用推动或教义,你可以通过没有一个
到——orm
选择:
php /道路/美元/ symob娱乐下载fony生成:项目foo——orm =没有
新——安装程序
选项允许您通过一个PHP脚本,它可以进一步自定义新创建的项目。脚本执行的任务,所以可以使用任何方法。更有用的是以下几点:installDir ()
,runTask ()
,问()
,askConfirmation ()
,askAndValidate ()
,reloadTasks ()
,enablePlugin ()
,disablePlugin ()
。
可以找到更多的信息帖子symfony官方博客。ob娱乐下载
你还可以包括一个“作者”的论点在生成项目时,使用它指定一个值@author
文档标签当symfony生ob娱乐下载成新类。
php /道路/美元/ symob娱乐下载fony生成:项目foo”乔愚人”
sfFileSystem: execute ()
的sfFileSystem: execute ()
方法取代了sfFileSystem: sh ()
方法和更强大的功能。回调的实时处理stdout
和stderr
输出。它还返回输出为一个数组。你可以找到一个例子的使用sfProjectDeployTask
类。
task.test.filter_test_files
的测试:*
通过任务现在过滤器测试文件task.test.filter_test_files
事件之前运行。该事件包括参数
和选项
参数。
增强sfTask: run ()
你现在可以通过一个关联数组的参数和选项sfTask: run ()
:
美元的任务=新sfDoctrineConfigureDatabaseTask(这个美元- >调度程序,这个美元- >格式化程序);美元的任务- >运行(数组(“dsn”= >“mysql: dbname = mydb;主机= localhost '),数组(“名字”= >“大师”));
之前的版本,仍然工作:
美元的任务- >运行(数组(“mysql: dbname = mydb;主机= localhost '),数组(“——name =主”));
sfBaseTask: setConfiguration ()
当调用一个扩展的任务sfBaseTask
从PHP,您不再需要通过——应用程序
和- - - env
选项- > run ()
。相反,您可以简单地直接通过调用设置配置对象- > setConfiguration ()
。
美元的任务=新sfDoctrineLoadDataTask(这个美元- >调度程序,这个美元- >格式化程序);美元的任务- >setConfiguration(这个美元- >配置);美元的任务- >运行();
之前的版本,仍然工作:
美元的任务=新sfDoctrineLoadDataTask(这个美元- >调度程序,这个美元- >格式化程序);美元的任务- >运行(数组(),数组(”——应用程序= '。选择美元(“应用程序”],”——env = '。选择美元(“env”],));
项目:禁用
和项目:启用
你现在可以批发禁用或启用整个环境使用项目:禁用
和项目:启用
任务:
美元php ob娱乐下载symfony项目:禁用刺激美元php symfony项目:使刺激
您还可以指定应用程序禁用的环境:
美元php ob娱乐下载symfony项目:禁用刺激美元前端后端php symfony项目:支持推动前端后端
这些任务是向后兼容以前的签名:
美元php ob娱乐下载symfony项目:禁用前端推动美元php symfony项目:使前端刺激
帮助
和列表
的帮助
和列表
作为XML任务现在可以展示他们的信息:
php syob娱乐下载mfony列表——xml php symfony美元帮助测试:——xml
基于新的输出对asXml () sfTask::
方法,该方法返回一个任务对象的XML表示。
XML输出主要是有用的等第三方工具的ide。
项目:优化
运行这个任务可以减少磁盘读取的数量表现在运行时通过缓存应用程序的模板文件的位置。这个任务应该只用于在生产服务器上。别忘了重新运行任务每次项目变更。
美元php ob娱乐下载symfony项目:优化前端
生成:应用程序
的生成:应用程序
现在的任务检查骨架目录在您的项目数据/框架/应用程序
目录前违约骨骼绑定在核心。
发送一个电子邮件从一个任务
你现在可以轻松地发送电子邮件从一个任务通过使用getMailer ()
方法。
在一个任务中使用路由
现在,您可以很容易地从一个任务通过使用路由对象getRouting ()
方法。
异常
半自动的
当一个异常在半自动的,symfony现在捕获它们,输出一个错误给用户。ob娱乐下载这应该解决一些“死亡”页面。
Web调试工具栏
如果可能的话,web调试工具栏现在也异常页面上显示在开发环境中。
推进集成
推动已经升级到1.4版本。有关更多信息,请访问推动网站的升级(http://www.propelorm.org/wiki/Documentation/1.4)。欧宝官网下载app
推动行为
自定义构建器类symfony依靠延长推动已经移植到推动ob娱乐下载1.4的新行为系统。
推动:插入sql
之前推动:插入sql
删除所有的数据从一个数据库,它要求一个确认。由于此任务可以将数据从多个数据库,它现在也显示连接相关的数据库的名称。
推动:generate-module
,推动:generate-admin
,推动:generate-admin-for-route
的推动:generate-module
,推动:generate-admin
,推动:generate-admin-for-route
现在需要一个任务——actions-base-class
选项,允许操作基类的配置为生成的模块。
推动行为
推动1.4引入了一个实现的行为推动代码库。自定义symfony建ob娱乐下载筑商已经被移植到这个新系统。
如果你想添加本地行为驱动模型,你可以这样做schema.yml
:
类:文章:propel_behaviors: timestampable: ~
或者,如果你使用旧的schema.yml
语法:
推动:文章:_propel_behaviors: timestampable: ~
禁用表单生成
现在,您可以禁用表单生成特定模型通过传递参数ob娱乐下载
推动行为:
类:UserGroup: propel_behaviors: symfonyob娱乐下载:形式:假过滤器:假
注意,你必须重建模型之前,设置是受人尊敬的,因为行为附加到模型和后只存在重建它。
使用不同版本的驱动
使用不同版本的推动一样容易设置sf_propel_runtime_path
和sf_propel_generator_path
配置变量ProjectConfiguration
:
/ /配置/ ProjectConfiguration.class.php公共函数设置(){这个美元- >enablePlugins(“sfPropelPlugin”);sfConfig::集(“sf_propel_runtime_path”,/道路/ /推动/运行时的);sfConfig::集(“sf_propel_generator_path”,/道路/ /推动发电机的);}
路由
默认的需求
默认的\ d +
目前仅应用于需求sfObjectRouteCollection
当列
选项是默认的id
。这意味着您不再需要时提供一个替代需求(即指定一个非数字的列。鼻涕虫
)。
sfObjectRouteCollection
选项
一个新的default_params
选择已添加sfObjectRouteCollection
。它允许每个生成的默认参数注册路线:
forum_topic:类:sfDoctrineRouteCollection选项:default_params:部分:论坛
CLI
输出彩色化
ob娱乐下载Symfony试图猜测如果您的控制台支持颜色当你使用Symfony CLI的工具。但有时,symfony的猜测错ob娱乐下载了;例如当你使用Cygwin(因为彩色化总是关闭在Windows平台上)。
symfonob娱乐下载y的1.3/1.4,可以强制使用颜色的输出通过全球——颜色
选择。
I18N
数据更新
数据用于所有I18N的更新操作ICU项目
。ob娱乐下载Symfony现在约有330区域文件,这是一个1.2的Symfony相比增加了70。请注意更新的数据可能略有不同的是在这里,例如测试用例检查第十项的语言列表可能会失败。
排序根据用户的语言环境
所有排序在这个地区依赖数据现在也表现依赖语言环境。sfCultureInfo - > sortArray ()
可以使用。
插件
在symfonob娱乐下载y 1.3/1.4之前,所有插件都是默认启用,除了sfDoctrinePlugin
和sfCompat10Plugin
的:
类ProjectConfiguration扩展sfProjectConfiguration{公共函数设置(){/ /仅供兼容性/删除,使你想要的插件这个美元- >enableAllPluginsExcept(数组(“sfDoctrinePlugin”,“sfCompat10Plugin”));}}
新创建的项目与symfony 1.3/1.4,插件必须显式地启用的ob娱乐下载ProjectConfiguration
类能够使用它们:
类ProjectConfiguration扩展sfProjectConfiguration{公共函数设置(){这个美元- >enablePlugins(“sfDoctrinePlugin”);}}
的插件:安装
任务自动使它安装的插件(s)(和插件:卸载
禁用)。如果你安装一个插件通过颠覆,你仍然需要手动启用它。
如果你想使用core-plugin,sfProtoculousPlugin
或sfCompat10Plugin
,你只需要添加相应的enablePlugins ()
声明ProjectConfiguration
类。
请注意
如果你从1.2升级项目,旧的行为仍将活跃升级任务不会改变ProjectConfiguration
文件。新symfony的行为变化是只有1.3/1.4的项目。ob娱乐下载
sfPluginConfiguration: connectTests ()
你可以连接一个插件的测试测试:*
通过调用插件配置的任务- > connectTests ()
方法在新setupPlugins ()
方法:
类ProjectConfiguration扩展sfProjectConfiguration{公共函数setupPlugins(){这个美元- >pluginConfigurations(“sfExamplePlugin”]- >connectTests();}}
设置
sf_file_link_format
ob娱乐下载Symfony 1.3/1.4格式文件路径尽可能为可点击的链接(即调试异常模板)。的sf_file_link_format
用于这个目的,如果设置,否则symfony将寻找吗ob娱乐下载xdebug.file_link_format
PHP配置值。
例如,如果你想要打开的文件在TextMate软件,添加以下settings.yml
:
:.settings: file_link_format: txmt: / /开放? url =文件:/ / % f&line = % l
的% f
占位符将替换文件的绝对路径% l
占位符将被替换为行号。
教义集成
学说已经升级到1.2版。有关更多信息,请访问教义的网站升级(http://www.doctrine-project.org/documentation/1_2/en)。欧宝官网下载app
生成表单类
现在可以指定附加选项symfony教义YAML模式文件。ob娱乐下载我们增加了一些选项来禁用表单的生成和过滤器类。
例如在一个典型的许多许多参考模型,您不需要任何形式或过滤形式生成的类。所以你现在可以做以下几点:
UserGroup:选择:symfonyob娱乐下载:形式:假过滤器:假列:user_id:类型:整型主:真正的group_id:类型:整型主:没错
表单类继承
当你从你的模型生成形式,模型包含继承。生成的子类将尊重继承和生成形式遵循相同的遗传结构。
新任务
我们引入了一些新的任务,帮助您在开发原则。
创建模型表
您现在可以单独指定数组的创建表模型。这将删除表第一然后重新创建它们。这是有用的,如果您正在开发一些新模型在现有项目/数据库和你不想吹走整个数据库,只是想重建表的一个子集。
php syob娱乐下载mfony学说:美元create-model-tables Model1 Model2 Model3
删除模式文件
你经常会改变你的模式,重命名,删除未使用的模型,在YAML模式文件等。当你这样做时,你有孤儿模型,形成和过滤器类。现在,您可以手动清理通过使用生成的文件相关的模型原则:delete-model-files
的任务。
php syob娱乐下载mfony学说:美元delete-model-files ModelName
上面的任务将会发现所有产生的相关文件和报告之前,要求您确认是否你想要删除的文件。
干净的模型文件
上面你可以自动化过程,找出模型存在磁盘上的但不存在在你通过使用YAML模式文件原则:clean-model-files
的任务。
美元php ob娱乐下载symfony学说:clean-model-files
上面的命令将比较YAML模式文件和模型文件生成和决定什么应该被删除。然后传递给这些模型原则:delete-model-files
的任务。它会问你确认删除任何文件之前删除任何实际行动。
构建任何
新原则:建立
允许您指定任务究竟你想symfony和教义。ob娱乐下载这个任务在许多现有的combination-tasks复制功能,这都被弃用的更灵活的解决方案。
下面是一些可能的使用原则:建立
:
美元php ob娱乐下载symfony原则:建立- db -和负载
这将降低(:drop-db
)和创建(:build-db
)数据库,创建表中配置schema.yml
(:插入sql
),加载夹具数据(:数据加载
)。
php syob娱乐下载mfony学说:美元构建——所有类和移植
这将构建模型(:建造模式
)、形式(:构建表单
)、过滤器(:build-filters
)和运行任何悬而未决的迁移(:迁移
)。
美元php ob娱乐下载symfony原则:建立模型——和移植,并将=数据/夹具/ categories.yml
这将构建模型(:建造模式
),迁移数据库(:迁移
)和附加类别设备数据(:数据加载-添加- dir =数据/夹具/ categories.yml
)。
看到的更多信息原则:建立
任务的帮助页面。
新选项:——迁移
现在包括以下任务——迁移
选项,该选项将取代嵌套原则:插入sql
任务与原则:迁移
。
原则:构建所有
原则:build-all-load
原则:build-all-reload
原则:build-all-reload-test-all
原则:rebuild-db
原则:重载数据
原则:generate-migration——editor-cmd
的原则:generate-migration
现在的任务包括——editor-cmd
选项将执行一次迁移类是创建简单的编辑。
php syob娱乐下载mfony学说:美元generate-migration AddUserEmailColumn——editor-cmd =伴侣
这个例子将生成新的迁移类并在TextMate软件中打开新文件。
原则:generate-migrations-diff
这个新的任务将自动为您生成完整的迁移类,基于你的旧和新模式。
创建或删除特定的连接
现在,您可以指定运行时数据库连接的名字原则:build-db
和原则:drop-db
:
php syob娱乐下载mfony学说:美元drop-db大师slave1 slave2
日期setter和getter
我们添加了两个新的方法检索原则日期或时间戳值作为PHP DateTime对象实例。
回声美元的文章- >getDateTimeObject(“created_at”)- >格式(' m / d / Y ');
你也可以设定一个日期值通过简单地调用setDateTimeObject
和通过一个有效的方法DateTime
实例。
美元的文章- >setDateTimeObject(“created_at”,新DateTime(“09/01/1985”));
原则:迁移——下来
的原则:迁移
现在包括向上
和下来
选项,将迁移模式要求方向的一步。
美元php ob娱乐下载symfony学说:迁移——下来
原则:迁移——管制
如果您的数据库支持回滚DDL语句(MySQL不),您可以利用管制
选择。
php syob娱乐下载mfony学说:美元——即将迁移
输出DQL任务表的数据
当你将之前运行原则:dql
命令将输出数据如YAML。我们已经添加了一个新的——表
选择。这个选项允许您输出的数据表,类似于它在MySQL命令行输出。
现在下面是可能的。
美元。/ob娱乐下载 symfony学说:dql“从文章”——表> >教义执行dql查询dql:从文章+——+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - | + | id author_id | is_on_homepage | created_at | updated_at | +——+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + | 1 | 1 | | 2009-07-07 18:02:24 | 2009-07-07 18:02:24 | | 2 | 2 | | 2009-07-07 18:02:24 | 2009-07-07 18:02:24 | +——+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - +(2的结果)
通过查询参数原则:dql
的原则:dql
任务也被增强接受查询参数作为参数:
php syob娱乐下载mfony学说:美元dql”像一条名字?”约翰%
调试查询功能测试
的sfTesterDoctrine
类现在包括一个- >调试()
方法。这个方法将输出信息查询,已经在当前的上下文中运行。
美元的浏览器- >得到(' /文章')- >与(“原则”)- >调试();
你只可以查看过去的几个查询执行的方法传递一个整数,或只显示查询包含子字符串或正则表达式匹配通过传递一个字符串。
美元的浏览器- >得到(' /文章')- >与(“原则”)- >调试(' /文章/我的);
sfFormFilterDoctrine
的sfFormFilterDoctrine
类现在可以播种Doctrine_Query
对象通过查询
选择:
美元的过滤器=新ArticleFormFilter(数组(),数组(“查询”= >美元的表- >createQuery()- >选择(的标题,身体),));
通过指定的表法- > setTableMethod ()
现在(或通过table_method
选项)不再需要返回一个查询对象。下列是有效的sfFormFilterDoctrine
表的方法:
/ /在symfony ob娱乐下载> = 1.2公共函数getQuery(){返回这个美元- >createQuery()- >选择(的标题,身体);}/ /在symfony ob娱乐下载> = 1.2公共函数filterQuery(Doctrine_Query美元的查询){返回美元的查询- >选择(的标题,身体);}/ /在symfony ob娱乐下载> = 1.3公共函数modifyQuery(Doctrine_Query美元的查询){美元的查询- >选择(的标题,身体);}
现在定制过滤器是一种形式更容易。添加一个过滤字段,所有你需要做的就是添加小部件和一个方法来处理它。
类UserFormFilter扩展BaseUserFormFilter{公共函数配置(){这个美元- >widgetSchema(“名字”]=新sfWidgetFormInputText();这个美元- >validatorSchema(“名字”]=新sfValidatorString(数组(“要求”= >假));}公共函数addNameColumnQuery(美元的查询,美元的领域,美元的价值){如果(!空(美元的价值)){美元的查询- >引入(sprintf(CONCAT (% s。f_name % 1 $ s.l_name) ?”,美元的查询- >getRootAlias()),美元的价值);}}}
在早期版本你需要扩展getFields ()
除了创建一个小部件和方法得到这个工作。
配置原则
你现在可以听的事件doctrine.configure
和doctrine.configure_connection
配置原则。这意味着原则配置从一个插件可以很容易地定制,只要前启用插件sfDoctrinePlugin
。
原则:generate-module
,原则:generate-admin
,原则:generate-admin-for-route
的原则:generate-module
,原则:generate-admin
,原则:generate-admin-for-route
现在需要一个任务——actions-base-class
选项,允许操作基类的配置为生成的模块。
魔术方法文档标签
神奇的getter和setter方法symfony增加了理论模型现在代表ob娱乐下载在每个生成的文档头基类。如果您的IDE支持代码自动完成,你现在应该看到这些getFooBar ()
和setFooBar ()
方法出现在模型对象,FooBar
是一个CamelCased字段名。
使用不同版本的教义
使用不同版本的教义一样容易设置sf_doctrine_dir
设置在ProjectConfiguration
:
/ /配置/ ProjectConfiguration.class.php公共函数设置(){这个美元- >enablePlugins(“sfDoctrinePlugin”);sfConfig::集(“sf_doctrine_dir”,“/道路/ / lib /学说”);}
Web调试工具栏
sfWebDebugPanel: setStatus ()
每个小组在web调试工具栏可以指定状态将影响其标题的背景颜色。例如,日志面板的标题的背景颜色的变化如果任何消息优先级大于sfLogger:信息
被记录。
sfWebDebugPanel
请求参数
现在,您可以指定要打开一个面板添加一个页面加载sfWebDebugPanel
参数的URL。例如,添加? sfWebDebugPanel =配置
会导致web调试工具栏显示的配置面板打开。
板也可以检查请求参数通过访问web调试request_parameters
选择:
requestParameters美元=这个美元- >webDebug- >getOption(“request_parameters”);
分音
槽的改进
的get_slot ()
和include_slot ()
助手现在接受第二个参数用于指定默认槽槽提供的内容如果没有返回:
< ? php回声get_slot(“foo”,“酒吧”)/ /输出“酒吧”如果槽“foo”没有定义? >< ? phpinclude_slot(“foo”,“酒吧”)/ /输出“酒吧”如果槽“foo”没有定义? >
寻呼机
的sfDoctrinePager
和sfPropelPager
现在的方法实现迭代器
和可数名词
接口。
< ? php如果(数(美元寻呼机)):? >< ul >< ? phpforeach(美元寻呼机作为美元的文章):? ><李> < ? php回声link_to(美元的文章- >getTitle(),“article_show”,美元的文章)李? > < / >< ? phpendforeach;? >< / ul >< ? php其他的:? >< / p > < p >没有结果。< ? phpendif;? >
视图缓存
视图缓存管理器现在接受参数factories.yml
。生成一个视图的缓存键在不同的方法来重构轻松扩展类。
两个参数是可用的factories.yml
:
cache_key_use_vary_headers
(默认值:真正的
):指定如果缓存键应包括不同的标题部分。在实践中,它说,如果页面缓存应该依赖于http头,中指定不同
缓存参数。cache_key_use_host_name
(默认值:真正的
):指定如果缓存键应该包括主机名部分。在实践中,它说,如果页面缓存应该依赖于主机名。
缓存更多
视图缓存管理器不再拒绝根据是否有缓存中的值$ _GET
或$ _POST
数组。现在只是证实了当前请求的逻辑检查之前的GET方法cache.yml
。这意味着现在以下页面缓存:
/ js / my_compiled_javascript.js ? cachebuster123
/用户? = 3页
请求
getContent ()
请求的内容现在可以通过访问getContent ()
方法。
把
和删除
参数
当一个请求和一个进来把
或者一个删除
内容类型设置为HTTP方法应用程序/ x-www-form-urlencoded
,sob娱乐下载ymfony现在解析原始体,使参数正常访问帖子
参数。
行动
重定向()
的sfAction:重定向()
方法家庭现在兼容url_for ()
签名在symfony 1.2中引入的:ob娱乐下载
/ /ob娱乐下载 symfony 1.2这个美元- >重定向(数组(“sf_route”= >“article_show”,“sf_subject”= >美元的文章));/ /ob娱乐下载 symfony 1.3/1.4这个美元- >重定向(“article_show”,美元的文章);
此增强功能也被应用到redirectIf ()
和redirectUnless ()
。
助手
link_to_if ()
,link_to_unless ()
的link_to_if ()
和link_to_unless ()
助手现在兼容link_to ()
签名在symfony 1.2中引入的:ob娱乐下载
/ /ob娱乐下载 symfony 1.2< ? php回声link_to_unless($ foo,“@article_show id = ?”。美元的文章- >getId())? >/ /ob娱乐下载 symfony 1.3/1.4< ? php回声link_to_unless($ foo,“article_show”,美元的文章)? >
上下文
你现在可以听context.method_not_found
动态添加方法sfContext
。这是有用的,如果你添加了一个延迟加载工厂,也许从一个插件。
类myContextListener{受保护的美元的工厂=零;公共函数listenForMethodNotFound(sfEvent美元的事件){美元的上下文=美元的事件- >getSubject();如果(“getLazyLoadingFactory”= =美元的事件(“方法”]){如果(零= = =这个美元- >工厂){这个美元- >工厂=新myLazyLoadingFactory(美元的上下文- >getEventDispatcher());}美元的事件- >setReturnValue(这个美元- >工厂);返回真正的;}}}
这个工作许可适用创作共用署名下衍生著作3.0 Unported许可执照。