PHPackages                             eulr/oom - 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. eulr/oom

ActiveLibrary

eulr/oom
========

Object Oriented Model for php and MySQL

19PHP

Since Jul 20Pushed 8y ago1 watchersCompare

[ Source](https://github.com/Said210/OOM)[ Packagist](https://packagist.org/packages/eulr/oom)[ RSS](/packages/eulr-oom/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

OOM Quick Guide (With examples) And in spanglish (Ahua)
=======================================================

[](#oom-quick-guide-with-examples-and-in-spanglish-ahua)

OOM es una clase base para poder utilizar una base de datos en MySQL como si fuesen objetos desde PHP.

---

Construcción de una clase de para representar una tabla
-------------------------------------------------------

[](#construcción-de-una-clase-de-para-representar-una-tabla)

Deberás hacer el require de OOM.php

```
require_once '/vendor/eulr/oom/OOM.php'
```

y heredar de esa OOM

```
class Modelo extends OOM
```

En el constructor de la clase deberás añadir el nombre que tiene la tabla a la que hace referencia de la base de datos.

```
function __construct(){
    $this->model_name = "modelo";
}
```

Quedando algo así

```

```

---

Métodos (Cosas en las que te ayudará OOM) 😅
===========================================

[](#métodos-cosas-en-las-que-te-ayudará-oom-)

Método: `all()`
---------------

[](#método-all)

CampoValor**parametros**Nope**regresa**Un arreglo con todos los resultados de esa tabla### Implementación

[](#implementación)

```
$m_result = $m->all();
echo json_encode($m_result);
```

Método: `find(id, full_obj = false)`
------------------------------------

[](#método-findid-full_obj--false)

CampoValor**id**id del elemento deseado.**full\_obj**Si es *falso* regresará solo los attr, pero si es *verdadero* regresará todo el objeto.**regresa**Un objeto de la clase que lo invoco.De igual forma asigna al objeto que lo invoco los valores de retorno, en caso de no querer usar una variable extra. ¯\\*(ツ)*/¯

### Implementación

[](#implementación-1)

```
$r = $m->find(3);
echo json_encode($r);  // {"model_name":"sale_master","db":"gallery","attr":{"id":"40","description":"Coyoacan Agosto 2015","water_mark":"oAt01dN9OM"}}
echo json_encode($m);  // {"id":"40","description":"Coyoacan Agosto 2015","water_mark":"oAt01dN9OM"}
```

Método: `find_by(key, value, full_obj = false)`
-----------------------------------------------

[](#método-find_bykey-value-full_obj--false)

CampoValor**key** *(String)*Nombre del atributo que se busca.**value** *(String)*Valor que debe tener el atributo buscado.**full\_obj**Si es *falso* regresará solo los attr, pero si es *verdadero* regresará todo el objeto.**regresa**Un arreglo con todos los elementos que cumplan la condición.### Implementación

[](#implementación-2)

```
$r = $m->find_by('description', 'Coyoacan Agosto 2015');
echo json_encode($r);  //  [{"model_name":"sale_master","db":"gallery","attr":{"id":"40","description":"Coyoacan Agosto 2015","water_mark":"oAt01dN9OM"}},{"model_name":"sale_master","db":"gallery","attr":{"id":"42","description":"Coyoacan Agosto 2015","water_mark":"W2hnsEkVyg"}}]
```

Método: `get_many(values,key)`
------------------------------

[](#método-get_manyvalueskey)

CampoValor**values** *(String)*lista de valores separados por comas.**key** *(opcional)(String)*Campo con el que deberá coincidir.**regresa**Un arreglo con todos los elementos que cumplan la condición.### Implementación

[](#implementación-3)

```
$r = $m->get_many('40,42', 'id');
echo json_encode($r);  //  [{"model_name":"sale_master","db":"gallery","attr":{"id":"40","description":"Coyoacan Agosto 2015","water_mark":"oAt01dN9OM"}},{"model_name":"sale_master","db":"gallery","attr":{"id":"42","description":"Coyoacan Agosto 2015","water_mark":"W2hnsEkVyg"}}]
```

Método: `where(query)`
----------------------

[](#método-wherequery)

CampoValor**Query** *(String)*Query de mysql (☞ﾟ ∀ﾟ )☞**regresa**Un arreglo con todos los elementos que cumplan la condición.### Implementación

[](#implementación-4)

```
$r = $m->where('id=40');
echo json_encode($r);  //  [{"model_name":"sale_master","db":"gallery","attr":{"id":"40","description":"Coyoacan Agosto 2015","water_mark":"oAt01dN9OM"}}]
```

Método: `create(json)`
----------------------

[](#método-createjson)

CampoValor**json** *(string)*Objeto JSON con los valores para crear el objeto.**regresa**Objeto de mysqli con el resultado del query.### Implementación

[](#implementación-5)

```
$m->create('{"description": "Hola", "water_mark": "L20Fd4F33F"}');
```

Método: `save()`
----------------

[](#método-save)

CampoValor**regresa**Booleano### Implementación

[](#implementación-6)

```
$m = new Modelo();
$m->attr["description"] = "Ejemplo 1";
$m->attr["water_mark"] = "02t034FVB2";
$m->save();
```

Isi °ω°

Método: `drop(query)`
---------------------

[](#método-dropquery)

CampoValor**query** *(String)(Opcional)*Se manda un query como `description='TEST'`pero si es nulo se borra el elemento que tenga actualmente el objeto que lo invoco, en caso de existir un `$m->attr["id"]`.**regresa**Objeto de mysqli con el resultado del query.### Implementación

[](#implementación-7)

```
$m_last =  $m->last();
$m_last->drop(); // Borra el ultimo elemento
$m->drop('description="TEST"'); //Borra el/los elemento que cumplan esa condición.
```

Método: `sum(column, condition)`
--------------------------------

[](#método-sumcolumn-condition)

CampoValor**column** *(String)*Nombre de la columna con respecto a la que se ordenará.**condition** *(String)(Opcional)*Condición que deben de complir**regresa** *(Entero)*La suma de los valores de la columna indicada en *column* que cumplan la condición indicada en *condition*, en caso de ser nula, serán todos.### Implementación

[](#implementación-8)

```
$m->sum('id'); //=> 82
```

Método: `first(column)`
-----------------------

[](#método-firstcolumn)

CampoValor**column** *(String)(Opcional)*Nombre de la columna con respecto a la que se ordenará.**regresa**El primer elemento ordenado.### Implementación

[](#implementación-9)

```
$r = $m->first();
// {"id":"40","description":"Coyoacan Agosto 2015","water_mark":"oAt01dN9OM"}
```

Isi °ω°

Método: `last(column)`
----------------------

[](#método-lastcolumn)

CampoValor**column** *(String)(Opcional)*Nombre de la columna con respecto a la que se ordenará.**regresa**El último elemento ordenado.### Implementación

[](#implementación-10)

```
$r = $m->last();
// {"id":"42","description":"Coyoacan Agosto 2015","water_mark":"W2hnsEkVyg"}
```

Método: `count(where='')`
-------------------------

[](#método-countwhere)

CampoValor**where** *(String)*MySQL query**regresa**Entero### Implementación

[](#implementación-11)

```
$r = $m->where('description = "Pedro"');
echo $r;
// 0
```

Isier 7w7

\#Misceláneos y así.

`before_save`
-------------

[](#before_save)

*Before\_save* es una forma que te ayudará a validar o a realizar acciones antes de guardar en la base de datos, puede existir... o no, como quieras. ¯\\*(ツ)*/¯

### Uso

[](#uso)

```

```

---

###### En caso de dudas, y citando a Santi:

[](#en-caso-de-dudas-y-citando-a-santi)

> Use the force, read the code.

---

[eulr.mx, 2015](eulr.mx)\######Me tomo más tiempo hacer esto que la clase :c

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3b64cf2534850abfd2bb8503391c44d78f1f03e65a5112961312e4e3bf193168?d=identicon)[Said210](/maintainers/Said210)

---

Top Contributors

[![Said210](https://avatars.githubusercontent.com/u/7459012?v=4)](https://github.com/Said210 "Said210 (8 commits)")

### Embed Badge

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

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

PHPackages © 2026

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