- sfRoute.class.php
- class sfRoute implements Serializable
- {
- protected
- $isBound = false,
- $context = null,
- $parameters = null,
- $suffix = null,
- $defaultParameters = array(),
- $defaultOptions = array(),
- $compiled = false,
- $options = array(),
- $pattern = null,
- $staticPrefix = null,
- $regex = null,
- $variables = array(),
- $defaults = array(),
- $requirements = array(),
- $tokens = array(),
- $customToken = false;
-
- public function __construct($pattern, array $defaults = array(), array $requirements = array(), array $options = array())
- {
- $this->pattern = trim($pattern);
- $this->defaults = $defaults;
- $this->requirements = $requirements;
- $this->options = $options;
- }
-
- public function bind($context, $parameters)
- {
- $this->isBound = true;
- $this->context = $context;
- $this->parameters = $parameters;
- }
-
- public function isBound()
- {
- return $this->isBound;
- }
-
- public function matchesUrl($url, $context = array())
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
-
- if ('' !== $this->staticPrefix && 0 !== strpos($url, $this->staticPrefix))
- {
- return false;
- }
- if (!preg_match($this->regex, $url, $matches))
- {
- return false;
- }
- $defaults = array_merge($this->getDefaultParameters(), $this->defaults);
- $parameters = array();
-
- if (isset($matches['_star']))
- {
- $parameters = $this->parseStarParameter($matches['_star']);
- unset($matches['_star'], $parameters['module'], $parameters['action']);
- }
-
- $parameters = $this->mergeArrays($defaults, $parameters);
-
- foreach ($matches as $key => $value)
- {
- if (!is_int($key))
- {
- $parameters[$key] = urldecode($value);
- }
- }
- return $parameters;
- }
-
- public function matchesParameters($params, $context = array())
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- if (!is_array($params))
- {
- return false;
- }
- $defaults = $this->mergeArrays($this->getDefaultParameters(), $this->defaults);
- $tparams = $this->mergeArrays($defaults, $params);
-
- if (array_diff_key($this->variables, $tparams))
- {
- return false;
- }
-
- foreach (array_keys($this->variables) as $variable)
- {
- if (!$tparams[$variable])
- {
- continue;
- }
- if (!preg_match('#'.$this->requirements[$variable].'#', $tparams[$variable]))
- {
- return false;
- }
- }
-
- if (!$this->options['extra_parameters_as_query_string'])
- {
- if (false === strpos($this->regex, '<_star>') && array_diff_key($params, $this->variables, $defaults))
- {
- return false;
- }
- }
-
- foreach ($defaults as $key => $value)
- {
- if (!isset($this->variables[$key]) && $tparams[$key] != $value)
- {
- return false;
- }
- }
- return true;
- }
-
- public function generate($params, $context = array(), $absolute = false)
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- $url = $this->pattern;
- $defaults = $this->mergeArrays($this->getDefaultParameters(), $this->defaults);
- $tparams = $this->mergeArrays($defaults, $params);
-
- if ($diff = array_diff_key($this->variables, $tparams))
- {
- throw new InvalidArgumentException(sprintf('The "%s" route has some missing mandatory parameters (%s).', $this->pattern, implode(', ', $diff)));
- }
- if ($this->options['generate_shortest_url'] || $this->customToken)
- {
- $url = $this->generateWithTokens($tparams);
- }
- else
- {
-
- $variables = $this->variables;
- uasort($variables, create_function('$a, $b', 'return strlen($a) < strlen($b);'));
- foreach ($variables as $variable => $value)
- {
- $url = str_replace($value, urlencode($tparams[$variable]), $url);
- }
- if(!in_array($this->suffix, $this->options['segment_separators']))
- {
- $url .= $this->suffix;
- }
- }
-
- $url = $this->generateStarParameter($url, $defaults, $tparams);
- if ($this->options['extra_parameters_as_query_string'] && !$this->hasStarParameter())
- {
-
- if ($extra = array_diff_key($params, $this->variables, $defaults))
- {
- $url .= '?'.http_build_query($extra);
- }
- }
- return $url;
- }
-
- protected function generateWithTokens($parameters)
- {
- $url = array();
- $optional = $this->options['generate_shortest_url'];
- $first = true;
- $tokens = array_reverse($this->tokens);
- foreach ($tokens as $token)
- {
- switch ($token[0])
- {
- case 'variable':
- if (!$optional || !isset($this->defaults[$token[3]]) || $parameters[$token[3]] != $this->defaults[$token[3]])
- {
- $url[] = urlencode($parameters[$token[3]]);
- $optional = false;
- }
- break;
- case 'text':
- $url[] = $token[2];
- $optional = false;
- break;
- case 'separator':
- if (false === $optional || $first)
- {
- $url[] = $token[2];
- }
- break;
- default:
-
- if ($segment = call_user_func_array(array($this, 'generateFor'.ucfirst(array_shift($token))), array_merge(array($optional, $parameters), $token)))
- {
- $url[] = $segment;
- $optional = false;
- }
- break;
- }
- $first = false;
- }
- $url = implode('', array_reverse($url));
- if (!$url)
- {
- $url = '/';
- }
- return $url;
- }
-
- public function getParameters()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->parameters;
- }
-
- public function getPattern()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->pattern;
- }
-
- public function getRegex()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->regex;
- }
-
- public function getTokens()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->tokens;
- }
-
- public function getOptions()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->options;
- }
-
- public function getVariables()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->variables;
- }
-
- public function getDefaults()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->defaults;
- }
-
- public function getRequirements()
- {
- if (!$this->compiled)
- {
- $this->compile();
- }
- return $this->requirements;
- }
-
- public function compile()
- {
- if ($this->compiled)
- {
- return;
- }
- $this->initializeOptions();
- $this->fixRequirements();
- $this->fixDefaults();
- $this->fixSuffix();
- $this->compiled = true;
- $this->firstOptional = 0;
- $this->segments = array();
- $this->preCompile();
- $this->tokenize();
-
- foreach ($this->tokens as $token)
- {
- call_user_func_array(array($this, 'compileFor'.ucfirst(array_shift($token))), $token);
- }
- $this->postCompile();
- $separator = '';
- if (count($this->tokens))
- {
- $lastToken = $this->tokens[count($this->tokens) - 1];
- $separator = 'separator' == $lastToken[0] ? $lastToken[2] : '';
- }
- $this->regex = "#^".implode("", $this->segments)."".preg_quote($separator, '#')."$#x";
- }
-
- protected function preCompile()
- {
-
- if (empty($this->pattern) || '/' != $this->pattern[0])
- {
- $this->pattern = '/'.$this->pattern;
- }
- }
-
- protected function postCompile()
- {
-
-
- for ($i = $this->firstOptional, $max = count($this->segments); $i < $max; $i++)
- {
- $this->segments[$i] = (0 == $i ? '/?' : '').str_repeat(' ', $i - $this->firstOptional).'(?:'.$this->segments[$i];
- $this->segments[] = str_repeat(' ', $max - $i - 1).')?';
- }
- $this->staticPrefix = '';
- foreach ($this->tokens as $token)
- {
- switch ($token[0])
- {
- case 'separator':
- break;
- case 'text':
- if ($token[2] !== '*')
- {
-
- $this->staticPrefix .= $token[1].$token[2];
- break;
- }
- default:
-
- break 2;
- }
- }
- }
-
- protected function tokenize()
- {
- $this->tokens = array();
- $buffer = $this->pattern;
- $afterASeparator = false;
- $currentSeparator = '';
-
- while (strlen($buffer))
- {
- if (false !== $this->tokenizeBufferBefore($buffer, $tokens, $afterASeparator, $currentSeparator))
- {
-
- $this->customToken = true;
- }
- else if ($afterASeparator && preg_match('#^'.$this->options['variable_prefix_regex'].'('.$this->options['variable_regex'].')#', $buffer, $match))
- {
-
- $this->tokens[] = array('variable', $currentSeparator, $match[0], $match[1]);
- $currentSeparator = '';
- $buffer = substr($buffer, strlen($match[0]));
- $afterASeparator = false;
- }
- else if ($afterASeparator && preg_match('#^('.$this->options['text_regex'].')(?:'.$this->options['segment_separators_regex'].'|$)#', $buffer, $match))
- {
-
- $this->tokens[] = array('text', $currentSeparator, $match[1], null);
- $currentSeparator = '';
- $buffer = substr($buffer, strlen($match[1]));
- $afterASeparator = false;
- }
- else if (!$afterASeparator && preg_match('#^/|^'.$this->options['segment_separators_regex'].'#', $buffer, $match))
- {
-
- $this->tokens[] = array('separator', $currentSeparator, $match[0], null);
- $currentSeparator = $match[0];
- $buffer = substr($buffer, strlen($match[0]));
- $afterASeparator = true;
- }
- else if (false !== $this->tokenizeBufferAfter($buffer, $tokens, $afterASeparator, $currentSeparator))
- {
-
- $this->customToken = true;
- }
- else
- {
-
- throw new InvalidArgumentException(sprintf('Unable to parse "%s" route near "%s".', $this->pattern, $buffer));
- }
- }
-
-
- if ($this->suffix)
- {
-
- $this->tokens[] = array('separator', $currentSeparator, $this->suffix);
- }
- }
-
- protected function tokenizeBufferBefore(&$buffer, &$tokens, &$afterASeparator, &$currentSeparator)
- {
- return false;
- }
-
- protected function tokenizeBufferAfter(&$buffer, &$tokens, &$afterASeparator, &$currentSeparator)
- {
- return false;
- }
- protected function compileForText($separator, $text)
- {
- if ('*' == $text)
- {
- $this->segments[] = '(?:'.preg_quote($separator, '#').'(?P<_star>.*))?';
- }
- else
- {
- $this->firstOptional = count($this->segments) + 1;
- $this->segments[] = preg_quote($separator, '#').preg_quote($text, '#');
- }
- }
- protected function compileForVariable($separator, $name, $variable)
- {
- if (!isset($this->requirements[$variable]))
- {
- $this->requirements[$variable] = $this->options['variable_content_regex'];
- }
- $this->segments[] = preg_quote($separator, '#').'(?P<'.$variable.'>'.$this->requirements[$variable].')';
- $this->variables[$variable] = $name;
- if (!isset($this->defaults[$variable]))
- {
- $this->firstOptional = count($this->segments);
- }
- }
- protected function compileForSeparator($separator, $regexSeparator)
- {
- }
- public function getDefaultParameters()
- {
- return $this->defaultParameters;
- }
- public function setDefaultParameters($parameters)
- {
- $this->defaultParameters = $parameters;
- }
- public function getDefaultOptions()
- {
- return $this->defaultOptions;
- }
- public function setDefaultOptions($options)
- {
- $this->defaultOptions = $options;
- }
- protected function initializeOptions()
- {
- $this->options = array_merge(array(
- 'suffix' => '',
- 'variable_prefixes' => array(':'),
- 'segment_separators' => array('/', '.'),
- 'variable_regex' => '[\w\d_]+',
- 'text_regex' => '.+?',
- 'generate_shortest_url' => true,
- 'extra_parameters_as_query_string' => true,
- ), $this->getDefaultOptions(), $this->options);
- $preg_quote_hash = create_function('$a', 'return preg_quote($a, \'#\');');
-
- $this->options['variable_prefix_regex'] = '(?:'.implode('|', array_map($preg_quote_hash, $this->options['variable_prefixes'])).')';
- if (count($this->options['segment_separators']))
- {
- $this->options['segment_separators_regex'] = '(?:'.implode('|', array_map($preg_quote_hash, $this->options['segment_separators'])).')';
-
- $preg_quote_hash_53 = create_function('$a', 'return str_replace(\'-\', \'\-\', preg_quote($a, \'#\'));');
- $this->options['variable_content_regex'] = '[^'.implode('',
- array_map(version_compare(PHP_VERSION, '5.3.0RC4', '>=') ? $preg_quote_hash : $preg_quote_hash_53, $this->options['segment_separators'])
- ).']+';
- }
- else
- {
-
- $this->options['segment_separators_regex'] = '()';
- $this->options['variable_content_regex'] = '.+';
- }
- }
- protected function parseStarParameter($star)
- {
- $parameters = array();
- $tmp = explode('/', $star);
- for ($i = 0, $max = count($tmp); $i < $max; $i += 2)
- {
-
- if (!empty($tmp[$i]))
- {
- $parameters[$tmp[$i]] = isset($tmp[$i + 1]) ? urldecode($tmp[$i + 1]) : true;
- }
- }
- return $parameters;
- }
- protected function hasStarParameter()
- {
- return false !== strpos($this->regex, '<_star>');
- }
- protected function generateStarParameter($url, $defaults, $parameters)
- {
- if (false === strpos($this->regex, '<_star>'))
- {
- return $url;
- }
- $tmp = array();
- foreach (array_diff_key($parameters, $this->variables, $defaults) as $key => $value)
- {
- if (is_array($value))
- {
- foreach ($value as $v)
- {
- $tmp[] = $key.'='.urlencode($v);
- }
- }
- else
- {
- $tmp[] = urlencode($key).'/'.urlencode($value);
- }
- }
- $tmp = implode('/', $tmp);
- if ($tmp)
- {
- $tmp = '/'.$tmp;
- }
- return preg_replace('#'.$this->options['segment_separators_regex'].'\*('.$this->options['segment_separators_regex'].'|$)#', "$tmp$1", $url);
- }
- protected function mergeArrays($arr1, $arr2)
- {
- foreach ($arr2 as $key => $value)
- {
- $arr1[$key] = $value;
- }
- return $arr1;
- }
- protected function fixDefaults()
- {
- foreach ($this->defaults as $key => $value)
- {
- if (ctype_digit($key))
- {
- $this->defaults[$value] = true;
- }
- else
- {
- $this->defaults[$key] = urldecode($value);
- }
- }
- }
- protected function fixRequirements()
- {
- foreach ($this->requirements as $key => $regex)
- {
- if (!is_string($regex))
- {
- continue;
- }
- if ('^' == $regex[0])
- {
- $regex = substr($regex, 1);
- }
- if ('$' == substr($regex, -1))
- {
- $regex = substr($regex, 0, -1);
- }
- $this->requirements[$key] = $regex;
- }
- }
- protected function fixSuffix()
- {
- $length = strlen($this->pattern);
- if ($length > 0 && '/' == $this->pattern[$length - 1])
- {
-
- $this->suffix = '/';
- }
- else if ($length > 0 && '.' == $this->pattern[$length - 1])
- {
-
- $this->suffix = '';
- $this->pattern = substr($this->pattern, 0, $length - 1);
- }
- else if (preg_match('#\.(?:'.$this->options['variable_prefix_regex'].$this->options['variable_regex'].'|'.$this->options['variable_content_regex'].')$#i', $this->pattern))
- {
-
-
- $this->suffix = '';
- }
- else
- {
- $this->suffix = $this->options['suffix'];
- }
- }
- public function serialize()
- {
-
- $this->compile();
-
- return serialize(array($this->tokens, $this->defaultOptions, $this->options, $this->pattern, $this->staticPrefix, $this->regex, $this->variables, $this->defaults, $this->requirements, $this->suffix));
- }
- public function unserialize($data)
- {
- list($this->tokens, $this->defaultOptions, $this->options, $this->pattern, $this->staticPrefix, $this->regex, $this->variables, $this->defaults, $this->requirements, $this->suffix) = unserialize($data);
- $this->compiled = true;
- }
- }
Configuration
- debug
- xdebug
- logging
- cache
- compression
- tokenizer
- eaccelerator
- apc
- xcache
Request 
options:
path_info_key: PATH_INFO
path_info_array: SERVER
default_format: null
logging: '1'
relative_url_root: null
formats: { txt: text/plain, js: [application/javascript, application/x-javascript, text/javascript], css: text/css, json: [application/json, application/x-json], xml: [text/xml, application/xml, application/x-xml], rdf: application/rdf+xml, atom: application/atom+xml }
no_script_name: false
parameterHolder:
action: index
class: sfRoute
method: ''
module: sfCodeView
attributeHolder:
sf_route: 'sfRoute Object()'
Response 
status:
code: 200
text: OK
options:
http_protocol: HTTP/1.1
logging: '1'
charset: utf-8
send_http_headers: false
content_type: 'text/html; charset=utf-8'
cookies: { }
httpHeaders:
Content-Type: 'text/html; charset=utf-8'
javascripts:
'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js': { }
/sfCodeViewPlugin/js/sfCodeViewPlugin.js: { }
stylesheets:
main.css: { }
/sfCodeViewPlugin/css/sfCodeViewPlugin.css: { }
metas: { }
httpMetas:
Content-Type: 'text/html; charset=utf-8'
User 
options:
auto_shutdown: false
culture: null
default_culture: en
use_flash: true
logging: '1'
timeout: 1800
attributeHolder:
symfony/user/sfUser/attributes: { history: [sfRoute, sfRootConfigHandler, sfResponse, sfRequestRoute, sfRequest, sfRenderingFilter, sfProjectSendEmailsTask, sfProjectPermissionsTask, sfProjectOptimizeTask, sfProjectEnableTask] }
culture: en
Settings 
app_sfCodeViewPlugin_javascripts:
- /sfCodeViewPlugin/js/sfCodeViewPlugin.js
app_sfCodeViewPlugin_stylesheets:
- /sfCodeViewPlugin/css/sfCodeViewPlugin.css
mod_sfcodeview_enabled: true
mod_sfcodeview_view_class: sfPHP
sf_admin_module_web_dir: /sfDoctrinePlugin
sf_admin_web_dir: /sf/sf_admin
sf_app: frontend
sf_app_base_cache_dir: /www/redotheoffice/codeview/cache/frontend
sf_app_cache_dir: /www/redotheoffice/codeview/cache/frontend/dev
sf_app_config_dir: /www/redotheoffice/codeview/apps/frontend/config
sf_app_dir: /www/redotheoffice/codeview/apps/frontend
sf_app_i18n_dir: /www/redotheoffice/codeview/apps/frontend/i18n
sf_app_lib_dir: /www/redotheoffice/codeview/apps/frontend/lib
sf_app_module_dir: /www/redotheoffice/codeview/apps/frontend/modules
sf_app_template_dir: /www/redotheoffice/codeview/apps/frontend/templates
sf_apps_dir: /www/redotheoffice/codeview/apps
sf_cache: false
sf_cache_dir: /www/redotheoffice/codeview/cache
sf_charset: utf-8
sf_check_lock: false
sf_compressed: false
sf_config_cache_dir: /www/redotheoffice/codeview/cache/frontend/dev/config
sf_config_dir: /www/redotheoffice/codeview/config
sf_csrf_secret: 220ab365e581d678efc07c41371dbc49a1fdcec3
sf_data_dir: /www/redotheoffice/codeview/data
sf_debug: true
sf_default_culture: en
sf_enabled_modules:
- default
- sfCodeView
sf_environment: dev
sf_error_404_action: error404
sf_error_404_module: default
sf_error_reporting: 8191
sf_escaping_method: ESC_SPECIALCHARS
sf_escaping_strategy: true
sf_etag: false
sf_file_link_format: null
sf_i18n: false
sf_i18n_cache_dir: /www/redotheoffice/codeview/cache/frontend/dev/i18n
sf_lib_dir: /www/redotheoffice/codeview/lib
sf_log_dir: /www/redotheoffice/codeview/log
sf_logging_enabled: true
sf_login_action: login
sf_login_module: default
sf_module_cache_dir: /www/redotheoffice/codeview/cache/frontend/dev/modules
sf_module_disabled_action: disabled
sf_module_disabled_module: default
sf_no_script_name: false
sf_orm: doctrine
sf_plugins_dir: /www/redotheoffice/codeview/plugins
sf_root_dir: /www/redotheoffice/codeview
sf_secure_action: secure
sf_secure_module: default
sf_standard_helpers:
- Partial
- Cache
sf_symfony_lib_dir: /www/redotheoffice/lib/symfony/1.4/lib
sf_template_cache_dir: /www/redotheoffice/codeview/cache/frontend/dev/template
sf_test_cache_dir: /www/redotheoffice/codeview/cache/frontend/dev/test
sf_test_dir: /www/redotheoffice/codeview/test
sf_upload_dir: /www/redotheoffice/codeview/web/uploads
sf_use_database: true
sf_web_debug: true
sf_web_debug_web_dir: /sf/sf_web_debug
sf_web_dir: /www/redotheoffice/codeview/web
symfony.asset.javascripts_included: true
symfony.asset.stylesheets_included: true
Globals 
cookie:
symfony: igbg1vov0kr106fi7q336aqd75
env: { }
files: { }
get: { }
post: { }
server:
DOCUMENT_ROOT: /Library/WebServer/Documents
GATEWAY_INTERFACE: CGI/1.1
HTTP_ACCEPT: 'text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
HTTP_ACCEPT_CHARSET: 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING: gzip
HTTP_ACCEPT_LANGUAGE: 'en-us,en;q=0.5'
HTTP_CACHE_CONTROL: no-cache
HTTP_CONNECTION: close
HTTP_COOKIE: symfony=igbg1vov0kr106fi7q336aqd75
HTTP_HOST: codeview.redotheoffice.com
HTTP_PRAGMA: no-cache
HTTP_USER_AGENT: 'CCBot/1.0 (+http://www.commoncrawl.org/bot.html)'
HTTP_X_CC_ID: ccc04-02
PATH: '/usr/bin:/bin:/usr/sbin:/sbin'
PATH_INFO: /sfCodeView/sfRoute
PATH_TRANSLATED: 'redirect:/www/redotheoffice/codeview/web/index.php/sfRoute'
PHP_SELF: /index.php/sfCodeView/sfRoute
QUERY_STRING: ''
REMOTE_ADDR: 38.107.179.242
REMOTE_PORT: '60449'
REQUEST_METHOD: GET
REQUEST_TIME: 1337461090
REQUEST_URI: /index.php/sfCodeView/sfRoute
SCRIPT_FILENAME: /www/redotheoffice/codeview/web/index.php
SCRIPT_NAME: /index.php
SERVER_ADDR: 192.168.0.108
SERVER_ADMIN: webmaster@weett.nl
SERVER_NAME: codeview.redotheoffice.com
SERVER_PORT: '80'
SERVER_PROTOCOL: HTTP/1.1
SERVER_SIGNATURE: ''
SERVER_SOFTWARE: 'Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.6'
session:
symfony/user/sfUser/attributes: { symfony/user/sfUser/attributes: { history: [sfRootConfigHandler, sfResponse, sfRequestRoute, sfRequest, sfRenderingFilter, sfProjectSendEmailsTask, sfProjectPermissionsTask, sfProjectOptimizeTask, sfProjectEnableTask, sfProjectDisableTask] } }
symfony/user/sfUser/authenticated: false
symfony/user/sfUser/credentials: { }
symfony/user/sfUser/culture: en
symfony/user/sfUser/lastRequest: 1337461061
Php 
php: 5.3.6
os: 'Darwin Mac-mini-van-Sjoerd-de-Jong.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386'
extensions:
54: apache2handler
33: 'apc (3.1.7)'
8: bcmath
9: bz2
10: calendar
0: 'Core (5.3.6)'
11: ctype
56: curl
1: 'date (5.3.6)'
12: 'dom (20031129)'
2: ereg
42: 'exif (1.4 $Id: exif.c 308362 2011-02-15 14:02:26Z pajoye $)'
14: 'fileinfo (1.0.5-dev)'
15: 'filter (0.11.0)'
16: ftp
17: gd
18: gettext
13: 'hash (1.0)'
20: iconv
36: imap
57: 'intl (1.1.0)'
22: 'json (1.2.1)'
23: ldap
3: libxml
24: mbstring
58: mcrypt
59: 'memcache (3.0.4)'
60: 'memcached (1.0.1)'
71: mhash
61: 'mongo (1.1.4)'
62: mssql
29: 'mysql (1.0)'
27: 'mysqli (0.1)'
26: 'mysqlnd (mysqlnd 5.0.8-dev - 20102224 - $Revision: 308673 $)'
63: 'OAuth (1.0-dev)'
28: 'odbc (1.0)'
4: openssl
5: pcre
30: 'PDO (1.0.4dev)'
64: 'pdo_dblib (1.0.1)'
31: 'pdo_mysql (1.0.2)'
65: 'pdo_pgsql (1.0.2)'
32: 'pdo_sqlite (1.0.1)'
66: pgsql
55: 'Phar (2.0.1)'
34: posix
35: 'Reflection ($Revision: 307971 $)'
21: session
37: shmop
38: 'SimpleXML (0.1)'
39: soap
40: sockets
67: 'solr (0.9.11)'
19: 'SPL (0.2)'
41: 'SQLite (2.0-dev)'
6: 'sqlite3 (0.7-dev)'
25: 'standard (5.3.6)'
43: sysvmsg
44: sysvsem
45: sysvshm
46: 'tidy (2.0)'
47: 'tokenizer (0.1)'
68: 'uploadprogress (1.0.1)'
48: wddx
72: 'xdebug (2.2.0-dev)'
69: 'xhprof (0.9.2)'
49: xml
50: 'xmlreader (0.1)'
51: 'xmlrpc (0.51)'
52: 'xmlwriter (0.1)'
70: 'xsl (0.1)'
53: 'zip (1.9.1)'
7: 'zlib (1.1)'
Symfony 
version: 1.4.2-DEV
path: /www/redotheoffice/lib/symfony/1.4/lib
View Layer
Template: sfCodeView … indexSuccess.php 
Parameters:
$class (string)
$method (NULL)
$viewer (sfCodeViewer)
$history (array)
Logs
| # |
type |
message |
| 1 | sfPatternRouting | Match route "sfCodeView" (/sfCodeView/:class/:method) for /sfCodeView/sfRoute with parameters array ( 'module' => 'sfCodeView', 'action' => 'index', 'class' => 'sfRoute', 'method' => '',) |
| 2 | sfFilterChain | Executing filter "sfRenderingFilter" |
| 3 | sfFilterChain | Executing filter "sfExecutionFilter" |
| 4 | sfCodeViewActions | Call "sfCodeViewActions->executeIndex()" |
| 5 | sfPHPView | Render "sf_root_dir/plugins/sfCodeViewPlugin/modules/sfCodeView/templates/indexSuccess.php" |
| 6 | sfPHPView | Decorate content with "sf_app_dir/templates/layout.php" |
| 7 | sfPHPView | Render "sf_app_dir/templates/layout.php" |
| 8 | sfWebResponse | Send status "HTTP/1.1 200 OK" |
| 9 | sfWebResponse | Send header "Content-Type: text/html; charset=utf-8" |
Timers
| type | calls | time (ms) | time (%) |
|---|
| Configuration | 11 | 32.88 | 11 |
| Factories | 1 | 6.48 | 2 |
| Action "sfCodeView/index" | 1 | 0.52 | 0 |
| View "Success" for "sfCodeView/index" | 1 | 252.35 | 86 |
View php class code
Enter the name of a class you want to view in the toolbar and hit 'enter' to view its code, or click one of the available classes below.
User classes
- apps/frontend/config
- apps/frontend/lib
- config
- lib/form
- plugins/sfCodeViewPlugin/config
- plugins/sfCodeViewPlugin/lib
- plugins/sfCodeViewPlugin/modules/sfCodeView/actions
- plugins/sfCodeViewPlugin/modules/sfCodeView/lib
Symfony classes
- action
- addon
- autoload
- cache
- command
- config
- controller
- database
- debug
- escaper
- exception
- filter
- form/addon
- form
- generator
- i18n/Gettext
- i18n/extract
- i18n
- log
- mailer
- plugin
- request
- response
- routing
- storage
- task/app
- task/cache
- task/configure
- task/generator
- task/help
- task/i18n
- task/log
- task/plugin
- task/project
- task/project/validation
- task
- task/symfony
- task/test
- test
- user
- util
- validator/i18n
- validator
- view
- widget/i18n
- widget