Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: ООП - логика построения

Сообщения:  [1-2] 

 
 автор: cheops   (24.12.2011 в 15:45)   письмо автору
 
   для: OLi   (24.12.2011 в 15:36)
 

>Стопор в том, что не могу все эти методы правильно задействовать - последовательно.
Вы исключительно точно описали свою ошибку. Последовательно задействуются функции процедурного языка. В ООП у вас не должно быть привязки к последовательным действиям, так как модель событийная, ваш класс должен работать таким образом, чтобы перестановка методов не была фатальна, если один метод требует, чтобы он был вызван раньше другого - переделывайте структуру, объединяйте методы, думайте. В любом случае это не ООП и пользы от этого нет - только вред. ООП требует больше кода, и если вы не пользуетесь его преимуществами, вы просто программу переписываете более длинным способом без выгоды для себя.

  Ответить  
 
 автор: OLi   (24.12.2011 в 15:36)   письмо автору
 
 

Доброго. Пытаюсь обычный стиль программирования подвести к ООП
_______________________
У меня возникло много вопросов по поводу организации логики взаимодействия методов в класс и их последовательного вывода.
________________________
<?
include_once 'rs.php';// Класс рисайза картинок

class show_bitva {
    
var 
$date_create;
var 
$balls_bitva;
var 
$count_bitva;
var 
$name_bitva;
var 
$name_partner;


    function 
__construct() {
        
session_start();
    }





function 
check_input_bitva () {
    
$fields=array('question','name_l','name_r','category','image');
    
    
    
 
foreach (
$_POST as $key=>$id) {
echo 
$this->$key;
if (
in_array($key,$fields)) {

    if (!empty(
$id)&& strlen($id)>3) {
        
        
        
        if (!
is_array($_SESSION['bitvi'])) {
    
$_SESSION['bitvi'] = array();
}
$_SESSION['bitvi'][]=$id;
        
        
        
        
    }else {
        
        
        
        
$error[]=$key;
        
        
    }




}

}
   
return 
$error;
 
    
}

public function 
print_error() {
    
    foreach (
$error as $key) {
        
        echo 
$this->$key;
        
        
    }
    
}

/*function load_image() {


$size=1024*2*1024;
$count=4;
$path="bitvi_images/";
$path_min="bitvi_images/min/";
$error_file=array();

$valid_extensions = array(1 => 'gif',    2 => 'jpg',
                         3 => 'png',    4 => 'PNG',
                         5 => 'JPG',    6 => 'JPEG',
             7 => 'gif',    8 => 'GIF'
                         );


                         
                          function getExtension4($filename) {
    return substr(strrchr($filename, '.'), 1);
  }
                         
                         
                         if (count($_FILES['photo_car'])>0 && count($_FILES['photo_car']<=$count)) {




for ($i=0; $i<count($_FILES['photo_car']['name']); $i++)  
{



if (!empty($_FILES['photo_car']['name'][$i])) {
if($_FILES["photo_car"]["size"][$i] > $size)
   {
     $error_file[]='Превышен размер файла';
   }
   
   
  
   
   
   if (!in_array(getExtension4($_FILES["photo_car"]["name"][$i]), $valid_extensions))

   $error_file[]='Неправильно расширение файла';

    
    
    if($_FILES['photo_car']['error'][$i] == 0)  
    {  
         
if(is_uploaded_file($_FILES['photo_car']['tmp_name'][$i]))
   {
   $name.=$_FILES["photo_car"]["name"][$i].',';
    
     move_uploaded_file($_FILES['photo_car']['tmp_name'][$i], $path.$_FILES["photo_car"]["name"][$i]);
    
     
   $image = new SimpleImage();
   $image->load($path.$_FILES["photo_car"]["name"][$i]);
   $image->resizeToWidth(166);
   $image->save($path_min.$_FILES["photo_car"]["name"][$i]);
   
   } else {
     $error_file[]='Ошибка Р·Р°РіСЂСѓР·РєРё С„айла в„–'.$i;
   }     
     
        
    }  


}

} else {$error_file[]='Загрузите С…отя Р±С‹ 1 РёР·РѕР±СЂР°Р¶РµРЅРёРµ!';}
 
return $error_file;
}

*/






//function input_base_bitva() {}


}


if (isset(
$_POST['create_bitva'])){
$bitva = new show_bitva();
$bitva->check_input_bitva();
$bitva->load_image();
$bitva->print_error();


}
?>

<form action="#" method="post">
    <input type="text" name="question"/>
           <input type="text" name="name_l"/>
           <input type="text" name="name_r"/>
           <input type="file" name="image[]"/>
           <input type="submit" name="create_bitva" value="Создать битву"/>
           
           
           
</form>

В моем случае создается класс, в котором:
1) Хочу проверить данные от $_POST, если они корректны (не пустые), то вызвать следующий метод - метод загрузки фото, а если возникает ошибка, то ее вывести $error.
Вопрос в том, правильна ли моя логика построение текущего кода?
Не могу понять как быть, если возникла ошибка - вызывать метод print_error() когда и где? И когда и как вызывать метод загрузки фото?
________
Стопор в том, что не могу все эти методы правильно задействовать - последовательно.
Буду рад вашим разъяснениям и примерам.
Спасибо

  Ответить  

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования