[PHP][フレームワーク]CodeIgniterスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/27(金) 23:17:16ID:???チュートリアル:http://codeigniter.com/tutorials/
ユーザガイド日本語訳:http://ci-user-guide-ja.nought-point-999.net/
小回りの利くフレームワークの話題をひとつ!
0683nobodyさん
2009/10/13(火) 23:58:54ID:nKWEiPKF上の方からずりずりっと降りてくる感じになってるけど
あれはどうゆう技をつかってるのですか?
0684nobodyさん
2009/10/14(水) 00:00:56ID:???0690nobodyさん
2009/10/14(水) 07:49:01ID:???0691nobodyさん
2009/10/14(水) 10:23:41ID:???0692nobodyさん
2009/10/14(水) 10:55:58ID:???0693nobodyさん
2009/10/14(水) 11:18:28ID:t3/QQLCE0694nobodyさん
2009/10/14(水) 11:23:30ID:???0695nobodyさん
2009/10/14(水) 22:38:32ID:t3/QQLCE0696nobodyさん
2009/10/15(木) 05:53:06ID:???ジャバスクリプト
XML
要するに埋め込み画像の要領でXMLをとってくるわけだね?
0697nobodyさん
2009/10/16(金) 09:04:01ID:oQRbn+uE0698nobodyさん
2009/10/18(日) 22:35:11ID:tagphLPVクエリをそのまま書くのに比べてご利益があるようには思えないんだけど
デバッグしやすいとかあんのかな?
0699nobodyさん
2009/10/18(日) 23:06:05ID:???それを洗練させていった結果がああなる、というだけだろう。
俺もあまり使わないな、SQLがベタで書いてあったほうが分かりやすい。
0700nobodyさん
2009/10/19(月) 10:13:06ID:???SQLでコメントが書いてあったのを見たことがある。
全くもって意味無し。
0701nobodyさん
2009/10/19(月) 10:45:46ID:9ICBcuC7header,
body,
footer
というレイアウトは簡単にできますが、
header
left center right
footer
というようなレイアウトを作るには
どうしたらよいのでしょうか。
ググレカスと言われそうですが、
どういうキーワードでググればいいのかも
見当がつかないで困っています。
よろしくお願いします。
0702nobodyさん
2009/10/19(月) 10:55:53ID:???0703nobodyさん
2009/10/19(月) 11:17:37ID:???0704nobodyさん
2009/10/23(金) 08:18:34ID:4xcNwzE4画像データから直接画像を生成する方法ありませんか?
画像操作ライブラリはファイルからの生成しかできないようなのです。
よろしくお願いします。
0705nobodyさん
2009/10/23(金) 09:00:38ID:???0706nobodyさん
2009/10/23(金) 10:22:44ID:4xcNwzE4PHPにその機能があるのですね。
ありがとうございました。
0707nobodyさん
2009/10/23(金) 14:22:48ID:???(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
オブジェクト内のメソッドやプロパティを指定する際の、ポインタやスコープが違うんでしょうか?
解説ページがあったら教えてください。
0708nobodyさん
2009/10/23(金) 22:37:02ID:4v117FRKDBに入っている画像データのバイナリから、
ファイルを介さず直接サムネールを生成する方法はないでしょうか。
画像そのものを出力したり、ファイルやURLからサムネールを
生成する方法はあちらこちらに書いてあるのですが、
バイナリを直接GDに食わせる方法の記述を見つけられません。
Perlでは簡単にできるのに、PHPではできないということなのでしょうか。
0710nobodyさん
2009/10/24(土) 10:26:53ID:???「日本語言語パック」というパッチのような物をあてないと
ちゃんと使えないんですかね?
今利用を検討しているんですが、できるならパッチをあてないで利用したいんですが。。。
0711nobodyさん
2009/10/24(土) 18:08:33ID:???0713nobodyさん
2009/10/24(土) 20:48:02ID:???0714nobodyさん
2009/10/24(土) 20:50:41ID:???0715nobodyさん
2009/10/24(土) 22:15:23ID:???と言う事はcodeigniter本家からの
ダウンロード版では日本語を正しくメールできないという事???
もしそうなら、本当にダサ 何だそれって感じだ。
0716nobodyさん
2009/10/24(土) 22:25:43ID:???どのフレームワークも件名化けたりする
0718nobodyさん
2009/10/24(土) 22:38:00ID:???0719nobodyさん
2009/10/24(土) 22:54:19ID:TTN2cu8lできました。
ありがとうございました。
0720nobodyさん
2009/10/24(土) 22:57:13ID:TTN2cu8l補足です。
できたんですが、データベースドライバが余計なことして
バイナリをエスケープ文字列にエンコードしてたので、
デコードして渡してやる必要がありました。
0721nobodyさん
2009/10/25(日) 12:12:30ID:???ご協力を。。。
0722nobodyさん
2009/10/25(日) 13:42:05ID:???どっち使ってもいいんじゃないの
0723nobodyさん
2009/10/25(日) 13:43:14ID:XqTgHkg+> CakePHPと比べた場合CodeIgniterが
勝る所
速度
柔軟性
最小限の知識で開発を開始できる
劣る所
無理やり規則に従わせることができない。
0724nobodyさん
2009/10/25(日) 13:51:58ID:???道が分からない時は人に聞くのが一番良いだろう
0725nobodyさん
2009/10/25(日) 14:06:37ID:???道順は目的地にたどり着くこと自体が目的だろうけど、
違いを調べるってのは仕組みを理解すること自体が目的なんだし。
0726nobodyさん
2009/10/25(日) 14:45:13ID:???言語パック入れないと、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を使ったことがあるけど、どちらも日本語メールはデフォルトの
メールの送り方では文字化けした。国産フレームワークじゃない限り期待しない方が良い。
0727nobodyさん
2009/10/25(日) 15:29:15ID:???多分その言語パック(パッチ)内でmailがmb_send_mailに変更になってたり
dateがstrfdateになってたりしてるんじゃ?
まあ自分で対処しても同じのはそのとおりだが
0728nobodyさん
2009/10/25(日) 15:30:41ID:???0729nobodyさん
2009/10/25(日) 20:00:58ID:XqTgHkg+ランダムなレコードを得ようとして下記を実行すると
得られるレコードが毎回一定になってしまいます。
$this->db->query("select * from mytable order by random limit 1");
psqlのコマンドラインから直接sqlを打つとランダムな結果になります。
一回ごとにpsqlを抜けてもきちんと各回ごとにランダムになります。
ci経由でランダムにならないのがどういう理由かわからずに困っています。
ご教授ください。
0731nobodyさん
2009/10/26(月) 01:08:16ID:???またもしできたとして、その一部分を表示するときにだけ必要なデータはどのように渡しますか。
つまり
<!-- ここからキャッシュ する-->?x2028;<?php foreach ($list as $x) { ?>
<p><?php echo $x; ?></p>
<?php } ?>?x2028;<!-- ここまで -->
というテンプレートの場合、表示するときには$listが必要ですが、キャッシュが効いているときは
$listは必要ないので、こういうときは$listを用意したくないんですけど、そんなややこしいことはできるでしょうか。
?x2028;
0732nobodyさん
2009/10/26(月) 22:20:23ID:8gDLhYd4ビンゴ!でした。
デフォルト設定のままにしてたので全く考えもしませんでした。
たすかりました。ありがとうございます。
0733nobodyさん
2009/10/26(月) 23:34:34ID:???出来ない、と思う
なので、おれは自作でコントローラ内で
キャッシュチェックして、必要があればHTML生成、なければキャッシュからって感じでやってる。
0734nobodyさん
2009/10/27(火) 15:19:56ID:NhIspLrL具体的には↓こんな操作をしたいのですが,
SELECT * FROM mytable WHERE '{abc}' && hairetsu;
次の文ではうまくゆかないようです.
$this->db->get_where('mytable', array("'{abc}' &&", "hairetsu" ));
また,これに相当するようなARメソッドはマニュアルには書かれていないようです.
0735nobodyさん
2009/10/27(火) 20:43:28ID:???日本語サイトを作るのに何か問題があるでしょうか?
codeigniterを使うか、kohanaを使うか迷っています。
0736nobodyさん
2009/10/28(水) 09:57:15ID:yVI01h7O自己解決しました。
get_whereでなく、単独のwhereを使えばよいようです。
0737nobodyさん
2009/10/28(水) 10:31:55ID:???kohanaいいよ。新しいだけあってかなり洗練されてる。
ただ3.0に関してはDocsが揃ってない。日本語に関しては全く問題なし。
0738nobodyさん
2009/10/28(水) 13:37:17ID:???0739nobodyさん
2009/10/29(木) 22:30:02ID:9YMY5qNb使うとすればどんなのがいいのでしょう?
Ajaxはどうですか?
0740nobodyさん
2009/10/29(木) 22:36:11ID:???釣りだと言ってくれ
0741nobodyさん
2009/10/29(木) 22:42:17ID:9YMY5qNbテンプレートエンジンとAjaxライブラリはどんなのを使ってますか?
と書くべきでした。
SmartyとかPHPTALと組み合わせるというのは見つけたのですが
どんなもんなのかと思いまして。
Ajaxについてはあまりわかりませんでした。
0742nobodyさん
2009/10/29(木) 22:55:25ID:???0743nobodyさん
2009/10/30(金) 00:30:08ID:p/L2o0l6存在意義なし?
0744nobodyさん
2009/10/30(金) 00:59:55ID:???どの言語にしたってテンプレートエンジンは流行ってないな
0745nobodyさん
2009/10/30(金) 09:23:35ID:p/L2o0l60746nobodyさん
2009/10/30(金) 10:23:31ID:???0747nobodyさん
2009/10/30(金) 10:25:30ID:???フレームワークが何だろうが、そんなの関係ないし。
0748nobodyさん
2009/10/30(金) 11:44:13ID:+JS8PV0u相性がいいかどうかわからんけど、Ajaxフレームワーク比較
ttp://journal.mycom.co.jp/news/2008/10/08/034/index.html
0749nobodyさん
2009/10/30(金) 11:52:50ID:???0751nobodyさん
2009/10/30(金) 12:27:07ID:???0752nobodyさん
2009/10/30(金) 14:50:51ID:???テンプレートエンジンを使うとすればどんなのがいいのでしょう?
↓
使わないのがいいでしょう
↓
客からの指示で、smarty必須ってなってる ←意味不明
自分で全部やれるなら楽だよな ←意味不明
(これから採用する人の話であってお前の客の話なんて知ったこっちゃない)
0753nobodyさん
2009/10/30(金) 15:25:15ID:???0754nobodyさん
2009/10/30(金) 15:27:02ID:???誰が正当かなんてどうでもええねん
0755nobodyさん
2009/10/30(金) 22:06:59ID:p/L2o0l6AjaxのほうはjQueryが軽量コンパクトを売りにしてて伸び盛りのようです。
同じく軽量コンパクトを売りにしてるCIとはベストマッチじゃないでしょうか。
0756nobodyさん
2009/10/30(金) 22:11:18ID:???0757nobodyさん
2009/10/30(金) 23:37:06ID:???相性云々言われても困るんだけど
ぶっちゃけAjaxライブラリにとってはサーバサイドのアプリケションが
何で書かれてようが知ったこっちゃ無いんだし相性もクソも何もない
0758nobodyさん
2009/10/31(土) 00:32:11ID:???ありがちな操作を、最小のコード量で書く事に特化していて、かつ習得しやすいので普及率が高いだけ。
(そういう意味では、設計思想がPHPに近いのかもな、今思いついたが)
だから、jQueryに「できないこと」に手を出そうとすると非常に面倒になる。
それと、JavaScriptライブラリが軽量でコンパクトである事と、PHPフレームワークが軽量でコンパクトである事の関連性が良く分からない。
軽量フレームワークと軽量JSライブラリで、なんで「相性が良い」という結論になるんだ?
相性が悪いと言ってるわけじゃなく、単に論理展開、関係性が良く分からない。
つうか、ざっと簡単なアプリなり小物ライブラリでも作ってみりゃいいだろ。
机上の空論で初心者がライブラリの良し悪しを判別できるわけがない。
0759nobodyさん
2009/10/31(土) 00:51:18ID:???0760nobodyさん
2009/10/31(土) 01:07:41ID:???駄目なものは駄目と言うしかない
0761nobodyさん
2009/10/31(土) 08:09:34ID:???わけのわからん基準で良い悪いを決める話じゃないってことだろ?
あれだ、本質を理解した上で用途に合わせて判断しろっていう、
当たり前のことを行ってるだけだ。
0762nobodyさん
2009/10/31(土) 09:42:56ID:RCXnHmtWどこがどうダメなんですか?
本質を理解した上で用途に合わせて判断ですか。
ご自身は本質を理解して判断されているのですね。すばらしい。
私には何が本質で何を基準に判断したらいいか皆目見当がつかないのですが
どんなところに注目すれば、本質を理解できるのでしょうか?
判断の基準は、例えばどんなところにおかれているのでしょうか?
0764nobodyさん
2009/10/31(土) 10:41:20ID:???というか、prototype.jsとの2択しか無い気がするが。
勉強するんだったら、このどっちかにしとくべき。
結局は、オープン系は何を使うにも主流どこに乗っとかないと
後々面倒だよ。スクラッチで作れるだけの力が無いのであれば。
0765nobodyさん
2009/10/31(土) 13:52:37ID:???0766nobodyさん
2009/10/31(土) 15:11:23ID:RCXnHmtW参考になりました。
ありがとうございます。
>>765
jQueryはGET使えないの?
だとしてもCIはデフォルトでGETを使わないようになってるから
問題ないと思います。
0767758
2009/10/31(土) 17:33:58ID:???> どんなところに注目すれば、本質を理解できるのでしょうか?
何かができるものは、絶対に何かを犠牲にしている、という点。
俺の書き込みが「jQueryはダメ」に見えたのなら、それはお前の経験不足。俺はjQuery信者だからな。
あと、理解したいならガタガタ抜かさずコード書け。
protojsとjQueryは併用できるしどっちかを選ぶようなものじゃないが、単独で込み入ったものを作るならprotojsが圧倒的に強い。
ただし>758でも書いたように、8割方のケースではjQueryのほうが圧倒的に早く作れる。
つまりどっちが向いているかは、どこまでをJSで処理し、どこからをサーバーサイドで処理するかによる。
0769nobodyさん
2009/10/31(土) 20:41:12ID:RCXnHmtWよくわかりました。ありがとうございます。
八割方のケースでjQueryが早くできること、
込み入ったことはprotojsが向いていることがわかって助かりました。
まあ、GoogleがjQueryを採用しているらしいので、
できないことというのも相当特殊なものかもしれません。
あと、その、サーバサイドでやることが、CIで補完しやすいとは限らないということですね。
0771nobodyさん
2009/10/31(土) 23:50:09ID:???CIではGETを使えるので、そこを問題にしていたとは気づきませんでした。
デフォルトではセキュリティ上の理由から使えないようにしてあると
初期設定のチュートリアルにかかれてます。
0772nobodyさん
2009/11/01(日) 21:33:49ID:???っていうかスレ違いなんだぜ
0773nobodyさん
2009/11/02(月) 14:12:06ID:???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)で対応できていますが、検索条件が多くなったらどうしよう…><
0774707
2009/11/02(月) 14:19:16ID:???=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だから助かるな〜
0775nobodyさん
2009/11/02(月) 14:19:28ID:???0776nobodyさん
2009/11/02(月) 14:24:46ID:???CIには簡易のテンプレート機能が用意されてるから、それ使ってみれば?
ttp://codeigniter.jp/user_guide_ja/libraries/parser.html
テンプレートパーサクラスを使うと、ビューファイルに含まれる擬似変数を解析できます。
ビューページで純粋なPHPを使う方が少し早いので、CodeIgniterでは、このクラスを必ずしも 必要としません。しかし、PHPのコードで混乱してしまうデザイナーと一緒に仕事をしている場合、開発者の中には、テンプレートエンジンを使用したい人もいると思います。
ドリームウィーバーでHTMLが崩れなければ、Smartyは要らないよ(^^)v
0777nobodyさん
2009/11/02(月) 22:26:52ID:???別に禁止にしなくても・・・。
0778nobodyさん
2009/11/02(月) 22:48:46ID:WSpfQV0jデフォルトでオフなだけで禁止はされてないよ?
オフのままでもセグメントで指定できるから不便もないと思うけど。
0779nobodyさん
2009/11/03(火) 03:12:02ID:???PC版のみのサイトなら安心して使える。
今、携帯対応するのにindex.phpの冒頭で$_GET['guid']がセットされていたらunsetする処理を
足して使ってる。我ながら情けないけど、他にうまい手段が見つからない。
0780nobodyさん
2009/11/03(火) 12:01:34ID:???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 をさくらで動かしている方、アドバイスお願いします!
0781nobodyさん
2009/11/03(火) 12:20:06ID:???これでどうだろ
■ このスレッドは過去ログ倉庫に格納されています