PDA

View Full Version : مبتدی: پیاده سازی معماری سه لایه در php



Mohammadxml
سه شنبه 28 بهمن 1393, 16:34 عصر
با سلام به تمام برنامه نویسان ایرانی
خیلی ها در php معماری سه لایه(three tier programing) رو همون mvc میدونن آیا این درسته؟
فرق بین معماری سه لایه(three tier programing) و mvc در دانت. (http://www.dotnettips.info/post/1383/mvc-vs-3-tier-pattern)
فرق این دو تا در php چیه؟
آقای مهندس کرامتی در کلاس هایی که در آموزشگاه برنامه نویس برگزار میکنن روش پیاده سازی معماری سه لایه و همچنین mvc رو جداگانه آموزش دادن.من این کلاسارو نرفتم اما در سرفصل کلاس ها به این موضوع اشاره شده.
لطفا اگه کسی روش پیاده سازیشو بلده توضیح بده واینکه چه کتابی برای پیاده سازیش میشناسین؟
موفق و موید باشد.

MMSHFE
چهارشنبه 29 بهمن 1393, 08:58 صبح
توی PHP هم همینه. این معماریها مستقل از زبان برنامه نویسی هستن. ضمناً MVC معماری نیست بلکه الگوی طراحی محسوب میشه.

Mohammadxml
چهارشنبه 29 بهمن 1393, 15:34 عصر
فرقشون رو میدونم ولی روش پیاده سازی سه لایه رو بلد نیستم.کسی بلده؟
کتاب pro php mvc در مورد پیاده سازی mvc توضیح داده، در مورد پیاده سازی معماری سه لایه چه کتاب وسایتی رو میشناسید؟
لطفا راهنمایی کنید.

Mohammadxml
پنج شنبه 07 اسفند 1393, 15:27 عصر
تو ایران کسی به جز مهندس کرامتی روش پیاده سازی معماری سه لایه رو بلد نیست؟

MMSHFE
پنج شنبه 07 اسفند 1393, 15:39 عصر
دوست عزیز، معماری سه لایه چیزی نیست که شما بخواین با برنامه نویسی و کدنویسی پیاده سازیش کنید. یه جور ارتباط و تفکیک واقعی بین اجزای برنامه است. درواقع اینجا با Tier مواجه هستیم (بخشها کاملاً مجزا هستن) نه Layer (چیزی شبیه MVC). این لینک رو بخونید بد نیست:
http://www.tonymarston.net/php-mysql/3-tier-architecture.html

تا جایی که میدونم پیاده سازی کامل معماری 3 لایه تنها بعهده PHP نیست و مباحثی مثل تنظیمات شبکه (داخلی و بین سرویسهای نصب شده روی سیستم عامل) و DBMS و... رو هم درگیر خودش میکنه.

Mohammadxml
پنج شنبه 07 اسفند 1393, 16:06 عصر
منظور من پیاده سازی به روشی است که مهندس کرامتی درس میدهد.
128897

MMSHFE
پنج شنبه 07 اسفند 1393, 16:26 عصر
فکر میکنم همه این موارد رو خودتون تا حالا یاد داشته باشین. فقط اینجا یک مقدار اسامی و نقش اجزا مشخص شده. برای مثال شما کار با PDO یا ADO و ActiveRecord و... رو توی پکیج مقدماتی یاد میگیرین ولی ممکنه ندونین که فرضاً از SP توی لایه DAL استفاده میشه یا اینکه اینجا از Smarty توی لایه نمایش استفاده شده (که فرضاً میشد با MVC باشه و توی Viewها Smarty رو استفاده کرد)، مطلب جدیدی نیست که شما بلد نباشین. درواقع به نوعی میشه گفت اینجا داره با کلمات بازی میشه (نه به معنای بد و منفی). منظورم اینه که همون مفاهیمی که قبلاً بلد بودین رو دارین با جایگاههاشون توی معماری چندلایه آشنا میشین که البته همونطور که گفتم همه بار معماری چندلایه هم بعهده PHP نیست. برای مثال میشه توی جستجوها از Sphinx استفاده کرد. میشه دیتابیس رو با کمک Apache Cassandra و API مربوط به PHP انجام داد و از PDO خود PHP استفاده نکرد. میشه مستقیماً با کمک دستور mysql توی سیستم عامل با DBMS ارتباط برقرار کرد و کلی روشهای دیگه.
اگه برنامه نویس خوبی باشین، با مشاهده همین فهرست هم میتونین معماری سه لایه رو برای خودتون پیاده سازی کنید چون هیچ کدوم از مباحثی که گفته شده، جدید نیستن و توی پکیج مقدماتی درموردشون توضیح داده شده و کسانی هم که پکیج رو تهیه نکردن، توی اینترنت به اندازه کافی درموردشون eBook و... میتونن پیدا کنن.

پ.ن. با مشاهده این فهرست، یه احساس خاصی بهم میگه که به نوعی داره معماری سه لایه روی MVC تطبیق داده میشه و اگه خوب به مورد 4 دقت کنید، خواهید دید که با این اوصاف تمام برنامه های وب دارن با معماری سه لایه ساخته میشن (که البته خیلی هم برداشت اشتباهی نیست).