Php 最佳实践:类方法中的新对象实例化

Php 最佳实践:类方法中的新对象实例化,php,Php,最佳实践问题:在另一个类方法中创建新对象是否有任何不当之处?我有一个小例子如下: public function export() { $orders = new Orders($id); $all_orders = $orders->get_all_orders(); } 你举的例子完全可以接受 例如,如果在所有方法中实例化同一对象,则可以将该对象存储为属性 示例:Orders对象在构造函数中实例化并存储为属性 class Something { protect

最佳实践问题:在另一个类方法中创建新对象是否有任何不当之处?我有一个小例子如下:

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;
    }

}

不。你为什么认为这可能不好?不,你可能会有兴趣阅读一些关于面向对象编程的基础知识。这实际上是一般对象的一个很酷的特性。你能给我一个这样做的例子吗?@stevenpepe上面的代码离目标只有两步之遥,如果你能做到的话,也许值得采取这些步骤。