2009-07-17 16 views
3

先ほど書いたPHPアプリケーションがあります.RESTful APIを追加したいと思います。また、システム内のアイテムを取得するために呼び出すURLの観点から、Railsアプリケーションのように動作するようにサイトを拡張したいと思います。PHPを使ってRESTfulなAPIとWebサイトを作成する

すべての種類のフォルダとインデックスページを作成せずに、RailsyでPHPで項目を呼び出す方法はありますか? GETクエリタグを使用せずにPHPで情報を呼び出すにはどうすればよいですか?

答えて

13

mod_rewriteの形式がある場合は、.htaccessファイルでこれを簡単に行うことができます。

あなたはこのようなものがある場合:

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

をそれはあなたがアクセスしようとしているファイルが既に存在していないことを確認します。 (あなたはファイルhello.htmlを持っていて、まだアクセスする人がhttp://yoursite.com/hello.htmlであるとします)

ファイルがまだ存在しない場合は、URLに格納されている残りのURLとともにindex.phpファイルを読み込みます変数。

これは、http://yoursite.com/pages/edit/24のようなものを呼び出すことができ、url変数の中に/ pages/edit/24を含むindex.phpを読み込むことを意味します。

これは、あなたが必要とするものをロードするために使用されるすべての種類のフォルダとインデックスページ、mod_rewrite、.htaccessファイル、およびindex.phpだけを必要としません。

2

CakePHPのように、RESTサポートを組み込んだPHPフレームワークの1つを使用することも考えられます。

0

おそらく最も簡単な方法は、REST指向の機能性を提供するフレームワークを使用することです。私はZend FrameworkがクラスZend_Rest_Serverを使って、RESTサーバーを簡単に作成できることを知っています。

多くの他のフレームワークはまったく同じことをすると思います。

しかし、既にフレームワークを使用していない(またはその種のクラスを埋め込まないフレームワークに基づいている)アプリケーションをお持ちの場合、URLrEwritingルールのいくつかはうまくいくでしょう。 URL /パラメータをクラス/メソッドにマップする作業がもう少しあります:-(

2

PascalへのrespopnseのクイックメモMARTIN:Zend_Rest_Serverは、RESTとはまったく関係ありません。

もしRESTをやりたいのであれば、まだPHPのための良いRESTライブラリが見つからないので、もう少し自分で作業する必要があります。$_SERVER['REQUEST_METHOD']を調べて決定してください何というリソースを行うには、エトセトラ。

+0

ああ私は間違っていました.CakePHPは、実際にはかなりうまくRESTすることができます。それは恐ろしいORMレイヤーを持っていますが、ok :-) – skrebbel

0

あなたが探しているデザインパターンはfront controllerと呼ばれている。

最も単純な形式では、mod_rewriteを使用して着信要求を渡し、単一のPHPスクリプトに渡します。 urlは正規表現で解析され、異なるレスポンスアクションにマッピングされます。しかし、既存のアプリケーションをマッピングするには、大規模な書き換えが必要な場合があります。

このコンセプトで遊びたい場合は、Silexマイクロフレームワークをお勧めします。

関連する問題