Home > CakePHP | PHP > CakePHPをWebサイトの一部で使う

CakePHPをWebサイトの一部で使う

この記事の所要時間: 053

以前依頼を受けた案件でこんなのがありました。

  • 現在稼働中のサイトに機能(ページ)追加
  • 実装方法はお任せ(既存のライブラリ等は使用しなくて良い)
  • 但し、Smartyは必須
  • あとSmartyテンプレート、PHPの内部エンコーディングはSJIS

仕様自体はそれほど複雑で無いのでDBライブラリ(PEAR::DBとか)+Smaryでゴリゴリ書いても良いのですが、せっかくの機会なのでCakePHPを使ってみる事にしました。

DocumentRoot以下には既に稼働中のページがあるので、イメージとしてはそこにPageControllerを置き、そこからCakePHPを呼び出すといった感じです。

(CakePHP自体を追加ディレクトリに入れるという力業もあるのですが、ファイル構成が複雑になって、メンテナンスされる方が困りそうなのと個人的にもDocumentRoot以下にライブラリがあるのは抵抗があるのでそれはやめました。。。)

構成としてはこんな感じです。

[cake] <-- CakePHPを置く
  + [app]
  + [cake]
  + [vendors]
[DocumentRoot]
  + [new]
    + index.php
    + add.php
    + update.php
    + delete.php
  + [new2]
    + index.php
    + add.php
    + update.php
    + delete.php

DocumentRoot以下では単純にCakeのappを呼びます。

<?php
$_GET&#91;'url'&#93; = '/new/index';
// cake/をinclude_pathに入れたら
include('app/webroot/index.php');
// cake/をinclude_pathに入れないなら
//include('../../cake/app/webroot/index.php');
?>

$_GET['url']に渡すパスを変えれば任意のコントローラ・アクションが呼べます。

この方法ならブラウザから見るパスとCake用のパスを異なるものにできるので小さな案件ならわりと使えるシーンはあるのではないかと思います。(突然「URLを変えてくれ」とかありません?)

Smarty関係も小ネタがあるので、それはまた書きたいと思います。

# 昨今のWebフレームワークはFrontControllerが主流ですが、PageControllerももうちょっと見直されても良いかなと思ったり。

Pocket

follow us in feedly

トラックバック:0

このエントリーのトラックバックURL
http://www.1x1.jp/blog/2007/03/cakephp_pagecontroller.html/trackback
Listed below are links to weblogs that reference
CakePHPをWebサイトの一部で使う from Shin x blog

Home > CakePHP | PHP > CakePHPをWebサイトの一部で使う

検索
フィード
メタ情報

Return to page top