Development

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

You must first sign up to be able to contribute.

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

Revision 17858, 4.9 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()),
117       'attributeHolder' => self::flattenParameterHolder($request->getAttributeHolder()),
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()),
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    *
172    * @return array The parameter holder as an array
173    */
174   public static function flattenParameterHolder($parameterHolder)
175   {
176     $values = array();
177     if ($parameterHolder instanceof sfNamespacedParameterHolder)
178     {
179       foreach ($parameterHolder->getNamespaces() as $ns)
180       {
181         $values[$ns] = array();
182         foreach ($parameterHolder->getAll($ns) as $key => $value)
183         {
184           $values[$ns][$key] = $value;
185         }
186         ksort($values[$ns]);
187       }
188     }
189     else
190     {
191       foreach ($parameterHolder->getAll() as $key => $value)
192       {
193         $values[$key] = $value;
194       }
195     }
196
197     ksort($values);
198
199     return $values;
200   }
201 }
202
Note: See TracBrowser for help on using the browser.