【php】fuelphpについて語ろうぜ
fuelphpってどうよ?
たてる場所間違えたので、こっち使ってね☆ 興味あるけど日本語情報が少ないのがなぁ
codeigniterくらい初心者に優しかったら使いたい 更新も活発じゃないし趣味でしか通用しないフレームワーク そう思えたなら、趣味に使ってればいいのだが、その書き込みはどんな反応が欲しいのか不明だ。 いろんなブログで取り上げられてるの見ると
かなり盛り上がってそうな印象なのにこのスレはお通夜 中途半端なライセンス解釈でciを見捨てた元ci信者しか騒いでないから
実質的に騒いでるのは一部だけ
しかも乗り換えを決めたほとんどの人は安定性と機能と速度でyiiに乗り換えてるから
こっちはほとんど人いない
ciに慣れ親しんだ人はfuelに移行する事を考える前に
もう一回ciのライセンスについて検討し直す事をお勧めする
ユーザ会のMLをライセンス問題が勃発した10月辺りから全部見直した方がいいと思う
なんでこういう事態になってしまっているのか見えてくるかもしれない
http://sourceforge.jp/projects/codeigniter/lists/archive/users/ まさにyiiに乗り換えたんだけど、めちゃくちゃ快適だよ
今では一番気に入ってるわ
なにやらめんどくさそうなci使うよりよっぽどいいと思う でも、盛り上がりは穏やかだけど、いいフレームワークだと思うよ。 >>46
そうかな
懇談会に参加してもあんまりFuelの話は出ないか 公式のフォーラムでも出てたけど、Webで起動するのと、Taskで起動するのとでDOCROOTの値が違うのは問題だよなぁ。 FuelPHPを無理やりはやらそうとしてる人たちが気に食わない CI Kohana Fuelのどれかをやろうと思ってます
CIは古いがゆえに起きる問題(プロジェクト分裂とか後方互換気にしすぎとか)が気になるかなって感じで
Kohanaは日本語ドキュメントが少なすぎて
Fuelが一番バランスがいいなって思ったのでFuelにしようと思うのですが
CIで使えるものは全部Fuelでも使えると思っていいでしょうか? ここにクラスを入れておけば自動的にincludeされるディレクトリとかない?
app/classes/controller.php を作成し、
__construct()にてapp/classes/class/ディレクトリの中の*.phpをrequire_once()する
app/classes/class/ディレクトリの中のクラスに、
class test {
public function test1(){
test::test2();
}
public funciton test2(){
echo "ABC";
}
}
app/classes/controller/default.phpのデフォルトコントローラ内に
test::test1(); と記述したところ
ErrorException [ Error ]: Call to undefined method test::test1()
とエラーメッセージが表示されてしまいます。
class_exists('test') だとtrueが返るのですがなぜでしょうか。 エラーメッセージ読めよ
classがundefinedとは書いてないだろ はい、classは存在するのに、
publicであるtest1がtest::test1()で実行できないのはなぜでしょうか
クラス単体で動作させた場合は実行できました typoでfuncitonになってるからじゃね
ふぁんじしょん
IDE使おうぜ
あと単体テストはしっかり メールアドレスとパスワードでログインして、
ユーザー名の代わりにニックネームを使いたいんですが、
Authドライバ自作しないと無理でしょうか? 全然ユーザー集まらないじゃねぇか
これじゃあ"増えないPHP"だな 糞
ただの劣化したcodeigniterでしかない
さも流行ってるかのように煽ってる奴なんなの? 煽ってる人は本を売りたい人達。
でも、静かにちゃんと使ってる人は解ってるけど、なかなかいいFWよ。 fuelは軽量かつ最新のPHPに最適化されていて中々いいけど
正直CIでも何の問題も無いよな。
いずれにせよ、yii最高、cakeまじ糞とかやたら熱く語りたがる
フレームワークヲタは大したスキルもないしキモい。 入力フォーム→確認画面→完了
みたいにしたいんですけど
仮に入力フォームがaction_post()で
確認画面がaction_confirm()だったとして
フォームで入力したデータをaction_confirm()にポストして
バリデーションで失敗したとき、action_post()で使用したviewを読み込んで
exit;するのはおかしいでしょうか?
public function action_confirm()
{
// (省略)
if ($validation->run())
{
// (省略)
}
else
{
$this->template->content = View::forge('articles/form');
exit;
}
// 以下省略
} すみません検証もせずに聞いてしまいました。
正しくはexit;ではなく return $this->template;でした。
もっとスマートなやり方があれば教えて頂きたいです。 echoじゃ出力できなくなってんじゃん!
return ブログとか見てるとfuelphp人気ありそうなのに
このスレは過疎ってる不思議 Controllerのユニットテストができなくて泣いた。次のメジャーバージョンからできるようになるんだっけ おお、こりゃ良さそうだ
ttp://tech.caph.jp/2012/02/04/fuelphp-admin-view/ セクシーなコードってどういうコードですか?
想像が付きません ZendFrameworkは難しくて学習段階で挫折しました。
50時間くらい学習したと思いますが私には難しすぎました。
PHPやOOPは、分かります。
FuelPHPはZendFrameworkより初心者の敷居が低いでしょうか? まぁCIと一緒だね。他のFWに挫折した人達でも使える。
その代わりできる事はあんまりない。 ZFより簡単なんですね。
チャレンジしてみます!
ありがとうございました! すみません、下記コードでDBから値を引っ張っています。
$data['mains'] = DB::select()
->from('mains')
->join('kotsus', 'left')->on('mains.sick_cd', '=', 'kotsus.sick_cd')
->where('mains.sick_cd', 'in', $sick_cds)
->execute();
mains,kotsusともにsick_cdがある場合は良いのですが、
kotsusにない場合に、mainsのsick_cdフィールドがnullになってしまいます。
(kotsusに無いためnullを取得し、mainsの値を上書きしている)
kotsusテーブルの持つ値でソートしているため、
Modelを使って各々にクエリを投げるような真似をしたくないのですが、
nullで上書きされないようにする方法は何かあるでしょうか? >>88
Inner joinにするか、
->where('sick_cd', 'IS NOT', null)
追加でいいんじゃない? FuelPHPを下のURLで勉強してみました。
10分でわかるFuelPHP
http://www.slideshare.net/kenjis/10fuelphp-osc2012-nagoya
FuelPHP簡単!これなら習得できそう!です。
この次に学習するオススメのサイトや資料がありましたら、
是非教えてください。 正直な話、PHPを解っているのなら、公式サイトのリファレンスを隅から隅まで読むのが、
一番理解できるし、やりたい事をカタチにする方法が見えてくるよ。 >>89
ありがとうございます。
nullになるものもまとめて欲しかったのですが、
inner joinでsick_cdが何れもあるものと、
残りはjoinせずにクエリを投げて取得することで回避できました。
これFuel関係無かったかなーと思いましたが、
left joinが全く意味がなくなってしまいますので問題ですよね。
id
mains
mainsとkotsusともにidカラムがあるので
kotsusにsick_cdが見つからないない場合はidもnullで上書きされてしまいましたので。 うが…書いてる最中に…
mains
id sick_cd name
1 s0001 あああ
2 s0002 いいい
3 s0003 ううう
…以下略
kotsus
id sick_cd order
1 s0002 1
2 s0004 2
こんな感じでありまして、
>>88のleft joinでwhere sick_cd in (s0001〜s0004)とすると、
[[id=>2, sick_cd=>s0002, name=>いいい,order=>1],
[id=>4, sick_cd=>s0004, name=>えええ,order=>2],
[id=>null, sick_cd=>null, name=>あああ,order=>null],
[id=>null, sick_cd=>null, name=>ううう,order=>null]]
となります。
inner joinですと下記になります。
[[id=>2, sick_cd=>s0002, name=>いいい,order=>1],
[id=>4, sick_cd=>s0004, name=>えええ,order=>2]]
で、期待しているのは…
[[id=>2, sick_cd=>s0002, name=>いいい,order=>1],
[id=>4, sick_cd=>s0004, name=>えええ,order=>2],
[id=>1, sick_cd=>s0001, name=>あああ,order=>null],
[id=>3, sick_cd=>s0003, name=>ううう,order=>null]]
sql1回で期待する値が取れればそうしたいのですが。 >>93
あーそういうことか。質問理解してなかったすまん
IFNULL(mains.sick_cd, kotsus.sick_cd) でいけると思うけど、query builderで関数って使えるんだっけ?
SQL文は自分で書いて
DB::query($query)->execute()->as_array();
するしかないかも >>91
残念ながら、公式サイトのリファレンスを隅から隅まで読む力量が
なさそうです。
理解が追いつかないデス。。。
チュートリアルか、Tips形式で少しずつ理解を深めたいです。
10分でわかるFuelPHP の次のステップとなる良い教科書を
知っている方、教えてください。 >>95
去年のadventが無料で配られてる。
https://gihyo.jp/dp/sp/advent2011/G11C13
今年もadventやるらしいから、クリスマスまで覗いてみるといいよ。 >>95
codeigniter使えばいいじゃない
日本語マニュアル完備だよ >>94
>query builderで関数って使えるんだっけ?
つDB::expr() 今更ですが・・。
$data['mains'] = DB::select('mains.id', 'mains.sick_cd', 'mains.name', 'kotsus.order')
…以下略。
全部欲しい方を記述することで回避できました。 公式マニュアル読みながら学習用にWebアプリを1本作ってみたけど、
やっぱ、公式マニュアルだけじゃわからないこと多し。
公式マニュアルを精読すればFuelPHPでアプリが作れるというのは
無理、と感じた。
公式マニュアルはクラスのリファレンス本として機能するけど、
FuelPHP初心者が全体を大まかに理解する目的で読むものではない
とわかりました。 たとえば、こんなこと公式マニュアルでわかるのかな。
・Configクラスの説明みても、どのフォルダに何ていうファイル名で
Configの設定を記述したら良いか。
・config.phpが複数あった場合、どんな順番でオーバーロードされて
読み込まれるのか。
・ビューにSmartyを使いたい場合、その設定方法。
これらは公式マニュアル見ても見つからず、Webで調べて解決しました。 なんでもかじりたがる俺から忠告。
趣味でやるならいいけど、時間を無駄にしたくないならやめとけ。 >>104
なんでもかじりたがるおまいさんが
おすすめのフレームワーク教えてくれよ FuelPHPは、複合主キーをサポートしてますか? FuelPHPを習得した人がCIをやると、何か新しいスキルが身に付きますか?
(CIを使えるようになるという他にスキルの蓄積はできるか、という意味) kohana v2 から乗り換え先を探してたんだが
FuelPHPにしようかな。 FuelPHPにしてみて。
上に書いてある通り、公式マニュアルはちょっと不親切な感じではあります。
でも、読みやすいソースコードを書けるよ。
おすすめ。 forge って何?
あちこちで出てくるんだけど、どういう意味で使ってるんだろ、この単語。 forge=鉄などを鍛えて造る。
fuel(燃料)と親戚関係の単語なんじゃないの? 一つのWebサイトで、日本語ページ、英語ページ、スペイン語ページ…という具合に、多言語対応サイトを作る場合、FuelPHPでは、どうやればスマートですかね?
ユーザーエージェント、IPアドレスで国、言語を判定。ユーザーに言語を選択させて、セッション情報に言語情報を置いておく。
Viewテンプレートの文言は、FuelPHPの言語別のメッセージ切り替え機能で、入れ替える。とかでしょうか? 誰も答えないみたいだし
だいたいそれで良いんじゃね
HTTPのリクエストヘッダも忘れずに viewのなかで<?php echo \VIew::forge('hoge/fuga'); ?>みたいに書くのはよくないんでしょうか? そういう時はrender関数使うことが想定されてんじゃね?もしくはレイアウト機能 なるほど。render()使うようにします。ありがとうございますー csrfの検証をpostの場合は自動で行いたいって場合だけど、Form::openを拡張しつつ、public function before()に検証ルーチン書き足した自作コントローラクラスを継承して対応ってのが妥当かな?
皆どうしてる? >>123
そうそう。俺はCIから移行した口なんだけどさ、CIはそこが自動でさ、fuelはチェック手動だからどーしたもんかな、と controllerで
$post = \Model_Post::find($id);
return \View::forge('posts/view', array('post' => $post));
としたとき、viewで echo $post->title;
としたときエスケープされないのですが、自動でエスケープさせる方法は無いのでしょうか? oil g scaffoldしてどうエスケープしてるのか見てみようと思ったのですが
そもそもエスケープされてませんでした…。
ひとつひとつxss_clean()でエスケープすることにしました。失礼しました。 uploadクラス、imageクラスで扱える画像の種類は具体的にどういうものがありますか?
公式サイトには 「たとえばpng gif jpg」としか載っていません……。
http://fuelphp.com/docs/classes/image.html
↓の一覧に載っている形式
http://php.net/manual/ja/function.image-type-to-mime-type.php
これらの形式、すべて
uploadクラスでアップロードできる
imageクラスでリサイズ等できる
ということでしょうか? >>127
まず前提としてどの画像を処理するライブラリをインストールしてるかに依存だろう。
どのライブラリに対応してるかはfuelのソース読めばすぐわかると思うけど このスレひさびさに覗いてみたけど、廃れちゃったのかな?
FuelPHPの勢いは最近どうなんでしょ?
シェアとか、書籍の出版状況とか、Web上の情報量とか・・・ 一部の日本人が頑張ってるけど、まだ微妙だね。
バグも多いし、DB周りのラップも弱い。
痒いところに手が届くかもしれないけど汎用的じゃないと言うか… 所でfuelとかでsmarty使うヤツって何なの?
そのままveiwでechoやらforeachでよくね見易いし分かり易い
ワザワザsmarty使うのイミフ smarty楽だぜ。defaultって入れとけば、変数無くても空白にしておいてくれるし。
まぁ、そこだけかな。 おれは絶対Smarty使う。
Smartyを使わないなんて、考えられない。
defaultも良いし、cylcle とか、{html_options}とか、date_format とか便利。
それを<?php で書いてたら、ビューが見づらくて仕方がない。
そもそもビューに <?php と書くことに抵抗がある。
ビューとロジックが分離してないじゃんか。 俺もテンプレートエンジンは必ず使うな
が、fuelでsmartyは使いにくかったので泣く泣くtwig使ったな
昔の話なので今は改善されてるのかも知れないけど・・・ ビューに出す前に
html生成させるかヘルパー使えばいんじゃない
変数有る無しもviewに出す前にやっておくかissetチェックしておけばいんじゃないか >html生成させるかヘルパー使えばいんじゃない
実は昔は俺もそうしてました。
でも、表示形式への変換をコントローラ内で処理するのは、
綺麗ではない気がする。
表示関係は、できる限りビューに書きたいな。 Zend Frameworkでも素のZend_View使ってるソースとかあるしなぁ >>138
html生成するユーティリティクラス作ってそれをコントローラから呼ぶかビューで呼べばいんじゃない >>140
それならsmartyでもいいじゃねぇかw
135も言ってるがsmartyとか使ってる人は
・ビューにPHPタグを書きたくない
・コントローラで表示関係処理をしたくない
んだよね。
htmlのソースはデザイナーに書いてもらう事もあるのでPHPタグを書きたくないし
出来るだけPHP無しでもデザインを確認できるようにコードからhtml生成はやりたくない。
俺も135に同意なので必ずsmartyなりtwigなり使う。 >>141
smartyタグもphpタグと似たようもんじゃない
phpタグあってデザインで影響あるとかワケわからん
そもそもピュアphpでsmarty使うなら分かるが、FWでsmarty使うかね