В одному з моїх проектів на Laravel я зіткнувся з проблемою:
Мені потрібно було ефективно кодувати та декодувати рядки. Спочатку я звернувся до вбудованих функцій Laravel encrypt
та decrypt
. Вони працювали, але закодовані рядки виходили занадто довгими та не підходили для мого випадку — це робило URL-запити незручними та непридатними для зручного обміну.
Тоді я спробував використовувати кодування Base64. Це наближалося до того, що мені було потрібно, але зробити його безпечним для URL додавало зайву складність. Розчарувавшись у відсутності універсального рішення, я зрозумів, що немає простого пакету для кодування ідентифікаторів та рядків із налаштовуваним та безпечним для URL підходом.
Тому я вирішив створити його самостійно.
Те, що почалося як інструмент лише для Laravel, швидко перетворилося на самостійний пакет, який можна використовувати в будь-якому PHP-проекті. Цей пакет пропонує:
- Простий та безпечний механізм кодування/декодування.
- Вбудована підтримка безпечного для URL кодування Base62.
- Можливість налаштування для додавання інших схем кодування, таких як Base58, Base64 або навіть власних.
- Цей пакет ідеально підходить для створення безпечних для URL токенів, кодування ідентифікаторів бази даних або будь-яких сценаріїв, де необхідне легке та безпечне кодування.
Цей пакет заповнює прогалину для розробників, яким потрібно легке, але потужне рішення для кодування та декодування рядків і ідентифікаторів у їхніх проектах.
Встановіть пакет за допомогою Composer:
composer require nassiry/laravel-encoder
Використання в Laravel
use Nassiry\Encoder\Facades\Encoder;
// Кодування та декодування ідентифікаторів
$encodedId = Encoder::encodeId(12345, 4);
$decodedId = Encoder::decodeId($encodedId);
// Кодування та декодування рядків
$encodedString = Encoder::encodeString('Hello World');
$decodedString = Encoder::decodeString($encodedString);
Використання без Laravel
require __DIR__ . '/vendor/autoload.php';
use Nassiry\Encoder\Encoder;
// Створіть екземпляр кодувальника
$encoder = new Encoder();
// Кодуйте ідентифікатор
$encodedId = $encoder->encodeId(12345, 4);
echo "Encoded ID: $encodedId\n"; // Приклад виводу: 9FNp
// Декодуйте закодований ідентифікатор
$decodedId = $encoder->decodeId($encodedId);
echo "Decoded ID: $decodedId\n"; // Вивід: 12345
Сподіваюся, цей пакет допоможе вам спростити процес кодування так само, як це допомогло мені.
Не соромтеся поділитися своїми відгуками або зробити внесок у проект на GitHub!
Для більше інформації та прикладів зверніться до репозиторію GitHub
В одному з моїх проектів на Laravel я зіткнувся з проблемою:
Мені потрібно було ефективно кодувати та декодувати рядки. Спочатку я звернувся до вбудованих функцій Laravel encrypt
та decrypt
. Вони працювали, але закодовані рядки виявилися занадто довгими й непідходящими для мого випадку, що робило URL-запити незручними та непридатними для обміну.
Тоді я спробував використати кодування Base64. Це було ближче до того, що мені потрібно, але зробити його безпечним для URL додавало зайву складність. Розчарувавшись через відсутність універсального рішення, я зрозумів, що не існує простого пакету для кодування ідентифікаторів та рядків із налаштовуваним та безпечним для URL підходом.
Тому я вирішив створити його самостійно.
Те, що почалося як інструмент лише для Laravel, швидко перетворилося на самостійний пакет, який можна використовувати в будь-якому PHP-проекті. Цей пакет пропонує:
- Простий та безпечний механізм кодування/декодування.
- Вбудована підтримка безпечного для URL кодування Base62.
- Можливість налаштування для додавання інших схем кодування, таких як Base58, Base64 або навіть ваших власних.
- Цей пакет ідеально підходить для створення безпечних для URL токенів, кодування ідентифікаторів бази даних або будь-яких сценаріїв, де потрібне легке та безпечне кодування.
Цей пакет заповнює прогалину для розробників, які шукають легке, але потужне рішення для кодування та декодування рядків і ідентифікаторів у своїх проектах.
Встановіть пакет за допомогою Composer:
composer require nassiry/laravel-encoder
Використання в Laravel
use Nassiry\Encoder\Facades\Encoder;
// Кодування та декодування ідентифікаторів
$encodedId = Encoder::encodeId(12345, 4);
$decodedId = Encoder::decodeId($encodedId);
// Кодування та декодування рядків
$encodedString = Encoder::encodeString('Hello World');
$decodedString = Encoder::decodeString($encodedString);
Використання без Laravel
require __DIR__ . '/vendor/autoload.php';
use Nassiry\Encoder\Encoder;
// Створіть екземпляр кодувальника
$encoder = new Encoder();
// Кодуйте ідентифікатор
$encodedId = $encoder->encodeId(12345, 4);
echo "Encoded ID: $encodedId\n"; // Приклад виводу: 9FNp
// Декодуйте закодований ідентифікатор
$decodedId = $encoder->decodeId($encodedId);
echo "Decoded ID: $decodedId\n"; // Вивід: 12345
Сподіваюся, цей пакет допоможе вам спростити процес кодування так само, як це допомогло мені.
Не соромтеся поділитися своїми відгуками або зробити внесок у проект на GitHub!
Для більше інформації та прикладів зверніться до репозиторію GitHub
Перекладено з: Why I Built the Laravel Encoding Package I Couldn’t Find Anywhere Else