Migrer un module vers une nouvelle version

Mettre à jour son module 3.0 en 4.0

Dernière mise à jour : 18/02/2013 à 17h10
Si aucun des éléments se trouvant dans cette documentation ne vous aide, référez-vous au forum et demandez de l'aide.







Le fichier de configuration









Dans la version 3.0, un fichier rassemblait les différentes informations sur le module : le fichier config.ini dans chaque dossier de langue.







Pour être plus cohérent, nous avons décidé de scinder ce fichier.







Le fichier de configuration : config.ini









Le nouveau fichier de configuration va se trouver à la racine de votre module.







Dans un premier temps, veuillez le fichier config.ini pour le coller à la racine de votre module.







Veuillez renommer :







  • author_link en author_website
  • starteable_page en home_page
  • url_rewrite en rewrite_rules[]











Supprimez les champs suivants : info, admin_links, name, css, cache, sql_table, com, note











Le fichier de description : desc.ini









Veuillez ensuite renommer le fichier config.ini dans les dossiers de langues en desc.ini.







Ouvrez le fichier et gardez seulement les champs name, info et admin_links.







Il vous faudra ensuite renommer le champ info en desc.







Pour plus d'informations concernant les fichiers config.ini et desc.ini dans la version 4.0, référez-vous à cet article : Les bases







Création et suppression des tables du module









Si vous utilisez des tables spécifiques pour votre module, vous avez un dossier nommé db à la racine.







Celui-ci centralise les fichiers SQL permettant de créer et de supprimer les tables en question lors de l'installation et la désinstallation de votre module.







Nous avons intégré un tout nouveau système permettant de gérer cela plus proprement.







Dorénavant vous allez avoir un seul et même fichier.







Veuillez créer un dossier phpboost à la racine de votre site. Vous pourrez y mettre tout ce qui est relatif à PHPBoost dans son ensemble.







Pour créer le nouveau fichier vous permettant de créer vos tables, veuillez vous reporter aux articles :







- Mise en place du ModuleSetup.



- Opérations sur la base de données.



- Référez-vous au ModuleSetup d'un module existant en v4.0 pour vous aider si besoin







Les ExtensionPointProvider









Dans la précédente version, il était déjà possible de communiquer entre plusieurs modules.



Cela est rendu encore plus facile et lisible sur la version 4.0 grâce à un tout nouveau système : Les ExtensionPoint.







Veuillez suivre cet article.







Changements dans l'API









Templates









- Ce n'est plus la classe
Template
qu'il faut instancier mais
FileTemplate




- La fonction
parse()
est dépréciée, utilisez
render()




- La fonction
assign_vars()
est renommée en
put_all()








Gestion des erreurs









L'utilisation de la classe
Errorh
devient obsolète.



Elle est remplacée par :







- Un bon nombre d'erreurs prédéfinies dans une classe nommée
PHPBoostErrors
. Pour l'utiliser, voici un exemple :







L'erreur "la page n'existe pas" est affichée de cette manière :







Code PHP :
DispatchManager::redirect(PHPBoostErrors::unexisting_page());








- Pour créer une erreur personnalisée, utilisez la classe
UserErrorController
:







Code PHP :
$controller = new UserErrorController('Titre de l\'erreur', 'Description de l\'erreur');
DispatchManager::redirect($controller);








Editeurs de texte









-
second_parse()
devient
FormatingHelper::second_parse()
,
parse()
devient
FormatingHelper::parse()
,
unparse()
devient
FormatingHelper::unparse()




-
display_editor('nom_de_votre_textarea')
devient :







Code PHP :
$editor = AppContext::get_content_formatting_service()->get_default_editor();
$editor->set_identifier('nom_de_votre_textarea');
$editor->display();








Divers









- La classe utilisée dans la version 3.0 pour la pagination se nomme maintenant
DeprecatedPagination
. Si vous souhaitez utiliser la nouvelle classe, référez vous à cet article.



- Pour créer une redirection, utilisez
AppContext::get_response()->redirect()




- L'utilisation de la fonction
import()
n'est plus utile, les classes sont automatiquement chargées à travers l'autoload.
Cette page a été vue 3609 fois