29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don




Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : NOTES IMPORTANTES pour mise à jour vers 4.0

Date de publication: le jeudi 27 novembre 2008 à 17h57
Dernière modification: par Pascal BOYER le jeudi 2 septembre 2010 à 08h54
« Article précédent: eZ Publish : modifications apportées à la base de données
» Article suivant: eZ Publish : mise à jour de 4.0.x vers 4.0.y

14/10/2008 9:53  

This section contains important notes about upgrading your existing eZ Publish 3.x installation to version 4.0. Read it carefully before you do the actual upgrade. 
Avant de procéder à la mise à jour, lisez attentivement cet article contenant des informations importantes relatives à la mise à jour d'une version 3.x de eZ Publish vers une version 4.0.

Upgrade path, requirements and preparation / Mise à jour des chemins, prérequis et préparation

eZ Publish 4.0 contains all the functionality of the 3.10 series. Before upgrading, check the requirements and set up the hosting environment for your site accordingly, so that you can quickly switch to PHP 5 after upgrading the distribution files. 
eZ Publish 4.0 est pourvu de toutes les fonctionnalités de la série 3.10. Avant de procéder à la mise à jour, contrôlez les prérequis  et configurez, en conséquence, l'environnement d'hébergement de votre site afin de passer rapidement à PHP 5 une fois terminée la mise à jour des fichiers de votre système.

It is not possible to upgrade directly from version 3.9 (and earlier) to 4.0, and the 4.0 distribution does not contain upgrade scripts for this. Instead, you should upgrade to 3.10.1 first, and then upgrade from 3.10.1 to 4.0.1. 
Il est impossible de passer directement d'une version 3.9 ou antérieure à une version 4.0 puisque celle-ci ne contient pas les scripts de mise à jour. Vous devez donc préalablement réaliser une mise à jour vers une version 3.10.1  et seulement ensuite faire la mise à jour vers la version 4.0.1.

If your site makes use of the eZ Publish Extension for Oracle® Database, you need to delay upgrading until version 1.8 of the extension is released. 
Si votre site utilise l'extension eZ Publish pour les bases de données Oracle®  vous devez alors attendre, pour réaliser la mise à jour de eZ Publish, la réalisation de la version 1.8 de cette extension.

Compatibility with extensions / Compatibilité des extensions

Extensions compatible with eZ Publish 3.x may not work with 4.0. The following table shows which versions of the different extensions are supposed to work with eZ Publish 4.
Il est possible que des extensions compatibles avec les versions 3.x de eZ Publish ne fonctionnent plus avec les versions 4.0. Le tableau ci-dessous présente les versions des différentes extensions supportées par eZ Publish 4:

Name / Nom Compatibility with 4.0 / Compatibilité avec la version 4.0
Website Interface   v.1.3
Online Editor   v.4.3 (comes together with eZ Publish 4.0) / (est installée avec eZ Publish 4.0)
ODF Import / Export   v.2.1 (comes together with eZ Publish 4.0) / (est installée avec eZ Publish 4.0)
eZ PayPal Payment Gateway v.1.1 (upcoming) / (à venir)
eZ Publish Extension for Oracle® Database   v.1.8 (upcoming) / (à venir)
eZ Find   v.1.0
eZ Newsletter   v.1.6 (upcoming) / (à venir)
Paynet Direct    Not tested for compatibility yet. / Compatibilité pas encore testée.
Paynet Terminal    Not tested for compatibility yet. / Compatibilité pas encore testée.

Custom extensions developed for eZ Publish 3.x may stop working after upgrading to 4.0, especially those using constants of the eZ Publish kernel. These have been moved inside class definitions. The following examples show the difference based on the code taken from "kernel/classes/ezcontentobject.php": 
De même, des extensions personnalisées développées pour eZ Publish 3.x peuvent ne plus fonctionner une fois réalisée la mise à jour vers une version 4.0. Particulièrement celles utilisant les constantes du noyau de eZ Publish, celles-ci ayant été déplacées dans des définitions de classe. L'exemple ci-après illustre les différences que l'on peut observer sur une partie du code du script  kernel/classes/ ezcontentobject.php:

3.10:

...
define( "EZ_CONTENT_OBJECT_STATUS_DRAFT", 0 );
define( "EZ_CONTENT_OBJECT_STATUS_PUBLISHED", 1 );
define( "EZ_CONTENT_OBJECT_STATUS_ARCHIVED", 2 );
...

