のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,332,063人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - Rapyd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    401 : nobodyさん - 2008/06/16(月) 03:40:01 ID:??? (+100,+30,-251)
    >>396
    PHP初心者だけど、結構ありがたい本。
    環境構築からデバッグ方法、フレームワークの基礎的な概念も説明してるし。

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

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

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

    >>401
    フレームワーク自体に慣れてない人、初心者にとっては役立つ
    =CIのマニュアル代わりとして使う用途なら、紙ベースなので便利
    と思いました。
    404 : nobodyさん - 2008/06/17(火) 20:04:27 ID:??? (+57,+29,-19)
    他のFW本よりもわかりやすかったよ。
    CIそのものが簡単ということなのかな。
    405 : nobodyさん - 2008/06/24(火) 05:50:32 ID:??? (+62,+29,-80)
    404エラーページの取り回しダサくね?
    標準の処理と同じコンテクストで処理するのが自然なんだから
    エラー用のクラス名とメソッド名だけ指定するようにするべきだろJK
    しかもビューチフルにハックもしにくいし
    所詮ハゲが書いたFWか・・
    406 : nobodyさん - 2008/06/26(木) 00:50:52 ID:??? (+57,+29,-18)
    と、ハックに挫折したハゲが申しております。
    407 : nobodyさん - 2008/06/26(木) 00:55:50 ID:??? (+57,+29,-1)
    config周辺もひどい
    アメ公の美意識の低さは異常
    408 : nobodyさん - 2008/07/01(火) 04:00:36 ID:??? (-1,-29,-6)
    CIでXoopsモジュールとか作った人いたりする?
    409 : nobodyさん - 2008/07/02(水) 18:00:54 ID:??? (+3,-30,-107)
    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オブジェクトが取れてないようなんだけど、取れてない部分のエラーが出てこないのはなんで?
    410 : nobodyさん - 2008/07/02(水) 18:12:41 ID:??? (+46,+18,-9)
    ライブラリが登録されてなかった。

    でもエラーが出ないのはうんこだろ。
    412 : nobodyさん - 2008/07/03(木) 17:29:46 ID:EmmaV8CT (+19,-29,-80)
    管理者用の画面を作るときって どうやってる?

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

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

    ありがとう そだね

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


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


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

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


    一応 コアクラスの継承は

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


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

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

    誰か、筋の良いやり方を教えて
    417 : 412 - 2008/07/03(木) 18:12:02 ID:??? (+10,-30,-159)
    >>415

    ちょいウソあったw

    AppControllerじゃなくて MY_Controller だね

    /system/application/library/MY_Controller.php

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

    こんな感じ。

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

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

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

    コントローラ側で

    class bbs extends MY_Controller {
    }

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

    バグ?
    419 : nobodyさん - 2008/07/03(木) 18:57:59 ID:??? (+28,-30,-214)
    [/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
    420 : 412 - 2008/07/03(木) 19:38:23 ID:??? (+43,+10,-49)
    ぼけてた 釣ってくる…


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


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


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

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

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

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

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

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


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

    class Hoge_model extends MY_Model
    425 : nobodyさん - 2008/07/14(月) 11:55:08 ID:??? (+9,-30,-111)
    $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
    426 : nobodyさん - 2008/07/14(月) 12:05:24 ID:??? (+14,-30,-83)
    >>425
    Database に、escapeしないでsetする方法ってあったっけ?
    それがsetメソッドなら、
    $db->エスケープしないset('create_at', '式');
    $db->insert('テーブル名') でいけるような気がする。

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

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

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

    unix_to_human(time(),TRUE,'eu');
    431 : nobodyさん - 2008/07/15(火) 06:26:58 ID:??? (+29,-30,-247)
    うちでは、まず 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()みたいな安全だとわかっているものにしか使いませんが。
    432 : nobodyさん - 2008/07/15(火) 07:42:14 ID:??? (+10,-30,-95)
    >>431
    なんちゅうか、バッドノウハウの香りがw
    > gettype で 'string' でも 'boolean' でもNULL でもない値はスルーしてくれる
    っていう実装自体も、それに依存してるっていうのも、なんだかなあw

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

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

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

    で多分いけるね・・・ orz
    435 : nobodyさん - 2008/07/15(火) 13:10:36 ID:??? (+4,-30,-32)
    >>434
    でもそれだと
    $this->db->insert('tablename', array('created_at'=>'NOW()'));
    とかができないよね。
    431の方法のほうが個人的に好み。
    436 : nobodyさん - 2008/07/15(火) 13:15:25 ID:??? (+7,-30,-106)
    そういうの考えるのが面倒くさかったので、デフォで$this->db->insert($tablename, $valuearray);時は
    created_atに作成日時をつっこみ、$this->db->update($tablename, $valuearray);時はupdated_atに
    更新日時を突っ込むようにCI_DBを変更して使ってる。
    バッドノウハウなのは百も承知だが、symfonyから流れてきた人にはこれが手放せないのよorz
    437 : nobodyさん - 2008/07/15(火) 17:00:08 ID:??? (-1,-29,-30)
    >>436
    それはDBのNOW()やCURRENT_TIMESTAMP()を使うの?
    それともPHPのdate()を使うの?
    前者ならまねしたいなあ
    438 : nobodyさん - 2008/08/02(土) 09:47:59 ID:??? (+10,-17,-7)
    いつの間にか1.5から1.6になってる。
    なんかかわったの?
    440 : nobodyさん - 2008/08/03(日) 19:04:30 ID:??? (-6,-29,-1)
    kantigaidatta
    441 : nobodyさん - 2008/08/20(水) 20:18:05 ID:??? (+49,+21,-1)
    CI使ってる人間ってどれぐらいいるんだろうか
    442 : nobodyさん - 2008/08/20(水) 20:44:32 ID:??? (+23,+5,+0)
    17人
    443 : nobodyさん - 2008/08/22(金) 13:30:33 ID:??? (-1,-29,-6)
    CIってforward とか redirect とかはどうやるの?
    444 : nobodyさん - 2008/08/23(土) 00:51:34 ID:??? (-6,-29,-15)
    headerで自分で
    445 : nobodyさん - 2008/08/23(土) 01:26:31 ID:??? (-1,-29,-20)
    helperとか無かったっけ
    まあぶっちゃけ自分でheader(ほげほげ)書くのと変わらないけど
    447 : nobodyさん - 2008/08/25(月) 15:36:16 ID:??? (+9,-29,-3)
    448 : nobodyさん - 2008/08/26(火) 15:08:09 ID:??? (+33,+9,+1)
    >>447
    ありがとうございます!
    449 : nobodyさん - 2008/08/26(火) 15:24:29 ID:??? (+9,-30,-150)
    Routingについて質問です。
    ユーザーズガイドの例にあったのですが、
    $route['product/:num'] = "catalog/product_lookup";
    という設定をした場合、「:num」の値は Catalog->product_lookup() の中で
    どうやって取得すればいいのでしょうか。
    通常だと Catalog->product_lookup() の引数にこの値が渡されますが、
    試したところ、$route[] を設定した場合は渡されないようです。
    450 : nobodyさん - 2008/08/26(火) 15:37:11 ID:??? (+4,-30,-44)
    >>449
    英語のドキュメントに書いてありました。
    $route['product/(:num)'] = "catalog/product_lookup_by_id/$1";
    でいいみたいですね。
    お騒がせしました。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - Rapyd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について