دوره مجازی PHP (جلسه 21): برنامه نویسی شی گرا - اصول و مفاهیم پایه



visibility  
mode_comment   ۱۷

در جلسه ی امروز می خوایم در مورد اصول برنامه نویسی شی گرایی و مفاهیم پایه ای اون صحبت کنیم . برنامه نویسی شی گرا مدلی هست که برای نزدیک شدن برنامه نویسی به دنیای واقعی با تعریف موجودیت ها و اشیاء استفاده میشه .

:: مطالب ارائه شده در این جلسه عبارتند از :

فصل 17 : شئ گرایی در PHP و اصول برنامه نویسی Object Oriented

  • نگاهی به دنیای پیرامون ما
  • مشکلات و محدودیت های برنامه نویسی Functional
  • تشریح مفهوم شئ گرایی و مزیت های آن
  • تاریخچه و ویژگی های برنامه نویسی OOP در زبان PHP
  • شناخت عناصر مهم در برنامه نویسی شئ گرا :
  • طبقه بندی ها (Classes)
  • ویژگی ها (Properties)
  • عملیات و متد ها (Methods)
  • اشیاء (Objects or Instances)
  • ارائه مثال های کاربردی برای درک بهتر مفهوم شئ گرایی، کلاس های اشکال هندسی و افراد
  • نحوه ی نامگذاری کلاس ها، ویژگی ها و متدها
  • نحوه ی ایجاد یک کلاس در زبان PHP
  • عناصر تشکیل دهنده ی یک کلاس (ویژگی ها و متدها)
  • مفهوم کلمات کلیدی public و private و protected در تعریف ویژگی ها و متدهای کلاس
  • نحوه ی تعریف ویژگی های کلاس
  • نحوه ی تعریف متد های (رفتارهای) کلاس
  • نحوه ی ساختن نمونه ها (Instances) از یک کلاس تعریف شده : (کلمه کلیدی new)
  • عملگر ->و :: در PHP
  • متد سازنده (Constructor) در برنامه نویسی شئ گرای PHP
  • متد تخریب کننده (Destructor) در برنامه نویسی شئ گرای PHP
  • مفهوم متدهای getter و setter در کلاس ها
  • مفهوم عناصر استاتیک و کلمات کلیدی self و static در کلاس های PHP
  • تشریح تفاوت بین $this و self
  • نحوه ی ارث بری کلاس ها در زبان PHP (به ارث بردن ویژگی های کلاس فرزند از کلاس پدر)
  • دسترسی به عناصر کلاس پدر با کلید parent
  • Override کردن متدهای کلاس پدر
  • کلیدهای const و final و دلایل استفاده از آنها
info توجه

این مطلب یک جلسه از اموزش php حرفه ای می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در اموزش php حرفه ای

comment دیدگاه کاربران
قاصد replyپاسخ

سلام
من مبلغ 37000 تومن رو به عنوان قسط دوم واریز کردم
13009871143
لطفا رسیدگی کنید.

لقمان آوند

ممنون
تائید شد .

nasrin replyپاسخ

سلام چرا روی construct ارور میده syntax error, unexpected ‘function__construct’ (T_STRING), expecting function (T_FUNCTION)

لقمان آوند

سلام
در نوشتن تابعتون خطای نوشتاری دارید .
بررسی کنید حتما کلمات public function رو قبل از تعریف constructor گذاشته باشید .
اگر مشکلتون حل نشد کدتون رو بهم بدید که بررسیش کنم و مشکلش رو بهتون بگم .

sadaf replyپاسخ

سلام
اینکه در بعضی جاها به جای نوع تابع در کلاس اسم خود کلاس رو میزارن مفهومش چیه؟

لقمان آوند

سلام
یعنی نوع مقداری که تابع برمیگردونه یک شئ از کلاس مذکور هست .
اینجا هم myclass یه نوع داده ای محسوب میشه !

فرهاد replyپاسخ

استاد ببخشید یه سوال
وقتی می خوایم یه پروژه رو از ابتدا تا انتها کد بزنیم دقیقا چه مراحلی رو باید به ترتیب انجام بدیم؟ آیا اول باید طراحی منطقی پایگاه داده رو انجام بدیم یا اینکه رابط کاربری رو طراحی کنیم یا ساختار کلاسهای برنامه رو تنظیم کنیم؟ دقیقا چه مراحلی رو باید انجام داد از اول تا آخر؟ با تشکر

لقمان آوند

