Controller Repository Service Model اندر جانے کی رہنمائی Laravel

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 درخواست کے مختلف حصوں کو مؤثر طریقے سے منظم کرسکتے ہیں۔ مزید برآں، کاروباری منطق، سٹوریج منطق، اور کلاسوں کے درمیان مواصلت کو الگ کرنا آپ کے کوڈبیس کو لچکدار، برقرار رکھنے کے قابل، اور قابل آزمائش بناتا ہے۔