Radix: Radix Class Reference

Radix Base Class, Core MVC Utilities Radix is also the class instantiated for the View object. More...

Static Public Member Functions

static bail ($opt=null)
 
static base ($full=false)
 
static block ($name, $data=null)
 
static dump ($data)
 
static exec ()
 
static info ()
 
static init ($opts=null)
 
static isAjax ($ua=null)
 
static link ($path, $args=null)
 
static path ()
 
static redirect ($uri=null, $code=302)
 
static route ($src=null, $dst=null, &$arg=null)
 
static send ()
 
static stat ()
 
static trace ($x=null)
 
static trap ()
 
static view ()
 

Public Attributes

 $body
 
const NOT_FOUND = 404
 
const OK = 200
 

Static Public Attributes

static $base
 
static $host
 
static $path
 
static $root
 
static $theme_bail = 'bail'
 
static $theme_name = 'html'
 
static $view
 

Static Protected Attributes

static $_a = 'index'
 
static $_c
 
static $_m
 

Private Member Functions

 __construct ()
 
 _include ($list, $once=true)
 
 _include_file ($f)
 

Static Private Attributes

static $_exec_res
 
static $_file_list = array()
 
static $_module_list
 
static $_route_list = array()
 
static $_view_res
 

Detailed Description

Radix Base Class, Core MVC Utilities Radix is also the class instantiated for the View object.

Definition at line 24 of file Radix.php.

Constructor & Destructor Documentation

Radix::__construct ( )
private

Definition at line 52 of file Radix.php.

52 { /* Only I may dance */ }

Member Function Documentation

Radix::_include (   $list,
  $once = true 
)
private

Given a list of files, include the first

Returns
from included file

Definition at line 683 of file Radix.php.

684  {
685  //syslog(LOG_DEBUG,'Radix::include_file()');
686  // Promote to Array
687  if (!is_array($list)) {
688  $list = array($list);
689  }
690 
691  // Loop
692  foreach ($list as $file) {
693  self::$_file_list[$file] = 'fail:404';
694  if (is_file($file)) {
695  $r = $this->_include_file($file);
696  // 0 if included file says "return(0);"
697  // 1 to promote include() success to HTTP OK
698  if ( ($r === 0) || ($r === 1) ) $r = self::OK;
699  self::$_file_list[$file] = sprintf('load:%d',$r);
700  return($r);
701  }
702  }
703  return self::NOT_FOUND;
704  }
Radix::_include_file (   $f)
private

Includes the requested file with an mostly empty var space

Parameters
$fthe file
Returns
the return value from include

Definition at line 711 of file Radix.php.

712  {
713  return include($f);
714  }
static Radix::bail (   $opt = null)
static

Respond with an HTTP 400 or 500 level Error Message

See Also
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Parameters
$optint or text for error message or array('body'=>null), default 500
Returns
never

Definition at line 249 of file Radix.php.

250  {
251  if (empty(self::$view)) {
252  self::$view = new Radix();
253  }
254  self::$view->body = ob_get_clean();
255  self::$_view_res = self::OK;
256  // ob_end_flush();
257 
258  if ($opt === null) $opt = 500;
259 
260  if (is_int($opt)) {
261  $opt = array('code' => $opt);
262  } elseif (is_string($opt)) {
263  $opt = array('code' => 500,'text' => $opt);
264  } elseif (is_array($opt)) {
265  if (!empty($opt['theme'])) {
266  self::$theme_name = $opt['theme'];
267  }
268  }
269 
270  // Change Text
271  switch ($opt['code']) {
272  case 400:
273  $opt['text'] = 'Bad Request';
274  break;
275  case 401:
276  $opt['text'] = 'Not Authorized';
277  break;
278  case 402:
279  $opt['text'] = 'Payment Required';
280  break;
281  case 403:
282  $opt['text'] = 'Forbidden';
283  break;
284  case 404:
285  $opt['text'] = 'Not Found';
286  break;
287  case 405:
288  $opt['text'] = 'Method Not Allowed';
289  break;
290  case 406:
291  $opt['text'] = 'Not Acceptable';
292  break;
293  case 409:
294  $opt['text'] = 'Conflict';
295  break;
296  case 410:
297  $opt['text'] = 'Gone';
298  break;
299  case 500:
300  default:
301  if (empty($opt['text'])) {
302  $opt['text'] = 'Unexpected System Error';
303  }
304  break;
305  }
306  header(sprintf('HTTP/1.1 %d %s',$opt['code'],$opt['text']));
307  if (empty(self::$view->body)) {
308  self::$view->body = $opt['text'];
309  }
310  self::send();
311  exit(0);
312  }
static Radix::base (   $full = false)
static
Returns
uri base of the application
Note
site's at the root are '/' otherwise '/path/'

