Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   OOP в PHP для начинающего (https://forum.antichat.xyz/showthread.php?t=193455)

up3gp 04.04.2010 22:07

OOP в PHP для начинающего
 
Учусь использовать классы и методы.

У меня много вопросов типа "а нафиг оно?" и почти нет типа "как это сделать".

Вот тут написал маленьки класс для создания форм.
Прокомментируйте его пожалуйса) ==>как вам оно=>мое начало.

PHP код:

<?php


class Form {
    
    private 
$method;
    private 
$type;
    private 
$field_type;
    private 
$field_name;
    private 
$field_value;
    private 
$field_class;
    
    public function 
form_open($method,$type)
    {
        
$this->method $method;
        
$this->type $type;
        return 
"<fomr method='{$this->method}' '{$this->type}'>";
    }
    
    
    public function 
field_create($field_type,$field_name,$field_value,$field_class)
    {
        
$this->field_type $field_type;
        
$this->field_name $field_name;
        
$this->field_value $field_value;
        
$this->field_class $field_class;
        
        return 
"<input type='{$this->field_type}' name='{$this->field_name}' value='{$this->field_value}' class='{$this->field_class}'>";
    }

    public function 
form_close()
    {
        return 
"</form>";
    }
    
    
}


?>


Gifts 04.04.2010 22:17

up3gp опечатка fomr вместо form

Взять процедуры, написать вокруг них class Super_Puper_Class - еще не ООП

up3gp 04.04.2010 22:25

Понимаю. Только не понимаю. Вот так.

Deathdreams 04.04.2010 22:27

Класс пустой + многое непонятно, зачем в нём вообще переменные ?

А если я хочу задать input только для чтения, то что ?

up3gp 04.04.2010 22:28

Тоесть, я просто для вывода формы, использовал класс. Это могла сделать и обычная функция. А как тогда реализовать класс для создания форм, чтобы он был объекто ориентированным классом , а не процеДурным.

up3gp 04.04.2010 22:30

Цитата:

Сообщение от Deathdreams
Класс пустой + многое непонятно, зачем в нём вообще переменные ?

А если я хочу задать input только для чтения, то что ?

я не думал об этом. Так как я такие поля не создаю. И скрытое тоже там не создаш)
"зачем в нём вообще переменные ?

" => сам не знаю. Я думал они там нужны)

up3gp 04.04.2010 22:33

Я ведь говорю какие у меня вопросы. А нафиг оно, задавать эти переменные в начале класса?

Deathdreams 04.04.2010 22:34

Тогда зачем вообще класс ?

Можно использовать отдельную функцию.

Вообще класс - "ниочём".

-----upd
Код:

public
Зачем ?
По дефолту он всегда паблик.

up3gp 04.04.2010 22:44

Цитата:

Сообщение от Deathdreams
Тогда зачем вообще класс ?

Можно использовать отдельную функцию.

Вообще класс - "ниочём".

-----upd
Код:

public
Зачем ?
По дефолту он всегда паблик.

пониманию.
Хотел научиться, но вышла ерунда.
А что в нем должно было быть к примеру? В классе для создания формы. Расскажите в теории кому не сложно.

DTW 05.04.2010 01:17

Почитай ее книгу "Объектно-ориентированное программирование на PHP", написанную сотрудниками нашей студии Кузнецовым Максимом Валерьевичем и Симдяновым Игорем Вячеславовичем

http://softtime.ru/files/s_2007_09_30_133933.gif


Я не профи

объект класса формы может содержать другие объекты
например объект класса элемент поля
от него может быть порожденный новый объект класса
текстового поле.

PHP код:


 
class Form 
   
{
       private 
$element;
       private 
$action;
       private 
$method;
       private 
$name;
       private 
$value;
       
       public function 
__construct($element,$action,$method,$name,$value)
       {
         
$this->element=$element;
         
$this->action=$action;
         
$this->method=$method;
         
$this->name=$name;
         
$this->value$value
       }
       public function 
cheak()
       {
           
       }
       
       public function 
viewform()
       {
        
$formview ="<form action='{$this->action}' method='{$this->method}' name='{$this->name}' >";
            echo 
$formview
          
               foreach(
$this->element as $el)
               {
                  
                  
                
$formview .=   $el->viewelement();
                   
               }
           
            echo 
"<input type='submit' value='{$this->value}'></form>";
       }
       public function 
__toString()
       {
           
$this->viewform();
       }
       
   }
   
   class 
Field {
       protected 
$style;
       protected 
$class;
       protected 
$name;
        public function 
__construct($style,$class,$name
        {
            
$this->style=$style;
            
$this->class=$class;
            
$this->name=$name;
        }
       
   }
   
   class 
Finput  extends Field
   
{
       private 
$type;
       private 
$value;
      
       
      public function 
__construct($type,$value,$name,$style="",$class="")
      {
        
         
parent::__construct($style,$class,$name);
          
$this->type=$type;
          
$this->value=$value;
         
      }
      public function 
viewelement()
      {
          
$viewelement="<input type='{$this->type}' value='{$this->value}'";
          if(!empty(
$this->class)){ $viewelement .="class='{$this->class}'";}
          if(!empty(
$this->style)){$viewelement .="style='{$this->style}'"; }
          
$viewelement .="name='{$this->name}'";
          
$viewelement .="/>";
          echo 
$viewelement;
      }
   }

   
$element = new Finput('text','textpole','my1');
   
$element2 = new Finput('text','textpole2','my2');
  
   
$form = new Form(array('element1'=>$element,'element2'=>$element2),'form.php','get','form1','send');
   
   
$form->viewform(); 



Время: 23:35