PHPackages                             readycms/readycms-php-framework - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. readycms/readycms-php-framework

ActiveProject[Framework](/categories/framework)

readycms/readycms-php-framework
===============================

Theme-driven PHP framework for building ReadyCMS-powered websites.

v1.0.1(2mo ago)02↓66.7%MITPHPPHP &gt;=8.2CI passing

Since Feb 24Pushed 2mo agoCompare

[ Source](https://github.com/readycmsio/readycms-php-framework)[ Packagist](https://packagist.org/packages/readycms/readycms-php-framework)[ RSS](/packages/readycms-readycms-php-framework/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (3)Used By (0)

ReadyCMS PHP Framework
======================

[](#readycms-php-framework)

A lightweight, theme-driven PHP framework for building websites powered by ReadyCMS.

This framework is currently **project-oriented**: you clone it into a new site and adjust configuration, templates, and (optionally) controllers. Over time, parts of the framework (including the ReadyCMS API SDK and base themes) will become reusable Composer packages.

---

Key Concepts
------------

[](#key-concepts)

### Theme system (overrides + parent + shared)

[](#theme-system-overrides--parent--shared)

Themes are resolved using a predictable fallback chain:

1. **THEME** (project overrides)
2. **\_THEME\_PARENT** (base/upgradable theme package)
3. **\_shared** (always-present shared fallback)

This allows teams to update a base theme without overwriting project customizations.

#### Folder conventions

[](#folder-conventions)

Under `app/themes/`:

- `_shared/` → shared templates/includes used by all themes (must exist)
- `_/` → base theme package (upgradable, reusable)
- `/` → project/site overrides (safe to edit)

Public assets follow the same pattern under `public/`:

- `public/_shared/` (optional)
- `public/_/`
- `public//`

#### Example

[](#example)

Using project overrides `diline` with base theme package `_vidaa`:

```
app/themes/
  _shared/
  _vidaa/
  diline/

public/
  _vidaa/
  diline/

```

Config:

```
define('THEME', 'diline');        // overrides: app/themes/diline
define('THEME_PARENT', 'vidaa');  // base: app/themes/_vidaa
```

---

Requirements
------------

[](#requirements)

- PHP 8.1+ (recommended)
- Web server (Apache/Nginx) or local stack (Laragon/XAMPP)
- Composer (for vendor dependencies)

---

Getting Started
---------------

[](#getting-started)

### 1) Clone the project

[](#1-clone-the-project)

```
git clone  my-site
cd my-site
```

### 2) Install dependencies

[](#2-install-dependencies)

```
composer install
```

### 3) Configure environment

[](#3-configure-environment)

Copy sample files and adjust values:

- `app/config/config.sample.php` → `app/config/config.php` (or your actual config path)
- `.env.sample` → `.env` (if used)

Make sure you set:

- DB credentials (if applicable)
- domain / base URL values
- caching configuration (if applicable)

### 4) Configure theme

[](#4-configure-theme)

In your config:

```
define('THEME', 'diline');
define('THEME_PARENT', 'vidaa');
```

### 5) Ensure writable directories

[](#5-ensure-writable-directories)

Make sure these are writable by PHP:

- `app/templates_c/` (Smarty compile)
- `storage/` (if used)
- `logs/` (if used)
- `cache/` (if used)

### 6) Run locally

[](#6-run-locally)

Point your local vhost to the project `public/` directory.

---

Template, Include &amp; Asset Resolution
----------------------------------------

[](#template-include--asset-resolution)

The theme chain applies consistently to:

- Smarty templates (`templates/`)
- Theme-root template includes (`includes/*.html`)
- PHP includes via `requireTemplateDirectoryFile()`
- Public assets via `getPublicAssetUrl()` / `asset_url`

### Smarty includes

[](#smarty-includes)

If a template contains:

```
{include file="includes/head.html"}
```

Smarty will resolve it using:

1. `app/themes/{THEME}/includes/head.html`
2. `app/themes/_{THEME_PARENT}/includes/head.html`
3. `app/themes/_shared/includes/head.html`

---

Routing Controllers from Themes
-------------------------------

[](#routing-controllers-from-themes)

Some routes/controllers may be loaded from theme folders using `rawFileRoute()`. Resolution order is the same theme chain:

1. `app/themes/{THEME}/...`
2. `app/themes/_{THEME_PARENT}/...`
3. `app/themes/_shared/...`

---

Updating
--------

[](#updating)

This repo is currently updated via Git (pull/merge from upstream).
Base theme updates are done by updating the parent theme folder (e.g. `_vidaa`) while keeping project changes in the override theme (e.g. `diline`).

Future plan:

- ReadyCMS API SDK via Composer
- Framework and base themes distributable via Composer

---

Project Structure (high level)
------------------------------

[](#project-structure-high-level)

- `core/` → framework core
- `app/` → project-level code (templates, configs, controllers, themes)
- `app/themes/` → themes (`THEME`, `_THEME_PARENT`, `_shared`)
- `public/` → public entry + theme assets
- `libs/vendor/` → Composer dependencies (if stored here in this project layout)

---

License
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance84

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

84d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca0a36efd34dbd5b9922fc1fcfd7cd3c49e3ec7acbb1d302938a426c243f3ca3?d=identicon)[readycmsio](/maintainers/readycmsio)

---

Top Contributors

[![readycmsio](https://avatars.githubusercontent.com/u/179220617?v=4)](https://github.com/readycmsio "readycmsio (4 commits)")[![iammiloslukic](https://avatars.githubusercontent.com/u/29106337?v=4)](https://github.com/iammiloslukic "iammiloslukic (1 commits)")

### Embed Badge

![Health badge](/badges/readycms-readycms-php-framework/health.svg)

```
[![Health](https://phpackages.com/badges/readycms-readycms-php-framework/health.svg)](https://phpackages.com/packages/readycms-readycms-php-framework)
```

###  Alternatives

[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[getkirby/cms

The Kirby core

1.5k535.5k352](/packages/getkirby-cms)[jelix/jelix

Jelix PHP framework

83101.5k4](/packages/jelix-jelix)[doppar/framework

The Doppar Framework

366.7k8](/packages/doppar-framework)[chameleon-system/chameleon-base

The Chameleon System core.

1026.5k3](/packages/chameleon-system-chameleon-base)[sproutcms/cms

Enterprise content management and framework

241.6k4](/packages/sproutcms-cms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
