Intereting Posts
Как получить URL-адрес в теле страницы PHP? Какова наилучшая практика экспорта холста с высококачественными изображениями? Как переопределить метод CActiveDataProvider, чтобы показать CGridview в порядке убывания по умолчанию в Yii Код php pdo, чтобы добавить дату с датой Загрузка файла через PHP не работает MySQL / PHP: как получить столбцы и связанные данные Акцентированные символы, хранящиеся в базе данных MySQL Как использовать гибридный плагин с CakePHP 3.x? Группы проверки достоверности форм Symfony2 без объектов Безопасный способ остановить пользователей от формовки форм PHPDoc: документирование функции с переменным числом аргументов Как эффективно подключаться к mysql в php без повторного подключения к каждому запросу Как отправить массив данных с Android на php-сервер? В CakePHP, как вы можете определить, было ли поле изменено в действии редактирования? php – пользовательский сеанс / cookie действительная ошибка перенаправления

Zend Framework и интеграция WordPress

У нас есть существующий сайт Zend Framework, размещенный на нашем домене.com и блог WordPress на blog.ourdomain.com

Мы хотим перенести блог на сайт по адресу ourdomain.com/blog – но, похоже, я дошел до конца земли и не могу понять, как это сделать. Я пробовал различные материалы .htaccess, настраивал контроллер блога и включал некоторые файлы WordPress и т. Д., Но безрезультатно.

У кого-нибудь есть идеи?

Настройка виртуального хоста:

ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/Users/bradyeager/Sites/TWPZend/public" ServerName twps ErrorLog "logs/twps-error-log" CustomLog "logs/twps-access_log" common 

Параметры индексов FollowSymLinks

 AllowOverride All Order allow,deny Allow from all 

Самый эффективный и простой способ сделать это, изменив ваш файл .htaccess, чтобы НЕ отправлять что-либо, начинающееся с /blog в приложение ZF – просто передайте его в WordPress. Разумеется, WordPress должен быть установлен внутри вашего корня документа, чтобы это работало именно так, как вы обычно его устанавливали.

Пример:

 RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^blog - [NC,L] RewriteRule ^.*$ index.php [NC,L] 

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

Я часто использую эту конфигурацию на самом деле, вот что я делаю:

  /application /library /Zend /wordpress ( symlink to my wordpress folder ) /public index.php ( i add wordpress & the zend folder to my include path ) 

По общему признанию, это немного жестокое решение, учитывая все ненужные вещи, которые включены в этот процесс …

Редактировать:

 // Определение пути к каталогу приложения
 определен ( 'APPLICATION_PATH')
     ||  define ('APPLICATION_PATH', realpath (dirname (__ FILE__). '/../application'));

 // Определение прикладной среды
 определен ( 'APPLICATION_ENV')
     ||  define ('APPLICATION_ENV', (getenv ('APPLICATION_ENV')? getenv ('APPLICATION_ENV'): 'production'));

 // Убедитесь, что библиотека / включена в include_path
 set_include_path (implode (PATH_SEPARATOR, массив (
     realpath (APPLICATION_PATH. '/../library'),
     realpath (APPLICATION_PATH. '/../library/wordpress'),
     get_include_path (),
 )));

 // Получить среду WordPress
 define ('WP_USE_THEMES', false);
 require_once 'wp-blog-header.php';

 / ** Zend_Application * /
 require_once 'Zend / Application.php';  



 // Создание приложения, бутстрап и запуск
 $ application = новый Zend_Application (
     APPLICATION_ENV, 
     APPLICATION_PATH.  '/configs/application.ini'
 );
 $ APPLICATION-> начальной загрузки ()
             -> Run ();

Одна из лучших статей о миграции сайта, отличного от ZF, в ZF – от Криса Абернети .

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

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

См. Правильный ответ, предоставленный Джейсоном. Просто убедитесь, что ваш файл wordpress .htacess переписывается в правильный index.php. По умолчанию он перепишет обратно в base index.php – который принадлежит Zend. Мои решения заключались в том, чтобы изменить WordPress .htaccess RewriteBase в / blog вместо /

Я написал библиотеку с открытым исходным кодом, которая может решить вашу проблему под названием Vulnero, которая позволяет запускать приложение Zend Framework в WordPress. Ваши маршруты обрабатываются вашим приложением, все остальное идет в WordPress. Может даже сделать ваши взгляды в вашем шаблоне WordPress, если хотите. Интегрирует аутентификацию, подключения к базе данных, все это. Источник находится на GitHub или вы можете прочитать документацию по адресу http://www.vulnero.com/ .

Для переноса WordPress в ZF вы можете использовать wploader .
Это работает для меня, когда я использую wordpress, поскольку множественный сайт включен.
Вы можете использовать все объекты контроллера ZF внутри ваших файлов WordPress.
Вам не нужно взломать ваш WordPress, так что вы можете легко обновить или обновить версию WordPress.