Definition at line 360 of file Radix.php.

361  {
362  $base = null;
363  if ($full) {
364  // Find Hostname
365  $host = @$_SERVER['HTTP_HOST'];
366  if (empty($host)) $host = $_SERVER['SERVER_NAME'];
367  if (empty($host)) $host = $_SERVER['SERVER_ADDR'];
368 
369  // Scheme, Hostname & Port
370  $base = 'http://' . $host;
371  if ($_SERVER['SERVER_PORT'] != 80) {
372  $base = 'http://' . $host . ':' . $_SERVER['SERVER_PORT'];
373  }
374  if (isset($_SERVER['HTTPS'])) {
375  $base = 'https://' . $host;
376  if ($_SERVER['SERVER_PORT'] != 443) {
377  $base = 'http://' . $host . ':' . $_SERVER['SERVER_PORT'];
378  }
379  }
380  }
381  // Dirname of the Path of the SCRIPT_NAME which is the handler
382  $base.= dirname(parse_url($_SERVER['SCRIPT_NAME'],PHP_URL_PATH));
383  return rtrim($base,'/');;
384  }
static Radix::block (   $name,
  $data = null 
)
static

Output a file from the ./block directory Has access to self::$view (or $this->view) as the View object

Parameters
$namefile name, extension added if missing
$datato share

Definition at line 644 of file Radix.php.

645  {
646  // Add Extension if Missing
647  $x = pathinfo($name,PATHINFO_EXTENSION);
648  if (empty($x)) {
649  $name.= '.php';
650  }
651 
652  $file = sprintf('%s/block/%s',self::$root,ltrim($name,'/'));
653  if (is_file($file)) {
654  ob_start();
655  include($file);
656  $html = ob_get_clean();
657  return $html;
658  }
659  }
static Radix::dump (   $data)
static
Parameters
$datathe stuff to dump
Returns
debug dumping

Definition at line 439 of file Radix.php.

440  {
441  if (php_sapi_name() != 'cli') {
442  echo '<pre>' . htmlspecialchars(print_r($data,true)) . '</pre>';
443  } else {
444  echo ("\n" . print_r($data,true) . "\n");
445  }
446  }
static Radix::exec ( )
static

Execute the Controller for the Request Searches /controller from most specific to least specific path

Returns
name of controller on success, array of attempted files on failure

Definition at line 164 of file Radix.php.

165  {
166  $path = self::$path;
167  while ( (!empty($path)) && ('/' != $path) ) {
168  $list[] = sprintf('%s/controller/%s.php',self::$root,trim($path,'/'));
169  $path = dirname($path);
170  }
171  ob_start();
172  $res = self::$view->_include($list);
173  self::$view->body.= ob_get_clean();
174  self::$_exec_res = $res;
175  return self::$_exec_res;
176  }
static Radix::info ( )
static

Info function returns text/html or text/plain about the radix system

Returns
string html

Definition at line 452 of file Radix.php.

453  {
454  $html = null;
455  $html.= 'root:' . self::$root . '<br>'; // Root Path of Application
456  $html.= 'host:' . self::$host . '<br>'; // Hostname
457  $html.= 'base:' . self::$base . '<br>'; // Web-Base of Application ( "/" or "/something" )
458  $html.= 'path:' . self::$path . '<br>'; // Path of Request in Application
459  $html.= 'exec()==' . self::$_exec_res . '<br>';
460  $html.= 'view()==' . self::$_view_res . '<br>';
461  $html.= 'files:<br>';
462  foreach (self::$_file_list as $k=>$v) {
463  $html.= ('+' . $k . ' = ' . $v . '<br>');
464  }
465  $html.= 'routes:<br>';
466  foreach (self::$_route_list as $k=>$v) {
467  $html.= ('@' . htmlspecialchars($v['src']) . ' = ' . htmlspecialchars($v['dst']) . '<br>');
468  }
469  // $html.= 'module:self::$m"; // Module of Request?
470  // $html.= "view:$view; // The View Object
471  if (php_sapi_name() == 'cli') {
472  $html = strip_tags(str_replace('<br>',"\n",$html));
473  }
474  return $html;
475  }
static Radix::init (   $opts = null)
static

