در مقاله های قبل ، در معرفی ساختار پروژه دیدیم که در مسیر Core
فولدری داریم تحت عنوان Interfaces
که حاوی اینترفیسهای مورد نیاز در توسعهٔ کِرنِل این فریمورک است. در همین راستا، با استفاده از کامند زیر چنین پوشهای را میسازیم:
۱ |
/var/www/mvc/app/Core$ mkdir Interfaces |
در ادامه، اقدام به ساخت یک اینترفیس به نام ControllerInterface.php
داخل این پوشه میکنیم که قرار است کلیهٔ کنترلرهای پروژه از آن ایمپلیمنت شوند:
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
<?php namespace Core\Interfaces; interface ControllerInterface { public function renderView($moduleType, $controllerName, $view, $data = []); } |
بر اساس قانونی که در مورد نحوهٔ تعریف نِیماِسپیس یاد گرفتیم، با توجه به اینکه داخل پوشهٔ Core
قرار داریم، نِیماِسپیس این فایل را به صورت Core\Interfaces
تعریف میکنیم و از آنجا که پیش از این در فایل composer.json
نِیماِسپیس Core
را تعریف کردهایم، از این پس هر کجا که از این اینترفیس استفاده نماییم، فایل ControllerInterface.php
به خودکار ایمپورت خواهد شد.
نیاز به توضیح نیست که شیوهٔ ساخت یک اینترفیس همچون روش ساخت کلاسها است. تفاوتی که وجود دارد ، به جای کیورد class
از interface
استفاده کرده سپس نام مد نظر خود را میآوریم. در اینترفیسی که تحت عنوان ControllerInterface
ساختهایم، متدی به نام ()renderView
داریم که این وظیفه را دارا است تا در معماری MVC که در ساخت این فریمورک مورد استفاده قرار دادهایم، ویوها را بر اساس یکسری پارامتر ورودی لود کند.
همانطورکه می بینید، این متد چهار پارامتر ورودی گرفته که به ترتیب با «نوع ماژول»، «نام کنترلر»، «نام ویو» و در نهایت «دیتای ارسالی» به ویو مرتبط هستند و با توجه به اینکه پارامتر آخر اختیاری است، یک مقدار پیشفرض برای آن در نظر گرفته شده است تا در صورتی که این پارامتر را پاس ندادیم، مفسر ایرادی نگیرد.
فایل دیگری که میباید داخل این پوشه بسازیم UserInterface.php
نام دارد. در واقع، از این اینترفیس برای ساخت مدلها استفاده خواهیم کرد:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ |
<?php namespace Core\Interfaces; interface UserInterface { public function fetch(); public function fetchById(int $id); public function update(array $data); public function delete(int $id); } |
همچون روال گذشته نِیماِسپیس را تعریف کرده سپس با استفاده از کیورد interface
اقدام به ساخت اینترفیسی تحت عنوان UserInterface
کردهایم که حاوی چهار متد مختلف است که عبارتند از:
– متد ()fetch
به منظور فراخوانی کلیهٔ کاربران
– متد ()fetchById
به منظور فراخوانی یک کاربر خاص بر اساس شناسهٔ کاربری
– متد ()update
به منظور آپدیت کردن اطلاعات کاربر
– متد ()delete
به منظور حذف یک کاربر بر اساس شناسهٔ کاربری
در مقاله ی بعدی ، می بینیم که به چه شکل از این اینترفیس در توسعهٔ مدل User
استفاده خواهیم کرد.
با پلاتین همراه باشید.