Development

/branches/1.2/lib/debug/sfDebug.class.php

You must first sign up to be able to contribute.

root/branches/1.2/lib/debug/sfDebug.class.php

Revision 17858, 5.7 kB (checked in by FabianLange, 5 years ago)

[1.1, 1.2, 1.3] fixed some codeing standards (fixes #6376 - patch from gimler)

  • Property svn:mime-type set to text/x-php
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1 <?php
2
3 /*
4  * This file is part of the symfony package.
5  * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 /**
12  * sfDebug provides some method to help debugging a symfony application.
13  *
14  * @package    symfony
15  * @subpackage debug
16  * @author     Fabien Potencier <fabien.potencier@symfony-project.com>
17  * @version    SVN: $Id$
18  */
19 class sfDebug
20 {
21   /**
22    * Returns symfony information as an array.
23    *
24    * @return array An array of symfony information
25    */
26   public static function symfonyInfoAsArray()
27   {
28     return array(
29       'version' => SYMFONY_VERSION,
30       'path'    => sfConfig::get('sf_symfony_lib_dir'),
31     );
32   }
33
34   /**
35    * Returns PHP information as an array.
36    *
37    * @return array An array of php information
38    */
39   public static function phpInfoAsArray()
40   {
41     $values = array(
42       'php'        => phpversion(),
43       'os'         => php_uname(),
44       'extensions' => get_loaded_extensions(),
45     );
46
47     // assign extension version
48     if ($values['extensions'])
49     {
50       foreach ($values['extensions'] as $key => $extension)
51       {
52         $values['extensions'][$key] = phpversion($extension) ? sprintf('%s (%s)', $extension, phpversion($extension)) : $extension;
53       }
54     }
55
56     return $values;
57   }
58
59   /**
60    * Returns PHP globals variables as a sorted array.
61    *
62    * @return array PHP globals
63    */
64   public static function globalsAsArray()
65   {
66     $values = array();
67     foreach (array('cookie', 'server', 'get', 'post', 'files', 'env', 'session') as $name)
68     {
69       if (!isset($GLOBALS['_'.strtoupper($name)]))
70       {
71         continue;
72       }
73
74       $values[$name] = array();
75       foreach ($GLOBALS['_'.strtoupper($name)] as $key => $value)
76       {
77         $values[$name][$key] = $value;
78       }
79       ksort($values[$name]);
80     }
81
82     ksort($values);
83
84     return $values;
85   }
86
87   /**
88    * Returns sfConfig variables as a sorted array.
89    *
90    * @return array sfConfig variables
91    */
92   public static function settingsAsArray()
93   {
94     $config = sfConfig::getAll();
95
96     ksort($config);
97
98     return $config;
99   }
100
101   /**
102    * Returns request parameter holders as an array.
103    *
104    * @param sfRequest $request A sfRequest instance
105    *
106    * @return array The request parameter holders
107    */
108   public static function requestAsArray(sfRequest $request = null)
109   {
110     if (!$request)
111     {
112       return array();
113     }
114
115     return array(
116       'parameterHolder' => self::flattenParameterHolder($request->getParameterHolder(), true),
117       'attributeHolder' => self::flattenParameterHolder($request->getAttributeHolder(), true),
118     );
119   }
120
121   /**
122    * Returns response parameters as an array.
123    *
124    * @param sfResponse $response A sfResponse instance
125    *
126    * @return array The response parameters
127    */
128   public static function responseAsArray(sfResponse $response = null)
129   {
130     if (!$response)
131     {
132       return array();
133     }
134
135     return array(
136       'options'     => $response->getOptions(),
137       'cookies'     => method_exists($response, 'getCookies')     ? $response->getCookies() : array(),
138       'httpHeaders' => method_exists($response, 'getHttpHeaders') ? $response->getHttpHeaders() : array(),
139       'javascripts' => method_exists($response, 'getJavascripts') ? $response->getJavascripts('ALL') : array(),
140       'stylesheets' => method_exists($response, 'getStylesheets') ? $response->getStylesheets('ALL') : array(),
141       'metas'       => method_exists($response, 'getMetas')       ? $response->getMetas() : array(),
142       'httpMetas'   => method_exists($response, 'getHttpMetas')   ? $response->getHttpMetas() : array(),
143     );
144   }
145
146   /**
147    * Returns user parameters as an array.
148    *
149    * @param sfUser $user A sfUser instance
150    *
151    * @return array The user parameters
152    */
153   public static function userAsArray(sfUser $user = null)
154   {
155     if (!$user)
156     {
157       return array();
158     }
159
160     return array(
161       'options'         => $user->getOptions(),
162       'attributeHolder' => self::flattenParameterHolder($user->getAttributeHolder(), true),
163       'culture'         => $user->getCulture(),
164     );
165   }
166
167   /**
168    * Returns a parameter holder as an array.
169    *
170    * @param sfParameterHolder $parameterHolder A sfParameterHolder instance
171    * @param boolean $removeObjects when set to true, objects are removed. default is false for BC.
172    *
173    * @return array The parameter holder as an array
174    */
175   public static function flattenParameterHolder($parameterHolder, $removeObjects = false)
176   {
177     $values = array();
178     if ($parameterHolder instanceof sfNamespacedParameterHolder)
179     {
180       foreach ($parameterHolder->getNamespaces() as $ns)
181       {
182         $values[$ns] = array();
183         foreach ($parameterHolder->getAll($ns) as $key => $value)
184         {
185           $values[$ns][$key] = $value;
186         }
187         ksort($values[$ns]);
188       }
189     }
190     else
191     {
192       foreach ($parameterHolder->getAll() as $key => $value)
193       {
194         $values[$key] = $value;
195       }
196     }
197
198     if ($removeObjects)
199     {
200       $values = self::removeObjects($values);
201     }
202
203     ksort($values);
204
205     return $values;
206   }
207
208   /**
209    * Removes objects from the array by replacing them with a String containing the class name.
210    *
211    * @param array $values an array
212    *
213    * @return array The array without objects
214    */
215   public static function removeObjects($values)
216   {
217     $nvalues = array();
218     foreach ($values as $key => $value)
219     {
220       if (is_array($value))
221       {
222         $nvalues[$key] = self::removeObjects($value);
223       }
224       else if (is_object($value))
225       {
226         $nvalues[$key] = sprintf('%s Object()', get_class($value));
227       }
228       else
229       {
230         $nvalues[$key] = $value;
231       }
232     }
233
234     return $nvalues;
235   }
236 }
237
Note: See TracBrowser for help on using the browser.