zeretei / php-core
simple php mvc framework
v0.1.0-beta
2021-07-05 08:01 UTC
This package is auto-updated.
Last update: 2025-04-29 01:26:20 UTC
README
PHP Core
Simple MVC framework
See setup branch for actual usage
Setup
// enable strict type declare(strict_types=1); // start a session if (session_status() === PHP_SESSION_NONE) { session_start(); } use Zeretei\PHPCore\Application; use Zeretei\PHPCore\Http\Request; // import autoloader require_once __DIR__ . '/../vendor/autoload.php'; // set config $config = require_once dirname(__DIR__) . '/config.php'; // create an application instance $app = new Application($config); // setup paths $app->bind('path.app', $app->ROOT_DIR . 'app'); $app->bind('path.views', $app->ROOT_DIR . 'app/Views'); $app->bind('path.routes', $app->ROOT_DIR . 'app/routes.php'); $app->bind('path.databases', $app->ROOT_DIR . 'app/Databases'); // run application $app->run(Request::uri(), Request::method());
Application
use \Zeretei\PHPCore\Application; Application::get('config'); // app config Application::get('router'); // router instance Application::get('request'); // request instance Application::get('response'); // response instance Application::get('database'); // database instance Application::get('session'); // session instance
Routing
// routes.php use \Zeretei\PHPCore\Http\Router; use \App\Controller\UserController; return function (Router $router) { // set router host $router->setHost('simplewebsite'); // get request $router->get('/path', fn () => 'Hello World!'); // post request $router->post('/login', [UserController::class, 'login']); // put request $router->put(); // patch request $router->patch(); // delete request $router->delete(); }
Database
// execute a sql statement Application::get('database')->query($sql, $params); // execute an update sql statement Application::get('database')->update($sql, $params); // execute an delete sql statement Application::get('database')->delete($sql, $params); // execute a select sql statement Application::get('database')->fetch($sql, $params); // execute a select all sql statement Application::get('database')->fetchAll($sql, $params);
Model
class User extends Model {} $user = new User(); $user->insert($params) $user->update($id, $params) $user->delete($id, $key) $user->select($id, $key) $user->all()
Controller
class UserController extends Controller { public __construct() { // register a middleware $this->registerMiddleware(new AuthMiddleware(['delete'])); } }
Middlewares
class AuthMiddleware extends Middleware { // execute a middleware public function execute($action) { if (Application::isGuest()) { throw new \Exception("403 - Unauthorized"); } } }