====== The Next Ismo ====== A **descriptive** framework based on a very broad meaning of the word document and the ability to create a backbone for each web project on which to hang any number of web applications. Ismo 0.1.4 was released on June 14, 2004 and has some striking similarities to the [[http://djangoproject.org|Django Project]]. Django builds a rapid application environment that builds on descriptions and overridable convention rather than brute-force coding. The primary things Ismo will need to continue its heritage and to become the an even more descriptive PHP framework are these: * database model system - model in code first and generate the database * URL routing system - beyond the basic url-to-object mapping (which currently exists) * more developers - and if you've made it this far, there's hope. :) ====== The Ismo PHP Framework ====== {{:ismo:ismo_logo.png |:ismo:ismo_logo.png}} Ismo is an application framework written in PHP for PHP. It features industry accepted design solutions such as MVC (model-view-controller separation) yet remains easy and straightforward to use. More information on the way. For now check out the [[http://ismo.sourceforge.net/|Ismo's SourceForge site]]. ===== Future Plans ===== Ismo is in a new stage of planning and design. The next phase will be focused on continueing Joakim's code base and adding features to make Ismo the most flexible PHP framework we can. Some defining elements of this new phase will be: * [[URL management]]/mapping * [[Simplest route to output]] possible * Store and access information in and from its [[NativeFormData|native form]] where ever possible [[phpWorks2008 Thoughts]] ===== The Ismo Manual ===== * [[docs:Installation]] * [[docs:Getting Started]] * [[docs:File Loaders]] * [[docs:Action Invocation System]] ===== Ideas ===== Ismo is still in the planning stages. Please feel free to submit your ideas below: * [[ideas:REST focus]] * [[ideas:Perspectives]] * [[ideas:Modules]] * [[ideas:Internal URI's]] - hat tip to the Aukyla PHP for trying this first * [[ideas:Document Objects]] * [[http://www.sitepoint.com/blogs/2005/12/22/mvc-and-web-apps-oil-and-water/|Move away from MVC?]] === MVC Framework ideas from around the web: === * [[http://www.groovie.org/articles/2005/09/30/best-of-breed-controllers-for-mvc-web-frameworks|Best of Breed Controllers]] * [[http://www.auton.nl/software/en/doxygen/index.html|Aukyla PHP Framework]] - some interesting ideas hidden in this Framework. The best of which include local URI's and OpenDocument file handling. It's under a combined GPL/Commercial license. * [[http://www.cakephp.org/|CakePHP]] - probably the closest thing out there to Ismo. It's got a good license (MIT), but lacks much of quality of code that is present in the current Ismo release. * [[http://seagullproject.org/|Seagull PHP Framework]] - BSD Licensed PHP4/5 framework * [[https://fosswiki.liip.ch/display/OKAPI/Home|Okapi REST framework]] - Apache Foundation License 2, PHP 5 framework with a REST architectural style focus ===== A mini-Roadmap ===== * recreate [[http://routes.groovie.org/|Python Routes]] for URL to Object mapping use [[http://dev.horde.org/routes/manual/restful-services.html|Horde Routes]] - BSD licensed I am currently writing such a thing for inclusion in PEAR. I am not sure it will get in though since it might look to much framework oriented, but it could make a very interesting addition to PEAR in my opinion. It's based on Rails' Route syntax, but it might differ a bit. I will probably use a lexer. --- //[[golgote@mamasam.com|Bertrand Mansion]] 2006/07/20 12:17// * use as much [[http://pear.php.net/|PEAR]] as possible * incorporate [[http://pear.php.net/package/Event_Dispatcher|Event_Dispatcher]]: extend as [[Ismo_Event_Dispatcher]] * incorporate [[http://pear.php.net/package/DB_DataObject|DB_DataObject]]: extend as [[Ismo_DBO]] * use [[http://pear.php.net/package/DB_DataObject|MDB2]] as the abstraction layer * possibly even avoid DB_DataObject and hook righ into MDB2...maybe * move Ismo to PHP 5 removing the need for less aesthetic OOP methodologies needed for PHP 4 compatibility * eventually provide alternate PHP 6 implementation as well (in the future)