Avvertenze per la migrazione da Zend Framework 1.0.4 a 1.5

weppos May 12th, 2008

I due workshop organizati da Zend Italia su Zend Framework 1.5 sono stati un’eccellente occasione per scambiare due chiacchiere e condividere le proprie esperienze con quanti hanno già avuto l’opportunità di familiarizzare con Zend Framework.

Tra le domande più ricorrenti ricordo, senza dubbios le varie richieste su come migrare ed aggiornare le proprie applicazioni da Zend Framework 1.0.4 a Zend Framework 1.5.
Fortunatamente, nonostante i numerosi cambiamenti della nuova release, il team di sviluppo si è preoccupato di ridurre al minimo brusche inversioni di rotta che avrebbero potuto costituire un ostacolo nell’upgrade di prodotti esistenti.

Così, l’aggiornamento da Zend Framework 1.0.x a Zend Framework 1.5.x non comporta particolari problemi. E’ sufficiente sostituire la directory library e prestare attenzione ad un paio di incompatibilità: esistono infatti almeno 3 compatibility breaks dimostrati che è bene tenere il considerazione.

Indice di Zend_Search_Lucene

A partire da Zend Framework 1.5 il componente Zend_Search_Lucene adotta esclusivamente il formato degli indici Apache Lucene 2.1, a differenza della versione Apache Lucene 1.9 di Zend Framework 1.0.x.
La conversione dell’indice avviene automaticamente al primo utilizzo della libreria dopo l’upgrade di Zend Framework.

E’ importante tenere a mente che, una volta convertito, non è possibile ripristinare il formato precedente. E’ quindi consigliabile eseguire un backup dei file degli indici scritti in Apache Lucene 1.9 per ogni evenienza ed un eventuale rollback.

Nuove linee guida per i nomi delle action

Per una serie di motivazioni legate principalmente alla natura di PHP ed al design del controller di Zend Framework, la release 1.0.x presentava un comportamento inaspettato nella gestione di nomi di action composte, indicate con la notazione camelCase. In diversi casi molti programmatori hanno interpretato questa caratteristica come una funzionalità, ignari che si trattasse invece di un comportamento indesiderato ed assolutamente non previsto.

Per questo motivo, Zend Framework 1.5 introduce alcune restrizioni aggiuntive nella definizione dei nomi delle action e nella corrispondenza con le regole di routing.
Consiglio di consultare attentamente il capitolo Migrating from 1.0.x to 1.5.0 or newer di Zend_Controller 1.5.

Zend_Date::isDate, Zend_Date e Zend_Locale

Come per Zend_Controller, anche Zend_Date e Zend_Locale hanno subito alcune modifiche interne tali da correggere comportamenti indesiderati e migliorare l’individuazione del valore di locale dell’utente.
Il risultato è che il funzionamento di Zend_Date::isDate è cambiato. Ora è obbligatorio passare il formato della data da validare, pena una validazione errata dell’input.

Ad esempio, il seguente frammento di codice funziona correttamente su Zend Framework 1.0.x.

<?php

if (Zend_Date::isDate('2007-11-14 21:06:36 GMT')) {
  echo 'true';
} else {
  echo 'false';
}

Con Zend Framework 1.5, invece, l’esecuzione restituisce false anche se l’input è a tutti gli effetti una data.

Per maggiori informazioni su questo problema potete consultare i ticket ZF-2524 e ZF-2334. In quest’ultimo troverete anche un esempio di un workaround, basato sull’uso di strtotime(), utile per quanti come il sottoscritto hanno fatto affidamento a questo comportamento di Zend_Date::isDate.

Cosa manca?

Non sembrano esistere altri particolari incompatibilità nella migrazione di un sorgente da Zend Framework 1.0.4 a 1.5.
Ovviamente, se qualcuno ha qualcosa da aggiungere i commenti sono aperti! :)

Trackback URI | Comments RSS

Leave a Reply