Quali sono le principali differenze tra l'architettura software di Wordpress e Joomla! E come vengono estese le loro funzioni principali?


14

* NOTA: questa non è una domanda "che è meglio"! *

Wordpress e Joomla! sono entrambi fantastici CMS open-source.

Quali sono le differenze chiave

1) nell'architettura software tra Joomla! e Wordpress?

2) nel modo in cui vengono realizzate le estensioni alla funzionalità core (out-of-the-box)? e

3) Come vengono aggiornati e aggiornati il ​​core e le estensioni?


1
Per quanto ne so - 1.wp non è mvc e tende ad essere più attento alle funzionalità di blog che al sito Web totale. 3. ma il processo di aggiornamento in wordpress è molto meglio di joomla trascurando l'incompatibilità dei plugin wp.
dev-m,

2
Questo commento è troppo vasto per dare una risposta specifica o definitiva (ci sono molte risposte che sarebbero "giuste" - un buon esempio di come non scrivere una domanda). Ti preghiamo di considerare di riformulare la tua domanda in modo più specifico.
Andrew Eddie,

Risposte:


18

Sia Wordpress che Joomla! sono molto apprezzati e ognuno di essi presenta vantaggi unici quando li si confronta.

Per rispondere alle tue domande:

nell'architettura software tra Joomla! e Wordpress

  • Joomla è OOP (orientato agli oggetti) e MVC (un modello di progettazione orientato agli oggetti).

  • Wordpress è scritto in codice procedurale.

La programmazione procedurale specifica i passi che il programma deve compiere per raggiungere lo stato desiderato, mentre la programmazione orientata agli oggetti ("OOP") organizza i programmi in oggetti o strutture e metodi di dati insieme alle loro interazioni.

Per i programmi semplici, il codice procedurale (si pensi a una sequenza di comandi riga per riga) funziona alla grande, ma per applicazioni complesse di grandi dimensioni, il codice procedurale può essere più difficile da mantenere - spesso si traduce in quello che viene chiamato spaghetti code (cioè quando il line-by -La sequenza di comandi inizia usando molti GOTO, eccezioni, thread o altri costrutti ramificati e il suo flusso diventa concettualmente come una scodella di spaghetti). In altre parole, il codice procedurale inizia in modo semplice, ma può diventare complesso e aggrovigliato.

Le applicazioni più complesse possono quindi essere strutturate meglio con OOP e con MVC - uno stile di programmazione più avanzato che si adatta molto meglio alla costruzione di programmi davvero complessi con molte parti mobili.

Mentre inizialmente il codice procedurale può essere più facile da scrivere e mantenere per programmi semplici, OOP ha dei vantaggi in quanto può raggruppare ordinatamente raccolte di funzioni variabili (chiamate "proprietà" in OOP) (chiamate "metodi" in OOP) in fasci - risultando in codice più ordinato, più facile da leggere, mantenere ed estendere.

Per la maggior parte delle applicazioni Wordpress (ad es. Blog semplici), il codice procedurale funziona perfettamente.

Per applicazioni più complesse (ad esempio quelle che richiedono autorizzazioni per gruppi di utenti e quelle che ne utilizzano molte integrano molte estensioni per estendere caratteristiche e funzioni), OOP è generalmente considerato un approccio molto più elegante.

Per riassumere:

L'architettura software di Worpress (basata sul codice procedurale) ha i suoi punti di forza nella semplicità, ma il codice procedurale non è l'ideale per applicazioni complesse con una forte estensibilità.

L'architettura software di Joomla! (OOP / MVC) può sembrare più complessa, ma quando ben progettata, OOP / MVC rende in realtà molto più semplice estendere le caratteristiche e le funzioni di un'applicazione e far sì che tutte queste estensioni funzionino insieme in modo armonioso.

Se vuoi capire le differenze (a un livello base per principianti), leggi PHP Procedural vs PHP OO vs PHP MVC di Peham Raza - discute i "dettagli" di ciascuno in modo da rendere più semplice la comprensione dei vantaggi.

nel modo in cui vengono realizzate le estensioni alla funzionalità core (out-of-the-box)?

  • Joomla ha aggiunto funzionalità con Modulo, Componente, Plugin
  • WorPress utilizza il plugin per estenderne la funzionalità.
  • Joomla è rigoroso nella sua creazione di moduli, plugin o componenti (non puoi semplicemente caricare i file via FTP e semplicemente attivarli, devi farlo con il programma di installazione delle estensioni).

Come il core e le estensioni vengono aggiornati e aggiornati

  • Entrambi utilizzano quasi la stessa tecnica per l'aggiornamento o gli aggiornamenti (forniscono agli sviluppatori la creazione di nuove funzionalità con estensioni o modifiche al modello con override Quindi praticamente nessun file di base è necessario modificare in queste situazioni, quindi l'aggiornamento migliorerà le loro patch di sicurezza e altro).

