Флюїдний конструктор шляхів для PHP та Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 30 серпня, 2025
Залишайтеся в безпеці з LaraPath – потужним пакетом для створення шляхів у PHP, який пропонує інтеграцію з Laravel 11+ та різноманітні стратегії санітаризації. Дізнайтеся, як спростити управління файлами та захистити дані за допомогою простих у використанні методів, прочитавши нашу статтю

LaraPath — це безпечний і зручний інструмент для створення шляхів у PHP, що пропонує стратегії очищення та інтеграцію з Laravel версії 11+. Цей пакет ідеально підходить для організації багатокористувацького зберігання з урахуванням конфіденційності, вирішення конфліктів назв файлів, запобігання втраті даних та інших завдань.

// Хешування чутливих даних
$path = PathBuilder::base('storage')
    ->add('user@email.com', SanitizationStrategy::HASHED)
    ->toString(); // "storage/5d41402abc4b2a76b9719d911017c592"
 
// Створення URL-дружніх назв
$path = PathBuilder::base('uploads')
    ->add('My Amazing File!', SanitizationStrategy::SLUG)
    ->toString(); // "uploads/my-amazing-file"
 
// Конвертація в snake_case
$path = PathBuilder::base('files')
    ->add('CamelCase Name', SanitizationStrategy::SNAKE)
    ->toString(); // "files/camel_case_name"
 
// Додавання міток часу для унікальності
$path = PathBuilder::base('temp')
    ->add('session', SanitizationStrategy::TIMESTAMP)
    ->toString(); // "temp/session_1640995200"

Пакет також містить інтеграцію з Laravel через фасад:

// Приклад використання фасаду
$exists = LaraPath::base('uploads')
    ->add('avatar.jpg')
    ->exists('public'); // Використовує Storage::disk('public')->exists()
 
// Прив'язка контейнера
app('larapath')
    ->base('files')
    ->add('document.pdf')
    ->size(); // Використовує Storage::size()

Також доступні механізми валідації та безпеки, які автоматично перевіряють небезпечні шляхи, а також можливість ручної перевірки:

// Автоматична валідація
$path = PathBuilder::base('uploads')
    ->add('../../../etc/passwd') // Небезпечний шлях
    ->validate() // Викликає InvalidArgumentException
    ->toString();
 
// Ручна перевірка безпеки
$isSafe = PathBuilder::isSafe('uploads/../dangerous/path'); // false

# Головні особливості

💻 Ви можете розпочати роботу з цим пакетом на GitHub: hdaklue/LaraPath