iConnect: One Front End, One Vision

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).

Continue reading iConnect: One Front End, One Vision

Porting Creole to Carthag

I decided to merge a large portion of LGPL licensed Creole‘s code inside Carthag, in order to enrich the DataAccess system in carthag.db package while maintaining compatibility. The porting has already been started.

I decided so because the current implementation of DataAccess is lacking some useful functions like id generation, a more robust approach, more drivers and also because Creole is PHP 5 native and built using design patterns.

Moving offices

Hello all, first of all I have to say Happy New Year to all!

These days I’m quite busy while moving Solarix offices to a new, better and bigger building, and I can connect from my house only. So please accept my apologies in anticipation if I’ll reply late to your emails or if I’ll be slow at updating the site and the Carthag/iConnect community forums.

Anyway, development is still going on, and I have many new ideas for the iConnect architecture and other components, like a component based deployer/task execution (something like the old Ampoliros modular system and in part like the Apache Ant project).

Templating system in PHP

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.

New naming for iConnect containers and applications

I’ve just renamed the iConnect containers and applications:

So the naming is now simpler and more coherent.

Ampoliros 4000 4.0 major refactoring released

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"
- 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.

- 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
- 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
- Strongly refactored maintaining compatibility.
- Changed handling of /ampcgi/ alias during setup.
- Renamed ModuleElementTypes class to
- 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.

- 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