Controller Repository Service Model अंदर जाने के लिए मार्गदर्शन करें Laravel

Controller- के लिए बुनियादी कार्यान्वयन मार्गदर्शिका आपको अपने स्रोत कोड को ऐसे तरीके से व्यवस्थित करने में मदद करती है जिसे प्रबंधित करना और बनाए रखना आसान हो Repository । आप इस संरचना को कैसे कार्यान्वित कर सकते हैं इसका एक ठोस उदाहरण यहां दिया गया है: Service model Laravel

Model

यह वह जगह है जहां आप डेटाबेस के साथ इंटरैक्ट करने के लिए विशेषताओं और तरीकों को परिभाषित करते हैं। Laravel मॉडलों के साथ काम करने के लिए एलोक्वेंट ओआरएम तंत्र प्रदान करता है। उदाहरण के लिए, आइए तालिका 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 एप्लिकेशन के विभिन्न हिस्सों को कुशलतापूर्वक प्रबंधित कर सकते हैं। इसके अतिरिक्त, व्यावसायिक तर्क, भंडारण तर्क और कक्षाओं के बीच संचार को अलग करने से आपका कोडबेस लचीला, रखरखाव योग्य और परीक्षण योग्य हो जाता है।