Message-ID: <945328716.379324.1711720425167.JavaMail.root@confluence-doc2-production> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_379323_996737829.1711720425162" ------=_Part_379323_996737829.1711720425162 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Modules, surcharge, web service

Modules, surcharge, web service

Modules, surcharge, web ser= vice=E2=80=A6 Les outils pour personnaliser sa boutique !

Cet article a =C3=A9t=C3=A9 =C3=A9crit par Damien Metzger, et publi=C3=A9 sur le blog de PrestaShop le 2 mai 2011.=

Les modules ont toujours =C3=A9t=C3=A9, depuis la naissance de P= restaShop, le moyen le plus simple et le plus puissant pour les marchands d= e personnaliser leurs boutiques. Et pourtant, PrestaShop introduit= dans sa version 1.4 deux nouvelles possibilit=C3=A9s d=E2=80=99interaction= pour aller encore plus loin, plus vite, plus efficacement. Introduction = =C3=A0 la surcharge du coeur et =C3=A0 l=E2=80=99utilisation du web se= rvice.

Surcharge du coeur=

La surcharge permet =C3=A0 tous les d=C3=A9veloppeurs, qu=E2=80= =99ils soient freelances ou au sein d=E2=80=99une agence, de changer le com= portement des classes qui constituent le coeur de PrestaShop=E2=80=A6 = sans les modifier ! Il est ainsi possible d=E2=80=99=C3=A9tendre l= e code de PrestaShop, soit pour le remplacer par son propre code =E2=80=93o= ptimis=C3=A9 pour les besoins de sa boutique par exemple=E2=80=93, soit sim= plement pour ajouter des instructions =C3=A0 celles existantes.

Depuis la version 1.4, un d=C3=A9veloppeur souhaitant modifier une class= e de PrestaShop ne doit donc plus toucher aux fichiers coeur, mais cr=C3=A9= er une classe fille dans le dossier /override apparu =C3=A0 la racine du lo= giciel.

Exemple

Pour ajouter un message =C2=AB Hello World ! =C2=BB =C3=A0 chaque instan= ciation de produit =E2=80=93ce qui est parfaitement inutile=E2=80=93, il su= ffit de placer dans le dossier /override/classes un fichier Product.php con= tenant les lignes suivantes :

=20
class Pr=
oduct extends ProductCore
{
  public function __construct($id_product =3D NULL, $full =3D false, $id_la=
ng =3D NULL)
  {
    echo 'Hello World !';
    parent::__construct($id_product, $full, $id_lang);
  }
}
=20

Ainsi, un technicien qui intervient sur la boutique peut imm=C3=A9diatem= ent identifier les modifications apport=C3=A9es. De plus, et c=E2=80=99est = l=C3=A0 l=E2=80=99essentiel, la mise =C3=A0 jour de PrestaShop vers une ver= sion sup=C3=A9rieure est consid=C3=A9rablement facilit=C3=A9e, car il suffi= t de tester la compatibilit=C3=A9 de ses classes surcharg=C3=A9es plut=C3= =B4t que de faire un diff fastidieux et chronophage avec les fichiers de la= nouvelle version.

Si vous n=E2=80=99=C3=AAtes pas =C3=A0 l=E2=80=99aise avec le concept d= =E2=80=99h=C3=A9ritage, n=C3=A9cessaire =C3=A0 la r=C3=A9alisation d=E2=80= =99une classe fille, vous pouvez vous r=C3=A9f=C3=A9rer =C3=A0 la page d=C3= =A9di=C3=A9e sur Wikipedia : http://fr.wikipedia.org/wiki/H=C3= =A9ritage_(informatique)

Web service

Les web services sont de plus en plus pr=C3=A9sents dans tous le= s domaines de l=E2=80=99informatique, et sont une =C3=A9volution technologi= que indispensable =C3=A0 l=E2=80=99=C3=A9volution actuelle du web, et donc = du e-commerce.

Appliqu=C3=A9 =C3=A0 PrestaShop, un service web permet aux d=C3=A9velopp= eurs, qu=E2=80=99ils soient familiers ou non au d=C3=A9veloppement sur Pres= taShop, de r=C3=A9cup=C3=A9rer et d=E2=80=99envoyer des information= s =C3=A0 la boutique, =C3=A0 distance, sans int=C3=A9grer du code au logici= el !

