Использовать WordPress для разработки веб-приложения - PullRequest
3 голосов
/ 02 января 2011

Я планирую разработать веб-приложение, в котором будет много статических страниц (о, справка, контакт и т. Д.) И других динамических страниц для приложения.

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

Но с другой стороны, CakePHP легок для меня, и я сосредоточусь на создании своего приложения, а не на изучении нового фреймворка.

Дайте мне знать, что вы думаете. Должен ли я использовать WordPress в качестве ядра моего приложения или использовать CakePHP?

PS: мое приложение будет в основном поисковым движком, использующим Sphinx для поиска больших данных в базе данных и отображения результатов для пользователей и некоторых других простых PHP (динамических) страниц.

Ответы [ 9 ]

13 голосов
/ 11 ноября 2012

Я прочитал многие из анализов относительно выбора базовой структуры для моего следующего проекта. Вот выводы;

(PS: я интенсивно программирую в WordPress в течение последнего года, и я более 18 лет являюсь опытным веб-разработчиком и разработчиком программного обеспечения)

Аргумент 1 - «WordPress - это движок CMS / блога, но не платформа приложений»

Это все равно, что сказать «Microsoft - технологическая компания».

Что просто не ИСТИННО. (Да, Microsoft создает хорошие технологии, но это маркетинговая компания. Например: ее конкурентное преимущество не в том, чтобы создавать лучшие технологии на земле, а в том, чтобы доводить то, что она делает успешно, до тех, кто принимает деловые решения.)

WordPress является надежной платформой приложений, а функциональность CMS / блога является приложением по умолчанию, которое входит в комплект поставки. Я думаю, что основная причина, по которой WordPress недооценивается как платформа разработки: 1) функциональность пользовательских типов записей / пользовательских полей настолько нова; мы не видели достаточного количества приложений, которые могли бы воспользоваться этими функциями. 2) Очень высокий процент сообщества WordPress - нетехнические люди (дизайнеры, блогеры и т. Д.) По сравнению с другими «низкоуровневыми платформами», такими как CakePHP, CodeIgniter и т. Д. Таким образом, сообщество разработчиков, не являющихся WordPress, не знает о что действительно может сделать WordPress.

Аргумент 2 - WordPress не основан на MVC, поэтому он не является заслуживающей доверия платформой для разработки.

Извините, но это не ИСТИНА.

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

Архитектура плагина и тематическая изоляция пользовательского интерфейса в WordPress вполне достаточны для многих целей ...

Если вы все еще настаиваете на использовании подхода MVC, вы можете сделать это; WordPress MVC как плагины.

Аргумент 3 - WordPress работает медленно и не масштабируется для веб-сайтов с большим трафиком.

Не соответствует действительности.

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

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

Окончательный вывод;

Я не хочу быть 3434533-м разработчиком, который создал бы функцию восстановления логина / пароля для своего веб-сайта. Вот почему я иду на WordPress.

В конце концов, наше время ограничено в этом мире.

3 голосов
/ 02 января 2011

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

Затем вы можете разместить их в одном домене, и если вы настроите одинаковую структуру страницы / CSS для WordPress и CakePHP, то это должно быть беспрепятственно для пользователей.

Аналогичный пример, который у меня есть, это сайт под управлением WordPress для управления контентом и phpBB для форума, оба стиля выглядят одинаково:

Это означает, что вам нужно поддерживать две страницы страниц (CSS и HTML) и держать их в соответствии друг с другом, но это дает преимущество в использовании преимуществ WordPress в управлении статическим контентом (о страницах), а также временем. контент (новостные статьи) с небольшими затратами времени и усилий, позволяя вам больше времени сосредоточиться на игре на сильных сторонах CakePHP для вашего динамического приложения, которое является основой того, что вы создаете.

Если вы в основном используете WordPress, поскольку он поставляется без особых настроек / разработок, вы сможете запустить его довольно быстро с низкой кривой обучения, что позволит вам сконцентрироваться на своем основном приложении.

1 голос
/ 03 июля 2011

Используйте WordPress на стороне администратора для редактирования текстового содержимого (и даже меню).Но используйте собственное приложение CakePHP для вывода этого контента.

CakePHP может читать отформатированный контент прямо из таблиц базы данных WordPress (или пользовательских представлений).Вам необходимо определить новое соединение с базой данных и новую модель (например, Post).

Вот пример примера реализации:

Новое соединение с базой данных в /app / database.php :

class DATABASE_CONFIG {
    // ...
    var $wp = array(
            'driver' => 'mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => '<wp username>',
            'password' => '<wp password>',
            'database' => '<wp database>',
            'prefix' => 'wp_',
    );
}

