Plus récemment, je suis devenu développeur de modules complémentaires CS Cart. C'est arrivé par hasard: j'ai été embauché pour travailler dans le réseau de boutiques en ligne de Saint-Pétersbourg vendant des vapes et toutes sortes de choses intéressantes pour répondre aux besoins physiques des couples souffrants et des célibataires (qui ne comprenaient pas - pas encore mûrs). Les deux boutiques en ligne sont déployées sur deux vitrines avec des domaines différents, mais un panneau d'administration et une base de données commune. Quel est son problème? Je pense que beaucoup a été écrit sur CMS, mais j'ajouterai ma mouche dans la pommade.
Parcourez le module à travers la forêt de répertoires
Dans le processus de développement du premier module pour cette plate-forme, j'ai été confronté à de nombreux problèmes qui, comme je le pensais, ayant de l'expérience avec la POO, ainsi qu'avec le CMS MODX Revo, ne devraient pas exister. La première chose qui a attiré mon attention a été la structure très complexe et déroutante du module:
root/ ├─ app/ │ └ addons/ <- │ └ [id_]/ <- │ ├─ controllers/ <- │ │ ├─ backend/ <- │ │ │ ├─ [_].php <- │ │ │ ├─ [].pre.php <- │ │ │ └─ [].post.php <- │ │ ├─ common/ <- │ │ │ ├─ [_].php │ │ │ ├─ [].pre.php │ │ │ └─ [].post.php │ │ └─ frontend/ <- │ │ ├─ [_].php │ │ ├─ [].pre.php │ │ └─ [].post.php │ ├─ database/ <- MySQL │ ├─ schemas/ <- PHP │ │ └─ [_]/ <- ( ) │ │ └─ [_].post.php <- │ ├─ Tygh/ <- │ │ ├─ Shippings/ <- │ │ │ └─ Services/ <- │ │ │ └─ [].php <- │ │ └─ [].php <- │ ├─ addon.xml <- │ ├─ config.php <- │ ├─ func.php <- │ └─ init.php <- ├─ design/ │ ├ backend/ <- │ │ ├ css/ <- │ │ │ └ addons/ │ │ │ └ [id_]/ <- │ │ │ ├ styles.css <- │ │ │ └ styles.less │ │ ├ mail/ <- Email │ │ │ └ templates/ │ │ │ └ addons/ <- │ │ │ └ [id_]/ <- │ │ │ ├ hooks/ <- │ │ │ │ └ [_]/ <- │ │ │ │ ├ [_].pre.tpl <- │ │ │ │ ├ [_].post.tpl <- │ │ │ │ └ [_].override.tpl <- │ │ │ ├ [_]_subj.tpl/ │ │ │ └ [_].tpl/ │ │ ├ media/ <- │ │ │ └ images/ │ │ │ └ addons/ │ │ │ └ [id_]/ <- │ │ │ ├ _1.jpg/ │ │ │ └ _2.png/ │ │ └ templates/ <- │ │ └ addons/ │ │ └ [id_]/ │ │ ├ hooks/ <- │ │ │ ├ index/ <- │ │ │ │ ├ scripts.post.tpl <- │ │ │ │ └ styles.post.tpl <- │ │ │ └ [_]/ │ │ │ ├ [_].pre.tpl <- │ │ │ ├ [_].post.tpl <- │ │ │ └ [_].override.tpl <- │ │ ├ views/ <- │ │ │ └ [_]/ <- │ │ │ └ [_].tpl <- (mode) │ │ └ overrides/ <- │ │ └ ... <- │ │ │ └ themes/ <- — │ └ [_]/ <- │ ├ css/ <- │ │ └ addons/ │ │ └ [id_]/ │ │ ├ styles.css <- CSS │ │ └ styles.less <- LESS │ ├ mail/ <- │ │ └ templates/ │ │ └ addons/ │ │ └ [id_]/ │ │ ├ hooks/ <- │ │ │ └ [_]/ │ │ │ ├ [_].pre.tpl │ │ │ ├ [_].post.tpl │ │ │ └ [_].override.tpl │ │ ├ [_]_subj.tpl/ <- │ │ └ [_].tpl/ <- │ ├ media/ <- │ │ └ images/ │ │ └ addons/ <- │ │ └ [id_]/ │ │ ├ _1.jpg/ │ │ └ _2.png/ │ └ templates/ <- │ └ addons/ │ └ [id_]/ <- │ ├ hooks/ <- │ │ ├ index/ <- │ │ │ ├ scripts.post.tpl <- │ │ │ └ styles.post.tpl <- │ │ └ [_]/ <- │ │ ├ [_].pre.tpl <- │ │ ├ [_].post.tpl <- │ │ └ [_].override.tpl <- │ ├ views/ <- │ │ └ [_]/ <- │ │ └ [_].tpl <- │ └ overrides/ <- │ └ ... <- │ ├ js/ <- │ └ addons/ │ └ [id_]/ │ └ func.js/ └ var/ <- └ themes_repository/ <- └ [_]/ └ ...
, , , , , , . : , AJAX , CMS JS , . , , 3-4 -, , , .
, , , .
- ,
, , . , , , , : " ?!" - Google LightHouse, , 20 10 , . . , CMS - , , PHP, , , . ? - : CMS 2003-2004 , MyISAM.
MyISAM - , 50 000 (!) ( ). , , InnoDB. - 500 - 1000 .
. 50 000 ? " " - . , SEO . . : . , , . , , . , "" -.
- , , , .
? 100
, - "". cron - . , , - . , - . , , 100$ . , , , , , CMS . CMS, , , , , , , .
Conclusion
Je ne crois pas que la situation avec ce CMS changera jamais et je suis vraiment désolé pour ceux qui, ayant une énorme base de nomenclature, s'assoient dessus et paient de l'argent fabuleux pour toutes les touches finales. Mais je veux croire que, au moins dans mon magasin, je pourrai surmonter certaines de ses lacunes.
J'espère que l'article vous a intéressé. J'écrirai plus sur mes recherches dans ce CMS ou sur le développement de modules pour celui-ci.