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