PHPackages                             lite-cms/liteframework - 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. lite-cms/liteframework

ActiveLibrary

lite-cms/liteframework
======================

LiteFramework is a fast and simple framework for PHP.

v0.5.1(3y ago)241MITPHPPHP &gt;=7.3

Since Sep 3Pushed 3y ago1 watchersCompare

[ Source](https://github.com/lite-cms/liteframework)[ Packagist](https://packagist.org/packages/lite-cms/liteframework)[ Docs](https://litecms.ir/)[ RSS](/packages/lite-cms-liteframework/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (5)Versions (2)Used By (0)

Lite Framework
==============

[](#lite-framework)

Installation
------------

[](#installation)

```
composer require lite-cms/liteframework

```

For Apache .htaccess:

```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

```

Examples
--------

[](#examples)

### Basic

[](#basic)

```
require('vendor/autoload.php');

use LiteFramework\Framework;

Framework::init($_SERVER['DOCUMENT_ROOT'], dirname($_SERVER['SCRIPT_FILENAME']));

Framework::route('/', function() {
	Framework::$response->write('Hello, World!');
	Framework::$response->send();
});

Framework::run();
```

#### Custom error page

[](#custom-error-page)

```
Framework::onError(function(int $statusCode, string $statusMessage) {
	Framework::$response->status($statusCode);
	Framework::$response->write('Custom Error '.$statusCode.'');
	Framework::$response->write(''.$statusMessage.'');
	Framework::$response->send();
});
```

### Request

[](#request)

```
use LiteFramework\Request;

$request = new Request();
$request->init();

if ($request->hasError() === true) {
	// error handling
}

echo $request->ip();
echo $request->url();
echo $request->ajax();
// more ...
```

### Response

[](#response)

```
use LiteFramework\Response;

$response = new Response();
$response->init();

$response->status(200);
$response->write('Hello, World!');
$response->send();
// more ...
```

### Router

[](#router)

```
use LiteFramework\Router;

$router = new Router();

$rc = $router->match('/hello', '/hello');
var_dump($rc); // true

$rc = $router->match('/users/@name', '/users/ali');
var_dump($rc); // true

$rc = $router->match('/news/[0-9]+', '/news/1234');
var_dump($rc); // true

$rc = $router->match('/news/[0-9]+', '/news/12a4');
var_dump($rc); // false

$rc = $router->match('/blog(/@year(/@month(/@day)))', '/blog/2020/11');
var_dump($rc); // true

$url = $router->make('/route/@id/user/@name', [1000, 'ali']);
echo $url; // /route/1000/user/ali

$url = $router->make('/path/*', [10, 20, 30]);
echo $url; // /path/10/20/30
```

### Dispatcher

[](#dispatcher)

```
use LiteFramework\Dispatcher;
use LiteFramework\Router;
use LiteFramework\Url;

$url = new Url($_SERVER['DOCUMENT_ROOT'], dirname($_SERVER['SCRIPT_FILENAME']));
$url->setUrl('/1');

$router = new Router();
$dispatcher = new Dispatcher($router, $url->getPath());

$dispatcher->set('/1', 'MyClass::staticMethod');
$dispatcher->set('/2', ['MyClass', 'method']);
$dispatcher->set('/3', function() {
	echo 'callback';
});

$dispatcher->run();
```

```
class MyClass
{
	public static function staticMethod() {
		echo 'static';
	}

	public function method() {
		echo 'non-static';
	}
}
```

### Database

[](#database)

#### SQL table builder

[](#sql-table-builder)

```
use LiteFramework\SqlTableBuilder;
use LiteFramework\Database;

$table = [
	'test_table' => [
		'id' => [
			'type' => 'INT(10)',
			'unsigned' => true,
			'autoincrement' => true,
			'primary_key' => true
		],
		'key'    => ['type' => 'CHAR(100)', 'null' => true],
		'value'  => ['type' => 'VARCHAR(100)', 'null' => true],
		'_index' => [
			'index_name' => ['key' => 'asc'],
		],
	],
];

$builder = new SqlTableBuilder();
$builder->setSchema($table);
$sqlCodes = $builder->build('sqlite'); // sqlite|mysql|mariadb

$db = new Database();
$db->setConfig([
	'drive' => 'sqlite',
	'database' =>'mydb.db',
]);

foreach ($sqlCodes as $code) {
	$db->query($code);
	echo "$code\n";
}
```

Output (SQLite):

```
CREATE TABLE IF NOT EXISTS `test_table` (
  `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  `key` TEXT,
  `value` TEXT);

CREATE  INDEX IF NOT EXISTS `test_table_index_name` ON `test_table` (`key` ASC);

```

Output (MySQL, MariaDB):

```
CREATE TABLE IF NOT EXISTS `test_table` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `key` CHAR(100),
  `value` VARCHAR(100),
  PRIMARY KEY (`id`),
 INDEX `test_table_index_name` (`key` ASC))
 ENGINE = InnoDB;
```

#### Insert

[](#insert)

```
$db->insert('test_table', [
	'key' => 'Hello',
	'value' => 'World',
]);

if ($db->error() !== null) {
	// error handling
}
```

#### Select

[](#select)

```
$result = $db->select('test_table', '*', ['key' => 'Hello']);

if ($db->error() !== null) {
    // error handling
}

print_r($result);
// more ...
```

Output:

```
Array
(
    [0] => Array
        (
            [id] => 1
            [key] => Hello
            [value] => World
        )

)
```

### Logger

[](#logger)

```
use LiteFramework\Logger;

$logger = new Logger('logs.log');
$logger->error('message', ['file' => __FILE__]);
// more ...
```

### Filesystem

[](#filesystem)

```
use LiteFramework\Filesystem;

$fs = new Filesystem();

if ($fs->isFile('test.txt') === false) {
	$contents = 'Hello';
	$fs->write('test.txt', $contents, 0644);
}

if ($fs->isReadable('test.txt') === false) {
	$fs->chmod(0644);
}

$contents = null;
$fs->read('test.txt', $contents);

echo $contents;
// more ...
```

Output:

```
Hello

```

### Hash

[](#hash)

```
use LiteFramework\Hash;

$hash = new Hash();
$hash->setSalt('my-salt');

echo $hash->md5('input'); // c1957df5e4ec324fd3e0f44b0baaa430
echo $hash->sha2('input'); // 606ed6b1d650ad4ed4933f4ba9010eb384e1fe677480b20a3d428cee3c46422b
// more ...
```

### Encoding

[](#encoding)

```
use LiteFramework\Encoding;

$encoding = new Encoding();

$rc = $encoding->isAscii('سلام دنیا');
var_dump($rc); // false

$rc = $encoding->isAscii('Hello, World!');
var_dump($rc); // true

$length = $encoding->strlen('سلام دنیا');
echo $length; // 17
// more ...
```

### Random

[](#random)

```
use LiteFramework\Random;

$random = new Random();

$bytes = $random->bytes(32, $toHex = true);
echo $bytes; // 8aed6defbbb7349e4e074e68117fb0a614fe169897d13bcad57a8b11a8b3716e
// more ...
```

### Loader

[](#loader)

```
use LiteFramework\Loader;

$myVar = 'hello';
Loader::set('myVar', $myVar);

$val = Loader::get('myVar');
echo $val; // hello

$language = 'PHP';
Loader::setRef('language', $language); // Passing by Reference

$language = 'C++';
$val =& Loader::getRef('language'); // Get Reference
echo $val; // C++
// more ...
```

Special thanks
--------------

[](#special-thanks)

- [Flight](https://github.com/mikecao/flight)
- [Medoo](https://github.com/catfan/Medoo)
- [Monolog](https://github.com/Seldaek/monolog)

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

1353d ago

### Community

Maintainers

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

---

Top Contributors

[![alibakhtiar](https://avatars.githubusercontent.com/u/6394549?v=4)](https://github.com/alibakhtiar "alibakhtiar (41 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/lite-cms-liteframework/health.svg)

```
[![Health](https://phpackages.com/badges/lite-cms-liteframework/health.svg)](https://phpackages.com/packages/lite-cms-liteframework)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M17.0k](/packages/laravel-framework)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[magento/community-edition

Magento 2 (Open Source)

12.1k52.1k10](/packages/magento-community-edition)[laravel/nightwatch

The official Laravel Nightwatch package.

3486.1M13](/packages/laravel-nightwatch)[wheelpros/fitment-platform-api

Magento 2 (Open Source)

12.1k1.2k](/packages/wheelpros-fitment-platform-api)[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k15.7k5](/packages/elgg-elgg)

PHPackages © 2026

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