Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Корректность кострукции
Форумы портала PHP.SU » » Вопросы новичков » Корректность кострукции

Страниц (1): [1]
 

1. nordghost - 02 Мая, 2012 - 20:05:50 - перейти к сообщению
насколько будет коректна такая конструкция и не является ли она быдлокодерской?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. class addnews{
  5.     public $author;
  6.     public $title;
  7.     public $short;
  8.     public $full;
  9.    
  10.     function __construct() {
  11.         if(!isset($_POST['author']) and !isset($_POST['title']) and !isset($_POST['short']) and !isset($_POST['full'])){
  12.        
  13.             $this->author=$_POST['author'];
  14.             $this->title=$_POST['title'];
  15.             $this->short=$_POST['short'];
  16.             $this->full=$_POST['full'];
  17.        
  18.         }
  19.     }
  20.    
  21.    
  22.    
  23. }
  24. ?>
  25.  
  26.  
  27.  
2. EuGen - 02 Мая, 2012 - 20:07:47 - перейти к сообщению
nordghost
Является таковой. Потому что стоит разделять валидацию, обработку данных и работу с моделью - это во-первых. Во-вторых, подобный класс не является контекстно-независимым, так как зависит от внешних данных. По сути - это случай side-effect и переносимость такого кода под большим вопросом.
3. LIME - 02 Мая, 2012 - 20:08:11 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. isset($_POST['author']) and !isset($_POST['title']) and !isset($_POST['short']) and !isset($_POST['full'])
  2. isset($_POST['author'],$_POST['title'],$_POST['short'],$_POST['full'])
4. nordghost - 02 Мая, 2012 - 20:09:49 - перейти к сообщению
side-effect

если можно поподробнее об этомм
5. LIME - 02 Мая, 2012 - 20:09:55 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function __construct($var1,$var2...)

а туда уже передавать пост после валидации
(Добавление)
и сделать их приватными
6. nordghost - 02 Мая, 2012 - 20:11:57 - перейти к сообщению
а вот всегда ли есть надобность создавать конструктор(как хороший тон программинга) или необезательно?
7. LIME - 02 Мая, 2012 - 20:14:46 - перейти к сообщению
это необязательно но чаще целесообразно имхо
если делаете убедитесь что это полезно
8. caballero - 02 Мая, 2012 - 20:16:19 - перейти к сообщению
Цитата:
стоит разделять валидацию, обработку данных и работу с моделью

тогда этот быдлокод превратится в индусский код

Цитата:
а вот всегда ли есть надобность создавать конструктор(как хороший тон программинга) или необезательно?

когда надо выполнить инициализацию полей объекта
9. EuGen - 02 Мая, 2012 - 20:23:14 - перейти к сообщению
caballero
У каждого свои понятия о подходе. Есть среди этих мнений и такое, что класс должен реализовывать ту и только ту сущность, для которой он нужен (я исходил из названия).
По поводу конструктора - вопрос уходит корнями в объектный подход (пресловутое ООП), но не в "хороший тон".
10. nordghost - 02 Мая, 2012 - 20:24:30 - перейти к сообщению
где лутше будет фильтровать данные из формы полученые постом, создать отдельный клас или напрямую используя функциональное программирование?

 

Powered by ExBB FM 1.0 RC1