PHPackages                             jhonoryza/bandung-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. jhonoryza/bandung-framework

ActiveLibrary[Framework](/categories/framework)

jhonoryza/bandung-framework
===========================

small php framework

07PHP

Since Feb 17Pushed 2y ago1 watchersCompare

[ Source](https://github.com/jhonoryza/bandung-framework)[ Packagist](https://packagist.org/packages/jhonoryza/bandung-framework)[ RSS](/packages/jhonoryza-bandung-framework/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

 [ ![Total Downloads](https://camo.githubusercontent.com/4eb07cb3aeeb61418e5e512dd352d8128cbbb4032eb5b37b05ec6497a5bce7de/68747470733a2f2f706f7365722e707567782e6f72672f6a686f6e6f72797a612f62616e64756e672d6672616d65776f726b2f642f746f74616c2e737667) ](https://packagist.org/packages/jhonoryza/bandung-framework) [ ![Latest Stable Version](https://camo.githubusercontent.com/524b414e1d0003c2ecc742204dfb4b0fe18fc9ec85f49d755502227dd55da2cc/68747470733a2f2f706f7365722e707567782e6f72672f6a686f6e6f72797a612f62616e64756e672d6672616d65776f726b2f762f737461626c652e737667) ](https://packagist.org/packages/jhonoryza/bandung-framework) [ ![License](https://camo.githubusercontent.com/4eac2d6261d97b51b56fc4cc0e2cf8249a67c2a27ad2f16fc77815a080486d8e/68747470733a2f2f706f7365722e707567782e6f72672f6a686f6e6f72797a612f62616e64756e672d6672616d65776f726b2f6c6963656e73652e737667) ](https://packagist.org/packages/jhonoryza/bandung-framework)

Bandung Framework
=================

[](#bandung-framework)

small php framework

Framework Directory
-------------------

[](#framework-directory)

- `app` directory is playground for the framework
- `src` directory is the core of the framework
- `public` directory `index.php` will be called when serve web request
- `bandung` file will be called when running console command
- `tests` directory is where the test of the framework reside

Feature
-------

[](#feature)

- route
- request
- response
- console command

WIP
---

[](#wip)

- query builder
- migration
- queue
- filesystem
- mail
- notification
- event and listener

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

[](#getting-started)

### create empty project

[](#create-empty-project)

```
mkdir myapp
cd myapp
composer init
```

### installation

[](#installation)

```
composer require jhonoryza/bandung-framework
cp vendor/jhonoryza/bandung-framework/bandung .
php bandung install
```

after installation completed there will be several files in your project

1. `app/` directory, use this folder to put class controller and command, the framework will scan this folder
2. `public/index.php` this is the entry point for your web application
3. `bandung` this is the entry point for your console command

### create a simple endpoint

[](#create-a-simple-endpoint)

in app directory you can create a class lets say `HomeController` and

let's create a route `/`, `/posts` and `/posts/{id}`

```
    #[Get(uri: '/')]
    public function index(): ResponseInterface
    {
        return Response::make(HttpHeader::HTTP_200, 'Hello world!');
    }

    #[Get(uri: '/posts')]
    public function posts(): ResponseInterface
    {
        return JsonResponse::make(HttpHeader::HTTP_200, [
            'message' => 'ok'
        ]);
    }

    #[Get(uri: '/posts/{id}')]
    public function postDetail(string $id): ResponseInterface
    {
        return JsonResponse::make(HttpHeader::HTTP_200, [
            'message' => 'ok',
            'id' => $id
        ]);
    }
```

the Attributes `#[Get('/')]` will mark this function as a route `/`

let's run `php bandung serve` and open

### get environment variables

[](#get-environment-variables)

```
$appName = getenv('APP_NAME');
echo $appName;
```

### console command

[](#console-command)

you can run like this `php bandung` this will print all available commands

let's create a custom command

in app directory you can create a class lets say `CommandClass` and

let's create a function `testWarning`

```
    #[Command('test:warning')]
    public function testWarning(): void
    {
        warning('testing warning ok');
    }
```

the Attributes `#[Command('test:warning')]` will mark this function as command with name `test:warning`

you can call it from terminal : `php bandung test:warning`

Test
----

[](#test)

./vendor/bin/phpunit

Security
--------

[](#security)

If you've found a bug regarding security please mail  instead of using the issue tracker.

License
-------

[](#license)

The MIT License (MIT). Please see License File for more information.

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity20

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b350bd59744652aada177f2b11c36297774540fadd91f1f41fbfc0bd79e0886?d=identicon)[jhonoryza](/maintainers/jhonoryza)

---

Top Contributors

[![jhonoryza](https://avatars.githubusercontent.com/u/5910636?v=4)](https://github.com/jhonoryza "jhonoryza (23 commits)")

### Embed Badge

![Health badge](/badges/jhonoryza-bandung-framework/health.svg)

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

###  Alternatives

[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k39.6M296](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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