La technologie choisie par PrestaShop pour son web service est R= EST. Le principal avantage de ce style d=E2=80=99architecture est qu=E2=80= =99il repose sur le format XML, et les fichiers XML qui sont =C3= =A9chang=C3=A9s entre le client et le web service sont construits de telle = mani=C3=A8re qu=E2=80=99on peut les utiliser intuitivement, sans devoir au = pr=C3=A9alable lire plusieurs pages de documentation sp=C3=A9cifique =C3=A0= l=E2=80=99application. Un d=C3=A9veloppeur connaissant cette technologie p= ourra ainsi naturellement utiliser le service, et un d=C3=A9butant s=E2=80= =99adaptera tr=C3=A8s rapidement.

PrestaShop met =C3=A0 la disposition des d=C3=A9veloppeurs une librairie= PHP permettant d=E2=80=99utiliser le webservice sans avoir =C3=A0 construi= re les fichiers XML =C3=A0 la main. Diff=C3=A9rents codes d=E2=80=99exemple= s sont =C3=A9galement propos=C3=A9s pour mieux comprendre ses diff=C3=A9ren= tes possibilit=C3=A9s.

Une documentation tr=C3=A8s compl=C3=A8te sur le web service est disponi= ble sur le site de documentation de PrestaShop : http://doc.prestashop= .com/

Vous trouverez plus d=E2=80=99information sur REST sur la page d=C3=A9di= =C3=A9e de Wikipedia : http://en.wik= ipedia.org/wiki/Representational_State_Transfer

Comment choisir ?

Bien qu=E2=80=99elles permettent toutes de modifier le comportement et d= =E2=80=99ajouter des fonctionnalit=C3=A9s =C3=A0 une boutique, ces trois ou= tils ont des applications qui peuvent =C3=AAtre tr=C3=A8s diff=C3=A9rentes.= Le choix du bon outil n=E2=80=99est donc pas anodin.

Pour faire des modifications sp=C3=A9cifiques =C3=A0 votre boutique, qui= ne seront jamais utilis=C3=A9es ailleurs, alors dans la plupart des cas la= surcharge du coeur =E2=80=93classes ou contr=C3=B4leurs=E2=80=93 est la me= illeure solution. C=E2=80=99est en effet la m=C3=A9thode la plus naturelle,= performante et proche du coeur pour faire des modifications. Il faudr= a n=C3=A9anmoins surveiller son bon fonctionnement apr=C3=A8s une mise =C3= =A0 jour, en particulier si des corrections ont =C3=A9t=C3=A9 apport=C3=A9e= s aux fonctions que vous avez surcharg=C3=A9 ou si certaines sont devenues = obsol=C3=A8tes.

Si au contraire la modification ne doit pas s=E2=80=99appliquer =C3=A0 u= ne seule boutique mais au contraire est pr=C3=A9vue pour =C3=AAtre packag= =C3=A9e et distribu=C3=A9e, en particulier sur la place de t=C3=A9l=C3=A9ch= argement PrestaShop Addons, alors le choix du module d=E2=80=99i= mpose. Le module est =C3=A9galement le choix de la propret=C3=A9, car son s= yst=C3=A8me de hook permet imm=C3=A9diatement de voir quelles sont les modi= fications apport=C3=A9es =C3=A0 chaque =C3=A9v=C3=A9nement lanc=C3=A9 sur l= a boutique. Quelqu=E2=80=99un qui reprend le code, pour l=E2=80=99utiliser = ou pour l=E2=80=99am=C3=A9liorer, pourra imm=C3=A9diatement cerner la port= =C3=A9e d=E2=80=99action du module.

Enfin, le web service est le choix =C3=A0 privil=C3=A9gier lorsque la bo= utique doit interagir avec un logiciel externe. Cette technique permet non = seulement =C3=A0 l=E2=80=99application tierce de communiquer avec la boutiq= ue sans ajout de code, mais le web permet aussi de limiter les droits, prot= =C3=A9geant ainsi les informations confidentielles.

------=_Part_379323_996737829.1711720425162--