Initialize the Radix System

Parameters
array$optsspecfiy: root, theme, theme_bail
Returns
void

Definition at line 60 of file Radix.php.

61  {
62  // My Hostname
63  self::$host = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] :
64  ( isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : ($_SERVER['SERVER_ADDR']) ) );
65 
66  // Root of Application
67  if (isset($opts['root'])) {
68  self::$root = $opts['root'];
69  } else {
70  // We are Generally Rooted one-up from the Handler
71  self::$root = dirname(dirname($_SERVER['SCRIPT_FILENAME'])); // Should be webroot/index.php
72  }
73 
74  // Base of Application
75  self::$base = Radix::base();
76  // Path of Request
77  self::$path = Radix::path();
78  // Possible Module Name? /(\w+)/.+
79  if (preg_match('|^/(\w+)/.+|',self::$path,$m)) {
80  self::$_m = $m[1];
81  }
82 
83  if (!empty($opts['theme'])) {
84  self::$theme_name = $opts['theme'];
85  }
86  if (!empty($opts['theme_bail'])) {
87  self::$theme_bail = $opts['theme_bail'];
88  }
89 
90  if (empty(self::$view)) {
91  self::$view = new Radix();
92  }
93  }
static Radix::isAjax (   $ua = null)
static

Definition at line 429 of file Radix.php.

430  {
431  $chk = strtolower($ua == null ? $_SERVER['HTTP_X_REQUESTED_WITH'] : $ua);
432  return ('xmlhttprequest' == $chk);
433  }
static Radix::link (   $path,
  $args = null 
)
static

Relative Link to this Base

Parameters
$pathis application path, starting with '/' or schema://
$argsquery string parameters

Definition at line 666 of file Radix.php.

667  {
668  // No Schema == Local
669  if (!preg_match('/^\w+:\/\//',$path)) {
670  $path = sprintf('%s/%s',rtrim(self::$base,'/'),ltrim($path,'/'));
671  }
672  // Add Args
673  if ( (is_array($args)) && (count($args)>0) ) {
674  $path.= '?' . http_build_query($args);
675  }
676  return $path;
677  }
static Radix::path ( )
static
Returns
path of current request, with leading /

Definition at line 389 of file Radix.php.

390  {
391  // @todo Find First Best one and break loop
392  // $list = array('PATH_INFO','SCRIPT_URI');
393  $path = null;
394  if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
395  $path = $_SERVER['HTTP_X_REWRITE_URL'];
396  } elseif (isset($_SERVER['REQUEST_URI'])) {
397  $q = strpos($_SERVER['REQUEST_URI'], '?');
398  if ($q === false) {
399  $path = $_SERVER['REQUEST_URI'];
400  } else {
401  $path = substr($_SERVER['REQUEST_URI'], 0, $q);
402  }
403  } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP as CGI
404  // Ignored?
405  } elseif (isset($_SERVER['SCRIPT_URL'])) {
406  $path = $_SERVER['SCRIPT_URL'];
407  } elseif (isset($_SERVER['REDIRECT_URL'])) {
408  $path = $_SERVER['REDIRECT_URL'];
409  } elseif (isset($_SERVER['PHP_SELF'])) {
410  $path = $_SERVER['PHP_SELF'];
411  } elseif (isset($_SERVER['SCRIPT_NAME'])) {
412  $path = $_SERVER['SCRIPT_NAME'];
413  if (isset($_SERVER['PATH_INFO'])) {
414  $path.= $_SERVER['PATH_INFO'];
415  }
416  }
417  $path = parse_url($path,PHP_URL_PATH);
418  // If there is a Base value, remove it
419  if (self::$base != '/') {
420  $path = str_replace(self::$base,null,$path);
421  }
422  // Refine
423  if (empty($path)) $path = '/';
424  if ($path == '/') $path = '/index';
425 
426  return $path;
427  }
static Radix::redirect (   $uri = null,
  $code = 302 
)
static
Parameters
string$urito redirect to
int$codeHTTP code, default 302, or full HTTP status line

Definition at line 543 of file Radix.php.

