今回は、
http://qiita.com/maximum80/items/5f262cda259036e79346
を活用して、
「本番環境ではSSLを適用したいけど、開発環境(ローカル)では、SSLは対応させたくない!」という事例を実際に対応してみたいと思います。
#1.uri.phpの設定
SSLの判別にはUriクラスを活用しています。
上記を参照してみてください。
$ mkdir fuel/app/classes/extension/
$ vim fuel/app/classes/extension/uri.php
で、uri.phpを作成します。
中身は
uri.php
<?php
class Uri extends Fuel\Core\Uri
{
public static function generate($uri = null, $variables = array(), $get_variables = array(), $secure = null)
{
//開発環境(ローカル)の場合はhttps通信をOFFにする
$secure = Config::load('secure');
$secure = $secure['validation'];
return \Uri::create($language.$uri, $variables, $get_variables, $secure);
}
}
的な感じで、config内のsecure.phpを読み込むように設定します。
この場合、secure内の'validation'の値を返すようにしています。
(Trueならhttps、Falseならhttpになる)
#2.secure.phpの設定
$ cd fuel/app/config
$ vim secure.php
で、secure.phpを作成
secure.php
<?php
return array (
'validation' => True
);
てな感じで、基本的にはTrueを返すようにする。
次に、
$ cp secure.php /development
で、コピー。develop内のsecure.phpを
secure.php
<?php
return array (
'validation' => False
);
で保存。
これで開発環境では$secureがFalse
それ以外では$secureがTrue
という設定が完了。
#3. viewファイルの設定
それぞれのviewファイルでの読み込みを
<a href="<?php echo Uri::generate("contact", array(), array(), null); ?>
といった具合の書き方をします。