چرا با mvc کار کردم ؟
چرا با mvc کار کردم ؟
مدتي ميشه که سعي ميکنم کدنويسي php را در قالب mvc انجام بدم اينطوري خيلي سرعت برنامه نويسي پروژه هام زياد ميشه و خيالم از نظر امنيت هم بيشتر ميشه .
اوايل فکر ميکردم mvc مختص يه زبان خاص مثلا براي asp mvc يا همچين چيزايي هست در حاليکه بعد از مطالعه و تحقيق درباره ي mvc فهميدم که mvc به هيچ زبان يا تکنولوژي خاصي وابسته نيست و مستقل عمل ميکنه .
خب اگر شما يه نگاه کوتاهي به فريمورک هاي حاضر و آماده ي PHP بياندازيد ميبينيد که همگي بدون استثنا از MVC استفاده ميکنند .
ام وي سي نه تنها سرعت توسعه را ميبره بالا بلکه بخاطر جداسازي کدهاي بخش ديتابيس از کدهاي مرکزي و کدهاي رابط کاربري باعث افزايش چشم گير امنيت ميشه
باگ گيري پروژه ها راحت تر ميشه چون هر بخش جداست و داره کار خودش رو ميکنه بهتر و راحت تر ميتونيد فايل هاي php تان را مديريت کنيد .
چطور MVC را وارد پروژه ي PHP کنيم ؟
خيلي از دوستام ميپرسن چطور mvc را در پروژه ي PHP وارد کنيم خب يه طوري ميپرسن انگار MVC يک فايل افزودني هست که دانلود کنيم و بعد با ترفند هايي به PHP اضافش کنيم نه اينطوري نيست . اين خيلي مهم است که بتوانيد زبان php با mvc کار کنيد.
mvc يک شيوه است يک الگوي طراحي است که بايد از قوانينش تبعيت کنيد .
يعني قرار نيست عملا چيزي به پروژه اضافه کنيم يا کسر کنيم قراره پروژه را سازماندهي کنيم و کدها را مرتب کنيم و هر کدام را جاي خودش بنويسيم اين کاريه که MVC ميکنه
ولي پيش نيازهاي کار با mvc چيه ؟
قبل از اينکه بخواهيد با php الگوي mvc را پياده سازي کنيد قطعا بايد ابتدا خود زبان برنامه نويسي php را بلد باشيد .
خب پس آشنايي و بلد بودن خود php اولين پيش نياز شماست
ولي از آنجايي که دائما با کلاس ها و متد ها و بحث هايي مثل وراثت و … سر و کار خواهيد داشت شي گرايي دومين پيش نياز براي شروع و کار با php mvc است .
چه کارهايي ميتونم با PHP MVC انجام بدم ؟
اگه از من بپرسيد ميگم هر کاري که در زمينه ي وب بخواد انجام بگيره … از فروشگاه اينترنتي گرفته تا يک سايت خبري و …
من خودم براي يادگيري PHP MVC از دوره ي آموزشي استاد نيک زاد استفاده کردم که در قالب يک دوره ي آموزشي ساخت يک فريمورک براي php ( بله ! يک فريمورک ) بصورت mvc را تدريس ميکنند که واقعا فوق العاده بود و شما هم ميتونيد باهاش شروع کنيد
براي تهيه اين دوره عکس دوره را براتون ميزارم به همراه لينک تا هم حمايتي باشه هم اگر نياز داشتيد استفادش کنيد
دوره ي اموزش ساخت فريمورک php mvc استاد نيک زاد
اما يک مشکل اساسي ديگر که بايد بدونيد
mvc يک معماري سه لايه نيست
سالهاست که در دانشگاه ها و آموزش ها ميگن معماري سه لايه mvc … :( حتي من سر اين موضوع با خيلي ها بحث کردم و حتي يه استاد بخاطر همين موضوع کلي مسخرم کرد
براي روشن شدن موضوع بريم سراغ تعريف معماري سه لايه يه چند لايه در مهندسي نرم افزار
خب براي روشن شدن موضوع من منبع اصلي انگليسي ميدم بخونيد .
اگر مشتاق يادگيري MVC با زبان محبوب php هستيد دوره ي آموزش php mvc استاد نيکزاد را تهيه کنيد و ببينيد. البته يه دوره ي ديگري به اسم دوره ي آموزش ساخت سيستم هتلداري با php هم دارند که بصورت پروژه محور است.
خب با مطالعه ي منابع بالا شايد متوجه شده باشيد که تفاوت اصلي معماري سه لايه يا چند لايه با mvc در اصل اينه که در mvc اصلا بحث لايه بندي پروژه و سيستم نيست و سيستم در همون يک لايه فعاليت خودش را انجام ميده در حاليکه معماري سه لايه ، سه سيستم از يک سيستم بصورت مجاز ميسازد که هر کدام درون خودش فعاليتشان را ميکنند و نتيجه ي خروجي را بهم ارسال ميکنند .
پس هرگز mvc معماري سه لايه نبوده و نيست . ممکنه خود mvc در يکي از لايه هاي معماري سه لايه قرار بگيره ولي خودش معماري نيست بلکه يک الگوي طراحي سادست .
تصوير زير هم خيلي کمک ميکنه تا مسئله ي تفاوت بين MVC و معماري سه لايه را درک کنيد
همانطور که در تصوير بالا ميبينيد mvc يا همان بخش هاي model view controller درون بالاترين لايه ي يک سيستم معماري سه لايه قرار گرفته يعني لايه ي presentation …
و اين نشون ميده که اين دو مفهوم جدايي هستند
پايان