Sürüm bir içerik yönetim sistemi kontrol?

1 Cevap php

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:

    1. 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
    2. Bu php kodu ile herhangi bir anlamda donatılacak varlıkları yapmak için görünmüyor
    3. 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?
    4. 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?

1 Cevap

Ben CMS projelerle aşina değilim, ama sen yapabilirsin:

  • 2 submodules, cms-cilt için bir tane ve cms için bir tane oluşturun
  • cms içinde yuvalanmış bir altmodülün olarak cms-deri kullanın

cms CMS taahhüt her zaman anlam cms-ciltler için bir "ana projesi" olacağını, ilk cms-cilt taahhüt olurdu, ve "cms işlemek" zaman kullanılan cms-cilt tam SHA1 başvuru atılmak istiyorum bir taahhüt.

Sadece CMS çekin ve onunla Bu şekilde ihtiyacınız cms-cilt tam sürümünün gelecek.

Daha fazla bilgi için, altmodülün gerçek doğası hakkında SO answer bu bkz.