LampCMS open source XSLT based content management

The first open source CMS that uses browser based XSLT transformation

LampCMS technical stuff
Sat Aug 15 2009
LampCMS makes extensive use of SPL

We use PDO class for database access, and use ONLY prepared statements for all inserts and updates of tables. This adds a tremendous amount of protection against an sql injection and also eliminates the need to use the 'old school' addslashes()

We use proven OOP programming 'good practices' and make use of the most common programming patterns like Singleton method, factory method, good sub-classing design and composite objects.

Custom exception, type hinting, interfaces, iterators you will find them all in our CMS. So if you ever wanted to learn these concepts, then developing with and for Lampcms will definitely improve your programming skills.

We use built-in php input filtering all input data goes through filters first, so only clean data reaches our scripts. This also eliminates the need to run the old-school htmlentities() on submitted data.

We use php's SimpleXML class to build the output, as well as DOM class in some cases where SimpleXML just can't handle it. This insures that the output generated by our engine is always 100% valid XML!

As a templating engine we chose to use XSLT, making use of php's libxstl extension.
After trying several templating engines like smarty and HTML_Template_Sigma
and even writing my own templating engine HTML_Template_Sigma3 (better OOP rewrite of Sigma),
I just was not satisfied with the speed and amount of functions calls a templating engine
usually has to make in order to assemble a fairly large web page with large amount of replacements.
 XSTL is a surprisingly fast templating engine and the fact that it can be used for both browser based
or server based transformation makes it a clear choice for me.
Sure, there is a learning curve for someone who has never used XST templates before,
but there is a learning curve to any templating engine, be it a popular Smarty or Flexy
or any other templating engine.

At least XSL is a standard, so once you learn to use it, you can use it with any other programming language in the future.