تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 4 1234 آخرآخر
نمايش نتايج 1 به 10 از 31

نام تاپيک: آموزش برنامه نویسی شی گرایی در PHP

  1. #1
    پروفشنال Web Design's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Phpstorm
    پست ها
    602

    2 آموزش برنامه نویسی شی گرایی در PHP

    سلام
    دوستان تصمیم گرفتم آموزش شی گرایی PHP رو برای کاربران P30World شروع کنم امیدوارم مفید باشه .

    خیلی کلمات کلیدی رو ترجمه نمی کنم چون آموزش خیلی بهم میریزه .

    اگر مشکلی بود درون موضوع جدید بنویسید تا با هم حل کنیم . فقط تمرین هاتون رو که می گم همین زیر بفرستید تا دوستان با سبک ها مختلف کد نویسی آشنا بشن .
    Last edited by Web Design; 15-07-2014 at 16:19.

  2. 18 کاربر از Web Design بخاطر این مطلب مفید تشکر کرده اند


  3. #2
    پروفشنال Web Design's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Phpstorm
    پست ها
    602

    پيش فرض فهم Object ها و Class ها

    برای اکثر برنامه نویس های PHP شروع شی گرایی یک غول مرحله آخر فرض میشه چون باید نصفی از Syntax قبلی رو فراموش کنید و Syntax های جدیدی یاد بگیرید اما بعد از گذشت حتی مدت کمی از یادگیری با دقت به روند و تاثیر OOP (Object Oriented Programming) در سبک کد نویسیشون یک فصل جدیدی از برنامه نویسی رو تجربه می کنند .

    درست بعد از این دوره شما یک برنامه نویس حرفه ای خواهید شد .


    فهم مفهوم شی گرای

    OOP یک سبک کد نویسی است که به برنامه نویس اجازه میده که دستورات و عملکرد های مشابه رو داخل یک Class قرار بده. شما با این کار به عقیده و پایه برنامه نویسی یعنی DRY (Don't Repeat Yourself) احترام ویژه ای گذاشتید.

    یکی از مزایای برنامه نویسی DRY این است که اگر یک قسمت از اطلاعات شما در داخل کد تغییر کند معمولا شما فقط باید یک قسمت از آنرا تغییر دهید. یکی از کابوس های یک برنامه نویس این است که یک برنامه را با کد های تکراری دستکاری کند این حتی میتونه از سریال های شبکه یک هم خسته کننده تر باشه . خستگی Function و اطلاعات تکراری از تن برنامه نویس حتی با کلفئین هم خارج نمیشه .

    شی گرایی برای شروع ترسناک به نظر می آید اما
    OOP در واقع یک روش بسیار ساده و در نهایت باز هم ساده تر برای برنامه نویسی است.

    فهم Object ها و Class ها

    Object = شی
    قبل از شروع به آموزش OOPدرک فرق بین Object و Class راباید داشته باشید .

    خوب مثال رو اینطوری بیان کنیم که ساختمان ها Class های ما هستند و ساختمان های سطح شهر استفاده های مختلفی دارند اما در نهایت همگی ساختمان هستند . امکان داره تصور این ماجرا یکم براتون سخت باشه ولی به دور و ور خودتون خوب نگاه کنید و یکم تصور کنید .

    یک Class, مشابه طرح ساختمان است. طرح برای ما شکل، اتاق ها و ارتباط اجزای ساختمون رو بیان می کند اما دقت کنید طرح ما هنوز روی کاغذ است و این امکان هست که حتی هنوز ساختمانی هم نداشته باشد .

    یک
    object, مشابه یک خانه واقعی است که با توجه به آن طرح قبلی ساخته شده است. اطلاعات ذخیره شده در Object مثل چوب ، سیمان و بتن بدون یک طرح و نقشه برای ساخت خانه کاملا بدون کاربرد هستن مگر اینکه مهندس بازی یک ایرانی گل کنه نقشه ما یعنی Class و مواد سازنده ما یعنی Object با هم یک ساختمان رو ایجاد می کنند . حالا نوبت تصور شماست .

    Class ها استایل و عملکرد ها را تنظیم می کنند که در نهایت ما یک Object درست کنیم . هر Class می تواند بی نهایت Object ایجاد کند . میشه یه مثال جالب بزنم . شما مسکن مهر رو فزض کن ... ما اینجا یک نقشه برای هزاران هزار واحد مسکونی در صد ها موقعیت مکانی و آب و هوایی مختلف داریم ولی در آخر بدون توجه به موقیت مکانی و آب و هوایی و فرهنگی باز هم ما فقط از یک نقشه کاملا ثابت استفاده کردیم


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

    موفق باشید .


  4. 13 کاربر از Web Design بخاطر این مطلب مفید تشکر کرده اند


  5. #3
    پروفشنال Web Design's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Phpstorm
    پست ها
    602

    14 ساخت یک Class

    بخش دوم رو شروع کنیم فقط دوستان لطف کنند همه مثال ها رو با من با دستای خودشون بنویسند .
    پیکربندی یک Class اصلا کار مشکلی نیست. ما یک کلاس رو با کلمه کلیدی Class شروع می کنیم و در جلوی آن اسم کلاس رو نوشته و در ادامه از { } استفاده می کنیم .

    نمونه یک Class ساخته شده :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    بعد از اتمام ساخت یک Class ما باید اون رو به یک متغیر نسبت بدیم که به شکل زیر می باشد .

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    برای مشاهده ی تمام اجزای کلاس از تابع Var_dump() استفاده می کنیم .

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    حالا فایل خودتون رو اجرا کنید و نتیجه ای مشابه زیر باید ببینید :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خوب تبریک !! اولین کلاس خودمون رو ساختیم و اون رو به یک متفیر نسبت دادیم !! ساده تر از این نمیشد . اگر باز هم گیج شدین نگران نباشید پدرام اینجاست

    افزودن خواص ( Property ) یه کلاس :

    برای افرودن اطلاعات به Class ها از Property که یه جورایی میشه به عنوان Variable ها ازشون اسم برد، استفاده می کنیم .

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خوب مثال بالا توجه کنید، در ابتدا کلاس خودمون رو به اسم MyClass ایجاد کردیم و در داخل اون یک Property به اسم $prop1 ساختیم (Public توجه خاصی نکنید در ادامه بهش می پردازیم ) . کلاس رو بستیم و با کلمه کلیدی new کلاسمون رو به یک متغیر نسبت دادیم.
    با استفاده از echo ما Property داخل کلاس رو اجرا کردیم اما چطوری ؟؟؟!

    برای دسترسی به Propery های داخل کلاس از <- استفاده می کنیم و جلوی آن اسم Property رو بدون علامت $ میاریم .

    نتیجه کد بالا باید مانند زیر باشد :
    I'm a class property!


    پس به دوراه کوتاه بکنیم :



    1. ما یاد گرفتیم چطوری کلاس ها رو ایجاد کنیم .
    2. چگونه کلاس خود را به یک متغیر با new نسبت دهیم .
    3. با متغیر var_dump چگونه کار کنیم .
    4. چگونه یک Property بسازیم .
    5. چگونه یک Property را ایجاد کنیم .


    تمرین :

    یک کلاس به نام myFamily بسازید و داخل آن نام اجزای خانواده را به Property ها نسبت دهید . شی خود را بسازید و Property ها را اجرا کنید .

  6. 9 کاربر از Web Design بخاطر این مطلب مفید تشکر کرده اند


  7. #4
    پروفشنال akpa's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    خونمون
    پست ها
    876

    پيش فرض

    سلام تایپیک خیلی خوبی رو شروع کردی امیدوارم ادامه دار باشه و نیمه کاره رها نشه
    اینم جواب تمریناتتون استاد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by akpa; 15-07-2014 at 14:18. دليل: syntax error!

  8. 3 کاربر از akpa بخاطر این مطلب مفید تشکر کرده اند


  9. #5
    پروفشنال Web Design's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Phpstorm
    پست ها
    602

    پيش فرض

    سلام تایپیک خیلی خوبی رو شروع کردی امیدوارم ادامه دار باشه و نیمه کاره رها نشه
    اینم جواب تمریناتتون استاد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    تمام سعی خودم رو می کنم .
    ممنون که دنبال می کنید .

  10. 4 کاربر از Web Design بخاطر این مطلب مفید تشکر کرده اند


  11. #6
    پروفشنال Web Design's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Phpstorm
    پست ها
    602

    2 ساخت Method

    متد ها همان Function های خودمون ولی در Class ها هستند پس به فانکشن ها درون یک کلاس میگن Method .

    در واقع تمامی اقدامات و عملکرد هایی که یک شی انجام میدهد به وسیله Method ها صورت گرفته و به وسیله آنها دستورات را اجرا می کند .

    خوب کمترین توقعی که از شما توی این بخش هست اینه که Function ها رو بلد باشید وگرنه شی گرایی که چیزی نداره .

    اولین مثال رو اینطوری شروع کنیم که یک متغیر به نام prop1 ایجاد کردیم و حالا باید آنرا درون یک Method به نام setProperty اجرا می کنیم. اگر دقت کنید روند کار هیچ فرقی با ساخت فانکشن ها نخواهد نداشت .

    کد زیر رو با دقت بررسی کنید و هرچیزی که تا به اینجا یاد گرفتید رو یکبار دوره کنید .

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    نکته : برای دسترسی به یک متغیر یا یک شی خارج از کلاس یا درون یک کلاس از $this-> استفاده می کنیم و بعد از آن فقط نام متغیر بدون $ را می آوریم .

    برای چاپ کردن Method ها خیلی عادی و به روش همیشگی که برای فراخوانی Function عمل می کنیم ولی دقت کنید ما یک شی ساختیم و باید از طریق آن شی Method رو چاپ کنیم .












    به کد زیر دقت کنید :



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد بالا رو بررسی کنید و نتیجه اون رو کمی تغییر بدید .

    قدرت OOP وقتی نمایان می شود که یک کلاس چند بار استفاده مختلف کنید .
    بیاین یه تمرین برای قدرت نمایی بریم .


    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    نتیجه کد بالا باید چیزی شبیه زیر باشد


    I'm a classproperty!I'm a class property!
    I'm a new property value!
    I belong to the second instance!

    تمرین : یک کلاس با نام forum بسازید و درون آن یک پیغام خوش آمد گویی برای هر نام کاربری ای که به متد خود می دهید بنویسید .
    2 شی مختلف ایجاد کرده و 2 پیغام خوش آمد گویی یکی برای من و یکی هم برای خودتون بنویسید .

  12. 7 کاربر از Web Design بخاطر این مطلب مفید تشکر کرده اند


  13. #7
    پروفشنال akpa's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    خونمون
    پست ها
    876

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این جواب سوال ها البته اگه صورت سوال رو درست متوجه شده باشم
    یه نکته هم جا داره اشاره کنم که (البته فک کنم در ادامه بحث خودتون میخاستید توضیح بدید) بهتره متغییر ها رو به صورت خصوصی تعریف کنیم و تنها توسط متد ها و یا سازنده کلاس اونا رو مقدار دهی کنیم به همبن دلیل به جای public بنده از private استفاده کردم

  14. 3 کاربر از akpa بخاطر این مطلب مفید تشکر کرده اند


  15. #8
    آخر فروم باز Mr.Pooya's Avatar
    تاريخ عضويت
    Feb 2010
    محل سكونت
    تهران
    پست ها
    2,134

    پيش فرض

    سلام

    با تشکر از دوست خوبمون بابت آموزش شون.

    البته نکته ای که جا داره اینجا بگم اینه که از یک کلاس چند تا ( بقول زبان برنامه نوسی ) Instance ساختن مهم نیست البته خب خیلی کارایی می تونه داشته باشه اما Design Pattern هایی رو داریم که فقط از هر کلاس یک Instance ساخت مثل Singleton البته این که فقط یک Instance بسازیم مثلا بیشتر بدرد Database می خوره که فقط یکبار وصل بشه.

    موفق باشید

  16. 2 کاربر از Mr.Pooya بخاطر این مطلب مفید تشکر کرده اند


  17. #9
    پروفشنال Web Design's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Phpstorm
    پست ها
    602

    پيش فرض

    سلام

    با تشکر از دوست خوبمون بابت آموزش شون.

    البته نکته ای که جا داره اینجا بگم اینه که از یک کلاس چند تا ( بقول زبان برنامه نوسی ) Instance ساختن مهم نیست البته خب خیلی کارایی می تونه داشته باشه اما Design Pattern هایی رو داریم که فقط از هر کلاس یک Instance ساخت مثل Singleton البته این که فقط یک Instance بسازیم مثلا بیشتر بدرد Database می خوره که فقط یکبار وصل بشه.

    موفق باشید
    مثالی که من آوردم تنها برای درک این بود که میشه از یک کلاس چند شی مختلف به صورت جدا ساخت .
    اما ممنون

  18. 3 کاربر از Web Design بخاطر این مطلب مفید تشکر کرده اند


  19. #10
    آخر فروم باز Mr.Pooya's Avatar
    تاريخ عضويت
    Feb 2010
    محل سكونت
    تهران
    پست ها
    2,134

    پيش فرض

    مثالی که من آوردم تنها برای درک این بود که میشه از یک کلاس چند شی مختلف به صورت جدا ساخت .
    اما ممنون
    بله درسته بنده هم تشکر کردم از آموزش عالی شما

    اما فقط برای کامل تر شدن موضوع عرض کردم. البته Singleton فعلا نیازی نیست که کاربرانی که تازه OOP رو شروع می کنند روش وقت بزارند.

  20. 2 کاربر از Mr.Pooya بخاطر این مطلب مفید تشکر کرده اند


صفحه 1 از 4 1234 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •