Limonade

LimonadeでURLに/?/を付けないでもアクセスできるようにする

InstagramのOAuth認証を試していたらコールバックURLに/?/が入っていると、設定したコールバックURLと異なるURLにリクエストが飛んできてました。

Limonadeではデフォルトで/?/callback/のようなURLになるので、ドキュメントに変更方法書いてあるはずと思ってみてみたら、READMEに書いてましたw

アプリケーションのルートディレクトリに次のような.htaccessを置くだけです。

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  Options +Indexes
  RewriteEngine on

  # if your app is in a subfolder
  # RewriteBase /my_app/ 

  RewriteCond %{SCRIPT_FILENAME} !-f
  RewriteCond %{SCRIPT_FILENAME} !-d

  RewriteRule ^(.*)$   index.php?uri=/$1    [NC,L,QSA]
</IfModule>

アプリケーションルートがドキュメントルート以外(例えば/my_app/)の場合は、RewriteBase /my_app/のコメントを解除するとhttp://www.example.com/my_app/からhttp://www.example.com/でアクセスできるようになる。

参考URL:README

PHP軽量フレームワークLimonade 1

setup

Limonade
githubからソースダウンロードして、ドキュメントルートに配置。
いつものように、バーチャルホストを設定してexamplesを試してみる。

hostsファイル設定

127.0.0.1       test.limonade.com

vhost

#test.limonade.com
<VirtualHost *:80>
	DocumentRoot "/home/limonade/public_html"
	ServerName test.limonade.com
	<Directory "/home/limonade/public_html">
		AllowOverride All
		order deny,allow
		allow from All
	</Directory>
</VirtualHost> 

ダウンロードしたファイルを”/home/limonade/public_html”にコピー。

ブラウザから確認

http://test.limonade.com/examples

WEBアプリケーション開発

とりあえず分かった事。
MVCのフレームワークでモデルは別途抽象化するライブラリ使う。

Controllerにあたる部分では

  • /lib/limonade.phpをrequire
  • configureで設定
  • beforeでdispatchする前の事前処理記述
  • dispatchでurlと関数のマッピング
  • dispatch('/', 'hello_world');
    function hello_world () {
        return "Hello world!";
    }
    

有る程度サンプル見れば分かるけど、実際にサイト作成するとなるとsinatra系のフレームワークは初めてなので少し大変そう。
あと、日本語のドキュメント少ないので自分サイトをまず作ってなれるようにしたい。