PHPackages                             stdtech/dbo - 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. stdtech/dbo

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

stdtech/dbo
===========

Simple ORM for PHP 5.3

v1.0(13y ago)1181[1 issues](https://github.com/stdtech/dbo/issues)MITPHPPHP &gt;=5.3.0

Since Apr 24Pushed 12y ago1 watchersCompare

[ Source](https://github.com/stdtech/dbo)[ Packagist](https://packagist.org/packages/stdtech/dbo)[ Docs](https://github.com/stdtech/dbo)[ RSS](/packages/stdtech-dbo/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

dbo
===

[](#dbo)

Simple ORM for PHP 5.3

Exaple of usage:

Создаем структуру таблиц:

```
$T["pack"] = array(
    "table" => "pack",
    "key" => "id",
    "fields" => array(
        "id" => "int",
        "name" => "char",
        "date_created" => "date",
        "desired_size" => "int",
        "pages_min" => "int",
        "pages_max" => "int",
        "theme_id" => "int",
        "is_full" => "int"
    )
);
```

Инициализируем коннект к БД и "скармливаем БД"

```
$db = new DBObject($config);
$db->init_tables($T);
```

Так выглядит одна строка "вынутая" из базы - ассоциативный массив

```
$row = array(
    "id" => 1,
    "name" => "Alex",
    "date_created" => "2014-03-03 11:12:33",
    "desired_size" => 15,
    ...
);
```

Получить из таблицы "pack" строчки по первичному ключу (колонка "id")

```
$rows = $db->get('pack', 3);
```

Вернется:

```
array(
	0 => array(
	    "id" => 3,
	    "name" => "Mike",
	    "date_created" => "2014-03-03 11:12:33",
	    "desired_size" => 15,
		...
	)
)
```

Получить из таблицы "pack" строчки по первичному где колонка "name" == "Alex"

```
$filter = array(
	"name" => "Alex"
);
$db->get('pack', $filter)
```

Вернется:

```
array(
	0 => array(
	    "id" => 1,
	    "name" => "Alex",
	    "date_created" => "2014-03-03 11:12:33",
	    "desired_size" => 15,
		...
	),
	...
)
```

// получить из таблицы "pack" строчки по первичному где колонка "name" &gt; "Alex"

```
$filter = array(
	"name" => ">Alex"  // символ '>' в начале строки, допускаются =, =, != (по-умолчанию =)
);
$db->get('pack', $filter)
```

Вернется:

```
array(
	0 => array(
	    "id" => 1,
	    "name" => "Alex",
	    "date_created" => "2014-03-03 11:12:33",
	    "desired_size" => 15,
		...
	),
	...
)
```

Обновит таблицу pack, где id=3 и установит колонки в значения из $row (если какие-то колонки в $row пропущены, то данные в таблице будут установлены в NULL)

```
$db->set('pack', $row, 3);
```

обновит таблицу pack, где id=3 и установит только колонки в значения из $row (отсутствующие колонки в $row будут оставлены без изменений)

```
$db->set('pack', $row, 3, false);
```

обновит таблицу pack, где записи совпадают с условиями из $filter

```
$db->set('pack', $row, $filter);
```

добавит новую запись

```
$db->set('pack', $row);
```

Устройство фильтров

```
$filter = array(
	"name" => ">Alex",
	"col_name_1" => "scalar"
	"col_name_2" => array("scalar_1", "scalar_2")
);
```

все колонки объединяются по AND, а внутри одной колонки по OR, т.е. в выше приведенном примере будет:

```
	WHERE name > "Alex" AND col_name_1 = "scalar" AND (col_name_2 = "scalar_1" OR col_name_2 = "scalar_2")
```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

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

Unknown

Total

1

Last Release

4768d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1a7e84f976cc7186a29b75a34589675420d55b88c5b4613efd6f4c45f1b72ce8?d=identicon)[Alexey Ruzin](/maintainers/Alexey%20Ruzin)

---

Top Contributors

[![a-ruzin](https://avatars.githubusercontent.com/u/4249372?v=4)](https://github.com/a-ruzin "a-ruzin (7 commits)")

---

Tags

ormmysql

### Embed Badge

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

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

###  Alternatives

[scienta/doctrine-json-functions

A set of extensions to Doctrine that add support for json query functions.

58523.9M36](/packages/scienta-doctrine-json-functions)[dunglas/doctrine-json-odm

An object document mapper for Doctrine ORM using JSON types of modern RDBMS.

6285.0M10](/packages/dunglas-doctrine-json-odm)[cycle/orm

PHP DataMapper ORM and Data Modelling Engine

1.3k835.4k65](/packages/cycle-orm)[creof/doctrine2-spatial

Doctrine2 multi-platform support for spatial types and functions

2763.3M11](/packages/creof-doctrine2-spatial)[nilportugues/sql-query-builder

An elegant lightweight and efficient SQL QueryInterface BuilderInterface supporting bindings and complicated query generation.

425239.4k6](/packages/nilportugues-sql-query-builder)[mmucklo/queue-bundle

Symfony2/3/4/5 Queue Bundle (for background jobs) supporting Mongo (Doctrine ODM), Mysql (and any Doctrine ORM), RabbitMQ, Beanstalkd, Redis, and ... {write your own}

120839.8k](/packages/mmucklo-queue-bundle)

PHPackages © 2026

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