Сучасним командам Laravel необхідні швидкість, узгодженість та практичний підхід. LaraUtilX — це підібраний набір утиліт, який спрощує щоденні патерни: CRUD, API-відповіді, валідацію, фільтрацію, пагінацію, кешування, конфігурацію, проксі-середовища та інтеграції з AI-чатами. Це дозволяє вам швидше реалізовувати функції з меншими ризиками і чистішим кодом.
CrudController
Розширюваний контролер, який перетворює стандартні CRUD кінцеві точки в декілька рядків коду — ідеально підходить для адміністративних інтерфейсів та API.
ApiResponseTrait
Стандартизує JSON-відповіді у вашій програмі (успіх, помилка, пагиновані). Ваш фронтенд буде вдячний.
FileProcessingTrait
Завантаження, видалення та читання вмісту файлів для одного або кількох файлів — без зайвої шаблонізації.
ValidationHelperTrait
Повторно використовувані валідатори для електронних адрес, номерів телефонів та надійних паролів, готових для ваших форм.
SchedulerMonitor
Отримайте видимість запланованих завдань, які наближаються або прострочені, щоб проблеми з cron не стали інцидентами у продакшені.
FilteringUtil
Декларативна фільтрація з правилами поле/оператор/значення. Зберігайте логіку запитів чистою, виразною та такою, що тестується.
AccessLogMiddleware
Фіксує вхідні запити для слідкування, аудиту та аналітики продуктивності.
PaginationUtil
Узгоджена пагінація для Eloquent та колекцій — чисті дані на вході, чисті дані на виході, менше коду для зв’язки.
CachingUtil
Кешування з урахуванням тегів та термінами дії для зменшення зайвих запитів та підвищення продуктивності.
ConfigUtil
Безпечне зчитування, об’єднання та маніпуляція вкладеною конфігурацією — ідеально підходить для динамічних налаштувань та функціональних флагів.
OpenAIProvider
Стандартизований інтерфейс з можливістю повторних спроб для GPT-чатів із структурованими відповідями.
composer require omarchouman/lara-util-x
use App\Models\Post;
use Omarchouman\LaraUtilX\Traits\ApiResponseTrait;
class PostController
{
use ApiResponseTrait;
public function index()
{
$posts = Post::latest()->paginate(10);
return $this->success($posts, 'Пости успішно отримані.');
}
public function store(Request $request)
{
$data = $request->validate(['title' => 'required', 'body' => 'required']);
$post = Post::create($data);
return $this->created($post, 'Пост успішно створено.');
}
}
use App\Models\Post;
use Omarchouman\LaraUtilX\Utilities\FilteringUtil;
$filters = [
['field' => 'status', 'operator' => '=', 'value' => 'published'],
['field' => 'created_at', 'operator' => '>=', 'value' => now()->subMonth()],
];
$results = FilteringUtil::filter(Post::query(), $filters)->paginate(15);
use Omarchouman\LaraUtilX\Utilities\CachingUtil;
$posts = CachingUtil::remember(
key: 'posts.latest',
seconds: 600,
callback: fn () => Post::latest()->take(20)->get(),
tags: ['posts']
);
use Omarchouman\LaraUtilX\Traits\FileProcessingTrait;
class ProfileController
{
use FileProcessingTrait;
public function uploadAvatar(Request $request)
{
$path = $this->uploadFile($request, 'avatar', 'public/avatars');
return response()->json(['path' => $path]);
}
}
LaraUtilX допомагає вам рухатися швидше і з упевненістю — чистіший код, повторювані патерни та готові до продакшену утиліти, до яких ви повертатиметесь знову і знову.