PHPackages                             faso-dev/osc-orm - 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. [Database &amp; ORM](/categories/database)
4. /
5. faso-dev/osc-orm

ActiveLibrary[Database &amp; ORM](/categories/database)

faso-dev/osc-orm
================

This is a little orm or query Builder for PHP MySql.

v1.0.2(6y ago)26MITPHPPHP ^7.1CI failing

Since Feb 7Pushed 6y ago1 watchersCompare

[ Source](https://github.com/faso-dev/osc-orm)[ Packagist](https://packagist.org/packages/faso-dev/osc-orm)[ RSS](/packages/faso-dev-osc-orm/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (3)DependenciesVersions (3)Used By (0)

osc-orm
=======

[](#osc-orm)

This is a little orm or query Builder for PHP MySql. This is update for the small project not need most query to the database.

Requierment
===========

[](#requierment)

- PHP 7.3
- MySql 5.8
- Composer

Installation
============

[](#installation)

- with composer ```
            $ composer require faso-dev/osc-orm
    ```

Use cases
=========

[](#use-cases)

- We need to add the autoload file in your application entry point

    ```
        require_once __DIR__.'/vendor/autoload.php';
    ```
- INSERT USE

    - ### With QUERY INSERT BUILDER

        [](#with-query-insert-builder)

        ```
              use FSDV\Persistance\ConnectionFactory;
              //if we have setting config dir in your project root
              // and it contain file named db_config.ini
              $conection = (new ConnectionFactory)
                                ->setConfig([
                                    'driver'    => 'mysql',
                                    'database'  => 'application_db',
                                    'host'      => '127.0.0.1',
                                    'username'  => 'root',
                                    'password'  => 'secret'
                                ])
                                ->create();

              $builder = new QueryInsertBuilder();
              // Build a sql query, just generate the query
              $query = $builder
                  ->insertInTo('user')
                  ->culums('name','username','mail','role')
                  ->values('faso-dev','faso-dev','mail@mail.faso-dev','ROLE_SUPER_ADMIN')
                  ->getQuery()
                  ->getSQLQuery();

              // Build and commit the query on the database
              // We must give the conection instance to the query class to commit
              // query in the database
              $lastInsertId = $builder
                  ->insertInTo('user')
                  ->culums('name','username','mail','role')
                  ->values('faso-dev','faso-dev','mail@mail.faso-dev','ROLE_SUPER_ADMIN')
                  ->getQuery()
                  ->setConnection($conection)
                  ->save();
        ```
- SELECT CASE

    - ### WITH QUERY SELECT BUILDER

        [](#with-query-select-builder)

        ```
              use FSDV\Builder\SelectBuilder;
              $builer = new SelectBuilder();
              try {
                  // select max(user_id) as last_user;
                  $query = $builer->max('user_id','last_user')->from('user')->getQuery()->getSQLQuery();
                  var_dump($query);
                  // select count(user_id) as count_user;
                  $query = $builer->count('user_id','count_user')->from('user')->getQuery()->getSQLQuery();
                  var_dump($query);
                   // select count(user_id) as total;
                  $query = $builer->avg('panier_price','total')->from('user')->getQuery()->getSQLQuery();
                  var_dump($query);
                   // select count(user_id) as somme;
                  $query =$builer->sum('panier_price','somme')->from('user')->getQuery()->getSQLQuery();
                  var_dump($query);
                  $query = $builer->select()
                      ->from('user','post')
                      ->where('user.id = post.user_id and post.title LIKE %:title%')
                      ->setParameter('title', 'Mon super article')
                      ->orderByAsc(['user.nom'])->getQuery()->getSQLQuery();
                  var_dump($query);
                  $query = $builer->select()
                      ->from('user')
                      ->lefJoin('post', 'post.user_id = user.id')
                      ->where('post.title LIKE %:title%')
                      ->setParameter('title', 'Mon super article')
                      ->orderByDesc(['user.nom'])->getQuery()->getSQLQuery();
                  var_dump($query);
                  $query = $builer->select('username','mail','adresse')
                      ->from('user')
                      ->avg('achat')
                      ->groupBy('username','mail','adresse')
                      ->orderByAsc(['user.username'])->getQuery()->getSQLQuery();
                  ;
                  var_dump($query);
                  $query = $builer->select('username','mail','adresse')
                      ->from('user')
                      ->paginate(200)
                      ->orderByDesc(['user.mail'])->getQuery()->getSQLQuery();
                  ;
                  var_dump($query);
              } catch (Exception $e) {
                  echo $e->getMessage();
              }
        ```
- UPDATE CASE

    - ### WITH QUERY UPDATE BUILDER

        [](#with-query-update-builder)

        ```
            use FSDV\Builder\QueryUpdateBuilder;

            // build an update query
            $builder = new QueryUpdateBuilder();
            try {
                $query = $builder->update('user')
                    ->setCulums('name', 'lastname')
                    ->values('daniel', 'onadja')
                    ->where('(user.id = :user_id) OR (user.username = :username)')
                    ->setParameters([
                        'user_id'  => 1,
                        'username' => 'faso-dev',
                    ])
                    ->getQuery();
                //return sql string query
                $sql = $query->getSQLQuery();
                var_dump($sql);
                //execute the query
                $query->update();
            } catch (\Exception $e) {
                echo $e->getMessage();
            }
        ```
- DELETE CASE

    - ### WITH QUERY DELETE BUILDER

        [](#with-query-delete-builder)

        ```
            use FSDV\Builder\QueryDeleteBuilder;
            //build delete query
            $builer = new QueryDeleteBuilder();
            try {
                $query = $builer->deleteFrom('user')
                    ->where('user_id = :id and (username = :username or email = :mail)')
                    ->setParameters([
                        'id'       => 1,
                        'username' => 'faso-dev',
                        'mail'     => 'faso-dev@gmail.com',
                    ])
                    ->getQuery();
                //return sql string query
                $sql = $query->getSQLQuery();
                var_dump($sql);
                //execute the query
                $query->delete();
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        ```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

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

2

Last Release

2290d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5f30387249ba011301439f329ef324e73d5269750c44c1265bf1a66496750028?d=identicon)[faso-dev](/maintainers/faso-dev)

---

Top Contributors

[![faso-dev](https://avatars.githubusercontent.com/u/40303326?v=4)](https://github.com/faso-dev "faso-dev (32 commits)")[![tsommie](https://avatars.githubusercontent.com/u/10388658?v=4)](https://github.com/tsommie "tsommie (5 commits)")

---

Tags

builderormphpquery-builder

### Embed Badge

![Health badge](/badges/faso-dev-osc-orm/health.svg)

```
[![Health](https://phpackages.com/badges/faso-dev-osc-orm/health.svg)](https://phpackages.com/packages/faso-dev-osc-orm)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90440.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)[wildside/userstamps

Laravel Userstamps provides an Eloquent trait which automatically maintains `created\_by` and `updated\_by` columns on your model, populated by the currently authenticated user in your application.

7511.7M13](/packages/wildside-userstamps)

PHPackages © 2026

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