Git ile Wordpress


21

Bu soruyu soruyorum çünkü internette aradım ancak doğru çözümü bulamıyorum. Aslında, birden fazla geliştiricinin, tek bir wordpress projesi üzerinde, birbirleriyle uğraşmadan herhangi bir karışıklık yaratmadan çalışabilecekleri bir çözüm istiyorum, ama wordpress'te her şeyin, hangi eklentinin aktif olduğu ve hangilerinin olmadığı gibi veritabanında tutulduğunu biliyoruz.

Geliştiriciler, yerel projelerine, her birinin belirli bir eklentiyi veya eklentileri vb. Yüklemesi gerektiği konusunda birbirleriyle iletişim kurmalarından daha fazla eklenti yüklerse ve bazı geliştiriciler, her geliştirici kodu zorlarsa / çekerse, başkalarının sitesini bozabilir.

Veritabanını da paylaşmalı mıyız, eklenti / tema ayarlarını paylaşmak için geliştiriciler arasında herhangi bir çakışma ya da küçük bir çakışma olmamalıdır.

Teşekkürler


5
wp-cli.org iş akışınızla ilgili size biraz yardımcı olacaktır.
16'da

1
Mümkünse jekyll veya benzerine geçin.
Jens Schauder

Jekyll açıkçası git ile iyi çalışan github içine pişirilir ...
DaveRGP

FWIW, Git gibi bir şey kullanırken çarpışmalar ve çatışmalar tamamen ortadan kalkmaz, sadece "birleştirmeye" hazır olana kadar söz konusu çatışmaları uzak tutmanıza izin verir.

1
Tüm geliştiriciler genel olarak barındırılan ortak bir DB'yi paylaşabilir ve sürüm kontrolü için GIT'e bağlı kalabilir mi?
MonkeyZeus

Yanıtlar:


18

Eklentiler için Git :

Ardından, composer.jsonTGM eklentisindeki değişiklikleri yönetmek ve Git'i kullanın .

En zor kısım veritabanını senkronize etmektir :

Kesinlikle veritabanını paylaşmalıyız. Bir eklenti ayarlarını / seçeneklerini yeniden yapılandırmak iyi bir fikir değildir.

Ücretsiz ve premium, yardımcı olabilecek birçok eklenti vardır .

El şey, anonim denemek isterseniz wp-cli ile cevap @Wyck arasında.


8

Ekibim de benzer bir sorunla karşı karşıya kaldı. Eklentiler ve yazdığımız temalar gibi kendi özel kodumuzu geliştirmek için git kullanıyoruz. Composer'ı , yazmadığımız eklentiler gibi bağımlılıkları yönetmek için kullanıyoruz . Herkesi senkronize etmek için composer.json ve composer.lock dosyalarını git içine kontrol ederiz. Her geliştiricinin git master şubesini çekmesi ve oyun composer updateparklarını sık sık çalıştırması beklenir, böylece herkes güncel kalır.

Veritabanında, geliştiriciler çoğunlukla yapılandırmaya önem verir ve yapılandırmayı senkronize tutmak için sık sık WP-CLI kullanıyoruz . Örneğin, eklentileri sunucu başına esasına göre etkinleştirmek veya devre dışı bırakmak için WP-CLI komutunu çalıştıran bir kabuk komut dosyasına sahibiz; Bazı eklentiler, yalnızca içerik hazırlama sunucumuzda kullanılır, örneğin, komut dosyası herhangi bir ana bilgisayarda çalıştırılabilir ve yalnızca bu ana bilgisayarda uygun ayarları etkinleştirir. Komut dosyası için çok zaman harcayan bazı yapılandırmalar yalnızca belgelenir ve gerekirse manuel olarak çoğaltılır.

Ayrıca, veritabanını içerik hazırlama sunucumuzdan bir QA veya dev ana bilgisayarına tamamen klonlayacak bir perl komut dosyası var. Devs, tüm mevcut içeriği isterlerse, bunu kod ve yapılandırmaya sahip olmaktan daha az önemli olsa da, periyodik olarak kullanabilirler. Komut şu görevleri yerine getirir:

  • içerik aşamalandırma sunucusunun veritabanına ait mySQL dökümü, tablo adlarını değiştirme, hedef sunucunun veritabanına yükleme
  • Hedef sunucuya başvurmak için veritabanı içindeki hazırlama sunucusuna yapılan başvuruları değiştirmek için wp-cli komutunu kullanın.
  • Hedef sunucudaki uploads dizinini, içerik hazırlama sunucusunun yüklemeleriyle senkronize edin.

