Revision history for 3.3

Version 3.3 of the Adventure PHP Frameworks (APF) is a huge milestone in the history of the framework. The code base is released for usage with PHP >=5.6.0.

Please note that version 3.3 of the APF requires at least PHP 5.6.

In addition to the release packages provided on the main APF site this release can also be installed as Composer package via For this reason, please add the following to your project configuration:

"require": { "apf/apf": "dev-master" }

Now, the APF can be installed and updated via Composer.

With version 3.3 templating has been improved even further. The <loop:template /> tag can now be used within a <cond:template /> tag and the comparison operators for conditional display have been extended by numeric comparisons and regular expressions. More details can be found under Extended template functionality.

New method HtmlFormTag::fillForm() simplifies form handling providing the opportunity to fill a given form with the content of an existing a DTO or model. Details can be taken from chapter Usage of forms.

In version 3.3, component mailSender marked as reprecated has been replaced with new e-mail distribution API. The object oriented interface of class Message eases creation and distribution of e-mail messages by far. Details can be taken from E-mail distribution.

Definition and validation of forms has been improved with issues ID#303 and ID#307. Form groups can now be added as a hidden element to templates and displayed as needed by controllers. Hidden fields are no longer considered with validation.

To ease migration to version 33 the APF team included migration scripts. It allows you to update your application automatically within minutes. Details can be found under Migration from 3.2 to 3.3.

The complete road map can be found within the Adventure PHP Framework Issue Management tool. Details on the tickets solved during release development can be found there.

1. Bug fixes

Release 3.3 fixes the following issues contained in version 3.2:

  • ID#306: GORM is vulnerable to SQL Injections.
  • ID#303: Application crashes with line breaks in tag definitions.
  • ID#305: Usage of method MySQLiHandler::executeTextBindStatement() leads to error (Call to undefined method mysqli_stmt::more_results() ).

Details can be taken from our Issue Management Tool.

2. New Features

Release 3.3 brings all new features listed below:

  • ID#301, ID#302, ID#304 und ID#308: Attribute condition used to control conditional display now supports numeric and regular expression comparisons. Further, the content of a <loop:template /> tag is directly displayed w/o controller interaction and can be used within <cond:template /> tags. More details can be taken from Extended template functionality.
  • ID#251: Component mailSender - marked as deprecated in release 3.0 - has been removed with this release. To send e-mails you may now use class Message. Details can be taken from chapter E-mail distribution.
  • ID#313: All occurrences of apc_*() have been replaced by apcu_*() to increase PHP 7 compatibility.
  • ID#307: Form validation now respects visibility of form controls.
  • ID#303: Form groups can now be hidden when added to templates. Displaying a hidden form group can be controlled from within a document controller using <form:group />'s API. Further details can be taken from page Usage of forms.
  • ID#297: New method HtmlFormTag::fillForm() simplifies form handling providing the opportunity to fill a given form with the content of an existing a DTO or model. Details can be taken from chapter Usage of forms.
  • ID#147 Wiki article XSS protection for place holders describes how to realize an extended XSS protection within an application by extending the place holder tag shipped w/ the APF.

All details can be found in our Issue Management Tool.

3. General notes

Files with names like apf-codepack-* only contain the framework libraries, files with names like apf-demopack-* the framework libraries plus a demo application and the documentation site. For beginners it is recommended to download the demo packages. Release files with a name like apf-configpack-* contain a set of example configuration files. There, you can read some more hints on the configuration of the tools and applications.

The files apf-calc-example-*, apf-vbc-example-* And apf-modules-example* contain running examples for the implementation of

  • a calculator module (apf-calc-example-*),
  • the view-based-caching concept (apf-vbc-example-*) and
  • the inclusion of dynamic modules (apf-modules-example*)

using the APF. To setup the examples, please have a look at the SETUP.TXT file if included for further instructions.

The offline documentation is delivered in three different archive types including a complete HTML page.