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 એપ્લિકેશનના વિવિધ ભાગોને અસરકારક રીતે સંચાલિત કરી શકો છો. વધુમાં, વ્યવસાય તર્ક, સંગ્રહ તર્ક અને વર્ગો વચ્ચેના સંચારને અલગ કરવાથી તમારા કોડબેઝને લવચીક, જાળવવા યોગ્ય અને પરીક્ષણ યોગ્ય બનાવે છે.