トップページphp
983コメント301KB

[PHP][フレームワーク]CodeIgniterスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/27(金) 23:17:16ID:???
公式:http://www.codeigniter.com/
チュートリアル:http://codeigniter.com/tutorials/

ユーザガイド日本語訳:http://ci-user-guide-ja.nought-point-999.net/

小回りの利くフレームワークの話題をひとつ!
0270nobodyさん2008/04/29(火) 08:42:50ID:AjJ+5S6v
>>もっとkwsk
0271nobodyさん2008/04/29(火) 09:57:50ID:???
>>270
言葉足らずすまそ。

実際にはフォーム画面から入力値を受け取ってバリデーションして
DBに格納するというのが面倒だというのを言いたかった

こんなんできたらいいな、というのがあって、
・フォームのINPUTなどの入力が連想配列で一括取得できる(POSTされたデータ用)
・バリデーションをフィルター的な感覚でやりたい(POSTされたデータ用)
・連想配列でフォームオブジェクトに渡せば対応するNAMEのINPUTなどに自動で値がセットされる(確認画面用)
・フォームからのデータを対応するテーブルにそのまま流し込みたい(バリデーションはするけど)

取りまとめないが、こんな感じ
まあ、画面設計の問題もあるんだが、
工数の内訳として画面処理:ロジック=5:1とかうんざりする
0272nobodyさん2008/04/30(水) 02:10:32ID:???
そんな機能もとめるならCakePHPでも使ってろ
02732712008/04/30(水) 04:48:09ID:???
>>272

CI以外のフレームワークは作法がガチガチに決まってるから嫌だ
潰しが効かないというか。まあ、フレームワークだから当然なんだが

それに対して、CIはプラットフォーム程度でしかないところが気に入っている
まあ、ライブラリ作るなり、カスタマイズするなりして頑張るよ

0274nobodyさん2008/04/30(水) 04:54:08ID:???
自作フレームワークのほうが
つぶしが利かない
02752712008/04/30(水) 05:44:11ID:???
>>274

漏れの「潰しがきかない」と言ってるのは、
CIでなければ部分的な代替え手法を使うのが難しい、意味がない
という話のつもり

さすがにフレームワークまでは自作せんわ
0276nobodyさん2008/04/30(水) 12:41:32ID:???
一週間いじってみたがこんな致命的バグの潜んだFWは使う気になれん
0277nobodyさん2008/04/30(水) 12:49:41ID:???
どんな?
0278nobodyさん2008/05/01(木) 13:30:12ID:???
>>276
ソースがあるんだから、致命的なバグがあるなら、自分で対処しろよ
0279nobodyさん2008/05/01(木) 13:52:23ID:???
どうせデマだろ
0280nobodyさん2008/05/02(金) 23:01:08ID:???
>>276
http://pc11.2ch.net/test/read.cgi/php/1205475360/765
>>765 名前:nobodyさん[sage] 投稿日:2008/04/29(火) 00:30:20 ID:???
>>一週間いじってみたがこんな致命的バグの潜んだFWは使う気になれん
0281nobodyさん2008/05/02(金) 23:14:38ID:???
なんというコピペ
0282nobodyさん2008/05/03(土) 01:05:09ID:???
ワロタ。
これはどのFWのスレに貼っても釣れるだろうなw
0283nobodyさん2008/05/03(土) 04:58:57ID:???
デフォルトのコントローラの名前って何にする?
Defaultだと予約語みたいでクラス名にできないし
0284nobodyさん2008/05/03(土) 06:57:58ID:???
>>277-279
釣られすぎw

