If you are going to build a Web based business application in PHP, you may find stuck yourself with the common PHP frameworks. They are great for building Web based applications in general like dynamic Web sites, but they serve a too generic market and are not always focused to the specific needs of business applications such as the administrative ones.
Innomatic is an open source, mature and easy to use distributed PHP 5 Web applications container, particularly oriented towards business and administrative applications such as CRM, CMS, Web based frontends for legacy applications (eg. AS/400 ones) and so on.
Today we announce the general availability of Innomatic 5.0, ready to be downloaded and deployed. Innomatic is distributed with the new BSD license, making it a perfect base for developing and, if you are a Software House, distributing and selling your Web based applications, also thanks to the AppCentral feature and marketplace.
The iConnect Architecture, my current main open source project in PHP, is a collection of standards, specifications and open source components for developing multitier enterprise applications using the PHP 5 language.
iConnect is similar in many ways to J2EE architecture and provides a base framework, a complete set of services and handles many common details of application behavior for simplifying development of enterprise applications.
Most PHP platforms are monolithic and are focused towards the CMS domain of requirements. iConnect is a complete service oriented architecture for middle-tier/front-tier distributed enterprise applications under a condition of increasing load (that is to say the Internet).
Rephlux is another interesting PHP based tool I’d like to port to iConnect. It is useful for running a continuous testing/build process on projects and taking action based on the outcome of the tests.
I’d like to report here what I think about templating system in PHP. Some time ago I read a proposal in the Community process forum at Carthag’s site about porting some external template engine in Carthag. The proposal seemed ok to me. Anyway, as said there, we already have the best (IMHO) templating language available: PHP itself.
I think that most of the authors who write a template framework miss this point, and produce some big, slow leviathan like Smarty has become. I include myself to the ones who missed the point, and then realized that PHP itself is a templating system.
Please have a look at carthag.template.Template interface in Carthag platform. And also have a look at the carthag.template.engines subpackage, there is the PhpTemplate class. I think, even without benchmarks, that this is (one of) the fastest and at the same time most powerful template engine available in the PHP world.
iConnect Portal Server uses it, and produces pages very fast (Solarix site seems very fast to me), while my old Magellan CMS had a powerful but slow template engine.
Today I released a major refactoring of the Ampoliros platform for building multi tenant web applications in PHP with a new desktop theme.
Change log for this release:
4000 4.0 - 2004/07/15 - "Major refactoring" --------------------- NEW FEATURES: - Added new "amp4000" theme. - Added new "big" hui icons category. - Added 494 new icons in "big" category. - Added new Ampoliros class. - Added unit tests. - Added huixml_cdata() (HuiXml) in place of urlencode() method. CHANGES: - Changed Ampoliros generation to 4000. - Now Ampoliros is based on the Carthag platform. - Updated Crystal icons to SVG release. Added 584 more new icons. - Moved Semaphore class (semaphores.library) to process.Semaphore. - Moved Clipboard class (clipboard.library) to datatransfer.Clipboard. - Moved CachedItem class (cache.library) to datatransfer.cache.CachedItem. - Moved CacheGarbageCollector (cache.library) to datatransfer.cache.CacheGarbageCollector. - Moved hui.library classes to hui.*. - Moved huithemes.library classes to hui.theme.*. - All code is now under a declare() statement. - Added pcntl and posix as suggested extensions. - Changed "Ampoliros Web Applications Platform" title to "Ampoliros Application Server". - Moved maintenance.library classes to maintenance.*. - Moved Hook class (hooks.library) to util.Hooks. - Renamed AmpolirosSecurityHandler() class to SecurityLayer() and moved it to security.SecurityLayer. - Moved archives.library classes to Carthag platform. - Moved debug.library classes to debug.* and renamed AmpDebugger() class to Debugger(). - Moved xmlrpc.library classes to webservices.xmlrpc.*. - Removed unused system.library. - Moved sites.library classes to site.*. - Moved users.library classes to site.user.*. - Moved logger.library classes to io.log.*. - Moved dblayer libraries classes to db.*. - Moved locale.library classes to locale.*. - Moved old unused stuff to ampcompatibility package. - Now at least PHP 5 is required. - Updated copyright notes date. - Moved XMLParser class (xml.library) to xml.XMLParser. - Applied minor changes for PHP 5 compatibility. - Moved modules.library and modulesbase.library classes to module.*. - Strongly refactored maintaining compatibility. - Changed handling of /ampcgi/ alias during setup. - Renamed ModuleElementTypes class to module.ModuleElementFactory. - Moved soap.library to ampcompatibility. - Updated some stuff in extras directory. - Changed "module" term in "application". - Renamed root/modules.php to root/applications.php. - Moved HelpNode class to help.HelpNode. - Moved AmpConfig class to core.AmpConfig. - Lot of optimizations in Hui and Hui widgets. - Hui validators are now called once even if there are more dispatchers. - Moved root initialization code to Ampoliros::startRoot(). - Moved site initialization code to Ampoliros::startSite(). - Moved maintenance run script code to Ampoliros::startMaintenance(). - Moved ampconfig.php code to ampoliros.php. - Removed amp3000 Hui theme. - Removed CACHE_PATH define. FIXES: - Fixed "frame" attribute in toolbar widget when set to false. - Fixed wrong size limit in username length in users table. - Unlock script (/ampcgi/unlock.php) is no more recorded as last root page opened. - Fixed wrong parameters to Permissions class in adminpage.handler and admingroup.handler.
I’ve launched Caladan, an open source webapp handler for the IxAS application server, providing a MVC (Model View Controller) framework to the IxAS application server. It is a component of Solarix iConnect Frameworks.
Being distributed with the Mozilla Public license, Caladan is free to use and distribute.
Caladan’s main purpose is to offer a Model View Controller (MVC) system for IxAS web applications, with a central configuration file for controlling the behaviour of the whole site.
- Uses Carthag applications platform
- Entirely OOP
- MVC system
- XML based configuration file
- XML configuration is cached
Caladan is covered by the Mozilla Public License.
You can download Caladan from the Carthag Projects download page.
I’ve released most of the components of PHP 5 iConnect architecture, based on my PHP 5 Carthag platform.
This architecture is similar in many ways to J2EE and offers: a platform, an enterprise application server (like EJB), a web application server (like Tomcat) and a portal server. Its runtime is based on PHP 5 and Apache.
Here is a better description of the iConnect architecture.
Here you can download iConnect containers and components.
Today I’ve released the first public versione of iConnect Web Application Server (WAS), a Carthag based application server in PHP. In particular, WAS is the Web Application Server component.
iConnect Web Application Server is covered by the Mozilla Public License.
You can download iConnect Web Application Server from the Carthag Projects download page.