Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | First code. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
7ea7a53853ff4bafa63a2744a9d19d94 |
| User & Date: | mikolas 2012-07-01 19:47:09.000 |
Context
|
2012-10-06
| ||
| 18:40 | Added rollfile to external dependencies. check-in: e7b2706104 user: Spravce tags: trunk | |
|
2012-07-01
| ||
| 19:47 | First code. check-in: 7ea7a53853 user: mikolas tags: trunk | |
| 19:46 | initial empty check-in check-in: b67261bdc8 user: mikolas tags: trunk | |
Changes
Added bricks/storage.php.
> > | 1 2 |
<?php
class bricks_storage{}
|
Added brickyard.php.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
<?php
class brickyard{
public $errors=array();
public $controller="home";
public $method="index";
public $debug=false;
public function __construct(){
$this->file_path=dirname(__FILE__);
$this->router=new brickyard_router();
$this->view=new brickyard_view();
$this->view->framework=$this;
}
function init(){
set_error_handler(array($this,"error_handler"));
spl_autoload_register(array($this,"autoload"));
}
function autoload($name){
$filename=$this->file_path.DIRECTORY_SEPARATOR;
$filename.=str_replace("_",DIRECTORY_SEPARATOR,$name);
$filename.=".php";
include $filename;
}
public function error_handler($errno,$errmsg,$errfile="",$errline=-1){
$this->errors[]=array("no"=>$errno,"message"=>$errmsg,"file"=>$errfile,"line"=>$errline);
}
function bluescreen($message){
if ($this->debug){
ob_clean();
$out="<html><head><title>error</title></head><body><h1>:-(</h1>";
$out.="<p>".$message."</p>";
$out.="<pre>";
echo $out;
debug_print_backtrace();
$out="</pre>";
$out.="</body></html>";
echo $out;
exit;
}
}
public function run(){
ob_start();
$route=$this->router->analyze();
if ($route["controller"]!=""){ $this->controller=$route["controller"]; }
if ($route["method"]!=""){ $this->method=$route["method"]; }
$controller_path=$this->file_path.DIRECTORY_SEPARATOR."c".DIRECTORY_SEPARATOR.$this->controller.".php";
if (file_exists($controller_path)){
include $controller_path;
$controller_instance=new $this->controller;
$controller_instance->framework=$this;
$call=array($controller_instance,$this->method);
if (is_callable($call)){
call_user_func_array($call,$route["args"]);
}else{
$this->bluescreen("Invalid method ".$this->method."!");
}
}else{
$this->bluescreen("Invalid controller ".$this->controller."!");
}
//var_dump($this->errors);
}
}
class brickyard_router{
public $base_url="/";
public function analyze(){
$ret=array("controller"=>"","method"=>"","args"=>array());
$path=( isset($_SERVER["PATH_INFO"]) ? explode("/",$_SERVER["PATH_INFO"]) : array() );
if (count($path)>1){$ret["controller"]=$path[1];}
if (count($path)>2){$ret["method"]=$path[2];}
$ret["args"]=array_slice($path,3);
return $ret;
}
public function route($r){
$url=$this->base_url;
if (isset($r["controller"])){
$url.=$r["controller"];
if (isset($r["method"])){
$url.="/".$r["method"];
if (isset($r["args"])){
$url.="/".join($r["args"],"/");
}
}
}
return $url;
}
}
class brickyard_view{
public $data=array();
public function assign($key,$value=""){
$this->data[$key]=$value;
}
public function display($view){
extract($this->data);
include "v/".$view.".php";
}
}
|
Added c/wiki.php.
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php
class wiki{
function index(){
$this->page("index");
}
function page($pg){
$text=file_get_contents($this->framework->file_path."/doc/".$pg.".txt");
$this->framework->view->assign("title",$pg);
$this->framework->view->assign("text",$text);
$this->framework->view->display("wiki");
}
}
|
Added doc/index.txt.
> | 1 | ok |
Added index.php.
> > > > > > > > > | 1 2 3 4 5 6 7 8 9 | <?php require "brickyard.php"; $framework=new brickyard(); $framework->init(); $framework->debug=true; $framework->controller="wiki"; $framework->router->base_url="/b/index.php/"; $framework->run(); var_dump($framework->errors); |
Added v/wiki.php.
> > | 1 2 | <h1><?php echo $title; ?></h1> <?php echo $text; ?> |