CakePHPと外部WordPressとかModXとか連携


CakePHPと外部WordPressとかModXとかと連携させたい時のメモ
CakePHPをキック編

CMSなどの大きなシステム間を連携させる場合結構大変。
CakePHPなどは特にURLを基準にどうさするため面倒ですが、
ちょっとした仕組がわかれば外部から簡単に呼び出せます。
まずwebrootの.htaccessを見るとURLをwebroot/index.phpに
丸投げしているのがわかります。
?url=$1

webrootの.htaccess


  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond   %{REQUEST_FILENAME} !-d
  RewriteCond   %{REQUEST_FILENAME} !-f
  RewriteRule   ^(.*)$ index.php?url=$1 [QSA,L]

つまりリクエストのあったURLを$_GET[‘url’]としてindex.phpを実行しています。
ここまで分かればあとはしめたもの$_GET[‘url’]を無理やり入れ込んで
includeしてあげればOKです。

$_GET['url'] = '/controller/action';
$include_path = "[CakePHPへのパス]/app/webroot/index.php";
include($include_path);

補足

このケース実は呼び出し元でのログインセッションがらみで
ちょっとややこしいケースでした。
外部管理画面ログイン→そこからCakePHP読込といった感じ
(CakePHP側で呼び出し元のシステムへのログインチェック(SESSION)確認が
行われるケースでした。
単純に呼び出すだけなら。
file_get_contents()とかでURL指定しちゃうべきですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です