Revision history for 1.11
Release 1.11 (stable) contains libraries for the use under PHP 4 and PHP 5. Please
note, that two different architecture releases are delivered for PHP4 and PHP5. The version was
tested with versions greater than PHP 5.2.6 and <= PHP 4.4.8. This version is approved to be
installed on production environment!
All enhancements described below are only contained in the PHP5 version of this release
(
*-php5 files). The
PHP 4 version is only a limited
compatibility version that does not include the
new form taglibs and the
enhancement of the GenericORMapper. As of release 1.12 the
PHP 4 version is no longer supporter! Thus, it is recommended
to switch all PHP 4 projects to PHP 5 soon.
This release contains API changes. Hence, the article Migration from 1.10 to 1.11 concludes all
necessary changes to existing applications that have to bee applied switching to this version.
The build with date
2010-04-10 contains important bugfixes for the release with
build date
2010-02-10. These are:
-
Bug 253:
All occurences of split() are now replaced by explode() to guarantee
full compatibility for the PHP version 5.3.x. Details on the discussion can be taken from
the forum thread
Form-date taglib -> split()
(German).
-
Bug 320:
The initialization of selected options in conjunction with dynamic select fields was broken.
This was fixed with this version. The bug described for 1.11 will not occure in 1.12, because
the initialization of select fields was reworked there.
Major changes to version 1.11 (stable) are:
-
Refactoring:
Class MySQLHandler was removed from the release, because it was marked deprecated in
1.10. In doing so, the database abstraction components were reworked.
-
Enhancement:
The database abstraction components contained in this release were enhanced with the statement
logging feature. In case the optional parameter $logStatement is set to true
invoking executeStatement() and executeTextStatement(), the currently executed
statement is appended to a log file.
-
Bugfix 224:
After refactoring of the database components, Collation and Charset were not
correctly initiylized with the MySQLxHandler.
-
Bugfix 223:
Due to the fact, that sub sections in configurations are not correctly analyzed by the native
PHP functions, the ConfigurationManager now implements it's own array_merge()
funktion.
-
Enhancement:
The report generated by the BenchmarkTimer was completely reworked. Now, the HTML
source code is W3C compatible and the performance of the report generation is much better.
Along with these changes, an option was introduced to deactivate the benchmarker. Details can
be taken from the Benchmark chapter or
from the wiki page
Deaktivieren BenchmarkTimer
(german).
-
Enhancement:
Up to now, the onParseTime() of taglibs (see
taglib lifecycle)
managed by the page controller was not measured. Within 1.11, this timing event was added to
complete the benchmark report.
-
Refactoring:
Within the refactorint tasks of the present release, xmlParser was renamed to
XmlParser. This change is merely transparent to you, because only framework internal
components are affected. In case you are using the class within your applications, please rename
the class.
-
Enhancement:
With this release, so called ”Extensions“ were added to the release of the
adventure php framework. These are extensions from APF users, that want to share their work
with you! More information can be taken from the wiki page
Extensions
(german).
-
Refactoring:
The captcha module was refactored together with the adaptions necessary due to the form taglib
changes. Please note, that the configuration of the module has changed. The updated
documentation can be found under CAPTCHA taglib (for forms).
-
Improvement;
The generic domain object of the Generic OR mapper (GenericDomainObject) was
improved to be stored in sessions or other pools (e.g. memcached) as a serialized object.
-
Refactoring:
The existing modules of the APF (comment, kontakt4, guestbook, ...)
were adapted to the new form taglib implementation.
-
Enhancement:
While publication of two articles for the PHP Journal
the new guestbook module (guestbook2009) was added to the release. A detailed
description can be found within the articles Objektorientiertes Design eines Gästebuchs (german) and
Objektorientierte Implementierung eines Gästebuchs (german).
-
Bugfix 202:
Changes to the umgtManager caused the component to only hash passwords for newly created
user. This issue discussed under
Speichern von userobject -> passwort falsch
is now solved.
-
Enhancement:
As described within the
roadmap
(german), an update tool for the Generic OR mapper was introduced. It allows you to
update a database created with the setup tool of the generic or mapper in cases, your configuration
has changed for some purpose. For this reason, the documentation was added the chapter
Generic O/R mapper - database update.
-
Improvement:
While enhancon the database components as desribed above, the generic or mapper was added a
debug option. Now, the optional parameter $logStatements can be set to true
invoking getGenericORMapper(). This causes all statements to be written into a debug
log. Details can be taken from the chapter
Generic OR mapper.
-
Enhancement:
As of release 1.11, each object stored by the generic or mapper can directly be reused as fully
qualified domain object. This is because the mapper now injects the current mapper instance as
well as the database of the object. Details on the feature request can be read about in the
forum post
Erweiterung GORM (Release 1.11)
(german).
-
Refactoring:
The HTML markup and the CSS formatting of the contact form module were completely reworked. This
means, that the file contact.css located under /modules/kontakt4/pres/css/
must be added to the head of your webpage, using the module. The markup now contains a variety
of classes, that can be used to address layout adaptions. Please have a look at the notes on
Contact form for details on the markup.
-
Enhancement:
Added text_id and image_id to be able to define a custom HTML ID for both the
captcha image and the text field of the CAPTCHA taglib (for forms). This is necessary for
labeling the text field. Originally needed by the contact form module!
-
Enhancement:
Added disable_inline attribute to the CAPTCHA taglib (for forms) to be able to disable
the inline styles reponsible for positioning. If disables, custom styles must be defined to
display the captcha image and the text field within one line.
-
PHP 5.3-Bugfix:
The deprecated function split() was replaced by explode() within the
<form:date />
taglib. Details can be taken from the forum thread
Form-date taglib -> split()
(german).
-
Bugfix/Improvement:
The generic or mapper now escapes all object properties before
saving them to database. This was introduced to avoid statement errors with reserved characters
and to have stronger security. Details can be taken from the forum thread
Sicherheit des GORM
(german).
-
Enhancement:
As discussed under
Fehler mit BIT-Feldern
(german), the generic or mapper (GORM) did not support BIT
fields up to release 1.11. Due to the fact, that BIT field values must be prefixed by
"b", the GORM was now added support for BIT field values. A field is now reconized as
BIT field, if the data type definition contains the keyword "BIT".
-
Refactoring:
In the course of the 1.11 core optimization the linkHandler was renamed to
LinkHandler and frontcontrollerLinkHandler to FrontcontrollerLinkHandler.
Migrating to release 1.11, occurrences within existing code must renamed.
-
Refactoring:
One of the big parts of the release was the refactoring of the form taglib implementation. What
is new can be read about in chapter Forms (as of release 1.11). Notes on the migration to the
new form tags can be taken from Migration from 1.10 to 1.11.
-
Bugfix 185:
Concerning the report, the transformation bug of the iterator tag was not solved correctly. This
was done away with in release 1.11.
-
Refactoring:
myValidator was renamed to Validator and is not relevant for form validation
as of the form taglib refactoring.
-
Improvement:
The CacheManagerFabric was changed to support object creation using the
DIServiceManager.
-
Improvement:
The call to trigger_error() was removed from the LinkHandler::generateLink()
method to avoid program interruptions due to empty base url. In case of empty urls default
initialization is done now.
-
Enhancement:
The iterator tag was added new sub taglibs to ease development.
Details on the discussion can be taken from the
documentation of the forum thread
item:addtaglib & item:getstring (Release 1.11)
(german).
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. As of release 1.8-RC1
the
apf-perfcodepack-* release is included. This package contains php files, that are free
of comments and whitspaces and help you to gain performance on hosting environments having no
byte-code-caching configured. Since version 1.10 the offline documentation is delivered in three
different archive types. CHM files are no longer included.