如何避免在PHP中传递同一类中的对象


How to avoid passing object in the same class in PHP?

My class看起来像:

class MyDBClass extends SQLite3{
        function __construct()
        {
            $this->open('/path_of_file');
        }
        public function saveArticle($product, $dbObject){
            try{
                $title = sqlite_escape_string(strip_tags($product['title']));
                $productInsertQuery = "INSERT INTO Products (Title) VALUES (:title)";
                $query = $dbObject->prepare($productInsertQuery);
                $query->bindValue(':title', $title, SQLITE3_TEXT);   
                $result = $query->execute();
            }
            Catch(Exception $e){
                echo $e->getMessage();
            }
        }
    }

我将它命名为另一个类,如:

$this->dbObject->saveProduct($product, $this->dbObject);

我怎么能避免传递$this->dbObject在同一类的起源,我可以传递任何引用或做其他事情吗?或者这样做是可以的吗?

$query = $this->prepare($articleInsertQuery);

可能会有所帮助。由于您现在不需要$dbObject,您可以从参数列表中删除它。

使用工厂模式获取DB对象,而不是每次需要时都创建它。您可以创建一个新的工厂类,它可以存储每次需要时初始化和返回的DB对象的实例。例如,可以从已经创建的DB对象池中检索DB对象。