Si dice che Wordpress non sia un CMS, ma oggi è un CMS con tutte le funzionalità di Joomla e altro.

WordPress è buono per gli utenti che hanno meno conoscenze di sviluppo e Joomla per gli sviluppatori.

Spero che abbia un senso.


3
MVC non è davvero la principale differenza architettonica. La differenza principale è che Joomla è OOP e WordPress non lo è (così tanto). Entrambi hanno un paradigma MVC ma è più ovvio in Joomla a causa del modo in cui denominiamo le classi.
Andrew Eddie,

@AndrewEddie hai ragione.
Jobin Jose,

Andrew - grazie. Se rimuoviamo il riferimento a MVC, questo rende la risposta più accurata?
NivF007,

1
La tua ultima frase la direi più come se WordPress fosse spesso usato da persone che non erano interessate allo sviluppo solo per la scrittura da parte loro o di un team molto piccolo. Joomla si adatta meglio quando più persone lavoreranno sulla stessa pagina e un team costruirà il sito. (Entrambi possono anche lavorare nelle altre dimensioni della squadra.)
tristanbailey,

6

Penso che per rispondere veramente a questa domanda, devi avere molta familiarità con WP e Joomla !. Sono Joomla! pesante e ho usato WP solo poche volte, quindi la mia risposta potrebbe non essere piena come si potrebbe sperare.

WP è prima di tutto una piattaforma di blog. È impostato per feed di dati. Devi fare di tutto per andare oltre il feed predefinito per ottenere una normale Home page statica. Non è difficile, non è solo predefinito. Se sai cosa stai facendo, puoi espandere WP per andare oltre la piattaforma di blog o se scarichi un modello che lo ha già fatto per te.

Joomla è prima di tutto un CMS. È costruito per contenere un sito Web completo, compresi i blog, direttamente dal suo core di base. I plugin aiutano, possono offrirti un'esperienza più personalizzata per coloro che non sanno come creare i propri componenti e plugin. Dopo tutto, perché reinventare la ruota?

Nella mia esperienza, WP è ottimo per le persone che non sono sviluppatori o che ne sanno abbastanza. Joomla invece è stato creato per gli sviluppatori, per le persone che vogliono creare un'esperienza front-end e back-end completamente personalizzata. Ho passato ore a lavorare in un modello WP per costringerlo a fare quello che volevo, il che è stato frustrante quando sono abituato a costruire le cose nel modo in cui le voglio la prima volta con Joomla (non usiamo modelli - abbiamo i nostri core di Joomla che è ridotto alle basi e che costruiamo da zero).

Se si affiancano l'FTP di WP e Joomla fianco a fianco, è possibile vedere quanto sono diversi.

WP ha quest'area plugin dove puoi cercare plugin, scegliere e installare. Credo che tu possa aggiornare anche da questo stesso posto. Quando ti trovi in ​​un'area plugin, spesso ti dirà che è disponibile un aggiornamento.

Joomla utilizza Extension Manager in cui è possibile caricare un plug-in o un componente scaricato: penso che potrebbe esserci una funzionalità di ricerca, ma sinceramente non l'ho mai usato perché di solito utilizzo JED per trovare quello che mi serve. Questa stessa area offre anche un pulsante di aggiornamento in cui è possibile visualizzare tutti gli aggiornamenti disponibili per ciò che è stato installato. Ancora una volta, alcuni componenti ti diranno che hanno un aggiornamento disponibile, ma non tutti.

La differenza chiave che vedo è che WP è fatto per gli utenti: installano un modello, possono aggiornare, possono aggiungere, Joomla è fatto per gli sviluppatori, facciamo l'installazione, facciamo l'aggiornamento, costruiamo / aggiungiamo nuove caratteristiche e funzioni. Questo non vuol dire che non sia facile da usare, ma ci sono aree che penso siano state spinte fuori dai piedi perché costruite per gli sviluppatori.


2

Quando parli di architettura, importa quando stai costruendo un portale o un sito Web complesso, cioè molte entità interconnesse.

  1. Il codice sorgente di Joomla è orientato agli oggetti.
  2. Il codice Joomla è molto ben suddiviso, ad esempio applicazioni, plugin, componenti.
  3. La maggior parte dei modelli di design sono seguiti in Joomla, ad esempio Factory, Decorator, Dependency Injection, ecc.

Come sviluppatore C e C ++ quando ho adottato joomla, l'ho adorato perché utilizza lo stesso set di standard anziché funzioni che rovinano lo spazio dei nomi globale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.