При помощи данного пакета вы сможете интегрировать сервис по работе со статическими справочниками в ваше Laravel >=5.4 приложение с помощью нескольких простых шагов.
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
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 can be found here.
If you will find any package errors, please, make an issue in current repository.
This is open-sourced software licensed under the MIT License.