Smarty

Se encuentra bajo la Licencia Pública General Reducida de GNU.

Es común que en grandes proyectos el rol de diseñador gráfico y el de programador sean cubiertos por personas distintas, sin embargo la programación en PHP tiene la tendencia de combinar estas dos labores en una persona y dentro del mismo código, lo que trae consigo grandes dificultades a la hora de cambiar alguna parte del diseño de la página, pues se tiene que escarbar entre los scripts para modificar la presentación del contenido, Smarty tiene como objetivo solucionar este problema.

También hay detractores de estas técnicas que alegan que las mismas hacen en cierta medida un grado más complejo el desarrollo web, por la necesidad de aprender un (pseudo) lenguaje más.

Los detractores de esta idea se basan en el hecho de que, precisamente, el lenguaje PHP nació como un lenguaje rápido para hacer desarrollos web a pequeña escala.

A medida van surgiendo sistemas de separación en capas que intentan disciplinar un poco las metodologías de programación envueltas en el desarrollo con PHP, pero que no hacen otra cosa que acercarse más y más a otras herramientas ya existentes en otros entornos de desarrollo más complejos y pensados desde sus orígenes para proyectos más grandes, como pueden ser J2EE (Java), .NET (C#) o Django (Python).