CS Cart atau duri ke lubang hitam kruk dan pengoptimalan

Baru-baru ini, saya menjadi pengembang add-on CS Cart. Itu terjadi secara kebetulan: Saya dipekerjakan untuk bekerja di jaringan toko online St. Petersburg yang menjual vape dan segala macam hal menarik untuk memenuhi kebutuhan fisik pasangan dan lajang yang menderita (yang tidak mengerti - belum dewasa). Kedua toko online ditempatkan di dua etalase dengan domain berbeda, tetapi satu panel admin dan database umum. Ada apa dengan dia? Saya pikir banyak yang telah ditulis tentang CMS, tetapi saya akan menambahkan lalat saya di salep.





Perjalanan ke modul melalui hutan direktori

Dalam proses pengembangan modul pertama untuk platform ini, saya menghadapi banyak masalah, yang menurut saya, memiliki pengalaman dengan OOP, serta dengan CMS MODX Revo, seharusnya tidak ada. Hal pertama yang menarik perhatian saya adalah struktur modul yang sangat kompleks dan membingungkan:





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, , , , , , , .





Kesimpulan

Saya tidak percaya bahwa situasi dengan CMS ini akan berubah dan saya benar-benar merasa kasihan kepada mereka yang, memiliki basis nomenklatur yang besar, duduk di atasnya dan membayar uang yang luar biasa untuk semua sentuhan akhir. Tetapi saya ingin percaya bahwa, setidaknya di toko saya, saya akan dapat mengatasi beberapa kekurangannya.





Saya harap artikel ini menarik bagi Anda. Saya akan menulis lebih banyak tentang penelitian saya di CMS ini atau tentang pengembangan modul untuk itu.








All Articles