来源:http://trac.seagullproject.org/wiki/Concepts/CoreLibs

Seagull的库组织

简介

Seagull框架使用的类库基本上可以分为以下几组:

  • Controllers - 控制工作流程
  • Core - 通用类
  • Tasks - 主要是用来做安装或设置的任务
  • Filters - 当请求对象和响应对象通过过滤链时修改它们
  • PEAR libs - 通用类

使用Seagull的开发涉及到创建模块,模块包含一个以上用来业务逻辑的的manager。使用模块生成器和上面列举的库资源,建立一个manager是很轻松的。;对于一个典型的项目来说,你可能只会用到Controllers, Core和PEAR libs。

以下部分解释了库的分组,描述了每个类的基本功能。这对高级开发人员来说是更有意思,初学者不要担心,因为默认的任务和过滤器是基本WEB应用研究所需要的。

Controller Classes

controller类管理应用程序的工作流程,SGL提供了许多实例,自己写一个也是很容易的。

Class name Availability Methods Description
SGL_FrontControllerdefault * run FrontController 用来组织特定应用程序的工作流程。你可能会为你所创建的每个应用程序使用类似的controller,尽管你可以非常容易的自定义工作流程。比较一下单元测试和Seagull来学习一下如何自定义。
SGL_Manager default * validate
* process
* display
* maintainState
Manager类是一个应用程序控制器,它设置了validate/process/display的工作流程
SGL_Wizard default * validate
* process
* display
* maintainState
Wizard类是Manager类的一特例,可以使用它在你的应用程序内创建向导工作流程。

Core Classes

内核类是你的manager类可以调用的系统接口,用来操作系统,应用程序和用户资源。Availability是指你是否需要使用一个include语句来包含那个你要用的类,所有Availability为default的类是指这个类在应用程序的范围内可用,你不需要包含,就好比java.lang包中的类(通常情况下,在JAVA编程时,使用这个包中的类是不用显式包含的)。而值为Requireable的库在使用之前必须包含。

Class name Availability Methods Description
SGL default 提供大多数模块使用的静态方法
SGL_Request default 封装所有的 $_GET、$_POST、$_FILES为一个请求(Request)对象,提供大量过滤方法
SGL_Output default SGL_Ouput类被别的地方被称为模板辅助类,它封装了模板引擎用来转换数据的方法,如将数据转换成html
SGL_Config default 用来解析处理配置文件,作为配置数据的寄存器
SGL_Registry default 通过数据存储对象,作为输入对象$input,保存下列单件对象的参考:Url,Request,Config等。
SGL_DB default 通常被作为DB资源对象的单件,提供dsn的创建方法
SGL_ServiceLocator default 实现在运行时切换资源,如,一个数据库资源可以被切换以供开发使用
SGL_Url default 继承Net_URL,提供URI相关方法,使用分析策略
SGL_HTTP default 提供包括重定向的HTTP功能
SGL_Session default Session管理类,大部分方法是静态方法
SGL_String default 各种字符串操作的函数
SGL_Array default 数组操作函数
SGL_Date default 提供日期格式化函数
SGL_Inflector default 执行资源名称的转换,如URIs,类,方法,变量
SGL_Delegator default 用来组合对象的PHP 4/5 兼容类
SGL_Util default 一些常用方法
SGL_Category requirable 封装SGL_NestedSet,用来操作Categories
SGL_Emailer requirable 封装PEAR::Mail, 用来发送HTML emails
SGL_TaskRunner requirable 创建并运行一个任务列表
SGL_NestedSet requirable PEAR DB_NestedSet 的轻量级封装,DB_NestedSet的许多方法
SGL_Download requirable 封装PEAR HTTP/Download 类以解决这个类的某些限制
SGL_Item requirable 封装内容对象
SGL_Sql requirable 提供SQL schema和data解析执行函数
SGL_Install requirable 提供安装过程所需的各类函数

过滤器

所有过滤器都是可选择的,可配置的,而且可根据需要排序。

下面的任务实现了Intercepting Filter模式,每一个过滤器继承了SGL_DecorateProcess并对Request对象进行过滤。

Class name Availability Group Description
SGL_Process_Init default pre-process
SGL_Process_AuthenticateRequest default pre-process
SGL_Process_BuildHeaders default pre-process
SGL_Process_CreateSession default pre-process
SGL_Process_DetectBlackListing default pre-process
SGL_Process_DetectDebug default pre-process
SGL_Process_DiscoverClientOs default pre-process
SGL_Process_ResolveManager default pre-process
SGL_Process_SetupLangSupport default pre-process
SGL_Process_SetupLocale default pre-process
SGL_Process_SetupPerms default pre-process
SGL_MainProcess default main process
SGL_PostProcess default post-process
SGL_Process_SetupNavigation default post-process
SGL_Process_SetupBlocks default post-process
SGL_Process_SetupWysiwyg default post-process
SGL_Process_GetPerformanceInfo default post-process

下面的安装任务是简单的任务组,这些任务可以带一些参数,如$data。每一个必须继承SGL_Task或它的一个子类。

Tasks

Class nameAvailabilityGroup
SGL_EnvSummaryTaskdefaultinstall
SGL_Task_GetFilesystemInfodefaultinstall
SGL_Task_GetLoadedModulesdefaultinstall
SGL_Task_GetPearInfodefaultinstall
SGL_Task_GetPhpEnvdefaultinstall
SGL_Task_GetPhpIniValuesdefaultinstall
SGL_Task_SetupPathsdefaultinstall
SGL_Task_SetupConstantsdefaultinstall
SGL_Task_SetBaseUrldefaultinstall
SGL_Task_CreateConfigdefaultinstall
SGL_UpdateHtmlTaskdefaultinstall
SGL_Task_CreateTablesdefaultinstall
SGL_Task_LoadDefaultDatadefaultinstall
SGL_Task_CreateConstraintsdefaultinstall
SGL_Task_VerifyDbSetupdefaultinstall
SGL_Task_CreateFileSystemdefaultinstall
SGL_Task_CreateDataObjectEntitiesdefaultinstall
SGL_Task_SyncSequencesdefaultinstall
SGL_Task_CreateAdminUserdefaultinstall
SGL_Task_InstallerCleanupdefaultinstall

接口与抽象类

  • SGL_Manager
  • SGL_Observer
  • SGL_Observable
  • SGL_View
  • SGL_Task
  • SGL_OutputRendererStrategy
  • SGL_ProcessRequest
  • SGL_DecorateProcess
 
concepts/corelibs.txt · 最后更改: 2007/05/18 17:48 (外部编辑)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2