دسته بندی :
تاریخ انتشار : ۲۷ شهریور ۱۳۹۴
گردآوری و تالیف : حسام موسوی

کارمو با طراحی گرافیکی شروع کردم و حدود 2 سال طراحی گرافیکی میکردم بعد به طراحی وب علاقه پیدا کردم و همراه طراحی وب عاشق کدنویسی شدم به PHP | sass | css | Jquery | javaScript تسلط کامل دارم . در بین فریم ورک های PHP اول با CodeIgniter کار کردم اما به laravel علاقه مند شدم و دارم بطور حرفه ای دنبالش میکنم . امید من اینکه بتونم کاربرهای ایرانی رو به دنیای بیرون متصل کنم تا بتونن از فناوری های تازه آگاهی داشته باشن

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

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

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

یک مثال از php بطور معمولی : 

<?php

	// Connect to Database

?>

<!DOCTYPE html>
<html>
<head>
	<title>Document</title>
</head>
<body>

</body>
</html>

شی گرایی یا به اختصار oop که کوتاه شده ای (Object-Oriented Programming) برنامه نویسی شی گرای به شما اجازه میده در کدهای خودتون تقسیم بندی های متفاوتی انجام بدید و کدهای php و html رو تا حد زیادی از هم جدا کنید و همین باعث میشه تا مدیریت روی کدهای php تون فوق العاده بالا بره . البته خیلی دلایل دیگه وجود داره که نمیخوام با این دلایل سرتون رو درد بیارم ، بزارید بریم سراغ توضیح مفهوم oop . 

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

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

کلاس ها و شی ها 

در شی گرایی دو مفهوم مهم ابتدایی و پایه وجود داره . کلاس ها و شی ها . یک کلاس (class) دقیقا مثل همون نقشه ای میمونه که باهاش خونه ای رو میشه ساخت ، نقشه ای که از کنار هم قرار دادن اجزایی متفاوتی ساخته میشه . این اجزا همون کلاس ها هستند مثل چی ؟ مثل کلاس در ، پنجره ، سیم و ... . که هر کدوم دارای ویژگی های مخصوص بخودشون هستند . که با ترکیب اینها با هم یک خونه ساخته میشه . 

و یک شی (object)  مثل یک خونه ای واقعیه که از روی نقشه آماده شده ساخته میشه . یعنی دقیقا اول نقشه با استفاده از کلاس ها یا همون اجزایی مثل در ، پنجره ، سیم ، بتن و .. که هر کدوم برای خودشون کلاسی هستن بهم متصل و آماده میشن بعد با استفاده از اون نقشه خونه واقعی ساخته میشه . 

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

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

ساختار کلاس ها

در php یک کلاس با کلمه کلیدی (class) بوجود میاد و با یک اسپیس و تایپ یک اسم شما اسم اون کلاس رو تعریف میکنید و در نهایت با قرار دادن براکت های باز و بسته ( { } ) کار یک class رو شروع میکنید . دقیقا مثل مثال زیر :

<?php

class MyClass
{
  // class propertys and methods go here;
}

?>

بعد از به وجود آوردن کلاس ما با استفاده از کلمه کلیدی new می تونیم از اون کلاس استفاده کنیم و یک شی (object) با همون کلاس بسازیم . در زیر میتونید این روش رو ببینید :

$obj = new MyClass;

شما با قرار دادن شی (obj$) در داخل var_dump میتونید محتوای کلاس رو مشاهده کنید .

var_dump($obj)

و اگر این کدها رو در داخل فایلی برای test کردن قرار بدید و فایل رو اجرا کنید نتیجه زیر رو مشاهده خواهید کرد . 

object(MyClass)#1 (0) { }

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

دیدگاه های مخاطبین

ثبت دیدگاه شما
  • jahan

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

  • نبیل امیری

    واقعاآموزش هاتون بی نظیره مخصوصا مثال های خوب تون که برای همیشه توذهن آدم میمونه ازبرداشت که نسبت به یادگیری اون زبان داره . بازم ممنون

    • admin

      خواهش میکنم انشالله که جوری پیش بریم که همیشه از ما راضی باشید .

  • معین

    خیلی عالی بود، بی صبرانه منتظر آموزش های بعدی مبحث OOP هستم، با تشکر از زحمات شما

    • admin

      ممنون بابت دلگرمیتون ، امیدوارم قسمت های دیگه هم مورد استفاده تون قرار بگیره

  • علی

    واقعا عالی بود ممنون. فقط ای کاش دوره شی گرایی را بصورت ویدیویی برگزار میکردین

    • admin

      ممنون از دلگرمیتون ، بله دوره oop هم بطور کاملا رایگان برگزار میشه برای کاربرای راکت

پیشنهاد میکنیم این مطالب رو هم مطالعه کنید :