Wordpress ve Joomla! 'Nın yazılım mimarisi arasındaki temel farklar nelerdir ve temel işlevleri nasıl genişletilir?


14

* NOT: Bu değil sorusu 'iyi olan' a *!

Wordpress ve Joomla! ikisi de harika açık kaynaklı CMS'lerdir.

Temel farklar nelerdir

1) Joomla! ve Wordpress?

2) çekirdek (kutudan çıkarılmış) fonksiyonelliğine hangi uzantıların yapıldığı? ve

3) Çekirdek ve uzantılar nasıl yükseltilir ve güncellenir?


1
Bildiğim kadarıyla - 1.wp mvc değildir ve toplam web sitesi daha bloglama özellikleri hakkında bakım eğilimindedir. 3. ama wordpress yükseltme işlemi wp eklentileri uyumsuzluk ihmal joomla daha iyidir.
dev-m

2
Bu yorum, belirli veya kesin bir cevap vermek için çok geniştir ("doğru" olabilecek birçok cevap vardır - soru yazmamaya iyi bir örnek). Lütfen sorunuzu daha belirgin hale getirmeyi düşünün.
Andrew Eddie

Yanıtlar:


18

Hem Wordpress hem de Joomla! saygın ve her biri onları karşılaştırdığınızda benzersiz avantajları var.

Sorularınızı cevaplamak için:

arasındaki yazılım mimarisinde ve Wordpress

  • Joomla OOP (nesne yönelimli) ve MVC (nesne yönelimli bir tasarım deseni) 'dir.

  • Wordpress yordamsal kodda yazılmıştır.

Prosedürel programlama , programın istenen duruma ulaşmak için atması gereken adımları belirtirken, nesne yönelimli programlama ("OOP"), programları etkileşimleriyle birlikte nesnelere veya veri yapılarına ve yöntemlere dönüştürür .

Basit programlar için, yordamsal kod (satır satır komutları düşünün) harika çalışır, ancak büyük karmaşık uygulamalar için yordamsal kodun bakımı daha zor olabilir - genellikle spagetti kodu olarak adlandırılanla sonuçlanır (yani satır satır satırlık komut dizisi birçok GOTO, istisna, iplik veya diğer dallanma yapılarını kullanmaya başlar ve akışı kavramsal olarak bir kase spagetti gibi olur). Başka bir deyişle, Prosedür kodu basit başlar, ancak karmaşık ve karışık olabilir.

Bu nedenle, daha karmaşık uygulamalar OOP ve MVC ile daha iyi yapılandırılabilir - bir çok hareketli parça içeren gerçekten karmaşık programlar oluşturmak için daha uygun olan daha gelişmiş bir programlama tarzı.

Prosedür kodunun başlangıçta basit programlar için yazılması ve bakımı daha kolay olsa da, OOP, değişkenleri (OOP'ta 'özellikler' olarak adlandırılır) işlevlerini (OOP'ta 'yöntemler' olarak adlandırılır) paketlerini düzgün bir şekilde bir araya getirebilmesi açısından avantajlara sahiptir. daha düzenli, okunması, bakımı ve genişletilmesi kolay kod.

Çoğu Wordpress uygulaması için (örn. Basit bloglar), prosedür kodu mükemmel şekilde çalışır.

Daha karmaşık uygulamalar için (örneğin, kullanıcı grubu izinleri gerektiren ve çok sayıda uzantı kullanan özellikler ve işlevleri genişletmek için kullanılanlar), OOP genellikle çok daha zarif bir yaklaşım olarak kabul edilir.

Sonuç olarak:

Worpress'in yazılım mimarisi (yordamsal koda dayalı olarak) basitlik açısından güçlü yönlere sahiptir, ancak yordamsal kod sağlam genişletilebilirliğe sahip karmaşık uygulamalar için ideal değildir.

Yazılım mimarisi (OOP / MVC) daha karmaşık görünebilir, ancak iyi tasarlandığında OOP / MVC aslında bir uygulamanın özelliklerini ve işlevlerini genişletmeyi ve tüm bu uzantıların uyumlu bir şekilde çalışmasını kolaylaştırır.

Farkları anlamak istiyorsanız (temel başlangıç ​​seviyesinde), PHP Prosedürü ile PHP OO ve PHP MVC'yi Peham Raza tarafından okuyun - her birinin 'giriş ve çıkışlarını' daha iyi anlamayı kolaylaştıracak şekilde tartışır.

temel (kullanıma hazır) işlevsellik uzantılarının ne şekilde yapıldığı?

  • Joomla, Modül, Bileşen, Eklentiler ile özellikler ekledi
  • WorPress, özelliği genişletmek için eklenti kullanır.
  • Joomla modülü, eklentisi veya bileşen oluşturma konusunda katıdır (dosyaları FTP ile yükleyemez ve sadece etkinleştiremezsiniz, Extension yükleyici ile yapmanız gerekir).

Çekirdek ve uzantılar nasıl yükseltilir ve güncellenir?

  • Her ikisi de yükseltme veya güncellemeler için neredeyse aynı tekniği kullanıyorlar. (Geliştiricilere uzantılar veya geçersiz kılma ile şablon değişiklikleri içeren yeni özellikler oluşturmalarını sağlıyorlar.

Wordpress bir CMS değil, şimdi gün Joomla ve daha fazlasının tüm özelliklerine sahip bir CMS.

WordPress, daha az geliştirme bilgisine sahip kullanıcılar ve geliştiriciler için Joomla için iyidir.

Umarım mantıklıdır.


3
MVC aslında ana mimari fark değildir. Temel fark, Joomla'nın OOP olması ve WordPress'in (çok fazla) olmamasıdır. Her ikisinin de MVC paradigması var ama Joomla'da sınıfları adlandırma şeklimiz nedeniyle daha açık.
Andrew Eddie

@AndrewEddie haklısın.
Jobin Jose

Andrew - teşekkür ederim. MVC referansını kaldırırsak, bu cevabı daha doğru hale getirir mi?
NivF007

1
WordPress gibi daha çok koyduğum son cümleniz, sadece kendi başlarına ya da çok küçük takımlarda yazmakla ilgilenmeyen insanlar tarafından kullanılıyor. Aynı sayfada birden çok kişi çalıştığında ve bir ekip siteyi oluşturduğunda Joomla daha iyi ölçeklenir. (Her ikisi de diğer takım boyutunda da çalışabilir.)
tristanbailey

6

Bu soruya gerçekten cevap vermeyi düşünüyorum, hem WP hem de Joomla! Ben Joomla! ağır ve sadece birkaç kez WP kullandım, bu yüzden cevabım umduğunuz kadar dolu olmayabilir.

WP her şeyden önce bir blog platformu. Veri feed'leri için ayarlanmıştır. Düzenli bir statik Ana Sayfa almak için feed varsayılanını geçmek için yolunuzdan çıkmanız gerekir. Zor değil, sadece varsayılan değil. Ne yaptığınızı biliyorsanız, blog oluşturma platformunun ötesine geçmek için WP'yi genişletebilir veya sizin için zaten yapmış olan bir şablonu indirirseniz.

Joomla her şeyden önce bir CMS'dir. Doğrudan temel çekirdeğinden bloglama da dahil olmak üzere eksiksiz bir web sitesi tutmak için tasarlanmıştır. Eklentiler yardımcı olur, kendi bileşenlerini ve eklentilerini nasıl oluşturacaklarını bilmeyenler için size daha özelleştirilmiş bir deneyim sağlayabilirler. Sonuçta, tekerleği neden yeniden icat ettiniz?

Deneyimlerime göre, WP geliştirici olmayan veya yeterince bilen insanlar için harika. Öte yandan Joomla, tamamen özelleştirilmiş bir ön uç ve arka uç deneyimi yaratmak isteyen insanlar için geliştiriciler için tasarlandı. İstediğimi yapmaya zorlamak için bir WP şablonunda çalışarak saatler geçirdim, Joomla ile ilk kez onları istediğim şekilde yapmaya alıştığımda sinir bozucuydu (şablon kullanmıyoruz - kendi temel Joomla'yı temellere indirdik ve sıfırdan inşa ediyoruz).

WP ve Joomla'nın FTP'sini yan yana çekerseniz, ne kadar farklı olduklarını görebilirsiniz.

WP, eklentileri arayabileceğiniz, seçebileceğiniz ve yükleyebileceğiniz bu eklenti alanına sahiptir. Aynı yerden güncelleme yapabileceğinize inanıyorum. Bir eklenti alanında olduğunuzda, genellikle bir güncellemenin mevcut olduğunu söyler.

Joomla, indirilen bir eklenti veya bileşen yükleyebileceğiniz Extension Manager'ı kullanıyor - arama işlevi olabileceğini düşünüyorum, ancak dürüstçe hiç kullanmadım çünkü genellikle ihtiyacım olanı bulmak için JED kullanıyorum. Aynı alan, yüklediklerinizle ilgili tüm güncellemeleri görebileceğiniz bir güncelleme düğmesi de sunar. Yine, bazı bileşenler size bir güncelleme olduğunu söyleyecektir, ancak hepsi değil.

Gördüğüm en önemli fark, WP'nin kullanıcılar için yapıldığı - bir şablon yükledikleri, güncelleyebildikleri, ekleyebildikleri, Joomla geliştiriciler için yapıldı, kurulumu yapıyoruz, güncellemeyi yapıyoruz, yeni özellikler ve işlevler oluşturuyoruz / ekliyoruz. Bu kullanıcı dostu olmadığı anlamına gelmez, ancak geliştiriciler için tasarlandıkları için kullanıcının yolunun dışına itildiğini düşündüğüm alanlar var.


2

Mimariden bahsederken, bir portal veya karmaşık bir web sitesi oluşturduğunuzda, yani birbirine bağlı birçok varlığın önemi büyüktür.

  1. Joomla kaynak kodu nesne yönelimlidir.
  2. Joomla kodu çok iyi bölünmüştür yani uygulamalar, eklentiler, bileşenler.
  3. Tasarım desenlerinin çoğu Joomla'da, örneğin Fabrika, Dekoratör, Bağımlılık Enjeksiyonu vb.

Joomla'yı benimsediğimde bir C ve C ++ geliştiricisi olarak, küresel ad alanını bozan işlevler yerine aynı standartlar kümesini kullandığından çok sevdim.

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.