German: Dieser Artikel ist auf Englisch, da er an ein internationales Publikum gerichtet ist.
In one of the latest posts on the Zend Framework maillinglist there was a question regarding the minimum required version of PHP for the current version Zend Framework (1.9.0). As of Version 1.7.0 of ZF the documentation recommends versions >=5.2.4 for PHP. Some users are stuck with php5.1.6 (e.g. those running Redhat Linux) and these need to know the components that could be problematic.
To see the minimum required version of PHP for each package of ZF, i’ve created a shellscript which uses PHP_CompatInfo from Pear. It doesn’t take the dependencies into account!
For your convinience i’ve created a website with these infos:
http://zfcompat.wolf-u.li/
By the way for all users of Redhat with PHP 5.1.6: In Zend 1.9.0 the following files that need a higher version than 5.1.6. Be aware, that some components are dependend on these files, e.g. Zend_Cache_Backend is used in about 40% of all components (see comment by Thomas below).
ZendCacheBackend.php : 5.2.1
ZendCryptDiffieHellman.php : 5.2.0
ZendCryptRsaKeyPrivate.php : 5.2.0
ZendCryptRsaKeyPublic.php : 5.2.0
ZendCryptRsa.php : 5.2.0
ZendFileTransferAdapterAbstract.php : 5.2.1
ZendNavigationPage.php : 5.2.0
ZendOpenId.php : 5.2.0
ZendPdfPage.php : 5.2.0
ZendPdf.php : 5.2.0
ZendTestPHPUnitDbOperationTruncate.php : 5.2.1
Thanks to Stefan Sturm for this list!
Still, you should run your own tests and check if your application is really working. The Website above just shows the possiblity to run a specific component under a specific php-version and isn’t taking dependencies between components into account. Or simply update to the current version of PHP
Das Zend Framework ist in der Version 1.9.0 erschienen und bringt immer mehr unternehmensnahe Komponenten mit. So können mit Zend_Queue und Zend_Service_Amazon_Sqs die Queuing-Services Apache ActiveMQ, MemcacheQ, Zend Platform’s Job Queue und Amazon SQS in Anspruch genommen werden. Zend_Ldap arbeitet nun deutlich besser mit dem Microsoft Active Directory und dem Novell eDirectory zusammen. Zend_Db_Adapter_Sqlsrv ist einer neuer Datenbankadapter für den Microsoft SQLServer.
Aber auch die neue Komponente Zend_Feed_Reader ist sehr interessant, da diese eine einheitliche Schnittstelle zu allen Feeds im RSS und Atom-Feeds bietet. Eine weitere, schon lang fehlende Komponente ist Zend_View_Helper_BaseUrl, welche die URL zum public-Verzeichnis zurückgibt und auch URLs aufbauen kann.
Zudem wurden nun alle Komponenten gegen PHP5.3 getestet und sind diesbezüglich validiert. Der Support für PHP5.2 ist jedoch deswegen nicht aufgehoben, dieser ist bis auf weiteres gegeben. Das komplette Changelog ist hier zu finden.
Ein paar API-Changes waren dabei, die hier nachgelesen werden können.
Das Release ist über das SVN oder die offizielle Seite zu beziehen. Die Zeile für svn:externals lautet:
library/Zend http://framework.zend.com/svn/framework/standard/tags/release-1.9.0/library/Zend/
Das Zend Framework ist in der Version 1.8.2 erschienen, was einige Fehler behebt, welche hier nachzulesen sind.
Mit der Einführung von Zend_Loader_Autoloader in Version 1.8.0 kamen viele Fehler auf, welche nun mit diesem Release behoben sein sollten. In allen Fällen, wo Zend_Loader::loadClass() im Framework hartcodiert war, wird nun per class_exists() zunächst geprüft und der Autoloader getriggert. Das soll das Schreiben von eigenen Adaptern und Plugins vereinfachen.
Ausserdem wurde eine neue Seite für die Changelogs eingeführt:
http://framework.zend.com/changelog
Das Release ist über das SVN oder die offizielle Seite zu beziehen. Die Zeile für svn:externals lautet:
library/Zend http://framework.zend.com/svn/framework/standard/tags/release-1.8.2/library/Zend/
Auf der Maillingliste des Zend Frameworks kam die Frage auf, warum der folgende Fehler auftritt:
Fatal error: Uncaught exception 'Zend_Gdata_App_AuthException' with message 'Authentication with Google failed. Reason: NoLinkedYouTubeAccount' in
Zend/Gdata/ClientLogin.php:174
Stack trace: #0 index.php(19):
Zend_Gdata_ClientLogin::getHttpClient('somegoogleaccount@gm...', '******', 'youtube', NULL, 'MySource', NULL, NULL, 'https://www.goo...') #1 {main} thrown in /var/wwwZend/Gdata/ClientLogin.php on line 174
Die Lösung ist einfach und hier beschrieben:
- Diese Seite ansurfen und einloggen
- Auf der nächsten Seite einen existierenden Youtube-Account angeben oder einen neuen erstellen lassen
- Dann den “Hinzufügen”-Button klicken
- Jetzt wird man eingeloggt und zur Youtube-Homepage umgeleitet
Das wars
Kurz nach dem Release der Version 1.8 des Zend Frameworks ist nun ein kleines Update auf 1.8.1 im SVN von Zend erschienen. Die neuen Features sind sehr hilfreich, insbesondere die Generierung von Modulen in Zend_Tool. Das Changelog:
- Zend_Loader::registerAutoload() dient nun als Proxy zu Zend_Loader_Autoloader, und markiert die Instanz als als Fallback-Autoloader. Dies soll gleichwertige Funktionalität sicherstellen und senkt die Anzahl der “Deprecated”-Anmerkungen auf eine. (Beitrag)
- Viele Bugfixes und Verbesserungen in Zend_Application.
- Generierung von Modulen in Zend_Tool (Beitrag)
- Addition of strong object typing capabilities to Zend_Amf (Bitte selbst übersetzen
)
- Viele weitere Übersetzungen des Handbuchs!
Für SVN-externals lautet die Zeile für dieses Release:
library/Zend http://framework.zend.com/svn/framework/standard/tags/release-1.8.1/library/Zend/
Nach dem Erscheinen von Zend Framework 1.8 habe ich mir mal Zend_Tool näher angesehen. Dieser Teil des Frameworks bietet auf Kommandozeilenebene eine Möglichkeit des Rapid Application Development (RAD), was sich laut Wikipedia wie folgt definieren lässt:
Um Softwareentwicklungen flexibler zu gestalten und sich an schnell ändernde Anforderungen anpassen zu können, wurde in den 1980er Jahren u.a. von Barry Boehm die Idee des Rapid Application Development (RAD) entwickelt. Sie sieht ein prototypisches Vorgehen vor, bei dem Anforderungen an eine Software gesammelt und möglichst schnell in ausführbaren Code umgesetzt werden. Dieser wird dem Auftraggeber in einer relativ frühen Phase vorgelegt, um Missverständnisse bei den Anforderungen sowie hinzugekommene Anforderungen zu identifizieren. Die Änderungen werden in einer weiteren Version implementiert und wiederum vorgelegt. Diese Zyklen werden so oft durchlaufen, bis der Auftraggeber mit der Software zufrieden ist und diese abnimmt.
Weiterlesen von ‘Zend Framework 1.8: Einführung in Zend_Tool’
Bei einem meiner alten PHP-Projekte bin ich beim Update auf Zend Framework 1.8 gerade drauf gestoßen, dass ein paar Methoden des Zend_Loader als deprecated markiert wurden:
Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /path/to/Zend/Loader.php on line 23
Notice: Zend_Loader::Zend_Loader::autoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /path/to/Zend/Loader.php on line 42
Weiterlesen von ‘Zend Framework 1.8: Zend_Loader::registerAutoload ist veraltet’