Table of Contents
Seagull PHP Framework Documentation
Using This Site
Trac software is what we using for managing the project tickets and wiki. Editing content and submission of [New Tickets] optionally requires a login which you can get by registering with the Seagull site. This is highly recommended so you can get feedback on how your tickets are progressing.
IMPORTANT: Please customise your settings adding your email address, this will allow you to be notified of any changes to your tickets.
Seagull documentation in [Chinese]
Seagull 1.0.4 (stable)
A PHP5 only and latest stable released version of Seagull which is also available in the trunk. It is fully backwards compatible with the 0.6-bugfix branch.
- Source
- Overview Docs
- The wiki will be updated accordingly. Currently the links below refer to documentation for the version 1.x of the project.
Seagull 2.0 (experimental)
A new, experimental version of Seagull with major changes according to the latest technologies which is in progress. It is currently incomplete and not fully working. Check it out on github.
Seagull 0.6.x (older version)
This version has been in production for more than 6 years, is widely deployed and is compatible with PHP versions 4.3 to 5.3.x .
- Source
General Overview
Why a framework might be of interest, the future of Seagull, License Information and Target Audience, News and Talks relating to Seagull.
- Seagull features
- Frameworks comparison
- In the news
- Project history
- Talks
- Target audience
- Why use a framework?
Community
Meet the community of developers, translators and maintainers, find out more about mailing list etiquette and see a list of sites powered by Seagull.
Installation
Where to download Seagull and how to install, Requirements, and Backwards Compatibility.
- Minimum requirements
- Download
- Installing Seagull
- Customising the installer
- How to checkout code from svn
- Setting up Apache virtual hosts
- Setting up mod_rewrite
- Installing on a Cpanel host
- Using the PEAR package manager
Main Concepts
Learn about the main concepts behind developing a project with Seagull.
HOWTO
The material in the HOWTO section goes into specific detail about various functionality available in Seagull.
- Howto/UsingConfigFiles Everything you need to know about working with app config
- Howto/Caching Working with caching
- Howto/HandlingErrors How to manage errors in your applications
- Howto/Logging How to log events
- Howto/DebuggingIdeas Some suggestions to aid in debugging
- Howto/DB Setting up support for Oracle, Postgres, MaxDB, using multiples DBs, etc.
- Howto/ManagingEntitiesWithDbDataObject Speed up development by using DB_DataObject
- Howto/WorkingWithUsers This is dealt with in the User module section, includes info on organisations
- Howto/RolesAndPermissions Information on how to setup authorisation constraints
- Howto/Internationalisation Information on i18n, setting up for RTL langs, translating modules
- Howto/WorkingWithWizards Tips on how to integrate wizards in your applications
- Howto/FileOperations Search for files on the file system and filter results with a few lines of code
- Howto/SendingEmails Some tips for simplifying emailing
- Howto/WorkingWithTheRequestObject Conventions for dealing with request data
- Howto/WorkingWithCliOrHttpRequests How to run Seagull in CLI mode
- Howto/InputValidation Always check your inputs
- Howto/UriManagement How input and output URIs are dealt with
- Howto/Routes Working with Horde_Routes
- Howto/HttpRedirects Redirecting the workflow
- Howto/PragmaticPatterns Using design patterns to increase productivity
- Howto/Blocks How to create and manage blocks in your appliation
- Howto/WorkingWithModules What you need to know about modules
- Howto/Navigation Using Seagull's navigation tools, categorising content, alternative menu builders
- Howto/WorkingWithImages Learn about Seagull's image manipulation capabilities
- User Interface
- Howto/JavaScript Working with Javascript, registering events in the templates, module-specific JS
- Howto/CSS Various tips on how to work with the CSS tools provided by Seagull
- Howto/JavaScriptAndCssImprovements Read this for latest CSS and Js conventions
- Howto/Templates Find out more about how to work with Flexy, creating custom functions, using alternative templating engines
- Howto/UI/WorkingWithTheAdminInterface Find out how to integrate your module backend managers within SGL Admin Interface
- Howto/UI/SetAdminGuiForOtherRoles Find out how to set adminGui for any other role
- Howto/AJAX Some tips on integrating AJAX effects into your projects
- Maintenance
- Howto/EnableMaintenanceMode Put your site/app in maintenance mode
- Howto/Upgrading Some notes helpful for upgrading from previous versions
- Howto/ApplicationMaintenance Tools to make building and maintaining your modules easier
- Howto/OptimisingPerformance Tips and tricks on how to get maximum performance
- Howto/OptimisingPerformance/Example A real world example
- Howto/Integration Seagull integrates seamlessly with a number of technologies, see this section for more info
Tutorials
Various Tutorials to assist you while learning Seagull.
- Writing code
- Just using a browser
Standards
All contributions are required to follow these standards and practices
- Standards
- Standards/AppropriateUseOfDesignPatterns List of docs regarding Design Patterns
- Standards/CodingStandards Seagull's Coding Standards
- Standards/CompositionVersusAggregation Composition versus Aggregation
- Standards/CorrectUseOfGetAndPost Correct Use of GET and POST
- Standards/DevelopmentProcess Suggestions For a Development Process
- Standards/HighlyCohesiveLooselyCoupledClasses Highly Cohesive and Loosely Coupled Classes
- Standards/OpenSourcePhilosophy Open Source Philosophy
- Standards/PhpBestPractices PHP Best Practices
- Standards/ReleaseCycle Release Cycle
- Standards/SoftwareBestPractices Best Practices for Software Development
- Standards/UnitTesting Unit Testing
- Standards/UnixPhilosophy Unix Philosophy
- Standards/VersionNaming Version Naming
Trouble Shooting
In this section you will find everything you need to get your Seagull installation working right, including FAQs and Tips and Tricks
Code
Information about Preformance, Directory Structure, Code Examples, Contributing Bug Fixes, Feature Enhancements, and Translations.
- Code About the Code
- Code/ApiDocs API Documentation
- Code/DirectoryStructure The Seagull Directory Structure
- Code/Performance About Seagulls Performance
- Code/SeagullHeader A typical header at the top of each source file
- Code/SubmittingPatches Want to share your code? Fine!
Additional Information
Some other useful areas are Internal, Environment and RFC
For a complete list of local wiki pages, see TitleIndex.
