| « previous1|2|3 |
We're following the usual even-stable/odd-development release cycle, so here are the latest 0.4.7 and 0.5.3 releases respectively. The 0.5.x stream is where all the effort is being focused, new features include:
This release is currently only implemented for MySQL so please wait until the DB maintainers catch up if you're using another database. And PHP < 4.4.x, that will change shortly as new ZDE is finally out. And please be patient with the rough look & feel, html whizzes where are you?
The stable 0.4.7 release is just PEAR updates in response to recent security issues and a fix for the annoying Thunderbird RSS reader bug that duplicates any story that has an & in the permalink. Thanks to this fix I would like to invite folks interested in keeping up with the Seagull project to subscribe to our RSS feed, so I don't have to burden Planet-php with project posts :-).
[Continue reading "Seagull 0.4.7 and 0.5.3 Released"]
Ok, I think we've got them all covered now ;-) Be sure to check out the latest Seagull article, this time in PHP|Architect. I guess we can't get much more PHP press than that, will be interesting to see if all these articles increase the downloads, stay posted. Here's the resume from PHP|Architect:
Most developers aspire to create sites quickly, by concentrating on application-specific code and leaving the repetitive tasks to a code library or framework. In this piece (the first of a two-part series), authors Werner M. Krauss and William Zeller give an introduction Seagull, with a step-by-step guide for setting up an example website. Two to three years of PHP experience and familiarity with Object Oriented programming is recommended.
"Two to three years"? That's going to rule out a lot of PHPers, I think I recommended one or two, however recently have seen cases where chaps have <1 year of programming experience of any sort and still manage very well.
[Continue reading "Seagull Reviewed in PHP | Architect"]
All project management and source code tracking is now handled by Trac, so please use this site for requesting features, reporting bugs and tracking development progress. Editing content requires a login which you can get by registering with the Seagull site. Users who registered before 24/10/05 please login and update your password, this will propagate your details to the Trac install.
The great news is if Sourceforge was starting to drive you crazy, and you noticed as did I that every day it was getting progressively slower - well worry no more! All 'trackers' have been moved faithfully to Trac thanks to the diligent efforts of Riccardo, AJ and myself. From now on we will only use SF for file releases.
[Continue reading "We've Moved to Trac"]
Thanks to AJ who sorted out Gully the bot to log #seagull chats. You can view the transcripts here. For details on how to use IRC see here.
[Continue reading "Seagull IRC Logs Available"]
Thanks to Damien Seguy who publishes Direction | PHP and William Zeller and Werner Krauss who wrote the article - download a copy now [French].
[Continue reading "Seagull Reviewed in Direction | PHP"]
There were some rather serious bugs in the 0.5.1 installer that made a successful installation impossible unless you used the default values, ie: username:root, password:, database:seagull
This problem is resolved with a few small changes in 0.5.2, released today.
You can also check out our new Trac installation that fully integrated with with our updated svn repo, thanks to Mike Wattier for making this possible.
[Continue reading "Seagull 0.5.2 Released"]
Like many projects, we're running two streams of releases, stable and devel. The development release includes the test runner and all unit and web tests, as well as developer docs which include Poseidon UML diagrams, etc. It's recommended for folks who are interested in how the code works, though for browser based users there is little visible difference to the last stable release - download here.
The release focuses on improving code internals and has been about 1 month's worth of refactoring geared towards improving the loose coupling and high cohesion of framework components.
Improvements include:
[Continue reading "Seagull 0.5.1 Released"]
While we're on the subject of useful refactorings, I'd like to describe how using an Intercepting Filter helped round up and modularise software setup and initialisation tasks. Before the code could get down to business with the framework's main task, the SGL_MainProcess, (eg booking a hotel room or editing an FAQ, whatever), a certain amount of setup was necessary.
In the previous version, a number of initialisation tasks were assigned to a single init() method in the AppController, then executed procedurally. The disadvantage of this approach was that the tasks were not testable, they were difficult to reorder, and it was prohibitive to insert custom routines into the pipeline.
Enter the Intercepting Filter, which is basically a chain of decorators. The idea is that you have your main process, then you decorate it with n filters or tasks required to get your system correctly initialised beforehand. The code makes the example clearer:
class SGL_AppController
{
function run()
{
$input = &SGL_RequestRegistry::singleton();
$input->setRequest($req = SGL_Request::singleton());
$process = new SGL_Init(
new SGL_DiscoverClientOs(
new SGL_ManagerResolver(
new SGL_InitSession(
new SGL_InitLangSupport(
new SGL_InitPerms(
new SGL_AuthenticateRequest(
new SGL_BuildHeaders(
new SGL_SetLocale(
new SGL_DetectDebug(
new SGL_DetectBlackListing(
new SGL_MainProcess()
)))))))))));
$process->process($input);
}
}
From Matt Zandstra's book:
The model is very extensible. We can add new decorators and components very easily. With lots of decorators we can build very flexible structures at runtime. The component class [in our case SGL_MainProcess] can be significantly modified in very many ways without the need to build the totality of the modifications into the class hierarchy.
Here's the UML:
[Continue reading "Modularising Workflow with an Intercepting Filter"]
An interesting design problem became apparent when a number of folks from the seagull ML recently complained about the lack of support for web clients other than standard browsers. Because the code enforces reasonable segregation between the domain modelling and the html views, I always presumed it would be trivial to implement, ie, an xml renderer instead of the current Flexy to handle WML output. Two problems needed to be solved:
In short, the process was quite tied to producing HTML-only output, clearly n blocks and involved navigation were unsuitable for PDA output.
I identified two main refactorings necessary to decouple the view production from the output type and specific renderer used, thereby opening the door to running customised post-process tasks based on the current rendering strategy.
To allow an arbitrary renderer to be specified at runtime I chose to compose the View object with a OutputRendererStrategy. This means if you're happy with Flexy you can use the standard renderer supplied with the package, and if you can't bear the thought of working without Smarty, it'd be a piece of cake to write a SmartyOutputRenderStrategy following the Flexy example. The code would look something like this:
// build view
$view = new SGL_HtmlView($output, new SGL_HtmlFlexyRendererStrategy());
echo $view->render();
where the $output object is just a php data structure free of any presentation information. The next problem was more interesting, how does producing output for portable devices change the appliation requirements. The basic data structure sent to the view is similar, but the following main differences are evident:
[Continue reading "Implementing an Output Renderer Strategy"]
The Seagull Sourceforge project site has been rearranged to simplify releases. From now on there will be two tracks of releases, simply:
and for good measure an 'old releases' section where all the previous releases have been filed. Stable will include a PEAR-installable version of the code, whereas development will just be the source and API docs. The PEAR version of 0.4.6 was added today as was the 0.5.0 devel release.
Because the sections have changed anyone previously subscribing to release alerts will now need to re-subscribe, or better yet, when the current RSS implementation is fixed, just subscribe to the Seagull feed.
[Continue reading "Seagull SF Project Site Rearranged"]
The Seagull project has been fortunate enough to have a detailed tutorial on its usage published in PHP Solutions magazine in 5 languages.
Congratulations to Werner M. Krauss for putting the article together and liaising with the publisher, and many thanks to PHP Solutions for allowing us to distribute the free PDF versions of the article from this site. PHP Solutions magazine is available all over Europe (except the UK) from your favourite magazine store or from their website. One can also buy the magazine, the current issue is titled Framework vs. CMS and also includes great articles about other frameworks like PRADO and CMSs like eZ publish and includes some free books on their CD, eg, PHP5 Power Programming.
The Seagull article, which covers all the basics of the framework, is available in English, French, German, Italian and Polish.
[Continue reading "Seagull Reviewed in PHP Solutions Magazine"]
156 commits and almost a month later, version 0.4.6 of Seagull is now available for download. It's been a productive month, partly because I quit my job to work on this project fulltime, but also because an even greater volume of patches and new features is being sent in than usual. That could be partly due to the recently improved search ranking.
This release includes a generous helping of bugfixes :
[Continue reading "Seagull 0.4.6 Released"]
[Continue reading "Framework Features"]
For the search term "php framework" - or see the screenshot here.
[Continue reading "Seagull Gets Top Results in Google"]
I'd like to thank the following people for helping bring this site together:
One of the leading PHP publications, International PHP Magazine, has a roundup of PHP frameworks by Elizabeth Naramore in its latest issue. I'm happy to say that Seagull got a glowing review, and out of the 5 projects examined, including PRADO, Cake, Mojavi and php.MVC, Seagull got the highest rating - something like 4 3/4 stars out of 5 - way to go!
Unfortunately it appears PHP Magazine does not provide PDF downloads of individual issues like all the other mags, so you'll have to physically walk over to the newsagent if you want the full story.
Looking forward to the next Seagull release which was made fully PHP 5.1 compliant yesterday in svn, a move that unfortunately required modifying 4 or 5 PEAR libs which are not moving anytime quickly toward being 5.1 compliant themselves.
[Continue reading "Seagull Reviewed in PHP Magazine"]
After many delays it has finally been possible to redo the Seagull site using Seagull, so the "eat your own *food" naysayers can find something else to complain about ;-). Things are not totally finished yet, but the idea is to move towards a more structured layout and consolidate backends (SF, wiki, homepage), and to appeal to developers and non-technical users alike.
At the same time I'd like to announce version 0.4.5 has been released and is ready for consumption. It's been just over a month since the last release and a lot has happened. As well as some important bugfixes:
and some new improvements:
[Continue reading "Seagull Eats its own Birdfood"]
![]() article browser |
![]() category manager |
![]() role manager |
![]() inbox read message |
![]() article list |
[Continue reading "Screenshots"]
The project wiki is the best source of documentation for Seagull. There are currently 414 pages of tutorials, tips and user-contributed notes available. We are in the process of improving things and
Seagull was put together with the developer in mind, but to a certain extent it can also be used "out of the box" by non-technical users.
The wiki is the best source for developer information, but for starters you can take a look at
The following diagrams give an overview of Seagull design:
[Continue reading "Developers"]
There are a number of versions of Seagull available for download, pick the one that best suits your needs. Following the links will take you to a SourceForge mirrors page, simply choose the geographically nearest location to where you are to be taken to the appropriate mirror. Detailed install instructions are available at the wiki.
You'll want a release from the stable branch if you're using the framework for customer sites or are in a similar situation where reliability and stability are important.
This is primarily a bugfix release, some important flaws were fixed, including two updates from the PEAR community for problems discovered in the XML-RPC library - all users are recommended to upgrade.
There are no schema/SQL data modifications from the previous release, however there were some changes to the CSS so you'll want to use the latest style.php file.
Get the latest version here.
[Continue reading "Seagull 0.4.4 Released"]
Seagull 0.4.3, just out, is mainly a bugfix release with a few important new features:
[Continue reading "Seagull 0.4.3 Released"]
After more than a month in development, a new Seagull release is out. It is recommended you upgrade, a lot of annoying bugs have been fixed, not to mention a few new features added:
[Continue reading "Seagull 0.4.1 Released"]
Thanks to Henry Juan and his team, the Seagull docs are now available in Chinese!
[Continue reading "Seagull Docs Available in Chinese"]
Finally a stable 0.4 release! Highlights in this iteration:
This basically marks the end of all the front controller work which has been extensive, and now makes way for some of the other higher priority stuff: separating out a core Seagull, making modules installable the PEAR package mgr's 1.4 release, improving i18n support and hopefully moving translations to the DB to allow for truly multilingual support.
[Continue reading "Seagull 0.4.0 Released"]
At last there is a new release of the Seagull framework project out. Despite the fact the previous release was 2 months ago, a mountain of work has gone into the codebase and there are many new features to try out.
Be forewarned, this release is not for your live servers, hence the 'dev' suffix, however the sooner people can test it out, report bugs and hopefully send in patches - the better :-) There is a list of known issues, some of which have been fixed in CVS, the idea is that a subsequent release will follow shortly with the major bugs fixed.
The main new feature of this release is the implementation of a front controller (many thanks to AJ Tarachanowicz who helped extensively here) which permits the use of search engine friendly urls. As a results, all the previous 'start files' in the webroot have been removed. As well, some considerable refactoring of the core classes has been undertaken, judge for yourself, or browse the files in our new Chora cvs viewer.
Other features of note:
[Continue reading "Seagull 0.4.0dev2 Released"]
If you need to run directory listings through various filters and transforms, File_Util::listDir is your friend, especially with the recently added callback final arg.
Check out recent Seagull code updates to see the flexibility of the current approach, we need to consolidate all Seagull directory methods in order for next step of front controller to be implemented.
getAllNavDrivers() is the first converted method, it makes use of callbacks, lambda fns and pass-by-ref to update filtered dir listings.
[Continue reading "Filtering and Modifying Directory Listings with File::Util"]
Thanks to Rares for this new Flexy plugins tutorial, check it out here and take advantage of this powerful aspect of the Flexy templating system.
[Continue reading "HTML_Template_Flexy plugins tutorial"]
| « previous1|2|3 |
Make money with Seagull and claim your bounty.
Open
The Seagull project is sponsored by Seagull Systems, see the range of products and services offered.