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 ਅਰਜ਼ੀ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰ ਸਕਦੇ ਹੋ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਵਪਾਰਕ ਤਰਕ, ਸਟੋਰੇਜ਼ ਤਰਕ, ਅਤੇ ਕਲਾਸਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਨੂੰ ਵੱਖ ਕਰਨਾ ਤੁਹਾਡੇ ਕੋਡਬੇਸ ਨੂੰ ਲਚਕਦਾਰ, ਰੱਖ-ਰਖਾਅਯੋਗ ਅਤੇ ਟੈਸਟ ਕਰਨ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।