FIXME: Look over new file...
{{ TableOfContents? numerate="1" }}
Introduction
The library classes used in the Seagull framework basically fall into the following groups:
- Workflow
- Utility
- Task
- PEAR
Developing with Seagull involves building modules that include 1 or more manager classes to implement business logic. Building managers is eased by using the above-listed library resources. For a typical project you will probably only ever use the Workflow, Utility and PEAR libs.
The following sections explain the library groupings and describe the basically functionality of each class.
Workflow Classes
The workflow classes are Controllers and template helpers, you won't need to modify these.
Class name | Availability | Methods | Description |
SGL_AppController | default | * run | The AppController is used to organise workflow for particular application types. You will probably use similar controllers for each application you build, although workflow can be easily customised. See the unit test controller versus the Seagull one for ideas on how to customise. |
SGL_Output | default | The SGL_Ouput class is known as a TemplateHelper? in other contexts, it wraps methods used by the template engine to transform the data into, eg, html. | |
SGL_Wizard | default | * validate * process * display * maintainState | The Wizard class is a specialisation of the Manager class, use it to create wizard workflows in your applications. |
Utility Classes
Utility classes are what you use in your managers to manipulate system, application and user resources. Availability refers to whether you need to include the class or not, anything labelled as 'default' is available within the application scope, like default classes in, eg, java.lang. 'Requirable' libs need to be included.
Class name | Availability | Methods | Description |
SGL | default | Provides a set of static utility methods used by most modules | |
SGL_Request | default | Wraps all $_GET $_POST $_FILES arrays into a Request object, provides a number of filtering methods | |
SGL_Config | default | Config file parsing and handling, acts as a registry for config data | |
SGL_Registry | default | Generic data storage object, referred to as $input. Holds references to Url, current Request and Config singletons | |
SGL_DB | default | Mostly used as a DB resource singleton, also provides dsn building method | |
SGL_Url | default | Provides url related functionality, derived from Net_URL and uses a parser strategy | |
SGL_HTTP | default | Provides HTTP functionality including redirects | |
SGL_HTTP_Session | default | Handles session management, most methods are static | |
SGL_String | default | Various string helper methods | |
SGL_Date | default | Provides various date formatting methods | |
SGL_Array | default | Provides array manipulation methods | |
SGL_Inflector | default | Performs transformations on resource names, ie, urls, classes, methods, variables | |
SGL_Delegator | default | PHP 4/5 compatible class for aggregating objects | |
SGL_Util | default | Various utility methods | |
SGL_Category | requirable | Wrapper to SGL_NestedSet, used to manipulate Categories | |
SGL_Emailer | requirable | Utility class that wraps PEAR::Mail, provides convenience methods for sending HTML emails | |
SGL_TaskRunner | requirable | Used for building and running a task list | |
SGL_NestedSet | requirable | A lightweight wrapper to PEAR DB_NestedSet that bypasses DB_NestedSet for most methods | |
SGL_Download | requirable | Wrapper around PEAR HTTP/Download class to workaround some limits of that class | |
SGL_Item | requirable | Acts as a wrapped for content objects | |
SGL_Sql | requirable | Provides SQL schema and data parsing/executing methods | |
SGL_Install | requirable | Provides various static methods required for install routine |
Tasks
All tasks are optional, configurable, and can be ordered according to need.
The process tasks below implement the Intercepting Filter pattern, each filter must extend SGL_DecorateProcess and acts as a filter pass on the Request object.
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 |
The install tasks below are simple units of work that can optionally take an argument, ie $data. Each must extend SGL_Task or a specialisation of it.
Class name | Availability | Group | Description |
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 |
Interfaces and Abstract Classes
- SGL_Manager
- SGL_Observer
- SGL_Observable
- SGL_View
- SGL_Task
- SGL_OutputRendererStrategy
- SGL_ProcessRequest
- SGL_DecorateProcess