Controller Repository Service Model లోపలికి గైడ్ Laravel

Controller- Repository- Service model కోసం ప్రాథమిక అమలు గైడ్ Laravel మీ సోర్స్ కోడ్‌ని నిర్వహించడానికి మరియు నిర్వహించడానికి సులభంగా నిర్వహించడంలో మీకు సహాయపడుతుంది. మీరు ఈ నిర్మాణాన్ని ఎలా అమలు చేయవచ్చో ఇక్కడ ఒక నిర్దిష్ట ఉదాహరణ ఉంది:

Model

ఇక్కడే మీరు డేటాబేస్‌తో పరస్పర చర్య చేయడానికి గుణాలు మరియు పద్ధతులను నిర్వచిస్తారు. Laravel మోడళ్లతో పని చేయడానికి ఎలోక్వెంట్ 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. అదనంగా, వ్యాపార తర్కం, నిల్వ తర్కం మరియు తరగతుల మధ్య కమ్యూనికేషన్‌ను వేరు చేయడం వలన మీ కోడ్‌బేస్ అనువైనదిగా, నిర్వహించదగినదిగా మరియు పరీక్షించదగినదిగా చేస్తుంది.