Download the PHP package mepihindeveloper/php-sql-migration without Composer
On this page you can find all versions of the php package mepihindeveloper/php-sql-migration. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package php-sql-migration
php-sql-migration
Компонент для работы с SQL миграциями.
В компоненте реализован основной класс SqlMigration, который выполняет базовые операции по работе с миграциями.
Большинство методов возвращает наборы данных или логические значения. Данный подход позволит написать практически любую
обертку для собственных нужд.
Как пример реализации обертки был реализован класс ConsoleSqlMigration, которые наследуется от SqlMigration и
переопределяет его методы. Переопределение первоначально вызывает parent:: после чего реализует дополнительную логику
в выводе сообщений в консоль (терминал).
Для реализации компонента необходимо передать класс реализующий интерфейс DatabaseInterface и массив настроек.
Обязательными параметрами в настройках являются:
- schema - схема в базе данных для миграций
- table - таблица в базе данных для миграций
- path - путь в файловой структуре для папки с миграциями
Компонент самостоятельно проверяет и создает необходимые (указанные) схемы, таблицы и папки при наличии заранее определенных разрешений (прав). Для корректной работы с базой данных необходимо заранее установить соединение с ней.
Для использования компонента достаточно создать экземпляр класса и вызвать нужный метод:
Для работы с консолью достаточно создать файл управления миграциями и вызвать его через php FILE ACTION PARAMS:
php migrate upphp migrate down 2
Файл автоматической обработки таких запросов может выглядеть следующим образом:
Структура
В директории exceptions хранятся специальные исключения компонента: SqlMigrationException.
В директории interfaces хранятся необходимые интерфейсы, которые необходимо имплементировать в при реализации
собственного класса SqlMigration.
Класс SqlMigration реализует интерфейс SqlMigrationInterface для управления SQL миграциями.
Доступные методы
| Метод | Аргументы | Возвращаемые данные | Исключения | Описание |
|---|---|---|---|---|
| public function up(int $count = 0) | $count Количество миграций (0 - относительно всех) | array | SqlMigrationException | Применяет указанное количество миграций |
| public function down(int $count = 0) | $count Количество миграций (0 - относительно всех) | array | SqlMigrationException | Отменяет указанное количество миграций |
| public function history(int $limit = 0) | $limit Ограничение длины списка (null - полный список) | array | Возвращает список сообщений о примененных миграций | |
| public function create(string $name) | $name Название миграции | void | RuntimeException|SqlMigrationException | Создает новую миграцию и возвращает сообщение об успешном создании миграции |
| __construct(DatabaseInterface $database, array $settings) | $database Компонент работы с базой данных; array $settings Массив настроек | SqlMigrationException | Конструктор класса | |
| public function initSchemaAndTable() | bool | SqlMigrationException | Создает схему и таблицу в случае их отсутствия | |
| public function __destruct() | Деструктор класса | |||
| protected function getNotAppliedList() | array | Возвращает список не примененных миграций | ||
| protected function getHistoryList(int $limit = 0) | $limit Ограничение длины списка (0 - полный список) | array | Возвращает список примененных миграций | |
| protected function execute(array $list, int $count, string $type) | $list Массив миграций; $count Количество миграций для применения; $type Тип миграции (up/down) | array | RuntimeException | Выполняет миграции |
| protected function addHistory(string $name) | $name Наименование миграции | bool | SqlMigrationException | Добавляет запись в таблицу миграций |
| protected function removeHistory(string $name) | $name Наименование миграции | bool | SqlMigrationException | Удаляет миграцию из таблицы миграций |
| protected function validateName(string $name) | $name Название миграции | void | SqlMigrationException | Проверяет имя миграции на корректность |
| protected function generateName(string $name) | string $name Название миграции | string | Создает имя миграции по шаблону: m{дата в формате Ymd_His}_name |
Контакты
Вы можете связаться со мной в социальной сети ВКонтакте: ВКонтакте: Максим Епихин
Если удобно писать на почту, то можете воспользоваться этим адресом: [email protected]
Мой канал на YouTube, который посвящен разработке веб и игровых проектов: YouTube: Максим Епихин
Поддержать меня можно переводом на Яндекс.Деньги: Денежный перевод
All versions of php-sql-migration with dependencies
mepihindeveloper/php-database Version >=1.0
mepihindeveloper/php-console Version >=1.0