Hızlı bir şekilde gelen veritabanını gerçekten sürümlemek için bazı umut verici çözümler var. VersionPress ve Mergebot tanıdığım iki kişi ve diğerleri de olabilir.

Blog'umda git ve Composer ile birlikte çalışmak için WordPress'i nasıl kurduğumuz hakkında daha fazla teknik detay yazdım . Git'te tutmak istediğimiz kod ile WordPress çekirdeği arasında temiz bir ayrım yapmak için WordPress çekirdeği ile kendi dizininde çalışmak gerekliydi. WordPress'in kendisini bir bağımlılık olarak görüyor ve Composer ile yönetiyoruz.


7

Bunu gördüğüm en iyi çözüm Bedrock'u kullanmaktır ( https://roots.io/bedrock/ ).

Bu sorunun diğer cevapları (Besteci ve eklentilerinizi yönetecek bir şey) iyi cevaplardır; Ancak Bedrock, kendi yöntemlerinizi kullanmanız için tercih edilen, sistemli, desteklenen, belgelenmiş, sürekli iyileştirilmiş bir yol sunar.

Ayrıca, temanız için bir tane, geliştirdiğiniz her bir özel eklenti için bir tane ve daha sonra Bedrock / Wordpress kurulumunun kendisi için bir tane 'usta' olabileceğinizi unutmayın.


“Bedrock, kendi yöntemlerinizi kullanmanız için tercih edilen, sistemli, desteklenen, belgelenmiş, sürekli iyileştirilmiş bir yol sunar.” Onaylayabilir, Bedrock harika! Sage (aynı kişiler tarafından geliştirilen Roots) ile birlikte kullanın ve bir takım boyunca özel gelişim iyi yönetilebilir. Hala hıçkırık var ve @ Dan9 cevabı daha tamamlandı, ama Bedrock'un övgülerinin yeteri kadar söyleyemem!
16'da

Bir MVC geliştiricisi olarak katılıyorum, ancak WordPress sitelerinde yaptığım iş türü yoğun bir şekilde ön plana çıkıyor, bu nedenle Sage'teki varlık yönetimi kurulumu, zaman zaman global olan kötü uygulamalara değer.
Samrap

0

Eğer tema veya özel bir eklenti üzerinde çalışan tüm eklentileri yüklemeniz kesinlikle gerekliyse, veritabanını da paylaşırdım.

Farklı geliştirme ortamlarını güncel tutmak için git ve besteci kullanıyoruz . Sadece en son değişiklikleri çekin ve besteciyi yeniden çalıştırın.


0

Bunun için öncelikle WordPress dizin yapısını anlamamız gerekiyor. WordPress dizini yapısı gitonunla kullanmak için kullanıcı dostu değildir . Bu yüzden bunu oldukça gitkolay değiştirilmiş mimari ile kullanmanızı öneririm . Hayır, paniklemeye gerek yok. Bunu mutlaka oluşturmak zorunda değilsiniz. Dışarıda bu türden bir kazan plakası veya yapılandırılmış WordPress sistemi var. Onlardan birini seç ve kodlamaya başla.

Şimdi iyi organize edilmiş kod ya da kırılabilir kod yazma noktasına gelin. Biz aslında bizim kod koymak wp-content\themes\your-themeveya wp-content\themes\your-theme. Böylece gitdost WordPress kazanlarının çoğunda wp-contentparça ayrılmış durumda. Ve çoğunlukla WordPress repo'yu çekiyorlar composer. Tüm projeyi çok daha temiz hale getiriyor.

Eklentileri senkronize etmek diğer önemli bir bölümdür. Eklentinizi yüklerseniz daha iyi olur composer. Proje kodunu daha temiz hale getirir. Burada WordPress eklentilerini nasıl yükleyeceğinize genel bir bakış bulacaksınız composer.

Şimdi en önemli bölüme gelin, veritabanını nasıl senkronize edeceğinizi. 2 şekilde daha kolay yapılabileceğini düşünüyorum.

  • Tüm geliştirici bir uzak veritabanı kullanmalıdır. Ve sık sık bunun bir yedeğini oluşturur.
  • WordPress'in ithalat ihracat tesisini otomatikleştirin. Karmaşık görünüyor, ama değil. Sadece biraz google yapın, umarım bunu yapabilirsiniz.

Umarım bu size yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.