آموزش برنامه نویسی شیءگرایی

iReza

کاربر عضو
سلام :57:

امیدوارم حالتون خوب باشه.

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

خب اول باید بدونیم داریم چی میخونیم؟ چی یاد میگیریم؟

مقدمه

برنامه نویسی شیءگرایی، یا به لاتین Object-Oriented Programming، به شیوه ای میگن که اساس و پایه اون، بر مبنای شیء یا Object ساخته شده. این شیوه برای برنامه های وب یا Web Application استفاده میشه و ساختار ایستا اون رو تشکیل میده. برنامه نویسی شیءگرایی لازمه حرفه ای شدن در زمینه برنامه نویسی PHP هست. شیوه OO رو کلاس نویسی تشکیل میده و ساختار کل یک کلاس به این صورت هست:


کد:
<?php
Class MyClass {
   // Some Code
}
?>
هر کلاس، یک بسته از کدهای آماده هست. پس؟ پس ما باید توابع و متغیرهای خودمون رو درون کلاس قرار بدیم. برای ساخت یک متغیر در کلاس، باید قبل از هرچیز، با استفاده public یک متغیر بسازید، مانند:


کد:
<?php
Class MyClass {
   public $WebAppStrings
}
?>
و برای ساخت تابع هم همونطور به طور معمول استفاده میکنیم:


کد:
<?php
Class MyClass {
   public $WebAppStrings
   function Typer() 
   {
     echo 'iReza - Developer';
   }
}
?>
در کلاس MyClass، یک متغیر با نام WebAppStrings$ داریم و یک تابع Typer.

حالا اگر متغیر رو درون کلاس انتخاب کنیم، باید با استفاده از this$ این کار رو بکنیم:


کد:
<?php
Class MyClass {
   public $WebAppStrings;
   function Typer() 
   {
     $i = $this -> WebAppStrings = 'iReza - Developer';
     echo $i;
   }
}
?>
در کد بالا ما با انتخاب متغیر WebAppStrings (در انتخاب توسط this$ متغیر رو بدون $ قرار بدید) اون رو مقدار i$ میکنیم. سپس متغیر i$ رو چاپ میکنیم.

بری اینکه شیء رو به خارج از کلاس بیارید، باید یک متغیر رو تبدیل به شیء کنید:


کد:
$obj = new MyClass();
الان obj$ یک شیء داینامیک هست، پس میتونید به نمایندگی اون از امکانات کلاس استفاده کنید، با استفاده از:


کد:
$obj -> Typer();
اساس و شکل پایه شیء گرایی به این صورت (ساختمان پایه).

 
آخرین ویرایش توسط مدیر:

iReza

کاربر عضو
ببینید دوستان، شیءگرا یک مبحث گنگ و حرفه ای هست، ساده ترین زبان بیان اون همین آموزش هست! میخواید سرچ کنید! اما چیزی بهتر پیدا نمیکنید.ما شیوه دسترسی به امکانات یک کلاس رو فهمیدیم.اما حالا از داخل خوده ساختار کلاس چطوری به به توابع دسترسی داشته باشیم؟ با استفاده از ::! یعنی در طرق سمت چپ نام کلاس قرار میگیره و در سمت راست نام تابع. اما معقول ترین زمان استفاده از این شیوه کی هست؟ زمانی هست که ما یک کلاس والد یا فرزند داشته باشیم! یعنی چی؟ یعنی اینکه یک کلاس درون یک کلاس باشه و کلاس اصلی رو کلاس مادر مینامیم. به زبان php:


کد:
Class MyClass {
    function MyFunction () {
      echo 'iReza - Developer';
    }
}
Class MySecondaryClass extends MyClass {
    function MySecondaryFunction () {
      MyClass::MyFunction();
    }
}
$Obj = new MySecondaryClass();
$Obj -> MySecondaryFunction();
در این کد، ما یک کلاس MyClass داریم و یک تابع درون اون با نام MyFunction، که اون تابع متن مورد نظر رو چاپ میکنه. اما اینجا ما یک کلاس والد هم داریم! که به وسیله extends اون رو والد کلاس MyClass کنیم.سپس توسط تابع MySecondaryFunction و شیوه ای که بتون گفتم دستورات تابع MyFunction رو اجرا میکنه.

__construct

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

بدون توضیح، کد همه چیز رو مشخص میکنه:


کد:
<?php
class MyClass {
   function __construct($Product_Name) {
      echo $Product_Name;
    }
}
$obj = new MyClass('iReza - Developer');
?>
پس لان کلاس ما، در واقع تبدیل به یک تابع Auto Run شده.

 

kasraa

کاربر عضو
سلام

مرسی رضا جون

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

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

میای به جای اینکه 20 بار چند خط کد نویسی رو تکرار کنی به جاش یه کلاس مینویسی و هرجا خواستی فراخوانیش میکنی

خلاصه تر اینکه شی گرایی یعنی جلوگیری از تکرار و دوباره نویسی کدها ( مثل توابع که از یه چیزی تبعیت میکنن )

البته مزایای زیادی داره که جاش اینجا نیست بگم

رضا این پستم رو پاک کن و به مطلب خودت اضافه کن

بازم شرمنده :x

 

iReza

کاربر عضو
تو دانسته هاتو به قیه میزاری بعدش من پاکش کنم ؟ مریضم ؟ :D

ممنون بخاطر توضیحات :D

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

امیدوارم روزی برسه که همه متوجه بشن سبک شیءگرا حرفه ای ترین سبک برای php هست.

 
بالا