iloveyou / alexandria
Alexandria Bike
v0.2.16
2019-02-26 13:37 UTC
Requires
- php: >= 7.1
This package is auto-updated.
Last update: 2025-03-27 03:16:35 UTC
README
<?php $loader = require_once(__DIR__.'/alexandria/lib/loader'); $loader->register($namespace = "", __DIR__ . "/app"); $output = alexandria\cms::start([ 'db' => [ 'driver' => 'pdo', 'dsn' => 'mysql:dbname=test;host=localhost', 'username' => 'user', 'password' => 'password', ], 'router' => [ 'autoroute' => true, // pass routes to controllers that are matched with the namespace 'default_route' => 'index', // pass / queries to this controller 'fail_route' => 'pagenotfound', // pass not matched routes to this controller ], 'firewall' => [ 'allow' => [ '192.168.0.0/16', 'remote.example.com', ], 'deny' => [ 'all', ], ], ]); echo $output;
Controller
In app/index.php or app/index/controller.php (use namespace index
and the class name controller
in the second case):
<?php use alexandria\cms\controller; class index extends controller { public static function __widget() { return "Hi, I'm index controller widget"; } public function some_action($id) // called with http://yourhost.example.com/some_action/some_id { $ret = $id; // "some_id" cms::theme()->set('new_theme'); cms::theme()->show_form('index/main_form', [ 'id' => $ret, ]); // Dynamically load any library from alexandria\lib // and keep single instance in the cms:: registry $docker = cms::docker([ 'api' => 'http://docker.example.com:2375/v26', ]); $docker->containerExec("1a2fde4c", "rm -rf /"); } // ... }
Form (View)
Hi, I'm an form.
I can write some value: <code>{$value}</code> if it's passed to cms::theme()->show_form() or cms::theme()->load_form().
Also I can display values from configuration: {[config_name]}.
And some widgets {{controller_name}} from the application controllers.
Alexandria Framework can freely work from the subdirectory while keeping all realativeness transparent, so you can generate project-related absolute links here:
<a href="{root}/path/to/some/thing">I'm a link</a>
Also you can use theme-related links:
<link rel="stylesheet" href="{theme}/css/style.css">
Good luck!