PHPackages                             rforge/rforge - 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. rforge/rforge

ActiveLibrary[Framework](/categories/framework)

rforge/rforge
=============

Simple and elegant framework solution for beginners.

v0.2.0(8y ago)213[2 issues](https://github.com/zodiark23/RForge/issues)MITPHPPHP &gt;=5.6.4

Since Apr 10Pushed 8y ago2 watchersCompare

[ Source](https://github.com/zodiark23/RForge)[ Packagist](https://packagist.org/packages/rforge/rforge)[ RSS](/packages/rforge-rforge/feed)WikiDiscussions master Synced 2w ago

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

RForge Framework (*on-going*) [![Build Status](https://camo.githubusercontent.com/2d8ecba4d37ac16e355fe94074fb5561a9b180991581f71bdf4e773fafd52fd7/68747470733a2f2f7472617669732d63692e6f72672f7a6f646961726b32332f52466f7267652e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/zodiark23/RForge)
=============================================================================================================================================================================================================================================================================================================

[](#rforge-framework-on-going-)

The idea is to create an easy to use framework for beginners. We will use the `Application ()` class to load its needed modules such as `routes`, `controllers`, `models`. The model class directly represents the table in the database.

This framework is *under development*. Will offer MVC Pattern architecture with components, and routing and ORM. Model classes will directly reflect the DB Tables.

### To start a new project

[](#to-start-a-new-project)

> On terminal, navigate to your project's directory and run the following code:

```
    composer require rforge/rforge
```

> Then run this command to generate new autoloader

```
    composer dump-autoload -o
```

### Sample application

[](#sample-application)

When you completed all the required steps above you can start creating a new application. This is a sample format of your `index.php`. Call the `require_once` line as shown below to load the framework. After that line we need to import the Application class by `use Rforge\Application;`.

```
    require_once __DIR__."/vendor/autoload.php";

    use RForge\Application;
    use RForge\Settings\Config;

    Config::setConnection([
        "host"=>"127.0.0.1",
        "user"=>"root",
        "pass"=>"",
        "charset"=>"utf8",
        "driver"=>"mysql"
    ]);

    $app = new Application("YourProjectNameSpace");
    $app->setTables('Models\\'); //database('bld'); // start(); // **Note**: You must set the config first before running `$app->start()`, or it will use the default configuration

Models
======

[](#models)

Models directly represents the database structure. *RForge tracks the changes on your models and updates the database*. The framework does not support Model Relational Database Mapping yet.

To create your `model` simply create a new class then assign *properties* to that class. The class properties will be the name of the `columns` created in the database. To assign the datatype use the the `JSDOC` syntax as shown below :

```
class User{
    /**
     * @INT (10)
     * @AUTO_INCREMENT
     * @PRIMARY KEY
     */
    public $IDS;
    /**
     * @Text
     */
    public $name;
}
```

Operations
==========

[](#operations)

These class holds the database method implementation and must be inherited by your models.

```
class User extends Operations{
    /**
     * @INT (10)
     * @AUTO_INCREMENT
     * @PRIMARY KEY
     */
    public $IDS;
    /**
     * @Text
     */
    public $name;
}
```

Using your models
-----------------

[](#using-your-models)

Some of the models return the value to the Model that trigger it. While other methods return the value as an array of that Model. Currently only two methods is supported and more methods will be available soon.

Initialize your model and use the methods below:

- selectAll(array $limit)
    - Returns all the value of the database
    - TODO: customizing the query for order, group etc
- findByID(mixed $id)
    - Returns the row of the that matches the primary of that table

```
$user = new User(); // initialize the model with operations
$user->findByID(23); // invoke the method
echo $user->name; //output => Alex
```

> Notice that you directly get the value of your query on your model. *Some methods **returns an array of the Model that triggered the method** , while others return the value directly **to the class itself***

Assigning Models path
=====================

[](#assigning-models-path)

You must place these model on a separate folder and should be at the upmost directy. As the `filecrawler` will find other classes on these directory too.

- App
    - Models &lt;-- This is the path you must put at `setTables` method in application class.
        - user.php &lt;-- User model
        - product.php &lt;-- Product model
    - img
    - css
    - js
    - index.php

Framework Structure(Developer Reference)
----------------------------------------

[](#framework-structuredeveloper-reference)

- src
    - App
    - Config
    - Controller
    - Database
    - Directory
    - Exception
    - Model
    - Provider
    - Session
    - Component
    - Route

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

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 ~60 days

Total

5

Last Release

3128d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/18022149?v=4)[Reyan Tropia](/maintainers/zodiark23)[@zodiark23](https://github.com/zodiark23)

---

Top Contributors

[![zodiark23](https://avatars.githubusercontent.com/u/18022149?v=4)](https://github.com/zodiark23 "zodiark23 (29 commits)")

---

Tags

beginner-friendlyentity-framework-phpmvc-architecturephp-framework

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k104.3M841](/packages/laravel-socialite)[laravel/dusk

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

1.9k38.6M289](/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)
