扩展/修改AddressInterface

时间:2017-05-17 14:24:39

标签: php oop interface sylius

我正在使用sylius/sylius-standard。我还创建了自己的包含一些新实体和模型的包。其中一个要求是扩展/修改当前的Sylius地址模型,但我注意到AddressInterface有几种我不想使用的方法,就像所有与FirstName相关的方法一样,姓氏和公司。据我了解OOP和PHP接口,我的新类或接口应该实现接口中声明的所有方法(根据official documentation)。

有没有办法可以利用Sylius地址模型提供的所有功能,但使用我自己的CustomAddressInterface

1 个答案:

答案 0 :(得分:0)

我认为你问题的根源是误解接口是什么。

接口是一份合同。如果一个类被声明为期望一个实例,并且具有特定的接口,则意味着该类的编写意图使用该接口中的方法。

如果您使用的是库,某些代码需要特定的接口,那么您必须实现它包含的所有方法。否则,您的自定义类实例将无法履行声明的合同。

  

注意:如果您看到代码,声明需要接口,    但实际上并没有使用该接口中的所有方法,该代码库违反了Interface Segregation Principle

修改

我想我必须拼出来:

  

有没有办法可以利用Sylius地址模型提供的所有功能,但使用我自己的CustomAddressInterface?