vetalforge / jumpix
Lightweight, flexible PHP framework for rapid development
Requires
- php: ^8.1
- ext-pdo: *
- psr/container: ^2.0
Suggests
- doctrine/orm: Required for Doctrine ORM repositories
- smarty/smarty: Required for SmartyRenderer
- symfony/cache: Required by Doctrine ORM setup
This package is auto-updated.
Last update: 2026-06-04 17:15:54 UTC
README
Jumpix is a lightweight PHP framework package for building small MVC applications. It provides the reusable framework core: routing, HTTP request/session helpers, a PSR-compatible dependency injection container, database query tools, ORM abstractions, and view rendering utilities.
For a ready-to-run application structure, use vetalforge/jumpix-app.
Installation
Install the framework package with Composer:
composer require vetalforge/jumpix
Requirements
- PHP 8.1 or higher
- Composer
- PDO extension
Optional integrations:
composer require smarty/smarty composer require doctrine/orm symfony/cache
Namespace
Framework classes use the Jumpix\ namespace:
use Jumpix\Container\Container; use Jumpix\Http\Request; use Jumpix\Http\Router; use Jumpix\Http\Session; use Jumpix\Core\Database\QueryBuilder; use Jumpix\Models\Model; use Jumpix\Views\TemplateEngine;
Your application code should use its own namespace, usually App\.
What Is Included
src/
Container/ Dependency injection container
Core/
Database/ Query builder and database seeder
ORM/ Repository interfaces and native/Doctrine drivers
Http/ Request, router, and session helpers
Models/ Base Active Record model
Views/ Native, Smarty, and template engine renderers
Basic Router Usage
use Jumpix\Http\Router; $router = new Router([ '/' => [ 'controller' => App\Controllers\HomeController::class, 'action' => 'index', ], ]); $actionData = $router->getActionData('/');
Container Usage
use Jumpix\Container\Container; use Jumpix\Http\Request; $container = new Container([ Request::class => fn () => new Request(false, '/my-app'), ]); $request = $container->get(Request::class);
Native Model Usage
Create application models by extending the framework base model:
namespace App\Models; use Jumpix\Models\Model; class User extends Model { protected string $table = 'users'; }
Before using native models, provide a configured query builder:
use Jumpix\Core\Database\QueryBuilder; use Jumpix\Models\Model; $pdo = new PDO('mysql:host=localhost;dbname=app;charset=UTF8', 'root', ''); Model::setBuilder(new QueryBuilder($pdo));
Then use the Active Record API:
use App\Models\User; $users = User::all(); $user = User::find(1); $user = User::create([ 'name' => 'John Doe', 'email' => 'john@example.test', ]); $user->name = 'John Updated'; $user->save(); $user->delete();
Template Engine
use Jumpix\Views\TemplateEngine; $views = new TemplateEngine(__DIR__ . '/resources/views'); echo $views->render('home', [ 'title' => 'Welcome', 'items' => ['One', 'Two', 'Three'], ]);
Example template:
<h1>{{ title }}</h1> <ul> @foreach($items as $item) <li>{{ item }}</li> @endforeach </ul>
Database Seeder
use Jumpix\Core\Database\DatabaseSeeder; $seeder = new DatabaseSeeder($pdo, __DIR__ . '/database'); $seeder->run([ 'create_tables.sql', 'create_users.sql', ]);
Starter App
The recommended way to start a new project is:
composer create-project vetalforge/jumpix-app my-app
The app skeleton contains public/, config/, resources/, controllers, routes, examples, and DI bindings.
License
Jumpix is open-sourced software licensed under the MIT license.