Я пытаюсь интегрировать WordPress в CakePHP 2.6.1 использовать его как CMS для моих конечных пользователей.
Я включаю необходимый файл для доступа к функциям WordPress: wp-blog-header.php
,
Так как CakePHP позволяет включать только файлы, расположенные внутри CakePHP, я поместил внутри WordPal Intallation app/Vendor/wordpress
и теперь я пытаюсь импортировать необходимый файл в моем AppController
в этом случае:
App::import('Vendor', 'wordpress'.DS.'wp-blog-header');
Но, похоже, что некоторые функции конфликтуют, так как я получаю эту ошибку от CakePHP:
Ошибка: невозможно повторно объявить __ () (ранее объявлено в /home/todopeta/alvarotrigo/pruebas/cakephp/lib/Cake/basics.php:581)
Файл: /home/todopeta/alvarotrigo/pruebas/cakephp/app/Vendor/wordpress/wp-includes/l10n.php
Линия: 163
Кто-нибудь интегрировал WordPress в CakePHP раньше?
Какой способ пойти на это?
я видел кажется возможным с другими PHP MVC frameworksk, такими как Laravel.
Является ли CakePHP более строгим в этом отношении?
Получите доступ к данным WP, создав плагин WP для CakePHP, добавьте модель для каждой из таблиц WP и прочитайте данные через CakePHP.
Ваша связанная статья делает то же самое, но использует класс WP_Query и далее Corcel, который, кажется, представляет собой смесь между Eloquent ORM и WP. Я бы не пошел по этому пути и не использовал CakePHP ORM.
Я могу гарантировать вам, что все остальное станет проблемой в тылу благодаря нечеткому коду и архитектуре WP.
Если вы попытаетесь использовать код WP внутри CakePHP, как вы пытались, это станет очень болезненным, отнимает много времени и, вероятно, никогда не сработает без какого-то действительно по-настоящему беспорядочного кода.
Если вам нужны только части из WP, подумайте о создании плагина WP и встраивании контента WP через iframe на свою страницу. AFAIK WP также получил API-интерфейс json, и вы можете попробовать прочитать данные через этот API-интерфейс.
При таком подходе у вас будет кошмар, и в итоге вы получите огромный код.
Вместо этого, почему бы не попробовать использовать систему CakePHP CMS, например: