Développer avec RBS Change : [Résolu] Type AOP modifiée pour un document

  • 80376.1

    26/08/2013 10:01


    ehochedez
    Rang : Membre
    Bonjour,

    J'ai un problème que je n'arrive pas à résoudre avec une réécriture de document. Nous avions un AOP sur le document topshelf.class.php. Par la suite nous avons eu besoin de rajouter des propriétés à ce document donc nous avons retiré l'AOP du fichier "aop.xml" pour faire une réécriture de document complète de type
    "create-document monModule topshelf"
    "add-document monModule topshelf"

    J'ai donc bien dans monModule un "topshelf.class.php" , un "topshelf.xml", et un "topshelService.Class.php" qui ont été créés et qui fonctionnent correctement. J'ai supprimé le fichier monModule/lib/aop/topshelf.class.php".

    Mon problème est que dès que je lance la commande "change.php update-autoload --refresh-cli-autoload", j'obtiens l'erreur :

    [ERROR] Duplicate monModule_persistentdocument_topshelf in /var/www/monProjet/modules/monModule/persistentdocument/topshelf.class.php and lib/aop/shelf.class.php 


    car effectivement il recrée à chaque fois un lien symbolique "shelf.class.php" qui pointe vers "modules/monModule/persistentdocument/topshelf.class.php".

    Si je supprime ce lien symbolique ma commande va passer mais le lien symbolique sera recréé et la prochaine fois la commande ne passera pas.

    Avez-vous une idée de quel est le problème ? Peut-être que l'ancien AOP est encore défini quelque part ? (j'ai tout essayé, clear-all, compile-all, update-autoload...)

    Merci de votre aide
  • 80376.2 en réponse à 80376.1 écrit par ehochedez

    02/09/2013 09:24


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    Ce qui m'étonne c'est que vu votre erreur, il semble trouver une class ..._topshelf dans lib/aop/shelf.class.php.

    À mon avis votre problème vient de là : vous avez encore une AOP sur shelf mais le fichier qui la contient contient aussi une classe topshelf qui est chargée à ce moment là et cause un conflit...
  • 80376.3 en réponse à 80376.2 écrit par Gaël Port

    04/09/2013 03:01


    ehochedez
    Rang : Membre
    Bonjour Gaël,

    Merci de ta réponse.
    Non il ne semble pas y avoir d'AOP sur shelf. Le fichier s'appelait bien shelf.class.php auparavant mais la classe réécrite à l'intérieure était bien topshelf, je pense que c'était simlement un problème de nommage de fichier.

    J'ai essayé de suivre le --refresh-cli-autoload pour trouver l'endroit ou le lien symbolique se crée mais je n'ai pas réussi car il semble appeler des fonctions dynamiquement crées dans le dossier .change dont l'utilisation m'est encore un peu obcure..

    La suppression des dossier suivants semble fonctionner :
    - cache/[PROFILE]/aop
    - cache/[PROFILE]/aop-backup
    - cache/[PROFILE]/autoload
    - Le contenu du dossier .change/autoload/ sauf le fichier .computedChangeComponents.ser

    Merci à nouveau de ton aide.

    Édité par ehochedez 04/09/2013 03:12

 
Merci de prendre connaissance et de respecter les règles des forums.
 
1471 membres
Aucun membre connecté