来源:http://trac.seagullproject.org/wiki/Concepts/CoreLibs
Seagull框架使用的类库基本上可以分为以下几组:
使用Seagull的开发涉及到创建模块,模块包含一个以上用来业务逻辑的的manager。使用模块生成器和上面列举的库资源,建立一个manager是很轻松的。;对于一个典型的项目来说,你可能只会用到Controllers, Core和PEAR libs。
以下部分解释了库的分组,描述了每个类的基本功能。这对高级开发人员来说是更有意思,初学者不要担心,因为默认的任务和过滤器是基本WEB应用研究所需要的。
controller类管理应用程序的工作流程,SGL提供了许多实例,自己写一个也是很容易的。
| Class name | Availability | Methods | Description |
| SGL_FrontController | default | * run | FrontController 用来组织特定应用程序的工作流程。你可能会为你所创建的每个应用程序使用类似的controller,尽管你可以非常容易的自定义工作流程。比较一下单元测试和Seagull来学习一下如何自定义。 |
| SGL_Manager | default | * validate * process * display * maintainState | Manager类是一个应用程序控制器,它设置了validate/process/display的工作流程 |
| SGL_Wizard | default | * validate * process * display * maintainState | Wizard类是Manager类的一特例,可以使用它在你的应用程序内创建向导工作流程。 |
内核类是你的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或它的一个子类。
| Class name | Availability | Group | |
| SGL_EnvSummaryTask | default | install | |
| SGL_Task_GetFilesystemInfo | default | install | |
| SGL_Task_GetLoadedModules | default | install | |
| SGL_Task_GetPearInfo | default | install | |
| SGL_Task_GetPhpEnv | default | install | |
| SGL_Task_GetPhpIniValues | default | install | |
| SGL_Task_SetupPaths | default | install | |
| SGL_Task_SetupConstants | default | install | |
| SGL_Task_SetBaseUrl | default | install | |
| SGL_Task_CreateConfig | default | install | |
| SGL_UpdateHtmlTask | default | install | |
| SGL_Task_CreateTables | default | install | |
| SGL_Task_LoadDefaultData | default | install | |
| SGL_Task_CreateConstraints | default | install | |
| SGL_Task_VerifyDbSetup | default | install | |
| SGL_Task_CreateFileSystem | default | install | |
| SGL_Task_CreateDataObjectEntities | default | install | |
| SGL_Task_SyncSequences | default | install | |
| SGL_Task_CreateAdminUser | default | install | |
| SGL_Task_InstallerCleanup | default | install | |