2012-10-03 68 views
3

我有一個運行CakePHP的網站。現在我需要包含一個WordPress的博客來與它一起運行。問題是我需要進行一些整合,比如用戶登錄,所以我試圖包含應該給予整合的Wordpress文件。將wordpress與cakephp集成

我的服務器的文件系統的結構是:

/root 
    /app (cake's app directory) 
     /webroot 
     /... 
    /blog (wordpress directory) 
     /wp-admin 
     /... 

的WordPress安裝了罰款(我使用的指向此文件夾的子域),所以現在我有自己運行完美這兩個網站。

但是,正如我上面提到的,我需要與他們建立了一些整合,特別是登陸在WordPress網站的用戶,當他們登錄到我的CakePHP的網站。我試着做什麼this other question says,但我得到了以下錯誤:

Fatal error: Cannot redeclare __() (previously declared in /homepages/36/d******/htdocs/cake/basics.php:657) in /homepages/36/d********/htdocs/app/controllers/users_controller.php on line 60 

我試圖把應該把WordPress的代碼功能集成到CakePHP的(需要(」 ../../博客/wp-blog-header.php');)在users_controller,但我甚至不知道這是正確的地方做到這一點。

我讀過別的地方,有時不同的框架具有相同的名稱聲明功能和能夠引起衝突。

所以我不知道,如果是這樣的話,我僅僅把「融合代碼」放錯了地方。

任何幫助將不勝感激!

+0

你有沒有得到這個地方?我處於您發佈時的位置 - 即將嘗試將WP與現有的CakePHP應用程序集成。任何建議都會有幫助,因爲網絡幾乎沒有關於如何做的好消息。 – Derek

回答

1

(尤其是當它涉及到未來的升級),你會爲自己節省很多的麻煩,如果你可以修改你的設計有2個獨立的域,並在每個框架。通過這樣做,最複雜的一點就是在兩者之間實現某種SSO ......但它應該比試圖合併2個框架(其操作完全不同)更容易。

0

如果你想管理多域登錄,那麼你只能使用單點登錄方法。您還可以使用CAS Server來管理該功能以及Auth。

我只是給你有關CAS的小信息。

其中,您必須安裝CAS服務器。並有PHP客戶端可用。

成功安裝CAS服務器後,您必須將您的cas服務器應用程序設置爲整個應用程序的主頁。

所以,如果你是第一位的,在你的應用程序,它會直接檢查你的CAS服務器上的會話。如果你沒有登錄,那麼它會問登錄表單,你的php客戶端將管理你的應用程序的登錄會話。

成功登錄後,你可以得到用戶ID的詳細信息,並基於這一點,你可以比較你的CakePHP應用程序數據庫和WordPress數據庫。

如果找到了id,那麼您只需登錄,否則它將重定向到CAS服務器。