دوره تکنیکال مفاهیم شی گرایی PHP

تکمیل شده

کاربردی و پروژه محور

وحید صالحی وحید صالحی
course-duration
طول دوره : 1 ماه
course-length
کل دوره : بیش از 6 ساعت
course-publish
منتشر شده : 17

برنامه نویسی شی گرا چیست ؟

 

برنامه نویسی شی گرا (OOP) یک  پارادایم برنامه نویسی است که بر مفهوم کلاس ها و اشیاء تکیه دارد. و از آن برای ساده تر کردن ساختار کدنویسی برنامه ها استفاده می شود ساختار کلی برنامه نویسی شگرا بر پایه کلاس ها و آبجت هاست و یک کلاس به عنوان یک blue print شناخته می شود که در طول پروسه توسعه نرم افزار بر پایه شی گرایی می توان از آن شی جدید ساخته و استفاده کرد. برنامه نویسی شی گرا یا  Object-Oriented Programming  به توسعه دهندگان اجازه می دهد تا بخش های مشابه به را در مفهومی به اسم کلاس، دسته بندی نمایند و این دسته بندی به برنامه نویسان کمک می کند تا به مفهوم DRY یا همان Don’t Repeat Yourself بیشتر نزدیک گردند، و علاوه بر آن نگهداری کدها یا مدیریت و تغیرشان در آینده راحت تر خواهد بود. (به این مفهوم در زبان انگلیسی easy-to-maintain گفته می شود). یکی از مهم ترین مزیت های این سبک از برنامه نویسی، آن است که اگر قرار باشد تکه ای از کدهای برنامه شما تغییر کند،  فقط بخش مورد نظر در کدهای شما بروز رسانی و یا یا تغییر می کند و نیازی به تغییر در سایر بخش های  نیست. بطور کلی زبان های برنامه نویسی زیادی وجود دارد که از شی گرایی پشتیبانی می کنند مانند جاوا, پایتون, جاوااسکریپت,  سی پلاس پلاس, PHP  و ...

     

ساختار برنامه نویسی شی گرا چیست؟

بطور کلی ساختار برنامه نویسی شی گرا شامل 4 بخش زیر می باشد:

 
  • کلاس ها ( class ) :  انواع داده های تعریف شده توسط توسعه دهند هستند که به عنوان طرح اولیه ( blue print ) برای اشیا، ویژگی ها استفاده می شود.
  • اشیاء ( object ) :  نمونه هایی از یک کلاس هستند که با داده های مشخصاً تعریف شده ایجاد شده اند. اشیاء می توانند با اشیاء دنیای واقعی یا یک موجود انتزاعی مطابقت داشته باشند.
  • متدها ( method ) : در واقع همان توابع هستند که در یک کلاس با نام متد تعریف می شوند و هر کدام رفتارهای خاصی از یک شی را توصیف می کنند.
  • پراپرتی ها ( property ) : در واقع همان متغیرها هستند که در یک کلاس با نام پراپرتی تعریف می شوند و در قالب کلاس ها تعریف می شوند و مشخص کننده ویژگی ها یک کلاس هستند.
   

اصول و مفاهیم اصلی در شی گرایی چیست؟

 

کپسوله سازی ( Encapsulation ) :  این اصل بیان می کند که تمام اطلاعات مهم و مرتبط با یکدیگر در داخل یک کلاس قرار دارد و فقط اطلاعات مورد نیاز پس از ساخت شی از کلاس مورد نظر در معرض دید و دسترس سایر بخش های برنامه قرار می گیرند. این بدان معناست که کلاس ها و اشیا دیگر به اطلاعات این کلاس دسترسی و یا اختیار ایجاد تغییرات در اطلاعات آن را ندارند. آنها فقط می توانند لیستی از توابع یا متدهای عمومی از کلاس مورد نظر را را فراخوانی کنند. این ویژگی پنهان کردن داده ها امنیت برنامه را بیشتر می کند و از خراب شدن ناخواسته داده ها جلوگیری می کند.

انتزاع ( Abstraction ) : این اصل بیان می کند که ما به جای تمرکز روی یک شی عینی از چیزی، روی مفهوم چیزها متمرکز شویم و مفهومی کلی را در نظر بگیریم. Abstraction به مفهومی انتزاعی در ذهن برنامه نویس گفته می‌شود که کلی است و هیچ ارتباطی با یک آبجکت ( شی ) خاص ندارد.

ارث بری ( Inheritance ) : این اصل بیان می کند که کلاس ها می توانند از کدهای کلاس های دیگر استفاده مجدد کنند. این امر توسعه‌دهندگان را قادر می‌سازد تا از متدهای مشترک در سایر کلاس ها استفاده مجدد کنند . این ویژگی در شی گرایی باعث تجزیه و تحلیل دقیق تر داده ها می شود و زمان توسعه را کاهش می دهد و سطح بالاتری از دقت را تضمین می کند.

چندریختی یا چند شکلی ( Polymorphism ) : این اصل بیان می کند که یک کلاس به هنگام ارث بری یک سری از خصوصیات از کلاس والد خود علاوه بر استفاده از موارد به ارث برده شد توانایی ایجاد تغییر در مقادیر و رفتار خوصیات والد خود را برای گسترش رفتار خود را داراست که به اصطلاح به آن override گفته می شود.

   

مزیت های برنامه نویسی شی گرا چیست ؟

 

یکی از مهم ترین مزیت برنامه نویسی شی گرا که باعث می شود که اکثر برنامه نویسان و توسعه دهندگان از آن استفاده کنند، شباهت این سبک از برنامه نویسی با مفاهیم دنیای واقعی است. در واقع برنامه نویس و توسعه دهند قادر است مفاهیم بسیار پیچیده برنامه نویسی را با مفاهیم شی گرایی به نکات قابل فهم در دنیا واقعی تبدیل کرده و یا مصداق آنرا در قالب مثال بیان کنید. اگر دقت کرده باشید اطراف ما اشیا فراوانی از قبیل ماشین ها ,ساختمان ها و ... وجود دارد که هر کدام از آن ها خواص منحصر به فردی دارند که آنها را از شی و یا اشیا مشابه خود متمایز می کند و هر شی می تواند رفتاری از خود بروز دهد که مختص همان شی است. این مفاهیم باعث شد تا همه این ها در دنیای برنامه نویسی شی گرا استفاده شود. در واقع در این سبک از برنامه نویسی, برنامه نویس با پیروی از الگوهای شی گرا به شکل محسوسی از آشفتگی لاجیک و ساختار کدها جلوگیری می نماید ، در حقیقت برنامه نویسی شی گرا ( OOP ) روش برنامه نویسی است که در آن برنامه نویس، تمامی متغیرها و توابعی که بهم مرتبط می باشند را در قالب یک کلاس منفرد، سازمان دهی می کند البته این کار تنها بخش کوچکی از قابلیت های برنامه نویسی شی گرا می باشد در طول این دوره به طور مفصل به این مفاهیم خواهیم پرداخت . همانند تمام پارادایم های برنامه نویسی، این پارادایم نیز مزایا و معایب خود را دارد. به صورت مختصر می توان گفت که در پروژه های ساده و کوچک که توسعه چندانی هم در آینده نخواهند داشت، استفاده از پارادایم رویه ای ( Procedural ) که بر اساس استفاده از توابع می باشد، ممکن از مناسب تر باشد, اما در پروژه هایی با ابعاد متوسط و بزرگ و پیچیده ، قطعا باید از پارادایم شی گرایی در برنامه نویسی استفاده کرد چون هم باعث کاهش پیچیدگی کدها در آینده خواهد شد و هم نگهداری و عیب یابی آن به مراتب ساده تر از روش های برنامه نویسی رویه ای می باشد.

 

بطور کلی برنامه نویسی شگرا :

 
  • موارد پیچیده را به ساختارهای تکرارپذیر و ساده مدل می کند.
  • قابلیت استفاده از اشیا ساخته شده در سراسر کدها و برنامه که به آن Reusibilty گفته می شود میسر می سازد.
  • اجازه دادن به کلاس ها برای انجام عمل یا رفتاری خاص در ساختار Polymorphism فراهم می سازد.
  • عیب یابی کدها و نگهداری آنها را آسان تر می کند.
  • ماژولار سازی بخش های مختلف برنامه را در قالب مفهوم کپسوله سازی فراهم می کند که در نتیجه باعث عیب یابی آسانتر کدها می شود.
  • برنامه نویسان را قادر می سازد تا به پیادسازی کدهایی با قابل استفاده مجدد در سایر برنامه ها بپردازند.
  اگر به دنبال این هستید که مواردی که در بالا توضیحاتی در موردش داده شد رو در کنار سایر مفاهیم برنامه نویسی شی گرا کامل یادبگیری قطعا این دوره می تونه کمک بسیار زیادی بهت بکنه.
ادامه مطلب ...

ارزیابی محتوا

جهت ارزیابی محتوای دوره و آشنایی با نحوه تدریس مدرس جلساتی از این دوره در اختیار شما قرار گرفته است تا با دید بهتری اقدام به ثبت نام نمایید

سرفصل های دوره

  1. مقدمه منتشر شده 14 دقیقه
  2. کلاس ها و پراپرتی ها منتشر شده 27 دقیقه
  3. آبجکت ها و متد ها منتشر شده 26 دقیقه

  1. متدهای سازنده و شبه متغییر منتشر شده 39 دقیقه
  2. سطوح دسترسی و مفهوم Getter و Setter منتشر شده 40 دقیقه

  1. ارث بری در شی گرایی - بخش اول منتشر شده 40 دقیقه
  2. ارث بری در شی گرایی - بخش دوم منتشر شده 40 دقیقه

  1. abstract در شی گرایی منتشر شده 49 دقیقه

  1. interface در شی گرایی منتشر شده 57 دقیقه

  1. traits و constans در شی گرایی منتشر شده 29 دقیقه

  1. static در شی گرایی - بخش اول منتشر شده 26 دقیقه
  2. static در شی گرایی - بخش دوم منتشر شده 40 دقیقه

  1. namespace در شی گرایی - بخش اول منتشر شده 37 دقیقه
  2. namespace در شی گرایی - بخش دوم منتشر شده 32 دقیقه
  3. namespace در شی گرایی - بخش سوم منتشر شده 32 دقیقه

  1. autoloading در شی گرایی منتشر شده 26 دقیقه

  1. method chaining در شی گرایی ( جلسه پایانی دوره ) منتشر شده 29 دقیقه

ادامه سرفصل ها

مدرس این دوره

dot وحید صالحی

وحید صالحی

در کنارت هستم تا به بهترین شکل این دوره رو به اتمام برسونی

  • بنیان‌گذار وب سایت کافه آموزش
  • بیش از 10 سال سابقه برنامه نویسی تحت وب
  • 9 سال سابقه تدریس حرفه ای در حوزه برنامه نویسی وب
  • توسعه‌دهنده‌ی اپلیکیشن‌های تحت وب
  • برنامه نویس وردپرس جاوااسکریپت وPHP
  • تدریس بیش از 7000 هزار نفر/ ساعت دوره و کارگاه حضوری در مجموعه سون لرن
  • تولید بیش از 2000 هزار ساعت آموزش و محتوای ویدیویی در حوزه برنامه نویسی وب
  • توسعه دهنده دورکار PHP درشرکت بیلیک آی تی ترکیه
  • برنامه نویس دورکار وردپرس در شرکت Lemon Technologies عمان
ارتباط با مدرس : دسترسی بلافاصله پس از ثبت نام
*********@gmail.com 0902*******

سوالات متداول

برای استفاده از دوره محدودیت زمانی وجود نداشته و بصورت مادام والعمر این دوره برای شما فعال خواهد بود لذا هر زمان که تمایل داشته باشید می توانید ویدئوها و فایل های دوره را دانلود و مشاهده نمایید.

دوره هایی که نیاز به آپدیت و بروزرسانی داشته باشند اطلاع رسانی خواهد شد و در صورت انتشار آپدیت دانشجویان دوره نیازی به پرداخت هزینه اضافه نخواهند داشت.

با توجه به رعایت حقوق ناشر ما هیچ گونه رضایتی برای استفاده اشتراکی از این دوره نداریم و در صورت مشاهده تخلف ناچار به مسدود سازی حساب کاربر خواهیم بود!

لطفا در این مورد با شماره پشتیبانی و یا از طریق شبکه های اجتماعی با ما در ارتباط باشید تا در درباره آن صحبت کنیم و تمام تلاشمان را می کنیم تا به نتیجه مطلوب برسیم :-)

faq faq faq faq

مشاوره

کاربر گرامی , توجه داشته باشید به سوالات متفرقه و غیر مرتبط با این دوره پاسخ داده نخواهد شد.

درخواست مشاوره قبل از ثبت نام ( رایگان )

ابتدا در سایت لاگین نمایید

دانشجویان این دوره چه نظری دارند

ثبت نام در این دوره آموزشی

ثبت نام نقدی

149هزار تومان

برای ثبت نام ابتدا وارد سایت شوید