У меня есть класс Controller_Core, который ничего не делает на данный момент, но когда я хочу централизовать некоторый общий код, я могу его поместить.Защита данных от центральной точки (ядро контроллера)?
Мне интересно, можно ли работать наоборот, если у кого-то есть класс, который простирается от Controller_Core. Допустим, у обычного пользователя есть класс Controller_User. В этом классе я хотел бы автоматизировать добавление слэшей к предоставленным параметрам из каждой функции этого класса. Возможно ли это без объявления функции foo
в Controller_Core, которая делает что-то вроде mysql_real_escape_string
?
Другими словами, возможно ли использовать параметры auto-mysql-real-escape из метода в классе (ny)?
Используемый язык - это PHP.
-Обновление
Давайте предположим, что у меня есть этот код:
class Controller_User extends Controller_Core
{
public function Login($sUsername, $sPassword)
{
# the add-slashes action should be done automatically at this point without calling a specific for such functionality (thus; $sUsername and $sPassword should be 'add-slashed' from RunFromEachCalledExtendedFunction)
$bValidationResult = // some further code
return $bValidationResult;
}
}
class Controller_Core
{
public function RunFromEachCalledExtendedFunction
{
# some code to determine which method was called, then add-slash those parameters
}
}
$oControllerUser = new Controller_User();
$bLoginResult = $oControllerUser->Login("my username' OR 1=1", "my pwd");
Возможно: Да. Должны ли вы это сделать? *Конечно нет*. Пожалуйста, прекратите использовать ветхое расширение mysql. Если вы пишете OO-код, вы должны использовать современную библиотеку баз данных. Попробуйте PDO или mysqli. – Charles
Или любая эквивалентная функция для выполнения таких задач. Затем; как я могу выполнить автоматический вызов Controller_Core из любого расширенного метода без автоматического вызова '$ this-> MethodName()' – Ben
Можете ли вы разместить код примера, пожалуйста? Что у вас есть и что вы хотите, чтобы иметь возможность? Я не уверен, что понимаю. – Charles