Soit mon modèle suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Application_Model_Tdocument extends Zend_Db_Table_Abstract {
 
	protected $_name = 'document';
	protected $_primary = 'id';
 
    public function init () {
 
		$profileur = $this->getAdapter()->getProfiler();
		$profileur->setEnabled(true);
 
		$this->profiler = $profileur;
 
    	$this->config_vars = Zend_Registry::get('config_vars');
 
    }
 
	public function getDocument ($pRefDoc, $pUserID) {
 
		try {
 
			$query = "
			SELECT id, ref
			FROM document
			WHERE companyId = 1";
 
			$return = $this->getAdapter()->fetchAll($query, null, Zend_Db::FETCH_OBJ);
 
			var_dump(__METHOD__.': '.round($this->profiler->getLastQueryProfile()->getElapsedSecs()*1000, 4).' ms');
 
			return $return;
 
		} catch (Zend_Db_Exception $e) {
 
		    Zend_Controller_Action_HelperBroker::getStaticHelper('Log')->queryLog($e->getMessage(), $query, __FILE__, __LINE__, __METHOD__, $_SERVER["REMOTE_ADDR"]);
 
		}
 
	}
 
}
qui me retourne

string(51) "Application_Model_Tdocument::getDocument: 0.0799 ms"
lorsque je l'utilise.

Ce qui me permet ensuite de logguer mes méthodes/temps d'exécution dans un fichier afin de suivre le temps d'exécution de chacune de mes méthodes.

J'aimerai savoir si c'est possible d'obtenir le même résultat sans avoir à toucher à ma mèthode, afin qu'elle soit la plus simple possible :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public function getDocument ($pRefDoc, $pUserID) {
 
		try {
 
			$query = "
			SELECT id, ref
			FROM document
			WHERE companyId = 1";
 
			return $this->getAdapter()->fetchAll($query, null, Zend_Db::FETCH_OBJ);
 
		} catch (Zend_Db_Exception $e) {
 
		    Zend_Controller_Action_HelperBroker::getStaticHelper('Log')->queryLog($e->getMessage(), $query, __FILE__, __LINE__, __METHOD__, $_SERVER["REMOTE_ADDR"]);
 
		}
 
	}
J'ai cherché du coté de postDispatch() mais ça semble être réservé pour les contrôleurs. De plus, il faut que je puisse identifier ma methode via __METHOD__

Des idées ?