ここでスパムや宣伝をしようとはしていません。私はこのコミュニティと、質問に答える時間を喜んで諦めている人々(私のように)を大切にしています。私はWolfAuthと呼ばれるCodeigniterの認証ライブラリを構築しました。現在、追って通知があるまで、すべてのデータベースの相互作用をDataMapperに依存しています。
各関数は現在、次の行に沿ってコードを使用しています。
$u = new User;
$u->get_by_id($user_id);
if ( $u->exists() )
{
// Do user stuff here
}
PHPがオブジェクトのインスタンス化をどのように処理するかは完全にはわかりませんが、50の関数でこれを実行すると、パフォーマンスが向上せず、そうでない場合は、不要なオブジェクトのインスタンス化が追加されます。使用している各DataMapperモデルオブジェクトのグローバルインスタンス化を行い、各関数で再利用することは可能ですか?
だから次のようなもの。
class Someclass {
protected $user;
protected $group;
protected $roles;
public function __construct()
{
$this->user = new User;
$this->group = new Group;
}
public function the_user($user_id)
{
$user = $this->user->get_by_id($user_id);
if ( $user->exists() )
{
echo "The user exists!";
}
}
}
私はここで非常にうるさいのですか、それとも私が求めていることは可能であり、おそらく私が構築したような大きなライブラリのために物事を行うためのより良い方法ですか?