---
# System prepended metadata

title: Examples

---

# Examples

1. Уточнение заказа:
* сменить статус
* добавить event
* дёрнуть по api

```cpp
$orderService->toBO(Entity $order)
{    
    try {
        $this->db->beginTransaction();
        $this->orderWriter->toBO($order, ['status' => 11]);
        $this->eventService->addEvent(Event::CODE_TOBO, [...]);
        $this->db->commit();
    
    } catch(Exception $e) {
        $this->logger($e->getMessage());
        $this->db->rollback();    
    }
}
```

2. Например запускаю пересчёт параметров рейтинга. Возможно ли как-то получить кол-во инсёртов / апдейтов, весь список или ещё что-то.
Возможно это другими средствами стоит делать
https://github.com/auraphp/Aura.Sql/blob/3.x/docs/profiling-logging.md

```cpp
// activate the profiler
$pdo->getProfiler()->setActive(true);

// ...
// query(), fetch(), beginTransaction()/commit()/rollback() etc.
// ...

// now retrieve the array messages from the default memory logger:
$messages = $pdo->getProfiler()->getLogger()->getMessages();
print_r($messages);
```

3. В идеале вообще dry-run уметь делать с выводом всех запросов

Вариант 0 -- собирать руками и делать как сейчас `if($inx) { ... }`
Вариант 1 -- делать rollback + profiling (см выше) чтобы вытащить запросы
Вариант 2 -- переключать базу? Есть движок blackhole у [mysql](https://dev.mysql.com/doc/refman/8.0/en/blackhole-storage-engine.html)
Оба варианта кривенькие.

4. Как в класс сущности добавить любые public/private/protected свойства или методы, не нарушая при этом логику работы сущности?
 
Вроде не должно ничего ломаться - см `Dataq->getUpdtDateTime();`