symfob娱乐下载ony 1.1体系结构
symfob娱乐下载ony 1.1体系结构
在本周晚些时候发布symfony 1ob娱乐下载.1之前,我想给一些新的symfony 1.1体系结构的信息。除了新令人兴奋的特性我们已经在symfonob娱乐下载y 1.1中,这个版本也代表了一年的努力工作来重构内部。让我们更深入一些symfonyob娱乐下载内部!
symfob娱乐下载ony平台
ob娱乐下载symfony 1.1是基于一组内聚的但是解耦类,ob娱乐下载symfony的平台:
每个类的symfony没有整个MVCob娱乐下载体系结构平台是可用的。symfob娱乐下载ony平台类没有依赖和使用它们的唯一先决条件的登记是symfony自动装卸机:
require_once“/道路/ / sfCoreAutoload.class.php”;sfCoreAutoload::注册();
只有两行代码,您可以使用任何symfony平台的类。ob娱乐下载例如,如果你的项目不使用symfony,你仍然可以使用ob娱乐下载sfYaml
类包括symfony自动装卸机:ob娱乐下载
require_once“/道路/ / sfCoreAutoload.class.php”;sfCoreAutoload::注册();/ /加载一些YAML文件或字符串美元配置= sfYaml::负载(“/道路/ / / file.yml”);美元配置= sfYaml::负载(< < < EOF配置:关键:foo价值:(酒吧,foobar]栏:{酒吧:foo}EOF);/ /转储一些YAML的数组yaml美元= sfYaml::转储(美元配置);
这同样适用于所有类,如sfCache
类:
require_once“/道路/ / sfCoreAutoload.class.php”;sfCoreAutoload::注册();美元的缓存=新sfSQLiteCache(数组(“数据库”= >目录名(__FILE__)。' / cache.db '));美元的缓存- >集(“foo”,“酒吧”);美元的价值=美元的缓存- >得到(“foo”);
下面的例子使用了SQLite
后端但symfony还提ob娱乐下载供后端基于文件
,APC
,XCache
,EACcelerator
,Memcache
。
即使看起来自然独立使用这些类,类的symfony平台更进一步ob娱乐下载sfRequest
或sfResponse
。让我们看看一个例子,使用这两个类来创建一个简单的“Hello World”脚本:
require_once“/道路/ / sfCoreAutoload.class.php”;sfCoreAutoload::注册();美元的调度员=新sfEventDispatcher();美元的请求=新sfWebRequest(美元的调度员);美元的反应=新sfWebResponse(美元的调度员);美元的内容=“你好”。美元的请求- >getParameter(“名字”,“世界”);美元的反应- >setContent(美元的内容);美元的反应- >发送();
在这个例子中,我们使用一个sfEventDispatcher
对象。即使平台类是完全解耦,有些课程可以一起交流由于调度员。调度程序提供了一个的意思是通知事件和听这些事件。您不需要创建一个监听器实现一个接口,也不使用任何特定的基类来创建一个事件;事件仅仅是由它的名称和定义的数组参数发送的通知。
例如,sfPatternRouting
类听request.filter_parameters
事件:
美元的回调=数组(这个美元,“filterParameters”);美元的调度员- >连接(“request.filter_parameters”,美元的回调);
当创建一个请求时,sfWebRequest
通知request.filter_parameters
事件:
美元的事件=新sfEvent(这个美元,“request.filter_parameters”);美元的参数=美元的调度员- >过滤器(美元的事件,美元的参数);
所以,即使sfWebRequest
类和sfPatternRouting
类是解耦的,他们一起自动交流当他们共享相同的调度程序。
为了说明这个特性,让我们改变之前的例子有点通过添加一个连接的路由对象/ hello /:名字
模式“Hello World”应用程序:
require_once“/道路/ / sfCoreAutoload.class.php”;sfCoreAutoload::注册();美元的调度员=新sfEventDispatcher();美元的路由=新sfPatternRouting(美元的调度员);美元的路由- >连接(“你好”,“/ hello /:名称”);美元的请求=新sfWebRequest(美元的调度员);美元的反应=新sfWebResponse(美元的调度员);美元的内容=“你好”。美元的请求- >getParameter(“名字”,“世界”);美元的反应- >setContent(美元的内容);美元的反应- >发送();
现在,如果你保存这个脚本index . php
在web根目录下,您可以访问应用程序通过输入类似/ index . php / hello /法比安
在您的浏览器中。
这是伟大的,如果你想利用symfony提供了一些很酷的特性,不使用整个MVC体系结构。ob娱乐下载
这也是一个你的旧应用程序迁移到symfony的好方法。ob娱乐下载而不是从头重写应用程序,你可以介绍symfony概念。ob娱乐下载
你也可以创建你自己的框架在symfony的平台。ob娱乐下载你不需要重新发明轮子,symfony平台所有您需要创建一个伟大的框架:ob娱乐下载
sfRequest
/sfRouting
:请求sfUser
/sfStorage
:用户/会话sfForm
:形式框架sfCache
:缓存框架sfOutputEscaper
XSS保护层sfResponse
响应:- …
当然,ob娱乐下载symfony框架本身的ob娱乐下载symfony的平台:
的sfConfiguration
类提供了一种方法来配置和定制应用程序。的sfContext
类作为一个注册表,对所有核心对象的引用。和感谢factories.yml
配置文件,您可以定制所有的注册类很容易,只需编辑一个YAML文件。
的ob娱乐下载symfony MVC框架是由一组额外的类的吗ob娱乐下载symfony框架如下所示:
的模型层是由第三方库,推动或教义。即使symfonob娱乐下载y 1.1与推动捆绑插件,很容易开关安装原则sfDoctrinePlugin
。两个orm和symfony提供相同级别的集成。ob娱乐下载
的视图层提供的sfView
类、一堆帮手和模板由开发人员编写的。
的控制器层基于一个过滤器链和操作定义的开发人员。
从版本1.1开始,symfony是最解ob娱乐下载耦的框架可以在PHP,甚至比Zend框架。例如,sfForm
框架是可用而没有任何MVC的类Zend_Form
有些与控制器和视图层。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
disptacher必须调度员美元
非常感谢。
ob娱乐下载Symfony元。我希望看到其他团队抓住你的类来扩展他们的框架。它将有利于symfony社区!欧宝体育平台怎么样ob娱乐下载
当我读到“只有两行代码,您可以使用任何symfony平台的类。ob娱乐下载例如,如果你的项目不使用symfony,你仍然可以使用sfYaml类包括symfony自动装卸机:“ob娱乐下载
我明白,我只需要在我的项目使用sfYaml sfCoreAutoload,但当我读我看到sfException sfCoreAutoload代码和使用sfFinder sfException我看到它使用sfConfig和sfYaml(测试sfContext existant然后没有依赖关系)有点不仅仅是一个类:)
或许我已经错过的东西。
我在想,在这样的体系结构发生着巨大的变化,会更合适的给它一个新的主版本号?2.0版本将会是一个更好的指示它改变了多少。称之为1.1版本假装只有几个新特性改变了(至少,遵循“通常的”版本约定……)
文章源代码:$路由- >连接('你好',' / hello /名称');
工作代码:$路由- >连接('你好',' / hello /:名称');
伟大的,不断发展的框架!
我希望这本新书,书的形式将具有相同的质量像这篇文章!:capri除外)
这将真正帮助我们理解整个框架。
非常感谢。
再见,再见,Zend框架:)