最佳实践问题:在另一个类方法中创建新对象有什么不妥之处吗?我在下面有一个小例子:
public function export() {
$orders = new Orders($id);
$all_orders = $orders->get_all_orders();
}
答案 0 :(得分:2)
你给出的例子是完全可以接受的。
例如,如果您在所有方法中实例化相同的对象,则可以将对象存储为属性。
示例: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();
}
}
答案 1 :(得分:0)
在我看来,在构造函数中传递Order对象将是一种更好的方法。这将使测试更容易。
这完全取决于问题的大局,显然需要将id传递给其他地方的Order对象:
class Something
{
protected $orders;
public function __construct(Order $order)
{
$this->orders = $order;
}
}