Skip to content

Latest commit

 

History

History
173 lines (128 loc) · 9.87 KB

README.md

File metadata and controls

173 lines (128 loc) · 9.87 KB

Laravel

Laravel-пакет для работы со статическими справочниками

Version Version Build Status Coverage Code quality Downloads count License

При помощи данного пакета вы сможете интегрировать сервис по работе со статическими справочниками в ваше Laravel >=5.4 приложение с помощью нескольких простых шагов.

Install

Require this package with composer using the following command:

$ composer require avto-dev/static-references-laravel "^3.0"

Installed composer is required (how to install composer).

You need to fix the major version of package.

Если вы используете Laravel версии 5.5 и выше, то сервис-провайдер данного пакета будет зарегистрирован автоматически. В противном случае вам необходимо самостоятельно зарегистрировать сервис-провайдер в секции providers файла ./config/app.php:

'providers' => [
    // ...
    AvtoDev\StaticReferences\ServiceProvider::class,
]

Использование

Данный пакет регистрирует IoC-контейнеры объектов справочников, и это является является единой точкой входа в сами справочники. Использование именно IoC (вместо new SomeReference) обусловлено тем, что сервис провайдер данного пакета обеспечивает кэширование объектов справочников (целиком) и проверку на валидность кэша (в версиях до 2.0 была необходимость "сбрасывать" весь кэш ручками при обновлении пакета).

Если вы предпочитаете использовать фасады для доступа к справочникам - они так же имеют место быть.

Реализованные справочники

На данный момент реализованы следующие справочники:

  • AvtoDev\StaticReferences\References\AutoCategories\AutoCategories
  • AvtoDev\StaticReferences\References\AutoRegions\AutoRegions
  • AvtoDev\StaticReferences\References\RegistrationActions\RegistrationActions
  • AvtoDev\StaticReferences\References\RepairMethods\RepairMethods
  • AvtoDev\StaticReferences\References\AutoFines\AutoFines
Класс справочника Описание Поля данных
AutoCategories Категории транспортных средств code - Код категории
description - Описание категории
AutoRegions Регионы субъектов title Заголовок региона
short_titles - Варианты короткого наименования региона
region_code - Код субъекта РФ
auto_codes - Автомобильные коды (коды ГИБДД)
okato - Код региона по ОКАТО
iso_31662 - Код региона по стандарту ISO-31662
type - Тип (республика/край/и т.д.)
RegistrationActions Регистрационные действия codes - Коды регистрационного действия
description - Описание регистрационного действия
RepairMethods Методы ремонта codes - Коды метода ремонта
description - Описание метода ремонта
AutoFines Правонарушения в области дорожного движения article - Статья правонарушения
description - Описание правонарушения

Примеры использования

Справочник "Категории транспортных средств":

<?php

use AvtoDev\StaticReferences\References\AutoCategories\AutoCategoryEntry;
use AvtoDev\StaticReferences\References\AutoCategories\AutoCategories;

// Извлекаем инстанс статических справочников из IoC Laravel
/** @var AutoCategories $auto_categories */
$auto_categories = resolve(AutoCategories::class);

// Перебираем все категории ТС
$auto_categories->each(function (AutoCategoryEntry $category) {
    $category->getCode();        // код категории
    $category->getDescription(); // её описание
});

// Проверяем наличие категории по коду
$auto_categories->hasCode('B1'); // true
$auto_categories->hasCode('A9'); // false

// Получаем объект категории по его коду
$category_b1 = $auto_categories->getByCode('B1');

Справочник "Регионы субъектов":

<?php

use AvtoDev\StaticReferences\References\AutoRegions\AutoRegionEntry;
use AvtoDev\StaticReferences\References\AutoRegions\AutoRegions;

/** @var AutoRegions $auto_regions */
$auto_regions = resolve(AutoRegions::class);

// Перебираем все регионы субъектов
$auto_regions->each(function (AutoRegionEntry $region) {
    $region->getRegionCode();  // код субъекта РФ
    $region->getAutoCodes();   // автомобильные коды (коды ГИБДД)
    $region->getIso31662();    // код региона по стандарту ISO-31662
    $region->getOkato();       // код региона по ОКАТО
    $region->getShortTitles(); // варианты короткого наименования региона
    $region->getTitle();       // заголовок региона
    $region->getType();        // тип (республика/край/и т.д.)
});

// Получаем заголовки всех регионов одним массивом
$titles = collect($auto_regions->toArray())->pluck('title')->toArray(); // ['Республика Адыгея', 'Республика Алтай', ...];

// Получаем объект региона по его заголовку
$moscow_region = $auto_regions->getByTitle('Москва');

// Проверяем наличие региона по его коду
$auto_regions->hasAutoCode(177); // true
$auto_regions->hasAutoCode(666); // false

Testing

For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:

$ make build
$ make latest # or 'make lowest'
$ make test

Changes log

Release date Commits since latest release

Changes log can be found here.

Support

Issues Issues

If you will find any package errors, please, make an issue in current repository.

License

This is open-sourced software licensed under the MIT License.