Skip to the content.

Website Wiki Issues

Total Downloads Latest Stable Version GitHub Release License PHP Version Require

Pair is a lightweight PHP framework for server-rendered web applications. It focuses on fast setup, clear MVC routing, practical ORM features, and optional integrations (Aircall, S3, SES, Sentry, Telegram, Push, Passkey) without heavy tooling.

What’s New

Pair v3 is currently in alpha and includes breaking changes compared to previous major versions.

Quick Start

1) Install with Composer

composer require viames/pair

2) Bootstrap the application

<?php

use Pair\Core\Application;

require 'vendor/autoload.php';

$app = Application::getInstance();
$app->run();

3) Next Steps

Why Pair

Core Features

ActiveRecord

Pair maps classes to DB tables and supports automatic casts (int, bool, DateTime, float, csv), relation helpers, and caching-oriented query helpers.

Docs: ActiveRecord

Routing Basics

Default route format (after base path):

/<module>/<action>/<params...>

Example: example.com/user/login

Docs: Router

Log Bar and Debugging

Built-in log bar for loaded objects, memory usage, timings, SQL traces, backtraces, and custom debug messages.

Frontend Helpers

PairUI

Dependency-free helper for progressive enhancement in server-rendered apps (assets/PairUI.js).

Main directives:

Docs: PairUI.js

PWA Helpers (No Build Step)

Available assets:

Minimal frontend setup:

<script src="/assets/PairUI.js" defer></script>
<script src="/assets/PairPWA.js" defer></script>
<script src="/assets/PairRouter.js" defer></script>
<script src="/assets/PairSkeleton.js" defer></script>
<script src="/assets/PairDevice.js" defer></script>
<script src="/assets/PairPasskey.js" defer></script>

Important notes:

Passkey Quick Start

Backend:

class ApiController extends \Pair\Api\PasskeyController {}

This enables:

Third-Party Integrations

Pair includes optional support for services such as:

Configuration reference: Configuration (.env)

Upgrading

If you are upgrading between major versions:

composer run upgrade-to-v2
composer run upgrade-to-v3

To test unreleased code from main:

composer require viames/pair dev-main

Documentation

Main docs live in the Wiki.

Useful pages:

Requirements

Software Recommended Minimum Configuration
Apache 2.4+ 2.4 modules: mod_rewrite
MySQL 8.0+ 8.0 character_set: utf8mb4
collation: utf8mb4_unicode_ci
storage_engine: InnoDB
PHP 8.4+ 8.3 Composer-required extensions: curl, intl, json, mbstring, PDO

Runtime notes:

Example Project

Start from pair_boilerplate to bootstrap a new app quickly.

Support

Changelog

Version history is available in GitHub Releases: github.com/viames/pair/releases

Security

If you discover a security issue, please open a GitHub issue with a clear description and steps to reproduce.

Contributing

Feedback, code contributions, and documentation improvements are welcome via pull request.

License

MIT