トップページ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/

小回りの利くフレームワークの話題をひとつ!
0011nobodyさん2007/04/29(日) 03:57:47ID:???
Net_URL_Mapperのソースってイモだな
○○0とか○○1とかいうメソッド名はねーだろよ
0012nobodyさん2007/04/29(日) 12:53:53ID:???
>>4
_parse_routes時点での書き換えのほうがよくない?
0013nobodyさん2007/05/02(水) 00:11:47ID:???
ciにオートローダ書こうと思ったら
どこに書く?
0014nobodyさん2007/05/02(水) 00:22:08ID:???
pre_systemってフックがあるな
ここだね
0015nobodyさん2007/05/02(水) 23:30:19ID:???
前から思ってたがここのUser Guideのギミック
いまいちだよな・・・
凝りたいのは分かるがここは普通にした方がいい
0016nobodyさん2007/05/03(木) 20:15:34ID:???
フレームワーク作者は
class_existsの第二引数をちゃんと書くように!
自前autoload書くといちいち飛んでくるから困る
0017nobodyさん2007/05/03(木) 20:25:44ID:???
PHP4でclass_existsの第二引数を書くとエラーにならない?
0018nobodyさん2007/05/03(木) 20:29:17ID:???
不必要なパラメータ付けたくらいでエラーにはならないじゃないの?多分
0019nobodyさん2007/05/03(木) 20:39:32ID:???
なるよ
0020nobodyさん2007/05/03(木) 20:43:35ID:???
エラーになるだろ。普通。
そんなことより自分の能力不足を「作者」のせいにするってのはやめたほうがいいな。
0021nobodyさん2007/05/03(木) 20:49:33ID:???
試してみたけど、不必要な引数があっても、エラーは出ないね。
0022nobodyさん2007/05/03(木) 21:02:02ID:???
もういいから巣に帰れ。
>php -v
PHP 4.4.6 (cli) (built: Mar 12 2007 10:11:11)

>php test.php

Warning: Wrong parameter count for class_exists() in 略 on line 6

>cat test.php
<?php
class ABC
{
function ABC(){;}
}
if(class_exists('ABC',TRUE)) {;}
?>
0023nobodyさん2007/05/03(木) 21:32:06ID:???
自作の関数だと、引数の数が多くてもエラーでなかったんだけどな。
組み込みの関数だと、チェックしてるんだな。
0024nobodyさん2007/05/04(金) 02:04:41ID:???
能力不足とは?
対応しようと思えばできるがそもそもの設計がおかしいだろ
0025nobodyさん2007/05/04(金) 02:24:46ID:???
4と5両対応してんだから歪みでるのは当然
0026nobodyさん2007/05/04(金) 02:29:13ID:???
4/5別の分岐してるんだから
別の対応はしてほしいところだな
0027nobodyさん2007/05/04(金) 05:13:31ID:???
>>23
将来の拡張もありうるんだから
パラメータ多すぎでエラー出すのはおかしいよな。
実際おかしなことになってるし。
0028nobodyさん2007/05/04(金) 10:24:04ID:???
なんか必死だな
0029nobodyさん2007/05/04(金) 10:37:03ID:???
いや引数が多い時にエラー出すのが悪いんじゃなくて
PHP5以降のclass_existsの拡張のデザインが失敗なんだ思うよ
だいたいclass_existsする時点でオートロードするなんて
ありがた迷惑以外のなにもんでもないだろう
PHP4とのcompatibility考慮したら第2引数省略した時は
何もしないでTRUEの場合にオートロードを試みるべきだった
FW本スレでもそういう話が出てたはず
0030nobodyさん2007/05/04(金) 11:00:23ID:???
拡張クラス命名規則をちゃんとしとけばいいんだから、それは本質論じゃないな。
0031nobodyさん2007/05/04(金) 12:12:13ID:???
いや、俺はigniter使ってないから分からないが
命名規則で回避できるならそれはそうなんだろうけど
class_existsの挙動についてっていう点でね
0032nobodyさん2007/05/04(金) 12:49:21ID:???
でもそれ言ったらclass_existsだけじゃなくて、newもextendsもloadされていない場合
__autoloadを一旦見に行くじゃん。記述した未知のクラス名を見に行くのが悪いって
いってしまったら、newに、new(True) ClassNameとか「引数」実装しろって話しにもなるぜ。
0033nobodyさん2007/05/04(金) 14:13:49ID:???
未知のクラス名を見に行くのが悪いんじゃなくて
class_existsを使う局面の意味合いを考えてみてよ

newやextendsで未知のクラスを使わないよう
未知のクラス名でないかどうか調べるためにclass_existsするわけでしょ
確実にクラスが存在するか書き手は保証を行うためにclass_existsする
なのにclass_existsのデフォルト(第2引数無し)が
autoloadを見に行くのはどう考えてもお節介でしょ
autoloadに期待しているなら書き手はclass_existsなんてしないはず
それこそnewやextendsをいきなりやってしまってautoloadに任せる

newやextendsにも引数実装しろなんて話にはならない
0034nobodyさん2007/05/04(金) 14:55:44ID:???
>33

そうすると、autoloadを使っているコードでもしクラスが見つからなかった場合はどうやってエラー回避すればいいの?
0035nobodyさん2007/05/04(金) 15:15:02ID:???
autoloadの中で例外投げて、エラーから復帰したい場合はキャッチ
0036nobodyさん2007/05/04(金) 15:28:12ID:???
>>33
なぜ、おせっかいなのか不明だな。なきゃそこで戻るんだから。
version 5で、autoload想定していない4との互換物を走らせるのに
デフォルトでautoloadにやってくるから意味があるわけで。
0037nobodyさん2007/05/04(金) 15:51:51ID:???
33じゃないけど、そもそもclass_existsを実際に使いたい場面ってのは、基本的にautoloadとは違う仕組みでincludeしたいときだったりする。
例えば、フレームワーク自体を製作する側から見ると、アクションコントローラやビューのクラスをフレームワークの仕組みに従ってロードしたい場合。
フレームワークの作者は、ユーザがautoloadを定義している場合に備えて、class_existsの第二引数に気を遣わないといけない。

で、autoloadとclass_existsが共存するようなシチュエーションは、フレームワーク製作のこういう部分でしかまず見られないよね、って話になると、ああデフォルトではautoloadを見に行かないほうがいいわなってなるわけよ。
autoloadでロードされる「その他一般の自作クラスライブラリ」たちとは別の、特別な専用ディレクトリからロードしたい時が、まさにclass_existsの使いどころだから。

まあ他にclass_existsを有意義に使える場面があるなら、また話は違ってくるんだろうけど。
ここまで書いてふとスレタイを見たら、今頃CIスレであることに気付いた・・・orz
0038nobodyさん2007/05/04(金) 16:28:51ID:???
「フレームワーク製作のこういう部分でしかまず見られないよね」って話なら、なおさらデフォルト引数の挙動に互換性を無くすメリットはないんじゃないか。

まあ今どきのフレームワーク作者ならspl_autoload()とか使うと思うけど。

0039nobodyさん2007/05/04(金) 16:35:16ID:???
>>36
FW自体がautoloadを定義している事が前提ならば
また変わってくるが(CIはどうなんだっけ・・・)、
FW自体ではautoloadを利用せずユーザにautoloadの定義を
委ねている場合はそのFW作成側はclass_existsの引数に注意する必要が出てくる
理由は>>37の書いている通りFWを使う側のユーザが定義した
autoloadが勝手に呼ばれてしまう、ユーザが呼んで欲しくもなくても

で、これはFWに限らず__autoload()がユーザ側で自由に定義される以上、
ライブラリ側のコードではclass_existsを使う場合に
autoloadの事は常に意識せざるを得なくなる
となると第2引数はfalseにするしかない
そういう注意が必要になるってことがお節介の理由

で加えてclass_existsの第2引数をfalseにしちゃうと
PHP4ではwarningが出ちゃうから4/5の互換性の点でも問題だから
このclass_existsのデフォルトはよくないんじゃないかってこと
0040nobodyさん2007/05/04(金) 16:40:24ID:???
うん、class_exists()拡張の際のデフォルト値は失敗だな。
仮に何か理由があろうとなかろうと、
あれのおかげで、__autoload()が絶妙に使いにくくなってしまった。

リリースしてしまったものは、今更しょうがないけど、
Zendクオリティに萎えたのは事実。
0041nobodyさん2007/05/04(金) 18:30:31ID:???
PHP5使い→class_exists()に批判的
PHP4使い→class_exists()に擁護的

いろいろ語られてるが突き詰めればこれだけの違いじゃね
PHP5使っててclass_exists()の仕様を「これでいい」と思ってる奴は
かなりのマゾ野郎だけだろう
0042nobodyさん2007/05/04(金) 19:22:58ID:???
なにを言ってるのか不明だな。
ver5と「class_exists拡張」とautoloadは同時なのに。
ver5ベースでやってる奴は、今の仕様でいいに決まってるじゃん。
0043nobodyさん2007/05/04(金) 21:23:14ID:???
雑談は総合スレでやろうよ。ネタないけどさ(;´Д`)
0044nobodyさん2007/05/04(金) 22:21:29ID:???
CIの実装にかかわることだからいいんだよ。ここで。
ちなみに、 5のみに特化したsymfonyの場合、grep |wc で単純計算すると
class_existsで引数falseつけてるのは12、つけてないのは32。前者は当然core関係、後者はvendor関係が多い
0045nobodyさん2007/05/04(金) 23:13:08ID:???
>>42
お前の方が意味不明だっつの
てかclass_exists()擁護派は総じて論拠が柔すぎて反論する気すらおきん
対話自体にならないレベルだ。
まあ現実問題として改正が必要なんだからエリックに言ってやらないとな
英語に達者な奴頼む
0046nobodyさん2007/05/08(火) 22:41:46ID:???
┐(´д`)┌
0047nobodyさん2007/05/09(水) 03:42:29ID:???
CI使ってる人
view(template)名はどうしてる?
俺はsymfonyの真似で
hogehoge_inputとかhogehoge_successにしてるが
0048nobodyさん2007/05/09(水) 10:33:05ID:???
method_view
0049nobodyさん2007/05/09(水) 22:21:52ID:???
俺はsubdirectory(method or class)/fileだな
0050nobodyさん2007/05/09(水) 23:53:49ID:???
俺もクラスではディレクトリ分けてる
0051nobodyさん2007/05/10(木) 14:14:44ID:???
ciのActiveRecordってRailsのActiveRecordと
なんか違くね…?
違うのになんでActiveRecordを名乗ってるんだ…?
0052nobodyさん2007/05/10(木) 14:21:51ID:???
>>49
それ詳しく教えてもらえないか?
0053nobodyさん2007/05/11(金) 22:06:54ID:???
>>52
50と変わらんとは思うけど
class/files
method/files
filesは結構沢山あるな。view用のcss/js設定ファイルとか、基本画像用gifもそこにおいてあるし
0054nobodyさん2007/05/27(日) 00:20:32ID:???
http://blog.probo.jp/
ここci使ってなかったっけ?悲惨だな…
0055nobodyさん2007/05/27(日) 00:34:45ID:???
そのエラーメッセージはまさしくciだな
0056nobodyさん2007/05/27(日) 00:42:16ID:???
そこで初めてcodeigniterという文字列を最初に見た気がする
0057nobodyさん2007/05/27(日) 00:45:55ID:???
何のブログだったの?
有名どころ?
0058nobodyさん2007/05/27(日) 00:55:09ID:???
普通のPHP関連のブログだったかと
0059nobodyさん2007/05/27(日) 01:52:52ID:???
悲惨って言うほどのもんじゃないと思うけど、
errorメッセージってちゃんと作りこんでおいたほうがいいよね。
0060nobodyさん2007/05/27(日) 01:57:10ID:???
たしかに悲惨は言い過ぎだろ
ただdbに繋がらなくなっただけに見える
ってか晒す意味がわからない
0061nobodyさん2007/05/29(火) 01:54:43ID:???
自演フォロー乙
0062nobodyさん2007/05/29(火) 03:02:43ID:???
元がどんなブログかもしらんし何の関係もないが…
0063nobodyさん2007/06/06(水) 10:23:29ID:???
いいかんじなので上げ
0064nobodyさん2007/06/06(水) 10:41:39ID:???
ユーザガイドの日本語訳出来ているのね。
http://userguide.cilab.info/index.html
0065nobodyさん2007/06/08(金) 12:02:09ID:???
ユーザ少なすぎじゃないのか。いいのに。
0066nobodyさん2007/06/08(金) 14:48:19ID:???
初めてのフレームワークに採用する予定。
日本語の解説ページが少ないのは不安だけど。
ユーザーガイドは読みやすくていいと思った。
認証機能を使った会員管理システムを作る予定。
0067nobodyさん2007/06/08(金) 16:23:11ID:???
CIって、日本語でも大丈夫? 
0068nobodyさん2007/06/08(金) 17:37:53ID:???
問題ないよ。
0069nobodyさん2007/06/09(土) 02:23:16ID:W+nVmF6j
>>64
おおお!これは助かる!
翻訳途中の方のサイト見ながらで若干不安だったんだ。

ちなみに3年くらい動かしてるらしい顧客のサイト。
度重なる機能追加でカオスになっていたので、
CIつかってリニューアルさせてもらいました。

記号を含むURIで少々はまったものの
ほとんど上記のユーザガイドで事足りました。

検収記念age
0070nobodyさん2007/06/09(土) 04:13:48ID:???
どんなサイトなの?
導入事例キボン(死語か
0071nobodyさん2007/06/12(火) 14:05:15ID:???
>>70
ショップとかできる? 商品売るやつ。
0072702007/06/12(火) 17:43:07ID:???
意味がわからないんだが
0073nobodyさん2007/06/12(火) 21:03:17ID:???
ショッピングカート
0074nobodyさん2007/06/14(木) 01:04:52ID:???
できるかどうかはあなた次第
0075nobodyさん2007/06/15(金) 11:50:52ID:???
CIを使うとき、自分で追加するPHPファイルの文字コードは何にしてますか?
ダウンロードしたCIのファイルはShift JISになっているみたいですが、自分で追加するファイルはUTF-8Nでもいいですか?
0076nobodyさん2007/06/15(金) 16:48:05ID:???
>ダウンロードしたCIのファイルはShift JISになっているみたいですが
( ゚д゚)
0077nobodyさん2007/06/15(金) 19:28:21ID:???
おちゃめなジャパニーズがいたもんだな
0078nobodyさん2007/06/15(金) 19:38:23ID:???
自分で追加するファイルの文字コードは、UTF-8Nにして正常に動作しました!
ただ今、CodeIgniter ユーザガイド 日本語版 Version 1.5.3を見ながらサンプルコードを動かしています。^^
http://userguide.cilab.info/toc.html
↑日本語訳を作ってくれた方、どうもありがとうございます!
0079nobodyさん2007/06/15(金) 21:21:47ID:???
CI最高age
0080nobodyさん2007/06/16(土) 04:50:04ID:???
CakePHPの評判が気になってCIから浮気した
0081nobodyさん2007/06/16(土) 09:17:02ID:???
俺の知り合いもこのスレを見ている予感
0082nobodyさん2007/06/16(土) 09:27:11ID:???
>>81
まさか…お前か?
直接言いにくいからここで言うわ
早く金返せ
0083nobodyさん2007/06/17(日) 01:47:51ID:???
認証機能つけるには、Authクラスを自作するのだろうか
0084nobodyさん2007/06/17(日) 02:20:47ID:???
>83
ttp://tomcode.com/inside/code-igniter/userauth/userauth_0.9.2t52/
0085nobodyさん2007/06/18(月) 00:05:15ID:???
>>84
おお、wiki以外にもこんなのがあったのか。
まじでありがとう!
0086nobodyさん2007/06/18(月) 00:31:10ID:???
>>84
俺もブックマークに入れときました。
ありがとう!
0087nobodyさん2007/06/18(月) 10:25:34ID:???
>>84
modelのなかで& get_instance発行して、dbインスタンスを再取得してるのか・・・
・・・・わかってないんだろうこれ作った人。使わないほうが吉だな。
0088nobodyさん2007/06/18(月) 11:22:42ID:???
じゃあちゃんとしたやつ作って公開してくれ
0089nobodyさん2007/06/18(月) 12:29:44ID:???
CakePHPの中でCodeIgniterのライブラリ使えるらしいのだが、
やっぱり両方試してみたほうがいいかな
0090nobodyさん2007/06/18(月) 13:33:22ID:???
CIの中でZend使うってのもありじゃないか?
かく言う俺もcakeとCIで迷っているが。まぁ対象規模が違うわな
0091nobodyさん2007/06/18(月) 15:38:49ID:???
>>87
どうするのが正しいの?
0092nobodyさん2007/06/18(月) 18:45:15ID:???
>>91
なにもしないのがただしい。既にCIのインスタンスは存在してるから。
親のModel classはそのインスタンスを取得する(だけの)基底クラス。
0093nobodyさん2007/06/18(月) 20:11:08ID:???
Modelのコンストラクタにget_instance入ってないから良いんじゃないの??
0094932007/06/18(月) 20:14:38ID:???
やっぱ要らない。見落としてた。
0095872007/06/18(月) 21:54:19ID:???
>>88
なんでこういうようなちゃかしが入るのかわからない。
使ってるFWの実装を押さえないような程度のコードを
単に在るからっていうだけで、使うのは良くないといってるだけ。
特にセキュリティにかかわるclassなんだから慎重であるべき。
0096842007/06/18(月) 22:09:19ID:???
なんか、役になったようで。
けど、これ自分がスレが立ったときに>10の「Code Igniterの情報サイト」
で書いたやつだったのが、、、説明不足だったか。

あと、これ以上に
・リスト表示・登録画面をテンプレート形式で作成できるプラグイン「rapyd」
ttp://www.rapyd.com/
 >サンプル
 ttp://www.rapyd.com/rapyd/samples

ほうが便利っす。どうでもいい検索→一覧→更新
画面をそこそこのデザインで作りたいときはすげえ便利。
CI使っている人は是非w
0097nobodyさん2007/06/19(火) 02:21:28ID:???
84さんが紹介してくれた認証クラスは、どこに入れて使うの?
アプリケーションの下に入れとけばいいのかな?
0098nobodyさん2007/06/19(火) 12:45:54ID:???
おちょくらないほうがいいよ。真面目な人みたいだから。
0099nobodyさん2007/07/05(木) 22:34:34ID:???
CodeIgniterの機能云々は置いといて
このマニュアルめっちゃ見やすいな
http://userguide.cilab.info/toc.html
0100nobodyさん2007/07/14(土) 01:33:13ID:???
CodeIgniter 1.5.4 Released
0101nobodyさん2007/07/17(火) 15:06:17ID:???
人いないねぇ
Cakeに流れた?
0102nobodyさん2007/07/17(火) 18:13:00ID:???
アソシエーション使わないならこっちだな、はやいし。
0103nobodyさん2007/07/19(木) 13:31:27ID:???
>>101
邦訳マニュアルが出来た頃から>>99のようなマニュアルサイトの宣伝コピペが
増えて、ちょっと引き気味。
0104nobodyさん2007/07/20(金) 23:11:01ID:HPTI18nF
この程度で・・・
心のよわいやつだなあ
0105nobodyさん2007/07/21(土) 00:04:05ID:???
まぁでも言われて気づいたな。
0106nobodyさん2007/07/21(土) 03:25:50ID:YySJAyHD
phpはこれまでの経緯からOOP入門者の層が多そうなので
ルールの少ないCIのほうが入りやすそうなんだけどな。
かくいう自分もデザイナ上がり。
日本語サイトが少ないのがイマイチ普及しない原因でしょうか。

前にも書いたけどさんざん張られてるマニュアルサイトの情報だけで
ちょっとしたサイトなら簡単に構築できるからおすすめですにゃ。
0107nobodyさん2007/07/21(土) 11:10:24ID:???
OOPとFWなんて関係ないが。なに言いたいんだ元デザイナーは
0108nobodyさん2007/07/22(日) 04:01:25ID:dxwJT9EH
>OOPとFWなんて関係ないが。
そうか?
0109nobodyさん2007/07/22(日) 10:21:52ID:???
>phpはこれまでの経緯からRoR風FW入門者の層が多そうなので
>ルールの少ないCIのほうが入りやすそうなんだけどな。

これならわかる。
0110nobodyさん2007/07/22(日) 16:06:56ID:???
ファイルのアップロードやってるんですが、
必須チェックをvalidation使ってどうやってやったら良いでしょうか?
validation内では$_POSTしか見てくれないようで、
ruleにrequiredを設定すると、必ず必須エラーになってしまいます。
callback関数も呼んでもらえないし、みなさんどうされてるんでしょ?
そこだけ自前?
■ このスレッドは過去ログ倉庫に格納されています