سلام
در ابتدای جلسات مربوط به پروژه های دوره این مورد رو کاملا توضیح دادیم. ایشالله بهش میرسید.

فرهاد replyپاسخ

استاد چرا دسترسی به یه عضو استاتیک از یه کلاس با استفاده از کلمه کلیدی this امکان پذیر نیست. ولی به همون عضو استاتیک میشه با کلمه کلیدی self دسترسی پیدا کرد؟ این مساله در php یه مقدار عجیب و غریب به نظر میرسه . مثلا در زبان جاوا یه تابع استاتیک می تونه به راحتی به یه عضو استاتیک دسترسی پیدا کنه ولی در php اینکار با استفاده از this قابل دسترسی نیست. مثلا


این کد خطای نحوی ایجاد می کنه با اینکه هم متغیر و هم تابع هر دو استاتیک هستند.
اما کد زیر به درستی کار می کنه


حتی مشکل از این هم پیچیده تر میشه .طوری که یه تابع غیر استاتیک می تونه با کلمه کلیدی self به یه عضو استاتیک دسترسی پیدا کنه مثلا کد زیر درست کار می کنه.

خیلی گیج شدم ممنون میشم علت رو برام توضیح بدید. با تشکر

لقمان آوند

ببینید ، this و self مفهوم مختلفی دارند و یکی نیستند. این مورد هم یه قانون هست در php .
this برای دسترسی به آبجکت کنونی استفاده میشه و self برای کلاس کنونی! از self برای دسترسی به عناصر استاتیک و از this برای دسترسی به non-static ها استفاده کنید …

فرهاد

آها الان متوجه شدم یعنی اینکه چون self برای دسترسی به یک کلاس استفاده میشه و از اونجا که متغیرهای استاتیک مستقل از اشیا عمل می کنند در واقع دسترسی به اون ها باید از طریق کلاس انجام بشه و نه شی درسته؟

لقمان آوند

بله، استدلال خوبی هست …

فرهاد replyپاسخ

استاد آوند یه سوال در بخش نظرات مطلب جلسه مربوط به آرایه ها پرسیده بودم اگه امکان داره اون رو هم پاسخ بدید.
متن سوال این بود:
—————
با سلام خدمت استاد آوند
استاد شما فکر می کنید نحوه پیاده سازی توابعی مثل extract و یا توابعی مثل parse_str یا parse_url (که در جلسه قبل توضیح داده بودید) چطوری می تونه باشه؟ منظورم اینه که خودمون چطور می تونیم تابعی رو پیاده سازی کنیم که بعد از فراخوانی اون متغیرهایی به نام های خاصی در دسترس باشند. بدون اینکه قبلا توسط برنامه نویس به کار برده شده یا تعریف شده باشند.
با تشکر
—————

لقمان آوند

سلام
در PHP مفهومی وجود داره به نام Variable variables ها. با استفاده از این مفهوم و بکار گیری مقادیر میشه به راحتی متغیرهای جدید رو از مقادیر رشته ای ایجاد کرد که فکر کنم اگه اینجا رو بخونید خودتون متوجه بشید .

afshinirani replyپاسخ

استاد واقعا لذت بردم قبلا از شی گرایی میترسیدم ولی الان میفهمم خیلی کاربردی ومفیده. باتشکر از توضیحات روان وقابل فهمتون

زهره دائی replyپاسخ

سلام..یه سوال
من می تونم الان شی گرایی را بذارم کنار بعدا یادبگیرم؟؟ البته الان کار کردن با کلاس های تعریف شده مثل mysql وpdo رو بلدم(و اگر در جلسات اینده از کلاس های از پیش تعریف شده دیگه ای هم باشه ..می تونم با اونا کار کنم)..ولی اینکه خودم یه کلاس بسازم، زورم میاد بگیرم..احساس می کنم زوده..چون هنوز خوب کاربرد ساخت کلاس رو درک نکردم و اصلا خوشمم نیومده!!
و همون طور خودتون گفتید واسه پروژه های بزرگ مناسبه(منم هنوز به اون حد نرسیدم!!)
-بالاخره چی کار کنم؟ میشه بعدا یاد بگیرم؟..
-تو جلسات بعدی نیاز به ساختن کلاس هست؟؟
در ضمن ممنون از سایت و اموزش خوب و کاملتون..

زهره دائی replyپاسخ

و اگر ممکنه زود تر جواب بدین …من دوس دارم ویدیو بعدی (جلسه۲۳) را زوتر شروع کنم..
خیلی زیاد ممنون..

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.