Prestashop 中的覆盖是如何工作的

how overriding in Prestashop works

当我们在覆盖 class 中模仿一个函数时,Prestashop 是简单地将整个函数替换为原始函数还是附加到它。例如

/mymodule/override/classes/Product.php:

class Product extends ProductCore {
   public function add() {
      // some function
   }
}

它是要追加 // some function 还是要替换整个 class add()

简短的回答是它将替换整个函数。你应该看看 PHP classes heritage mechanism.

您仍然可以通过在代码中添加 parent::add() 来在覆盖中执行原始 Product add() 方法。

class Product extends ProductCore {
    public function add() {
        // do something before adding
        parent::add();
    }
}