PHPackages                             sharpdressedcodes/keletos - 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. sharpdressedcodes/keletos

ActiveLibrary

sharpdressedcodes/keletos
=========================

Minimalist PHP Framework

v0.1.0(6y ago)04proprietaryPHPPHP ^7.2

Since Sep 9Pushed 6y ago1 watchersCompare

[ Source](https://github.com/sharpdressedcodes/keletos)[ Packagist](https://packagist.org/packages/sharpdressedcodes/keletos)[ Docs](https://github.com/sharpdressedcodes/keletos)[ RSS](/packages/sharpdressedcodes-keletos/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (7)Versions (6)Used By (0)

Keletos
=======

[](#keletos)

*Minimalist PHP Framework designed to get the job done with minimum fuss.*

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

[](#installation)

```
composer require sharpdressedcodes/keletos

```

Usage
-----

[](#usage)

At a minimum, you'll need to setup Routes inside `application/Routes/[filename].php`:

```
use Keletos\Component\Routing\Router;
use Application\Controller\Main as MainController;

Router::match(['GET', 'POST'], '/', MainController::class);

Router::get('/test/{id?1}', function($id = -1) {
    echo 'no controller!!! ' . $id;
});

Router::get('/user/{name}', function($name) {
    echo "name is $name";
}, [
    'requirements' => [
        'name' => '/^\w+$/',
    ]
]);

Router::any('*', [MainController::class, 'catchAll']);

```

You can use a Controller or an anonymous function as the action. If you just pass in a class without a method, it will default to an `index` method.

If you choose to use a Controller, then extend the `Keletos\Controller\Controller` class. Example controller:

```
class Main extends Controller {
    public function index() {
        $views[] = [
            'view' => 'google-search-api',
            'var' => 'content',
            'viewParams' => $viewParams,
        ];

        $this->render([
            //'layout' => $this->_layoutFile,
            'views' => $views,
            'title' => $pageTitle,
        ]);
    }
}

```

`$viewParams` are the variables passed to the view.

Then create an index page:

```
use Keletos\Component\Application\Application;
//use Keletos\Component\ConfigManager;
//use Keletos\Component\Rendering\Renderer;
//use Keletos\Component\Routing\Router;

(function() {

    $basePath = dirname(__DIR__);

    require_once $basePath . '/vendor/autoload.php';
    require_once dirname($basePath) . '/c3.php';

    //$configManager = new ConfigManager($basePath);
    //$config = $configManager->getConfig();

    //$renderer = new Renderer($config, ($config['debug'] ? 'Debug' : 'Main') . '.php');
    //$router = new Router(['web'], $renderer, $basePath);

    $application = Application::factory([
        'routes' => ['web'],
        'basePath' => $basePath,
        //'renderer' => $renderer,
        //'router' => $router,
        //'configManager' => $configManager,
    ]);

    $application->run();

})();

```

You can even override the default `Renderer` and `Router`.

Accessing the application variable from anywhere in the code:

```
$application = Application::instance();

```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 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

Every ~2 days

Total

5

Last Release

2433d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/55d12608b238d4a7ebad8761cfa15a547b304dc6a854adaee1dbde22347a81b5?d=identicon)[sharpdressedcodes](/maintainers/sharpdressedcodes)

---

Top Contributors

[![sharpdressedcodes](https://avatars.githubusercontent.com/u/932604?v=4)](https://github.com/sharpdressedcodes "sharpdressedcodes (2 commits)")

###  Code Quality

TestsCodeception

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/sharpdressedcodes-keletos/health.svg)

```
[![Health](https://phpackages.com/badges/sharpdressedcodes-keletos/health.svg)](https://phpackages.com/packages/sharpdressedcodes-keletos)
```

###  Alternatives

[simplesamlphp/simplesamlphp

A PHP implementation of a SAML 2.0 service provider and identity provider.

1.1k12.4M193](/packages/simplesamlphp-simplesamlphp)[illuminate/routing

The Illuminate Routing package.

1238.6M2.3k](/packages/illuminate-routing)[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)[shopware/storefront

Storefront for Shopware

684.2M148](/packages/shopware-storefront)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)

PHPackages © 2026

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