Studs MVC Framework+ contains a port of Apache's Jakarta Struts to PHP, though the libraries included in the rest of the project are much more vast. In order to implement the Struts port, it was necessary to build a core, object-oriented API in the style of the JDK and the Jakarta Commons, a servlet container to handle HTTP requests and to invoke servlet classes, and finally, a parsing engine for JSP-style template pages. In the end, the result is an environment which is very similar to that provided by a J2EE Web Container, only everything is implemented in PHP. While it was possible to carry over many of the concepts, designs and mechanisms from J2EE, some limitations do exist due to the nature of the PHP programming language, such as the lack of checked exceptions (runtime only).
SPindent (Server Page Indenter) is a JSP/PHP structural validator and indenter. It performs structural compatibility check of inner HTML generated from "parallel" branches of process flow statements such as if/else. It allows for those HTML branches to have different entry and exit HTML stack points, as far as the branches are compatible. This allows for verification and proper indentation of handy workarounds, as well as rusty pyramids. It is based on MixedCC (Mixed Compiler Compiler).
Cypress is an open-source Cascading Style Sheet (CSS) parser that lets you add well-documented, standardized name/value pairs (a.k.a. CSS style properties) to your own XML markup languages. It supports inline styles so you can add style properties to individual XML tags using the style attribute or external style sheets so that you can store style rules for reuse in separate, XML-free text documents. Cypress supports three forms of selectors to match your XML tags and style rules, that is, element selectors, class selectors, and id selectors.