henribaeyens Posted September 21, 2009 Share Posted September 21, 2009 Salut,surchager = overrideen gros, y a t-il un mécanisme pour réécrire/modifer une fonction ou carrément une classe sans courir le risque que celle-ci soit perdue lors d'une mise à jour? Un peu comme les thèmes, mais pour des classes. Link to comment Share on other sites More sharing options...
Natsu Posted September 21, 2009 Share Posted September 21, 2009 Salut,Il suffit que tu crées un fichier dans le dossier classe et qui surchargera ta classe vu que le fichier n'existera pas lors de la mise à jour tu n'auras pas de risque de la perdre Link to comment Share on other sites More sharing options...
henribaeyens Posted September 24, 2009 Author Share Posted September 24, 2009 pour ce qui est des classes situées dans le répertoire /classes, il suffit d'abord de créer un répertoire classes dans le répertoire de son thème puis d'y copier les classes modifiées. Ensuite, il faut réécrire la fonction autoload (/config/config.inc.php) pour faire en sorte le répertoire classes du thème soit scannée avant. function customAutoload($className) { // see http://us.php.net/manual/en/language.oop5.autoload.php $directories = array( '', '/../themes/mytheme/classes/', '/../classes/' ); $fileNameFormats = array( '%s.php', '%s.inc.php' ); foreach($directories as $directory) { foreach($fileNameFormats as $fileNameFormat) { $path = dirname(__FILE__).$directory.sprintf($fileNameFormat, $className); if (file_exists($path)) { require_once $path; return; } } } } spl_autoload_register('customAutoload'); reste à faire la même chose pour les modules... Link to comment Share on other sites More sharing options...
moncler Posted September 24, 2009 Share Posted September 24, 2009 Salut,Il suffit que tu crées un fichier dans le dossier classe et qui surchargera ta classe vu que le fichier n'existera pas lors de la mise à jour tu n'auras pas de risque de la perdre Tu veux dire une class qui etends celle qu on veut modifier?Ou alors j'ai mal compris car dans ce cas ce n'est plus un remplacement. Link to comment Share on other sites More sharing options...
Natsu Posted September 24, 2009 Share Posted September 24, 2009 J'entendais pas là que si tu crées une class "Truc.php" et que tu surcharges une autre classe comme ceci class Truc extends Category Tu devrais normalement ne pas avoir de soucis avec les maj Link to comment Share on other sites More sharing options...
moncler Posted September 24, 2009 Share Posted September 24, 2009 Ok, donc ca ne resoud pas le pb, car il daudra de tte facon passer par la classe fille pour profiter des surcharges.Ce qui serait interressant c'est de pouvoir modifier des fonctions lié au noyau de presta en minimisant les modif lors d une maj Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now