Search the Community
Showing results for tags 'firephp static trace'.
-
Hi, I am trying to use the FirePHP addon for Firefox to debug my PHP pages. I currently following training and feel the need to be able to have some introspection into what is going on. My knowledge of PHP is basic and I have just started really learning Object Oriented PHP. I don't find it easy to follow the trail of execution in a set of PHP files. So I wanted to use FirePHP to help. I am wondering what I am doing wrong and is anybody can help. I cannot seem to understand how to insert the code into the current pages to trace function execution. My code FirePHP code is around line 35 in the function find_by_sql. Could the fact that I am trying to use this on a static function be the problem. Thanks <?php ob_start(); // this is from the Lynda.com title PHP Beyond the Basics // If it's going to need the database, then it's // probably smart to require it before we start require_once('database.php'); require_once('../../FirePHPCore/fb.php'); class User { public $id; public $username; public $password; public $first_name; public $last_name; public static function find_all() { global $database; //$result_set = $database->query("SELECT * FROM users"); //return $result_set; return self::find_by_sql("SELECT * FROM users"); } public static function find_by_id($id=0) { global $database; $result_array = self::find_by_sql("SELECT * FROM users WHERE id={$id} LIMIT 1"); return !empty($result_array)? array_shift($result_array) : false; } public static function find_by_sql($sql="") { global $database; $firephp = FirePHP::getInstance(TRUE); $result_set = $database->query($sql); $object_array = array(); while ($row = $database->fetch_array($result_set)) { $object_array[] = self::instantiate($row); } $firephp->fb('Hello World!', FirePHP::TRACE); return $object_array; } public static function authenticate($username="", $password="") { global $database; $username = $database->escape_value($username); $password = $database->escape_value($password); $sql = "SELECT * FROM users "; $sql .= "WHERE username = '{$username}' "; $sql .= "AND password = '{$password}' "; $sql .= "LIMIT 1"; $result_array = self::find_by_sql($sql); return !empty($result_array) ? array_shift($result_array) : false; } public function full_name() { if(isset($this->first_name) && isset($this->last_name)) { return $this->first_name . " " . $this->last_name; } else { return ""; } } private static function instantiate($record) { // Could check that $record exists and is an array // Simple, long-form approach: $object = new self; //$object->id = $record['id']; //$object->username = $record['username']; //$object->password = $record['password']; //$object->first_name = $record['first_name']; //$object->last_name = $record['last_name']; //return $object; // More dynamic, short-form approach foreach($record as $attribute=>$value){ if($object->has_attribute($attribute)) { $object->$attribute = $value; } } return $object; } private function has_attribute($attribute) { // get_object_vars returns an associative array with all attributes // (incl. private ones!) as the keys and their current values as the value $object_vars = get_object_vars($this); // We don't care about the value, we just want to know if the key exits // Will return ture or false return array_key_exists($attribute, $object_vars); } } ?>