Seagull PHP Framework
Encyclopedia
Seagull PHP Framework (Seagull) is an OOP
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

 software framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

 for building web
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...

, command line and GUI applications. Seagull uses Model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

 design pattern. Many popular PHP applications are integrated within the project, as are various templating engines, PEAR libs, testing tools and managed library code.

Features

Seagull offers the following key features:
  • PHP 4/5 compatible
  • compact core framework with complete modules in package
  • Model-view-controller
    Model-view-controller
    Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

     pattern
  • performance conscious design
  • multiple input and output formats
  • integrated object-relational mapper for rapid application development
    Rapid application development
    Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

  • loosely coupled components, use template engine of your choice, output to multiple devices or CLI
  • caching
  • localization. Translated into more than 21 world languages.
  • integrated PEAR libraries

Modularity

Seagull is an OOP application with an emphasis on modularity. The framework itself consists of a set of base classes organised according to the MVC
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

 design pattern that take care of permissions, authentication, sessions, i/o and database abstraction layer
Database abstraction layer
A database abstraction layer is an application programming interface which unifies the communication between a computer application and databases such as SQL Server, DB2, MySQL, PostgreSQL, Oracle or SQLite...

. Each generalised area of functionality comes in the form of a module.

Most task-specific functionality comes from libraries, quite often from PEAR, that can be independently updated when upgrades/improvements are available

Each object in the application (Member, Group, Property, Document, Article, etc) is represented as an entity, developers are provided with tools to quickly prototype entities so that skeleton classes are created and updated automatically

Data Validation

All input data to the application is filtered and validated before any processing takes place. Filters appropriate to the input mechanism are invoked before subsequent validation tests are run. In the case of HTTP input, all request data is first stripped of javascript and leading/trailing whitespace.

Authentication and Authorisation

Seagull uses standard PHP sessions which propagate persistence of user data using cookies by default. Both database and file-based persistence are supported. The PHP engine automatically detects whether the client returns session cookies, if not the session is propagated in the URL. Anti session-hijacking measures are in place to ensure the user session can not be compromised.
Seagull works identically whether or not end users have cookies enabled in their browsers.
Any module in the application can be set to require authentication by setting the 'requiresAuth' flag to true on a per-screen basis. Once users are authenticated, fine grained permissions can be controlled by testing for role membership.

Quality Control

All contributor features and bugfixes are submitted as patches which are subject to peer review and if deemed valid, applied by the project maintainer.
A large part of the codebase is covered by unit and web tests.

Coding Standards

All the code in Seagull follows the consistent style set out in the coding standards document included in the root of each distribution. The standard follows PEAR coding standards very closely which is essentially a reiteration of the K & R guidelines from the original C Programming Language (1978)

Standards Compliant

Seagull supports XHTML 1.1, CSS 2.0, RSS 1.0, and 2.0, and conditional GET for caching RSS feeds on the client-side.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK