ベストプラクティスの質問:別のクラスメソッド内に新しいオブジェクトを作成することについて不適切なことはありますか?以下に小さな例があります。
public function export() {
$orders = new Orders($id);
$all_orders = $orders->get_all_orders();
}
ベストプラクティスの質問:別のクラスメソッド内に新しいオブジェクトを作成することについて不適切なことはありますか?以下に小さな例があります。
public function export() {
$orders = new Orders($id);
$all_orders = $orders->get_all_orders();
}
あなたが与えた例は完全に受け入れられます。
たとえば、すべてのメソッドで同じオブジェクトをインスタンス化する場合は、代わりにオブジェクトをプロパティとして保存できます。
例:Ordersオブジェクトはコンストラクターでインスタンス化され、プロパティとして格納されます。
class Something
{
protected $orders;
public function __construct($id)
{
$this->orders = new Orders($id);
}
public function export()
{
// use $this->orders to access the Orders object
$all_orders = $this->orders->get_all_orders();
}
}
私の意見では、コンストラクターでOrderオブジェクトを渡す方が良いアプローチです。これにより、テストが容易になります。
それはすべて問題の全体像に依存します。明らかに、IDを別の場所のOrderオブジェクトに渡す必要があります。
class Something
{
protected $orders;
public function __construct(Order $order)
{
$this->orders = $order;
}
}