We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28432
    • 372 Posts
    Bonjour,

    voila juste une petit post pour me plaindre de Modx et éventuellement voir si quelqu'un à une solution...
    Je suis en train de créer un site "annuaire" qui va lister des lieu en France. Je me retrouve donc avec nos régions (20), départements (100), villes (~36 000). J'ai donc rentré tous ça avec une belle requette SQL en plus de mes quelques ressources de base une page accueil etc..., j'ouvre mon manager et la, la bonne surprise toutes mes ressources sont la ! Je vais voir mon site je clic sur une de mes ressources simple qui ont un template simple genre page d'accueil et la c'est le drame :

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 46 bytes) in /homez.xxx/xxxxxxxxxxx/www/core/xpdo/om/xpdoobject.class.php on line 614

    Vous me direz mais il faut simplement augmenter la mémoire, mais je suis sur un serveur mutualisé donc normalement pas possible (j'ai essayé par le .htaccess) et je n'ai pas les moyen de passer sur un serveur dédié.

    Donc je me plain de Modx et espère que quelqu'un pourra m'aider.
    PS : je kiff quand même Modx car il me permet de créer pas mal de site en entreprise et personnel, c'est juste qu'il n'est peut être pas adapté pour les gros projets !
    Je remercie mille fois l'équipe de Modx pour mettre à disposition un tel outil !!!

    @pluche [ed. note: Steeve last edited this post 12 years, 7 months ago.]
    • Bonjour Steeve,

      Juste une petite question, de quelle version de MODX parles-tu ?

      Enfin que cela soit Evolution ou Revolution, j’aurai envisagé le fait de stocker ces données dans des tables autres que celles des ressources. L’arborescence (tree) a ses avantages (et surtout ses inconvéniants lorsque l’on a affaire à beaucoup de contenu!).

      Je suppose que ces problèmes de mémoire surviennent lors de la génération du cache (j’imagine que le parser a du mal avec les 37 000 ressources).

      Si tu es sous Revo, je te conseillerais de lire Developing an Extra in MODX Revolution. Pour Evo, je laisserais les experts t’orienter smiley

      Bon courage
        • 36474
        • 108 Posts
        Enfin que cela soit Evolution ou Revolution, j’aurai envisagé le fait de stocker ces données dans des tables autres que celles des ressources.
        Je suis plutôt d’accord. J’aurais plutôt tendance à stocker dans plusieurs tables.
        Une table avec les infos relative à tes villes.
        Une table pour les départements.
        Une table pour les régions.

        Tu fait une carte de france ou truc dans le genre. L’internaute clic sur la ville.
        Ca le renvoi sur une page qui contient toute les valeurs relative à ta ville.

        Au bout du compte tu créais une seule page avec dedans que des variables.
        Tout est dans la base.
          • 36404
          • 307 Posts
          Salut,

          +1 avec Romain et YopYop, je poste juste pour dire que n’importe quel cms avec 37000 ressources ça ne doit pas être top smiley

          comme visiblement tu as de l’humour j’en profite pour douter qu’Amazon ait une ressource par produit... smiley toutes solutions cms/frameworks/cms e-commerce confondues il y a un moment où la gestion de n produits passe par... une seule ressource qui va piocher les données dans des tables, plus simple à tous points de vue à commencer par, pour toi même, la maintenance du bouzin !

          t’imagine le jour où tu veux faire un tri/ordonner 37000 ressources en changeant leur menuid ou la valeur d’une TV dédiée à cet effet tout ça pour en reclasser une ou deux, je n’aimerais pas être à ta place et je n’ose même pas imaginer la tête de l’arbo à gauche (j’ai des clients qui commence déjà à se perdre quand un parent a un trentaine de filles...) pour s’y retrouver quand un petit moteur de recherche avec auto completion dans un module te ramène la bonne "ressource" en un clin d’oeil... expérience vécue avec une base de données de pièce détachées pour une filiale d’air france, avec des ressources, ils m’auraient tué, là, ils m’aiment laugh

          have swing
            réfléchir avant d'agir
            • 28432
            • 372 Posts
            Salut,

            @Romain : 2.1.3-pl comme tu l’as dit le problème lors de la génération du cache mais en front office et non en back office ce qui est le plus incroyable c’est qu’il n’y as aucun soucis dans le back !!!

            @YOPYOP : J’ai bien pensé à mettre c’est paramètre que dans la base de données mais chaque ville comportera une ou plusieurs ressources avec la possibilité de commenté de voir la position googleMap de pouvoir votés pour ce lieu etc... C’est pour cela que chaque endroit doit être une ressource. Du coup j’ai simplement plassé toutes les villes dans la base et mis ça en Tv pour chaque endroit... j’ai quand même gardé mais Région Départements pour pouvoir un minimum classé dans mon arborescence de Modx !

            @virtualgadjo : Aucun besoin de lister les 37 000 ressources car ce sont les villes de france si la personne cherche par région j’affiche les 3 ressources les mieux notés des départements de cette région, si la recherche par département j’affiche les 10 ressources les mieux notés de ce département, si c’est par ville ben j’affiche tous les ressources de la ville (il n’y en auras pas plus de 10). Pk faire 37 000 ressources justement pour m’y retrouver plus facilement dans le back office... le problème viens du cache du front Modx lui il gère grave le server pas du tout !

            Merci en tout cas pour vos réponses !
            Ps : je suis autodidacte et donc mais connaissance sont quand même limité wink
              • 36474
              • 108 Posts
              le plus incroyable c’est qu’il n’y as aucun soucis dans le back !!!
              A mon avis le back-office doit mieux répartir la charge entre le serveur et ton ordinateur.

              J’ai bien pensé à mettre c’est paramètre que dans la base de données mais chaque ville comportera une ou plusieurs ressources avec la possibilité de commenté de voir la position googleMap de pouvoir votés pour ce lieu etc... C’est pour cela que chaque endroit doit être une ressource. Du coup j’ai simplement plassé toutes les villes dans la base et mis ça en Tv pour chaque endroit... j’ai quand même gardé mais Région Départements pour pouvoir un minimum classé dans mon arborescence de Modx !
              Je me doutais que tu allais me dire un truc dans ce genre. Il est vrai que dans certains cas tu peux ne pas avoir le choix. Dans ton cas c’est kiff kiff mais je comprends ta position.
              Sinon une table pour tes villes, une table pour les commentaires par ville, etc...
              C’est vrai qu’il y aurait un gros travail de conception de base de données.
              Néanmoins, la base de données reste le meilleur moyens pour traiter ton problème. Je peux comprendre que se soit rebutant surtout avec Xpdo.
              Sur 37000 ressources tes temps d’accès n’auront rien avoir. J’ai fait des test avec Modx evolution et des centaines de millier d’enregistrements les temps d’accés des pages ne dépassent pas la seconde.
              Cependant ton problème est interessant.

              le problème viens du cache du front Modx lui il gère grave le server pas du tout
              Dans ce cas tu as peut-être un probleme de dimensionnement du serveur. c’est interessant comme probleme. Faudrait faire des tests en local sur serveurs différents ou sur même serveur avec configuration différentes.


              je suis autodidacte et donc mais connaissance sont quand même limité Wink
              Et ben moi je suis plus autodidacte que toi.
                • 36404
                • 307 Posts
                hello,

                je ne connais pas suffisamment bien revo pour affirmer trop de choses à son sujet (à part que je préfère evo smiley) mais, à mon avis, le back fonctionne bien parce que... pas de cache smiley et, effectivement, une grosse partie de la charge est côté client grâce à notre ami javascript...

                itou pour evo, j’ai jonglé avec beaucoup plus de données que 37000 lignes, le tout dans des tables relationnelles, même constat, les pages sont livrées très rapidement

                le serveur n’est effectivement pas censé gérer de cache sans qu’on lui demande sinon on irait vers de gros soucis de mises à jour, en revanche, si on lui demande gentiment, php sait gérer un cache (fonctions ob_ + fichiers textes, très bon tuto sur le site du zéro...) mais, honnêtement ce n’est utile que dans le cas de forte fréquentation avec du contenu velu...
                Un autre moyen de s’en dépatouiller est de générer des fichiers json (ou xml bien sûr mais pouah) pour tes villes régions par ex, ça t’évitera des requêtes

                mais bon, encore une fois, 37000 villes associées à des régions des coordonnées gps pour google map, un peu de blabla plus des votes, le café du p’tit déj pour php smiley

                autodidacte aussi smiley

                Have swing
                  réfléchir avant d'agir
                  • 28432
                  • 372 Posts
                  Salut,

                  merci à tous pour vos avis respectif, je vois qu'il y as du niveau chez les Modxiens ! Je ne suis toujours pas arrivai à gérer mon problème mais je ne désespère pas malgré tous ces bons conseils...

                  A bientôt et viva la Revolution Modx !