我在CMS應用下面的目錄結構,我們已經寫:版本控制內容管理系統?
/application
/modules
/cms
/filemanager
/block
/pages
/sitemap
/youtube
/rss
/skin
/backend
/default
/css
/js
/images
/frontend
/default
/css
/js
/images
應用程序包含特定於當前CMS實現代碼,即代碼爲這個特定釐米。 模塊包含我們在各個項目之間共享的代碼的可重複使用部分,例如與YouTube或rss提要一起使用的庫。我們將它們包含爲git子模塊,以便我們可以更新任何網站中的模塊,並將更改推回到所有其他項目中。它使得對代碼進行更改並分發它變得非常簡單。我們希望將CMS變成一個模塊,以便獲得同樣的好處 - 我們可以在源代碼控制下運行整個項目,然後根據需要通過git子模塊更新cms。但是,我們遇到了一個問題: cms需要javascript/images/css才能正常工作。
事情,我們曾經想過:
我們可以創建2個子模塊,一個CMS的皮膚,一個用於CMS,但這意味着你不能「混帳拉」一個版本,而不必的一些想法哪些版本的皮膚與哪些版本的cms一起工作。即1.2.2版CMS可能與1.0.3 CMS-皮膚問題
我們可以在皮膚添加到CMS模塊,但這有以下問題:
- 皮膚應該可以對文件根本,模塊代碼不應該,如果它應該可以通過.htaccess
- 保護它似乎沒有任何意義與php代碼捆綁資產
- 我們可以創建一個/皮膚/後端/去/模塊/ cms /皮膚,但這會導致任何安全問題,我們是否需要像一個符號鏈接該應用程序工作?
- 我們可以創建一個git鉤子或一個shell腳本,用於在發生更新時將文件從modules/cms/skin複製到皮膚/後端,但這意味着我們將無法在項目中編輯CMS核心文件,然後將它們推送回到
這是怎麼一般在大型CMS的呢?如何在版本控制下獲取cms的源代碼,爲客戶端應用程序,然後將源代碼更新爲供應商提供的版本?像Magento或Drupal這樣的應用程序如何做到這一點?
當然 - 我知道git repos通過他們的sha-hash跟蹤子模塊的當前狀態,問題是雖然把cms-skin放在cms裏會導致很多其他問題,我在上面解釋過 – Mike 2010-04-13 10:50:48
@Mike:是的,但我沒有得到確切的限制。這個想法是在cms中的適當位置插入/插入皮膚,b /插入皮膚版本(即特殊分支),並重新組織內容以符合其新位置(即在cms內) – VonC 2010-04-13 11:00:47
「皮膚應該是可以在文檔根目錄下找到,模塊代碼不應該,如果是的話,它應該可以通過.htaccess進行保護「 – Mike 2010-04-15 10:16:24