Новая модель в / app / models / post.php :

class Post extends AppModel {
    var $primaryKey = 'ID';
    // Could define relations
}

Любой контроллер теперь можетполучить содержимое, например:

class XxxController extends AppController {

    function index($postName) {
        $this->set('post', $this->Post->findByPostName($postName));
    }

}

И представление может просто вывести содержимое HTML сообщения:

<?php echo $post; ?>

Вот более сложный пример: http://code.google.com/p/cakephp-wordpress/.

1 голос
/ 02 января 2011

Если у вас уже есть созданная база данных, я бы, вероятно, пошел с CakePHP, потому что вы уже владеете CakePHP.

Но если вы находитесь в процессе создания базы данных, вы можете захотеть использоватьплагин WordPress под названием Pods CMS , который создает пользовательские таблицы вашего собственного контента (называемые «pods») внутри базы данных WordPress.

Плагин Pods CMS активно поддерживается и также существуетплагин под названием Pods UI, который работает во встроенном WordPress Admin (для создания интерфейса администрирования для содержимого таблиц / "pods").

Если вы немного знаете PHP (массивы, объекты и циклы)) Pods CMS прост в использовании, и вам часто приходится писать меньше кода, чем если бы вы просто работали с Кодексом WordPress.Есть также помощники, позволяющие вам писать SQL, который взаимодействует с существующей структурой таблиц WordPress (страницы, записи, категории, теги и т. Д.), Что в противном случае немного сложнее, если вы действительно не изучите базу данных.предлагает что-то под названием «настраиваемые поля», но это не всегда идеально, так как просто добавляет контент в существующие таблицы WordPress.Но настраиваемые поля лучше работают со многими плагинами WordPress (для таких вещей, как ползунки функций и виджеты), если вам действительно нравится использовать такие плагины.

При всем этом, WordPress не самый быстрый и, в зависимости отна вашей установке (хостинг, плагин кеша WordPress) вы можете получить очень медленный сайт.Если вы решите использовать WordPress, я постараюсь получить услугу хостинга, которая рекомендуется для WordPress, и использовать плагин кеша для ускорения работы (например, WP Super Cache).

0 голосов
/ 24 февраля 2014

используйте cakePHP в качестве основы и wordpress в качестве основы

0 голосов
/ 01 апреля 2013

Вот альтернативное решение для тех, кто хочет встроить PHP-приложение в страницу WordPress (таким образом, используя все возможности CMS WordPress без необходимости поддерживать несколько фреймворков / тем). По сути, все, что вам нужно сделать, это превратить ваше приложение в шаблон страницы :

  1. Напишите ваше приложение без поддержки контента (верхний / нижний колонтитул)
  2. Добавьте в приложение следующий код: <?php /* Template Name: WhateverYouWant */ ?>
  3. Загрузить его в папку /wp-content/themes
  4. Создайте новую страницу в WordPress и установите шаблон страницы на WhateverYouWant
0 голосов
/ 22 июня 2011

Используйте WordPress для создания своего приложения и свяжитесь с блоггерами-специалистами WP, чтобы показать, что вы один из самых «смелых» пользователей WordPress. Таким образом, вы могли бы получить несколько хороших обратных ссылок и немного рекламы.

Многие люди, которые поддерживают WordPress для любого типа веб-сайта, делают это, потому что они сильно вложены в него (что происходит, когда вы тратите много времени на изучение технологии). Вот почему вы получаете много сильных мнений по таким вопросам. На мой взгляд, WordPress - это просто компиляция множества файлов PHP, и если вы знаете PHP, вы знаете, как использовать это в своих интересах. Если он добавляет ценность (как вы сказали, у него есть функция членства), без добавления слишком большого количества посторонних, то используйте его. В противном случае, будьте проще с CakePHP.

0 голосов
/ 02 января 2011

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

Если вы хотите больше узнать о WordPress, чем разрабатывать новое приложение, перейдите на WordPress. Всегда полезно узнавать что-то новое.

0 голосов
/ 02 января 2011

WordPress - это не фреймворк, а CMS.Это дает вам систему управления контентом (система управления контентом).Если у вас нет особых потребностей относительно вашего приложения, WordPress может быть правильным выбором.

Если вам нужны страницы PHP для отображения динамически загружаемого контента, я думаю, что WordPress не для вас.Я полагаю, вы уже знаете, как создавать веб-приложения с CakePHP, так почему бы не использовать его?Если вы считаете, что вам нужен менее сложный фреймворк, я предлагаю Toro (он не имеет ничего общего с такими фреймворками, как Kohana или CakePHP; он очень простой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...