Каковы ключевые различия между архитектурой программного обеспечения Wordpress и Joomla! И как расширены их основные функции?

14

* ПРИМЕЧАНИЕ: это не вопрос "что лучше"! *

Wordpress и Joomla! оба удивительные CMS с открытым исходным кодом.

Каковы основные различия

1) в программной архитектуре между Joomla! а вордпресс?

2) каким образом сделаны расширения для основной (готовой) функциональности? и

3) Как ядро ​​и расширения обновляются и обновляются?

NivF007
источник
1
Насколько я знаю - 1.wp не mvc и, как правило, заботится о блогах больше, чем сайт. 3. но процесс обновления в WordPress гораздо лучше, чем Joomla, пренебрегая несовместимостью плагинов WP.
dev-m
2
Этот комментарий слишком широк, чтобы дать конкретный или окончательный ответ (есть много ответов, которые были бы «правильными» - хороший пример того, как не написать вопрос). Пожалуйста, попробуйте перефразировать ваш вопрос, чтобы быть более конкретным.
Эндрю Эдди

Ответы:

18

И Wordpress, и Joomla! высоко ценятся, и каждый из них имеет свои уникальные преимущества при сравнении.

Чтобы ответить на ваши вопросы:

в архитектуре программного обеспечения между Joomla! и WordPress

  • Joomla - это ООП (объектно-ориентированный) и MVC (объектно-ориентированный шаблон проектирования).

  • Wordpress написан в процедурном коде.

Процедурное программирование определяет шаги, которые должна предпринять программа для достижения желаемого состояния, тогда как объектно-ориентированное программирование («ООП») организует программы в объекты или структуры данных и методы вместе с их взаимодействиями.

Для простых программ процедурный код (например, построчная последовательность команд) прекрасно работает, но для больших сложных приложений поддерживать процедурный код может быть сложнее, что часто приводит к тому, что называется кодом спагетти (т. Е. Когда построчно). -линейная последовательность команд начинает использовать множество GOTO, исключений, потоков или других ветвящихся конструкций, и ее поток концептуально становится похожим на миску спагетти). Другими словами, процедурный код начинается с простого, но может стать сложным и запутанным.

Поэтому более сложные приложения могут быть лучше структурированы с помощью ООП и MVC - более продвинутого стиля программирования, который намного лучше подходит для создания действительно сложных программ с большим количеством движущихся частей.

В то время как процедурный код изначально может быть проще для написания и поддержки для простых программ, ООП имеет преимущества в том, что он может аккуратно собирать наборы переменных (называемые «свойства» в ООП) функциями (называемыми «методы» в ООП) в пакеты - в результате чего код, который более понятен, легче читать, поддерживать и расширять.

Для большинства приложений Wordpress (например, простых блогов) процедурный код работает на отлично.

Для более сложных приложений (например, тех, которые требуют разрешений группы пользователей и тех, которые используют многие, интегрируют множество расширений для расширения функций и функций), ООП обычно считается гораздо более элегантным подходом.

Подводить итоги:

Программная архитектура Worpress (основанная на процедурном коде) имеет свои сильные стороны в простоте, но процедурный код не идеален для сложных приложений, обладающих надежной расширяемостью.

Программное обеспечение Joomla! С архитектурой (ООП / MVC) может показаться более сложным, но когда хорошо спроектированный, ООП / MVC на самом деле делает его гораздо проще , чтобы расширить возможности и функции приложений ' и иметь все эти расширения работают вместе гармонично.

Если вы хотите понять различия (на базовом уровне для начинающих), прочитайте « Процедурный PHP против PHP OO против PHP MVC», автор Peham Raza - он обсуждает «входы и выходы» каждого таким образом, который облегчает понимание преимуществ.

каким образом сделаны расширения для основной (готовой) функциональности?

  • Joomla добавил функции с модулем, компонентом, плагинами
  • WorPress использует плагин для расширения его возможностей.
  • Joomla строг в создании своих модулей, плагинов или компонентов (вы не можете просто загрузить файлы через FTP и просто активировать, вы должны сделать это с помощью Установщика расширений).

Как ядро ​​и расширения обновляются и обновляются

  • Оба используют почти одинаковую технику для обновления или обновлений (они предоставляют разработчикам возможность создавать новые функции с расширениями или изменениями шаблонов с помощью переопределения. Поэтому в основном нет основных файлов, которые нам нужно редактировать в этой ситуации, поэтому обновление улучшит их исправления безопасности и многое другое.)

