Я создал класс PHP, названный formChecker.php. Это проверяет форму. Как программист Java, я хотел бы придерживаться идеи создать экземпляр этого класса в другом классе и выполнить его оттуда. Это, кажется, не работает на меня. Следующее является демонстрацией:
class formChecker{
..... validation functions go here
}
class runFormChecker{
.... create instance of formchecker here and use it's methods etc.
}
Это может быть сделано? То, о чем я думаю, разрабатывает много классов, которые могут быть выполнены отдельно.
GF
Я бы предпочел передать экземпляр formChecker (или что-то, реализующее определенный интерфейс) экземпляру runFormChecker. см. http://en.wikipedia.org/wiki/Dependency_injection
Может быть так же просто, как
interface FormChecker {
public function foo($x);
}
class MyFormChecker implements FormChecker
public function foo($x) {
return true;
}
}
class RunFormChecker {
protected $formChecker=null;
public function __construct(FormChecker $fc) {
$this->formChecker = $fc;
}
// ....
}
$rfc = new RunFormChecker(new MyFormChecker);
Да, и это не странно. Обычно вы создаете экземпляр formChecker
внутри экземпляра runFormChecker
, но не на уровне класса.
Просто включите файл класса formChecker
непосредственно перед классом, в котором вы хотите его использовать, например:
include "formChecker.php"
class runFormChecker{
function __construct() {
$obj = new formChecker; // create instance
// more processing............
}
}
Если, однако, у вас есть оба класса в одном файле (что плохо), тогда нет необходимости включать файл, вы можете сразу создать его экземпляр, например:
class formChecker{
// ............
}
class runFormChecker{
function __construct() {
$obj = new formChecker; // create instance
// more processing............
}
}
Дополнительная информация здесь ....
Спасибо :)
{ {1}}