MySQL veritabanından bir dinamik Nav Yaratma için daha fazla bu PHP komut dosyası optimize edebilirsiniz?

3 Cevap php

Ben repeative projelerde kullanmak için yeni bir CMS üzerinde çalışıyorum. Temelde bu kod yığın, bir sunucuya bağlanır, tüm tabloların isimlerini kapmak ve basit bir navigasyon oluşturmak için bunları kullanır. Ben belki daha bu kod sniplet optimize etmek ve daha da basit yapabilirsiniz, ancak ben sadece merak ediyorum gerekenler için oldukça harika çalışıyor. Belki biçimlendirme özelleştirmek olabilecek bir sınıf yapma? Vs Ben mümkün olduğunca "çıplak kemikleri" olarak yapmaya çalıştım.

Ben açıklamak istiyorum orada tek şey tablo adı bu benim CMS veri kadar veri olarak ön ucunda görüntülemek için bilmek için kullandığı varsayılan bir tablo olduğunu "içeren" olup olmadığını görmek için denetler olduğunu .

   <?php

              echo '<div class="dynamic_nav_head">Navigation</div>';
              echo '<div class="dynamic_nav">';
                include('data.php');
                $tables = mysql_list_tables($database);
                  while (list($table) = mysql_fetch_row($tables)) {	
                            if($table!='includes'){
                	  echo "<div class='cat'>".ucwords($table)."</div>";
                              echo "<div class='cat_item'>";
                                echo "<a href='?page=read&section=".$table."'>View " . ucwords($table) . "</a>";
                              echo "</div>";
                	  echo "<div class='cat_item'>";
                                echo "<a href='?page=add&section=".$table."'>Add New ". ucwords($table) ."</a>";
                              echo "</div>";
                            }  // End If not in Includes.
                  } // End While
              echo '</div>';
 ?>

Ben bu kod bile yalın, daha temiz ve daha swift yapmak konusunda herhangi bir öneriniz? Şimdiden teşekkürler!

Edit: MySQL Version: 4.1.22

3 Cevap

Ben ziyaret öneririm http://refactormycode.com/

        echo '<div class="dynamic_nav_head">Navigation</div><div class="dynamic_nav">';  // on less echo
        include('data.php');
        $tables = mysql_list_tables($database);
          while (list($table) = mysql_fetch_row($tables)) {     
                    if($table!='includes'){
                          $ucTable= ucwords($table); // just one function call
                           //  just one echo;
                           // you where also using quotes and double quotes backwards

                           echo '<div class="cat">'.$ucTable.'</div><div class="cat_item"><a href="?page=read&section='.$table.'">View ' .$ucTable.'</a></div><div class="cat_item"><a href="?page=add&section='.$table.'">Add New '. $ucTable .'</a></div>';
                    }  // End If not in Includes.
          } // End While
      echo '</div>';

Nasıl kod yavaş olduğunu biliyor musunuz? Lütfen profiler kodu hakkında ne diyor? Ifadelerden hangisi onu yavaşlıyor? Hangi platform vardır? Mysql sürümü nedir? Kaç tablo bu katalogda vardır? Eğer erken optimizasyon şikayetiniz var mı?

Kod kötü değil. Okunabilmesi için bir iyileştirme de veritabanından bir dizi oluşturmak yerine inşa 'while' içinde mysql_fetch_row sahip olacaktır. Bu aynı zamanda döngü girmeden önce istenmeyen adlarını süzmek için izin verecek. Ayrıca while döngüsü yapının dışında bu almak için izin dizisinde ucwords yöntemini harita olabilir. Çift tırnak hakkında nokta geçerli biridir ama bu gerçekten burada kayda değer bir fark yaratmak için gitmiyor beri okunabilmesi için ayrı yankı ifadeleri devam edecek.

Umut olur.