【发布时间】:2018-03-16 08:43:21
【问题描述】:
我需要一些帮助。我正在开发一个更大的 php 应用程序,并在这个框架中使用不同类型的函数。
但我不知道最佳实践是如何制作一个包含不同函数的函数,但这些函数在不同的文件中分开以便于分类。
让我展示我想要的,我只想调用一个简单的函数,然后在其中公开不同的函数。像这样
$input = app::getInput();
$input->filter('this string');
$input->validate('other string');
但是在不同的文件中有这些不同的功能。 现在我正在这样做,但我认为这不是最佳做法,我不知道如何做得更好。
file: app.php
class app {
public static function getInput {
return new Input;
}
}
file: inputFilter.php
abstract class InputFilter {
public function filter() {
}
}
file: inputValidate.php
abstract class InputValidate extends InputFilter {
public function validate() {
}
}
file: inputHelper.php
class Input extends InputValidate {
public function someorhterfunction(){
}
}
这将公开上面示例中要使用的函数,但是我如何产生相同的结果,而不必每次我想给输入一个新函数时都扩展类?
希望这是有道理的......
编辑:好的,缺少一点是因为我希望能够扩展 InputValidate 和 InputFilter 以提供更多功能。
【问题讨论】:
-
为什么要这样做?我真的看不出任何意义。在基类中声明所有这些抽象函数并从中扩展不是更有意义吗?
-
无论如何,
Input不是InputValidate。从另一个类扩展一个类必须尊重它们之间的语义“is-a”关系。您可以改为使用相应的方法创建单独的类,例如InputValidator等,这些方法可以接收输入(值)作为参数。