برنامه نویسی شی گرا در php | قسمت اول
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 5 دقیقه

برنامه نویسی شی گرا در php | قسمت اول

سلام خدمت کاربران عزیز وب سایت راکت در این پست و پست های دیگه ای که قرار هر چند وقت یکبار در سایت قرار بدم قصد دارم تا شی گرائی در 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 حتما صحبت میکنیم امیدوارم این مطلب مورد استفاده اتون قرار گرفته باشه .

/@hesammousavi
حسام موسوی
طراح و برنامه نویس

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

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید