PHPackages                             matajm/php-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. matajm/php-orm

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

matajm/php-orm
==============

Simple ORM basado en PDO

0.0.5(8y ago)223[1 issues](https://github.com/matajmSoluciones/phpORM/issues)MITPHPPHP &gt;=5.6.0

Since Dec 14Pushed 8y ago2 watchersCompare

[ Source](https://github.com/matajmSoluciones/phpORM)[ Packagist](https://packagist.org/packages/matajm/php-orm)[ RSS](/packages/matajm-php-orm/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (6)Used By (0)

Simple ORM php
==============

[](#simple-orm-php)

Un sencillo y práctico ORM derivado de la instancia `\PDO`.

Requisitos
----------

[](#requisitos)

- PDO
- PHP 5.6+

Soporte de las bases de datos
-----------------------------

[](#soporte-de-las-bases-de-datos)

- Postgres 9.5+

Instalación
-----------

[](#instalación)

```
composer require matajm/php-orm

```

Establece la conexión de la base de datos
-----------------------------------------

[](#establece-la-conexión-de-la-base-de-datos)

Para establecer la conexión de la base de datos solo usa los siguientes comandos en la cabecera inicial del archivo.

```
    Database::$dns = 'pgsql:port=[port];host=[host];dbname=[db_name]';
    Database::$username = 'Ingrese su usuario';
    Database::$password = 'Contraseña';
```

Estas tres lineas representan la configuración inicial del ORM.

Crea tus modelos
----------------

[](#crea-tus-modelos)

Crear un modelo es tan simple como crear una clase.

```
    use \phpORM\Models;
    use \phpORM\Fields\StringField;
    use \phpORM\Fields\AutoIncrementField;
    use \phpORM\Fields\IntegerField;

    class Animal extends Models {
        protected static $table_name = "animal";
        public $id = [
            "type" => AutoIncrementField::class,
            "db_column" => "animal_id",
            "primary_key" => true
        ];
        public $name = [
            "type" => StringField::class,
            "db_column" => "animal_nombre"
        ];
        public $eyes = [
            "type" => StringField::class,
            "db_column" => "animal_cantidad_ojos",
            "default" => 0
        ];
    }
```

Heredar modelos
---------------

[](#heredar-modelos)

Puedes crear modelos que heredan atributos, funcionabilidad a través de las herencias.

```
    class Perro extends Animal {
        protected static $table_name = "perro";
        public $eyes = [
            "type" => StringField::class,
            "db_column" => "animal_cantidad_ojos",
            "default" => 2
        ];
    }
```

Como se observa en el modelo anterior la clase Perro hereda todos los metodos y atributos, cambiando el atributo $eyes su valor por defecto.

Crear la tabla en la base de datos
----------------------------------

[](#crear-la-tabla-en-la-base-de-datos)

Para crear las tablas correspodientes puedes realizarlo uno a uno o usando el metodo `Database::createTables`

```
    Animal::createTable() # crea la tabla animal
    Database::createTables([
        Animal::class,
        Perro::class
    ]) # crea todas las tablas
```

Eliminar la tabla en la base de datos
-------------------------------------

[](#eliminar-la-tabla-en-la-base-de-datos)

Para eliminar las tablas correspodientes puedes realizarlo uno a uno o usando el metodo `Database::dropTable`

```
    Animal::dropTable() # elimina la tabla animal
    Database::dropTables([
        Animal::class,
        Perro::class
    ]) # crea todas las tablas
```

Crear un objeto
---------------

[](#crear-un-objeto)

Crear un objeto Serializers no inserta un registro en la base de datos, sino genera un objeto representativo del esquema de la base de datos para persistir los cambios deberá usar el metodo `Serializers::save()`.

```
    $mascota = Perro::create([
        "name" => "Punky",
    ]);
    $mascota->name
    #Punky
    $mascota->id
    #NULL
    $mascota->save() # Inserta el registro
    $mascota->id
    # 1
```

El metodo `Serializers::save()` registra todos los cambios, en caso de no existir el registro lo inserta y en caso de detectarse cambios actualiza el registro.

```
    $mascota->name = "Bolt";
    $mascota->save();
```

Eliminar un registro
--------------------

[](#eliminar-un-registro)

El metodo `Serializers::remove()` elimina el objeto de la base de datos.

```
    $mascota->remove();
    $mascota->save(); # IntegrityError no existe
```

Buscar registros
----------------

[](#buscar-registros)

Para buscar registros existen tres metodos de acuerdo a las necesidades de busqueda

```
    Perro::find() # busca todos los registros
    Perro::findOne() #  busca un registro

    Perro::findId(1) #busca el registro que posea la clave id 1
```

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity9

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

Total

5

Last Release

3161d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/66892056?v=4)[matajm](/maintainers/matajm)[@matajm](https://github.com/matajm)

---

Top Contributors

[![matajmSoluciones](https://avatars.githubusercontent.com/u/9389377?v=4)](https://github.com/matajmSoluciones "matajmSoluciones (97 commits)")

---

Tags

matajmormpdophpphp7phpormpostgresqlsqlphpormpostgresqlsqlphpormmatajm

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/matajm-php-orm/health.svg)

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

###  Alternatives

[cycle/orm

PHP DataMapper ORM and Data Modelling Engine

1.3k951.0k87](/packages/cycle-orm)[cycle/database

DBAL, schema introspection, migration and pagination

71811.3k67](/packages/cycle-database)[crcms/elasticsearch

Use SQL statements to query elasticsearch

1048.3k1](/packages/crcms-elasticsearch)[ramadan/easy-model

A Laravel package for enjoyably managing database queries.

111.6k](/packages/ramadan-easy-model)

PHPackages © 2026

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