MVC çerçevesinde SQL sorguları profili nasıl?

2 Cevap php

Ben kendi php MVC framework üzerinde çalışıyor. Ben sadece çerçeve üzerinde çalışan tüm sorguları profil nasıl sizin fikirlerinizi almak istedim. Ben diğer profil şeyler yaptık ama onlar profil açmak olmadığını görmek için kullanıcılar için çok sql sorguları profil nasıl net bir fikrim yok.

Teşekkürler

2 Cevap

Gerçekten istediğiniz ne kadar bilgi bağlıdır, ama sizin için biraz genel olarak ben bir şey düşünecektim bu (sınıfı veritabanı ile etkileşim için kullandığınız ne olursa olsun):

<?php
//Your Database access class
class DB{
    //Create private property for holding profiling data
    private $sqlDataProfile = array();

    function query($sql){
        $starttime = time();//Get the time before the query

        //Query and whatnot here

        //Start profiling here:
        $this->addSqlProfile($sql,$starttime);
    }

    //Get total number of queries run
    function getNumberOfQueries(){
        return count($this->sqlDataProfile);
    }

    private function addSqlProfile($sql,$starttime){
        //Create temporary array
        $tempArr = array(
          'sql'         => $sql,
          'time'        => time()-$starttime
        );

        //Push tempArr to the sqlDataProfile var
        $this->sqlDataProfile[] = $tempArr;
    }
}

$db = new DB;
$db->query('SELECT * FROM table');
echo $db->getNumberOfQueries();
?>

Bu tabii ki çok basit bir örnektir, ama bu şekilde hem çok kolay, hem de saklayabilirsiniz şeyler açısından oldukça güçlü olan olur. Örneğin, aynı zamanda bir sorgu tarafından etkilenen satırların sayısını saklamak, bir sorgu dokunur tablolar, vb sayısı

Zend Framework sizin için iyi bir örnektir. Bu web sitesi altında SQL sorguları görebilirsiniz. Kendi çerçevesi yazarsanız bu şekilde takip edebilirsiniz. Kullanıcılar tek bir boolean değişkeni açmak ya da kapatmak olabilir. Onlar, "true" olarak ayarlayın Eğer web sayfasında sql sorguları yazabilirsiniz. Bu çözüm ile kodlama MySQL sorguları çalışan görebilirsiniz.