openvk/chandler

Chandler is a PHP 8.2+ web framework powering OpenVK.

Maintainers

Package info

github.com/OpenVK/chandler

pkg:composer/openvk/chandler

Transparency log

Statistics

Installs: 287

Dependents: 0

Suggesters: 0

Stars: 12

Open Issues: 8

dev-master 2026-08-08 21:13 UTC

This package is auto-updated.

Last update: 2026-08-12 21:06:20 UTC


README

Chandler is a PHP 8.2+ web framework powering OpenVK.

Chandler provides the foundation — routing, ORM, templating, auth, sessions, email, and captcha — while apps register themselves as builtin extensions and supply the actual pages.

Important

After 0.1.0 update, site administrators do not need to install Chandler separately. It is now installed through composer.

If you were using Chandler before this update, you will have to migrate. In case of OpenVK, please refer to this Pull Request.

Features

  • Routing — YAML-defined routes with typed placeholders ({num}, {text}, {slug}, custom {?regex})
  • ORM — Nette Database with ActiveRow-style DBEntity models, soft-delete, change logging
  • TemplatingLatte engine with custom {css}, {script}, {presenter} tags
  • Auth — Argon2id password hashing, session tokens (JWT), IP/UA validation
  • Captcha — built-in, served as WebP, stored captcha with encryption
  • Email — SwiftMailer SMTP or Postmark API
  • EventsEventDispatcher for hook-based plugins
  • Console — Symfony Console commands
  • Config — YAML with disk caching
  • DI — Nette DI container per app namespace

Quick start

See the basic example for a minimal runnable app:

examples/basic/
├── helloapp.yml        # Unified config (chandler: + app: sections)
├── bootstrap.php       # Registers the app as a builtin extension
├── htdocs/index.php    # Web entry point
└── Web/                # Presenters, routes, templates
cd examples/basic && php -S 127.0.0.1:8080 -t htdocs htdocs/index.php

How to develop an app

Please, refer to USAGE.md for more details.

Requirements

  • PHP 8.2+
  • ext-sodium, ext-yaml (recommended), ext-mbstring
  • MySQL 8+ / Percona Server / MariaDB

State of this repo

This product is still in development phase, we are currently writing documentation/tests and API is going to change.