2012-07-06 10 views
12

Oldukça büyük bir projede zf ve git ile çalışırken bazı sorunlar yaşıyorum. ZF uygulamasının yaklaşık 20 modülü vardır ve şimdilik her şey tek bir git deposunda saklanır. Bu nedenle, uygulamayı kontrol ettiğinizde, tüm modül setlerini, css sayfalarını, js dosyalarını, vb. Kontrol edin.Büyük projelerde zend framework ve git ile çalışma

Ne yapmak isterim, wordpress veya drupal gibi bir şeydir: temel uygulamanız ve her biri için Modül, modül dizininde kontrol ettiğiniz ayrı bir git deponuz var. Ödeme yapıldıktan sonra, üzerinde çalışırsınız ve sonra bunu taahhüt edersiniz. Ancak zend ile bunu yapamazsınız çünkü medya dosyaları (css, js, images)/public dizininde farklı bir dizinde saklanır (örneğin her modül kendi css'sine,/public/_MODULE_NAME_/css dosyasındaki js dosyalarına sahip olabilir))./Application/modules/içinde çalışıyorum.

Soru, zend framework modüler uygulamaları ve git ile nasıl çalışıyorsunuz?

Genellikle webfolder bir süper proje olan ve farklı bir klasörden Modülleri sembolik bağlantılarını, yumuşak bağlantıların bir kurulum ile başa çıkmak için yönetmek
+3

Statik kaynaklarını (CSS, JS, vb.) Her zaman modül dizininizin içine yerleştirebilir ve ya bunları "public" olarak bir derleme görevi olarak kopyalayabilir ya da benzer bir soruna benzer bir şekilde "public" – Phil

+0

sesine yansıtabilirsiniz. bir zamanlar vardı: http://stackoverflow.com/questions/6680768/how-do-i-organize-my-git-repo – eckes

+0

ZF2'de modüller tamamen bağımsızdır, bir alt modül olarak eklenebilirler (tamamen ayrı bir repo), fakat ZF1'de verilen yapısı ile bu mümkün değildir. – bedeabza

cevap

2

: rol aldı dizinleri depolarıdır

* SuperProject/ 
    + application/ 
    + ModuleA --> ../../Modules/ModuleA/application 
    + ModuleB --> ../../Modules/ModuleB/application 
    + config/ 
    + views/ 
    + layouts/ 
    + public/ 
    + ModuleA --> ../../Modules/ModuleA/public 
    + ModuleB --> ../../Modules/ModuleB/public 
    + css/ 
    + js/ 
    + library/ 
+ Modules/ 
    * ModuleA/ 
    + application/ 
     + config/ 
     + views/ 
     + models/ 
    + public/ 
     + css/ 
     + js/ 
    * ModuleB/ 
    + application/ 
     + config/ 
     + views/ 
     + models/ 
    + public/ 
     + css/ 
     + js/ 

, superproject/kamu http sunucusu için giriş noktasıdır (symlinks ile elbette etkinleştirilmiş). SuperProject deponuza herhangi bir Modül-Dosya ekleyemezsiniz, fakat sadece global dizinlerdeki değişiklikler (ör. Uygulama/config /) - en iyisi .git_ignore-dosyası aracılığıyla Modülleri görmezden gelirsiniz. Bu yöntem, sembolik bağlara dayanarak, sadece unixoid sistemlerde çalışacaktır. Mükemmel olmasa da, en az güçlük.

+0

: Bu kavşaklarla Win32 üzerinde çalışabilir (http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx, http://en.wikipedia.org/wiki/Symbolic_link # NTFS_Junction_points)? – eckes

+0

@eckes bu işe yarayabilir, henüz denemedim. Ancak hızlı bir araştırmadan, unixoid bir sembolik bağlantı olarak aynı özelliği uyguladığı görülüyor. Test etmek için bir windows sisteminiz var mı? Sadece – Lars

+0

. Ve gerçekten ilginç olan şey (NTFS sembolik linkleri de destekleyen dosyaları, sadece klasörleri değil, http://en.wikipedia.org/wiki/NTFS_symbolic_link) orada çalışmıyor ama en azından Vista'ya ihtiyaç duyuyor. – eckes