4.0:

class eZContentObject extends eZPersistentObject
{
 const STATUS_DRAFT = 0;
 const STATUS_PUBLISHED = 1;
 const STATUS_ARCHIVED = 2;
...
}

The following line shows an example of using these constants in PHP code for eZ Publish 3.x. 
La ligne ci-dessous est un exemple d'utilisation des constantes dans le code PHP des versions eZ Publish 3.x:

$status = EZ_CONTENT_OBJECT_STATUS_DRAFT;

In 4.0, this constant does not exist anymore (it has been renamed and moved inside the class definition) and you will have to use the new class constant instead: 
Dans les versions 4.0 cette constante n'existant plus (elle a été renommée et déplacée à l'intérieur d'une définition de classe) vous devez, à sa place, utiliser la nouvelle constante de classe:

$status = eZContentObject::STATUS_DRAFT;

Refer to the PHP documentation for more information about class constants. 
Référez-vous à la documentation de PHP  pour plus d'information sur les constantes de classe.

Notes for extension developers / Note à l'attention des développeurs d'extensions

When developing custom extensions for eZ Publish 4, keep in mind that it stores each class definition in a separate PHP source file and makes use of the __autoload() function instead of having a list of needed includes at the beginning of each source file. All class definitions of the eZ Publish kernel have their paths listed in the "autoload/ezp_kernel.php" file. The "autoload/ezp_extension.php" file contains an array of paths for class definitions that are a part of the extensions that come with eZ Publish. This array must be updated every time you add a new extension to the system. This can be done by running the "ezpgenerateautoloads.php" script located in the "bin/php" directory. The following example shows how to run the script. 
Lorsque vous développez des extensions pour eZ Publish 4, gardez à l'esprit que ce dernier conserve chaque définition de classe dans un fichier source PHP séparé et utilise la fonction __autoload()  plutôt qu'une liste des inclusions nécessaires placée en début de chaque fichier source. Les chemins de toutes les définitions de classe du noyau de eZ Publish sont listés dans le fichier autoload/ ezp_extension.php contenant un tableau des chemins des définitions de classe liées aux extensions incluses par défaut à eZ Publish. Ce tableau doit être mis à jour chaque fois que vous ajoutez une nouvelle extension au système, ce qui peut être réalisé par l'exécution du script bin/php/ ezpgenerateautoloads.php. L'exemple suivant explique comment exécuter ce script:

  1. Navigate into the eZ Publish 4.0 directory. 
    Placez-vous à la racine du répertoire d'installation de eZ Publish 4.0
  2. Run the script using the following shell command: 
    Exécutez le script avec la ligne de commande suivante:

php bin/php/ezpgenerateautoloads.php --extension

The script will look for class definitions in the "extension" directory and update the "autoload/ezp_extension.php" file accordingly. You can instruct the script to skip some of the extension subdirectories by using the optional "--exclude" parameter. To do this, run the script using the following shell command (replace "ext1" and "ext2" with the actual names of the extension subdirectories): 
Le script recherche les définitions de classe dans le répertoire extension/ puis met à jour le fichier autoload/ ezp_extension.php. Vous pouvez également, à l'aide du paramètre optionnel « --exclude», indiquer au script de ne pas tenir compte de certains sous-répertoires du répertoire extension/. Pour cela, exécutez le script avec la ligne de commande suivante (remplacez ext1 et ext2 par les vrais noms des sous-répertoires de extension/):

php bin/php/ezpgenerateautoloads.php --extension --exclude="extension/ext1 extension/ext2"

Note that it is also possible to update the "autoload/ezp_extension.php" file by clicking the "Regenerate autoload arrays for extensions" button located in the "Setup - Extensions" part of the administration interface. In this case, only class definitions that are a part of globally enabled/activated extensions will be listed in the updated file. 
Retenez qu'il est aussi possible de mettre à jour le fichier autoload/ ezp_extension.php en cliquant sur le bouton « Régénérer les tableaux autoload pour les extensions» auquel vous accédez en cliquant sur l'onglet Administration puis sur le lien Extensions du menu de gauche. Dans ce cas, seules seront ajoutées au fichier les définitions de classe liées aux extensions globales activées.

Commentaires