Download the PHP package daniillgolovin/difrences-files without Composer
On this page you can find all versions of the php package daniillgolovin/difrences-files. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package difrences-files
Вычислитель отличий
Описание
«Вычислитель отличий» — программа, определяющая разницу между двумя структурами данных. Это популярная задача, для решения которой существует множество онлайн сервисов, например JSON Diff. Подобный механизм используется при выводе тестов или при автоматическом отслеживании изменений в конфигурационных файлах.
В рамках данного проекта реализовано создание AST (англ. Abstract Syntax Tree) - абстрактного синтаксического дерева, на основании которого имеющиеся форматеры (stylish
, plain
, json
) выводят различия как плоских, так и вложенных файлов (используется рекурсия).
Особенности
- [x] Доступны следующие форматы для чтения:
JSON
,YAML
. - [x] Реализованы следующие форматеры:
stylish
(по умолчанию),plain
,json
. - [x] Возможность использовать как библиотеку, так и как
CLI
команду. `
Установка
Для работы с проектом необходимо выполнить следующие действия по его установке:
-
Склонируйте репозиторий, используя одну из следующих консольных команд:
-
Осуществите установку проекта:
- Запустите команду на примере тех, которые указаны ниже.
Для глобальной установки выполните команду:
Использование
CLI команда
Данный проект можно использовать как утилиту командной строки. Подробности использования описания в helper:
Формат stylish
Данный форматер выводит разницу между двумя файлами, учитывая следующие особенности:
- Если свойство было добавлено и удалено либо изменило свое значение, то указываются знаки
+
и-
соответственно. - В остальных случаях свойство либо не изменилось, либо в обоих файлах имеет в качестве значения объект (является вложенным).
Пример
Различия между плоскими файлами (JSON) формат (STYLISH)
Различия между плоскими файлами (YAML) формат (STYLISH)
Различия между вложенными файлами (JSON) формат (STYLISH)
Различия между вложенными файлами (YAML) формат (STYLISH)
Формат plain
Данный форматер выводит разницу между двумя файлами, учитывая следующие особенности:
- Если свойство имеет "сложное значение" (объект, массив), то выводится
[complex value]
. - Если свойство является вложенным, то оно не учитывается: сохраняется лишь путь до него, который используется при выводе остальных "плоских" свойств, находящийся внутри оного.
- Если свойство не было изменено, то оно не выводится.
Пример
Различия между плоскими файлами (JSON) формат (PLAIN)
Различия между плоскими файлами (YAML) формат (PLAIN)
Различия между вложенными файлами (JSON) формат (PLAIN)
Различия между вложенными файлами (YAML) формат (PLAIN)
Формат json
Данный форматер выводит разницу между двумя файлами, учитывая следующие особенности:
- Если свойство не является вложенным или "сложным" то указывается его имя, дескриптор, старое значение, новое значение, дети в формате:
{ state: 'СОСТОЯНИЕ', type: 'ТИП', oldValue: 'ЗНАЧЕНИЕ в file1' oldValue: 'ЗНАЧЕНИЕ в file2' children: 'ДЕТИ' }
.
Пример
Различия между плоскими файлами (JSON) формат (JSON)
Различия между плоскими файлами (YAML) формат (JSON)
Различия между вложенными файлами (JSON) формат (JSON)
Различия между вложенными файлами (YAML) формат (JSON)
Структура проекта
All versions of difrences-files with dependencies
docopt/docopt Version ^1.0
symfony/yaml Version ^5.2
funct/funct Version ^1.5