【php】fuelphpについて語ろうぜ
fuelphpってどうよ? たてる場所間違えたので、こっち使ってね☆ エラーメッセージ読めよ 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使うかね >>142 最近のHTML編集ソフトは問題ないのかもしれないけど昔はPHPタグは HTMLタグと認識してタグ間違ってるよ的なワーニング出すソフトとかあったよ。 smartyの{}ならその辺は普通にテキストと認識されるからHTML的には問題ない。 まあ最終的には自分の好きなようにすればいいと思うよ。 俺のとこではとにかくデザイナさん向けにPHPタグをHTML内に混ぜたくないってだけ。 JSONで返してJavaScriptのテンプレートエンジンを使うのが最強 >>JSONで返してJavaScriptのテンプレートエンジンを使う これ、興味あります! この技術、どんな種類のWebアプリで使うものなの? また、開発環境はどんなもの使うの? それと、JavaScriptのテンプレートエンジンって具体的には どんなものなの? 教えてください。 最近は>>114 で十分だな 裏が変わろうが、I/O同じなら何でも良いしな jsでテンプレートエンジンって ガラケーNGって事でおk? fuelこれからちゃんとやってみようと思ってるよ。 fuelphpよりlaravelのほうが圧倒的に人気が出ている fuelphpはオワコン CIは使ってたがfuelは使わない 移行させようとあれこれやってるようだが 互換性はLaravelよりもFuelPHPのほうが上 Laravelはバージョン変わると互換性がない 互換性より学習コストと速度とセキュリティだな どっちがどっちって事ではなくて ciはある程度使ってfuel行ったら全然わからなくてlaravelにたどり着いた publicのあるフォルダにBasic認証かけたいんだけどうまくいかない。 やりたい事は、public/file以下にBasic認証をかけたい . htaccess と. htpasswd は file の直下 public/file/. htaccess public/file/. htpasswd [.htaccessの内容] <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> AuthUserFile フルパス/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow ここまで public/. htaccessを変更しないとだめなのかな? Paginationで前や次のページのマークアップされた奴じゃなくてさくっとリンクテキストだけ取ってきたい とりあえずテンプレートいじってnext()とかでやったけど、もっと簡単にできんもんか 悪くないFWだけど、本国での不人気ぶりが気になる。開発止まっちゃうなんて事にならないだろうか? 英語圏ではlaravelよりもfuelを選ぶ理由が見当たらないし、日本もそうならないだろうか。 この過疎具合を見て 不人気だとは気づかないのだろうか read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる