inilim/tools

There is no license information available for the latest version (dev-main) of this package.

dev-main 2025-05-16 00:31 UTC

This package is auto-updated.

Last update: 2025-05-16 00:31:25 UTC


README

Полная коллекция PHP-функций с ленивой загрузкой

📌 О проекте

Библиотека, которая собирает все возможные PHP-функции в одном месте с системой ленивой загрузки. Больше не нужно подключать десятки отдельных файлов или тяжелые классы - функции загружаются только когда они действительно нужны.

🌟 Преимущества

🚀 Полная независимость

  • Нет зависимостей - работает на чистом PHP
  • Совместимость с любыми проектами - от старых до современных
  • Не требует Composer (хотя поддерживает его)

🏎 Ленивая загрузка

  • Функции загружаются только при первом вызове
  • Нет лишней загрузки неиспользуемого кода
  • Работает по принципу autoload, но для функций

🧠 Экономия памяти

  • Меньше потребления RAM по сравнению с static-классами
  • Нет накладных расходов на объявление классов и методов
  • Только тот код, который реально используется

⚡ Оптимизированный код

  • Все функции минифицированы
  • Ускоренный парсинг PHP

🌟 Особенности использования

🚀 Внутри цикла

Плохо

use \Inilim\Tool\Arr;

$array = [/** big array */];

foreach($array as $item){
    Arr::sortBy($item, 'key');
}

Хорошо

use \Inilim\Tool\Arr;

$array = [/** big array */];
$sortBy = Arr::__asClosure('sortBy');

foreach($array as $item){
    $sortBy($item, 'key');
}

🚀 Изменение аргумента по ссылке "&"

use \Inilim\Tool\Arr;

$array = ['a' => 1, 'b' => 2];

// Так как вызов идет через __callStatic(), аргументы передавать по ссылке нельзя.
// Такие функции возвращают обьект \Closure с реализацией.
Arr::pull()($array, 'a');

/**
 * $array ['b' => 2]
 */

📥 Установка

composer require inilim/tools:dev-main