544  {
545  // Special Case of Missing
546  if (empty($uri)) {
547  $uri = $_SERVER['HTTP_REFERER'];
548  }
549  if (empty($uri)) {
550  $uri = '/';
551  }
552 
553  // Specific URL
554  $location = null;
555  if (substr($uri,0,4)=='http') {
556  $location = $uri;
557  } else {
558  $location = self::base(true);
559  // Special Trick, // starts at webserver root / starts at app root
560  if (substr($uri,0,2) == '//') {
561  $location .= '/' . ltrim($uri,'/');
562  } elseif (substr($uri,0,1) == '/') {
563  $location .= '/' . ltrim($uri,'/');
564  }
565  }
566 
567  // This tried to do some file magic, too ugly
568  // $sn = $_SERVER['SCRIPT_NAME'];
569  // $cp = dirname($sn);
570  // $schema = $_SERVER['SERVER_PORT']=='443'?'https':'http';
571  // $host = strlen($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:$_SERVER['SERVER_NAME'];
572  // if (substr($to,0,1)=='/') $location = "$schema://$host$to";
573  // elseif (substr($to,0,1)=='.') // Relative Path
574  // {
575  // $location = "$schema://$host/";
576  // $pu = parse_url($to);
577  // $cd = dirname($_SERVER['SCRIPT_FILENAME']).'/';
578  // $np = realpath($cd.$pu['path']);
579  // $np = str_replace($_SERVER['DOCUMENT_ROOT'],'',$np);
580  // $location.= $np;
581  // if ((isset($pu['query'])) && (strlen($pu['query'])>0)) $location.= '?'.$pu['query'];
582  // }
583  // }
584 
585  $hs = headers_sent();
586  if ($hs === false) {
587  switch ($code) {
588  case 301:
589  // Convert to GET
590  header("301 Moved Permanently HTTP/1.1",true,$code);
591  break;
592  case 302:
593  // Confirm re-POST
594  header("302 Found HTTP/1.1",true,$code);
595  break;
596  case 303:
597  // dont cache, always use GET
598  header("303 See Other HTTP/1.1",true,$code);
599  break;
600  case 304:
601  // use cache
602  header("304 Not Modified HTTP/1.1",true,$code);
603  break;
604  case 305:
605  header("305 Use Proxy HTTP/1.1",true,$code);
606  break;
607  // case 306:
608  // header("306 Not Used HTTP/1.1",true,$code);
609  // break;
610  case 307:
611  header("307 Temporary Redirect HTTP/1.1",true,$code);
612  break;
613  default:
614  // Pass Directly
615  if (preg_match('/^(\d{3}) .+ HTTP\/1\.[01]/',$code,$m)) {
616  header($code,true,$m[1]);
617  }
618  break;
619  }
620  header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
621  header("Location: $location");
622  }
623  // Show the HTML?
624  if (($hs==true) || ($code==302) || ($code==303)) {
625  // todo: draw some javascript to redirect
626  $cover_div_style = 'background-color: #ccc; height: 100%; left: 0px; position: absolute; top: 0px; width: 100%;';
627  echo "<div style='$cover_div_style'>\n";
628  $link_div_style = 'background-color: #fff; border: 2px solid #f00; left: 0px; margin: 5px; padding: 3px; ';
629  $link_div_style.= 'position: absolute; text-align: center; top: 0px; width: 95%; z-index: 99;';
630  echo "<div style='$link_div_style'>\n";
631  echo "<p>Please See: <a href='$uri'>".htmlspecialchars($location)."</a></p>\n";
632  echo "</div>\n</div>\n";
633  }
634  exit(0);
635  }
static Radix::route (   $src = null,
  $dst = null,
$arg = null 
)
static

Create a new Route, routes are only process once (that is, no cascade/recurse)

Parameters
$src= the source path, regular expression (with capture)
$dst= the destination path
$arg= the by-ref argument of where to put the matched stuff

Definition at line 102 of file Radix.php.

