• v1.0.26 Stable

    babaev-an released this 2025-06-15 15:54:39 +03:00 | 0 commits to main since this release

    В этом релизе исправлена ошибка Class "GetOnly" not found.

    Downloads
  • v1.0.25 Stable

    babaev-an released this 2025-06-14 09:54:44 +03:00 | 1 commits to main since this release

    В этом релизе добавлен атрибут для свойств класса #[GetOnly]. Он маркирует только те свойства, которые имеют только get часть, чтобы при маппинге класс корректно его прошёл.

    Также улучшен класс ClassMapper. В его базовый метод добавлена проверка на атрибут #[GetOnly].

    Downloads
  • v1.0.24 Stable

    babaev-an released this 2025-06-12 16:10:10 +03:00 | 2 commits to main since this release

    В этом релизе добавлено перечисление стадий в информации о версии VersionInfoStage.

    Также в этом релизе добавлен новый класс, описывающий информацию о версии, VersionInfo (подробнее см. VersionInfo.md).

    Downloads
  • v1.0.23 Stable

    babaev-an released this 2025-06-08 22:00:20 +03:00 | 3 commits to main since this release

    В этом релизе изменения коснулись только класса File.

    Во-первых, был обновлён метод RemoveDir из-за проблем с удалением директорий. Теперь он корректно удаляет любую директорию.

    Во-вторых, из-за изменения кода изменился и синтаксис метода RemoveDir: RemoveDir (string $directory, array $errorMessages = self::REMOVE_DIRECTORY_ERROR_MESSAGES): ActionState, где $errorMessages -- массив с локализованным списком ошибок (по умолчанию, используется константа REMOVE_DIRECTORY_ERROR_MESSAGES с русскоязычным списком, для локализации рекомендуется передавать локализованные списки). Также теперь вместо bool возвращается ActionState, куда заносятся все ошибки при удалении, а в значение Value записывается bool - результат удаления.

    В-третьих, добавлен метод FileSize (string $filename, array $errorLocalization = self::FILE_SIZE_ERROR_MESSAGES): ActionState, который получает размер файла, полный путь к которому передаётся в строковом параметре $filename, массив $errorLocalization служит для локализации ошибок и по умолчанию использует русскую локализацию, представленную в константе FILE_SIZE_ERROR_MESSAGES. Возвращает метод ActionState, куда заносятся все ошибки при получении размера, а в значение Value записывается int - размер файла в байтах или -1 при ошибке.

    В-четвёртых, добавлен метод FileSizeToString (int $fileSize, array $fileSizeUnits = self::FILE_SIZE_UNITS, string $decimalSeparator = ','): string, который преобразует размер файла в байтах, указанный в параметре $fileSize, в красивое строковое представление. Массив $fileSizeUnits служит для локализации единиц измерения (байт, КБ, ...) по умолчанию использует русскую локализацию, представленную в константе FILE_SIZE_UNITS. Также можно задать разделитель между сотыми (по умолчанию, используется русскоязычный разделитель - ,). Возвращает метод красивую строку: если размер файла, например, составляет 1500 байт, вывод будет 1.46 КБ.

    Downloads
  • v1.0.22 Stable

    babaev-an released this 2025-06-08 11:46:56 +03:00 | 4 commits to main since this release

    В этом релизе в классе File обновлён метод RemoveDir. Теперь он корректно удаляет не пустую директорию.
    Кроме того, в том же классе добавлен метод DirectoryExists (string $directory, bool $checkReadAccess = true, bool $checkWriteAccess = false): bool, который проверяет существование папки $directory, проверяет доступ на чтение $checkReadAccess = true и на запись $checkWriteAccess = true.

    Downloads
  • v1.0.21 Stable

    babaev-an released this 2025-05-26 13:34:20 +03:00 | 5 commits to main since this release

    В данный релиз добавлен класс File, который реализует функционал работы с файлами и выполнение операций над файлами одной командой.

    Downloads
  • v1.0.20 Stable

    babaev-an released this 2025-05-25 12:46:16 +03:00 | 8 commits to main since this release

    В этом релизе добавлен новый класс Tuple, реализующий работу кортежей почти как в C#.

    Пример создания кортежа:
    $tuple = new Tuple(1, 'string', ['array1', 'array2', 'array3']);

    Важно! Количество элементов кортежа не ограничено!

    Пример получения:
    $firstElement = $tuple->Get(0);

    $secondElement = $tuple->Get(1);

    $thirdElement = $tuple[2];

    Или можно получить всё сразу:
    [$firstElement, $secondElement, $thirdElement] = $tuple;

    ВНИМАНИЕ! Кортеж подразумевает, что вы не можете добавлять элементы в него после создания. Поэтому любая попытка $tuple[] = "new element"; приведёт к выбрасыванию исключения Exception.

    Downloads
  • v1.0.19 Stable

    babaev-an released this 2025-05-24 14:32:34 +03:00 | 9 commits to main since this release

    В этом релизе было добавлено перечисление VarNotBoolAction, для определения действий в классе BoolExtensions (методы AnyTrue и TrueCount), если передана часть не булевого типа.

    Также в этом релизе было обновлено расширение BoolExtensions: в методах AnyTrue и TrueCount убран выброс исключения, если какой-то аргумент из массива expressions не является булевым типом. Вместо него в обоих методах введён необязательный параметр $ifNotBool (тип VarNotBoolAction), который определяет действие: игнорирование (этот аргумент просто исключается из проверки), считать правдивым (вместо него ставится true) или считать ложным (вместо него ставится false). По умолчанию, этому параметру в обоих этих методах определено значение игнорировать.

    Downloads
  • v1.0.18 Stable

    babaev-an released this 2025-05-22 22:04:23 +03:00 | 10 commits to main since this release

    В этом релизе исправлен баг сериализации в классах Dictionary и ObjectArray. Теперь классы нормально восстанавливаются.

    Downloads
  • v1.0.17 Stable

    babaev-an released this 2025-05-20 12:43:03 +03:00 | 11 commits to main since this release

    В этом релизе в класс Dictionary были добавлены 2 метода:

    1. AddRange (array $dictionary), который добавляет элементы в виде ассоциативного массива ключ => значение в словарь;
    2. ToArray (), который возвращает все элементы словаря в виде массива..
    Downloads