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

このエントリーをはてなブックマークに追加
1nobodyさん
公式:http://www.codeigniter.com/
チュートリアル:http://codeigniter.com/tutorials/

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

小回りの利くフレームワークの話題をひとつ!
2nobodyさん:2007/04/27(金) 23:18:05 ID:???
まさか建てられると思ってなかったんだ、だが後悔はしていない。
3nobodyさん:2007/04/28(土) 01:15:05 ID:???
乙!
4nobodyさん:2007/04/28(土) 01:38:57 ID:???
本スレに
CIにNet_URL_Mapper組み込んだ人いる?
どう手を付けたらいいのか迷うな

と書いたものだが
Routerクラスの_set_route_mappingメソッドを
オーバーライドするのが普通かな
あまりキレイではないが…
5nobodyさん:2007/04/28(土) 02:34:36 ID:???
Net_URL_Mapperって
/:module/:action/*
みたいな書き方できない?
なんだこの中途半端なルータは・・・
6nobodyさん:2007/04/28(土) 14:41:50 ID:???
>>5
出来るにきまってるだろ。
$obj -> connect('/f:oo/:bar/*(wild)','',array('wild"=>'*'));


7nobodyさん:2007/04/28(土) 15:53:48 ID:???
"wild"て書かないといけなかったのか・・・サンクス
8nobodyさん:2007/04/28(土) 16:03:48 ID:???
てかNet_URL_Mapperのドキュメントないの舐めてね?
おまいらみんなソース読んでんの?
9nobodyさん:2007/04/28(土) 17:25:45 ID:???
わかんなかったらソース読むだろ普通。

>>7
wildという文字が大切じゃなくて、connectの第三引数 arrayでrule(s)が指定できるってこと。
connect(....../*(hoge),array('hoge'=>'*'));
10nobodyさん:2007/04/28(土) 18:07:37 ID:???
Code Igniterの情報サイト

○セットアップ関連
・基本セットアップ情報
ttp://adultnews.blog14.fc2.com/blog-entry-50.html

・配置変更
ttp://blog.nought-point-999.net/index.php/site/2007/03/29/

・index.phpの配置の変更方法
ttp://blog.nought-point-999.net/index.php/site/2007/03/21/

○ライブラリ関連
・xajaxの使用方法
ttp://hain.jp/index.php/tech-j/2006/07/24/code_igniter_xajax_php_ajax

・CakePHPのACLライクな認証プラグイン「UserAuth」
ttp://tomcode.com/inside/code-igniter/userauth/userauth_0.9.2t52/

・Railsチックなレイアウトを設定できるプラグイン「layout_library」
ttp://codeigniter.com/wiki/layout_library/

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

11nobodyさん:2007/04/29(日) 03:57:47 ID:???
Net_URL_Mapperのソースってイモだな
○○0とか○○1とかいうメソッド名はねーだろよ
12nobodyさん:2007/04/29(日) 12:53:53 ID:???
>>4
_parse_routes時点での書き換えのほうがよくない?
13nobodyさん:2007/05/02(水) 00:11:47 ID:???
ciにオートローダ書こうと思ったら
どこに書く?
14nobodyさん:2007/05/02(水) 00:22:08 ID:???
pre_systemってフックがあるな
ここだね
15nobodyさん:2007/05/02(水) 23:30:19 ID:???
前から思ってたがここのUser Guideのギミック
いまいちだよな・・・
凝りたいのは分かるがここは普通にした方がいい
16nobodyさん:2007/05/03(木) 20:15:34 ID:???
フレームワーク作者は
class_existsの第二引数をちゃんと書くように!
自前autoload書くといちいち飛んでくるから困る
17nobodyさん:2007/05/03(木) 20:25:44 ID:???
PHP4でclass_existsの第二引数を書くとエラーにならない?
18nobodyさん:2007/05/03(木) 20:29:17 ID:???
不必要なパラメータ付けたくらいでエラーにはならないじゃないの?多分
19nobodyさん:2007/05/03(木) 20:39:32 ID:???
なるよ
20nobodyさん:2007/05/03(木) 20:43:35 ID:???
エラーになるだろ。普通。
そんなことより自分の能力不足を「作者」のせいにするってのはやめたほうがいいな。
21nobodyさん:2007/05/03(木) 20:49:33 ID:???
試してみたけど、不必要な引数があっても、エラーは出ないね。
22nobodyさん:2007/05/03(木) 21:02:02 ID:???
もういいから巣に帰れ。
>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)) {;}
?>
23nobodyさん:2007/05/03(木) 21:32:06 ID:???
自作の関数だと、引数の数が多くてもエラーでなかったんだけどな。
組み込みの関数だと、チェックしてるんだな。
24nobodyさん:2007/05/04(金) 02:04:41 ID:???
能力不足とは?
対応しようと思えばできるがそもそもの設計がおかしいだろ
25nobodyさん:2007/05/04(金) 02:24:46 ID:???
4と5両対応してんだから歪みでるのは当然
26nobodyさん:2007/05/04(金) 02:29:13 ID:???
4/5別の分岐してるんだから
別の対応はしてほしいところだな
27nobodyさん:2007/05/04(金) 05:13:31 ID:???
>>23
将来の拡張もありうるんだから
パラメータ多すぎでエラー出すのはおかしいよな。
実際おかしなことになってるし。
28nobodyさん:2007/05/04(金) 10:24:04 ID:???
なんか必死だな
29nobodyさん:2007/05/04(金) 10:37:03 ID:???
いや引数が多い時にエラー出すのが悪いんじゃなくて
PHP5以降のclass_existsの拡張のデザインが失敗なんだ思うよ
だいたいclass_existsする時点でオートロードするなんて
ありがた迷惑以外のなにもんでもないだろう
PHP4とのcompatibility考慮したら第2引数省略した時は
何もしないでTRUEの場合にオートロードを試みるべきだった
FW本スレでもそういう話が出てたはず
30nobodyさん:2007/05/04(金) 11:00:23 ID:???
拡張クラス命名規則をちゃんとしとけばいいんだから、それは本質論じゃないな。
31nobodyさん:2007/05/04(金) 12:12:13 ID:???
いや、俺はigniter使ってないから分からないが
命名規則で回避できるならそれはそうなんだろうけど
class_existsの挙動についてっていう点でね
32nobodyさん:2007/05/04(金) 12:49:21 ID:???
でもそれ言ったらclass_existsだけじゃなくて、newもextendsもloadされていない場合
__autoloadを一旦見に行くじゃん。記述した未知のクラス名を見に行くのが悪いって
いってしまったら、newに、new(True) ClassNameとか「引数」実装しろって話しにもなるぜ。
33nobodyさん:2007/05/04(金) 14:13:49 ID:???
未知のクラス名を見に行くのが悪いんじゃなくて
class_existsを使う局面の意味合いを考えてみてよ

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

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

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

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

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

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

39nobodyさん:2007/05/04(金) 16:35:16 ID:???
>>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のデフォルトはよくないんじゃないかってこと
40nobodyさん:2007/05/04(金) 16:40:24 ID:???
うん、class_exists()拡張の際のデフォルト値は失敗だな。
仮に何か理由があろうとなかろうと、
あれのおかげで、__autoload()が絶妙に使いにくくなってしまった。

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

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

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

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

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

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

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

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

これならわかる。
110nobodyさん:2007/07/22(日) 16:06:56 ID:???
ファイルのアップロードやってるんですが、
必須チェックをvalidation使ってどうやってやったら良いでしょうか?
validation内では$_POSTしか見てくれないようで、
ruleにrequiredを設定すると、必ず必須エラーになってしまいます。
callback関数も呼んでもらえないし、みなさんどうされてるんでしょ?
そこだけ自前?
111nobodyさん:2007/07/22(日) 17:46:49 ID:???
そこで言う必須チェックって、なにを指してるんですか?
112110:2007/07/22(日) 17:57:43 ID:???
>>111
フォームからファイルが指定されたかどうかです。
$_FILES['xxxx']['name']に値があるかどうかでチェックしようと思ってました。
その後$_FILES['xxxx']['error']をチェックしたり、拡張子の制限を追加したりと
思ってたんですがその前に挫折してしまいました。
113nobodyさん:2007/07/22(日) 18:01:33 ID:???
file uploadクラスの->data()の値をでチェックすれば済むんでは?
114110:2007/07/22(日) 20:56:00 ID:???
uploadクラスのdo_upload()関数でエラーチェックまで出来るんですね。

今回は、フォームにはテキストボックス等の入力もあるので、
そのチェックはvalidationでやっています。
if ($this->validation->run() === FALSE) {
  入力エラー
} else {
  正常
}

これを
if (!$this->validation->run() || !$this->upload->do_upload()) {
  入力エラー
}

とする事にしました。
ありがとうございました。
115nobodyさん:2007/07/22(日) 23:17:46 ID:???
CSSってどうしてる?

system/application/viewsとかにおいてる?(別途controller必要だけど)
それとも
documentroot/css とか?

参考にしたいのでよろしくです。
116106:2007/07/23(月) 02:26:30 ID:rslZzZtP
>>109
ベタ書きされたよそのシステムに手を入れる機会が多いので、
OOP(というかデザパタ?)苦手な人が多いのかなと思ったのです。
自分も「自己流でよくね?」と思ってた時期が長くて、
オブジェクト指向の本をいくつか読むまでFWの恩恵がわからなかったもので。
低レベルな主観で語ってしまいました。ごめんなさい。
117nobodyさん:2007/07/23(月) 06:11:20 ID:???
>>115
CSSに限らずファイルはすべて前者(viewsにおくかどうか別にして)が可能なように
対応。速度のことを考えて最終公開用に後者に置くことを想定するが、
ファイル変更等は常に前者で。
118nobodyさん:2007/07/27(金) 02:06:10 ID:???
CodeIgniter ユーザガイド 日本語版 Version 1.5.4
を読んで勉強しています。
誤植と思われる箇所を発見しました。

http://userguide.cilab.info/general/controllers.html
のページの真ん中辺にある文章で、「関数呼び出しの再マッピング」のサンプルコードについてです。
function _remap($method)の中の
 $this->$method();
は、
 $this->method();
ですよね?
=method()の前についている$が不要。

ユーザーガイド日本語版を作成された方は、このスレをご覧になっているでしょうか?
とりいそぎご報告まで(・∀・)
119nobodyさん:2007/07/27(金) 07:53:56 ID:/fnc4AF2
あるcontrollerから別のcontrollerのアクションメソッド使う方法てあったっけ?
120nobodyさん:2007/07/27(金) 07:59:28 ID:???
>>118
君の頭が誤植
121nobodyさん:2007/07/27(金) 08:09:34 ID:???
>>119
親でなきゃ無理。でもそれってコントローラーの実装が変だと思うけど。
122nobodyさん:2007/07/27(金) 08:41:48 ID:/fnc4AF2
たとえば「記事 controller」と「ユーザ controller」がすでにつくってあって
記事関連の各ページに「わけありユーザ上位数名」を表示したいとき。
条件が複雑だからできれば今後のために「ユーザ controller」にまとめたくて。

もう眠いからfile関数で取っちゃおうかな。
123nobodyさん:2007/07/27(金) 08:45:35 ID:???
それはmodelでやることですよ。
124nobodyさん:2007/07/27(金) 09:01:52 ID:/fnc4AF2
でーすーよーねー。あーあ、はずかしー。
サンクスです。
125nobodyさん:2007/07/27(金) 13:44:27 ID:???
>>120
あああ!意味が分かりました!!!

<?php
$method = "some_method";
$some_method = "name";
echo $$method;//→echo $some_method; と同じ
?>
ってことなんですね。

$this->$method();
にしておけば、実行する関数をその都度指定できると。
私の解釈が間違っていることを気づかせてくれるヒントをいただき、どうもありがとうございました。
126nobodyさん:2007/07/27(金) 21:47:18 ID:kiyCeLtJ
CodeIgniterってサイト毎に設置していく必要あるの?
サイト毎にまとめて設定して、
CodeIgniterをひとつのフォルダにぶっこんで共有したいんだよね…

無理か…
あーバージョン管理大変じゃ。
127nobodyさん:2007/07/27(金) 21:56:52 ID:???
サイトごとっていう意味がはっきりしないが、
同一サーバで、URL/host名が違うって言う意味か?
それなら全然無理じゃないし普通にできるだろ
128nobodyさん:2007/07/28(土) 09:53:42 ID:???
129nobodyさん:2007/07/28(土) 09:57:26 ID:???
>>128
それは質問の主旨とは違うだろう
130nobodyさん:2007/07/28(土) 10:17:24 ID:???
俺も>>128でOKだと思った。
質問の主旨がわかんね。
131nobodyさん:2007/07/28(土) 10:20:57 ID:???
まあ、その程度のマルチホスト対応でいいならどうでもいい質問であることは確かだな
132nobodyさん:2007/07/28(土) 10:52:29 ID:???
indexも一つで、CI自体のフォルダも一切変えないぐらいじゃないと、
そんなに管理の手間はかわらんよ。>>128であろうとCI複数突っ込むのであろうと。
やるならhookつかってconfigクラス拡張+ルータ設定だな。これなら
CI管理はindex.php,applicationも含めて一つでOKだろ。
133nobodyさん:2007/08/01(水) 06:27:52 ID:???
既出かもしれんが。
徒然なるままにBlog
PHPベンチマーク: Zend Framework vs Symfony vs CakePHP vs CodeIgniter vs PHP on TRAX
http://www.tsujita.jp/blojsom/blog/default/PHP/2007/07/13/PHPベンチマーク-Zend-Framework-vs-Symfony-vs-CakePHP-vs-CodeIgniter-vs-PHP-on-TRAX.html
134nobodyさん:2007/08/01(水) 09:56:13 ID:???
ZF意外と健闘してるな。
135nobodyさん:2007/08/02(木) 17:13:21 ID:S/9lNY0s
$this->load->library('session');
$newdata = array(
  'name'  => 'john',
  'id'   => '1',
  'logged_in' => TRUE
);
$this->session->set_userdata($newdata);

セッションがパソコンに保存しくんねーけど、なぜだーーー!
136nobodyさん:2007/08/02(木) 20:25:34 ID:???
クッキーが全てを物語っている
137nobodyさん:2007/08/03(金) 10:48:28 ID:???
CI厨がフレームワーク総合スレで鬱陶しいんですが、
出身地及び引き取り先はここですか?
138nobodyさん:2007/08/03(金) 11:08:37 ID:???
寂しいのか?
139nobodyさん:2007/08/08(水) 21:51:41 ID:???
ドキュメントを日本語に翻訳してくれた中の人、GJです。
こういうのって、どうやって効率よく作業するの?
なんか翻訳支援ツールとかあるんでしょうか。
あと、あの翻訳ってどのくらい時間かかりますか。
別のOSSの翻訳をやってみようかなと考えているので、参考にしたいです。
教えて中の人!
140nobodyさん:2007/08/08(水) 21:52:45 ID:???
自演乙
141nobodyさん:2007/08/08(水) 21:57:40 ID:???
早速レスがついたと思ったらこんなのかよー
嫌いならわざわざこんなとこくるなよ
142nobodyさん:2007/08/08(水) 21:59:54 ID:???
そのサイトのほうで聞けばいいじゃん。
143nobodyさん:2007/08/24(金) 15:33:31 ID:???
質問です。
ActiveRecordで、
AND/ORの優先順位指定は出来ないのでしょうか。
$this->db->where('some = 1');
$this->db->where('any = 2');
$this->db->like(array('foo','codeigniter'));
$this->db->orlike(array('bar','framework'));

こうした場合、WHERE句は、 some = 1 AND any =2 AND foo LIKE "%codeigniter" OR bar LIKE "%framework%"
となりますが、AND ( foo LIKE "%codeigniter" OR bar LIKE "%framework%" )
としたいのです。
CI_DB_active_record クラスを眺めたところ、どうもそのような機能がなさそうなのですが
見落としているかもしれないので、質問しました。

よろしくお願いします。
144143:2007/08/24(金) 16:53:49 ID:???
自己解決しました。
やっぱり出来そうにないので
http://codeigniter.com/forums/viewthread/45922/
のようにやります。
145nobodyさん:2007/09/15(土) 16:58:09 ID:???
CakeとかSymphonyとかMapleくらいしか知らなかったんだけど、
改めて調べてCodeIgniterを見付けて、いいじゃんと思った。
パフォーマンス重視のシンプル設計というのがいい。
バージョンも1.0越えてリリースになってるし(ベータのフレームワークって多いよね)。
ちょっとやってみる!
146nobodyさん:2007/09/22(土) 11:44:41 ID:???
いつの間にかできていたみたい。
CodeIgniter in Japan
ttp://codeigniter.biz/

RSS検索で「CodeIgniter」と検索したらた出てきた。
今後の情報として、rapyd frameworkの日本語訳に期待。
147nobodyさん:2007/09/22(土) 13:07:40 ID:???
CodeIgniter in Japan
と聞いて
日本語の公式サイトができたのか。
と思った
148nobodyさん:2007/09/22(土) 13:12:41 ID:???
>>146のサイト
>CodeIgniter(コードイグニタ)

CodeIgniter(コードイグナイタ)じゃないのか?
149nobodyさん:2007/09/22(土) 17:07:04 ID:???
RSS検索で見つけたもう一個。

price-change:blog
ttp://pricewave.blog110.fc2.com/

携帯対応とかがかなり参考になります。
150nobodyさん:2007/09/24(月) 17:32:06 ID:???
.bizドメインは何故か怪しいと思ってしまう俺がここにいる
151nobodyさん:2007/09/24(月) 18:12:43 ID:???
あるあるw
「ビジネス」とか好んで言いたがる奴ってゴミが多いし
152nobodyさん:2007/10/05(金) 23:49:53 ID:???
今日のネタ投入

Create it!
ttp://tuevin.jugem.jp/

こちらのサイトですが、CodeIgniterのTipsを取り扱っています。
使っていて、あれどうやるのかなぁ、と思うネタが結構載っていて重宝します。
153nobodyさん:2007/10/06(土) 01:01:46 ID:???
いやあの本人なら本人で「こんなサイト作りました!」って言ってくれた方が好感持てるよ。
マトモなサイトなら別に荒らされたりしないから。
とりあえず乙
154nobodyさん:2007/10/19(金) 17:33:20 ID:???
CodeIgniter for Rapid PHP Application Development
http://www.amazon.com/dp/1847191746/

発売されてから2ヶ月半立っても話題に出ないから貼っておく。
155nobodyさん:2007/10/19(金) 20:46:31 ID:???
俺はソース嫁厨
156nobodyさん:2007/10/23(火) 14:19:22 ID:???
CI で index って名称のコントローラ作ろうとして、
Indexクラス作って、デフォルトコンストラクタ作って、エントリポイントなメソッド(index())作ったところで
コンストラクタとメソッド名かぶるじゃんって気づいた。
トップページはやっぱり welcome じゃなくて index にしたい、ってだけなんだけど、普通どうしてるもの?
157nobodyさん:2007/10/23(火) 17:28:10 ID:???
homeで妥協する
158nobodyさん:2007/10/23(火) 17:38:14 ID:???
159nobodyさん:2007/10/26(金) 16:49:25 ID:WZ/kPbo7
これいいね。素人のレンタル鯖の俺にとっては導入しやすくて助かる
いろんな有名どころのフレームワーク試したけど導入で躓いた・・・
DB関連も良さそうだ
これ使う前はZendが一番使いたかったけど、もうこれで十分だな
160nobodyさん:2007/10/26(金) 17:30:20 ID:???
モチロンソウヨ
161nobodyさん:2007/10/27(土) 21:08:04 ID:stfTQ4kY
162156:2007/10/28(日) 12:23:43 ID:???
>>157-158
ありがと。そういうもんなのね。
クラス名をHomeにして/indexにルーティングすることにした。
163nobodyさん:2007/11/22(木) 16:21:00 ID:???
これからCI使おうと思うんですが、何か不便に感じる部分とかあったら教えてください。
164nobodyさん:2007/11/23(金) 02:05:01 ID:???
formがしょぼい
165nobodyさん:2008/01/17(木) 10:41:51 ID:???
これのFork版面白そうだね
166nobodyさん:2008/01/30(水) 01:49:15 ID:2r+EzdWP
Emailクラスの文字化けはまだ直ってないのかな?
167nobodyさん:2008/01/30(水) 09:57:56 ID:tmBsdMJo
もしかしてroutes.phpのURI設定が使われるのってルーティングの時だけ?
URLヘルパでこの設定使わなかったら片手落ちもいいとこなんだが…
168nobodyさん:2008/01/30(水) 11:40:14 ID:???
>>167
当たり前だろ。っていうか、コード内部でURLを使っているのか?
169166:2008/01/30(水) 17:06:19 ID:2r+EzdWP
1.6で直る模様ですね。
バクトラック投げてくれた方に感謝です。
170nobodyさん:2008/01/30(水) 19:40:03 ID:???
>>168
当たり前じゃねーよ
・ルールに従ってスマートなURLをパースし、パラメータにする機能
・パラメータを元に、ルールに従ってスマートなURLを組み立てる機能
これはペアだ
171nobodyさん:2008/01/30(水) 19:59:43 ID:???
>>169
バグ投げてくれたのはいいが、その内容がひどかったけどな
172nobodyさん:2008/02/01(金) 08:03:32 ID:???
自分でクラス書く時先頭に
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
って書いてる?
173nobodyさん:2008/02/01(金) 08:58:03 ID:???
これGET使わないとか無茶じゃね?
検索もPOSTでしろと??
174nobodyさん:2008/02/01(金) 09:43:29 ID:???
$config['enable_query_strings'] = true;
$config['uri_protocol'] = "PATH_INFO";
で出来たわん
175nobodyさん:2008/02/01(金) 09:49:34 ID:???
機能はシンプルすぎて若干ショボいくらいだけど
ciは基幹クラスを上書きできるのがいいな
176nobodyさん:2008/02/01(金) 10:23:44 ID:???
アプリケーション固有のデータはどうするのがci流?
177nobodyさん:2008/02/01(金) 11:37:18 ID:???
自分でクラス書く時は
ciに習ってphp4式(プロパティーはvar、アクセス修飾子なし)で書くか、
php5式で書くか、dotch?
178nobodyさん:2008/02/01(金) 16:52:09 ID:???
>>177
どっちでもいいんじゃね。
自分の環境で動くんなら
179nobodyさん:2008/02/01(金) 19:41:43 ID:???
読み込んだライブラリがそのままの名前でコントローラのプロパティーになる
って仕様ダサくね?
methodとぶつかりまくりじゃん
というよりも、methodにプレフィックス付けるようにするべきだろ
常識で考えて
180nobodyさん:2008/02/01(金) 21:20:55 ID:???
>>179
自分の設計が悪いだけじゃないの?
181nobodyさん:2008/02/01(金) 21:28:10 ID:???
1.6出たよ!
182nobodyさん:2008/02/01(金) 22:26:18 ID:???
>>180
なんでそんな話になるんだよw
俺の実装がどうとかいう話じゃねえ
ユーザー全てにおいて起こりうる問題だから言ってんだよ
183nobodyさん:2008/02/01(金) 23:08:14 ID:???
>>181
ほんまやんけ!

CodeIgniter1.6、キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
http://codeigniter.com/news/codeigniter_1_6_hits_the_streets/

CodeIgniter1.6は街に出かけます。
EllisLabはCodeIgniter1.6のリリース、私たちのオープンソースウェブアプリケーション枠組みを発表するのを誇りに思っています。 リリースは、枠組みの開発で新しい回転をマークして、EllisLab開発者と共同体の両方からかなりの配慮を受けました。

多くの新しい能力の中では、このリリースは以下を特集します。

Database Forgeのクラス: データベース不可知論者テーブルと分野操作
高められたActive Recordライブラリ
「フラッシュ変数」と追加担保がある改訂されたSession Class
自動loadable Modelsとextendable Model Class
既存のHelpersへのExtendable Helpers、追加、および増進
複数の視点の簡単な包含を考慮する改訂された視点構造
そして、120以上の異なった増進、改良、およびバグフィックス
心から信じられない共同体に感謝するには瞬間かかりたいと思います。(共同体はサポート、提案、フィックス、増進、および奨励を精力的に提供しました)。 私たちの開発の新型はあなた方のすべて周りで築き上げられます--感謝。

CodeIgniterは成長して、発展し続けています、そして、仕事は次のリリースのために既に始まりました。

すべての変化のリストに関しては、 Change Logを見てください。 現在CodeIgniterを走らせているなら、 アップデート説明書を読んでください。

2008年1月30日にデリック・アラードによって掲示されます。
184nobodyさん:2008/02/01(金) 23:34:54 ID:???
アップデートも簡単なのがいいな
185nobodyさん:2008/02/02(土) 08:15:19 ID:NjVdwivu
>>183
機械翻訳ひどいな
186nobodyさん:2008/02/02(土) 10:44:24 ID:???
エラーが起きても何も表示されないケースがあるな
ハンドリングがうまくいってないのか…
187nobodyさん:2008/02/03(日) 21:28:38 ID:???
> 読み込んだライブラリがそのままの名前でコントローラのプロパティーになる
> って仕様ダサくね?
> methodとぶつかりまくりじゃん

メソッド名は動詞、クラス名は名詞になるから
普通に作っていたら、まずありえないな。
188nobodyさん:2008/02/03(日) 23:18:33 ID:???
名詞と動詞ってどんだけ曖昧な基準だよw
189nobodyさん:2008/02/04(月) 08:32:42 ID:???
名詞と動詞が曖昧だったら何が曖昧じゃないんだと問いたい
190nobodyさん:2008/02/04(月) 10:13:31 ID:???
名詞と動詞が同型の単語は?
というよりもメソッドが動詞になるということ自体勝手なマイルールじゃん
そんな心くばりに依存するような実装はセンスがないと言っている
最初から名前空間を分ければいいこと
191nobodyさん:2008/02/04(月) 13:00:32 ID:???
>名詞と動詞
>曖昧な基準
英語を勉強したことがあれば知ってることだが、英会話の中では基本的に、名詞と動詞は区別できる。

>名詞と動詞が同型の単語は?
set
【名】一組{ひとくみ}、ひとそろい、一式
【自動】(ゼリーなどが)固まる、(骨が)くっつく[固定{こてい}する]
【他動】〜を正しい位置{いち}に置く[取り付ける]、整える、定める、配置{はいち}する、設定{せってい}する

こういう単語は気をつけないといけない。
メソッド名には動詞+目的語という形にして動詞単独で使わなければ、動詞と名詞が重複することはない。

>名前空間を分ければいい
PHP6では名前空間によって、重複が少なくなる?
192nobodyさん:2008/02/04(月) 19:22:45 ID:???
>>190
の書いたクラスを見てみたい
193nobodyさん:2008/02/04(月) 19:44:52 ID:???
そうか。
俺はお前のコードは見たくないわ。
194nobodyさん:2008/02/04(月) 23:39:11 ID:???
クラスを名詞、メソッドを動詞にするのは、この業界の常識だろ。

http://www.atmarkit.co.jp/farc/rensai/goodmodel01/goodmodel01.html
>
> 名詞・動詞分析法
>  ユースケースや用語集から、名詞、名詞句を探し出して、クラスの候補とし、
> 動詞、動詞句を探し出して、メソッドの候補として作成していく方法。


たしかに名詞と動詞が同じものもあるから完全には決まらないが、
こんなの大体でいい。メソッドの場合は() 括弧がつくのだから
たとえ同じでも動作に不都合は無い。人間がわかりやすくするためのものなのだから
大体それで区別できれば問題ないわけだよ。
195nobodyさん:2008/02/05(火) 00:41:07 ID:???
で、1.6はどう?
俺としてはAuth関係を標準で入れてほしかったなあ。
196nobodyさん:2008/02/05(火) 01:35:22 ID:???
スレ違いかも知れないが名前空間とかの話でたので、
なんかPHPってC++とJavaを足して2で割ったような言語になってきているような気がする。
お手軽な言語から敷居の高い言語に変わっていくような気が・・・。
やだな〜。
197nobodyさん:2008/02/05(火) 02:23:24 ID:???
PHPが発展しすぎて、手続き型プログラミングの仕様が切り捨てられたら、PHPユーザー減るかもね。
後方互換性=PHP4、PHP5の文法で書かれたコードが実行できる状態で拡張、改善されるなら問題ないと思うけど。
198nobodyさん:2008/02/05(火) 02:28:34 ID:???
代わりになる言語が出ない限り無理。
199nobodyさん:2008/02/05(火) 07:27:59 ID:???
HTMLの中に埋め込むのが楽だったんだよなあ。
ASPでもJSPでもそうなんだが。
まあ実際にはやらないけど、例えば1行で日付だけ表示させるようなプログラムでも
前ならHTMLの表示させたい場所に<phpで埋め込めば一瞬だったけど
MVCとかにすると表示する関数をモデルに用意して、テンプレに表示用用意しておいてコントローラーからビューにアサインしてみたいな面倒なことになる。

デザインとコードを分離できるのはメリットでもあるが、関係箇所が分離される事により
関連を探す手間も増えて見る場所も増えてでデメリットもあるのがなあ。
200nobodyさん:2008/02/05(火) 10:53:55 ID:???
日付だけならヘルパでやれよ
201nobodyさん:2008/02/05(火) 13:48:11 ID:???
>>199
CodeIgniterなら、テンプレートファイルに無理やりロジック(PHPコード)を入れられるんじゃないですか?

http://userguide.cilab.info/general/alternative_php.html
CodeIgniter の テンプレートエンジンを利用したくない場合は、ビューファイルで純粋なPHPを利用することができます。
202nobodyさん:2008/02/06(水) 09:14:57 ID:4yRuvbwo
CIってセッションデータ(非セッションID)をクッキーに格納するって読んだんだけどマジ?
クッキーなんて4Kくらいしかないし
それほど安全でもないし
毎回送信されるしでありえないんだが…
203nobodyさん:2008/02/06(水) 09:59:31 ID:???
どこで読んだんだ?
204nobodyさん:2008/02/06(水) 10:06:28 ID:???
205nobodyさん:2008/02/06(水) 11:08:34 ID:???
>>202
PHP独自セッションは、スケーラビリティを考慮されていない設計になっていることと、
セキュリティの問題の2点からCIでは独自のセッションデータを保持するようにしていると思われる。

簡単に言うと、(うそ書いてるかも知れないからごめんね、一応自分で調べてみてください)

1.スケーラビリティの考慮漏れ
PHPはセッションデータをサーバの内部に保存する為、負荷分散を考えてサーバを2台に増設したと仮定した場合、
直接アクセスがあった1台のサーバには対象ユーザーのセッションデータが保存され、
もう一方のサーバにはセッションデータが保存されない、負荷分散時のロードバランサー、サーバなどの設定によっては、
2つのサーバ同士でセッションデータ共有がされずにセッション情報がうまく引き継がれない可能性がある。
なので、PHPのセッションを利用しているときに1度目と2度目のユーザーのアクセスが異なるサーバに行った場合にセッションデータが引き継がれない・・・。

2.セキュリティの観点
PHPSESSIONID(こんなんだったけ?)をキーにサーバにセッションデータを登録するから
適当な値で他人のセッションデータが簡単に盗めてしまう可能性がある。(改善されたのかな?)
例えば、ログイン情報をセッションに持っている作りのサイトで、
「http://????.com/login.php?PHPSESSIONID=aaaa」見たいなリンクが張られていてこのリンクをたどってログインした場合に、
他人が「http://????.com/info.php?PHPSESSIONID=aaaa」とアクセスすると
セッションタイムアウトが発生していない限り他人のセッション(この場合「aaaa」というPHPSESSIONIDでログインした人のセッション)をのっとる事が出来る脆弱性があってこれについて、
独自に解決をしていると思われる。

たしか、こんな感じだったと思う。

間違えているかもしれないので、申し訳ないですがPHP独自セッションのまずい点は色々なサイトに載っているからあさって調べてみて・・・。
俺も、だいぶ前に調べたから・・・。
206nobodyさん:2008/02/06(水) 11:11:16 ID:???
>>202
DBに保存する方法もあるよ。
207nobodyさん:2008/02/06(水) 12:14:44 ID:???
>>205
クッキーに入れるなんて解決になってないよ・・・
珍妙としか言いようがない実装
208nobodyさん:2008/02/06(水) 12:20:16 ID:???
一方、railsは2.0からデフォルトで
cookieにセッション情報を格納するようにした
209nobodyさん:2008/02/06(水) 12:32:09 ID:???
まじで?
210nobodyさん:2008/02/06(水) 13:02:45 ID:???
>>209
うん
cookieに突っ込むsession内容全体のdigestをアプリ固有のキーで生成して
そのdigest自体もcookieに入れておいて、サーバ側で受け付けた時には
そのdigestを検証して信用できるかどうかを調べてOKなら受け入れる、
という感じの実装みたい
211nobodyさん:2008/02/06(水) 13:21:01 ID:BSm5jPk+
>digestを検証して信用できるかどうかを調べてOKなら受け入れる

ここがほんとに安全なら楽になるな。
ユーザ側保存に不安があって自前で作るの面倒だったから。
212nobodyさん:2008/02/06(水) 14:52:10 ID:???
でもさクッキーの容量は4Kしかないんだろ?
それに携帯だったらどうするんだ?
クッキー使える機種だとしても、一アクセスごとに
最大4Kものパケット料がかかるよな?
213nobodyさん:2008/02/06(水) 15:03:08 ID:BSm5jPk+
urlにセッションidくっつけるやりかたが、ユーザ会のサイトに載ってたな。

あと、バリデート済みのPOSTデータをセッションにつっこんで、
確認ボタン押したらそのままinsertとかができなくなるね。
データを一度ユーザ側に預けちゃってるわけだし。おっかない。
214nobodyさん:2008/02/06(水) 15:08:08 ID:BSm5jPk+
あ、セッションの内容をもういっかいバリデートすりゃいいだけだ。
吊ってきます。
215nobodyさん:2008/02/06(水) 15:48:02 ID:???
>>207
CIもただCookieに単純に入れてOKとしてるわけじゃなかったと思うよ。
セッションの信頼性のチェックとかしてたと思う。
216nobodyさん:2008/02/06(水) 15:53:03 ID:???
PHP固有SESSIONの仕様に問題があるから独自セッションまがいの機能をCookie等を使って作ったり、
「PHPSESSIONID」をそのまま信用するようなことをしない対処を行うのはセキュリティ上今のPHPでは必要だと思うのだが。

それをやりやすくCIがやってくれていたはず。
DB使った場合だけだったかも知れないけど・・・。
217nobodyさん:2008/02/06(水) 15:58:42 ID:???
>>212
だからそういう携帯や4k超えるような
でかいセッションファイル抱えるような場合は
ファイルやDBのセッション使えばいいって事

でも基本はセッションで扱うデータ量なんてしれてるし、
だったらcookieだけでやってしまえばいいんじゃね、って事
218nobodyさん:2008/02/06(水) 21:34:26 ID:???
kohanaってもう実用レベルに達してるの?
219nobodyさん:2008/02/06(水) 21:37:08 ID:???
http://kohanaphp.com/tutorials/video/hello_world.html
コハナじゃなくてクワナって言ってるな
220nobodyさん:2008/02/07(木) 05:27:35 ID:???
config配下のファイルで
定数定義とかinclude_pathの設定するのはアリ?
ここで関数の定義とかまで出来ちゃうのがphpのすごいとこだけど
221nobodyさん:2008/02/07(木) 05:32:29 ID:???
>>210
ダイジェスト生成のロジックが割れたら
いじったデータをセッションに入れられるかもしれない
ユーザには知られたくないデータをセッションに入れることもありうるから
やっぱり抵抗あるなー
222nobodyさん:2008/02/07(木) 06:38:42 ID:???
http://d.hatena.ne.jp/stilo/20080123/p2
ciの本が出るらしい
売れるのかな…?
個人的には好きだが
223nobodyさん:2008/02/07(木) 19:12:59 ID:???
例外投げてもほったらかしじゃん
PHP4なんて脂肪してんのに
ハンドリングするのエラーだけってどんだけ〜
224nobodyさん:2008/02/07(木) 19:50:59 ID:???
例外ハンドリングしてエラー投げ直すようにした(´〜` )ウーン
225nobodyさん:2008/03/03(月) 23:43:59 ID:???
attachementのform mail、どうやってこさえてます?
なんだかんだ、uploadして一時ファイルをattacheさせてるんだけど。
もっといい方法ない?
226nobodyさん:2008/03/05(水) 10:07:19 ID:wSWuSxOd
>>217
扱うデータ量なんてしれてるならsessionの方がいいよ
cookieを使う利点はサーバー側に負荷がかからないことだよ
扱うテータ量が多いほどcookieを使えばサーバー負荷にならないんだよ
227nobodyさん:2008/03/05(水) 17:13:22 ID:???
cookieをやり取りする為の
データ転送量が増えるけどな。
228nobodyさん:2008/03/05(水) 18:16:46 ID:???
でも携帯と別処理にしたら汚くならないか?
229nobodyさん:2008/03/16(日) 12:08:31 ID:pwsdbwjT
age
230nobodyさん:2008/03/16(日) 12:33:46 ID:???
流行ってないね
231nobodyさん:2008/03/20(木) 22:08:46 ID:???
CIの本っていつでるんだ?春にでるみたいだけど心待ちにしてる。
232nobodyさん:2008/03/20(木) 23:58:19 ID:???
>>231
オンラインマニュアルに載ってる事に補足を加えてウダウダ書いてるだけ
233nobodyさん:2008/03/21(金) 01:05:34 ID:???
まあオンラインマニュアル充実してるし、
機能もシンプルだしねぇ
234nobodyさん:2008/03/21(金) 04:14:05 ID:???
でもなぁ。MVCで一番重要なモデルが軽視されているからなぁ。
まあ小規模向けだね。
235nobodyさん:2008/03/21(金) 12:34:00 ID:???
???
どのあたりでモデルが軽視されていると思ったの?
236nobodyさん:2008/03/21(金) 18:23:01 ID:???
必須じゃないってとこじゃない?
わからんけど
237nobodyさん:2008/03/22(土) 00:16:05 ID:???
安定版にならないとあんまり使う気にならないんだよなあ。
VerUPが頻繁だと遊ぶ分には楽しいけど実務じゃちょっと。
238nobodyさん:2008/03/22(土) 00:16:56 ID:???
今でも結構安定してね?
239nobodyさん:2008/03/22(土) 00:37:50 ID:???
scaffoldingが動かないのに安定板?
240nobodyさん:2008/03/22(土) 18:01:21 ID:???
>>238
いや、安定してないと言ってるわけじゃないんだけど
更新が頻繁だと嬉しくもあるけどあんまり業務で使いたいと思わなくね?
あまりにも更新が頻繁=すぐ修正されるような問題点がまだまだある
と思えるし。
更新しないから安定してるってわけじゃないけどね。
中身バグだらけだけどただ単に更新止まってるだけとかあるし。
機能の追加の更新ならともかく、あんまり頻繁にBugFixで更新多いと心配になる。
致命的なのがあって、それを更新したから業務で使ってるのも更新しなきゃ→動かなくなった
とかが一番困るし。
241nobodyさん:2008/03/23(日) 16:49:33 ID:???
>>240
リリースの頻度で安定している、していないを判定しているやつは素人
中身で判断しろ

修正でも不具合でも深刻具合による
リリーススケジュールの話ならここでしても無駄だ
本家で議論してこい
242nobodyさん:2008/03/24(月) 12:26:43 ID:???
>>241
お前はもう少し>>240の書き込みをよく読め。
文盲か。
リリースの頻度で安定度してるかどうかを判断してるなんて書いていないだろ。
243nobodyさん:2008/03/24(月) 14:41:00 ID:???
>あまりにも更新が頻繁=すぐ修正されるような問題点がまだまだある

これを書いている時点で何もわかっちゃないだろ
244nobodyさん:2008/03/25(火) 00:17:57 ID:???
>>242
オマエこそもう少し文章の書き方を考えたら?w
245nobodyさん:2008/03/25(火) 00:28:01 ID:???
ペチパーの質を物語っていますね。とか言われるぞ。
もうちょっと温厚になれないのか。
246nobodyさん:2008/03/25(火) 00:45:11 ID:???
ぺちぱーだもの
   みつを
247nobodyさん:2008/03/28(金) 15:03:32 ID:???
静かなこのスレが更新されていた!
と見に来たあなた。

書き込んでいるのは俺ですよ! 俺!

中身は何にもありません。ざーんねーんw
248nobodyさん:2008/03/29(土) 03:13:12 ID:???
いくつかご相談

1, CIってモデルはオマケと言われてるけど、
CLIベースでモデル開発して、あとはコントローラから呼び出すというスタイルは
一般的ではない?
理由:モデルの開発をわざわざCI上でやりたくない

2, プラグインからモデルのデータセット取得して表示を返すようにしておいて、
それをビュー上で呼び出すようにしようかと思うのだけど、無作法?
理由:表示を構築するだけのコードだったらコントローラに書きたくない

3, 定義されてないコントローラクラスがURIセグメントで指定されたら
「クラス名.html」を自動的に表示する方法ってない?
理由:ロジックがないページまでわざわざコントローラを定義するのは面倒
249nobodyさん:2008/03/30(日) 04:44:30 ID:???
>>248

1.一般的ではない
2.無作法
3.ない

に1票
250248:2008/03/30(日) 14:38:56 ID:???
CIだったら、フレームワークとアプリ機能の実装を分離した状態で開発して
後から乗っけるだけでいいのかなあと思ってたけど、
CIでもできる限りフレームワークの流儀には沿うのね。

確かに、自分がご相談で書いた内容は、
他人がメンテする上で解読が困難になるか・・・
251nobodyさん:2008/04/05(土) 16:57:53 ID:???
>>246
その通り。
努力が足りない非正規雇用の増加や、
正社員の中にもサービス残業が嫌だなどという甘えた輩が増えていることは
その証拠でしょうね。
252nobodyさん:2008/04/08(火) 00:06:53 ID:???
>>251
>>正社員の中にもサービス残業が嫌だなどという甘え

おまえアホか
サービス残業が嫌だと思う事がなぜ甘えに繋がるの?w

サービス残業をさせる = 違法 って事ぐらいはオツムに入れとけ
253nobodyさん:2008/04/08(火) 01:34:23 ID:???
SPAMにマジレスww
254nobodyさん:2008/04/08(火) 15:00:18 ID:ozdPGPdu
kohanaPHPのValidationライブラリを強引に移植してみました。

http://oro9.thick.jp/doku.php?id=php:codeigniter:kohana_validate
255nobodyさん:2008/04/11(金) 11:12:15 ID:YKNdPaTr
もうそろそろ本が出るかな?
256nobodyさん:2008/04/11(金) 13:56:30 ID:DluuZ7jC
MojaviでのActionChainみたいな事するにはどうすればいいでしょう?
他のコントローラで生成したHTMLを部分的にはめ込みたいんです。
よろしくお願いします。
257nobodyさん:2008/04/13(日) 17:54:13 ID:???
厨ですいません、フレームワーク自体あんまよく分かってないんだが、
画像(自前で用意するdefault imageとか、ユーザがuploadするものとか)は、
どこに置くのがスマートなんでしょうか。

あとCSSは、views/cssに突っ込んでみたんですが、
htmlのヘッダで呼び出す時に、system/application/views/cssみたいなフルパス書いてて、
なんか使い方間違ってる気がしますorz他のやりかたありますか?
258nobodyさん:2008/04/13(日) 19:11:41 ID:???
>>257
ぶっちゃけCIは今日から始めたところだけど、
俺だったら画像とかは
/images
cssは
/styles
とかに置くかな。
viewsと同じフォルダにおく必要は全く無いし、
system以下はHTTPアクセスさせないほうが良いだろうね
259258:2008/04/13(日) 20:49:43 ID:???
うーん、ユーザーガイド読んだ感想だけど、
なんかCIのActiveRecordって変、
ていうかActiveRecordとはいえないような気がする。
ただのGatewayにしか見えない

これみんな我慢して使ってるの?
それともこのActiveRecordは使ってない?
260nobodyさん:2008/04/13(日) 20:51:19 ID:???
>>258
ありがとうございやっす!
同じ事思ってました>system以下はHTTPアクセスさせないほうが良い
けど、applicationに含めるのが作法なのかな?とかも思ってて。
さっそく/imagesとかにしてみます。
261nobodyさん:2008/04/14(月) 00:46:07 ID:???
>>259

・ActiveRecord
使ってない。PDOのラッパライブラリ作って使ってる

・セッション
PHPSESSIONなライブラリ使ってる

・テンプレ
PHPTAL使ってる
262261:2008/04/14(月) 00:58:00 ID:???
>>259

使ってる使ってないは漏れの話ね
一般的なCI使いがどうしてるかは知らない

とりあえず漏れはCIでECサイト開発したけど、
CIの機能はMVCのCしか基本的に使ってないし、
ちょこちょこカスタマイズしてる
263259:2008/04/14(月) 07:16:21 ID:???
>>261
レスありがとう。
やっぱり使ってないんだね。
俺も自作ライブラリ引っ張り出して使うことにするよ。
セッションはログイン中かどうかのフラグだけ、
テンプレも触るのは自分だけだから
とりあえずそのまま使ってみる。
264nobodyさん:2008/04/14(月) 14:01:23 ID:???
Modelはadodbのラッパを使ってる。
テンプレは生PHP。(小さい会社でコーダー兼務なので)
セッションは$_SESSIONを直で。
265nobodyさん:2008/04/14(月) 19:30:24 ID:???
なんでPDOじゃなくてadodb?
266nobodyさん:2008/04/15(火) 00:00:22 ID:???
>>264じゃないけど、adodbは処理が速いと聞きました。
ttp://kokoromo.jugem.cc/?eid=196
ttp://kokoromo.jugem.cc/?eid=197

この本でadodbが紹介されてて、いろいろメリットが書かれてました。

PHPによるWebアプリケーションスーパーサンプル 活用編
ttp://www.amazon.co.jp/dp/4797332638/
267nobodyさん:2008/04/15(火) 00:13:08 ID:???
CI使ってみました
日本語マニュアルが分かりやすくて、すぐに使えました!!!
翻訳作業やってくれている方、どうもありがとうございます(・∀・)

簡単に出来ることを複雑にやる必要はない
コマンドでスケルトン生成したり、設定ファイル書かなくてもすぐに使えて便利
268nobodyさん:2008/04/15(火) 14:09:30 ID:???
ADOは知らなかったけど、PHP4の環境なら
DBのAPI関数使うよりも良さげそう
269nobodyさん:2008/04/29(火) 07:16:47 ID:???
入力フォームの確認画面を作るのマジめんどくさいのですが、
自動で生成する方法ってないですかねー?

いったい何画面作ればいいんだ

スレ違いだったらスルーよろ
270nobodyさん:2008/04/29(火) 08:42:50 ID:AjJ+5S6v
>>もっとkwsk
271nobodyさん:2008/04/29(火) 09:57:50 ID:???
>>270
言葉足らずすまそ。

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

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

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

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

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

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

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

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

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

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

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

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

さんくす
探してみる

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

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

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

(CI + CakePHP) / 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ちいたんも本が出たら…(・∀・)
340nobodyさん:2008/05/08(木) 13:24:21 ID:???
341nobodyさん:2008/05/08(木) 14:27:09 ID:???
>>339-340
この流れは読めた。
342nobodyさん:2008/05/08(木) 14:32:56 ID:???
>>340
おお!

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

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

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

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

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

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

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

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

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

1.6.x だと index.php をブラウザで見ても何も表示されないけど、
Apache か PHP の設定が何かおかしいのかなぁ?
362nobodyさん:2008/05/15(木) 20:11:20 ID: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 以上には対応していないってことでしょうか?
363358:2008/05/15(木) 20:43:44 ID:???
解決しました
構文エラーがあってもエラーメッセージが表示されなかったのは php.ini で
display_errors = Off
としているからでした。
お騒がせして&ci のエラーハンドリングを疑って大変申し訳ありませんでした m(_ _)m
364nobodyさん:2008/05/16(金) 13:43:36 ID:???
フォームヘルパー使うとCSSは凝ったこと出来なくなるし、javascriptとの絡ませ方を間違いそうだし、
表示系はviewに手打ちが基本?
365nobodyさん:2008/05/16(金) 13:49:39 ID:???
ヘルパをラッパーしたらいいじゃん
366nobodyさん:2008/05/16(金) 15:15:12 ID:???
CIのviewは使って無いなぁ。
Flexy突っ込んで使ってる。
367nobodyさん:2008/05/16(金) 18:28:03 ID:???
つまりまともに段組したければ、view側にヘルパーのコードを書くことになる。
view側では文字数減るが、コントローラ側と合わせれば同程度かむしろ増える。
他の人が変数自体や変数に入れたnameやid確認したければ、わざわざコントローラのファイル見に行くことになる。
結局ふつうのフォームは生htmlでviewに書くことにするからメンテナンス請け負った人は客や上司の前で批判しないように。
368nobodyさん:2008/05/18(日) 03:29:10 ID:???
セキュリティー的に、www掘ってそこにindex.php置くべきだよなぁ
すべてのphpファイルの前に
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
なんて書くよりその方がずっと簡単でスマートなのにエリスはあほなの?
369nobodyさん:2008/05/18(日) 08:20:55 ID:???
そうしなくても使えるように配慮したからだろJK
370nobodyさん:2008/05/18(日) 10:36:08 ID:???
>>368
index.phpを1行いじれば(つか「.」1個打つだけw)BASEPATHをドキュメントルート外に
置く使い方ができるんだから、そうすればいいだけの話。
371nobodyさん:2008/05/18(日) 15:03:34 ID:???
しょぼいレン鯖でもドキュメントルート外にファイル置けるだろ
何のためにそんな配慮したのか意味不明JK
372nobodyさん:2008/05/18(日) 15:10:43 ID:???
>意味不明JK
お前の文章が意味不明
373nobodyさん:2008/05/18(日) 18:09:00 ID:???
じゃあドキュメントルート外にファイル置けないレンタルサーバ言って見ろよッ!
JK!
374nobodyさん:2008/05/18(日) 19:45:51 ID:???
人は死ぬ
必ず死ぬ
絶対死ぬ
死は避けられない

私は死ぬ
必ず死ぬ
絶対死ぬ
死は避けられない

あなたは死ぬ
必ず死ぬ
絶対死ぬ
死は避けられない

死を忘れていても
死をごまかしていても
今日はまだ死なないだろうと思っていても
死から逃れることは誰もできない

全ては無常
過ぎた時間は終わってしまえば瞬間だった
まだ遠い先の未来のことだと思っている死も確実にやって来る
memento mori - 汝の死の瞬間を迎えるときを想え
375nobodyさん:2008/05/18(日) 21:12:02 ID:???
>>373
ロリポップ
376nobodyさん:2008/05/19(月) 02:14:56 ID:???
ロリポしょぼっ
さすが女子供用のレン鯖だな
377nobodyさん:2008/05/21(水) 06:09:08 ID:???
今時Layoutつかえねーのかこれ・・・
呆れ果てたぜ!
378nobodyさん:2008/05/26(月) 10:05:45 ID:???
>>377
Layoutって何ですか?
他のフレームワークにはそういう便利な機能がついているんですか?
379nobodyさん:2008/05/27(火) 18:50:32 ID:???
複数の画面で共通した
大枠のテンプレートが使える機能だよ
最近のフレームワークじゃ常識になってる
380nobodyさん:2008/05/28(水) 00:33:16 ID:???
>>379
Flexy組み込んで実装してる。
Codeigniterにはいらなくね?
俺は余計な機能ゴタゴタつけないで、常にシンプルに保って欲しい。
ライブラリとかプラグイン、ヘルパがあるんだし、欲しい物は自分で追加できた方が嬉しい。
381nobodyさん:2008/06/04(水) 19:01:53 ID:???
GETでルーティングする方法ってないんかな。
382nobodyさん:2008/06/05(木) 01:46:11 ID:R522EZcR
>>381
http://userguide.cilab.info/general/urls.html
クエリ文字列の有効化
URLに次のようなクエリ文字列を使用したい場面もあると思います:
index.php?c=products&m=view&id=345
CodeIgniter ではオプションでこのようなことにも対応しています。この機能は、application/config.php ファイルで有効にすることができます。

↑こういうこと?
383nobodyさん:2008/06/05(木) 09:41:07 ID:???
>>382
ばっちしこれです。タンクス。
384nobodyさん:2008/06/05(木) 11:55:45 ID:???
URIルーティングでもGETには変わりないから
なんのこっちゃと思った
385nobodyさん:2008/06/06(金) 02:27:23 ID:???
このスレを見ている人はこんなスレも見ています。(ver 0.20)
ドラクエの住人がルー大柴だったら [FF・ドラクエ]
昔疎遠になった幼馴染が引っ越してきた [不倫・浮気]
エイチ・エス・フューチャーズ [先物]
POINT-BOX ポイントボックス 8 [ポイント・マイル]
好きなギャルゲーをつまらなさそうに説明づるスレ [ギャルゲー]

ci使いって一体・・・
386nobodyさん:2008/06/06(金) 05:21:57 ID:???
ふと思ったが、URIクエリパラメータを「GET」っていうのは、PHPer以外にも通じる用語なのかな?
# $_GET ならともかく
387nobodyさん:2008/06/07(土) 01:05:47 ID:???
>>386
formのmethod属性で、POST、GETというんだから、GETは他言語でもGETなんでないの。
388nobodyさん:2008/06/07(土) 01:08:01 ID:???
>>386
リクエストメソッドって知ってる?
389nobodyさん:2008/06/07(土) 01:19:24 ID:???
>>388
GET / HTTP/1.1
HOST: www.example.com

みたいな?一応知ってますよ、と
>>387のHTMLのform要素としてのGETパラメータ、っていう意味でなら通じると。納得。
390nobodyさん:2008/06/08(日) 13:11:00 ID:oe9fgjbi
>>386
「GET」云々はプログラム言語の仕様の話ではなくて、「HTTP」の仕様・仕組みの話だから、PHPとは関係なく説明に使えますね^^

http://docs.sun.com/source/816-5668-10/esaphttp.htm#1004513
HyperText Transfer Protocol (HTTP) の基本を簡単に紹介します。

●クライアントからサーバへのリクエストには、次の情報が含まれます。
・リクエスト メソッド
・リクエスト ヘッダ
・リクエスト データ

●リクエスト メソッド
クライアントは多くのメソッドを使って情報を要求することができます。
一般的には次の方法が使われます。
・GET 特定のドキュメントを要求します。
・HEAD ドキュメントのヘッダ情報だけを要求します。
・POST サーバの、クライアントからのデータ受信を要求します。CGI プログラムのフォーム入力などです。
・PUT サーバのドキュメントの内容を、クライアントからのデータに置換します。
391nobodyさん:2008/06/08(日) 13:13:24 ID:oe9fgjbi
http://www.studyinghttp.net/method#HTTP1.1_Method
HTTP/1.1 メソッド

GET
HEAD
POST
PUT
DELETE
OPTIONS
TRACE
CONNECT
PATCH
LINK, UNLINK
392nobodyさん:2008/06/08(日) 14:06:34 ID:???
そうゆうことです
393nobodyさん:2008/06/08(日) 14:51:40 ID:???
どういうこと?
394nobodyさん:2008/06/09(月) 00:01:07 ID:???
>>393
クライアント(自分のマシン)が、サーバー(WEBサーバー)に対して、「このデータを送ってくれ!」と呼びかける方法がいろいろ用意されている。
その中の一つとして、GETやPOST等の方法が用意されている。
ということだよ^^

「HTTP」でGoogle検索すると詳しく解説しているページが、たくさん見つかるよ☆
395nobodyさん:2008/06/09(月) 06:12:49 ID:???
?hoge=poge
とか付けなくても普通にページ呼び出してたらそれすなわちGETなのだ
396nobodyさん:2008/06/10(火) 05:51:57 ID:???
ci徹底入門が発売されたもよん
買った人どう?
まぁ本読むまでもない程シンプルなのがciだと思うが・・
397nobodyさん:2008/06/11(水) 17:14:01 ID:???
mixiから転載。
--
bossatama
---
■社名
株式会社 音生(ネオ)
■募集人材と雇用形態
・事務(女性)
・PHPプログラマ アルバイト(男女)
■想定勤務時間
週3日以上希望 残業等なし
■想定勤務地
名古屋市中区金山
■担当してもらう予定の業務
  ・事務(女性)
・PHPフレームワークを利用したWebアプリケーションの開発
■報酬
自給1000円〜2000円 実力に応じて相談させてください。
■希望人材(スキル・年齢・住居地など)
PHPの初心者歓迎。教育できます。男女学生大歓迎、転職やリターンもOK。
  事務をやりながら、デザイン(html)やプログラムを勉強する方もOKです。
■募集期限
2008年7月終わり
■連絡先
「アルバイト希望」として、連絡先をmixiメールにてお願いします。
■その他(好きなだけアピールしてください)
AUの公式サイト「バンドナビ」を運営。音楽大好き!
http://band-navi.com/
  日本CodeIgniterユーザ会の主催会社
  http://codeigniter.jp/
--
会社が主催してるらしい
398nobodyさん:2008/06/11(水) 20:16:55 ID:???
営利企業が勝手にユーザ会とか名乗るのやめて欲しい
399nobodyさん:2008/06/11(水) 21:54:47 ID:???
>>396
615ページぐらいあって、やたらでかくて高かった。3800円とか。

開発環境の構築の仕方とかが最初に書いてあって(Eclipse/PDT)、
今までフレームワーク使うまでも無い小さい案件ぐらいしかやったことねぇよ、って言う人むけな感じ。

●サンプルコードも、
・コンタクトフォームを作る
・モバイル対応簡易掲示板を作る
・簡易ショッピングサイトを作る
程度に収まってる。

CIは、Web上に日本語のマニュアル転がってるし、
勘のいい人とか、適当にいろいろフレームワーク渡り歩いてた人とかは必要ないかも。

って、数ページペラペラめくって思った。
そんなに小技とか、そういうのは乗ってない雰囲気でございます。
400nobodyさん:2008/06/12(木) 13:55:53 ID:5LtH7vFx
初心者PG向けに良いFWだね。
他のFWとは対象者がバッティングしないと。
401nobodyさん:2008/06/16(月) 03:40:01 ID:???
>>396
PHP初心者だけど、結構ありがたい本。
環境構築からデバッグ方法、フレームワークの基礎的な概念も説明してるし。

リファレンス部も、サンプルコードが充実してるのがありがたい。
迷った時には、この本開けば即解決になる確率が高い。

フレームワークとかの、言語以外の範囲の入門書って、イマイチそういう
迷ったときに解決する為の「当たり」ページを引く確率低いってイメージ
あるから、俺的にはこの本はお勧めできる。

ただ、CI内部のコードとかバリバリ読めて、ネット上からさくさく自分の
探してる情報が引き出せて、CIに機能が無ければ自分でガリガリ書くって
いうようなパワーユーザは、ものたりないって言うかもしれないね。
402nobodyさん:2008/06/16(月) 04:05:37 ID:???
なんか宣伝くせーな
403nobodyさん:2008/06/16(月) 10:32:47 ID:uqAO2CKu
昨日本屋で見てきました。
パラパラとしか見てないけど、即買い!という判断には至らなかった。
自分が本を買う基準の一つとして、購入後の利用頻度を考慮しますが、2〜3回読んだら終わりかな?と思ったので。

>>401
フレームワーク自体に慣れてない人、初心者にとっては役立つ
=CIのマニュアル代わりとして使う用途なら、紙ベースなので便利
と思いました。
404nobodyさん:2008/06/17(火) 20:04:27 ID:???
他のFW本よりもわかりやすかったよ。
CIそのものが簡単ということなのかな。
405nobodyさん:2008/06/24(火) 05:50:32 ID:???
404エラーページの取り回しダサくね?
標準の処理と同じコンテクストで処理するのが自然なんだから
エラー用のクラス名とメソッド名だけ指定するようにするべきだろJK
しかもビューチフルにハックもしにくいし
所詮ハゲが書いたFWか・・
406nobodyさん:2008/06/26(木) 00:50:52 ID:???
と、ハックに挫折したハゲが申しております。
407nobodyさん:2008/06/26(木) 00:55:50 ID:???
config周辺もひどい
アメ公の美意識の低さは異常
408nobodyさん:2008/07/01(火) 04:00:36 ID:???
CIでXoopsモジュールとか作った人いたりする?
409nobodyさん:2008/07/02(水) 18:00:54 ID:???
Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\ci\system\application\controllers\blog.php on line 15

DBオブジェクトが取れてないようなんだけど、取れてない部分のエラーが出てこないのはなんで?
410nobodyさん:2008/07/02(水) 18:12:41 ID:???
ライブラリが登録されてなかった。

でもエラーが出ないのはうんこだろ。
411nobodyさん:2008/07/03(木) 10:15:29 ID:XZ5SMLTk
AppControllerとかAppModelとかおきたい場合って
どうすればいいんでしょうか?
412nobodyさん:2008/07/03(木) 17:29:46 ID:EmmaV8CT
管理者用の画面を作るときって どうやってる?

controller/admin 掘って そこにコントローラ置いて
あとは admin にルーティングすればいいのかな?

ログイン認証なんかのコントローラとか どうやってわけるのがいいんだろう…
413nobodyさん:2008/07/03(木) 17:40:04 ID:???
>>412
ぶっちゃけ、どんなURLにしたいかで変わる様な気がする
別ドメインがよければ、Apacheの設定も絡むし。
一般的なのはどんな感じなんだろうねえ
414412:2008/07/03(木) 17:54:55 ID:???
>>413

ありがとう そだね

とりあえずは controller/admin/ にディレクトリ掘って
そこに置くことにした


あと 管理者関連のコントローラだけ 共通の認証チェック処理いれたいんだけど
その辺のやり方がわからない


前にCakePHPさわったときは beforeFilter なんかで
コントローラ共通の処理入れられたんだけど
CIは 自分でControllerクラス継承して 作らないとだめなのかな?

管理ページ周りの処理で 参考になるとこあったら教えてください…
415412:2008/07/03(木) 18:02:00 ID:???
Controllerクラス継承して作る場合は
>>411 の言ってることと同じだね


一応 コアクラスの継承は

system/application/library/ に Controllerクラスを継承したMY_Controller.php
とか作ればいいみたいだよ


ログイン認証の共通処理も そうやってAppController 作ればいいんかな…
その辺りの情報がないから どうやるのがいいのか
いまいちわからん
416nobodyさん:2008/07/03(木) 18:06:26 ID:???
>>414
CIさわらずにKohana触ってる邪道な俺だけど、俺も知りたい
便乗w

俺は、libraries の中にBaseController, UserController, AdminController って作っちゃったな・・・

誰か、筋の良いやり方を教えて
417412:2008/07/03(木) 18:12:02 ID:???
>>415

ちょいウソあったw

AppControllerじゃなくて MY_Controller だね

/system/application/library/MY_Controller.php

class MY_Controller extends Controller {
function MY_Controller() {
parent::Controller();
}
}

こんな感じ。

ログインの共通処理も ここでやろうかと思ったんだけど
それでいいのかがわからん…

>>416 みたいに 種類ごとにクラス作ったほうがいい気もするし…
418412:2008/07/03(木) 18:52:48 ID:???
>>417 の方法でやってるんだが
/system/application/libraries/MY_Controller.php

のようなの作れば コアクラスは自動で置き換わるらしいんだが
置き換わらないな

コントローラ側で

class bbs extends MY_Controller {
}

みたいに MY_ つけてやらないとダメ
CIのルールだとデフォでMY_付けることになってるけど
これじゃ意味ないじゃん

バグ?
419nobodyさん:2008/07/03(木) 18:57:59 ID:???
[/system/application/libraries/MY_Controller.php]
class TEST_Controller extends Controller {
}


[/system/application/controllers/test.php]
class Bbs extends TEST_Controller {
}

にしてもいけちゃう



class Bbs extends Controller {
}

だと TEST_Controller が継承されない
(ルール通りにクラス名を MY_Controller にしても場合も同じ)


コアクラス、置き換わってない…
バグくさいね orz
420412:2008/07/03(木) 19:38:23 ID:???
ぼけてた 釣ってくる…


でも「コアクラスを拡張する場合のクラス名には MY_ を付ける」
っていう ルールは意味がないね


http://codeigniter.jp/user_guide_ja/general/core_classes.html


ファイルは MY_ 付けないと読み込んでくれないみたいだけど、
クラス名は別に MY_ 付ける必要ないよね?

なんでこんなこと書いてるんだろう
421nobodyさん:2008/07/03(木) 20:15:07 ID:???
英語版にはちゃんとした事書いてたりするけ?
422411 :2008/07/03(木) 20:23:33 ID:XZ5SMLTk
事故解決してたんだけどありがとう。

ただAppModelは相変わらずわかりません。
どのタイミングでロードすればええんですか?
Hook系もだめぽでした。
423412:2008/07/03(木) 22:43:11 ID:???
>>422

>>419-420 の方法じゃだめなの?

クラス名 MY_ つけなくてもいけるっぽいから
AppControllerにしとけばいいんじゃ

よくわからん ルールだなあ


おれはてっきり Controller そのものを置き換えてくれるとおもったんだが
ライブラリとかヘルパはそうだよね
424nobodyさん:2008/07/04(金) 15:09:16 ID:???
>>422
コントローラはMY_Controllerをextendsして書いてるが、
モデルは仕方ないので各モデルの冒頭で
<?php
require_once(APPPATH."libraries/MY_Model.php");

class Hoge_model extends MY_Model
425nobodyさん:2008/07/14(月) 11:55:08 ID:???
$this->db->insert() するときに, created_at とか updated_at というカラムに current_timestamp を指定したいんだけど、どうやったらいいの?
$array = array('name'=>'Foo', 'created_at'=>'current_timestamp');
として insert() してみたけど、current_timestamp にならず 0000-00-00 00:00:00 になった。
ちなみにMySQL5.0
426nobodyさん:2008/07/14(月) 12:05:24 ID:???
>>425
Database に、escapeしないでsetする方法ってあったっけ?
それがsetメソッドなら、
$db->エスケープしないset('create_at', '式');
$db->insert('テーブル名') でいけるような気がする。

以上想像。なければ、Databaseを拡張する必要があるかも?
俺もこの辺知りたい。ソース嫁って感じだけど
427nobodyさん:2008/07/14(月) 12:12:17 ID:???
NOW()とかも文字列として扱っちゃうから
date('Y-m-d H:i:s') にするしかないと思う

オレは
function now()
{
return date('Y-m-d H:i:s');
}
っていう関数を作ってある
428nobodyさん:2008/07/14(月) 19:00:27 ID:???
>>426-427
さんくすです。
できないみたいなので、
fuction current_timestamp() {
return date('Y-m-d H:i:s');
}
を使うことにしました。
でもこれだと、application server と database server が別だと
時刻を必ず揃えておく必要がありますね。
429nobodyさん:2008/07/14(月) 19:12:37 ID:???
>>428
サーバの管理がきっちり出来ていれば、どんなサーバも1秒と違わないはずなので、時刻で
よっぽどシビアなソートやチェックをしていない限り、それは大丈夫かと。
また、原則からいうなら元々どちらかに合わせるべきなので、DBの関数が使えない時点で
application側の時刻のみを使うのが必然となるかな。

サーバ間の時刻あわせとは、微妙に話が違うような。
430nobodyさん:2008/07/14(月) 19:47:05 ID:???
>>426-428
date_helperのunix_to_human じゃダメなのか?

unix_to_human(time(),TRUE,'eu');
431nobodyさん:2008/07/15(火) 06:26:58 ID:???
うちでは、まず application/helpers/database_helper.php として↓を用意して

class SafeMarker {
  private $_str;
  public function __construct($str) { $this->_str = $str; }
  public function __toString() { return $this->_str; }
}
function mark_as_safe($str) {
  return new SafeMarker($str);
}

モデルの中でこんな感じで使ってますよ

$this->load->helper('database');
$this->db->set('foo', $bar);
$this->db->set('created_at', mark_as_safe('NOW()'));
$this->db->insert('mytable');

CI_DB_driver#escape を読むとわかるけど、gettype で 'string' でも 'boolean' でも
NULL でもない値はスルーしてくれるので、オブジェクトでラップすると通る。
ただし __toString はPHP5からかな。
一種のhackなので、NOW()みたいな安全だとわかっているものにしか使いませんが。
432nobodyさん:2008/07/15(火) 07:42:14 ID:???
>>431
なんちゅうか、バッドノウハウの香りがw
> gettype で 'string' でも 'boolean' でもNULL でもない値はスルーしてくれる
っていう実装自体も、それに依存してるっていうのも、なんだかなあw

オブジェクトを渡されて、上記みたいにすることも前提にしてるのかな?>CI
(それなら、素直にescapeを回避するset系メソッドをつければいいのではと)
433431:2008/07/15(火) 12:59:01 ID:???
>>432
どうみてもBKです。本当に(ry
CI内部の実装依存だからCIをバージョンアップすると動かなくなるかも。

個人的には、gettypeを見て判定、の部分はとりたてておかしなコードでは
ないので、マイナーバージョンアップであれば大丈夫だろうという甘い期待w
最悪、mark_as_safe で grep して置き換えれば、なんとかなるだろうとかw
素人にも玄人にもオヌヌメできない。\(^o^)/
434431:2008/07/15(火) 13:07:49 ID:???
ってよくみたら set($key, $value = '', $escape = TRUE) って
第三引数があるじゃねーかw

$this->db->set('created_at', 'NOW()', FALSE);

で多分いけるね・・・ orz
435nobodyさん:2008/07/15(火) 13:10:36 ID:???
>>434
でもそれだと
$this->db->insert('tablename', array('created_at'=>'NOW()'));
とかができないよね。
431の方法のほうが個人的に好み。
436nobodyさん:2008/07/15(火) 13:15:25 ID:???
そういうの考えるのが面倒くさかったので、デフォで$this->db->insert($tablename, $valuearray);時は
created_atに作成日時をつっこみ、$this->db->update($tablename, $valuearray);時はupdated_atに
更新日時を突っ込むようにCI_DBを変更して使ってる。
バッドノウハウなのは百も承知だが、symfonyから流れてきた人にはこれが手放せないのよorz
437nobodyさん:2008/07/15(火) 17:00:08 ID:???
>>436
それはDBのNOW()やCURRENT_TIMESTAMP()を使うの?
それともPHPのdate()を使うの?
前者ならまねしたいなあ
438nobodyさん:2008/08/02(土) 09:47:59 ID:???
いつの間にか1.5から1.6になってる。
なんかかわったの?
439nobodyさん:2008/08/03(日) 18:45:02 ID:znW3bDml
あれ、$this->dbがなくなってね?
440nobodyさん:2008/08/03(日) 19:04:30 ID:???
kantigaidatta
441nobodyさん:2008/08/20(水) 20:18:05 ID:???
CI使ってる人間ってどれぐらいいるんだろうか
442nobodyさん:2008/08/20(水) 20:44:32 ID:???
17人
443nobodyさん:2008/08/22(金) 13:30:33 ID:???
CIってforward とか redirect とかはどうやるの?
444nobodyさん:2008/08/23(土) 00:51:34 ID:???
headerで自分で
445nobodyさん:2008/08/23(土) 01:26:31 ID:???
helperとか無かったっけ
まあぶっちゃけ自分でheader(ほげほげ)書くのと変わらないけど
446nobodyさん:2008/08/25(月) 13:31:03 ID:Ziu2Tqsv
CodeIgniterでは、URLは「コントローラ名/メソッド名」というのが基本ですが、
このパターンを変更することはできますか。

やりたいのは、
- /blog/index
- /blog/show
- /blog/create
- /blog/edit
というのではなく、
- /blog/maka
- /blog/blackstar
- /blog/deaththekid
のように「コントローラ名/ユーザ名」のようにしたいということです。
つまり /blog 以下のアクセスをある特定のメソッドに縛りたいということです。
447nobodyさん:2008/08/25(月) 15:36:16 ID:???
448nobodyさん:2008/08/26(火) 15:08:09 ID:???
>>447
ありがとうございます!
449nobodyさん:2008/08/26(火) 15:24:29 ID:???
Routingについて質問です。
ユーザーズガイドの例にあったのですが、
$route['product/:num'] = "catalog/product_lookup";
という設定をした場合、「:num」の値は Catalog->product_lookup() の中で
どうやって取得すればいいのでしょうか。
通常だと Catalog->product_lookup() の引数にこの値が渡されますが、
試したところ、$route[] を設定した場合は渡されないようです。
450nobodyさん:2008/08/26(火) 15:37:11 ID:???
>>449
英語のドキュメントに書いてありました。
$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";
でいいみたいですね。
お騒がせしました。
451nobodyさん:2008/08/28(木) 12:20:46 ID:B/844Qiw
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));

この時、無関係な?は置換されないようになってますか?
たとえば、クエリの中に、hoge = 'fuga???'があった時など
452nobodyさん:2008/08/28(木) 22:52:42 ID:???
>>451
ソレは自分で試してみたほうが早いんじゃない?
453nobodyさん:2008/08/29(金) 08:50:09 ID:???
複数のコントローラ間でメソッドを共有したいとき、どうするのがいいでしょうか。
できれば、あるコントローラのメソッド内で、別のコントローラをnewしてメソッドを実行できるのがいちばん理想的なんですが、そんなことできますか。
454nobodyさん:2008/08/29(金) 11:22:01 ID:???
>>453
application/libraryにMY_Controllerを置き、共通メソッドはそこに置く。
そのメソッドを使うコントローラはextends MY_Controllerで作る。
455nobodyさん:2008/08/29(金) 11:44:55 ID:???
>>454
しかしそれをしていると、だんだん多重継承っぽい事がしたくなってくるという罠

シンプルな処理、Controllerのプロパティ、機能等が必要ない様なものは、
ユーティリティクラスに切り出すとかもありかと思う

そして、libraries がカオスになるというセンスのない俺
456nobodyさん:2008/08/29(金) 14:42:55 ID:???
>>454
MY_Controllerに相当するものは作っているんですが、そこにはやはり多くのコントローラに共通するものだけをおきたいです。
あるコントローラAとコントローラBだけが使うようなものは、やっぱりMY_Controllerにはおきたくないですよね。

class AB_Controller extends MY_Controller
class ControllerA extends AB_Controller
class ControllerB extends AB_Controller
みたいなのってできますっけ?


>>455
多重継承やMix-inは欲しくなりますね。
librariesやhelpersがカオスになるのはよくわかります。
今まさにそんなかんじになりつつあるので、整理しているところです。
457nobodyさん:2008/09/07(日) 15:37:47 ID:???
>>456
びっくりするくらい亀レスですがw

> class AB_Controller extends MY_Controller
> class ControllerA extends AB_Controller
> class ControllerB extends AB_Controller
> みたいなのってできますっけ?

できますね。うちでは、MY_Controller にはしていませんが。
(この辺のAutoLoderの仕組みがあんまりよくわかってないw)
458nobodyさん:2008/09/12(金) 18:31:21 ID:q2obqPa7
>457
Fatal error: Class 'AB_Controller' not found in 呼び出してるコントローラーを継承しているクラス.php on line XX
ってなるんですが、なぜでしょうか。
以下に配置してます。
/system/application/libraries/AB_Controller.php
--------------------------------------------------------
<?php

class AB_Controller extends MY_Controller {

function AB_Controller()
{
parent::MY_Controller();
}
}
?>
459nobodyさん:2008/09/13(土) 01:11:52 ID:???
>>458
「MY_がついてて、MY_の後の最初の1文字だけが大文字」の命名ルールに従ってないと
オートローディングできないですよ〜。
(プレフィクスはconfig.phpでMY_以外に変更可能)

命名規則を揃えるか、自前でコントローラクラスにrequire_onceを書くか、どっちかの手当てが
必要。
460nobodyさん:2008/09/14(日) 01:01:21 ID:cUARlcyz
>>459
ありがとうございました。大変助かりました!
461nobodyさん:2008/09/18(木) 13:09:07 ID:???
CodeIgniter的には、pluginとhelperの違いって何かありますか。
どっちも関数を提供するだけで、違いが内容に見えます。
462nobodyさん:2008/09/18(木) 16:11:44 ID:nzPLdxkT
ログのしきい値おかしいね。普通
0 出力なし
1 ERROR
2 INFOも
3 DEBUGも
じゃない?
463nobodyさん:2008/09/18(木) 17:07:43 ID:???
syslogの区分けにして欲しいよな
ciはアメリカ人らしく独自すぎるところが結構ある
464nobodyさん:2008/09/18(木) 17:47:47 ID:nzPLdxkT
だよね。
しきい値勝手に変えちゃったもん。
465nobodyさん:2008/09/22(月) 21:08:37 ID:???
なんかDB使ってるとFromのテーブルがどんどん増えていくんだけれども。
もしかして静的にテーブル溜め込んでんの?
466nobodyさん:2008/10/08(水) 18:34:20 ID:???
CIでunit testやってる人いません?

うちはCIのWikiに出てたSimpletesterをいじりながらなんとかやってますけど、
1フォルダ内のテストクラスを全実行することしか出来なくてちょっとこまってます。
ttp://codeigniter.com/wiki/SimpleTester_-_Unit_testing_library/
467nobodyさん:2008/10/20(月) 05:19:44 ID:???
base_urlにIndex.phpが引っ付くのはでふぉ?
468nobodyさん:2008/10/20(月) 05:21:12 ID:???
ちがったform_openだ
469nobodyさん:2008/10/24(金) 20:58:58 ID:???
1.7.0
470nobodyさん:2008/10/28(火) 10:49:17 ID:???
1.7でなにか変わった?
471nobodyさん:2008/10/28(火) 14:21:52 ID:???
validationクラスがform_validationクラスに名前変更&若干の仕様変更
→configに定義したものから読み込み可能になった

sessionデータをDBに保存するように変更とソレに伴ってテーブル定義変更

この二つ位かな?個人的には

詳しくは
http://codeigniter.com/user_guide/changelog.html
472470:2008/10/28(火) 20:20:01 ID:???
なるほど、どもです。
473nobodyさん:2008/11/12(水) 18:05:07 ID:???
ciってcgi版phpでrewriteを使って
http://www.example.com/index.php/aaa/

http://www.example.com/aaa/
でアクセスできるようにすると、動かないのですかね・・・
474nobodyさん:2008/11/30(日) 21:27:31 ID:???
PHP5.0+MySQL4.0で、CI1.6.3だとDBのエラーが出ますね。
>クライアント接続文字エンコードを設定できませんでした

検索したら対策がヒット
ttp://manno.jugem.jp/?eid=500
system/database/DB_driver.php の 178〜188 をコメントアウト(強引にTRUEを返す)したらとりあえず動いた。

ttp://blog.livedoor.jp/dango22/archives/51056076.html
/system/database/DB_driver.php // 178行目からコメントアウト

CodeIgniter入門6章の機能拡張の方法のように、元のファイルを変更しないで、自分で別ファイルを用意して、
/system/database/DB_driver.phpを継承する方法で対応できないでしょうか?

用意されたDBがMySQL4.0で変更できないので、とりあえずこの方法で乗り切る予定ですが^^
475nobodyさん:2008/11/30(日) 21:35:36 ID:???
呼び出されたコントローラーとメソッド名取得することって出来ませんかね。
476nobodyさん:2008/12/01(月) 13:31:05 ID:4yAH9v9b
>>475
URIクラスを使えばOK?
http://codeigniter.jp/user_guide_ja/libraries/uri.html

URIセグメントの文字列は、URIクラスにより配列にセットされます。
segment_array()メソッドを使うことで、この配列にアクセスできます。
477nobodyさん:2008/12/09(火) 14:53:50 ID:3E19WexF
Rapyd使っている人いる?
貧弱なCRUDを補おうと思って使ってみようとしたんだけど、
公式ページのdocumentaionみても全然情報がなくて困ってる・・・

Rapyd: Minimalistic, Open source, Secure, and Small PHP 5 Framework
http://www.rapyd.com/
478nobodyさん:2008/12/17(水) 20:08:15 ID:???
>>475
いまさらだが

$this->CI =& get_instance();
$this->CI ->router->fetch_class();
$this->CI ->router->fetch_method();
でもできるみたい。

コントローラやモデル内なら
$this->router->fetch_class();
でアクセス可
479nobodyさん:2008/12/19(金) 18:01:27 ID:egThtXwj
みなさんログイン認証は何つかってますか?
>>10にある、UserAuth?
それとも、FreakAuth_lightでしょうか?
simpleloginはさすがに機能がなさ過ぎる感・・・
480nobodyさん:2008/12/19(金) 19:09:31 ID:???
>>479
自前です。MY_Contoroller作る方法で。
481nobodyさん:2008/12/19(金) 20:16:08 ID:f2L1j1eM
>>480
同じく。それが安心だね。掛け忘れもおきないし。
482nobodyさん:2008/12/20(土) 23:58:43 ID:???
>>479
私も最近、ログイン認証のやり方をどうしたらいいか悩みました。

(1)CodeIgniter徹底入門で紹介されていたsimplelogin
(2)もうちょっと高機能なFreakAuth等のライブラリ
(3)自作のMY_Controllerクラスの用意

(2)はまだ試してないけど、今のところ(3)でやってます。

<参考になったサイト>

* LinuxなWEBデザイナーの覚書き。 | CodeIgniterでユーザー認証
http://php-sql-gdgd.jugem.jp/?eid=56
(↑if($this->session->userdata('next'))は、if(!〜)の間違いかな?)

* CodeIgniterで管理ページを作成する
http://dxd8.com/archives/142/

* 日本CodeIgniterユーザ会 - シンプルな認証
http://codeigniter.jp/archives/92

* CI:ユーザー認証
http://o2studio.blog81.fc2.com/blog-entry-306.html
483nobodyさん:2008/12/22(月) 20:02:23 ID:???
みなさんありがとう。
MY_Controllerでログイン処理を自前実装?ということでしょうか?

私はリマインダーとかアカウント管理画面を1からは作るの面倒だなーと思ったので、
(というか今の案件で時間がないw)
はてなダイアリーで FreakAuth_light を入れてみた人のを参考にして、
それを試してみています。
484nobodyさん:2008/12/22(月) 22:43:33 ID:???
ログイン認証のライブラリについてですが、
CIのMLで紹介されていたDX Authは、今度試してみたいです^^
http://dexcell.shinsengumiteam.com/dx_auth/
485nobodyさん:2008/12/23(火) 14:50:17 ID:???
>>484
CL_Authの派生版なんですね。

FreakAuth_light 入れようとしたら、結局 1.7.0 だと改造必要なので困ってしまいました。
DX Auth は1.7.0対応してるみたいなのでよいですね。
486nobodyさん:2008/12/23(火) 19:30:01 ID:???
487nobodyさん:2008/12/26(金) 06:39:47 ID:???
簡単な認証なら自作した方が早いよ。
488nobodyさん:2008/12/29(月) 00:23:40 ID:???
1.7のドキュメント日本語化、がんばってください。
他力本願で申し訳ないけど、早く日本語で読みたいw
翻訳作業に限らず、ユーザ会の皆さんには本当に感謝!
489nobodyさん:2008/12/29(月) 01:22:24 ID:???
口語訳→ 「ドキュメントマダー? 俺のためにみんな頑張れ」
490488:2008/12/29(月) 12:21:19 ID:L94/Z1Ym
>>489
はい、そのとーりですw
100点!
491nobodyさん:2008/12/29(月) 15:23:16 ID:???
英語できないなら冗談抜きでプログラマにならないほうがいいと思うよ。
492nobodyさん:2008/12/29(月) 20:26:52 ID:???
まず先にver1.6.3の日本語ドキュメントを読んでおけば、
そのあと英語のドキュメントを読んでも理解しやすいよね?

CodeIgniterと英語の勉強になれば一石二鳥だ!
493みなさん来年も良いお年を!:2008/12/29(月) 20:31:46 ID:???
翻訳してくれた方々には感謝してます。
おかげでCodeIgniterの学習コストが少しで済んだ。
本も買って、何度も読み返している。

WEBアプリを作るのが楽しいと思える今日この頃。
今もプログラミングしてるし。^^
CodeIgniter日本語版のおかげで、デスマの日々を過ごしたトラウマから立ち直れそうです。(・∀・)
494nobodyさん:2009/01/15(木) 21:00:02 ID:???
web関係やったことなかた、俺には本は正直かなりよかった。
願わくば 1.7 の差分を公開を!
今は、Form ValidationやDBのセッション使うみたいだしね
495nobodyさん:2009/01/15(木) 21:02:33 ID:???
Form Validationの質問を1つしていいですか?
Validation後の値をとるときってどうすればいいんですかね?
DX_authとか見てるとプログラム中で(controller/auth.phpとかで)
set_value() 使っているんだけど、メソッド名的になんか変なんですが、こんなもんでしょうか?

フォーラムとか見ると、
 $this->input->post('mage');
使えってあったけど、これって直接入れた値なんじゃないのかな?不安なんですが・・
496nobodyさん:2009/01/15(木) 22:08:30 ID:???
Validationは基本的に正しい値かどうかをチェックする機能だから、データの修正は別に行うものだと思いますよ。
497nobodyさん:2009/01/15(木) 22:25:21 ID:???
>>495
たぶん、サニタイズ?とごっちゃになってるんだろうなー
というか、入力データをとりあえず変換するっていう発想はなかなかなくならないのな。

実際、入力値を変換するっていう処理が本当に必要なのは文字コードの変換くらいだろうと
思うんだが・・・
どうも質問で想定されてるのが、例えば数字・記号の全角半角変換や検索キーワードの
平仮名←→カタカナ変換等の親切処理とか、メール送信等を考えての半角カナ・機種依存
文字や絵文字などを置換・削除する処理などではない雰囲気なのが、なんだかなあ
498nobodyさん:2009/01/15(木) 22:45:47 ID:???
>>495
form_validation->run実行してtrueだったらvalidationを通った値ということなので、そのまま$this->input->post使えばいいと思うよ。
それでも心配なら自分でコード書いてテストすればよろし。

という話だと解釈したんだが間違ってたらすまん。
499495:2009/01/18(日) 15:11:26 ID:???
あああ、そうか理解した。

Validateつまり検証するだけだから、検証にパス(runでTRUEが返る)したら、
その時点でOKだから、input->post使えばいいのか。
修正とか変換するわけではないのね・・・。

set_value() はviewのformに前の入力値をデフォルト表示するためのものだから、
そう使うべきのもの。
500nobodyさん:2009/01/19(月) 18:08:58 ID:???
>>499
でもよい子のみんなは、"出力の時"には変換しようね!
お兄さんとの約束だ!
501nobodyさん:2009/01/19(月) 21:52:16 ID:???
>>600
いやあ、指南役のお兄さん頼もしいわ。
ほれた
502nobodyさん:2009/01/20(火) 14:45:10 ID:???
Active Recordについて少し質問です。

updateメソッドを、事前のwhereなしで呼ぶとテーブル内のデータを全部更新してしまって、
アボンしますよね?
これ、よくやらかしてしまうのですが、よい回避方法ないでしょうか?

マニュアル見ると、
 $this->db->update('mytable', $data, "id = 4");
みたいに、引数でwhereを追加するように決めてしまえばいいのですが、
うっかり引数を省略すると、アボンしてしまいます。

引数省略しないようないい方法ないですかね?
503nobodyさん:2009/01/20(火) 18:20:44 ID:???
まじすか
504nobodyさん:2009/01/20(火) 19:23:54 ID:???
>>502
ActiveRecordの使い方としてそれはどうなんだ
find()で取ってきたものをupdate()なら、そうはならんのでは?
と、CIを使ったことのない俺が書いてみる
505502:2009/01/21(水) 10:29:58 ID:???
>>504
私の場合、すでにあったら上書き、なかったらinsertという風な処理を書いていたのですが、
たまに、insert()をupdate()に置き換えただけで実行してしまい、テーブルごとアボンしてしまうのです。

まあ、アフォといえばアフォなのですがw

普通は >>504の意図するように、get_where()->result(); なりしてupdateしたいidを得て、
そのidをupdateにつっこむもんですよね・・・。
506nobodyさん:2009/01/21(水) 23:55:24 ID:???
ciのActiveRecordって、save()でidがあればupdate, なければinsertって判断しないのか・・・
リファレンス見たけど、SQLが透けて見えそうな薄い実装だね。だから速いんだろうけど。

>>502
常にwhere()呼んだら駄目か?insert()なら無視してくれない?
すごく間抜けに見えるだろうけど。

あるいは、ラッパーかぶせてidを指定しないupdate()を隠すとか。
もしくは配列からidをとって勝手にwhereに入れるupdate()ラッパーを書くとか。
507nobodyさん:2009/02/02(月) 17:00:10 ID:???
1.7ドキュメントの翻訳作業が進んでいるみたいですね。
http://lists.sourceforge.jp/mailman/archives/codeigniter-users/2009-February/001699.html

俺も手伝いたいんだが、こういのっていきなり着手しちゃっていいもんなのかな?
皆さんの訳がとても上手いので、なんか気が引けてしまう。
508nobodyさん:2009/02/03(火) 00:20:37 ID:U0x1Z73i
おっと、ちいたんの悪口はそこまでだ。
509nobodyさん:2009/02/03(火) 01:44:51 ID:???
>>507
翻訳してる人乙です。
俺もちょっとくらいオープンソースに関わってみたいな…なんて思ってる^^
510nobodyさん:2009/02/11(水) 12:25:10 ID:???
1.7.1
511nobodyさん:2009/02/11(水) 13:34:24 ID:632VXucI
sessionで簡単なユーザ認証を作ってるんですが
最後ログアウト時に
$this->session->sess_destroy();
でセッションを破棄してるんですが
ブラウザの戻るボタンを押すと
破棄する前のページが表示されてしまいます。
読み込み直すと会員ページは表示されずキチンと動作します。
戻るボタンを押しても会員ページが表示されないようにするには
どうしたらいいですか?
すいませんがアドバイスよろしくお願いします。
512nobodyさん:2009/02/11(水) 13:41:31 ID:???
>>511
デフォ(コントローラのコンストラクタ等)でno-cacheにしとくのではだめなん?
513nobodyさん:2009/02/11(水) 14:15:46 ID:???
>>512
アドバイスありがとうございます。
デフォというのは
$this->output->set_header();で設定するという事ですかね。
今からマニュアル見てやってみます!
514nobodyさん:2009/02/12(木) 20:18:30 ID:RECSJFEg
ちょいとお聞きしたいのですが、view内で冗長性のある部分を関数化しているのですが、
関数 (function)を定義した中だと、viewに渡した変数が使えません orz

例えば、
controller側:
$this->data["hage"] = "mage";
$this->header = $this->load->view('hoge_view', $this->data, TRUE);

view側:
function show_mage($title)
{
 echo "<h1>$title<h1>";
 echo $mage; // エラー:Undefined variaぶる
}

show_mage("mage 1");
show_mage("mage 2");
show_mage("mage special");


view内ではfunctionは使わないものなのでしょうか?

HTMLが絡む表示部分はなるべくcontroller じゃなくて、view側に入れたいので、
view側で処理したいものなのですが・・・
515nobodyさん:2009/02/12(木) 21:08:20 ID:???
>>514
CIだとかフレームワークだとか言う以前の問題として、少なくともPHPの基本を覚えるべきかと。
○ show_mage 内の $mage ってどこから出てきたのでしょうか。
○ ↑が $hage のタイポとして、関数内から外部の変数をそのまま参照することはできません。

CIのviewをデフォルトで使ったことが無いので確実ではないですが、show_mage関数内で
   global $hage;
とかやってみてはどうでしょうか。

あと、viewファイル内で関数を定義するというのも、それがview関連処理だったとしても、
コーディングとしてどうかと思います。まあこれは異論もあるかもですが。
view ヘルパーや部分テンプレートとして切り出すことも可能な場合も多いかと。
516514:2009/02/12(木) 23:38:27 ID:???
>>515
ごめん。最小限のコードに直して書こうとしてtypoした。

$mageでなく、$hageです。
globalではダメでした。
view内functionの扱いはどうなってるんだろ?グローバル関数になるんだろうか。

> あと、viewファイル内で関数を定義するというのも、それがview関連処理だったとしても、
> コーディングとしてどうかと思います。まあこれは異論もあるかもですが。

そんなもんなんでしょうか?MVCフレームワークは不慣れな門で・・・
viewは見栄えを定義するもんだと思ってました。
viewは変数付きHTMLにちかく、ロジックが含まれるなら
ヘルパーとかのライブラリ側や別のテンプレートにもっていく、ということなんでしょうか?
というか、CodeIgniterというよりもMVC一般論の話になりますね
517nobodyさん:2009/02/13(金) 00:25:52 ID:???
別にviewにfunction置いても良いと思うけど、viewの可読性を落とさないためにhelperがあるんだから、
使えるならhelper定義すればいい。
その場限りならviewでも良いんじゃないの?

$hogeはshow_mage($title, $hoge)って引数に渡さないと駄目だろ。
functionが呼び出された時点でスコープが変わるんだから。他所のローカル変数は見えない。


話は変わるけど、誰かODBCの設定database.phpにどう書くか教えてくれない?
518514:2009/02/14(土) 14:38:53 ID:???
>>517
ありがとう。とりあえずは引数に渡していけました。
helperも使ってみます。
519nobodyさん:2009/02/15(日) 14:39:09 ID:???
>>516
viewファイルで関数定義ってことは、結局クラスメソッド内で関数定義するのと同じ、なのかな

class Hoge
{
function say()
{
echo "hoge\n";
function say_page()
{
echo "page\n";
}
say_page();
}
}

$c = new Hoge();
$c->say(); #=> "hoge\npage\n"
say_page(); #=> "page\n"

say(); #=> (Fatal error)


なにこのPHPの仕様。関数の中で関数を定義するとグローバル関数になるのかな?
まあ名前がかぶったらFatal errorになるだろうけど、気持ち悪いのでできるだけviewで
ごにょごにょしない方がいいような。

だれか詳しい人解説してくれないかな・・・
520nobodyさん:2009/02/15(日) 19:37:53 ID:???
viewがクラスだと思ってないか?ありゃただのスクリプトだ。
JSPやASPみたいにクラス定義と一体化してるわけじゃない。
PHPではclassと明示しない限り、上から順番に処理される。関数はクラス内ならメソッド、そうでなきゃグローバル。
521nobodyさん:2009/02/15(日) 20:22:34 ID:???
>>520
その「ただのスクリプト」がどう実行されているか、ってのを問題にしてるわけなので。
脊髄反射いくない。
522nobodyさん:2009/02/16(月) 00:01:29 ID:???
ユーザガイド見てくるといいと思うよ。
523nobodyさん:2009/02/16(月) 00:31:53 ID:???
>>522
ユーザガイドにそんな記述あるの?
ソース見てみたので一応書いてみる。Kohanaだけどw

・標準のviewは CI_Loader::view メソッドで表示処理?
・そこから呼び出される _ci_loadメソッドでob_startされた後
  echo eval( ごにょごにょ file_get_contents(〜〜) )
   もしくは
  include(〜〜)
・んで結果をreturn もしくは $OUT->output()

この仕組みなら、viewファイル内での関数定義は、CI_Lorder::_ci_loadメソッド内で
関数定義するのと同等かな。だから、同じテンプレートを2回読み込むと、多分Fatal Error

どこまでCIの現行バージョンで一緒か知らんし、実際に動かして確認してないので大嘘かも。

また、PHPで関数内で関数が定義できることやその動作については
http://ml.php.gr.jp/pipermail/php-users/2005-June/026279.html ← このツリーを
http://ml.php.gr.jp/pipermail/php-users/2005-June/026322.html ← この辺まで読んで納得。
PHP5でも仕様はこの当時のままっぽい?

以上、適当で嘘くさいので、間違ってたら誰か教えて・・・
524nobodyさん:2009/02/16(月) 13:51:05 ID:???
remapに関して質問です。
remapした場合関数の引数に当たる部分はuri->segment以外で
とる方法はないのでしょうか?
サイトに載っている例では
function _remap($method)
{
if ($method == 'some_method')
{
$this->$method();
}
else
{
$this->default_method();
}
}
となっていて、引数部分がありませんよね。
現状switchで$methodの内容からsegmentで値引っ張って回してますが、
もうちょっとスマートな書き方はない物ですかね・・・
525nobodyさん:2009/02/16(月) 14:47:15 ID:???
興味ないだろうけどオレ流_remap
function _remap($method)
{
    if (method_exists($this, $method)) {
        call_user_func_array(array(&$this, $method), array_slice($this->uri->rsegments, 2));
    }
    else if (method_exists($this, $method.'_')) {
        call_user_func_array(array(&$this, $method.'_'), array_slice($this->uri->rsegments, 2));
    }
    else {
        call_user_func_array(array(&$this, 'index'), array_slice($this->uri->rsegments, 1));
    }
}

なんでこうなったか忘れたけど、これ書いたとき結構調べたから
$this->uri->からとってくる以外ないと信じたい。
526nobodyさん:2009/02/19(木) 14:54:17 ID:???
Kohanaスレないので近縁のこちらで質問させてください。

ファイルアップロードについてなんだが、
コントローラ/モデル/ビュー内で$_FILES受け取れないのは仕様?

◆ちなみにフォームはこんな感じ
<form method="post" action="/admin/update/" enctype="multipart/form-data">
<input type="text" name="name" />
<input type="file" name="photo" />
<input type="submit" name="submit" value="アップロード" />
</form>

◆Controller/admin.phpはこんな感じ
public function update(){
print_r($_POST); // 正常に出力
print_r($_FILES); // 空のArrayが出力される
print_r($_FILES["photo"]); // エラー「Undefined index: photo」
}

Kohanaフォーラムだと$_FILESで動いている投稿はあるんだけどなぁ。
完全手詰まりしてしまった。
527526:2009/02/19(木) 15:42:52 ID:???
うんこでした。
先ほどペーストしたコードで気づきました。
enctypeの直前スペースが全角でした。
うんこでした。

うんこでした。スレ汚しサーセンorz
528nobodyさん:2009/02/20(金) 14:07:46 ID:???
ここでうんこ禁止!

ケツの穴にコルク栓をしておこう^^
529nobodyさん:2009/02/20(金) 15:01:30 ID:???
あの、「コードイグニッター」って読んでたんですけど・・・
530nobodyさん:2009/02/20(金) 15:21:31 ID:???
>>528
「イグニッション!」(点火!)

シュポーーーン!!
531528:2009/02/22(日) 20:33:01 ID:???
念のため、元ネタはマカロニほうれん荘です^^
532nobodyさん:2009/02/27(金) 20:37:16 ID:???
これってクッキー以外のセッション使うにはどうすればいいの?
ZFのセッションとか使うようにできますか?
533nobodyさん:2009/02/27(金) 20:52:19 ID:???
>>532
これ
ttp://codeigniter.com/wiki/Native_session/
使うかZendのセッションライブラリをapplication/librariesにおいて使えばおk
534nobodyさん:2009/02/27(金) 21:05:04 ID:???
>>533
迅速なレスありがとうございます!助かりました。
535nobodyさん:2009/03/01(日) 10:39:27 ID:???
モデルクラスの命名規則なんですが、コントローラークラスと同じ名前にするとエラーになりますか?

Fatal error: Cannot redeclare class Bbs in /usr/local/www/htdocs/.../system/application/models/bbs.php on line 100
536535:2009/03/01(日) 10:40:15 ID:???
(例)掲示板のコントローラークラス

<?php
class Bbs extends Controller
{
 //コンストラクタ
 function Bbs()
 {
  parent::Controller();
  $this->load->model('bbs');//bbsのモデル読み込み
 }
 
 //トップページ
 function index()
 {
  echo "bbs menu";
 }
 
 //タイトル表示
 function title()
 {
  echo $this->bbs->get_title();
 }
}
?>
537535:2009/03/01(日) 10:41:07 ID:???
(例)掲示板のモデルクラス
<?php
class Bbs extends Model
{
 //コンストラクタ
 function Bbs()
 {
  parent::Model();
  $this->load->database();
 }
 
 //タイトル取得
 function get_title()
 {
  $query = $this->db->get('bbs');
  return $query->result_array();
 }
}
?>
538535:2009/03/01(日) 10:46:22 ID:???
コントローラークラスですでに「Bbs」というクラス名を使用していると、
モデルクラス名として「Bbs」は使えないということでしょうか?
=Bbsというコントローラーの中で、Bbsというモデルを使うことができない?

みなさんは、モデルクラス名を付けるとき、どうしてますか?
=モデルを使うコントローラーのクラス名を重複しないように命名しないとダメなの?

「Bbs_model」とかだと、なんか長ったらしい><
539【裂く裸ノ雨】初音ミク虐待スレ:2009/03/01(日) 10:50:35 ID:fSY3QkVN
最近無いのでたてました。
540nobodyさん:2009/03/01(日) 10:51:05 ID:???
すまん、誤爆したw
541nobodyさん:2009/03/01(日) 13:57:56 ID:???
CodeIgniterちょっと触ってみた。

チュートリアルやったんだけど、この後は何をすべきなんだろうか。
徹底入門って本どう?役に立ちます?
542nobodyさん:2009/03/01(日) 14:09:29 ID:???
>>541
掲示板でも作ってみればいいのではないかと。
って10年前から同じ事言われてる様な気もする
543nobodyさん:2009/03/01(日) 20:30:49 ID:???
CIもcakeぐらいのフォーラムに成長して欲しいなあ・・・。
544nobodyさん:2009/03/02(月) 00:25:39 ID:???
CIでシェルスクリプトを使いたいのだが、どうやればいいのでしょうか。
545nobodyさん:2009/03/02(月) 00:29:17 ID:???
>>541
最初はオンラインのリファレンスを見てやってたけど、全体を俯瞰するのにページの切り替えが面倒に感じた
徹底入門はオフラインでどんどん読み進めるので役に立ったよ

最初慣れるまでリファレンスとして首っ引き
ActiveRecordクラスのメソッド名や、よく使うヘルパー関数を覚えたら、あとはほとんど見なくてもアプリを作れるようになった

時給1000円としても3時間分程度のコスト
CIで生産性アップしたらすぐに元は取れるし、本は読み終わったら売り払えばOK
最近買った本の中では元が取れた1冊だったと思います
546nobodyさん:2009/03/02(月) 00:31:56 ID:???
徹底入門で物足りないのは、ログイン認証の作り方
あと携帯のセッション管理かな
この二つはネットで検索してフォローしました
(このスレの情報も役に立ちました^^)
547nobodyさん:2009/03/02(月) 00:34:43 ID:???
>>541
ちょっとしたWEBアプリを作っているんですが、一緒に作ってみませんか?
=2chの過去ログを保存するWEBアプリです。
DATファイルからHTMLページを作成する機能をこれから作る予定なんですが、良かったらアドバイスとか勉強の材料にでも
548nobodyさん:2009/03/02(月) 09:59:03 ID:???
1.7の方がバリデーションとか便利そうだけど、日本語化パックがないのか。

今から始めるなら1.6とどっちがいいですか?
549nobodyさん:2009/03/02(月) 10:55:51 ID:???
徹底入門みながら、差分情報をリファレンスで確認しつつ1.7やったよ。
MLの方に 1.7の日本語化パックあったはず。完全じゃなかったとおもうけど
550nobodyさん:2009/03/02(月) 13:52:32 ID:???
徹底入門のサンプルアプリの動作確認は、1.6でやりました。
自分のアプリを作るときは1.7でやってます。
551nobodyさん:2009/03/02(月) 17:43:51 ID:???
>>547
kwsk
552nobodyさん:2009/03/02(月) 19:18:28 ID:???
バージョン1.7.1使ってるんですが、検索結果をページングしたいときって、検索条件はセッションに入れるものなんでしょうか?

553nobodyさん:2009/03/02(月) 22:05:37 ID:???
554547:2009/03/03(火) 13:09:25 ID:KbYnBJGq
できた。
週末+αの4日くらいで作れた。
CIは便利!(・∀・)
555nobodyさん:2009/03/03(火) 13:14:37 ID:???
>>552
1個だったら、POSTやGET(URLのセグメント)に入れて次ページに持ち越せると思うけど、
条件が複数個ある場合は、セッションに入れて持ち回りするのが楽ですかね?

条件をいったん配列に入れて、シリアライズして、エンコードして、無理矢理POSTやGETに埋め込むということもできるだろうけど、スゴク面倒くさそうです><
556nobodyさん:2009/03/03(火) 14:43:08 ID:???
>>555
アドバイスありがとうございます。
検索項目が動的に増える作りなので、セッションにしようと思います。

もうひとつ質問なんですが、セッションの保存先をデータベースにした場合、
セッションテーブル内のデータはどのタイミングで破棄されるのでしょうか?
557556:2009/03/03(火) 17:48:35 ID:???
ガベージコレクションで自動で消えるんですね。
お騒がせしました。
558nobodyさん:2009/03/03(火) 22:28:40 ID:???
検索条件指定画面で生のSQLクエリに近いものをユーザが入力できるようにしたいんですが、
CodeIgniterのActiveRecord使った時に、SQL実行エラーが発生した場合の記述ってどうやるんでしょうか?
直書きのPHPだと以下のような記述ができるみたいなんですが・・・。

if (!$res = mysql_query($sql)) { //エラー処理 }
559nobodyさん:2009/03/04(水) 12:21:43 ID:???
>>558
自己レス。
config.phpのdb_debugをFALSEにしたらエラー画面にリダイレクトしなくなりました。
が、エラーログも出力しなくなりました・・・。

運用時はこのDBデバッグ設定はOFFにするのが普通ですか?
560nobodyさん:2009/03/04(水) 18:47:01 ID:???
>>558
直前にsimple_query使ってチェックしてみるとか?
でも二回SQL発行しちゃうのは微妙か。
561nobodyさん:2009/03/18(水) 15:42:05 ID:0CAtxxAV
1.71使ってるんだけど、以前モデル内のdbメンバってCI_DB_active_recordだったよね?
今ドライバに代わっちゃってるんだけど、俺なんか変なことしちゃってるんかな。
562nobodyさん:2009/03/22(日) 16:03:22 ID:???
CI1.6.3に日本語パックを当てて使ってますが、バリデーションを通すと、日本語が文字化けします。
$_POST['name']を直接取得して、EUC-JPからUTF-8に変換すると、ちゃんと表示されます。

レンタルサーバで、標準の文字コードがEUC-JPです。
CIの文字コードはUTF-8を指定しています。

バリデーション以外は、特に文字化けしないんだけど、どうしたらいいでしょうか?
とりあえずなら、表示前にいったん文字コード変換すれば対応できるけど、こんなやり方はスマートじゃないですよね?><
563nobodyさん:2009/03/22(日) 18:38:20 ID:???
internal encodingを指定すればいいだけじゃないのか?
564nobodyさん:2009/03/27(金) 21:05:38 ID:???
>>563
どうもありがとうございます。

最初、.htaccessファイルをindex.phpがあるpublic_htmlフォルダにだけ置いていました。
CIが入っている別フォルダにも.htaccessを置いたら、文字コードを変えることができました。
まるっと解決!(・∀・)
565564:2009/03/27(金) 21:11:08 ID:???
あともう一つ文字化けがありました。
CIからお知らせメールを送信するとき、メールのsubjectが文字化けしていた。

.htaccessでinternel_encodingを変更するのは別に、文字コード指定の処理を入れたらメールの文字化けを回避できました。
↓↓↓
PHPのmb_encode_mimeheaderは事前にmb_internal_encodingが必要
http://www.akiyan.com/blog/archives/2006/03/phpmb_encode_mi.html

文字化けはもうイヤ><
566nobodyさん:2009/04/08(水) 08:38:18 ID:???
これ使うならちいたんの方がいいよ
567nobodyさん:2009/04/10(金) 02:57:28 ID:???
ちいたんも使ってみました
今のところCIに落ち着いてます^^
次はkohanaかな?
568nobodyさん:2009/04/10(金) 07:42:12 ID:???
cakeは駄目?
569nobodyさん:2009/04/10(金) 10:10:33 ID:???
そこでrhacoですよ
570nobodyさん:2009/04/10(金) 18:15:52 ID:???
宣伝うぜーんだが
571nobodyさん:2009/04/10(金) 19:22:00 ID:???
cakeはhtaccessが半必須になってるのがネック
趣味PGは無料PHPサーバでサコッとやる派の俺にはCIのほうが向いてる
業務だったらどうなるかは知らん
572nobodyさん:2009/04/10(金) 22:57:20 ID:???
cakeが遅すぎてCIに移行を検討中

573nobodyさん:2009/04/11(土) 06:45:27 ID:???
CakeはRailsよりも遅い言われているからどれだけ遅いんだよ、という
574nobodyさん:2009/04/11(土) 10:02:49 ID:???
素のPHPが一番早い
575nobodyさん:2009/04/11(土) 12:36:26 ID:???
CIよりもっと軽いFWってある?
576nobodyさん:2009/04/11(土) 13:00:06 ID:???
CI機能少ないのに、これ以上とったら何がのこるんだろ
577nobodyさん:2009/04/11(土) 14:24:33 ID:???
ciはアメ公的な変なクセがあるところがイヤーンな感じ
578nobodyさん:2009/04/12(日) 17:02:08 ID:???
CIってキャッシュはしょぼいし、
セッションは不評だし、
なんなのこれw
579nobodyさん:2009/04/12(日) 17:04:06 ID:???
軽量お手軽フレームワークですが何か
580nobodyさん:2009/04/12(日) 22:51:09 ID:???
cakeのデバッグモードみたなのってある?
581nobodyさん:2009/04/13(月) 07:37:14 ID:???
デバッグモード(というか出力)は一応ある。

コンストラクタにでも以下を放り込めばいいw
 $this->output->enable_profiler(TRUE);

俺は足りないから出力フックして、print_a(というライブラリがある)とかで任意にデータ構造を出力できるようにしたりしてた。

cakeのは俺は知らんのだけど、期待すると多分…
582nobodyさん:2009/04/13(月) 07:52:00 ID:???
enable_profiler(TRUE)にしてるなら、出力したい変数をGETに上書きしとけばいいんじゃね
わざわざprintせんでも
583nobodyさん:2009/04/13(月) 20:15:34 ID:???
GETを消すとか余計なことすんなよ。
一番余計なことをするFWはCI。
584nobodyさん:2009/04/15(水) 16:53:53 ID:???
CIに不満があるならkohanaを使ってみたらいいよ☆
ドキュメントは英語だけど…(・∀・)
585nobodyさん:2009/04/17(金) 22:01:40 ID:???
正直、KohanaとCIの乖離具合が最近気になる。
いや、CIのPHP4対応べったりにぶち切れて、Kohanaをメインに使って見てたんだが。
最近のCIのバージョンアップとか追いかけてないな・・・

なんだかんだ言って、CIの方が継続的に人がついてるわけだしなあ
CIがPHP4を切り捨てる方向性さえ出してくれれば、と切に思う。
586nobodyさん:2009/04/18(土) 12:11:12 ID:???
PHPでRoRをやろうとするからだ。
587nobodyさん:2009/04/18(土) 18:39:53 ID:???
CakePHPと間違ってるんだろうか
588nobodyさん:2009/04/18(土) 20:36:11 ID:zinmsTt6
機能が足りないから、
PEARから追加してるんだけど、
ZFのを追加した方がいいの?
589nobodyさん:2009/04/18(土) 23:45:48 ID:???
FWにしては自由すぎだし、足りない機能を付け足したらスピードも他のFWとあまりかわらないし、
何もかも中途半端な感じがする。
590nobodyさん:2009/04/19(日) 00:19:05 ID:???
付け足しても他のFWより全然早い。
CIも他のFWも使ったこと無いだろw
591nobodyさん:2009/04/22(水) 01:37:11 ID:???
>>588
CIならPEARからでもよさげだけど、KohanaならZFを入れたくなる
気分だ気分
592nobodyさん:2009/04/23(木) 19:07:21 ID:???
CodeIgniterのSVNリポジトリをとってきたんですけど、フレームワーク自身のユニットテストが見つかりません。
もしかして開発チームはユニットテストをしていないんでしょうか。
593nobodyさん:2009/04/27(月) 09:06:35 ID:???
俺もそれ気になってたわ

そもそも、CodeIgniter周りってテスト技法さっぱりわからん。
CodeIgniter流で言えば他のライブラリと組み合わせて使えということなのかもしれんけど
それにしても標準のユニットテストはオマケだよなw
594nobodyさん:2009/04/27(月) 12:59:04 ID:???
ユニットテスト PHP の検索結果 約 120,000 件

ユニットテストって便利なんですか?
変数のプロファイリングは、echoやprint_rで十分なんで、Xdebugとか使ったことないです

PHPUnit3で始めるユニットテスト
http://gihyo.jp/dev/feature/01/php-test
…後で読んでみるか
595nobodyさん:2009/04/27(月) 13:34:31 ID:???
おれは業界入りたてただから、どの程度やられてるのか知らん
うちは、TDD(Test Driven Developoment)でテスト書いてから実装してる
596nobodyさん:2009/04/29(水) 12:02:37 ID:SeoCUIVm
データベースの接続でdefault以外のDBを
ユーティリティクラスで最適化とかしたいんですがどうしたらいいですか?


上手く言えないですが、

■ config/database.php
$db["default"]["database"] = "test1";
...
$db["my_db"]["database"] = "test2";
...

で、

$my_db = $this->load->database("my_db");

この$my_dbに対して、テーブルの最適化を行いたいです
普通に
$this->load->dbutil();
$this->dbutil->some_function();
だと、$db["default"]の接続設定先となるので困っています
597nobodyさん:2009/04/29(水) 15:24:07 ID:???
>>596
単なる思い付きですが、DSN(データベース接続情報)を配列にして、条件によって、$db["default"]["database"]に代入する値を切り替えるという方法では無理でしょうか?

CIじゃないけど、複数のサーバを使用しているとき、サーバによって接続先DB変える方法をやったことがあるので、そのイメージで。
598nobodyさん:2009/05/02(土) 00:31:30 ID:???
$this->dbutil->db = $my_db;

でいけるかも
599nobodyさん:2009/05/02(土) 07:49:23 ID:???
>>590
小さい案件ばかりでうらやましいですね。
600596:2009/05/03(日) 08:43:21 ID:???
遅くなりましたが
>>598で出来ました
ありがとうございます!
601nobodyさん:2009/05/13(水) 21:55:40 ID:XGYdQTNG
http://www.example.com/test/method/http%3A%2F%2F2ch.net%2Findex.html
とかだと、正しく読み込んでくれず、404エラーが返されるけど、なんで?
602nobodyさん:2009/05/13(水) 23:00:13 ID:???
>>601

configファイルの
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
でURLに使用可能な文字が制限されてる

ちなみに俺だったら
$config['uri_protocol'] = "PATH_INFO";
$config['enable_query_strings'] = TRUE;
に設定して、
http://www.example.com/test/?method=http%3A%2F%2F2ch.net%2Findex.html
で対応する
603nobodyさん:2009/05/14(木) 06:49:11 ID:???
%2Fが404だから、AllowEncodedSlashes On
Apache使えないサーバはわからんが。
604nobodyさん:2009/05/15(金) 10:24:33 ID:???
>595
> テスト書いてから実装
もう何万回説明したか分からんが、それはTDDではなくテストファーストだ。
wikipediaの説明が腐ってるのが定着しない原因かなぁ。

TDDでは、「テストが先にある」わけじゃない。
いや、確かにテストは先にあるんだが、長くとも1分後には対応するコードが存在する状態になっているのがTDD。
TDDでは「テスト記述(=仕様決定)とテスト実行、実装を同時進行で進める」がニュアンスとして正しい。
605nobodyさん:2009/05/15(金) 10:26:37 ID:???
じゃあ、「テストファースト」ってのは?
それを書かないとどう違うのか伝わらないと思う。頑張れ
606595:2009/05/16(土) 09:15:49 ID:???
>>604
角谷氏のプレゼンとか記事とか見てるくらいだから俺は勘違いしているかもしれん。
TDDつーか、BDDなんだが、
考える→テストを書く(失敗)→実装を書く(テストを成功)→リファクタリング→最初に戻る、
という一連のイテレーションじゃないのかな?
なんにしろテストが先だろうと思うけど。

まずテスト書いてから、実装。
もちろん、実装がない状態でテストかけないなら、実装もやらないといけないけど。
607nobodyさん:2009/05/16(土) 11:14:55 ID:???
最初に書くテストで仕様が全て表現されているか否か、の差だろ
TDDの場合、最初のテストは明らかに不十分なものから始まる
608nobodyさん:2009/05/31(日) 01:08:41 ID:nZt0u9JQ
入力エラーになったテキストフィールドの背景を赤くしたいんだが
どうするのが一番スマート?
609nobodyさん:2009/05/31(日) 08:06:41 ID:???
おれだったら普通にHTMLのHEAD内にJavaScript追加する
610nobodyさん:2009/05/31(日) 19:02:52 ID:nZt0u9JQ
$this->validation->***_error
の存在チェックしてあるなら、
エラー用のCSSクラスを出力するようにしました。

CodeIgniter標準でやってくれればいいのに。
611nobodyさん:2009/05/31(日) 19:06:33 ID:ksNoV5PQ
>610
そのくらいヘルパ関数作れと
612nobodyさん:2009/05/31(日) 19:10:56 ID:nZt0u9JQ
>611
誰にいってる?
613nobodyさん:2009/05/31(日) 21:11:42 ID:???
>>612
誰にいってる?
614nobodyさん:2009/06/01(月) 18:06:37 ID:???
>>613
誰にいってる?
615nobodyさん:2009/06/01(月) 19:16:43 ID:VRCsDIyG
>>614
誰ににている?
616nobodyさん:2009/06/06(土) 10:46:42 ID:???
>>615
きみのすがたは誰ににている?
617nobodyさん:2009/06/06(土) 12:50:27 ID:/u9OVmVh
>>616
いや、それはないよ
618nobodyさん:2009/06/09(火) 13:43:10 ID:???
URIでコントローラファイルやメソッドを指定しても実効されないです(404)。

↓こいつで指定されているやつは実行されるんですけど・・・。
system/application/config/routes.php。

config.phpの設定が何か足りないんだろうか。
619nobodyさん:2009/06/09(火) 13:54:32 ID:???
なんかmod_rewriteがうまく動いていないんじゃないかという気がしてきました。
/hoge/index.php/コントローラ
だと動くんですよね。
620nobodyさん:2009/06/09(火) 14:00:23 ID:???
>>619
設置鯖はsakuraかxserverか?
CGI版PHPを使ってるならphp.iniでfixpathinfoを有効にしないとだめかも。
もしDSO版PHPでダメなんだったら、.htaccessの記述ミスの可能性大。
621nobodyさん:2009/06/19(金) 16:04:41 ID:???
認証は何が定番でしょうか?
FreakAuth? PEAR Auth ? それとも Zend ?
622nobodyさん:2009/06/19(金) 18:01:17 ID:???
>>621
native_session使って自前がいいよ。
「CodeIgniter 認証」とかでググるとサンプルがいっぱい出てくるよ
623nobodyさん:2009/06/19(金) 18:09:27 ID:???
認証の自作ですか。
CSRF 対策も自作している人多いですね。
まー、楽しいですからね。うーん。
624nobodyさん:2009/06/19(金) 22:52:01 ID:???
今ならZFでいいんじゃないですか。pearは古いでしょ。
625nobodyさん:2009/06/20(土) 09:55:52 ID:???
>>624
ありがとうござます。
626nobodyさん:2009/06/20(土) 12:17:20 ID:???
DX Auth 使ってる。定番かどうかは知らん。
627nobodyさん:2009/06/24(水) 17:18:45 ID:???
example.com/page/1
example.com/page/2

という URL で page コントローラに 1 や 2 の引数を取りたいのですが
config/routes.php の $route にどう書けばいいでしょうか。

$route['(.+)/(.+)'] = "$1/$2";

だと page コントローラの function 1() だし、

$route['(.+)/:any'] = "$1";

だと 1 や 2 単体で取得できなくて…。
( $_REQUEST['REQUEST_URI'] には page/1 みたいにはあるけれど )
628nobodyさん:2009/06/24(水) 18:27:23 ID:gwTYImb7
_remap
or
$route['page/(.+)'] = "page/メソッド/$1";
629nobodyさん:2009/06/24(水) 18:48:25 ID:???
>>628
ありがとうございます。
なるほど、メソッドを書けばよかったのですね。

_remap は調べてみます。
630nobodyさん:2009/06/30(火) 09:04:02 ID:???
>>621
FreakAuth使ってる

ただ、ユーザー登録のAPI呼ぶとき、ユーザーにメール飛ぶから注意しろよ。
開発中に100人以上の顧客にメールぶちまけたからなw
ソースあまり読まずに使った俺が悪いんだが
631nobodyさん:2009/06/30(火) 19:05:40 ID:???
>>630
貴重な情報、どうもです!
632nobodyさん:2009/07/07(火) 13:16:25 ID:???
ビューからbase_urlを参照するのって、
いちいちコントローラからビューに渡してあげないとダメ?

controller:
$this->load->helper('url');
$data['base_url'] = base_url();
$this->load->view('index',$data);

view:
<?php echo $base_url; ?>
633nobodyさん:2009/07/07(火) 13:37:23 ID:???
$this->config->config['base_url'] で Ok
634nobodyさん:2009/07/07(火) 13:45:34 ID:U3S+Yk0a
base_url()
でとれる
635634:2009/07/07(火) 13:47:23 ID:U3S+Yk0a
途中で送っちゃった。
その前に↓ね。
$this->load->helper('url');
636nobodyさん:2009/07/07(火) 15:06:52 ID:???
>>633-635
$configで参照したり、ビューから直接base_url()を呼べるのね。
サンクス、勉強になった。
637nobodyさん:2009/07/08(水) 16:27:42 ID:???
system/libraries は application/libraries に My_ を置くことで継承できるけど、
$this->db-> のはどうすれば継承できるでしょうか?

いくつかメソッドが追加したいのです。
638nobodyさん:2009/07/08(水) 16:33:21 ID:???
database/DB.php を見る限り不可能なんでしょうか。
$this->db->query() にいろいろと追加したいのです。
639nobodyさん:2009/07/08(水) 16:36:22 ID:???
カスタマイズなしには出来なさそう
ヘルパー作って$this->dbを引数とする関数とかが無難かな?
640nobodyさん:2009/07/08(水) 16:42:26 ID:???
>>639
なるほど!
ヘルパー利用するのいいですね。
ありがとうございます。
641nobodyさん:2009/07/09(木) 01:20:59 ID:7LA+1qZQ
日本版サイトしんでるな
642nobodyさん:2009/07/13(月) 14:09:48 ID:???
Windows+xamppの環境でメール送信しているのですが、
「451 See http://pobox.com/~djb/docs/smtplf.html.」で送信に失敗します。
間違いがあれば教えて下さい。

$this->load->library('email');
$config['protocol'] = 'smtp';
$config['smtp_host'] = '[SMTPサーバ]';
$config['smtp_user'] = '[ユーザ名]';
$config['smtp_pass'] = '[パスワード]';
$config['smtp_port'] = 587;
$this->email->initialize($config);
$this->email->from([メールアドレス]);
$this->email->to([メールアドレス]);
$this->email->subject('お問い合わせ');
$this->email->message('メッセージ');
if (!$this->email->send()) {
echo $this->email->print_debugger();
}
643nobodyさん:2009/07/13(月) 17:00:49 ID:???
>>642
Qmailならこれを追加してみて。
$config['crlf'] = "\r\n";
$config['newline'] = "\n";
644nobodyさん:2009/07/22(水) 20:45:33 ID:???
CI に DB の継承と、継承可能なビューがほしい><
645nobodyさん:2009/07/24(金) 01:07:54 ID:???
>>644
つ Kohana
646644:2009/07/24(金) 10:52:33 ID:???
Kohana、心動かされる…。
Kohana 2.4 が出たら移植を検討してみる。
647nobodyさん:2009/07/29(水) 16:16:43 ID:???
1.7.1 を使ってます。
ケータイで session 使いたいのですが、いいライブラリありませんか?

ttp://codeigniter.jp/archives/91
ttp://sourceforge.jp/projects/codeigniter/lists/archive/users/2008-January/000240.html

は古くて名前や構造が異なり、そのまま継承できなくって。
648nobodyさん:2009/08/02(日) 15:57:38 ID:???
ra_sessionってやつがあったような。
ただHttpsがアレだった希ガス。

649647:2009/08/03(月) 11:22:05 ID:???
>>648
ありがと
650nobodyさん:2009/08/06(木) 17:01:14 ID:???
Rapyd Frameworkなんだけど、これ、インスコ方法もろくに書いてないのな。
ぐぐるとCI1.5用のインスコ情報は出てくるんだけど、1.7はドキュメント無いの?
651nobodyさん:2009/08/06(木) 17:12:58 ID:???
1.7てなんだ。
1.6だた。
652nobodyさん:2009/08/06(木) 17:36:06 ID:???
失礼、rapydはCIのサポートをやめてたのね。が〜ん。
http://codeigniter.com/forums/viewthread/71419/
653nobodyさん:2009/08/26(水) 11:24:27 ID:???
Kohana 2.3.4 の質問です。
あるライブラリを毎回読むにはどうすればいいでしょうか。
CI でいうところの autoload です。

ttp://blog.setunai.net/20080203/kohana%E3%81%AEautoload/

の方法は今のバージョンでは動かなくて。
654nobodyさん:2009/08/28(金) 03:55:27 ID:???
>>653
KohanaはModel・Libraryの取り回し重視の設計思想、いわゆるautoloadは廃止の方向で動いてるね。

おれもKohana使いだけど、

・ちょこちょこ小技的につかうものはstaticな「Library」として用意
・controller内複数methodで使い回す「Model」があるなら、controllerのconstructorでpublicなオブジェクト変数へModel代入、同controller内で$this->objとかで使い回し
してる。

複数controllerで特定のModel使い回したいなら、MY_ControllerクラスでContorollerをextendsして、Model代入。

どですか。
655653:2009/08/28(金) 10:47:51 ID:???
>>654
ありがとうございます。
『staticな「Library」として用意』とは具体的にどういうことでしょうか。

Kohana が用意している session や、
自作ライブラリを読み込みたいのです。

# Kohana 3 が楽しみ。
656nobodyさん:2009/09/01(火) 16:58:23 ID:???
フォームに name='hoge[moge]' とかの配列使いたい場合はValidationはどうすればいいんでしょうか?
657nobodyさん:2009/09/03(木) 06:30:29 ID:4RGaiYfn
Kohana使い結構いるのかもしかして?

>>655
Moduleにしてconfigで設定すればよくね?
658653:2009/09/03(木) 10:48:17 ID:???
>>657
そういうことですか。ありがとうございます。
659nobodyさん:2009/09/04(金) 19:02:54 ID:???
CIのコントローラ、モデルで共通に使いまわす機能を作ったとして、どこにおけば良いでしょうか?
自作ライブラリを作って、コントローラー、モデルから呼び出せば良いんでしょうか?
660659:2009/09/04(金) 19:34:42 ID:???
CI1.7.1で実験してみて、自作ライブラリの機能は、コントローラーからでも、モデルからでも呼び出して使えることが分かりました。
共通して使う機能は、自作ライブラリに入れてみます。

どうもありがとうございました。>>660
661nobodyさん:2009/09/05(土) 19:09:27 ID:8sV7cZ1f
結局xss_cleanって何してる関数なの?
htmlspecialcharsじゃなんでいかんの?
662nobodyさん:2009/09/05(土) 23:30:12 ID:38IFG8Qi
>>661
JSに罠がいっぱいあるから
663nobodyさん:2009/09/15(火) 16:59:10 ID:???
1.7.2が出てるぽぃ。
664nobodyさん:2009/09/24(木) 07:16:33 ID:???
2年で1スレも消費してないなんて
665nobodyさん:2009/09/24(木) 10:15:11 ID:???
いいフレームワークだし、使ってる人はそれなりにいると思うんだけど、
初心者はこんなマイナーなの使わないだろうから質問が少ないんだろうな。
666nobodyさん:2009/09/24(木) 10:31:59 ID:???
さらにマイナーなKohanaがv3.0公開

つってもDocs英語ですらまとまってない状態だけど。。
667nobodyさん:2009/09/24(木) 11:59:52 ID:???
Kohana v3、ディレクトリ構成も随分と変わったなぁ。
もはや別物。
エラー画面でソースが出るのが便利。
668nobodyさん:2009/10/06(火) 12:00:18 ID:o5fGVlDs
>>179
スコープ内でライブラリ呼ぶ限りは無問題
669nobodyさん:2009/10/08(木) 21:36:50 ID:???
日本語サイトから1.7.1を落としたらsystemフォルダにほとんど
ファイルが入ってないけどこれって差分ファイル?
670nobodyさん:2009/10/09(金) 07:51:44 ID:???
>>669
そら日本語のメッセージファイルじゃねえ?
本サイトから落とさないとダメかと。
671nobodyさん:2009/10/09(金) 09:41:50 ID:pt4+2DyF
>665
質問しなきゃならないような、
使い勝手の悪さがないからねえ。


「専門家」はそれでは困るんだろうけど。
672nobodyさん:2009/10/09(金) 14:40:46 ID:wOhLydxi
簡単すぎると質問がなくなって、スレがもりあがらなくて
廃れていくというのも何か悲しいもんだな。
673nobodyさん:2009/10/11(日) 02:46:39 ID:SfXKxhoo
>>672
ダメなものの方がやり取りがあって盛り上がるってのもおかしな話なんだけどね。

俺はGentooにLighttpdにCIにPostgresql使ってる異端児だけど
こんな使いやすい組み合わせはないと思ってる。
泣き所は、問題が起こったとき、解決策を見つけにくいことだけど
問題そのものがあまり起こらないので、不便もあまりない。
でも、世のひとは解決策がたくさん検索できる、使いにくいシステムの方を好むらしい。
より多くの時間とお金をかけたい理由ってなんだろう?と考えてみたら
要はこういうことじゃないかという結論になった。
趣味は手がかかった方が楽しいからダメシステムがむいてる。
仕事なら、他人にはできなかったりめんどくさい方が自分のニッチを守りやすいから、
ある程度のダメシステムが都合がいい。
だからいいシステムは盛り上がらない。
そんな見方は穿ちすぎですか?

そういえば、qmailは秀逸でシェアが高いけど、
簡単すぎるのとマニュアルが必要十分なので、あまり盛り上がらない。
まあ、ダメシステムのsendmail派は、設定ファイルを共有できる
postfixを好むようだけど。
674nobodyさん:2009/10/12(月) 10:01:42 ID:5Z3pkv5p
「codeigniter徹底入門」て本読んで試したみたけど、参考書として
あまりわかりやすくない。
もっとわかりやすい参考書がどんどん出てくれば日本で流行るのかも。

675nobodyさん:2009/10/12(月) 10:22:41 ID:???
>>674
編集側がサボっている感じ。
はじめて本を書いた人ばかりのようだから
コードがページをまたがないようにとか、
もっとフォローをするべきだよなぁ。
676nobodyさん:2009/10/12(月) 17:27:37 ID:dQEfU/HG
著者じゃないが、なんか済まない。
677nobodyさん:2009/10/12(月) 18:55:58 ID:/S6pjLQj
>>676
なんで、謝るんだよw
678nobodyさん:2009/10/12(月) 18:58:53 ID:???
アマゾンでは絶賛だったからちょっとこっち使ってみようかなと思ったりしてたけど・・・
CAKE入門中
679nobodyさん:2009/10/13(火) 08:49:30 ID:nKWEiPKF
>>678
IBMのひとが書いてるオンライン記事がわかりやすいよ。
ひととおり読んだら概略がつかめる。
680nobodyさん:2009/10/13(火) 10:20:48 ID:sLQo61tu
>>674
そう?一通りのことは書いてたのであれで十分かと思ったが。
著者にあったことあるけど、まじめそうな人ではあった
681nobodyさん:2009/10/13(火) 12:31:36 ID:???
マトモだし分かりやすいと思ったけどな。
もっと分かりずらかったりと嘘ばっかの本なんて、いくらでもあるよ。
682nobodyさん:2009/10/13(火) 22:18:03 ID:UwuOzcz/
>680

俺のスキルが低すぎるせいかな。

googleのトレンド検索で見ると良い傾向で増えてるね。

ttp://www.google.co.jp/trends?q=codeigniter%2Ccakephp%2Czendframework%2Csymfony&ctab=0&geo=all&date=all&sort=0

zendframeworkが低すぎる気がする
683nobodyさん:2009/10/13(火) 23:58:54 ID:nKWEiPKF
ホームページでマニュアルを見ようとすると、
上の方からずりずりっと降りてくる感じになってるけど
あれはどうゆう技をつかってるのですか?
684nobodyさん:2009/10/14(水) 00:00:56 ID:???
ajax
685nobodyさん:2009/10/14(水) 03:25:54 ID:???
>>682
zend framework
   ↑
だから
686nobodyさん:2009/10/14(水) 04:13:48 ID:???
>>684
ちゃんと意味分かってajaxって単語使ってる?
687nobodyさん:2009/10/14(水) 04:15:03 ID:???
>>686
略さないで言えって言われたらよくわからんが・・・まぁだいたい
688nobodyさん:2009/10/14(水) 06:14:36 ID:???
>>687
CIにそうゆう機能があるの?
689nobodyさん:2009/10/14(水) 07:15:01 ID:???
>>688
さぁ・・・CIユーザーじゃないのでわかりません。
でもだいたいのframeworkにはあるんじゃないかな
690nobodyさん:2009/10/14(水) 07:49:01 ID:???
ajaxなのか!と驚いてソースみたら違った。
691nobodyさん:2009/10/14(水) 10:23:41 ID:???
ただのjsだな
692nobodyさん:2009/10/14(水) 10:55:58 ID:???
でもかっこいいな。
693nobodyさん:2009/10/14(水) 11:18:28 ID:t3/QQLCE
ajaxと只のjs4どう違んですか?
694nobodyさん:2009/10/14(水) 11:23:30 ID:???
ググレカス
695nobodyさん:2009/10/14(水) 22:38:32 ID:t3/QQLCE
ケチ
696nobodyさん:2009/10/15(木) 05:53:06 ID:???
アシンクロナス
ジャバスクリプト
XML


要するに埋め込み画像の要領でXMLをとってくるわけだね?
697nobodyさん:2009/10/16(金) 09:04:01 ID:oQRbn+uE
ほんっとに話題ないの〜
698nobodyさん:2009/10/18(日) 22:35:11 ID:tagphLPV
アクティブレコードって使う?
クエリをそのまま書くのに比べてご利益があるようには思えないんだけど
デバッグしやすいとかあんのかな?
699nobodyさん:2009/10/18(日) 23:06:05 ID:???
DBアクセスは結局どっかのクラスに隔離するわけで。
それを洗練させていった結果がああなる、というだけだろう。
俺もあまり使わないな、SQLがベタで書いてあったほうが分かりやすい。
700nobodyさん:2009/10/19(月) 10:13:06 ID:???
以前見たソースで、アクティブレコードの記述の上に
SQLでコメントが書いてあったのを見たことがある。
全くもって意味無し。
701nobodyさん:2009/10/19(月) 10:45:46 ID:9ICBcuC7
CIを使ったレイアウトについて質問があります。

header,
body,
footer

というレイアウトは簡単にできますが、

header
left center right
footer

というようなレイアウトを作るには
どうしたらよいのでしょうか。

ググレカスと言われそうですが、
どういうキーワードでググればいいのかも
見当がつかないで困っています。
よろしくお願いします。
702nobodyさん:2009/10/19(月) 10:55:53 ID:???
float使え
703nobodyさん:2009/10/19(月) 11:17:37 ID:???
助かりました。CSS の float 勉強してみます。
704nobodyさん:2009/10/23(金) 08:18:34 ID:4xcNwzE4
質問です。


画像データから直接画像を生成する方法ありませんか?

画像操作ライブラリはファイルからの生成しかできないようなのです。
よろしくお願いします。
705nobodyさん:2009/10/23(金) 09:00:38 ID:???
PHPから勉強した方が
706nobodyさん:2009/10/23(金) 10:22:44 ID:4xcNwzE4
>>705
PHPにその機能があるのですね。
ありがとうございました。
707nobodyさん:2009/10/23(金) 14:22:48 ID:???
レンタルサーバー(PHP4+MySQL4.0)にCI1.7.2日本語版を入れて使ったら、ちょっとエラーが出ました。

(1)データベース関係のエラー
MySQL4.0は文字コードを指定できないので、
/CodeIgniter/system/database/DB_driver.php
の145行目から150行目の「文字コード」の処理をコメントアウトしました。
具体的には↓
if ( ! $this->db_set_charset($this->char_set, $this->dbcollat))
{
 return FALSE;
}
という部分です。

(2) アロー演算子の使い方
PHP5でCI1.7.2を使った場合、
$sql = "SELECT name FROM user WHERE id = ?";
$param = array($user_id);
$query = $this->db->query($sql, $param);
$name = $query->row()->name; // ※アロー演算子(->)を連結して使用可能

という具合にアロー演算子を連結して使用できたのですが、PHP4だとエラーになりました。
$name = $query->row()->name;
ではなくて、
$row = $query->row();
$name = $row->name;
と2行に分けて、アロー演算子を連結しなければOKでした。

PHPのマニュアル見ても説明が見つけられないorz
http://jp.php.net/manual/ja/language.oop5.basic.php
オブジェクト内のメソッドやプロパティを指定する際の、ポインタやスコープが違うんでしょうか?
解説ページがあったら教えてください。
708nobodyさん:2009/10/23(金) 22:37:02 ID:4v117FRK
質問があります。

DBに入っている画像データのバイナリから、
ファイルを介さず直接サムネールを生成する方法はないでしょうか。

画像そのものを出力したり、ファイルやURLからサムネールを
生成する方法はあちらこちらに書いてあるのですが、
バイナリを直接GDに食わせる方法の記述を見つけられません。

Perlでは簡単にできるのに、PHPではできないということなのでしょうか。
709nobodyさん:2009/10/24(土) 00:37:23 ID:???
>>708
imagecreatefromstringはどう?
710nobodyさん:2009/10/24(土) 10:26:53 ID:???
日本CodeIgniterユーザ会にある
「日本語言語パック」というパッチのような物をあてないと
ちゃんと使えないんですかね?

今利用を検討しているんですが、できるならパッチをあてないで利用したいんですが。。。
711nobodyさん:2009/10/24(土) 18:08:33 ID:???
パッチ当てなければいいと思うよ
712nobodyさん:2009/10/24(土) 20:38:49 ID:???
>>711
パッチを当てない場合、日本語のサイトを作る時どんな問題がありますか?
713nobodyさん:2009/10/24(土) 20:48:02 ID:???
やってみたらええねん
714nobodyさん:2009/10/24(土) 20:50:41 ID:???
うむおれKohanaに移行済みでCIはうろ覚えだがメール関係にパッチされてたよーな気がする
715nobodyさん:2009/10/24(土) 22:15:23 ID:???
>>714
と言う事はcodeigniter本家からの
ダウンロード版では日本語を正しくメールできないという事???

もしそうなら、本当にダサ 何だそれって感じだ。
716nobodyさん:2009/10/24(土) 22:25:43 ID:???
むしろ日本語メール正しく送信できるフレームワークがあるのかと
どのフレームワークも件名化けたりする
717nobodyさん:2009/10/24(土) 22:31:08 ID:???
>>716
UTF-8で送信してもかい?

718nobodyさん:2009/10/24(土) 22:38:00 ID:???
全部UTF8にすればいいだけで可能だな
719nobodyさん:2009/10/24(土) 22:54:19 ID:TTN2cu8l
>>709
できました。
ありがとうございました。
720nobodyさん:2009/10/24(土) 22:57:13 ID:TTN2cu8l
>>709
補足です。
できたんですが、データベースドライバが余計なことして
バイナリをエスケープ文字列にエンコードしてたので、
デコードして渡してやる必要がありました。
721nobodyさん:2009/10/25(日) 12:12:30 ID:???
CakePHPと比べた場合CodeIgniterが勝る所と劣る所を調査中です。
ご協力を。。。

722nobodyさん:2009/10/25(日) 13:42:05 ID:???
使うお前が人に聞かないと違いがわからないのなら
どっち使ってもいいんじゃないの
723nobodyさん:2009/10/25(日) 13:43:14 ID:XqTgHkg+
>>721
> CakePHPと比べた場合CodeIgniterが

勝る所

速度
柔軟性
最小限の知識で開発を開始できる


劣る所

無理やり規則に従わせることができない。
724nobodyさん:2009/10/25(日) 13:51:58 ID:???
>722
道が分からない時は人に聞くのが一番良いだろう
725nobodyさん:2009/10/25(日) 14:06:37 ID:???
開発者なら自分で調べる力がないと駄目なんじゃないの?
道順は目的地にたどり着くこと自体が目的だろうけど、
違いを調べるってのは仕組みを理解すること自体が目的なんだし。
726nobodyさん:2009/10/25(日) 14:45:13 ID:???
>>712
言語パック入れないと、CIのDBクラスのエラーメッセージ、Form_Validationのエラーメッセージ等が英語のままに
なる。CIのDBクラスを使わない(PearとかPDOとかO/Rマッパーを使う等)・Form_Validationを使わないなら言語パック
は全く関係ないはず。
というか、O/Rマッパー使い+Validationは自前クラス使用の私は言語パック入れずに使ってます。特に困ったことなし。

>>715
メールはそもそも言語パック入れても解決しなくない?

コントローラ内でmb_send_mail関数を使うか、mail関数をラップする自作ヘルパでも入れれば大丈夫。
application/librariesにphpmailerとか自作のメールクラスとか入れて使ってもいいし。
ちなみにPHPではCIの前にsymfonyとcakeを使ったことがあるけど、どちらも日本語メールはデフォルトの
メールの送り方では文字化けした。国産フレームワークじゃない限り期待しない方が良い。
727nobodyさん:2009/10/25(日) 15:29:15 ID:???
>>726
多分その言語パック(パッチ)内でmailがmb_send_mailに変更になってたり
dateがstrfdateになってたりしてるんじゃ?

まあ自分で対処しても同じのはそのとおりだが
728nobodyさん:2009/10/25(日) 15:30:41 ID:???
つかソースみろよって話だw
729nobodyさん:2009/10/25(日) 20:00:58 ID:XqTgHkg+
ciを使ったdbアクセスについて質問です。
ランダムなレコードを得ようとして下記を実行すると
得られるレコードが毎回一定になってしまいます。

$this->db->query("select * from mytable order by random limit 1");


psqlのコマンドラインから直接sqlを打つとランダムな結果になります。
一回ごとにpsqlを抜けてもきちんと各回ごとにランダムになります。


ci経由でランダムにならないのがどういう理由かわからずに困っています。
ご教授ください。
730nobodyさん:2009/10/25(日) 21:00:58 ID:???
>>729
DBの設定ファイルでcache_onがtrueからかも。まぁ試してないけど。
731nobodyさん:2009/10/26(月) 01:08:16 ID:???
CodeIgniterで、テンプレートの一部分だけをキャッシュすることはできますか。
またもしできたとして、その一部分を表示するときにだけ必要なデータはどのように渡しますか。
つまり
<!-- ここからキャッシュ する-->?x2028;<?php foreach ($list as $x) { ?>
<p><?php echo $x; ?></p>
<?php } ?>?x2028;<!-- ここまで -->
というテンプレートの場合、表示するときには$listが必要ですが、キャッシュが効いているときは
$listは必要ないので、こういうときは$listを用意したくないんですけど、そんなややこしいことはできるでしょうか。

?x2028;
732nobodyさん:2009/10/26(月) 22:20:23 ID:8gDLhYd4
>>730
ビンゴ!でした。
デフォルト設定のままにしてたので全く考えもしませんでした。
たすかりました。ありがとうございます。
733nobodyさん:2009/10/26(月) 23:34:34 ID:???
>>731
出来ない、と思う
なので、おれは自作でコントローラ内で
キャッシュチェックして、必要があればHTML生成、なければキャッシュからって感じでやってる。
734nobodyさん:2009/10/27(火) 15:19:56 ID:NhIspLrL
ARでPostgreSQLの配列に対する演算はできないのでしょうか.
具体的には↓こんな操作をしたいのですが,

SELECT * FROM mytable WHERE '{abc}' && hairetsu;

次の文ではうまくゆかないようです.

$this->db->get_where('mytable', array("'{abc}' &&", "hairetsu" ));

また,これに相当するようなARメソッドはマニュアルには書かれていないようです.
735nobodyさん:2009/10/27(火) 20:43:28 ID:???
kohanaって言うのはどんなもんなんでしょうか?
日本語サイトを作るのに何か問題があるでしょうか?
codeigniterを使うか、kohanaを使うか迷っています。

736nobodyさん:2009/10/28(水) 09:57:15 ID:yVI01h7O
>>734
自己解決しました。
get_whereでなく、単独のwhereを使えばよいようです。
737nobodyさん:2009/10/28(水) 10:31:55 ID:???
>>735
kohanaいいよ。新しいだけあってかなり洗練されてる。
ただ3.0に関してはDocsが揃ってない。日本語に関しては全く問題なし。
738nobodyさん:2009/10/28(水) 13:37:17 ID:???
kohanaはCIよりいいですか?
739nobodyさん:2009/10/29(木) 22:30:02 ID:9YMY5qNb
皆さんは、テンプレートエンジンを使いますか?
使うとすればどんなのがいいのでしょう?
Ajaxはどうですか?
740nobodyさん:2009/10/29(木) 22:36:11 ID:???
釣りだよね?
釣りだと言ってくれ
741nobodyさん:2009/10/29(木) 22:42:17 ID:9YMY5qNb
書き方が悪かったようです。すみません。


テンプレートエンジンとAjaxライブラリはどんなのを使ってますか?
と書くべきでした。
SmartyとかPHPTALと組み合わせるというのは見つけたのですが
どんなもんなのかと思いまして。
Ajaxについてはあまりわかりませんでした。
742nobodyさん:2009/10/29(木) 22:55:25 ID:???
テンプレートエンジンなんて今時あしかせにしかならんよ
743nobodyさん:2009/10/30(金) 00:30:08 ID:p/L2o0l6
そーなんですか?
存在意義なし?
744nobodyさん:2009/10/30(金) 00:59:55 ID:???
DreamWeaverとか今時はPHPとかJSPとかASPに対応してるし
どの言語にしたってテンプレートエンジンは流行ってないな
745nobodyさん:2009/10/30(金) 09:23:35 ID:p/L2o0l6
CIと相性のいいAjax用のライブラリはないのですか?
746nobodyさん:2009/10/30(金) 10:23:31 ID:???
客からの指示で、smarty必須ってなってる場合も多いんだよ。
747nobodyさん:2009/10/30(金) 10:25:30 ID:???
自分で全部やれるなら楽だよな。
フレームワークが何だろうが、そんなの関係ないし。
748nobodyさん:2009/10/30(金) 11:44:13 ID:+JS8PV0u
>>745
相性がいいかどうかわからんけど、Ajaxフレームワーク比較
ttp://journal.mycom.co.jp/news/2008/10/08/034/index.html
749nobodyさん:2009/10/30(金) 11:52:50 ID:???
何がいいかの質問で、俺は客にテンプレート指定されてるとか答える意味が解らん
750746:2009/10/30(金) 12:14:52 ID:???
>>749
お前アホか?
>>742-744の流れに対するレスだよ。
751nobodyさん:2009/10/30(金) 12:27:07 ID:???
smartyをAjaxライブラリに対する回答だと思うのはさすがに・・・
752nobodyさん:2009/10/30(金) 14:50:51 ID:???
>>750
テンプレートエンジンを使うとすればどんなのがいいのでしょう?

使わないのがいいでしょう

客からの指示で、smarty必須ってなってる    ←意味不明
自分で全部やれるなら楽だよな         ←意味不明
(これから採用する人の話であってお前の客の話なんて知ったこっちゃない)
753nobodyさん:2009/10/30(金) 15:25:15 ID:???
頭が悪いのがいるな。
754nobodyさん:2009/10/30(金) 15:27:02 ID:???
わざわざ蒸し返すなや
誰が正当かなんてどうでもええねん
755nobodyさん:2009/10/30(金) 22:06:59 ID:p/L2o0l6
要するにテンプレートエンジンは不要なのですね。

AjaxのほうはjQueryが軽量コンパクトを売りにしてて伸び盛りのようです。
同じく軽量コンパクトを売りにしてるCIとはベストマッチじゃないでしょうか。
756nobodyさん:2009/10/30(金) 22:11:18 ID:???
必要かどうかは人それぞれだろ。
757nobodyさん:2009/10/30(金) 23:37:06 ID:???
軽量コンパクトがいいのか高機能がいいのかも提示せずに
相性云々言われても困るんだけど
ぶっちゃけAjaxライブラリにとってはサーバサイドのアプリケションが
何で書かれてようが知ったこっちゃ無いんだし相性もクソも何もない
758nobodyさん:2009/10/31(土) 00:32:11 ID:???
jQueryは軽量でもコンパクトでもない。
ありがちな操作を、最小のコード量で書く事に特化していて、かつ習得しやすいので普及率が高いだけ。
(そういう意味では、設計思想がPHPに近いのかもな、今思いついたが)
だから、jQueryに「できないこと」に手を出そうとすると非常に面倒になる。

それと、JavaScriptライブラリが軽量でコンパクトである事と、PHPフレームワークが軽量でコンパクトである事の関連性が良く分からない。
軽量フレームワークと軽量JSライブラリで、なんで「相性が良い」という結論になるんだ?
相性が悪いと言ってるわけじゃなく、単に論理展開、関係性が良く分からない。

つうか、ざっと簡単なアプリなり小物ライブラリでも作ってみりゃいいだろ。
机上の空論で初心者がライブラリの良し悪しを判別できるわけがない。
759nobodyさん:2009/10/31(土) 00:51:18 ID:???
なんだか、ケチつけたいだけの輩が巣食ってるらしい。
760nobodyさん:2009/10/31(土) 01:07:41 ID:???
そうだねjQueryがいいねとか嘘ついても仕方ないだろ
駄目なものは駄目と言うしかない
761nobodyさん:2009/10/31(土) 08:09:34 ID:???
駄目なんて誰も書いてないだろ。
わけのわからん基準で良い悪いを決める話じゃないってことだろ?

あれだ、本質を理解した上で用途に合わせて判断しろっていう、
当たり前のことを行ってるだけだ。
762nobodyさん:2009/10/31(土) 09:42:56 ID:RCXnHmtW
なるほど、jQueryはダメなのか。
どこがどうダメなんですか?


本質を理解した上で用途に合わせて判断ですか。
ご自身は本質を理解して判断されているのですね。すばらしい。
私には何が本質で何を基準に判断したらいいか皆目見当がつかないのですが
どんなところに注目すれば、本質を理解できるのでしょうか?
判断の基準は、例えばどんなところにおかれているのでしょうか?

763nobodyさん:2009/10/31(土) 09:55:01 ID:???
764nobodyさん:2009/10/31(土) 10:41:20 ID:???
jQueryでいいと思うよ。
というか、prototype.jsとの2択しか無い気がするが。
勉強するんだったら、このどっちかにしとくべき。
結局は、オープン系は何を使うにも主流どこに乗っとかないと
後々面倒だよ。スクラッチで作れるだけの力が無いのであれば。
765nobodyさん:2009/10/31(土) 13:52:37 ID:???
で、GET使えるようになったの?
766nobodyさん:2009/10/31(土) 15:11:23 ID:RCXnHmtW
>>764
参考になりました。
ありがとうございます。


>>765
jQueryはGET使えないの?

だとしてもCIはデフォルトでGETを使わないようになってるから
問題ないと思います。

767758:2009/10/31(土) 17:33:58 ID:???
>762
> どんなところに注目すれば、本質を理解できるのでしょうか?
何かができるものは、絶対に何かを犠牲にしている、という点。
俺の書き込みが「jQueryはダメ」に見えたのなら、それはお前の経験不足。俺はjQuery信者だからな。
あと、理解したいならガタガタ抜かさずコード書け。

protojsとjQueryは併用できるしどっちかを選ぶようなものじゃないが、単独で込み入ったものを作るならprotojsが圧倒的に強い。
ただし>758でも書いたように、8割方のケースではjQueryのほうが圧倒的に早く作れる。
つまりどっちが向いているかは、どこまでをJSで処理し、どこからをサーバーサイドで処理するかによる。
768nobodyさん:2009/10/31(土) 20:31:41 ID:???
>>766

>>765はCIの話だろう
769nobodyさん:2009/10/31(土) 20:41:12 ID:RCXnHmtW
>>767
よくわかりました。ありがとうございます。
八割方のケースでjQueryが早くできること、
込み入ったことはprotojsが向いていることがわかって助かりました。
まあ、GoogleがjQueryを採用しているらしいので、
できないことというのも相当特殊なものかもしれません。


あと、その、サーバサイドでやることが、CIで補完しやすいとは限らないということですね。
770nobodyさん:2009/10/31(土) 23:32:42 ID:???
>>767
この手のが一番疲れる。ある程度はできるから。
771nobodyさん:2009/10/31(土) 23:50:09 ID:???
>>768
CIではGETを使えるので、そこを問題にしていたとは気づきませんでした。
デフォルトではセキュリティ上の理由から使えないようにしてあると
初期設定のチュートリアルにかかれてます。
772nobodyさん:2009/11/01(日) 21:33:49 ID:???
mootoolsも忘れないで

っていうかスレ違いなんだぜ
773nobodyさん:2009/11/02(月) 14:12:06 ID:???
CIのGETの話題が出たので便乗させていただきます。

CodeIgniterの検索ページで、ページ送りするとき、検索条件をどうやって次のページに持っていってますか?
=PCサイトと携帯サイトの違いをうまく処理したいです。
(携帯サイトは作ったことがないので、これからチャレンジすることになります。)

・日本のガラパゴス携帯のサイトは、基本的にクッキー無しという前提で作る。
・ページ間の遷移で、何らかの方法でセッションIDを持たせる。
・セッションIDに基づいて、サーバー側でセッション情報を保持しておき、セッション情報の中に検索条件を持たせておく。
こんな感じでOKでしょうか?

それで問題は、CIでセッションIDをどこに持たせるのか?
(1) POSTの場合
・デフォルトのCI設定で問題なし

(2) GETの場合
(2-1)・GETをOKの設定に変更する。 →これだとCIのURLヘルパーが使えなくて嬉しくない?

(2-2)・base64方式で、検索条件をエンコードして、URLのセグメントに無理やり埋め込む →URLに使える文字列長は上限があるので限度がある。
ttp://sourceforge.jp/projects/codeigniter/lists/archive/users/2009-March/001786.html
ttp://support.microsoft.com/default.aspx?scid=kb;ja;208427
GET メソッドを使用する場合、最大文字数は 2,083 文字に制限されます (実際のパスも含めた文字数)。

(2-3)・hookを使って、GETをPOSTに入れてしまう。→何かセキュリティーを考慮しなきゃいけない?=独自のバリデーターを用意するとか?
ttp://www.ryuzee.com/contents/blog/734

今のところ(2-2)で対応できていますが、検索条件が多くなったらどうしよう…><
774707:2009/11/02(月) 14:19:16 ID:???
自己解決しました。
=CI1.7.2のマニュアルに説明がありました。

ttp://codeigniter.jp/user_guide_ja/database/active_record.html#chaining
メソッドの連結を使えば、複数のメソッドをつなぐのがシンプルになります。
Note: メソッドの連結はPHP5 でのみ動作します。

CIは、PHP5とPHP4の違いを吸収するような便利な機能が提供されてますね。
ttp://codeigniter.jp/user_guide_ja/helpers/compatibility_helper.html
互換性ヘルパファイルには、PHP 5でしか実装されていないネイティブな関数と定数を、PHP 4でも実行できるものが含まれています。
これを使うことでPHP 4にしか対応していないサーバー上のアプリケーションでも、PHP 5のネイティブ関数を使うことができるようになります。

WebサーバがPHP4だから助かるな〜
775nobodyさん:2009/11/02(月) 14:19:28 ID:???
GETを有効にするに3票
776nobodyさん:2009/11/02(月) 14:24:46 ID:???
>>741
CIには簡易のテンプレート機能が用意されてるから、それ使ってみれば?

ttp://codeigniter.jp/user_guide_ja/libraries/parser.html
テンプレートパーサクラスを使うと、ビューファイルに含まれる擬似変数を解析できます。
ビューページで純粋なPHPを使う方が少し早いので、CodeIgniterでは、このクラスを必ずしも 必要としません。しかし、PHPのコードで混乱してしまうデザイナーと一緒に仕事をしている場合、開発者の中には、テンプレートエンジンを使用したい人もいると思います。

ドリームウィーバーでHTMLが崩れなければ、Smartyは要らないよ(^^)v
777nobodyさん:2009/11/02(月) 22:26:52 ID:???
GET使えないとか不便なんだよな。
別に禁止にしなくても・・・。
778nobodyさん:2009/11/02(月) 22:48:46 ID:WSpfQV0j
>>777
デフォルトでオフなだけで禁止はされてないよ?
オフのままでもセグメントで指定できるから不便もないと思うけど。
779nobodyさん:2009/11/03(火) 03:12:02 ID:???
?guid=onさえなければ、良い設計だと思うよ…
PC版のみのサイトなら安心して使える。

今、携帯対応するのにindex.phpの冒頭で$_GET['guid']がセットされていたらunsetする処理を
足して使ってる。我ながら情けないけど、他にうまい手段が見つからない。
780nobodyさん:2009/11/03(火) 12:01:34 ID:???
スレ先を悩んだのですが、
Kohana をさくらで動かしている方がいそうなここで伺います。

さくらインターネットのマルチドメインでサブドメインの
ディレクトリを /home/myaccount/www/sub で指定しています。
( sub/ のように後ろに / は付けていません )

/home/myaccount/www/sub/index.html は
ttp://sub.example.com/ でちゃんと見えています。

ここに Kohana を入れて下記 mod_rewrite を設定しました。

$ cat /home/myaccount/www/sub/.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule .* index.php/$0 [PT,L]
RewriteRule ^(.*)$ index.php/$1 [PT,L]

ttp://sub.example.com/index.php/test/ は正しく出るのですが、
ttp://sub.example.com/test/ では「No input file specified. 」と出てしまいます。

CI を真似て php.ini に cgi.fix_pathinfo=1 を設定しています。
CI では $config['uri_protocol'] = "PATH_INFO"; なんてあるらしいのですが、Kohana では見当たらず。

Kohana をさくらで動かしている方、アドバイスお願いします!
781nobodyさん:2009/11/03(火) 12:20:06 ID:???
RewriteRule ^(.*)$ ./index.php/$1 [PT,L]
これでどうだろ
782780:2009/11/03(火) 12:44:55 ID:???
>>781
ありがとうございます。
やはり「No input file specified. 」です…。
783780:2009/11/03(火) 12:57:34 ID:???
いろいろと試行錯誤中です。
RewriteBase をコメントアウトさせると

The requested URL /sub/index.php/ranking/ was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

となりました。何かこれで分かる方とかいらっしゃいますか。

RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule .* index.php/$0 [PT,L]
#RewriteRule ^(.*)$ index.php/$1 [PT,L]
RewriteRule ^(.*)$ ./index.php/$1 [PT,L]
784nobodyさん:2009/11/03(火) 13:04:21 ID:???
785780:2009/11/03(火) 13:13:37 ID:???
>>784
ありがとうございます。
blog を参考に

RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
#RewriteRule ^(.*)$ ./index.php?/$1 [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]

としたのですが、 /index.php?/ の ? があるためか
「Disallowed key characters in global data.」が出ます。

? を外すと、やはり「No input file specified. 」に…。
786nobodyさん:2009/11/03(火) 13:25:22 ID:???
「Disallowed key characters in global data.」でいろいろググって
ttp://forum.kohanaphp.com/comments.php?DiscussionID=1723
を見つけました。

RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.+)$ /index.php?kohana_uri=$1 [L]

で一部表示!
「一部表示」というのは CSS や JavaScript のパスが解釈できていないため
デザインなどがガタガタなのです。とはいえ一歩前進です。
RewriteCond などを見直してみたいと思います。

いろいろとアドバイスをくれた皆様、本当にありがとうございます。

mod_rewrite は苦手なので試行錯誤をしていますので、
もし、こうだよ、とあれば引き続きよろしくお願いいたします。
787780:2009/11/03(火) 13:45:23 ID:???
さくらインターネットのマルチドメインのサブドメイン環境で、
/ で動かす mod_rewrite は下記でうまくいきました。

RewriteCond %{HTTP_HOST} sub\.example\.com
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /index.php?kohana_uri=$1 [PT,L]

アドバイスを頂いた皆様には重ねてお礼申し上げます。
ありがとうございました。
788nobodyさん:2009/11/04(水) 09:25:44 ID:qw3iX5XK
>>758
> jQueryは軽量でもコンパクトでもない。

ホームページ冒頭にかいてあるけど?

jQuery is a fast and concise Javascript library...


自己宣伝だから全面的に信じるべきとはいわないが
この宣伝は無根拠なわけでもない。

ケチつける前に勉強した方がいい。
789773:2009/11/04(水) 14:30:18 ID:???
>(2-2)・base64方式で、検索条件をエンコードして、URLのセグメントに無理やり埋め込む

追記です。
base64でエンコードした文字列のままだと、デフォルトのCIのURLで使えない文字が含まれてしまいます。

http://ja.wikipedia.org/wiki/Base64
Base64は、データを64種類の印字可能な英数字のみ
A?Z, a?z, 0? までの62文字と、記号2つ (+ , /) 、さらにパディング(余った部分を詰める)のための記号として = が用いられる。

CI → $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
なので、base64の「+」「/」「=」をそれぞれ「-」「_」「:」等に置換すれば、CIのURLのセグメントとして使えます。=URLのセグメントをGETとして利用可能

(例)CI用にカスタマイズしたBASE64(ヘルパー関数に配置)
if ( ! function_exists('my_base64_encode'))
{
 function my_base64_encode($str)
 {
  $str = base64_encode($str);
  $str = str_replace('+', '-', $str);
  $str = str_replace('/', '_', $str);
  $str = str_replace('=', ':', $str);
  return $str;
 }
}

これと同様にデコードする関数を用意すればOK
790nobodyさん:2009/11/04(水) 18:22:08 ID:???
>>789
普通にURLエンコードじゃなんでダメなの?

検索条件の保持は、検索条件内容をDBにぶちこんで、そのIDを連れ回す方がしっくり来ると思う。
CIのフォーラムでもそんな感じだったと思った。
791789:2009/11/04(水) 20:23:11 ID:???
>>790 アドバイスありがとうございます。

↓BASE64でエンコードする方法を参考にしてみたのですが、URLエンコードも試してみようと思います。
http://sourceforge.jp/projects/codeigniter/lists/archive/users/2009-March/001786.html

http://ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89
URIにASCIIの非予約文字以外の文字データを用いる場合には、「%xx」(xxは16進数)という形でコードを表記する
スペースを含む記号(=,&,%,+)は使用できないので「%20」などのASCIIコードの16進表記に置き換えられる。
スペースは JavaScript の場合には %20 に変換されるが、CGIでは + に変換される。

URLエンコード後の文字列に「+」が現れる場合は、$config['permitted_uri_chars']に「+」を追加すればOKですね。その方が手軽でしたorz
792789:2009/11/05(木) 13:06:07 ID:???
>>790
urlencode方式でうまくいきました。ありがとうございました。

・FireFoxで見ると、エンコード後の文字列データは、日本語の場合、日本語のままでURLに表示されました。

ttp://pricewave.blog110.fc2.com/blog-entry-26.html を参考にして、
$config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-';

・エンコードする文字列に半角スペースがある場合
urlencodeで半角スペースが「+」に置換されて、CI1.7.2でエラーになりました。

$config['permitted_uri_chars']に「+」を追加してOK = ★追加する位置★に注意

(1) $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-+'; // 末尾に「+」を追加
↓エラーになる
Message: Compilation failed: range out of order in character class at offset 63
Filename: libraries/URI.php
Line Number: 191

Message: Cannot modify header information - headers already sent by (output started at /home/mobilebest/usedbest.net/script/CodeIgniter/system/libraries/Exceptions.php:166)
Filename: codeigniter/Common.php
Line Number: 356

An Error Was Encountered
The URI you submitted has disallowed characters.

(2) $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_+-'; // 末尾じゃない場所に「+」を追加
=これだと、文字列に半角スペースが入っていてもOKでした。
793nobodyさん:2009/11/06(金) 17:05:09 ID:u54flEvH
CIのEmailライブラリを使ってメールを送信しているのですが、本文が文字化けしていまいます。

なので、 MY_Email クラスを作り mail()関数を mb_send_mail() にして、
mb_language("ja"), mb_internal_encoding('UTF-8') を記述して送信すると、今度は題名が文字化けしていまいます。

ソースはUTF-8で、Emailの"charset"設定は ISO-2022-JP にしています。


エスパーさせて申し訳ありませんが、どなたかスマートな解決法をご教授くださいm(__)m
794nobodyさん:2009/11/06(金) 17:40:13 ID:???
>>793
qdmail使えば幸せになれるよ
795nobodyさん:2009/11/06(金) 18:09:30 ID:u54flEvH
>>794
レスありがとうございます。
現在Postfixが使われています。
しかし、メールサーバーの変更は事情によりできないので、別の対処法をご存知でしたら教えて頂けると幸いです。
796nobodyさん:2009/11/06(金) 18:14:39 ID:u54flEvH
スミマセン、qdmail を qmail と見間違っていました

CIのライブラリに qdmail をぶち込んで使ってみることにします。
情報ありがとうございました!
797nobodyさん:2009/11/09(月) 13:46:17 ID:???
>>793

$config['charset'] = 'iso-2022-jp';

$subject = mb_convert_encoding($subject, 'iso-2022-jp', 'utf-8');
$this->email->subject($subject);

$message = mb_convert_encoding($message, 'iso-2022-jp', 'utf-8');
$this->email->message($message);
$this->email->send();

で大丈夫だよ。
798nobodyさん:2009/11/10(火) 21:00:29 ID:???
>>797
おいおい。Subjectそのままで送るのか?
MIMEエンコードしろよ
799nobodyさん:2009/11/11(水) 10:32:59 ID:???
>>798
と思う前にやってみろ。
800nobodyさん:2009/11/12(木) 10:48:35 ID:???
>>799
ハア?
既にやってんだが
無知は黙ってろks
801nobodyさん:2009/11/12(木) 10:59:46 ID:???
>>800
797のコードだとCIのEmailクラス通すからMIMEエンコードはやってくれるんじゃないの?
802nobodyさん:2009/11/12(木) 11:48:00 ID:???
質問です.

現在ヘルパ関数を自作していて,ヘルパ関数内でセッションクラスを使いたいと考えています.
しかし,$this->session->userdata('hoge')のように書くとエラーになります.

どのようにすればヘルパ関数内でセッションクラスを使えるのでしょうか?
803nobodyさん:2009/11/12(木) 12:00:12 ID:???
>>800
2重にエンコーディングされなかったか?Email.php使うと。
804nobodyさん:2009/11/12(木) 12:25:12 ID:???
>>802
$CI =& get_instance();
$CI->session->userdata('hoge');
でどうでしょ
805802:2009/11/12(木) 12:58:15 ID:???
>>804
ありがとうございます.
使えるようになりました.
806nobodyさん:2009/11/13(金) 01:38:44 ID:RfEeqTfm
テスト
807793:2009/11/16(月) 12:24:50 ID:???
規制に巻き込まれてしまい返信できずスミマセン。

>>797
レスありがとうございます。
そのやり方は質問をする前に確かめたのですが、本文の一部に文字化けがみられました。

で、あれからずっと調べていたのですが
http://blog.livedoor.jp/lax34volvic/archives/1062690.html
ここにある問題(特定の文字「目」や「本」などが文字化けする)と同じようです。
メール本文に「本メール」という単語があり、その行が見事に文字化けしていたのです。

現在はEmailクラスを拡張して使っていますが、他にやりようがあるなら教えてください。
808nobodyさん:2009/11/16(月) 13:06:14 ID:???
Qdmail使ったら。ソースコード汚くて萎えるけど。
809793:2009/11/16(月) 17:22:18 ID:???
>>808
qdmailは上記で教えてもらった時に使ってみました。
が、せっかくCIにEmailの処理があるのにそれが使えないのはおかしいので調べていた次第であります。

現在、MY_Emailクラスを作り
function subject() の $subject = $this->_prep_q_encoding($subject); の記述を除去。
mail()が使われているところをmb_send_mail()に変更しています。
(CIのversionは1.7.2です)

これで大丈夫なのか今はそれだけが不安です。(特にsubject()の>_prep_q_encoding()を使わなくてもいいのか辺り)
810nobodyさん:2009/11/16(月) 18:03:26 ID:???
>>809
俺も大方そんなところだよ。
_prep_q_encodingなんて気持ち悪い物も、ムリに使う必要は無いと思う。
mb_send_mailは信用してないから、mailを使ってるけど。

というか、これ以上はスレチな気もするので。
http://pc11.2ch.net/test/read.cgi/php/1249778720
811nobodyさん:2009/12/01(火) 16:52:40 ID:n2Un74VI
しかしスレが落ちそうな勢いだな。

みんなまだこれ使ってる?
812nobodyさん:2009/12/01(火) 16:57:48 ID:???
使ってるよー
djangoも使ってるし、どっちもスレは過疎化
FW使うような人はある程度知識がすでにあるから聞くことないんだろね
813nobodyさん:2009/12/01(火) 17:01:55 ID:???
同じく使ってるよ。でも最近はKohana。
PHP5使っているならCIじゃなくてKohanaお勧め。
814nobodyさん:2009/12/04(金) 22:00:44 ID:???
pre_controller
コントローラが呼ばれる直前に呼ばれます。すべて基本クラスのロード、ルーティング、そしてセキュリティチェックが終わっています。

ってあるんですが、具体的にCIがやってるセキュリティチェックって何?
815nobodyさん:2009/12/18(金) 10:44:51 ID:REAaVtDl
保守
816保守:2009/12/23(水) 21:11:17 ID:???
俺は初めて彼女とMMXした。
「もうそろそろiiyama? 君のI/ODATAを確かめたいんだ。XT」
MITSUMIあうと、彼女のMECはALBATRONとしていた。
緊張した俺は焦り彼女のソケット478をAOpenしようとした。
「ちょ、ちょっとRADEON!何をSis」もう俺は既にエレコム。
Sound Blasterのホックを外すとはちきれそうなPioneerがBarracuda
でもBIOSTARは意外と玄人志向だった。
「恥ずかしいわ。あまりミネベア・・・」
SCSIをTORICAるとKEIANをSOLTEKした痕がアルファデータ。
あそこはSUPERMICROだった。OMEGAドライバも少し鼻についた。
しかし、彼女のCREATIVEを刺激しつつ俺のセレロンを
彼女のSerial-ATAからASUSに這わせると、「FireWire〜ン」
「もう、ATI」「COREGA欲しいんだろ?」「早くリテール」
俺は激しくTSUKUMO。「インテルはいってるっ!IEEE!1394!」
「あぁ・・・もうDell!」
817nobodyさん:2010/01/08(金) 22:13:29 ID:???
回転寿司でお稲荷さんが回ってなかったから注文したら、
渡されるところで隣に座ってた人に横からお稲荷さん取られた
それは私のお稲荷さんだ!って言ったら反対側に座ってた人がイクラを噴出した
私も一瞬後で気づいて、たぶん顔真っ赤になってたろうけど全部食べた
818nobodyさん:2010/01/10(日) 17:48:15 ID:???
「私みたいで残せないから全部食べた」
というフレーズを思い出した
819nobodyさん:2010/01/30(土) 22:57:36 ID:/kADIv2E
そして会話がなくなった
820nobodyさん:2010/01/30(土) 23:11:41 ID:???
すいません。このスレ建てた人間なんですが、PHPのNameSpaceのSeparatorに
嫌気がさしてRubyのSinatraに乗り換えました。
821nobodyさん:2010/01/31(日) 01:23:17 ID:???
しらんがな
822nobodyさん:2010/01/31(日) 13:14:25 ID:???
逆に、Codeigniter使ってる人で、Rubyのフレームワークのおススメとかありますか?
823820:2010/01/31(日) 17:37:08 ID:???
824nobodyさん:2010/02/01(月) 14:56:28 ID:???
>>820
私はPHPをやりつつもPythonにも手を出しました。
目的はGoogle App Engineです。
825nobodyさん:2010/02/17(水) 01:37:21 ID:???
セッションデータの保存にDBを使っててset_userdataで値を入れても次のページに行くとset_userdataしていないのに新たなセッションデータが生成されてuser_dataが空になって困っていた。
デフォルトのままだった$config['sess_expiration']の値を0にしたら解決した。
なんでだろ…PHPを5.2.xから5.3.1にしたのが悪かったのかな。
826nobodyさん:2010/03/21(日) 11:30:44 ID:???
cakephpに挫折した僕でもCodeIgniterは僕にとってフレームワーク入門になりますか?
インストールまではなんとかできました
827nobodyさん:2010/03/21(日) 11:54:51 ID:???
ユーザーガイドを読んでみたら面白いほどに分かりやすいのでCodeIgniter様に弟子入りさせて頂きたいと思います
本当はMVCで会社とかでよく使われるcakephpを覚えたいけど
CodeIgniterもMVCですしガイドがわかりやすくて面白いのでお世話になります
828nobodyさん:2010/03/21(日) 14:00:50 ID:???
ぶっちゃけcakephpは話題になるほど良いものではないよ。
829nobodyさん:2010/03/21(日) 14:12:02 ID:???
Zend>CodeIgniter>>>>Cake>Symfony
くらいだと思う個人的には
ただSymfonyは新版で変わったらしいからジャンプアップするかもしれん
830nobodyさん:2010/03/21(日) 16:58:25 ID:???
CodeIgniter最高!!
831nobodyさん:2010/03/21(日) 17:28:31 ID:???
CodeIgniterをインストールして初めてアクセスすると、「CodeIgniterへようこそ!」のページが表示されます。

このページを編集したい場合は以下のファイルを編集したらいいみたいな説明がありました
system/application/views/welcome_message.php
system/application/controllers/welcome.php

CodeIgniterではデフォルトでこれら2つのファイルを読み込んで出力するのでしょうか?
また、この2つのファイルは消しても問題ないでしょうか?
832nobodyさん:2010/03/21(日) 17:57:57 ID:???
マニュアル嫁
833nobodyさん:2010/03/21(日) 17:59:30 ID:???
>>832
(;;)
834nobodyさん:2010/03/21(日) 19:35:06 ID:kAKa3jAa
軽量フレームワークということでCI試してみたいんだけど、1.6系と1.7系どっちを使おうか迷ってます。
1.6系と1.7系では、ファイルサイズが4倍くらい違いますよね?1.7で何がそんなに追加されたのでしょうか??
835834:2010/03/21(日) 19:39:22 ID:???
おっと失礼、ファイルサイズ4倍は言語ファイルに関してでした。
コアパッケージも、倍以上違いますよね。
836nobodyさん:2010/03/21(日) 19:43:19 ID:???
>>835
こんにちは843さん、僕も数時間前に始めた初心者です
僕は1.7を利用してます
837nobodyさん:2010/03/21(日) 19:58:25 ID:???
controllersディレクトリ内にtest.phpを作り、以下のコードを記述しました
<?php

class Test extends Controller {
function otameshi($id1, $id2){
echo $id1;
echo $id2;
}
}

http://localhost/index.php/test/otameshi/100/200/でアクセスすると正常に表示されます

それで、http://localhost/index.php/test/otameshiにアクセスするとA PHP Error was encounteredが出るのですが
このエラーを表示させない方法ってございませんか?

838nobodyさん:2010/03/21(日) 20:05:05 ID:???
引数にデフォルト値入れれば?
839nobodyさん:2010/03/21(日) 20:44:24 ID:???
>>838さんありがとうございます
デフォルト値はどのようにいれるのでしょうか?
840nobodyさん:2010/03/21(日) 21:01:09 ID:???
>>839
>838じゃないけど、PHP自体初心者なの?
もしそうなら、いきなりCIやらないで、1回でいいから普通のPHP独習本でも
見ながら普通のスクリプトを書いてみることを勧める。

function otameshi($id1=100,$id2=200)
{
}
841nobodyさん:2010/03/21(日) 21:10:37 ID:???
>>840さんありがとうございます
http://localhost/index.php/test/otameshi/100/200/
でアクセスしたときに、この100と200の値を出力したいのですが値が固定ではないです
300のときもあれば400もありのでそのように変数に格納することはできません
もしhttp://localhost/index.php/test/otameshi/でアクセスした場合でも、引数が空でもそのまま出力処理させる・・・空の値を出力させるってことはできませんか?

以下のように書き換えてみたのですがダメでした
<?php
class Test extends Controller {
function otameshi($id1, $id2){
if ($id1 != "") echo $id1;
if ($id2 != "") echo $id2;
}
}
842nobodyさん:2010/03/21(日) 21:16:08 ID:???
>>841
だから、
function otameshi($id1=100,$id2=200)
と置くことで、$id1,$id2が空の場合のデフォルト値を指定しているんだけど。
そんな状態でCIやってホントに大丈夫?
ttp://www.php.net/manual/ja/functions.arguments.php#functions.arguments.default

別解として
function otameshi()
{
$id1 = $this->uri->segment(3);
$id2 = $this->uri->segment(4);
echo $id1;
echo $id2;
}
というのもできるけど。


843nobodyさん:2010/03/21(日) 21:25:05 ID:???
すいませんでした勉強になりました
ご教示頂いた方法で解決できました
お手間かけてしまい失礼いたしました
コードありがとうございます
844nobodyさん:2010/03/21(日) 22:07:48 ID:???
PHPの初心者本買って一通りやったほうがいいな。
話にならん。
どの本がいいかって?
ググれ。
845nobodyさん:2010/03/21(日) 23:04:54 ID:???
超上から目線w
846nobodyさん:2010/03/24(水) 14:11:46 ID:???
>>843
PHPというか、プログラミングは初めてですか?

プログラミング未経験なら、
http://www.amazon.co.jp/dp/4774141046
文法解説 → 「ゼロからわかる PHP超入門」
http://www.amazon.co.jp/dp/4798119865
サンプルコード集 → 「PHP 逆引きレシピ」
あたりを読むといいと思います。

あとCodeIgniterを使うなら、
http://www.amazon.co.jp/dp/4798116769
「CodeIgniter徹底入門」
も役に立ちます。

学生さんでお金がないなら、図書館で借りればOK
仕事でプログラミングやるなら、本代なんてすぐに回収できるからバンバン買えばOK
847nobodyさん:2010/03/24(水) 14:20:35 ID:???
>>843
プログラミングをまったくやったことがないなら、最初に練習してみる言語としては、
今ならPHPじゃなくて、Python(パイソン)を勉強した方がいいかも

・Google App Engine(グーグルのレンタルサーバ)でPythonが使える。
・安いレンタルサーバ(XREAなど)でもPythonが使えるものもある。
・Djangoやweb.pyなど、Pythonのフレームワークもいろいろある。

Pythonは、PHPよりも簡単ですよ。
=もともと教育用途で開発された言語だから、PHPよりも覚えることが少なくて、文法も簡単です。
Pythonを1ヶ月くらい使ってみたあとに、PHPをやってみたらいいんじゃないかな?

http://www.amazon.co.jp/dp/4797353953
「みんなのPython 改訂版」→この本なら1〜2週間くらいでPythonをマスターできます。
848nobodyさん:2010/03/24(水) 14:32:19 ID:???
>>846-847
スレチ
849nobodyさん:2010/03/24(水) 14:32:47 ID:???
>>834
CI1.6から1.7の変更点は、変更履歴を見ればわかりますよ。
http://codeigniter.jp/user_guide_ja/changelog.html

今なら1.7で良いと思います。
=バリデーターの使い方がシンプルになった。
=1.7用の日本語パックも提供されている。

CIの使い勝手に不満を感じたら、CIから派生した類似のFWも比較対象にしてみればいいと思いますよ
・Kohana
http://clinic.mond.jp/kohana/
・CIEX
http://ciex.levallois.biz/
850nobodyさん:2010/03/24(水) 20:31:08 ID:???
>>846-847
そういうのやめたら
性格悪そう
851nobodyさん:2010/03/25(木) 20:36:56 ID:???
これ開発終了したの?
852nobodyさん:2010/03/26(金) 01:30:02 ID:???
Python厨はどこでも沸いて出てくるな
マイナーな言語を薦めて最後まで責任取れるのか
仕事探すとなったらPythonの仕事なんてまずないし
853nobodyさん:2010/03/26(金) 01:44:18 ID:???
Python嫌いではないけど、レンサバでさくっと動くもの作りたいときは面倒だよな。
854nobodyさん:2010/03/26(金) 01:45:47 ID:???
うち一回Zopeで組んだけど技術者集まらなさすぎてJavaとPHPで作り替えた
855nobodyさん:2010/03/27(土) 16:10:53 ID:???
PythonはWebアプリ以外も作れるから需要はあるよ?
=PythonはCGの世界ではデファクトスタンダード

PHPも便利だけど、一度PHP以外の言語も使ってみたらいいよ
856nobodyさん:2010/03/27(土) 16:45:03 ID:???
CGの世界ではCとListがデファクトスタンダードな気がするが
というかPHPフレームワークのスレでPythonの宣伝するなよ
857nobodyさん:2010/03/27(土) 16:54:20 ID:???
Pythonスレに誘導したくて必死なんだろ
858nobodyさん:2010/03/27(土) 17:38:56 ID:???
どの言語でもWebアプリ以外のものを作れるわけだが
PHPだって作れる
859nobodyさん:2010/03/27(土) 17:50:20 ID:???
爆釣だな

と言いたいところだが、初心者を出汁に釣りをするのは感心できないな。
860nobodyさん:2010/03/27(土) 17:51:03 ID:???
釣りってどのレスの話だ?
861nobodyさん:2010/03/27(土) 17:52:18 ID:???
PHP-GTKとかWinBinderとかm普通にGUI作る仕組みあるぞPHPにも。
862nobodyさん:2010/03/27(土) 18:02:32 ID:???
・・・使ってるやついるのか?
863nobodyさん:2010/03/27(土) 18:33:50 ID:???
HTMLも一応言語
864nobodyさん:2010/03/27(土) 19:40:08 ID:???
中規模〜大規模 → symfony
中規模 → CakePHP
小規模 → 俺俺FWもしくは生PHP
俺俺FWのたたき台 → ZendFramework

CodeIgniterだけは使いどころがねーわw
ちいたんは問題外な。
865nobodyさん:2010/03/27(土) 19:58:36 ID:???
規模ってなんだね
866nobodyさん:2010/03/27(土) 20:51:11 ID:???
コードイグニターとかいって酷いネーミングだよなw
867nobodyさん:2010/03/27(土) 21:47:31 ID:???
CakePHP→LithiumでOK
ttp://blog.candycane.jp/archives/121
868nobodyさん:2010/03/27(土) 21:59:33 ID:???
最近知ったばかりで広めたいのかどうか知らんが
ドキュメントが整ってないからまだ早いよ
869nobodyさん:2010/03/27(土) 22:08:59 ID:???
kohana
870nobodyさん:2010/03/27(土) 22:09:50 ID:???
あれ途中で切れてる
kohanaが一番いいよ
871nobodyさん:2010/03/29(月) 14:01:54 ID:???
>>861
AndroidやiPhoneアプリも作れるから
今ならTitanium Desktopでおk
872nobodyさん:2010/03/29(月) 14:08:51 ID:???
PHPでGUIやるならHSP選んだほうがいい
873nobodyさん:2010/03/29(月) 20:40:53 ID:???
kohanaは日本語ドキュメントが無いので漏れには無理です。
いや、仕事なら英語ドキュメント読むけど、PHPは趣味なんで・・・。
874nobodyさん:2010/04/01(木) 11:04:56 ID:mWVUr3Vn
話が変わりますが...CI初心者です。

CI1.7.2、PHP5.3.1を使っていてsessionで困りました。
CIのconfig.phpで$config['sess_use_database'] = TRUE;
としているのにクッキーにip,UA,lat_activityまで保存されます。
しかもSet-Cookieが3,4回も送信される時もあって参ってます。
WINな環境(?)のためなのか、コーディングがまずいのか、またはCIの仕様なのでしょうか?
librariesのSession.phpに目を通してますが見当もつきません。

解決策や何かヒントもらえませんか?
875874:2010/04/01(木) 12:04:07 ID:???
すいません。ボケてました(/−\*)
↑に書いたlat_activity(訂正last_activity)までは仕様上送られるようでしたが
user_dataまでクッキーに含まれることがあって問題になってます。
またEclipseでログをとってみたところSet-Cookieが5回も送られていました。
きっと基本的な所でつまづいているのだと思いますが...
876nobodyさん:2010/05/03(月) 19:37:29 ID:???
(´・3・`)
877nobodyさん:2010/05/31(月) 20:56:27 ID:???
これ結構好きなんだけどあまり業務で使用されてるの見たことないね
なぜか?
878nobodyさん:2010/05/31(月) 21:07:32 ID:???
ソース読めば解るよ
使うならKohanaにしろ
879nobodyさん:2010/06/02(水) 22:41:45 ID:???
日本語の解説本が出たら使おうと思う。

一方で、最近になってVS2008を使いだしたんだが、なんかもうこれで良いんじゃないか?
と思うようになった30代の俺がいる。
880nobodyさん:2010/06/02(水) 22:45:36 ID:???
日本語の解説本出てるよ
対応バージョン古いかもしれないけど
881nobodyさん:2010/06/02(水) 23:11:16 ID:???
いや、kohanaのことですた。
882nobodyさん:2010/08/01(日) 00:14:33 ID:???
883nobodyさん:2010/09/07(火) 13:54:43 ID:QslHXfVo
kohanaもここで良いの?
884nobodyさん:2010/09/08(水) 17:31:06 ID:???
全面的にフレームを使ったサイトを作ろうとしていて、まずは、
ルートコントローラからVIEWに書いたFRAMESETを呼び出してるんだけど、
googlechromeでは表示されるのにIE8だと駄目。

・・・これはこういうもんですか?
885884:2010/09/09(木) 20:13:00 ID:???
VIEWじゃなくて直接コントローラ内に記述したら大丈夫でした。
こんなもんだったようです。
886nobodyさん:2010/09/29(水) 12:39:19 ID:uKU+pVOG
>>882
これ、今はダウンロードできないんですかね?
887nobodyさん:2010/10/11(月) 12:27:20 ID:???
php4を切り捨ててphp5.3対応になったらまたCI使いたい
888nobodyさん:2010/10/11(月) 14:21:34 ID:???
kohanaの使い方を誰かおしえて
889nobodyさん:2010/10/11(月) 15:01:02 ID:???
>>888
プログラムを組んでFTPでアップロードすればOK
890888:2010/10/11(月) 15:18:20 ID:???
install.phpの結果は問題なかったんですけど
install.phpを削除してindex.phpを開いたらエラーが出て先に進めません。助けてください

ErrorException [ Fatal Error ]: Cannot access parent:: when current class scope has no parent
SYSPATH\classes\kohana\request.php [ 1095 ]
1090
1091 try
1092 {
1093 // Load the controller using reflection
1094 // $class = new ReflectionClass($prefix.$this->controller);
1095 parent::ReflectionClass($prefix.$this->controller);
1096
1097 if ($class->isAbstract())
1098 {
1099 throw new Kohana_Exception('Cannot create instances of abstract :controller',
1100 array(':controller' => $prefix.$this->controller));
{PHP internal call} ≫ Kohana_Core::shutdown_handler()
891888:2010/10/11(月) 15:58:45 ID:???
イライラするのだ!!!!!!!!30分粘っても解決しないのだ!!!!!!!
892888:2010/10/11(月) 16:17:24 ID:???
解決しました
bootstrap.phpのbase_urlが'/'だったので'/~kohana/'って書き直したら動きました
userdir設定してるのでhttp://localhost/~kohana/でアクセスすると動きました
893nobodyさん:2010/10/11(月) 17:23:58 ID:???
kohana程度の知名度だと寄付金$1,908.07も集まるのか
894nobodyさん:2010/10/11(月) 18:18:21 ID:???
kohana 3ってインストールした段階だとコントローラのみでhello world表示してますよね
これをデータベース使わないでMVCで表示させたいんですけどサンプルコードってどこかにないですか?

895nobodyさん:2010/10/11(月) 18:40:24 ID:???
お前はサンプルがないと何もできないのか
896nobodyさん:2010/10/11(月) 18:47:04 ID:???
説明適当でもサンプルコードが充実していれば何とかなるだろjk
897nobodyさん:2010/10/12(火) 08:32:27 ID:???
codeigniterってcakeのお手軽版みたいな認識で合ってるのかな?
cakeも調べてみたのですが、PHPであそこまでやるならRailsでいいや、って思ってしまうので
PHPの出来る限りお手軽なフレームワークを探しています。
898nobodyさん:2010/10/12(火) 10:41:42 ID:???
昔cakeに挫折してciやったら見事に楽勝だった
899nobodyさん:2010/10/12(火) 15:23:53 ID:???
Railsはレン鯖に設置できない場合が多いからCakeが流行るんだろ
今からやるならCiよりkohanaの方がいいような気がするな
900nobodyさん:2010/10/12(火) 15:36:06 ID:???
kohanaは日本語訳がないのでもの好きしか使ってない
901nobodyさん:2010/10/12(火) 21:35:55 ID:???
Codeigniterのセッションクッキーの問題って今はもう改善されてる?
902nobodyさん:2010/10/17(日) 10:22:39 ID:???
>>901
直ってるよ
903nobodyさん:2010/10/18(月) 00:47:56 ID:???
codeigniterは趣味レベルのサイトを作るのが限界
904nobodyさん:2010/10/19(火) 10:16:32 ID:???
905nobodyさん:2010/10/23(土) 18:01:16 ID:sKO4L/iz
DBにInsertするデータって自動でサニタイズされてるよね?
$_POSTそのまま渡してもモマンタイ?
906nobodyさん:2010/10/24(日) 03:39:48 ID:???
>>903
企業とかで使用されてる頻度は一番って聞いたけど違ってたのか
907nobodyさん:2010/10/24(日) 04:06:01 ID:???
それSymfonyかZendかCakeあたりの間違いだよなw
908nobodyさん:2010/10/24(日) 06:50:34 ID:???
>>905
他のフレームワークでもそうなんだが、されてない。

>>906
いや全然。
でもオレオレフレームワーク使うくらいだったらこれ使った方が良いと思う。
909nobodyさん:2010/10/24(日) 12:07:35 ID:???
PHPで作るサイトの要件を考えれば
「企業で使用されるフレームワーク」
と言っても過言ではないと思う。
Javaみたいにガチガチのシステム作るわけでもないんだし。
910nobodyさん:2010/10/25(月) 08:15:47 ID:???
サニタイズじゃないや、クォート処理だった。
配列渡すときってaddslashes とかやる必要あるの?
911nobodyさん:2010/10/25(月) 09:09:22 ID:???
PDOなり何なり使ってバインド
912nobodyさん:2010/10/25(月) 10:50:48 ID:???
>>909
使われてないので
913nobodyさん:2010/10/27(水) 18:18:40 ID:???
IBMのCI紹介ページなかったっけ。
確か俺もそこで見た希ガス

カスタマイズしやすい事がうんたらかんたら。
914nobodyさん:2010/10/27(水) 18:20:29 ID:???
気のせいだった。
915nobodyさん:2010/10/30(土) 18:57:33 ID:???
ぶっちゃけフレームワーク初心者としてはCIは良かった
ただPHP4対応でなければ
916nobodyさん:2010/10/30(土) 19:18:51 ID:???
別に5でも使えるぞ。
917nobodyさん:2010/10/30(土) 19:25:13 ID:???
やだ
918nobodyさん:2010/11/21(日) 03:34:14 ID:???
Cakeとか引数地獄と配列地獄で使う気になれないんだよな
919nobodyさん:2010/11/22(月) 16:11:37 ID:F611qCBG
Trendsで見てる限りCakePHPと並んだね
ただ日本語圏では相変わらずの不人気のようだが・・
920nobodyさん:2010/12/05(日) 21:48:15 ID:???
codeigniterを使うために、システムに別途何かをインストールする必要はありますか?
具体的には、PHPが動いている既存のサーバーがありまして、
このサーバーに新たに何かインストールすることは出来ません。
/var/www/以下にアプリケーションを配置することだけが可能です。
このような制限の下で使えるPHPのフレームワークを探しています。
921nobodyさん:2010/12/15(水) 18:00:43 ID:ilKXU8Bu
いまcodeigniterユーザガイド見ながら少しずつ進んでるんですが
アドレスにはindexって必ず入るんでしょうか?
example.com/index.php/blog/となってますが、
.htaccessを設定して.phpを取ってアクセスすることは出来ました。
indexを消す方法というのはどのようになるのでしょうか?
922nobodyさん:2010/12/15(水) 22:20:46 ID:???
ほんとにユーザガイド読んでるのかよ
923nobodyさん:2010/12/16(木) 09:12:07 ID:???
>>922
ユーザーガイド通りやっててもサーバー側の設定でうまくいかないことあるよ。

>>921
htaccessでRewriteEngineとかちゃんと使えるか確認してみ。
おれはレンタルサーバーで使えなかったから別サーバーに移ったけど。
924nobodyさん:2010/12/19(日) 03:03:49 ID:???
CodeIgniter
なんかいつもワニをイメージしてしまうのは俺だけなのかな
925nobodyさん:2010/12/23(木) 22:26:38 ID:???
アリゲーター?
俺はチャッカマンが浮かぶ
926nobodyさん:2010/12/31(金) 00:05:24 ID:ioO/GJfl
codeigniterってドメインでのアクセスって出来ない?
http://example.com/home
とかならアクセス出来ますがhttp://example.com/でアクセスたい場合はどうすればいいんでしょうか
htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|css|.+\.gif$|.+\.jpg$|.+\.png$|.+\.js$)
RewriteRule ^(.*)$ index.php/$1 [L]
config.phpはbase_urlを変更しただけです。
927nobodyさん:2010/12/31(金) 01:41:01 ID:???
前職はPerlのCatalystでガシガシ組んでましたが、このたびPHPがメインらしき
会社に転職しまして
前任者のいまだに生PHPでSQLに$_POST値をそのまま文字連結して投げてる
ようなかっこいいソースを見て目眩がした次第

Cakeは手を付けましたがディスパッチャやセッション周りの見通しが悪すぎてパス
こんな私ですがCIとはうまく付き合えそうでしょうか

一応PHPは3.0.18-i18nから仕事でも使ってましたが、メジャーバージョン上がる
たびにカオスになったので細かい仕事はやりつつCPAN便利なPerlに軸足を移した
感じです
928nobodyさん:2010/12/31(金) 21:48:30 ID:ioO/GJfl
実際に使ってみればいいでしょ。
それにセキュリティとか大丈夫なら別に生でPOSTしてもいいと思うけどね。
まぁ複数人で作業するには面倒かもしれないけど。
929nobodyさん:2011/01/01(土) 01:06:21 ID:???
俺もそう思うなあ。

作り手が何人なのか、規模がどんだけなのか、知らんけど。
エンドユーザとか、使用環境にもよるよね。
930sage:2011/01/04(火) 20:59:52 ID:???
>>926
Hint:routing

>>927
SSLとか使ってない限りは普通にネットワーク上をデータは流れていくから
セキュリティが出来てれば別にそのまま投げてもいいと思うわ
931nobodyさん:2011/01/08(土) 18:13:20 ID:Qv+KXgTd
viewの中にコード書いて表示させたいんだけど
viewの中にコード書くと処理されてエラー表示になります。
どうすれば表示されますか?
932nobodyさん:2011/01/11(火) 08:37:38 ID:???
>>931
まずはCIつかえよCI。
俺の使っているCIは問題なくかけるぞ。
933nobodyさん:2011/01/31(月) 02:39:01 ID:???
http://localhost/hoge/index.phpがindex.phpの場所なんだけど
htacccessで

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

と記述した場合、
http://localhost/hoge/
だとindex.phpが表示されるが、
http://localhost/hoge/test/
としても、test.phpが呼び出されず404エラーです。
Rewriteの指定間違えてるのかな・・・?
934nobodyさん:2011/01/31(月) 10:35:23 ID:???
CodeIgniterってフレームワーク初心者に最適だね
簡単と言われるCakePHPに挫折した俺でもCIは余裕で覚えられた
きっと公式ドキュメントやCIの設計が良いんだろう
935nobodyさん:2011/01/31(月) 13:05:48 ID:???
ZendPHPからCIにきたけど、
すごいとっつきやすいしやりやすいね
初心者向きというか、だれでも使えるよね
936nobodyさん:2011/01/31(月) 13:18:34 ID:???
これってZendみたいにforwardみたいなのってないのかな?
Zendだと_forward("アクション名", "コントローラ名");
みたいなので簡単にリダイレクトできたので
937nobodyさん:2011/01/31(月) 15:23:51 ID:???
お前はフォワードとリダイレクトの区別がまったくついてないだろ
938nobodyさん:2011/02/02(水) 07:03:52 ID:???
2.0はいつ1みたいな使いやすいリファレンスがでるんだろ。
939nobodyさん:2011/02/02(水) 11:52:43 ID:???
2.0キタ━━━━(゚∀゚)━━━━ッ!!
940nobodyさん:2011/02/02(水) 16:24:12 ID:???
1.xと2.0で書き方は換わりますか?
941nobodyさん:2011/02/04(金) 18:16:35 ID:/x0iTGJJ
通常は/testでアクセスしてるんですが
redirect('/test', 'location', 301);
で飛ばしたらアドレスがtest.htmlになるんだが何故?
test.htmlでもアクセスは出来てるんですが理由がちょっとわからない。
942nobodyさん:2011/02/04(金) 18:53:13 ID:???
コード載せてくれないとエスパー伊藤ぐらいしか回答できる人がいない
943941:2011/02/04(金) 19:01:48 ID:/x0iTGJJ
>>942
やろうとしていることは認証なんですが
コードといってもif文が入るくらいの単純なもんです。
if($_SESSION['hogehoge'] == "")
{
redirect('/test', 'location', 301);
}
else
{
$this->load->view('body');
}
セッションがあればbody表示、無ければtestへ飛ばす。
ログインミスでセッションが出なかったらtestへ飛びます。
944nobodyさん:2011/02/06(日) 09:53:25 ID:JGIPwaHj
>>943
試してみたら俺もhtmlがついてたわ
理由は知らない
945nobodyさん:2011/02/07(月) 09:41:15 ID:DyYuIEO0
おれんとこもredirect使ってるとこあったから見てみたらhtmlってなってて驚いたわ
configか何かか?
946nobodyさん:2011/02/07(月) 10:09:40 ID:???
自演お疲れ
947nobodyさん:2011/02/07(月) 11:20:18 ID:DyYuIEO0
俺が自演したことになったのか。
質問者にはすまんことしたな。でもhtmlでも動いてるから俺はどうでもいい。
948nobodyさん:2011/02/07(月) 12:02:50 ID:DyYuIEO0
よく見たらurl_suffixはデフォルトで.html入ってるからだわ。
949nobodyさん:2011/02/08(火) 19:54:08 ID:B5ev7l2d
codeigniterって.htaccessってどう扱われるの?
トップのindex.phpのところ.htaccessで
SetEnvIf User-Agent "Baiduspider" shutout
って書いても普通に百度にアクセスされているんだが・・・
950sage:2011/02/09(水) 08:09:08 ID:???
BaiduspiderはおれんとこではBaiduspider+ってなってるから+つけろ
951nobodyさん:2011/02/09(水) 12:34:16 ID:VGkdt3BF
SetEnvIfは部分一致してりゃいいから+関係ない
952nobodyさん:2011/02/10(木) 11:01:56 ID:amyjZedz
htaccess置くとこ間違ってないか?
あとはhtaccess使えないサーバーとか。
953nobodyさん:2011/02/12(土) 15:25:00 ID:???
CodeIgniterはlocalhostで作ったものをフォルダ丸ごとアップロードするだけで済むのが素敵ね
954nobodyさん:2011/02/13(日) 20:57:59 ID:???
中規模サイトはZend Frameworkで作るんですけど
小規模なサイトだと面倒くさいのでCakePHPとCodeIgniterどっちを覚えようか迷うんですが
どちらも使える人はどちらを勧めますか?
955nobodyさん:2011/02/13(日) 21:46:53 ID:???
>>933
コントローラが間違えてんだろ
956nobodyさん:2011/02/14(月) 09:12:07 ID:ZSsnoqc2
>>945
どちらも使えるようになるのがお勧め
個人的にはCodeigniter
理由はそんなに縛りがないから。
957nobodyさん:2011/02/14(月) 10:12:15 ID:???
これってforward系の関数ってないの?
958nobodyさん:2011/02/14(月) 10:41:45 ID:???
仕事の求人とかフリーの案件見てもCakePHPばっかりなんだけどさ
仕事で使う場合を考えるとCIをメインで覚えるメリットはあるのかな?
959nobodyさん:2011/02/14(月) 10:49:25 ID:???
>>958
そこは仕事を取る側の提案だろ
「弊社ではZend Framework、CakePHP、CodeIgniterが扱えます。
御社の希望する案件によりますと、CodeIgniterなどはどうでしょう。」
みたいに顧客に提案しろ
ぶっちゃけ顧客は何もわからないんだから、そこはトークだろ

まぁ、ガチガチ開発に努めたいなら(請負なら)
新規案件→EC-CUBE、Wordpressが多い
既存案件→EC-CUBE、Zend Framework、CakePHPが多い

どうCIを業界に導入していくかは、営業の仕事じゃね?
960nobodyさん:2011/02/14(月) 16:06:33 ID:???
CodeIgniter使っていて唯一気持ち悪いのが

○ function function Method(){}
× public function Method(){}
961nobodyさん:2011/02/15(火) 19:42:21 ID:???
>>960
2.0使え
962nobodyさん:2011/02/17(木) 12:39:39 ID:???
ライセンスに
1. A copy of this license agreement must be included with the distribution.
ってありますけど
これってサイトを構築したらlicense.txtも一緒にうpしないとダメってことなんですか?
963sage:2011/02/21(月) 00:45:19.79 ID:???
model内で複数のfunctionを突っ込んでるんですが
/system/application/models/function.php
function a(){}
function b(){}
function c(){}
こういう形なんですがfunction a()の中でfuncrion c()を呼び出す場合に
何か特別なことをする必要がありますか?
function a(){ c(); }としても
Call to undefined function c()とエラーが出ます。
function c()としてはあるのですが参照方法がよくわかりません。
964nobodyさん:2011/02/21(月) 09:41:18.47 ID:???
>>963
$this->c();
965963:2011/02/21(月) 10:35:55.97 ID:???
>>964
サンクス
966nobodyさん:2011/02/23(水) 12:28:56.73 ID:???
xssclean重すぎ
967nobodyさん:2011/02/26(土) 02:08:58.01 ID:yx6fZKZE
CakePHPでいうh()みたいなものはないの?
968nobodyさん:2011/02/26(土) 11:19:39.74 ID:???
>>967
そんくらい自分で書けよ
969nobodyさん:2011/02/26(土) 17:41:23.93 ID:yx6fZKZE
function h($str) { return htmlspecialchars($str, ENT_QUOTES); }
みたいなものを自分で書くってこと?
書いたとして、それをどこに置けば・・とかがよくわからない
970nobodyさん:2011/02/26(土) 18:36:22.53 ID:???
そういう「あれば便利」なパーツを用意してくれるのがフレームワークじゃないのか?
971nobodyさん:2011/02/27(日) 16:45:18.18 ID:5z0ZrBtm
MY_html_helper.phpを作って
その中に、h()関数作るとできました ありがとうございました
972nobodyさん:2011/02/28(月) 18:00:16.84 ID:2GUCHRDo
CodeIgniter 2.0.0を使用しています

データ削除時に、関連のあるテーブルのデータも一緒に削除したい場合
皆さんはどのように処理していますか?

いろいろやった結果

$this->db->trans_start();
$this->db->where('id', $id)->delete('model');
$this->db->where('model_id', $id)->delete('model2');
$this->db->trans_complete();

このようなものに落ち着いたのですが
違うやり方、もしくはもう少しスマートなやり方など、あれば教えてください
973nobodyさん:2011/02/28(月) 23:49:31.02 ID:???
SQLベタで書いたほうがよくね?
974nobodyさん:2011/03/01(火) 00:28:57.90 ID:SavaENs6
$this->db->query("
DELETE FROM model1
JOIN model2
ON model1.id = model2.model_id
WHERE model1.id = $id
");

ですかね?SQLベタで書くと。SQLベタ書きにあまり慣れていないです
ただ、上記のSQLで書くと、MySQLエラーが出るんです
975nobodyさん:2011/03/01(火) 01:59:20.62 ID:SavaENs6
クエリのバインディングのためには
$sql = "DELETE FROM model1 JOIN model2 ON model1.id = model2.model_id WHERE model1.id = ?";
$this->db->query($sql, array($id));
のが良いのか
976nobodyさん:2011/03/01(火) 21:00:53.87 ID:???
サイトのタイトルとか常に持っておきたい値ってどこに入れておくのがベスト?
できれば1か所編集すれば全部に反映されるようなの理想なんだけど
977nobodyさん:2011/03/02(水) 00:22:30.13 ID:???
Active Recordクラスって取得カラムの設定できないのかよひでぇwwww
全て*でとれってかwwwwwww
978nobodyさん:2011/03/02(水) 01:43:53.85 ID:dSulORFE
>>976
俺もそれ考えてた今
で、結果、全体のレイアウト的なファイルをviewに置いて(template.phpとする)
それを通して、index.phpだの、add.phpだのを表示させるようにすると
template.phpの<title><?php echo 'sample - ' . $this->uri->rsegment(1) . ' - ' . $this->uri->rsegment(2); ?></title> とか
<?php $this->load->view($this->uri->rsegment(1) . '/' . $this->uri->rsegment(2)); ?> とか、書くと
自動でやってくれるからControllerが少しすっきりするかなと。
979nobodyさん:2011/03/04(金) 00:22:38.55 ID:???
精液ぶっかけ男逮捕、被害主婦ニオイにピン
http://www.sanspo.com/shakai/news/110220/sha1102200502002-n1.htm
> 直後、「臭いで気づいた」というさすがの主婦
980nobodyさん:2011/03/05(土) 02:27:29.13 ID:???
Googleトレンドで他のフレームワークと検索してみたら
CodeIgniterが今はトップになってたわ。
世界の話であって日本では異なる結果だけど。
981nobodyさん:2011/03/05(土) 23:53:58.39 ID:???
codeigniterで作ったページをzipで送るのでチェックしてもらえますか?
982nobodyさん:2011/03/06(日) 00:29:05.93 ID:???
2.0って今どこに置いてあるの?
1.x時代のリファレンスが参照しやすかったんだが、
もうやる気ないのかなあ。
983nobodyさん
コードイグニターって使い勝手いいですか?