Prestashop 1.4.x et Eclipse PDT

Bonjour,
si comme moi vous utilisez Eclipse comme EDI PHP (que je vous recommande si vous ne l’avez jamais utilisée)
vous êtes peut-être confronté au problème de la chaîne d’héritage des classes brisée à cause du système d’override de la 1.4.
En effet, toute classe ou controlleur n’ayant pas d’override n’est pas reconnue par Eclipse, car le nom de la classe que l’on doit exploiter dans le code ne correspond pas à celle de la classe d’origine.

Exemple : PaymentModule est déclarée comme PaymentModuleCore, et Eclipse ne fait pas la liaison entre les deux.

Auquel cas vous pouvez utiliser le script suivant :
http://www.capillotracteur.fr/downloads/prestashop-1.4-eclipse-override-compatibility.tar
Qui une fois décompressé dans prestashop/override/
et appelé via un navigateur à travers le serveur
(exemple : http://psvm/prestashop/override/eclipse.php, psvm est la machine virtuelle debian qui me sert de serveur HTTP pour mes développement)
vous générera un fichier eclipse.compat.php dans prestashop/override/classes/ et dans prestashop/override/controllers/ qui assurera les liaisons de classes manquantes et rétablira l’héritage dans votre EDI.
Attention, vous devez penser à ajouter le patern d’exclusion « _* » pour le Build Path de ces deux dossiers pour ignorer les fichiers préfixés d’un underscore (_Module.php, _MySQL.php) qui pourraient être présents.

La génération doit être relancée chaque fois que vous ajouter ou retirez un override pour éviter les doublons ou les manques.

exemple de fichier prestashop/override/classes/eclipse.compat.php généré sur Prestashop 1.4.7.0 :
<?php
abstract class AbstractLogger extends AbstractLoggerCore {}
class Address extends AddressCore {}
class AddressFormat extends AddressFormatCore {}
abstract class AdminTab extends AdminTabCore {}
class Alias extends AliasCore {}
class Attachment extends AttachmentCore {}
class Attribute extends AttributeCore {}
class AttributeGroup extends AttributeGroupCore {}
class Backup extends BackupCore {}
class Blowfish extends BlowfishCore {}
abstract class Cache extends CacheCore {}
class CacheFS extends CacheFSCore {}
class Carrier extends CarrierCore {}
abstract class CarrierModule extends CarrierModuleCore {}
class Cart extends CartCore {}
class Category extends CategoryCore {}
class Chart extends ChartCore {}
class CMS extends CMSCore {}
class CMSCategory extends CMSCategoryCore {}
class Combination extends CombinationCore {}
class CompareProduct extends CompareProductCore {}
class Configuration extends ConfigurationCore {}
class Connection extends ConnectionCore {}
class ConnectionsSource extends ConnectionsSourceCore {}
class Contact extends ContactCore {}
class ControllerFactory extends ControllerFactoryCore {}
class Country extends CountryCore {}
class County extends CountyCore {}
class Currency extends CurrencyCore {}
class Customer extends CustomerCore {}
class CustomerMessage extends CustomerMessageCore {}
class CustomerThread extends CustomerThreadCore {}
class Customization extends CustomizationCore {}
class DateRange extends DateRangeCore {}
abstract class Db extends DbCore {}
class Delivery extends DeliveryCore {}
class Discount extends DiscountCore {}
class Employee extends EmployeeCore {}
class Feature extends FeatureCore {}
class FeatureValue extends FeatureValueCore {}
class FileLogger extends FileLoggerCore {}
class FrontController extends FrontControllerCore {}
class Group extends GroupCore {}
class GroupReduction extends GroupReductionCore {}
class Guest extends GuestCore {}
class HelpAccess extends HelpAccessCore {}
class Helper extends HelperCore {}
class Hook extends HookCore {}
class Image extends ImageCore {}
class ImageType extends ImageTypeCore {}
abstract class ImportModule extends ImportModuleCore {}
class Language extends LanguageCore {}
class Link extends LinkCore {}
class LocalizationPack extends LocalizationPackCore {}
class Mail extends MailCore {}
class Manufacturer extends ManufacturerCore {}
class MCached extends MCachedCore {}
class Message extends MessageCore {}
class Meta extends MetaCore {}
abstract class Module extends ModuleCore {}
abstract class ModuleGraph extends ModuleGraphCore {}
abstract class ModuleGraphEngine extends ModuleGraphEngineCore {}
abstract class ModuleGrid extends ModuleGridCore {}
abstract class ModuleGridEngine extends ModuleGridEngineCore {}
class MySQL extends MySQLCore {}
abstract class ObjectModel extends ObjectModelCore {}
class Order extends OrderCore {}
class OrderDetail extends OrderDetailCore {}
class OrderDiscount extends OrderDiscountCore {}
class OrderHistory extends OrderHistoryCore {}
class OrderMessage extends OrderMessageCore {}
class OrderReturn extends OrderReturnCore {}
class OrderReturnState extends OrderReturnStateCore {}
class OrderSlip extends OrderSlipCore {}
class OrderState extends OrderStateCore {}
class Pack extends PackCore {}
class Page extends PageCore {}
class PaymentCC extends PaymentCCCore {}
abstract class PaymentModule extends PaymentModuleCore {}
class PDF_PageGroup extends PDF_PageGroupCore {}
class Product extends ProductCore {}
class ProductDownload extends ProductDownloadCore {}
class ProductSale extends ProductSaleCore {}
class Profile extends ProfileCore {}
class QuickAccess extends QuickAccessCore {}
class RangePrice extends RangePriceCore {}
class RangeWeight extends RangeWeightCore {}
class Referrer extends ReferrerCore {}
class Rijndael extends RijndaelCore {}
class Scene extends SceneCore {}
class Search extends SearchCore {}
class SearchEngine extends SearchEngineCore {}
class Shop extends ShopCore {}
class SpecificPrice extends SpecificPriceCore {}
class State extends StateCore {}
class StockMvt extends StockMvtCore {}
class StockMvtReason extends StockMvtReasonCore {}
class Store extends StoreCore {}
class SubDomain extends SubDomainCore {}
class Supplier extends SupplierCore {}
class Tab extends TabCore {}
class Tag extends TagCore {}
class Tax extends TaxCore {}
class TaxRule extends TaxRuleCore {}
class TaxRulesGroup extends TaxRulesGroupCore {}
class Tools extends ToolsCore {}
class TranslatedConfiguration extends TranslatedConfigurationCore {}
class Upgrader extends UpgraderCore {}
class Validate extends ValidateCore {}
class WebserviceException extends WebserviceExceptionCore {}
class WebserviceKey extends WebserviceKeyCore {}
class WebserviceOutputBuilder extends WebserviceOutputBuilderCore {}
class WebserviceOutputXML extends WebserviceOutputXMLCore {}
class WebserviceRequest extends WebserviceRequestCore {}
class WebserviceSpecificManagementImages extends WebserviceSpecificManagementImagesCore {}
class WebserviceSpecificManagementSearch extends WebserviceSpecificManagementSearchCore {}
class Zone extends ZoneCore {}

About Damien VERON

Développeur d'applications web et desktop
Cet article a été publié dans Divers & Astuces. Permalien.

Comments are closed.