Download the PHP package globus-studio/atomic-framework without Composer
On this page you can find all versions of the php package globus-studio/atomic-framework. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download globus-studio/atomic-framework
More information about globus-studio/atomic-framework
Files in globus-studio/atomic-framework
Package atomic-framework
Short Description Atomic Framework – power in minimalism
License GPL-3.0-or-later
Informations about the package atomic-framework
Atomic Framework
Power in minimalism
Atomic Framework
A modular, full-featured PHP framework built on top of Fat-Free Framework. Atomic provides a structured application skeleton with authentication, queue processing, scheduling, caching, CLI tooling, and more - while staying lightweight and unopinionated.
Application skeleton
Download the application skeleton for a quick start: Atomic Application
Table of Contents
- Features
- Requirements
- Installation
- Project Structure
- Configuration
- Core Concepts
- Application Lifecycle
- Routing
- Middleware
- Controllers & Models
- Authentication
- Database & Migrations
- Queue System
- Task Scheduler
- Plugins
- Event & Hook System
- Caching
- Internationalization
- CLI
- Security
- Testing
- Documentation
- License
Features
| Category | Highlights |
|---|---|
| Core | Fluent bootstrap, dual config loaders (.env / PHP arrays), preflight environment checks |
| Auth | Bcrypt password hashing, session binding (IP + User-Agent), dual rate limiting (IP + credential), OAuth 2.0 (Google), Telegram Login Widget, admin impersonation with audit trail |
| Database | MySQL via PDO, Redis, Memcached - managed through ConnectionManager with health-check pings |
| Migrations | Timestamp-based migration system with batch tracking, rollback support, and plugin migration auto-discovery |
| Queue | Redis driver (Lua-scripted atomic ops) and Database driver (row-level locks) with retry, TTL, and monitoring |
| Scheduler | Full POSIX cron expression parser, timezone-aware, timeout protection (300 s) |
| Cache | Stable Redis, Memcached, database, and folder (filesystem) drivers with cascade fallback, namespace-wide invalidation, and transient storage |
| Middleware | Parameterized middleware stack with named aliases and route-pattern matching |
| Events & Hooks | Hierarchical event dispatcher with priorities + WordPress-compatible action/filter layer |
| SMTP mailer with multipart/alternative support, DNS deliverability scoring (SPF/DKIM/DMARC) | |
| i18n | Multi-language support with URL prefixing, cookie/session/header detection, automatic hreflang generation |
| Files | CSV parsing/generation, PDF generation with embedded TrueType fonts, XLS/OLE2 reading |
| CLI | 45+ built-in commands: init, migrations, seeding, cache operations, queue management, scheduling |
| Crypto | NaCl secretbox (libsodium) authenticated encryption with per-message random nonces |
| Validation | Trait-based model validation with 15+ rule types including UUID, regex, and password entropy |
| Telemetry | Event tracking and monitoring endpoints |
| WebSockets | Workerman-based WebSocket server with Redis pub/sub |
| Plugins | Plugin lifecycle management with dependency checking: WordPress REST, Monopay, RSS Reader, WooCommerce |
| Theme | Theme manager with asset enqueueing, head metadata, OpenGraph, and path traversal protection |
Requirements
- PHP ≥ 8.1 with extensions:
json,session,mbstring,fileinfo,pdo,pdo_mysql,curl - Composer
- MySQL / MariaDB (primary database)
- Redis (recommended for cache, queue, sessions, WebSockets)
- Memcached (optional, alternative cache backend)
- libsodium (bundled with PHP ≥ 7.2 for encryption)
Installation
Quick start and install the framework via Composer:
Download the application skeleton for a quick start: Atomic Application
Create your project entry point:
Generate application keys and scaffold your project:
Project Structure
Configuration
Atomic supports two configuration modes controlled by ATOMIC_LOADER in bootstrap/const.php:
.env Mode (default)
PHP Array Mode
Configuration files in config/ return associative arrays:
bootstrap/error.php configures native PHP error logging to storage/logs/php_errors-YYYY-MM-DD.log when the log directory is writable.
Core Concepts
Application Lifecycle
The bootstrap chain in bootstrap/app.php initializes the application via a fluent interface:
Core framework plugins are loaded before user/application plugins. User and core plugins are both resolved from config/providers.php; plugin directories are not scanned automatically.
Routing
Routes are organized by type and loaded automatically based on request context:
| Request Type | Route Files |
|---|---|
| Web | routes/web.php, routes/web.error.php |
| API | routes/api.php |
| CLI | routes/cli.php |
| Telemetry | routes/telemetry.php |
Middleware
Named, parameterized middleware attached to route patterns:
Middleware implements MiddlewareInterface:
Plugins
Plugins are explicit providers. Atomic only loads plugin classes listed in config/providers.php:
The framework does not include every file in a plugin directory and does not load unregistered plugin folders. It resolves each provider class, loads the plugin's main class file when needed, then registers, boots, and loads routes only for enabled registered plugins.
User plugins live under USER_PLUGINS and should follow the generated layout:
Create a plugin scaffold with:
If a plugin uses Composer dependencies, install them for the plugin before booting the application. Atomic provides a CLI command for all provider-registered plugins, or one named plugin:
The CLI route for this command is registered in engine/Atomic/Core/Routes/cli.php as /plugin/deps.
Each plugin that depends on Composer packages should declare runtime checks with required_dependencies(). This gives a clear error when vendor/autoload.php or required package symbols are missing:
Composer autoloading remains the plugin's responsibility: keep plugin dependencies in the plugin's composer.json, run the dependency install command, and ensure the plugin has a readable vendor/autoload.php. Atomic will load that autoloader during provider loading when it exists.
Controllers & Models
Models extend the base Model with built-in validation:
Authentication
Atomic provides a full authentication stack with adapter-based dependency injection:
Security features:
- Bcrypt password hashing (timing-safe verification)
- Session regeneration on login (session fixation protection)
- IP and User-Agent binding with suspicious activity detection
- RateLimit middleware for IP, user, and route throttling
- OAuth state parameter with
hash_equals()verification - Comprehensive audit logging (no credentials in logs)
Database & Migrations
Queue System
Dual-driver queue with Redis (Lua-scripted atomics) and Database (row-level locks):
Task Scheduler
Event & Hook System
Events (modern, hierarchical with priorities):
Hooks (WordPress-compatible actions and filters):
Caching
Multi-driver caching with cascade fallback. Redis, Memcached, folder, and database adapters share the same public behavior: exact-key set, get, exists, clear, namespace-wide reset, and per-instance generation refresh. Prefix deletion is intentionally not part of the shared cache contract because Memcached cannot provide it with the same guarantees.
Atomic also installs a wrapper for Fat-Free Framework's own cache singleton. That keeps F3-native features such as route TTL caching, SQL/schema TTL caching, minify cache, and F3 lexicons working with the selected Atomic backend. The wrapper supports basic F3 cache operations and full reset; suffix-specific reset is not part of Atomic's cache contract. Application code should use Transient or CacheManager instead of calling \Cache::instance() directly. The two layers share the backend choice, not the key format.
Internationalization
Language detection priority: URL prefix → GET parameter → Cookie → Session → Accept-Language header → default.
CLI
Security
| Layer | Implementation |
|---|---|
| Encryption | NaCl secretbox (libsodium) - authenticated encryption with random nonces |
| Passwords | Bcrypt with automatic salt, constant-time verification |
| Sessions | IP + User-Agent binding, regeneration on login, configurable lifetime |
| Rate Limiting | Dual counters (IP-based + credential-based) with configurable TTL windows |
| OAuth | CSRF state tokens verified with hash_equals(), replay protection |
| CSRF | Nonce tokens bound to IP and User-Agent |
| Input | htmlspecialchars escaping, parameterized database queries via PDO |
| Logging | Sensitive data (passwords, tokens, keys) automatically masked by Sanitizer |
| Authorization | Role-based access via Guard with backed enum support |
| Impersonation | Admin-only with session regeneration and full audit trail |
Testing
Atomic ships with a comprehensive PHPUnit test suite:
- 723 tests across 49 test classes
- 94.7% pass rate (685 passed, 3 failures, 35 skipped)
- Covers: cryptography, authentication, authorization, validation, middleware, events, hooks, routing, sanitization, scheduling, caching, theme management
Documentation
Full documentation is available in the docs/ directory:
| Topic | File |
|---|---|
| Core Bootstrap | atomic_core.md |
| Configuration | config.md |
| Database | database.md |
| Cache and Storage | cache.md |
| Migrations | migrations.md |
| Models | model.md |
| Middleware | middleware.md |
| Request | request.md |
| Queue | queue.md |
| Scheduler | scheduler.md |
| Events | event.md |
| Hooks | hook.md |
| Mailer | mailer.md |
| i18n | i18n.md |
| Sessions | session.md |
| CLI | cli.md |
| Logging | log.md |
| Assets & Themes | assets.md |
| Mutex | mutex.md |
| Telegram | telegram.md |
| AI Connector | ai_connector.md |
License
Atomic Framework is open-source software licensed under the GPL-3.0-or-later.
All versions of atomic-framework with dependencies
ext-json Version *
ext-session Version *
ext-mbstring Version *
ext-fileinfo Version *
ext-pdo Version *
ext-pdo_mysql Version *
ext-curl Version *
globus-studio/fatfree-core Version ^3.9.2.1
globus-studio/cortex-atomic Version ^2.0
workerman/workerman Version ^5.1
workerman/redis Version ^2.0