vetalforge/jumpix

Lightweight, flexible PHP framework for rapid development

Maintainers

Package info

github.com/vetalforge/jumpix

pkg:composer/vetalforge/jumpix

Statistics

Installs: 9

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-06-04 17:14 UTC

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.