PHPackages                             mechta-market/php-enhance - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mechta-market/php-enhance

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mechta-market/php-enhance
=========================

1.2.0(1y ago)015PHPPHP ^8.1

Since Jul 3Pushed 1y agoCompare

[ Source](https://github.com/mechta-market/php-enhance)[ Packagist](https://packagist.org/packages/mechta-market/php-enhance)[ RSS](/packages/mechta-market-php-enhance/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

Пакет для работы с базовыми классами
------------------------------------

[](#пакет-для-работы-с-базовыми-классами)

### BaseUsecase

[](#baseusecase)

базовый класс для usecase, наследники которого, агрегируют сервисы, запускают процессы, вызывают бизнес логику

### BaseInput

[](#baseinput)

базовый класс для получения данных из запроса и передаче в usecase

### BaseOutput

[](#baseoutput)

базовый класс для сбора данных по результатам работы с usecase

### Error

[](#error)

класс для хранения информации об ошибке или исключении

### OutputError

[](#outputerror)

класс для хранения данных для http запросов

### Collection

[](#collection)

базовый класс для работы с массивами, примеры в ErrorCollection.php, OutputErrorCollection.php

### Логирование

[](#логирование)

Используйте любой логгер соответствующий `Psr\Log\LoggerInterface`, подгружается в юскейс через конструктор

### Пример использования Usecase в контроллере

[](#пример-использования-usecase-в-контроллере)

```
public function index(Request $request, SomeUsecase $usecase)
{
    $input = new SomeInput($request->get('product_id'));

    $usecase->setInput($input);

    $usecase->execute();

    $response = $usecase->getOutput();

    if ($response->isFailed()) {
        abort($response->getStatusCode(), $response->getArrayResponse());
    }

    return $response->getArrayResponse();
}
```

### Пример работы usecase

[](#пример-работы-usecase)

```
class SomeInput extends BaseInput
{
    public function __construct(private int $product_id){
    }

    public function getProductId(): int {
        return $this->product_id;
    }
}

class SomeUsecase extends BaseUsecase
{
    /**
     * @property SomeUsecaseData $data
     * @property SomeInput $input
     */
    public function execute(): void
    {
        try {
            $product_id = $this->input->getProductId();

            if ($product_id === 0) {
                throw new \Exception("Product id is zero");
            }

            $product = new Product(
                $product_id, "iPhone 15 Pro Max Ultra GigaByte",
                "iphone-15-super-puper", 999990
            );

            $this->data->setProduct($product);

        } catch (\Exception $ex) {
            $this->errors->addClientError($ex->getMessage(), 400);
        } catch (\Throwable $th) {
            $this->errors->addServerError($th->getMessage());
        }
    }

    protected function setData(): void
    {
        $this->data = new SomeUsecaseData();
    }
}

class SomeUsecaseData implements UsecaseDataInterface
{
    private Product $product;

    public function setProduct(Product $product): void {
        $this->product = $product;
    }

    public function getData(): array
    {
        return [
            "id" => $this->product->getId(),
            "name" => $this->product->getName(),
            "code" => $this->product->getCode(),
            "price" => $this->product->getPrice(),
        ];
    }
}
```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88% 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 ~4 days

Total

4

Last Release

718d ago

PHP version history (2 changes)1.0.0PHP ^8.2

1.1.0PHP ^8.1

### Community

Maintainers

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

---

Top Contributors

[![kaliyev](https://avatars.githubusercontent.com/u/15031244?v=4)](https://github.com/kaliyev "kaliyev (22 commits)")[![kaliyev-r](https://avatars.githubusercontent.com/u/88377573?v=4)](https://github.com/kaliyev-r "kaliyev-r (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mechta-market-php-enhance/health.svg)

```
[![Health](https://phpackages.com/badges/mechta-market-php-enhance/health.svg)](https://phpackages.com/packages/mechta-market-php-enhance)
```

###  Alternatives

[symfony/lock

Creates and manages locks, a mechanism to provide exclusive access to a shared resource

514139.2M692](/packages/symfony-lock)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[ecotone/ecotone

Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.

564576.7k53](/packages/ecotone-ecotone)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[illuminate/broadcasting

The Illuminate Broadcasting package.

7127.2M208](/packages/illuminate-broadcasting)[logiscape/mcp-sdk-php

Model Context Protocol SDK for PHP

368116.8k12](/packages/logiscape-mcp-sdk-php)

PHPackages © 2026

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