[生き残れるか]EC-CUBE[4店舗目]
■ このスレッドは過去ログ倉庫に格納されています
0574462
2009/09/21(月) 06:25:32ID:LYXClwZHEC-Cubeプロジェクトに取り込まれて鬱な462です。
requireはの使い道はいくつかあるのだけれど、基本的にそのファイル内で
使っているクラスが定義されているファイルを過不足なくrequire_onceするのが
正しい。require_base.phpで全部ロードしちゃえ、というのは、怠け者。
プログラムのどこかを修正して、それが全箇所でロードされていたら、
その影響範囲がどうしてわかるのか。システム全体をテストしなかったら
テストしたことにならないよね。
今僕はcronスクリプトを書いていて、DBハンドラーが必要となった。
さあ一体どのファイルを読み込んだらいいのか?SC_DBconnクラスで
ハンドラーが取得できるようだから、SC_DbConn.phpをrequire_once
すればよさそうだ。クラス名とファイル名が統一されているようで
されていないのもイライラするけれど、それはともかく
require(CLASS_PATH . '/SC_DbConn.php');
してみるとSC_DB_DBFactory_Exがないと言われる。SC_DB_DBFactory_Exが
必要なのはSC_DBconnクラスの事情なのであって、僕のcronスクリプトが
知っていないといけない話じゃないよね。
>>475でグローバルオブジェクトの参照の話が出てきているけれど>>476は
クラスの話をしているのだから話がちょっと噛み合っていないかな。
システム全体で一つしかないようなオブジェクトはシングルトンクラスで
作成するのが良い。SC_Dateはユーティリティークラスで、こういうものは
require_util.phpみたいなファイルで一括でロードするのも良いかもしれない。
ちなみにSC_Dateはアクセサーの意味が分かっていないPGが書いたクラスで
セッター、ゲッターと静的なデータ生成メソッドをのぞいたらほとんど何も
残らないしょうもないクラス。
>>477でロード時のオーバーヘッドの話が出ているけれどrequire_onceは
同じファイルは何度呼び出されても同じファイルは1度しか読み込まないから
気にしなくてよい。
■ このスレッドは過去ログ倉庫に格納されています