Ne ben sınıfa koymak ve ne şeyler yapmamalıyım gerekir?

3 Cevap php

PHP hemen sınıfları hakkında öğrenme yaşıyorum ve örnekleri gibi ..

class table { //makes a table
    private $tag ;
    function Begin($border=0, $align="center", $width='100%', $cellpadding=2, 
        $cellspacing=2, $class='', $id='', $bgcolor='', $style='') {
        $this->tag = '<table ' ;
        if ($align)              $this->tag .= 'align="' . $align . '" ' ;
        if ($width)              $this->tag .= 'width="' . $width . '" ' ;
        if ($border > 0)         $this->tag .= 'border="' . $border . '" ' ;
        if ($cellpadding > 0)     $this->tag .= 'cellpadding="' . $cellpadding . '" ' ;
        if ($cellspacing > 0)     $this->tag .= 'cellspacing="' . $cellspacing . '" ' ;
        if ($class)              $this->tag .= 'class="' . $class . '" ' ;
        if ($id)                  $this->tag .= 'id="' . $id . '" ' ;
        if ($bgcolor)              $this->tag .= 'bgcolor="' . $bgcolor . '" ' ;
        if ($style)              $this->tag .= 'style="' . $style . '" ' ;
        $this->tag .= ">" ;
        return $this->tag ;
    }

Sonra sadece örneğini ve bir tablo yapmak

$table =new table;
$table->$table($border=2, $align='center', etc);

Should I be coding like this where html, css are in classes? i feel making tables and forms this way is more confusing then actually just typing . Should I only put like validation, getting data from db, and the logic stuff in classes?

Ben değil, sınıfları ne kullanmalıyım?

3 Cevap

Bunu yapabilirsin ... şahsen ben yapmazdım.

Için nesneleri kullanın domain objects. Bir örnek olarak, Facebook için kaynak kodunu düşünün. Ben bir yerde Facebook kaynak kodu aşağıdaki bulacağını eminim:

class Friend
{
    // ...
}

Eşit ..., SO böyle bir şey bulmak istiyorum, PHP ile yazılmış edildi:

class Question
{
    var $originalPoster;
    var $answers = array();
    // ...

    function close()
    {
        // ...
    }
    // ...
}

Karmaşık fikirleri ve kavramları saklanması nesneleri kullanın. SO orada bir soru ile ilgili pek çok bilgi var, ama bir nesne bu bilgileri kozalayabilirsiniz.

Belki bu o kadar temiz olur. Daha iyi tüm tabloyu saklanması sınıfını genişletmek, ve bu yüzden bile bir şey izlemek zorunda değilsiniz yüklenme kullanmak için. Eğer gerçekten endişe gereken, geçerli HTML tablo özelliklerini kullanarak, HTML doğrulama olduğunu. Gerçekten, daha önce söylediğim gibi, sadece sizin fikirlerinizi düzenlemek istiyorum nasıl daha kolay yapmak istediğiniz ne kavramsallaştırma yapmak ve nesneleri.

Aşağıdaki çözüm, bu kadar sadece html doğrulama gibi nesne inşaat ve varsayılan değerleri ile ilgili olması gerekmez. Html tablo eleman parametrelerinin bir dizi (hatta isterseniz), sadece çok sonra parametreleri ile nesneyi aşırı yüklenebilir ile inşa sonra. Aynı zamanda kolayca satır ekleyebilirsiniz. Tamamen denenmemiş olsa ve aşırı basitleştirilmiş ...

Class My_table {
   private $table_def = array();
   public $rows = array();

   function __construct($attributes_array) {
      if (is_array($attributes_array)) {
         foreach ($attributes_array as $key => $val) {
            $this->__set($key, $val);
            }
         }
      }

   function __set($attribute, $value) {
      $this->table_def[$attribute] = $value;
      }

   function draw() {
      // write table opening tag
      echo "<table";
      foreach($table_def as $key => $val) {
         echo " $key='$val'";
         }
      echo ">";
      // write all rows out
      foreach($rows as $current_row) {
          echo "<tr>";
          foreach($current_row as $field_name => $field) {
             echo "<td>$field</td>";
             }
          echo "</tr>";
          )
      // finish table
      echo "</table>";
      }
}

$table = new My_table(array(
   "style" => "boarder: solid thin gray;",
   "width" => "100px"
   ));
$table->height = "200px";
$table->rows[] = array("name" => "someone", "email" => "a@a.com")
$table->draw();

Nesneler anything bunları istediğiniz temsil edebilir, ama öncelikle size yapıyoruz uygulamanın ne tür bağlıdır. PHP yazılım gerçekten HTML hakkında çok fazla umurumda değil eğer bir HTML için bir sınıfın sizi örnek alarak <table>, bir HTML öğesi için bir PHP sınıfı oluşturmak çok mantıklı yok.

Lütfen uygulama düşünün. Ne nesneler ile katılıyor? Örneğin, bir tek yazar günlüğü verilen mesajlar, yorumlar, kategoriler ve etiketler olabilir. Eğer sahip olmak isterdim gelen sınıflar, doğal, olması Post, Comment, Category ve Tag olur.

Umarım (o ... biraz geç geldi) mantıklıydı.