FuelPHP関連メモ[認証関連を中心に、気になる記事のメモ]

PHPフレームワークFuelPHP関連のメモ。

■公式サイト
FuelPHP(英語)

■ドキュメント
FuelPHP日本語ドキュメント

■参考書
FuelPHP入門(書籍)

はじめてのフレームワークとしての FuelPHP(電子書籍)

■まとめ
FuelPHP まとめ Wiki

FuelPHP 日本語ニュース

■FuelPHPコミュニティ
グーグルグループ

Twitter

■FuelPHP関連のブログ・Webサイト記事
※上のまとめWikiに多くの記事がまとまっています。ここでは、個人的にメモっておきたい記事を中心に。

FuelPHPでopauthを使って色んなログインに対応してみた
通常ログイン、TwitterとFacebookを使ったoauthログインの説明。

FuelPHPの自作認証クラスを公開しました
FuelPHP標準のSimpleAuthクラスの改造。
認証クラスweb2authはgithubにて公開中。

小さなView部品を管理する方法
CakePHPでいうエレメント的なことをFuelPHPでやるには?の解説。
サイトを色んなパーツに分けて管理したい時に。

fuelphpでAssetsを利用して画面特有のcss,jsなどを呼び込む
サイト全体で使うJavaScriptやcssはテンプレートにAssetで読み込んでしまえばいいのですが、そうでは無く、一部のページでのみ使いたいJavaScriptやcssを手軽に指定する方法。

■補足
HybridAuth
TwitterやFacebook等のサービスへのログイン機能をまとめて実装できるPHPライブラリ。
現時点ではFuelPHPには対応してないですが、将来的にもしかしたら・・・という期待もこめて、一応メモ。
現時点では、CodeIgniter、CakePHP、Zend Framework 2、Symfony2、YII等に対応してます。

FuelPHPのFieldsetでセレクトボックスにoption要素を配列でセットする

FuelPHPドキュメントのFieldsetページには、記述が見当たらなかったのでメモ代わりに。

test_formというフォームには、language_idというセレクトボックスがあるという場合。

$test_form = Fieldset::forge('test_form')->add_model('Model_Test');

$language_options = array();
$language_options[1] = '日本語';
$language_options[2] = '英語';
$language_options[3] = 'スペイン語';

$test_form->field('language_id')->set_options($language_options);

出力されるHTMLソースはこんな感じに。

<select id="language_id" name="language_id">
	<option value="1">日本語</option>
	<option value="2">英語</option>
	<option value="3">スペイン語</option>
</select>

set_optionsに配列を渡せばOKです。
実際に使う場合は、DBからidと文字列を取得し、foreachを使って配列にセットし、set_optionsにその配列を渡す、という感じになるかと思います。

FuelPHPのFieldsetで作るformタグに属性(classやid)をつけるには

Fieldset::forge('form_name');

と書くと

<form accept-charset="utf-8" action="~" method="post">
 ~ここに色んなinputとかselectとか~
</form>

と出力されるのですが、これを

<form class="form-horizontal" accept-charset="utf-8" action="~" method="post">
 ~ここに色んなinputとかselectとか~
</form>

みたいにしたい。(CSSフレームワーク使う時に、出来ると嬉しい。)

FuelPHP(1.5)ドキュメントのFieldSetのページには

forge($name = 'default', $config = array())

と書かれているのですが、この$config部分をどう書いてよいのか分からなかったので試行錯誤していたのですが、同じページの1番下に書いてあった。

それを参考に書いてみると

Fieldset::forge('form_name', array(
	'form_attributes' => array(
		'id' => 'myform',
		'class' => 'form-horizontal'
	)
));

と書けば

<form id="myform" class="form-horizontal" accept-charset="utf-8" action="~" method="post">
 ~ここに色んなinputとかselectとか~
</form>

になった。とっても希望通りな感じになりました。

要するに、ドキュメントは隅々まで読みましょうね、という話ですね。