Есть поговорка, что Wordpress - это не CMS, но сейчас это CMS со всеми функциями Joomla и многим другим.

WordPress хорош для пользователей с меньшими знаниями в области разработки, а Joomla - для разработчиков.

Надеюсь, что это имеет смысл.

Джобин Хосе
источник
3
MVC на самом деле не главное архитектурное отличие. Основное отличие заключается в том, что Joomla - это ООП, а WordPress нет (так много). Оба имеют парадигму MVC, но в Joomla это более очевидно из-за того, как мы называем классы.
Эндрю Эдди
@AndrewEddie, ты прав.
Джобин Хосе
Андрей - спасибо. Если мы удалим ссылку на MVC, сделает ли это ответ более точным?
NivF007,
1
Ваше последнее предложение, я бы сказал, больше похоже на то, что WordPress часто используют люди, которые не заинтересованы в разработке, просто пишут в своей собственной или очень маленькой команде. Joomla лучше масштабируется, когда несколько человек будут работать над одной страницей и команда создаст сайт. (Оба могут также работать в команде другого размера.)
tristanbailey
6

Я думаю, чтобы действительно ответить на этот вопрос, вы должны быть хорошо знакомы как с WP, так и с Joomla !. Я Joomla! тяжелый и использовал только несколько раз WP, поэтому мой ответ может быть не таким полным, как вы могли бы надеяться.

WP - это прежде всего платформа для блогов. Он настроен для подачи данных. Вы должны сделать все возможное, чтобы перейти по умолчанию фида, чтобы получить обычную статическую домашнюю страницу. Это не сложно, просто не по умолчанию. Если вы знаете, что делаете, вы можете расширить WP, чтобы выйти за пределы платформы для ведения блогов, или если вы скачали шаблон, который уже сделал это для вас.

Joomla - это прежде всего CMS. Он создан для размещения полноценного веб-сайта, включая ведение блога, прямо из его базового ядра. Помогают плагины, они могут дать вам больше возможностей для тех, кто не знает, как создавать свои собственные компоненты и плагины. В конце концов, зачем изобретать велосипед?

По моему опыту, WP отлично подходит для тех, кто не является разработчиком или знает достаточно. Joomla, с другой стороны, была разработана для разработчиков, для людей, которые хотят создать полностью настроенный интерфейс и интерфейс. Я потратил часы, работая над шаблоном WP, чтобы заставить его делать то, что я хотел, и это разочаровывало, когда я привык строить вещи так, как я этого хочу в первый раз в Joomla (мы не используем шаблоны - у нас есть свои ядро Joomla, которое урезано до основ, и мы строим с нуля).

Если вы подтянете FTP из WP и Joomla рядом, вы увидите, насколько они разные.

WP имеет эту область плагинов, где вы можете искать плагины, выбирать и устанавливать. Я считаю, что вы также можете обновить с этого же места. Когда вы находитесь в области плагинов, вам часто сообщают, что доступно обновление.

Joomla использует Extension Manager, где вы можете загрузить загруженный плагин или компонент - я думаю, что там может быть функция поиска, но я, честно говоря, никогда не использовал его, потому что я обычно использую JED, чтобы найти то, что мне нужно. В этой же области также есть кнопка обновления, где вы можете увидеть все доступные обновления для того, что вы установили. Опять же, некоторые компоненты сообщат вам, что у них есть доступное обновление, но не все из них.

Ключевое отличие, которое я вижу, заключается в том, что WP создан для пользователей - они устанавливают шаблоны, они могут обновлять, они могут добавлять, Joomla предназначена для разработчиков, мы делаем установку, мы делаем обновление, мы создаем / добавляем новые функции и функции. Нельзя сказать, что это не удобно для пользователя, но есть области, которые, я думаю, оттеснены пользователем, потому что они созданы для разработчиков.

Faye
источник
2

Когда вы говорите об архитектуре, имеет значение, когда вы создаете портал или сложный веб-сайт, то есть множество взаимосвязанных объектов.

  1. Исходный код Joomla является объектно-ориентированным.
  2. Код Joomla очень хорошо разделен, т.е. приложения, плагины, компоненты.
  3. Большинство шаблонов дизайна используются в Joomla, например, Factory, Decorator, Dependency Injection и т. Д.

Как разработчик C и C ++, когда я принял Joomla, мне понравилось, что он использует тот же набор стандартов, а не функции, портящие глобальное пространство имен.

Shyam
источник