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 अर्जाचे वेगवेगळे भाग कार्यक्षमतेने व्यवस्थापित करू शकता. याव्यतिरिक्त, व्यवसाय तर्कशास्त्र, स्टोरेज तर्कशास्त्र आणि वर्गांमधील संप्रेषण वेगळे केल्याने तुमचा कोडबेस लवचिक, देखरेख करण्यायोग्य आणि चाचणी करण्यायोग्य बनतो.