Juju-framework is a project mainly written in PHP, based on the GPL-3.0 license.
A flexible super-lightweight PHP framework with PHP templates
The juju-framework is a minimalistic framework, that can be used for simple template-driven pages.
Contact me via http://bondconsult.no/Contact, or github.com/bond - for submitting patches or questions.
The framework is very lightweight and flexible and can be used in many ways, it is intended for php developers. Here is a quick example of how to use it:
First, drop the juju-framework in your library-folder, in example "yourproject/lib/juju-framework". Create a index.php file that will describe your site:
<?php
$root = $_SERVER['DOCUMENT_ROOT']; $lib = "$root/lib";
// include framework require_once "$lib/juju-framework/Site.inc.php";
// define site $site = new Site; $site->name = 'My homepage';
// The script expects to have URLs rewritten to /index.php?url=$1, if you prefer to use PATH_INFO and rewrite to /index.php/$1 use this: // $site->use_path_info();
// Add a page to the $site. This page will react to '/' URI, the page name (ie, for use in titles - will be 'welcome'. // The second option to the new page, is a array of options. The template-option is required. The template named 'welcome', will be translated into 'templates/welcome.php'. The options can be accessed via $page->opts['option_name']. IE, an option for including jquery can be set on the pages that needs jquery. // The third option to $site->add_page(), 'main', is which menu's the site should be included in. This can also be an array, if you wish to include the page into multiple menus. // the menu's can be fetched with: $site->get_menu('main'), or the name that was given to it.
$site->add_page('/', new Page('welcome', array( 'template' => 'welcome', ) ), 'main' );
$site->add_page('/test', new Page('test', array( 'template' => 'test', ) ) );
// check if the current request is valid if ($page = $site->load_requested_page()) { // valid request, render the usual layout-file. the layout file is where all your html design goes. Usually you will: "<?php include($page->template()) ?>" where you want the pages content to go. include( $page->layout() ); } else { $site->http_error('404'); echo "
?>