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.
- Routing — YAML-defined routes with typed placeholders (
{num},{text},{slug}, custom{?regex}) - ORM — Nette Database with ActiveRow-style
DBEntitymodels, soft-delete, change logging - Templating — Latte 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
- Events —
EventDispatcherfor hook-based plugins - Console — Symfony Console commands
- Config — YAML with disk caching
- DI — Nette DI container per app namespace
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.phpPlease, refer to USAGE.md for more details.
- PHP 8.2+
- ext-sodium, ext-yaml (recommended), ext-mbstring
- MySQL 8+ / Percona Server / MariaDB
This product is still in development phase, we are currently writing documentation/tests and API is going to change.