103  {
104  // Accept the $src as RE, but escape only the '/'
105  $src = str_replace('/','\/',$src);
106  self::$_route_list[] = array(
107  'src' => $src,
108  'dst' => $dst,
109  'arg' => $arg,
110  );
111 
112  // @deprecated - over-rides existing pages/scripts cause it's in front
113  // we want routes to trigger if no Controller/View Found
114  if (preg_match("/$src/i",$_SERVER['REQUEST_URI'],$m)) {
115  Radix::$path = $dst;
116  if ($arg !== null) {
117  $arg = array_merge($arg,$m);
118  } else {
119  $_GET = array_merge($_GET,$m);
120  }
121  }
122  // die( $src );
123  // if (preg_match(
124  }
static Radix::send ( )
static

Sends the Results from the exec() and view() as page

Returns
200|404

Definition at line 207 of file Radix.php.

208  {
209  ob_start();
210 
211  // Bail on Error?
212  // die('self::$_view_res ' . self::$_view_res . "\n");
213  if (self::$_view_res !== self::OK) {
214  $v = self::$_view_res;
215  self::$_view_res = self::OK;
216  radix::bail($v);
217  return(0);
218  }
219 
220  $list = array(
221  sprintf('%s/theme/%s.php',self::$root,self::$theme_name),
222  // sprintf('%s/theme/%s/layout.php',self::$root,self::$theme_name),
223  );
224 
225  if (self::$view->_include($list)) {
226  ob_end_flush();
227  return(0);
228  }
229 
230  // No Layout? Use This Built-In
231  if (empty($_ENV['title'])) $_ENV['title'] = 'radix';
232  echo "<!doctype html>\n";
233  echo "<html>\n";
234  echo '<head><meta http-equiv="content-type" content="text/html;charset=utf-8" />';
235  echo '<title>' . $_ENV['title'] .'</title>';
236  echo '</head><body>';
237  echo '<div>' . self::$view->body . '</div>';
238  echo '</body></html>';
239 
240  ob_end_flush();
241  }
static Radix::stat ( )
static

Definition at line 129 of file Radix.php.

130  {
131  // Check Controller
132  $path = self::$path;
133  while ( (!empty($path)) && ('/' != $path) ) {
134  $file = sprintf('%s/controller/%s.php',self::$root,trim($path,'/'));
135  if (is_file($file)) return true;
136  $path = dirname($path);
137  }
138 
139  // Check Views
140  $list = array();
141  // Module View
142  if (!empty(self::$m)) {
143  $list[sprintf('%s/view/%s.php',self::$m,self::$path)] = -1;
144  }
145  if (self::$_a == 'index') {
146  $list[] = sprintf('%s/view/%s/index.php',self::$root,self::$path);
147  }
148  // Theme Specific View
149  $list[] = sprintf('%s/theme/%s/view/%s.php',self::$root,self::$theme_name,self::$path);
150  // Standard View
151  $list[] = sprintf('%s/view/%s.php',self::$root,self::$path);
152  foreach ($list as $file) {
153  if (is_file($file)) return true;
154  }
155 
156  return false;
157  }
static Radix::trace (   $x = null)
static

Dumps a var and traces how we got here

Parameters
$xthe var to assert on
Returns
exits if var, like assert

Definition at line 482 of file Radix.php.

483  {
484  $buf = null;
485  $dbt = debug_backtrace();
486  $idx = 0;
487  foreach ($dbt as $sf) {
488 
489  $buf.= sprintf('%d: ',$idx++);
490  $buf.= sprintf('%s:%d',$sf['file'],$sf['line']);
491  $buf.= "\n ";
492  if (!empty($sf['class'])) {
493  $buf.= sprintf('%s%s',$sf['class'],$sf['type']);
494  }
495  $buf.= sprintf('%s(',$sf['function']);
496  // $buf.=
497  // Skip This One
498  // if ((isset($s['function'])) && ($s['function']=='local_error_handler')) continue;
499  $arg = array();
500  if (is_array($sf['args'])) foreach ($sf['args'] as $a) {
501  switch (strtolower(gettype($a))) {
502  case 'integer':
503  case 'double':
504  $arg[] = $a;
505  break;
506  case 'string':
507  $a = htmlspecialchars(substr($a, 0, 16)).((strlen($a) > 16) ? '...' : '');
508  $arg[] = "\"$a\"";
509  break;
510  case 'array':
511  $arg[] = 'Array('.count($a).')';
512  break;
513  case 'object':
514  $arg[] = 'Object('.get_class($a).')';
515  break;
516  case 'resource':
517  $arg[] = 'Resource('.strstr($a, '#').')';
518  break;
519  case 'boolean':
520  $arg[] = ($a ? 'True' : 'False');
521  break;
522  case 'null':
523  $arg[] = 'null';
524  break;
525  default:
526  $arg[] = strtolower(gettype($a)) . '?';
527  }
528  }
529  $buf.= implode(', ',$arg);
530  $buf.= ")\n";
531  }
532  // Radix::dump($sf);
533  // Output (should do something with ob_?)
534  if ($x) self::dump($x);
535  self::dump($buf); // echo "<pre>$buf</pre>";
536  exit(0);
537  }
static Radix::trap ( )
static

