Backend Architecture Service Layer

Service layer pattern, business logic organization.

valec3 ccc3257 1.1 KB Updated

File contents

Backend Architecture Service Layer

When to use this skill

  • Complex business logic
  • Reusable operations
  • Keeping controllers thin
  • Testing business logic

Workflow

  • Create service classes
  • Inject dependencies
  • Keep one responsibility per service
  • Return DTOs or entities -[ ] Handle business rules

Instructions

Service Class

<?php

namespace App\Services;

use App\Models\OrderModel;
use App\Entities\Order;

class OrderService
{
    public function __construct(
        private OrderModel $orderModel,
        private PaymentService $paymentService,
        private EmailService $emailService
    ) {}

    public function createOrder(array $data): Order
    {
        $order = $this->orderModel->insert($data);
        $this->paymentService->process($order);
        $this->emailService->sendConfirmation($order);
        return $order;
    }
}

Resources

  • Services encapsulate business logic
  • Inject all dependencies
  • Keep services focused

valec3/Agents.skills.md/tree/main/.agent/skills/backend-architecture-service-layer commit ccc3257ff9

Frequently asked questions

npx skillmds add valec3/backend-architecture-service-layer