Как правильно организовать ООП php

Делаю класс доступа к GET POST данным, там просто типа
<?
namespace core;

 class Requests {   
  
public static function GET($VarName, $Default = NULL)
  {
   return isset($_GET[$VarName]) ? $_GET[$VarName] : $Default;
  }


отдельным классом делаю стандартную обработку данных типа
<?          
namespace contr;

use core\Requests;
 
 class RequestPrepare extends Requests { 
   public static function correctData($data)
   {
     $data = strip_tags( (STRING)$data );
     $data = mysql_real_escape_string ( trim( $data ) );
    return ($data);
   }

   public static function correctInt($data)
   {
     $data = abs( (INT)$data );
    return ($data);
   }


Но проверяются всегда все входящие данные, числа через одну, строки через вторую. Сейчас так
$request = new contr\RequestPrepare ; 
 echo $request->correctInt( $request->GET('str') );


Это правильно? Или не очень...
  • Вопрос задан
  • 3031 просмотр
Решения вопроса 1
1. mysql_real_escape_string не будет работать без ресурса подключения.
2. забудьте про CAPSLOCK и почитайте, что такое camelCase, ваш код будет приятнее читать.
3. зачем статичные методы?
4. почитайте про паттерн (шаблон) проектирования - Singleton (одиночка), обычно объект Request реализуется именно так.
5. зачем нужно наследование в 2 класса?
6. вместо различных методов correct*, я бы переписал функцию получения следующим образом:
const STRING = 1;
const INT = 2;
// ...
function get($value, $default = null, $type = self::STRING) {
    if (! $value) {
        return $default;
    }

    switch ($type) {
        case self::STRING:
            $value = addslashes(trim(strip_tags($value)));
            break;
        case self::INT:
            $value = (int) $value;
            break;
        default:
            throw new Exception('Unknown type');
            break;
    }

    return $value;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pavel_salauyou
@pavel_salauyou
Symfony2 & Angular разработчик
непонятно зачем вам это, но есть пару замечаний если метод объявлен как статический то и вызывайте его как статический

public static function GET

Requests::GET('str');


return ($data); - зачем скобки?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы