Совсем недавно начал изучение ОО, поэтому некоторые нюансы мне непонятны. Также могу допускать грубые ошибки.
Необходима ваша консультация и критика: в нужном ли я направлении движусь? Какие ошибки допускаю? Что делать нужно, а что нет?
Для практики поставил себе задачу создать объект чтения и проверки GET и POST данных. Старался делать хорошо и гибко.
Вот что получилось:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- // Извлечение и проверка _GET и _POST данных :::::::::::::::
- // 14.12.2010 Версия: 1.0.20 ::::::::::::::::::::::::::::::
- /*
- bool:результат = SetParameters ( array:имя_переменной=>метод_доступа ) - Установка имен параметров и методов, получение данных по параметрам
- bool:результат = CheckData ( int:тип_проверки ) - Проверка данных.
- SET_ONE - Установлен хоть один параметр? Вернет TRUE если это так.
- SET_ALL - Установлены все параметры? Вернет TRUE если это так.
- FULL_ONE - Хоть один параметр имеет данные? Вернет TRUE если это так.
- FULL_ALL - Все параметры имеют данные? Вернет TRUE если это так.
- array:данные = GetData () - Возврат ассоциативного массива с данными.
- Clear () - Очистка данных обьекта.
- Destroy () - Уничтожение обьекта.
- */
- class GetPostProcessing {
- // Параметры
- const _GET = 'g';
- const _POST = 'p';
- const SET_ONE = 1;
- const SET_ALL = 2;
- const FULL_ONE = 3;
- const FULL_ALL = 4;
- //
- private $Data;
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Конструктор - установка параметров при инициализации
- function __construct ( $paramlist = FALSE ) {
- // Проверка наличия данных
- if ( $paramlist != FALSE ) {
- // Установка параметров
- $this->SetParameters ( $paramlist );
- }
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Установка параметров
- public function SetParameters ( $paramlist = FALSE ) {
- $result = FALSE;
- // Проверяем массив ли
- // Это массив
- foreach ( $paramlist as $name => $method ) {
- // Проверяем формат каждого параметра
- $result = TRUE;
- // Вызываем метод чтения данных
- $this->Data [ $name ] = $this->_ReadData ( $name, $method );
- } else {
- // Ошибка формата параметра
- $this->Data [ $name ] = FALSE;
- }
- }
- }
- return $result;
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Проверка данных
- public function CheckData ( $type = FALSE ) {
- // Считаем кол-во элементов массива, проверяем
- // Определяем тип проверки
- switch ( $type ) {
- case self::SET_ONE:
- // Проверка отсутствия любого параметра
- $check = 0;
- foreach ( $this->Data as $name => $content ) {
- // Пошаговая проверка
- if ( $content !== NULL ) {
- // Параметр есть
- $check++;
- }
- }
- // Контрольная проверка
- if ( $check >= 1 ) {
- // Нет отсутствующих параметров
- $result = TRUE;
- } else {
- // Есть отсутствующие
- $result = FALSE;
- }
- break;
- case self::SET_ALL:
- // Проверка отсутствия всех параметров
- $check = 0;
- foreach ( $this->Data as $name => $content ) {
- // Пошаговая проверка
- if ( $content !== NULL ) {
- // Параметр есть
- $check++;
- }
- }
- // Контрольная проверка
- if ( $list_count == $check ) {
- // Хоть один параметр есть
- $result = TRUE;
- } else {
- // Все параметры отсутствуют
- $result = FALSE;
- }
- break;
- case self::FULL_ONE:
- // Проверка на "пустоту" любого параметра
- $check = 0;
- foreach ( $this->Data as $name => $content ) {
- // Пошаговая проверка
- if ( ( $content != '' ) and ( $content !== NULL ) ) {
- // Параметр не пустой
- $check++;
- }
- }
- // Контрольная проверка
- if ( $check >= 1 ) {
- // Нет пустых параметров
- $result = TRUE;
- } else {
- // Есть пустые
- $result = FALSE;
- }
- break;
- case self::FULL_ALL:
- // Проверка на "пустоту" всех параметров
- $check = 0;
- foreach ( $this->Data as $name => $content ) {
- // Пошаговая проверка
- if ( ( $content != '' ) and ( $content !== NULL ) ) {
- // Параметр не пустой
- $check++;
- }
- }
- // Контрольная проверка
- if ( $list_count == $check ) {
- // Хоть один параметр не пустой
- $result = TRUE;
- } else {
- // Все параметры пустые
- $result = FALSE;
- }
- break;
- default:
- // Ошибка типа проверки
- $result = FALSE;
- }
- } else {
- // Ошибка, нет данных
- $result = FALSE;
- }
- return $result;
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Возврат данных
- public function GetData () {
- // Извлекаем данные
- $result = $this->Data;
- return $result;
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Очистка обьекта
- public function Clear () {
- $this->Data = FALSE;
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Уничтожение обьекта
- public function Destroy () {
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Чтение данных
- private function _ReadData ( $name, $method ) {
- // Определяем метод доступа
- switch ( $method ) {
- case self::_GET:
- // Получаем данные
- $result = $_GET [ $name ];
- break;
- case self::_POST:
- // Получаем данные
- $result = $_POST [ $name ];
- break;
- default:
- // Ошибка метода
- $result = FALSE;
- }
- return $result;
- }
- // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- }