>>283
Homeとかどうよ?
0285nobodyさん2008/05/03(土) 07:01:16ID:???
>>284
なるほど
Homeはありだな
dくす
0286nobodyさん2008/05/03(土) 07:12:58ID:???
display_overrideフックの説明で
処理済みのデータは、$this->output->get_output() を呼べば利用可能ですので、留意しておいてください。
ってあるけど
この$thisって何?
フックの文脈でなんで$thisが出てくるのかわからんちん
0287nobodyさん2008/05/03(土) 12:34:10ID:???
グローバルな GET 配列($_GET) のデータを消去します。CodeIgniterではGET文字列(クエリ文字列)を使わないので、それを許可する理由はありません。

こういうざっくばらんさがアメ公っぽい
セッションも変だし…
0288nobodyさん2008/05/03(土) 16:45:47ID:???
276は太公望の釣り針だな
FW関係のスレに貼ったら百発百中で釣れる
さすがに罪悪感が・・・w
0289nobodyさん2008/05/03(土) 23:28:28ID:???
>>276のコピペw
http://pc11.2ch.net/test/read.cgi/php/1186096518/161
161 名前:nobodyさん[sage] 投稿日:2008/05/03(土) 10:18:16 ID:???
一週間いじってみたがこんな致命的バグの潜んだFWは使う気になれん
0290nobodyさん2008/05/04(日) 00:54:40ID:???
あちこち貼ってんの誰だよw
まあそれはいいとして
rapydってスタンドアロンのPHP5用フレームワークになっちゃったんだな。
0291nobodyさん2008/05/04(日) 22:51:42ID:QrBYi/l0
軽くて個人ん規模にはいいと思ったんだけど
セッションの仕様見て萎えた…

結局、ベストプラクティスはどれ???
クッキーなんてPCでもオフになってることあるよね…
入門者向けにベストプラクティスがほしい…

あとページングするのにはURLルーティング変えないとだめなん?
標準だとGETオフになってるし…
0292nobodyさん2008/05/04(日) 23:17:37ID:???
>>291
セッションは本家のwikiに使い方ほぼ同じでクッキーじゃなくネイティブの$_SESSION使う
プラグイン(自作ライブラリ?)が公開されてる。
他にも色々あるから英語が苦手じゃなければwiki内探索をオススメ。
0293nobodyさん2008/05/04(日) 23:21:08ID:???
>>292

さんくす
探してみる

CakePHP使ってたんだけど
DB必須に近いとこがいやになって CI試してたんだ
0294nobodyさん2008/05/05(月) 05:31:30ID:???
セッションは自前で用意するのがいいよな
クッキーだと携帯に対応できないのが致命的だわ
0295nobodyさん2008/05/05(月) 07:01:33ID:1KRQrRZR
これログインしている時に行うような
アクセスコントロールは自前で実装しないといけないの?
0296nobodyさん2008/05/05(月) 18:26:57ID:???
コード読んだらアクセスコントロールまったくねーじゃん
テラしょぼす
0297nobodyさん2008/05/05(月) 18:48:09ID:???
dispatcher上書きできないとかダセーし・・
シンプルでダサくないFWはないか!
0298nobodyさん2008/05/05(月) 18:49:13ID:???
まあ、CakePHPが一番バランス取れているんだろうな。
0299nobodyさん2008/05/05(月) 19:32:45ID:???
CakePHPのモデルまわりとか
余計なアソシエーションとか

そういうのがないシンプル版がでればいいんだな…

CIのインプットとかビュー周りとかその辺はシンプルですきなんだが

(CI + CakePHP) / 2

なFWないのか
0300nobodyさん2008/05/05(月) 19:33:40ID:???
使わなければいいだけじゃね?
0301nobodyさん2008/05/05(月) 19:34:03ID:???
モデルとかアソシエーションを
0302nobodyさん2008/05/05(月) 21:58:20ID:???
CIの機能で要る子、要らない子を列挙してみないか?
欲しい子もありで。

・・・考えてみたら、欲しい子、要らない子ばかりで
要る子がいなかった・・・orz
0303nobodyさん2008/05/05(月) 22:30:04ID:???
擬似構文 と インプットフィルタ はCIが一番シンプルで使いやすい
0304nobodyさん2008/05/05(月) 23:56:22ID:???
サイト内ナビゲーションリスト生成ヘルパがほしい。
CIだけではないが。
コントローラーのディレクトリ内ファイル名を読み出してbaseurlにくっつければいいのかな。
でも全部出てくるのも困るからやっぱり手動か。
テンプレでの表示とカスタマイズはCMS的に管理画面からいじれれば一番ラクだな。
CSSや画像も含めて、まず専用の管理画面を自作するべきなのかもしれないな。
0305nobodyさん2008/05/06(火) 01:11:21ID:???
>>304

結局 凝ったナビにしようとすると
手打ちにならない?

普通のナビならCMSのほうが楽だけど
0306nobodyさん2008/05/06(火) 03:22:16ID:???
フレームワークをわざわざ使うということは、静的とか単一機能のサイトではなく、
ページコンテンツが日々どんどん更新され増えていく(と勘違いしている)ようなサイトが多いと思う。
そうなるとやっぱり、更新されたページ含めてサイト内ナビを自動で出したくなる。パンくずも出したい。

デザインのCSSや画像は、後戻りのない更新というより、素人管理者でも一発ですぐ元に戻せる「切り替え」という形にしたい。
新旧別内容の同名ファイル群をftpで切り替えるというのはこれも間違いの元で、稼動中の商用サイトに多用するのは危険。

まあ結局そこまでの機能が出来合いで欲しければExpressionEngineとやらを買え、ということなのかもしれないが。
0307nobodyさん2008/05/06(火) 09:57:12ID:???
客が勘違いしてるのだったらそこは客の要件を正すか、
ブログを使った方がいいんでない?

あと、ナビというのを漏れは勘違いしているのかもしれないが、増えるページというのは
「DBにデータが入る&グルーピングされる&管理画面から追加する」と思っているので、
ページリスト的なものを一つ作れば終わりかなあと思ってる
グルーピングされてるからパンくずも固定だし

(パンくずはセグメントとラベルの対応テーブルから引用するプラグインを作って
 テンプレに埋め込んで表示させてるけど)

話変わるが、ACLもユーザグループと権限の対応テーブルで制御してて、
メニューを非表示にしたり、直打ちされたら404を返すようにしている

0308nobodyさん2008/05/06(火) 12:13:58ID:???
CIは「簡単で軽量」「10分でつくれる」という夢を見せてくれるけど、
実用で使うには、自前でpukiwikiやワードプレスやxoopsをつくるくらいのプランニングと実装が必要になるてこと。

つまり、ルーティングシステムから各ヘルパ関数までフルスクラッチで自作するよりは簡単で、
テンコ盛りの無駄機能に縛られるxoopsよりは圧倒的に融通が効いて軽量だな。

仕様はともかくサイト内ナビ・リンク管理機能を売り文句に加えればdreamweaver並に売れるw
0309nobodyさん2008/05/06(火) 12:24:25ID:???
はぁ・・・

もともとCIを含んだフレームワークは、
pukiwikiやxoopsなどを作るための
プログラム用のツールだろ。

サイト内ナビ・リンク管理機能とか意味不明だっつーのw
0310nobodyさん2008/05/06(火) 12:44:40ID:???
いずれにしても必要になるその機能を、
1.フレームワークの段階で<li>で出てくる程度のものを用意するか。
2.各現場プログラマーが自作するか。
3.デザイナーやコンテンツライター、素人管理者がしこしこ手打ちするか。
てこと。
まあ縄張り争いにもなるので結論は期待していないが。
0311nobodyさん2008/05/06(火) 13:32:18ID:???
スレ違いですまんが、
デザイナー様にはformの要素のnameの付け方ぐらい覚えて欲しいな。
name書かないとか""にしておくぐらいならDBテーブルのフィールドと
同じ名称をつけておくぐらいして欲しいよう

俺が出会ったフリーのデザイナーなんて上記ばっかりなのだが、
そういうものなの?
0312nobodyさん2008/05/06(火) 14:00:56ID:???
書いたら書いたで文句言うのが出てくる。
触らぬウンコにたたりなし。
0313nobodyさん2008/05/06(火) 14:07:32ID:???
>>311
文句言うなよ雑用係
03143112008/05/06(火) 14:12:16ID:???
スレ汚しすまそ
0315nobodyさん2008/05/06(火) 14:13:30ID:???
>>311
無理。

nameに書く名前はデザイナーが決めるものじゃないから。
03163112008/05/06(火) 14:36:00ID:???
いや、どうせ意味のないnameを書くぐらいだったら
被る部分は事前打ち合わせするぐらいの責任感は欲しいわけですよ
0317nobodyさん2008/05/06(火) 14:41:13ID:???
>>316
私が作ったデザインを使うときに
あなたが打ち合わせに来てください。
0318nobodyさん2008/05/06(火) 15:32:17ID:???
タグのidを全ファイルに適切に挿入するプログラムなんてプログラマー名乗る成人男子なら当然すぐ書けるんでしょ?
0319nobodyさん2008/05/06(火) 17:35:07ID:???
>>311

むしろ HTMLすらまともに書けないプログラマーのほうが多い…

なんでもかんでも div や p とか

CIとは関係ないけど FWでもヘルパの吐き出すHTMLが糞
っていうのはよくある
0320nobodyさん2008/05/06(火) 18:15:51ID:???
そりゃあHTMLは普通プログラマが書く所じゃないんだから普通だろ。
完全W3C準拠じゃないとダメとか言い出す潔癖症みたいなのまでいるしな。
それこそデザイナーの仕事。
プログラマはデザイナーの作った見た目だけで論理構造の破綻しているコードを手直ししてるんだから
デザイナーはプログラマの書いた表示上整ってるだけでHTML的に糞なコードを手直しすればいい。
0321nobodyさん2008/05/06(火) 18:18:30ID:???
けんかはやめて!
0322nobodyさん2008/05/06(火) 19:26:21ID:???
>>298
cakeのスレみたら
なんかthreadとかいうクラスあるみたいな
PHP自体がthreadセーフじゃないのに何がthreadなんだか
そんなセンスのないフレームワークなんかいいはずがない
0323nobodyさん2008/05/06(火) 19:31:57ID:???
CIも標準セッションがアレだから人のこと言えない罠・・・orz
0324nobodyさん2008/05/06(火) 19:35:22ID:???
ciはファンキーなんだよ
cakeはナンセンス
0325nobodyさん2008/05/06(火) 19:39:29ID:???
>>322
threadクラス?聞いたことないぞ。
思い込みじゃないのか?
0326nobodyさん2008/05/06(火) 19:42:52ID:???
よく見たらユーザが書いたコードの一部っぽいな
0327nobodyさん2008/05/06(火) 20:38:03ID:???
おまえなw

しかも、2ちゃんねるの「スレ」の意味の
スレッドじゃねーか。
0328nobodyさん2008/05/06(火) 21:46:43ID:???
FWがファンキーなら使い手もファンキーらしい
0329nobodyさん2008/05/06(火) 21:53:50ID:???
ciはファンキー&ファンシー
0330nobodyさん2008/05/07(水) 17:38:33ID:???
おお!本の発売待ってました!
…てか、結構まだ先ですねorz

http://codeigniter.jp/archives/102
2008年6月9日「CodeIgniter徹底入門」が発売されます!
翔泳社より発売されます。徹底入門シリーズとして、約600ページの内容となります。
サンプルコードやレシピなど内容も充実しています。
0331nobodyさん2008/05/07(水) 17:47:54ID:???
DBのテーブル設計(MySQL)についてご意見をお聞かせください。

O/Rマッパーとか使ったことないんですけど、カラム名の命名は規則があった方がいいもんですか?

