======Le 2 février 2008, Pxxo 5.0 ======
===== Passage à PHP 5 =====
Pxxo est maintenant exclusivement compatible avec PHP version 5.
===== Changement de licence =====
Pxxo changement de licence pour une licence de type **new BSD**
===== Widget sans S =====
La classe Pxxo_Widgets est remplacée par la classe Pxxo_Widget. D'une manière générale le S de widget a été supprimé partout.
===== Stream et Transformer =====
Les notions Stream et Transformer sont remplacées respectivement par les notions de Buffer et de View.
La notion de liste de Buffers apparaît avec la classe Pxxo_Buffers.
===== Tri des ressources =====
On peut trier les ressources via un poids. Cela est utile notamment pour les fichiers javascript qui doivent être chargés dans un ordre donné.
Exemple :
$id = $this->putScript('second.php.js');
$this->Resources->get($id)->setWeight(3000);
$id = $this->putScript('premier.php.js');
$this->Resources->get($id)->setWeight(4000);
===== Utilisation du Zend Framework =====
- Remplacement de Cache_Lite par Zend_Cache
- Utilisation de Zend_View
- Utilisation Zend_Register
- Utilisation Zend_Locale
- Utilisation Zend_Translate
===== Nouveau module de traduction =====
Le moteur de traduction se base sur le module Zend_Translate.
Pxxo_Config::get('language') est réglé automatiquement par Zend_Locale. Une instance de Zend_Locale se trouve dans Pxxo_Config::get('locale').
La fonction _po est supprimée, elle est remplacée par la méthode nommée _ de l'objet Pxxo_Widget.
Exemples :
// Avant (dans les templates)
echo _po('hello world');
// Après
echo $Self->_('hello world');
// Avant (dans un widget)
$v = _po('hello world');
// Après
$v = $this->_('hello world');
Les fichiers de traduction fonctionnent comme les autres ressources (surcharge et thème). Ces fichiers ne remplissent plus un tableau global mais une variable de classe.
// Avant
$GLOBALS['i18n']['hello'] = 'bonjour';
// Après
$this->TranslateData['hello'] = 'bonjour';
===== Réglages des paramètres d'un widget =====
Les méthodes enableXXXX et disableXXXX, XXXX correspondant à une option. (Exemples : enablePersistentMode(), enableStandaloneMode) sont supprimées.
Pour modifier ces options on modifiera directement l'attribut correspondant.
Exemple
// Avant
$this->enableStandaloneMode();
// Après
$this->StandaloneMode = true;
On peut également affecter automatiquement cette valeur à la construction de l'objet.
Exemple :
function __construct($params)
{
$params['StandaloneMode'] = true;
parent::__construct($params, __FILE__);
}
===== Titre de la page et metadonnées =====
La méthode addHeadTitle est supprimée. Elle est remplacé par la méthode putTitle.
Exemple :
// Avant
$this->addHeadTitle('Un titre possible pour ma page');
// Après
$this->putTitle('Un titre possible pour ma page');
De manière générale, on pourra remonter des informations vers l'entête de la page en ajoutant des Buffer à la liste $this->Headers.
Exemple :
$b = Pxxo_Buffer::factory('meta', 'une description' );
$this->copyto($b);
$this->Headers->add($b);
===== Ménage =====
Suppression des classes :
- Pxxo_Action
- Pxxo_Auto
- Pxxo_Xml
- Pxxo_Phptpl
- Pxxo_Pago_*
- Pxxo_Template
- Pxxo_Controller
- Pxxo_Xslt_Handler_*
- Pxxo_Xslt_*
- Pxxo_Entitites
- Pxxo_Component
- Pxxo_I18n
Suppression des méthodes dans Pxxo_Component :
- setTpl
- addHeadInlineScript
- addHeadScript
- addHeadInlineStyle
- addHeadStyle,
- getParameter
- agetParameter
- delParameter
- setParameter
- addPago
- putComponent
- putRessource,
- addHeadBrowserMeta
- addHeadUserMeta
- enableXXXX
===== Divers =====
* Les constructeurs pour PHP 4 sont supprimés.
* La classe Pxxo_Xslt fonctionne exclusivement avec le module XSL de PHP5
* Les classes Pxxo_Widgets et Pxxo_Component sont fusionnées
* Le paramètre HistoryMode est supprimé.