thetempusproject / bedrock
Bedrock is intended as the core functionality used by The Tempus Project: a rapid prototyping framework. This library utilizes the MVC architecture in addition to a custom templating engine designed to make building web applications simple.
Requires
- php: >=8.1.0
- thetempusproject/canary: 1.0.9
- thetempusproject/hermes: 1.0.5
- thetempusproject/houdini: 2.0.5
README
Bedrock is the core functionality used by The Tempus Project a rapid prototyping framework. It provides database support, configuration, base models, and base controller functionality a in addition to a host of other integrated functions.
This Library can be utilized outside of TheTempusProject, but the functionality has not been tested well as a stand-alone library.
Installation
To install simply use the composer command:
php composer.phar require thetempusproject/bedrock
Usage
Typical usage would be through including the package via composer.
namespace MyApp;
use TheTempusProject\Bedrock\Bin\Bedrock;
require_once VENDOR_DIRECTORY . 'autoload.php';
class MyApp extends Bedrock {
// "Stuff", "Things", and "What-not"
}
If you would like to use hermes own autoloading, simply inclode the constants file and the autoload file inside /bin/
.
use TheTempusProject\Bedrock\Bin\Bedrock;
// Bedrock Constants
if ( ! defined( 'BEDROCK_CONSTANTS_LOADED' ) ) {
if ( defined( 'BEDROCK_CONFIG_DIRECTORY' ) ) {
require_once BEDROCK_CONFIG_DIRECTORY . 'constants.php';
}
}
// Bedrock Autoloader (Autoloader)
if ( ! defined( 'BEDROCK_AUTOLOADED' ) ) {
if ( defined( 'BEDROCK_ROOT_DIRECTORY' ) ) {
require_once BEDROCK_ROOT_DIRECTORY . 'bin' . DIRECTORY_SEPARATOR . 'autoload.php';
}
}
class MyApp extends Bedrock {
// "Stuff", "Things", and "What-not"
}
To-Do
- [ ] Expansion of PDO to allow different database types
- [ ] Updates for configs and models to re-build based on a delta model, to make version changes simpler. (Migration system)
- [ ] Implement better uniformity in terms of error reporting, exceptions, logging.
Issues / Bugs / Contact
If anyone actually uses this library and runs into any issues, feel free to contact me and I'll look into it.
Joey Kimsey - Lead Developer