|
来源:http://trac.seagullproject.org/wiki/Howto/Upgrading/05
将所有的版块移动它们各自对应的模块中
将所有默认模板移到对应的模块中
-
SGL_UrlParser_SefStrategy::resolveArrayElems重命名SGL_Url::querystringArrayToHash
将模板中的{if:isAdmin}改成Output对应的方法{if:isAdmin()}
-
SGL_AppController重命名为SGL_FrontController
SGL_ HTTP_Session重命名为SGL_Session
SGL_ HTTP::redirect(array());简化为SGL_ HTTP::redirect();
实例化一个缓存对象从 $cache = & SGL::cacheSingleton();改成$cache = & SGL_Cache::singleton();
同样地,SGL::clearCache()改为SGL_Cache::clear()
在Misc.php中添加SGL_Error类
将lib/SGL/Other.php重命名为Misc.php
添加SGL_VAR_DIR, SGL_ETC_DIR和SGL_APP_ROOT以允许更弹性化的PEAR安装
下列的url解析策略现在是默认启用,即classic querystring, standard Seagull SEF和UrlAlias。意思是说下面这些URLs对同一样一面是有效的:
at the time of writing aliases are hard-coded in seagull/lib/data/ary.uriAliases.php but shortly they will be coming from the DB, user configurable, and cacheable
重写安装程序,所有过程是基于任务的
全局配置文件重命名为<host_name>.conf.php
只注册了少量的必须模块:default, user, navigation
版块现在是根据用户角色显示内容
过去在seagull/etc目录中的SQL相关文件现在移动到default模块
item*表和数据和移动到publisher
类别表和数据移动到publisher
在任何一个管理类中都将不在需要$this→module = 'foo'这样的语句
安装标志INSTALL_COMPLETE变成INSTALL_COMPLETE.php,现在访问安装程序需要密码
向导只允许通过保存在seagull/var/INSTALL_COMPLETE.php中的密码访问。安装程序在第一次安装是自动调用,也可能通过调用setup.php手工启动
所有的web测试被移动到各自对应的模块中
删除constants.php和init.php这样最后的这些'procedural' LOC就去掉了,现在你只需 AppController?.php
将所有和其它类重复的内核类移动到seagull/lib/SGL/Other.php以降低载入文件的数量。目前包括SGL_Array, SGL_Date和SGL_Inflector。这样更容易找到库文件:如果你没找到某个库文件,它很可能就在Other.php文件中。
增加了源文件:trunk/lib/SGL/ServiceLocator.php,它用来获取一个数据源,如果你需要使用多数据库源,那么也必须在这里注册。查看SGL_Manager的构造函数看看它是什么被初始化的
$conf现在作为任何控制类的一个成员变量,可以通过$this→conf访问
所有的控制类必须调用父类的构造函数parent::SGL_Manager()
数据源$dbh作为控制类的一个成员变量,可以通过$this→dbh访问
不能再使用旧的语法格式来存取配置值,如$conf['foo']['bar'] = 'baz';你现在必须用$c→set('foo', array('bar' ⇒ 'baz'];一个单键的config实例,如$c = &SGL_Config::singleton();
Request对象现在保存在SGL_Registry ($input),集成了当前路径,配置对象
SGL_ HTTP_REQUEST改成SGL_Request
由于使用了单键模式,所以$GLOBALS_SGL?REQUEST?不再使用了
moved resolution of $_SERVERPHP_SELF? to SGL_ URL::resolveServerVars($conf) in constants.php
SGL_Url现在使用分析策略能够和传统的url一样处理seagull url
getSignificantSegments改成PartialArray
SGL::getTime移动到SGL_Date::getTime
所有的类名或方法名的变换现在是在SGL_Inflector实现的,被放在seagull/lib/SGL/~Request.php文件中以减少文件的输入输出熟悉的方法包括
重写安装程序
用来快速载入配置文件的新的SGL_Config类,文件类型检查和数据格式处理是在背后处理的;目前支持ini,php数组和xml类型
改进了SGL_Request对象,在它内部处理了HTTP和CLI请求类型
继承PEAR的Net_Url类的新SGL_URL对象抽象和组织了各种url格式,目前支持classic querystring和Seagull's Search Engine Friendly格式
一个新的灵活的SGL_View对象。它集成了你所选择的模板并支持自定义HTML和XML输出的工作流程(阅读:PDA输出的快速支持)。默认是Flexy,但是现 在可以支持Smarty和任何其它的面向对象引擎。
可自定义的前期和后期处理管道线
几乎完全消除全局变量
|
|