<?php
class MVCFramework
{
var $url = '';
function __construct($url)
{
$this->url = $url; //HTTP_REQUEST URL
$this->run();
}
function run()
{
if ($route = Routes::getRoute($this->url)) {
list($controller, $action) = $route;
$controllerObj = new $$controller;
//$controllerObj->$$action();
//template
} else {
print_r('404');
}
}
}
class Routes
{
static $routes = array();
static function add($route, $controller, $action)
{
self::$routes[$route] = array($controller.'Controller', $action);
}
static function getRoutes()
{
return self::$routes;
}
static function getRoute($url)
{
return self::$routes[$url];
}
}
abstract class Model
{
// connect to DB and etc.
}
// controllers/BookController.php
class BooksController
{
function index()
{
$books = Book::all();
}
function show()
{
$id = 1;
$books = Book::find(1);
}
}
// models/Book.php
class Book
{
static function all()
{
$books = array('Book', 'Book', 'Book');
return $books;
}
static function find()
{
$book = 'Book';
return $book;
}
}
Routes::add('/books', 'Books', 'index');
Routes::add('/books/:id', 'Books', 'show');
$url = '/books';
//new MVCFramework($url);
class A {}
$a = "A";
$obj = new $$a();
preferences:
34.75 ms | 402 KiB | 5 Q