(1) id int型 auto_increment = 各テーブルの主キーのカラム名

(2) レコードのCRUDに関するデータを入れておくカラム名
insert_datetime datetime型
update_datetime datetime型
delete_datetime datetime型 (論理削除の場合にフラグとして使用)
0332nobodyさん2008/05/07(水) 20:48:40ID:xkEge6Nj
>>330

セッションとかそういう
デメリットの部分をカバーしてくれてるなら買うが・・

そうでなければ買う意味なさそうだな
0333nobodyさん2008/05/07(水) 22:47:19ID:???
そんなイレギュラーな使い方の解説はないだろ
0334nobodyさん2008/05/08(木) 03:22:49ID:???
普通の使い方 解説されてもな・・・
0335nobodyさん2008/05/08(木) 04:02:34ID:???
正直セッションは何とかして欲しい
0336nobodyさん2008/05/08(木) 06:34:10ID:???
CakePHP使えば?
0337nobodyさん2008/05/08(木) 10:10:07ID:???
糞ルータのハック面倒くせー
セグメントベースって何なんだよ
ci以外にあんのかこんなの
0338nobodyさん2008/05/08(木) 10:29:41ID:???
普通の使い方ならオンラインドキュメントで充分だろう。

痒いところに手が届く解説が欲しいな。
0339nobodyさん2008/05/08(木) 11:13:39ID:???
本が出る→認知度アップ→仕事で使ってもお客さん安心→ウマー

ちいたんも本が出たら…(・∀・)
0340nobodyさん2008/05/08(木) 13:24:21ID:???
>>339
あったよ。
http://www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=%82%BF%82%A2%82%BF%82%E1%82%F1
0341nobodyさん2008/05/08(木) 14:27:09ID:???
>>339-340
この流れは読めた。
0342nobodyさん2008/05/08(木) 14:32:56ID:???
>>340
おお!

