Controller- Repository- Service model এর জন্য মৌলিক বাস্তবায়ন নির্দেশিকা Laravel আপনাকে আপনার সোর্স কোড এমনভাবে সাজাতে সাহায্য করে যা পরিচালনা এবং বজায় রাখা সহজ। আপনি কীভাবে এই কাঠামোটি বাস্তবায়ন করতে পারেন তার একটি কংক্রিট উদাহরণ এখানে রয়েছে:
Model
এখানে আপনি ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য বৈশিষ্ট্য এবং পদ্ধতিগুলি সংজ্ঞায়িত করেন। Laravel মডেলের সাথে কাজ করার জন্য Eloquent ORM মেকানিজম প্রদান করে। উদাহরণস্বরূপ, টেবিলের model জন্য একটি তৈরি করা যাক Posts
:
// app/Models/Post.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ['title', 'content'];
}
Repository
এবং এর repository মধ্যে মধ্যস্থতাকারী হিসাবে কাজ করে । এটির মাধ্যমে ডাটাবেস অপারেশন সঞ্চালনের পদ্ধতি রয়েছে । এটি ডাটাবেস লজিক থেকে আলাদা করতে সাহায্য করে এবং ডাটাবেস লজিক পরিবর্তন বা পরীক্ষা করা সহজ করে তোলে। Controller Model model controller
// app/Repositories/PostRepository.php
namespace App\Repositories;
use App\Models\Post;
class PostRepository
{
public function create($data)
{
return Post::create($data);
}
public function getAll()
{
return Post::all();
}
// Other similar methods
}
Service
ব্যবসায়িক যুক্তি রয়েছে service এবং এর সাথে যোগাযোগ করে Repository । অনুরোধগুলি পরিচালনা করতে এবং সংশ্লিষ্ট ডেটা ফেরত দেওয়ার জন্য পদ্ধতিগুলিকে Controller কল করবে । Service এটি ব্যবসায়িক যুক্তিকে থেকে আলাদা করতে সাহায্য করে controller এবং পরীক্ষা ও রক্ষণাবেক্ষণকে সহজ করে তোলে।
// app/Services/PostService.php
namespace App\Services;
use App\Repositories\PostRepository;
class PostService
{
protected $postRepository;
public function __construct(PostRepository $postRepository)
{
$this->postRepository = $postRepository;
}
public function createPost($data)
{
return $this->postRepository->create($data);
}
public function getAllPosts()
{
return $this->postRepository->getAll();
}
// Other similar methods
}
Controller
যেখানে controller আপনি ব্যবহারকারীর অনুরোধগুলি পরিচালনা করেন, ডেটা পুনরুদ্ধার বা পাঠানোর জন্য কল পদ্ধতি Service এবং ব্যবহারকারীকে ফলাফল ফেরত দেন।
// app/Http/Controllers/PostController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Services\PostService;
class PostController extends Controller
{
protected $postService;
public function __construct(PostService $postService)
{
$this->postService = $postService;
}
public function create(Request $request)
{
$data = $request->only(['title', 'content']);
$post = $this->postService->createPost($data);
// Handle the response
}
public function index()
{
$posts = $this->postService->getAllPosts();
// Handle the response
}
// Other similar methods
}
এই কাঠামো প্রয়োগ করে, আপনি দক্ষতার সাথে আপনার Laravel অ্যাপ্লিকেশনের বিভিন্ন অংশ পরিচালনা করতে পারেন। উপরন্তু, ব্যবসার যুক্তি, স্টোরেজ লজিক, এবং ক্লাসের মধ্যে যোগাযোগ আলাদা করা আপনার কোডবেসকে নমনীয়, রক্ষণাবেক্ষণযোগ্য এবং পরীক্ষাযোগ্য করে তোলে।