Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jwheare/borax
PHP web framework
https://github.com/jwheare/borax
Last synced: about 2 months ago
JSON representation
PHP web framework
- Host: GitHub
- URL: https://github.com/jwheare/borax
- Owner: jwheare
- Created: 2011-01-14T05:23:58.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2012-03-12T21:52:44.000Z (almost 13 years ago)
- Last Synced: 2023-04-13T08:18:54.222Z (over 1 year ago)
- Language: PHP
- Homepage:
- Size: 1.47 MB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
HELLO WORLD:
// app/route.class.php
'home',
);
}
}// app/controller
title = "My First Borax Page";
$this->message = "Hello World";
return $this->response;
}
}// app/template/home/index.tpl.php
title); ?>
message); ?>
Now install apache-vhost.conf, fix the paths, restart apache and go!
ARCHITECTURE:
1. Apache rewrites all URLs to public/index.php
2. index.php creates a web app runner (Core\Web) and calls handleRequest();
3. App runner a) creates a dispatcher (Core\Dispatcher) with the app (App\Route) and base url routes
b) encapsulates the HTTP request $request (Core\Request)
c) encapsulates a user session (App\Session) and injects it into the request
d) calls processRequest($request) on the dispatcher
4. Dispatcher maps the request to a controller (App\Controller) and calls generateResponse() on it
5. Controller either a) renders a template and returns a response (Core\Response)
or b) throws an error or redirect (Core\HttpStatus)
6. Dispatcher returns a response (Core\Response), converting error or redirect if needed first.
7. App runner calls respond() on the response.
8. Response sets headers and echos output.FILE OVERVIEW:
apache-vhost.conf // apache virtualhost configuration
stub/ // Minimal stub app
app/ // Full example app
|
|-- conf/ // Conf
| --- conf.php // global conf
| --- local.conf.php // local host specific conf. rename this to your system hostname, followed by ".conf.php"
|
|-- controller/ // Controllers
| --- home.controller.php // GET / - home page
| --- signout.controller.php // GET /signout - deletes session cookie and throws a redirect
| --- twitter.controller.php // GET /twitter/start - throws a redirect to start twitter oauth process
| // GET /twitter/callback - handles twitter oauth callback, signs in, redirects
|
|-- init.php // App setup/service registration
|
|-- lib/ // Lib directory on include path for app specific libs
| --- date.class.php // Misc date helpers
|
|-- model/ // Models
| --- person.class.php // Person database model
|
|-- route.class.php // Url routes
|
|-- schema/ // Model database schemas
| --- person.mysql.sql // Person table schema
|
|-- script/ // Script classes that extend Core\Script
|-- twitterinfo.class.php // Looks up twitter user info, optionally authenticated with a user, or manual credentials
|
|-- service/ // Services
| --- db.service.php // mysql database
| --- memcache.service.php // memcache client
| --- memcached.service.php // memcached client (alternate)
|
|-- session.class.php // User sessions
|
|-- template/ // Templates
| --- error.tpl.php // http errors
| --- footer.inc.tpl.php // global footer
| --- header.inc.tpl.php // global header
| --- home/
| --- index.tpl.php // home page
| --- _page/ // page templates with no controller
| --- about.tpl.php // about pagescript/ // script runners
|-- twitterinfo.php // runs the app script class
|-- initdb.php // runs the core script classutil.php // global php helper functions
core/ // Core framework classes
|
|-- controller/ // Abstract controllers
| --- base.class.php // Base
| --- form.class.php // Form (POST) -> must redirect
| --- html.class.php // HTML (GET)
| --- json.class.php // Base JSON
| --- jsondelete.class.php
| --- jsonget.class.php
| --- jsonpost.class.php
| --- jsonput.class.php
| --- page.class.php // Static html page (GET)
| --- shared.class.php // Shared logic
|
|-- db.class.php // PDO wrapper
|
|-- dispatcher.class.php // Maps urls to controllers, passing in request objects and returning responses
|
|-- dump.class.php // Debug dump helper
|
|-- email.class.php // mb_send_mail wrapper with templating.
| // writes to mail.log instead of sending if define(DISABLE_EMAILS, true);
|
|-- httprequest.class.php // curl wrapper
|
|-- httpstatus/ // HTTP status classes
| --- base.class.php
| --- baseerror.class.php
| --- baseredirect.class.php
| --- ... // Individual status classes
|
|-- model.class.php // ORM
|
|-- relationshipcache.class.php // Foreign key lookup cache
|
|-- request.class.php // Incoming HTTP request wrapper
| // Wraps $_GET $_POST $_COOKIE and $_SERVER
|
|-- response/ // Response classes
| --- base.class.php
| --- html.class.php
| --- htmlerror.class.php
| --- json.class.php
| --- jsonerror.class.php
| --- redirect.class.php
|
|-- script.class.php // Script class, with helpers for handling command line args
|-- initdbscript.class.php // Creates a new database and username
|
|-- servicemanager.class.php // Static global services manager
|
|-- session.class.php // Base Session class. Wraps $_SESSION. Manages cache headers
|
|-- twitter.class.php // Twitter API client
|
|-- url.class.php // URL encoding, building, parsing class
|
|-- web.class.php // Web app runnerinit.php // Framework initialisation
# Web document root
public/ // Put non static and non framework files in here
|-- index.php // Delegates to web app runner