Ben yazdım CMS uygulamasında aşağıdaki dizin yapısı vardır:
/application
/modules
/cms
/filemanager
/block
/pages
/sitemap
/youtube
/rss
/skin
/backend
/default
/css
/js
/images
/frontend
/default
/css
/js
/images
Application contains code specific to the current CMS implementation, i.e code for this specific cms. Modules contain reusable portions of code that we share across projects, such as libraries to work with youtube or rss feeds. We include these as git submodules, so that we can update the module in any website and push the changes back across all other projects. It makes it really easy to apply a change to our code and distribute it. We wanted to turn the CMS into a module so we get the same benefit - we can run the entire project under source control, then update the cms as required through a git-submodule. We have run into a problem however: the cms requires javascript/images/css in order for it to work correctly.
Biz düşündüm şeyler:
Biz 2 submodules, cms-cilt için bir tane ve cms için bir tane oluşturabilir, ama bu bazı fikir kalmadan "git çekme" bir versiyonunu olamaz anlamına gelir cilt çalışma sürümleri hangi cms sürümleri. yani sürüm 1.2.2 CMS 1.0.3 CMS-Cilt ile ilgili sorunlar olabilir
Biz cms modülüne cilt eklemek olabilir ama bu şu sorunları var:
- Cilt belge kök üzerinde mevcut olmalıdır, modül kod olmamalı, ve eğer muhtemelen. Htaccess ile güvence altına alınmalıdır
- Bu php kodu ile herhangi bir anlamda donatılacak varlıkları yapmak için görünmüyor
- Biz arasında bir sembolik bağ oluşturabilir / deri / backend / / modules / cms / deriye gidin ama biz çalışmaya uygulama için bir sembolik bağ gibi bir şey gerektirir istiyorsun bu neden herhangi bir güvenlik sorunları etmez ve?
- Biz bir güncelleme çıkar, ama bu bir projede CMS çekirdek dosyaları düzenlemek için yeteneğini kaybetmek demektir zaman dosyaları kopyalar modules / cms / deri cilt / backend'ine sonra onları geri itmek Git veya bir kabuk komut dosyası için bir kanca oluşturabilir
Nasıl bu genellikle büyük ölçekli CMS yapılır? Nasıl bir müşteri için uygulama üzerinde çalışmak, sürüm kontrolü altında bir cms için kaynak kodunu almak mümkündür, o bültenleri gibi sourcecode güncelleme ve satıcı tarafından verilen? Nasıl Magento ya da Drupal gibi uygulamalar yaparsınız?