我来自C#,我正在努力找出使我的代码可扩展的PHP方法.
让我们说比如我有一个函数来计算我建议的每日食物摄入量.它着眼于维生素,卡路里,矿物质......
我希望在我的应用程序中使用许多不同的食物对象以及查看食物不同方面的不同功能,因此我实现了一个IFoodNutrition界面并使我想要与我的函数兼容的食物类实现它.然后我声明我的函数将它作为arg
function GetRda(IFoodNutrition $food){}
Run Code Online (Sandbox Code Playgroud)
在C#中,我将指定我需要在接口中使用的所有属性,因此我知道实现它的任何类都将与此函数兼容.
令我头疼的是PHP只允许接口中的方法签名.
我的问题显然是范式的转变.我不确定PHP中的等效模式是什么.我已经阅读了文档,除非你从一个抽象类继承,但是你只能从一个类继承而不能以相同的方式工作,否则我看不到类似的替代方案.
由于PHP不是类型安全的,我不必创建接口.有人可以将任何对象发送到该方法,如果它具有正确格式所需的属性,它将起作用.这对我来说似乎并不合适,因为我已经习惯于如何在界面中解决事情的相互关系.
我觉得至少应该在验证对象的中间有一些额外的步骤,以及开发人员可以查看的一些明显的结构,然后直观地实现他们自己的类并在运行时看到错误.
这样的PHP中是否有特定的模式?