Posts tagged ‘fuelphp’

このエントリーをはてなブックマークに追加
[`livedoor` not found]

■Fuelphpにて環境の振り分け例

bootstrap.php の編集を行い、開発環境や本番環境の振り分けを行う。

例)
・ポートが8080の場合 → staging環境
・ホストが”localhost”の場合 → development環境
・上記に該当しない場合 → production環境

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

考えてみれば単純なことなのにハマったので備忘録に残します。
ハマった時のケースはModule Aから共通Module(例ではModule B)のデータを表示する際にModule AのViewでModule BのModelをどう呼び出すか、というもの。(そもそも設計云々に問題があるというのは割愛します・・・)

■module Aからmodule BのModelを呼び出す場合。

module Aで

と記述し、Module Bを読み込む。
確認方法は、

とすれば、呼び出されていることが確認できます。

Modelでデータを取得する際は、

というように、namespace(module名)を付ければ呼び出すことができます。

 

・・・何でこんなに悩んだんだろう。。。

 

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

FuelPHPのドキュメントにも例がありますが、FuelPHPのValidationでuniqueチェックを作ってみました。
本家の例ではValidationを拡張する例として記載があります。

http://fuelphp.com/docs/classes/validation/validation.html

 

但し、DBへのInsert時は上記の拡張例で問題ないのですが、Update時は、
更新するレコード自身を含めてしまうとuniqueチェックで引っかかってしまうため、除外する必要があります。
その処理を公式ドキュメントの例を参考にコードを追加してみました。

また、コアクラスを拡張しているため、/fuel/app/bootstrap.phpを編集する必要があります。

 

Modelのコード使用例は以下の通りです。

Controllerのコード例は以下の通りです。

■Insert例

■Update例

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

CodeIgniterからWordprssを呼び出した際に苦労したから、FuelPHPからはどうだろうと思いやってみた。
とりあえずということでまずは投稿された記事が呼び出せるか?(ってか、まだこれしかしてない)
まずは、フォルダの構成。あまり深く考えず、ドキュメントルートにwordpressを置いてみた。

ドキュメントルートの名前はwpplus(適当)

wp_1

 

この状態でwordpressのインストールを実行。

 

次に、 /fuel/app/bootstrap.php の編集を行う。
ポイントは3行目の「 require ‘../wordpress/wp-load.php’; 」の部分。
10行目の「require COREPATH.’classes’.DIRECTORY_SEPARATOR.’autoloader.php’; 」の部分より、
前に呼び出す必要がある。

次に、Controllerの作成。
ポイントは9行目の「 require_once ‘../wordpress/wp-blog-header.php’; 」の部分。
後はWordpressの関数を呼び出すことで記事の一覧を取得出来る。

というわけで、非常に簡単でした。

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

Fuelphpでvalidation結果を日本語表示にする方法。

 

1. fuel/app/config/config.php を編集する。編集箇所は以下の通り。

 

 

以下、編集結果。

 

2. fual/app/lang フォルダ配下に ja という名前のフォルダを作成する。

3. 「2」にて作成したフォルダに validation.phpというファイルを作成する。

4. 「3」で作成した validation.phpを編集する。

以下、編集例。

以上の手順で validation結果が日本語表示されるようになる。

 

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

FuelPHPでindex.phpを含むURI(mod rewriteで省略しない)場合、

paginationのリンク生成が正常に動作しないことを確認しました。

 

■例

http://localhost/app/public/index.php/aaa/bbb/list

■コントローラ: bbb

■メソッド:list

■paginationのconfig

$pagination = Pagination::forge(‘default’, array(
‘pagination_url’ => ‘/app/public/index.php/aaa/bbb/list’,
‘uri_segment’ => 4,
‘total_items’ => $count,
‘per_page’ => $this->per_page,
‘));

この場合、paginationで生成されるURLは、以下のようになりました。

http://localhost/app/public/index.php/aaa/bbb/2
※本来であれば、http://localhost/app/public/index.php/aaa/bbb/list/2となるはず

上記の例をmod rewriteでindex.phpを省略させた場合、正常に動作し、以下のURLが生成されました。

http://localhost/app/public/aaa/bbb/list/2

 

paginationのコードを追ったところ、以下の部分を変更することで正常に処理されるようになりました。

■FuelPHP 1.6の場合

543行目
○修正前
[php]$segs[$this->config[‘uri_segment’] – 1 + $seg_offset] = ‘{page}’; [/php]

○修正後
[php]$segs[$this->config[‘uri_segment’] + $seg_offset] = ‘{page}’; [/php]

 

この事象は恐らくバグだと思われます。
これはあくまで暫定の対処方法です。

 

VN:F [1.9.22_1171]
Rating: 8.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

FuelPHP 1.6をxampp(windows環境)で利用する際、composerをインストールしないと使えなくなりました。

FuelPHPをxamppに設置(解凍)してアクセスすると、以下のエラーが表示されます。

Composer is not installed. Please run “php composer.phar update” in the root to install Composer

丁寧に対処するためのコマンドが表示されますが、このコマンドは旧バージョンがインストールされていて、

それをアップデートするためのコマンドになります。

composerがインストールされていない環境では、”update”ではなく、”install”する必要があります。

インストールするためのコマンドは以下の通りです。

php composer.phar install

 

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)