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

时间:2013-06-08 19:47:35

标签: php oop design-patterns object

我的班级看起来像:

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,我可以传递任何引用或做其他事情吗?或者可以这样做吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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