DigiSpace

Розробка на Laravel

Кастомна розробка на Laravel: вебзастосунки, API, SaaS та адмін-панелі. Laravel-розробники для нових продуктів і наявних кодбаз.

Ілюстрація архітектури Laravel — вебзастосунок, API, черга та база даних

Якщо вам потрібен кастомний вебзастосунок, API чи SaaS-продукт на Laravel — або наявний Laravel-проєкт, якому потрібен відповідальний власник, — тут описано, як ми працюємо і що від нас очікувати.

Laravel 12/13 на PHP 8.3 — наш основний backend-стек. Більшість того, що ми здаємо, працює на ньому: CMS цього сайту, API VetSpace і маркетингова платформа DigiPulse.

Що ми створюємо на Laravel

  • SaaS-платформи та продукти з підпискою — DigiPulse це Laravel-застосунок із мультиканальною публікацією, плануванням і аналітикою.
  • REST та GraphQL API для SPA і мобільних клієнтів — бекенд VetSpace обслуговує Nuxt-фронтенд і мобільні застосунки з одного Laravel API.
  • Адмін-панелі та внутрішні інструменти — для back-office UI ми використовуємо Filament, як у CMS цього сайту.
  • E-commerce бекенди, системи бронювання та бізнес-інструменти, які не вкладаються в коробкові рішення.

Як обробляється типовий запит

Цикл запиту лишається швидким, бо важка робота йде в чергу — листи, імпорти, AI-виклики, публікації:

Потік запиту в Laravel: HTTP-запит, застосунок, черга, воркер

Як ми працюємо

Ми дотримуємось конвенцій Laravel, а не боремося з ними: Eloquent там, де він допомагає, query builder — де вимірювано швидше, черги для всього повільного, події та слухачі, щоб контролери лишались тонкими. Код покритий PHPUnit-тестами, форматується Pint, аналізується Larastan і проходить рев'ю перед злиттям.

class PublishScheduledPost implements ShouldQueue
{
    public int $tries = 3;
    public array $backoff = [30, 120, 600];

    public function handle(ChannelPublisher $publisher): void
    {
        $result = $publisher->publish($this->post);

        $this->post->update([
            'status'       => PostStatus::Published,
            'published_at' => now(),
        ]);
    }
}

Реальний патерн із DigiPulse: публікація — це queued job з ретраями, тож повільний провайдер ніколи не блокує користувача.

Переймаємо наявні Laravel-проєкти

Чимала частина нашої роботи — успадковані кодові бази від інших команд. Починаємо з аудиту: свіжість залежностей, покриття тестами, N+1-запити, безпека — далі стабілізуємо й розвиваємо інкрементально, без зупинки продакшену.

Розкажіть про свій проєкт — дамо чесну оцінку обсягу, стека й термінів.