Revision history for 2.1

Version 2.1 of the Adventure PHP Frameworks is the second version of the 2.X line. Code base is designed to run with PHP >5.3.0.

This release includes changes to configuration schemes. To ease migration to this new version the APF team included a migration script. It allows you to update your application automatically in minutes. Details can be found under .

Besides, the release includes a tool to separate project sources from the APF installation easily. Details can be found in chapter Migration from 1.17 to 2.0.

The following chapters outline the most important changes in version 2.1 (stable). Due to the great number of enhancements and improvements this change log focuses on the essential issues.

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

1. Bug fixes

Release 2.1.1 fixes the following issues contained in version 2.1:

  • ID#201: Error with determining CSS classes in HtmlLinkTag.
  • ID#211: Wrong default value for fallback-mode in HtmlIteratorTag.
  • ID#212: Missing templates in Pager.
  • ID#219: Guestbook module not working due to wrong configuration definition.
  • ID#222: Extended templating syntax not working in all tags.

Details can be taken from the Issue Management Tool.

Release 2.1 solves the following issues:

  • ID#142: Messages within the forwardmessage extension are not displayed on the same page.
  • ID#193: MySQLiHandler fails when using multiple stored procedures.
  • ID#150: Method File::renameTo() does not work.
  • ID#60: GenericORMapperManagementTool does not update indices.
  • ID#205: Definition of optional fields with SelectBoxTag, MultiSelectBoxTag, DateSelectorTag, and TimeSelectorTag not possible.

All details can be found in our Issue Management Tool.

2. Neue Features

Release 2.1 brings all new features listed below:

  • ID#135: Since release 2.1 an advanced templating syntax is available. The implementation of the Advanced Templating proposal offers a short hand notation for place holders that safes typing and better integrates with the IDE. Further, a notation for accessing objects from a DOM node has been added. Details can be found under Templates.
  • ID#83: As of version 2.1 the action execution order can be manipulated with coding. This helps to ensure that depending actions are executed in the desired order. Details can be found under Front controller.
  • ID#63: To prettify action instructions within URLs, you can now define URL mappings that hide namespace and name from the outside world. To easily integrate with the URL generation, all LinkScheme implementations shipped with the APF already support action mappings while generation of action links. Details can be found under Front controller.
  • ID#166: AbstractFormControl::addValidator() and AbstractFormControl::addFilter() now register validators and filters added within templates or controllers for further usage. This eases e.g. implementation of client-side validation (automatic generation of validation rules with Parsley).
  • ID#171: The content of a DOM node is no longer injected to the controller during transformation. Thus, performance improves and memory usage decreases.
  • ID#105: The HtmlIteratorTag now supports definition of fallback content. In case the iterator has no content to display it either replaces or adds a fallback content to the content that has been defined statically. Details can be found under Special-tags.
  • ID#187: The advanced templating syntax has also been introduced for the iterator. Details and examples can be found under Special-tags.
  • ID#189: With each loop run you can access a status object in an iterator tag in release 2.1. It can be accessed using the advanced templating syntax to create conditional formatting or numbering or lists. Details can be found under Special-tags.
  • ID#190: To support operation of APF-based applications and and ease error analysis in development environments the GlobalErrorHandler is now able to handle fatal errors. This new functionality can be activated and deactivated as all other error handling mechanisms.
  • ID#180: To improve security, defining character sets of database connections has been corrected.
  • ID#148: To improve security, will content be escaped with the DatabaseLogWriter.
  • ID#167: Old fallback mechanisms of the pre-1.13 configuration mechanism have been removed. Starting with 2.1 it is mandatory to provide a configuration file extension loading configuration files.
  • ID#134: The FC. prefix for front controller action configurations has been removed to improve readability and ease configuration creation. To support migration, please use migrate-config.sh. Sample configuration files can be found in all apf-configpack-* packages as always.
  • ID#170: The DB. prefix for database configurations has been removed to improve readability and ease configuration creation. To support migration, please use migrate-config.sh. Sample configuration files can be found in all apf-configpack-* packages as always.

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.