Php Prestashop中的重写是如何工作的

Php Prestashop中的重写是如何工作的,php,prestashop,prestashop-1.6,prestashop-1.5,Php,Prestashop,Prestashop 1.6,Prestashop 1.5,当我们在重写类中模拟一个函数时,Prestashop是简单地将整个函数替换为原始函数,还是将其附加到它。例如 /mymodule/override/classes/Product.php: class Product extends ProductCore { public function add() { // some function } } 它是要附加某个函数,还是要替换整个类。你应该调查一下 您仍然可以通过在代码中添加parent::add()来执行覆盖中的

当我们在重写类中模拟一个函数时,Prestashop是简单地将整个函数替换为原始函数,还是将其附加到它。例如

/mymodule/override/classes/Product.php:

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

它是要附加某个函数,还是要替换整个类。你应该调查一下

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

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

简而言之,它将取代整个功能。你应该调查一下

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

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

问问题之前你做了一些测试吗?另外,这不是一个特定于Prestashop的问题,而是一个简单的PHP传统用法。您应该检查PHP中的类传统,特别是
扩展
关键字。@FlorianLemaitre感谢您的帮助。我想问的另一件事是,你知道一种创建新的
产品类型的方法吗。如果是的话,你能告诉程序吗?嗯,不幸的是,没有简单的方法可以做到这一点。这些产品类型在Prestashop中到处都是硬编码的,您需要覆盖很多类。我不建议你这样做。你在问问题之前做了一些测试吗?另外,这不是一个特定于Prestashop的问题,而是一个简单的PHP传统用法。您应该检查PHP中的类传统,特别是
扩展
关键字。@FlorianLemaitre感谢您的帮助。我想问的另一件事是,你知道一种创建新的
产品类型的方法吗。如果是的话,你能告诉程序吗?嗯,不幸的是,没有简单的方法可以做到这一点。这些产品类型在Prestashop中到处都是硬编码的,您需要覆盖很多类。我不建议你做这件事。