Engage trap handler for error and exceptions Also the routine that is used to trap errors and exceptions

Definition at line 318 of file Radix.php.

319  {
320 
321  // Engage myself as the error handler
322  if ( ($e_code === true) && ($e_text === null) ) {
323  //set_error_handler(array(self,'trap'));
324  //set_exception_handler(array(self,'trap'));
325  return(true);
326  }
327 
328  //if ( (is_numeric($e_code) && (is_string($e_text)) ) {
329  syslog(LOG_ERR,"I have had a fatal error");
330  file_put_contents('/tmp/custos.err',print_r(debug_backtrace(),true));
331  die(__LINE__);
332  //}
333 
334  //set_error_handler('Radix::error_handler', int $error_types = E_ALL | E_STRICT ] )
335  //set_exception_handler('Radix::hook_exception');
336 
337  ob_end_clean();
338  set_exception_handler(null);
339 
340  try {
341  // @todo reset view to 'error'
342  // @todo insert 'error' layout as option
343  // @todo insert 'error' theme as option
344  // @todo push E to error View
345  // Radix::dump($e);
346  self::$view = new Radix( 'error' );
347  self::$view->path = 'error';
348  //self::view();
349  //self::send();
350  } catch (Exception $e) {
351  die('Really fatal error here');
352  }
353  die(sprintf('%s#%d',__FILE__,__LINE__));
354  }
static Radix::view ( )
static

render the view body

Definition at line 181 of file Radix.php.

182  {
183  $list = array();
184  // Module View
185  if (!empty(self::$m)) {
186  $list[sprintf('%s/view/%s.php',self::$m,self::$path)] = -1;
187  }
188  if (self::$_a == 'index') {
189  $list[] = sprintf('%s/view/%s/index.php',self::$root,self::$path);
190  }
191  // Theme Specific View
192  $list[] = sprintf('%s/theme/%s/view/%s.php',self::$root,self::$theme_name,self::$path);
193  // Standard View
194  $list[] = sprintf('%s/view/%s.php',self::$root,self::$path);
195 
196  ob_start();
197  $res = self::$view->_include($list);
198  self::$view->body.= ob_get_clean();
199  self::$_view_res = $res;
200  return self::$_view_res;
201  }

Member Data Documentation

Radix::$_a = 'index'
staticprotected

Definition at line 37 of file Radix.php.

Radix::$_c
staticprotected

Definition at line 36 of file Radix.php.

Radix::$_exec_res
staticprivate

Definition at line 32 of file Radix.php.

Radix::$_file_list = array()
staticprivate

Definition at line 30 of file Radix.php.

Radix::$_m
staticprotected

Definition at line 35 of file Radix.php.

Radix::$_module_list
staticprivate

Definition at line 29 of file Radix.php.

Radix::$_route_list = array()
staticprivate

Definition at line 31 of file Radix.php.

Radix::$_view_res
staticprivate

Definition at line 33 of file Radix.php.

Radix::$base
static

Definition at line 44 of file Radix.php.

Radix::$body

Definition at line 50 of file Radix.php.

Radix::$host
static

Definition at line 43 of file Radix.php.

Radix::$path
static

Definition at line 45 of file Radix.php.

Radix::$root
static

Definition at line 42 of file Radix.php.

Radix::$theme_bail = 'bail'
static

Definition at line 40 of file Radix.php.

Radix::$theme_name = 'html'
static

Definition at line 39 of file Radix.php.

Radix::$view
static

Definition at line 48 of file Radix.php.

const Radix::NOT_FOUND = 404

Definition at line 27 of file Radix.php.

const Radix::OK = 200

Definition at line 26 of file Radix.php.


The documentation for this class was generated from the following file:
Generated on Mon May 20 2013 01:51:41 for Radix by  doxygen 1.8.3.1