Vers les Namespaces et au delà.

En 2018, l'introduction des espaces de nom a modifié les noms des répertoires pour les modules. Pour le module "page", l'ancien répertoire était modpage, maintenant il s'agit de PageModule. Voici une liste de modifications

  • /app/modpage devient /app/PageModule (avec la majuscule)
  • ajout de l'espace de nom namespace Appy\PageModule; dans les fichiers PHP du répertoire /app/PageModule (sauf les gabarits).
  • Le fichier index.php devient Controller.php
  • Le nom de la classe "page_index" devient Controller (nom complet est \Appy\PageModule\Controller
  • Le nom de la classe "page_Item" devient Item (nom complet est \Appy\PageModule\Item
  • Le nom de la classe "page_List" devient ListModel (nom complet est \Appy\PageModule\ListModel. On ne pouvait pas utiliser "List" à cause de la fonction du même nom.
  • Les noms des fonctions pour les actions change du format "admin_action"/"public_action" vers actionAdmin/actionPublic
  • _set_table_form devient setTableForm
  • _set_edit_form devient setEditForm
  • Les appels de $this->_set() deviennent $this->set(). Note que _set est encore supporté mais déprécié

Renommer les répertoires/fichiers

for i in mod*; do iname=${i##mod}; mv $i ${iname^}Module; done
for i in *Module/index.php; do mv $i ${i%%index.php}Controller.php; done
for i in *Module/List.php; do mv $i ${i%%List.php}ListModel.php; done

Vim Replace (index.php)

%s/class \(.\+\)_index/class Controller/g
%s/function admin_\(.\+\)(/function \1Admin(/g
%s/function public_\(.\+\)(/function \1Public(/g
%s/_set_table_form/setTableForm/g
%s/_set_edit_form/setEditForm/g
%s/$this->_set(/$this->set(/g

Autre

upgradecontroller.sh
app/core/index.php
app/core/admin.php
app/config*/system.php (default_controller, rewritezones)
app/modAbstract/Item.php (getPrimaryKey/isValidPrimaryKey)