ちいちゃんとぷろぐらまーwwwwww(ノ∀`)
0343nobodyさん2008/05/09(金) 20:18:30ID:???
みなさんCIで何つくってるの?会社案内?
0344nobodyさん2008/05/09(金) 20:40:43ID:???
>>343
ショッピングカートとかCMSとか。
あちこち独自ライブラリで拡張しまくりだけど。

CIは独自フレームワークを作るためのフレームワークという感じ。
0345nobodyさん2008/05/09(金) 21:46:00ID:???
>>344
同じく。
自前でフロントコントローラ作るのが面倒だからプロジェクト毎に特化したCIライブラリ拡張してる。
って使い方するならCIは便利だと思う。

他の人はどうなの?
0346nobodyさん2008/05/11(日) 07:16:47ID:???
>>345

同じく。つか、これこそFWだと思う。

今後は他のFWから依存しないライブラリを
パクって統合してみる予定。キメラ的な感じ。
0347nobodyさん2008/05/11(日) 09:16:30ID:???
aso
0348nobodyさん2008/05/11(日) 10:11:44ID:???
ばかだなぁw

フレームワーク意味ないじゃないかw
0349nobodyさん2008/05/11(日) 11:56:34ID:???
>>348
じゃあ、フレームワークの意味をなくさない程度の
使い方ってものを講釈願おうか
0350nobodyさん2008/05/11(日) 12:14:16ID:???
汎用的な部分は誰が作っても同じような構成になる。
独自のライブラリはなるべく使わない。
0351nobodyさん2008/05/11(日) 12:27:53ID:???
>>350
すまん、ちょっとわからんかった。

独自ライブラリを組み込んだものを
チーム全員が同じく使うという前提だったのだが、
350はCIをそのまま使えと言っている?
0352nobodyさん2008/05/12(月) 00:45:07ID:8tRiGXCa
ポストされた文字を内部エンコードに変換する処理どこに書く?
0353nobodyさん2008/05/12(月) 00:47:19ID:???
まだ、EUCやSJISなんか使っているのか?
HTMLも内部もUTF-8にきまってるだろ。
0354nobodyさん2008/05/12(月) 01:08:57ID:???
だって携帯なんだもん
0355nobodyさん2008/05/12(月) 14:58:24ID:???
$this->load->config
とかプロパティーでメソッドチェーンするのってキモいな
きもいしイレギュラーだから使い方忘れるわ
0356nobodyさん2008/05/12(月) 14:59:47ID:???
つーか、loadを名詞に使うなYO!
0357nobodyさん2008/05/12(月) 21:14:35ID:???
うん、それは自分もきもいと思った。
慣れればいいだけだが。
0358nobodyさん2008/05/15(木) 07:22:57ID:33ekN+Ad
コントローラで、
function index()
{
echo 'Hello World!'
}
のように、構文に間違いがあっても、エラーも何も表示されません。
どうしたらエラーの箇所がわかるのでしょうか?
0359nobodyさん2008/05/15(木) 09:39:21ID:???
>>358
application/config/config.phpのログの設定のところ見れ。
PHPエラーもログに放り込む設定になってないか?
0360nobodyさん2008/05/15(木) 18:47:08ID:???
>>359
$config['log_threshold'] = 0;
となっている。ログに放り込む設定にはなっていないと思う。

ちなみに、使っているのは 1.5.4

1.6.x だと index.php
0361nobodyさん2008/05/15(木) 18:48:27ID:???
(ごめん 途中で書き込んでしまった)

1.6.x だと index.php をブラウザで見ても何も表示されないけど、
Apache か PHP の設定が何かおかしいのかなぁ?
0362nobodyさん2008/05/15(木) 20:11:20ID:33ekN+Ad
1.5.4 のソースを読むと、
set_error_handler('_exception_handler');
でエラーハンドラを設定しているようですが、
function _exception_handler($severity, $message, $filepath, $line)
は値を返さず return しています。
PHP のマニュアルには 5.2.0 では「エラーハンドラは必ず FALSE を返さなければなりません」
と書いてあります。
ci 1.5.4 は PHP 5.2.0 以上には対応していないってことでしょうか?
03633582008/05/15(木) 20:43:44ID:???
解決しました
構文エラーがあってもエラーメッセージが表示されなかったのは php.ini で
display_errors = Off
としているからでした。
お騒がせして&ci のエラーハンドリングを疑って大変申し訳ありませんでした m(_ _)m
0364nobodyさん2008/05/16(金) 13:43:36ID:???
フォームヘルパー使うとCSSは凝ったこと出来なくなるし、javascriptとの絡ませ方を間違いそうだし、
表示系はviewに手打ちが基本?
0365nobodyさん2008/05/16(金) 13:49:39ID:???
ヘルパをラッパーしたらいいじゃん
0366nobodyさん2008/05/16(金) 15:15:12ID:???
CIのviewは使って無いなぁ。
Flexy突っ込んで使ってる。
0367nobodyさん2008/05/16(金) 18:28:03ID:???
つまりまともに段組したければ、view側にヘルパーのコードを書くことになる。
view側では文字数減るが、コントローラ側と合わせれば同程度かむしろ増える。
他の人が変数自体や変数に入れたnameやid確認したければ、わざわざコントローラのファイル見に行くことになる。
結局ふつうのフォームは生htmlでviewに書くことにするからメンテナンス請け負った人は客や上司の前で批判しないように。
0368nobodyさん2008/05/18(日) 03:29:10ID:???
セキュリティー的に、www掘ってそこにindex.php置くべきだよなぁ
すべてのphpファイルの前に
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
なんて書くよりその方がずっと簡単でスマートなのにエリスはあほなの?
0369nobodyさん2008/05/18(日) 08:20:55ID:???
そうしなくても使えるように配慮したからだろJK
■ このスレッドは過去ログ倉庫に格納されています