برنامهنویسی شیگرا (OOP) در پی اچ پی چیست؟
در دنیای توسعه وب، با بزرگتر و پیچیدهتر شدن پروژهها، نوشتن کدهای ساختاریافته، تمیز و قابل نگهداری اهمیت بسیار بالایی پیدا میکند. یکی از قدرتمندترین روشها برای مدیریت کدهای برنامهنویسی، استفاده از برنامهنویسی شیگرا (Object-Oriented Programming یا به اختصار OOP) است.
در این مقاله از سایت پی اچ پی ساز، در بخش کلاس و شیء، به زبان ساده بررسی میکنیم که برنامهنویسی شیگرا چیست، چه مفاهیمی دارد و چرا زبان PHP بستر فوقالعادهای برای اجرای آن است.
برنامهنویسی شیگرا (OOP) چیست؟
برنامهنویسی شیگرا یک الگو یا پارادایم برنامهنویسی است که بر اساس مفهوم «اشیاء» (Objects) بنا شده است. در برنامهنویسی سنتی یا رویهای (Procedural Programming)، ما برنامه را به شکل مجموعهای از توابع و متغیرهای پراکنده مینوشتیم که دادهها را پردازش میکردند. اما در OOP، تمرکز ما روی ایجاد اشیایی است که هم دادهها (ویژگیها) و هم توابع پردازشکننده آن دادهها (رفتارها) را درون خود نگه میدارند.
برای درک بهتر، دنیای واقعی را تصور کنید. یک «ماشین» یک شیء است. این ماشین ویژگیهایی دارد (رنگ، مدل، وزن) و رفتارهایی از خود نشان میدهد (روشن شدن، حرکت کردن، ترمز گرفتن). در برنامهنویسی شیگرا، ما دقیقاً همین نگاه را به کدهایمان داریم.
مفاهیم پایه: کلاس (Class) و شیء (Object)
برای ورود به دنیای OOP، ابتدا باید دو مفهوم اساسی را به خوبی درک کنید:
۱. کلاس (Class)
کلاس مانند یک نقشه ساختمان یا یک قالب است. کلاس تعیین میکند که یک شیء چه ویژگیها و رفتارهایی باید داشته باشد، اما خودش یک موجودیت فیزیکی یا داده واقعی نیست.
۲. شیء (Object)
شیء نمونهای واقعی و ساخته شده از روی یک کلاس است. اگر کلاس را همان نقشه ساختمان در نظر بگیریم، شیء همان ساختمان ساخته شده است. از روی یک کلاس میتوان صدها شیء مختلف ساخت که هر کدام مقادیر متفاوتی برای ویژگیهایشان داشته باشند.
مثال کدنویسی در PHP:
<?php
// تعریف یک قالب یا کلاس به نام Car
class Car {
// ویژگیها (Properties)
public $color;
public $model;
// رفتارها یا متدها (Methods)
public function setModel($modelName) {
$this->model = $modelName;
}
public function getModel() {
return "مدل ماشین شما " . $this->model . " است.";
}
}
// ساخت یک شیء (Object) از روی کلاس
$myCar = new Car();
// مقداردهی و استفاده از متدها
$myCar->setModel("پژو 206");
echo $myCar->getModel(); // خروجی: مدل ماشین شما پژو 206 است.
?>
اصول چهارگانه برنامهنویسی شیگرا
برنامهنویسی شیگرا بر چهار ستون اصلی استوار است که کدهای شما را حرفهایتر میکنند:
-
کپسولهسازی (Encapsulation): این اصل به معنای مخفی کردن جزئیات پیادهسازی و محافظت از دادههای درون شیء است. با استفاده از سطوح دسترسی (مانند
public,private,protected) تعیین میکنیم که کدام بخش از دادهها از بیرون کلاس قابل تغییر باشند و کدام بخشها قفل شوند. -
وراثت (Inheritance): وراثت به یک کلاس اجازه میدهد تا ویژگیها و متدهای یک کلاس دیگر (کلاس والد) را به ارث ببرد. این کار از تکرار کدهای مشابه در برنامه جلوگیری میکند و باعث میشود کدهایی قابل استفاده مجدد (Reusable) داشته باشیم.
-
چندریختی (Polymorphism): این قابلیت به ما اجازه میدهد که از یک متد با نام یکسان، در کلاسهای مختلف استفاده کنیم اما هر کلاس رفتار خاص خودش را برای آن متد داشته باشد.
-
انتزاع یا تجرید (Abstraction): انتزاع به معنای پنهان کردن پیچیدگیهای پسزمینه و نمایش تنها اطلاعات ضروری به کاربر یا برنامهنویس دیگر است. در PHP این کار با استفاده از کلاسها و متدهای Abstract یا اینترفیسها (Interfaces) انجام میشود.
چرا باید از OOP در پروژههای PHP استفاده کنیم؟
گذر از برنامهنویسی رویهای به شیگرا مزایای بیشماری دارد:
-
کاهش تکرار کد (DRY Principle): به دلیل استفاده از کلاسها و وراثت، نیاز به نوشتن کدهای تکراری به شدت کاهش مییابد.
-
نگهداری و توسعه آسانتر (Maintainability): وقتی کدها در قالب کلاسها دستهبندی شوند، پیدا کردن باگها و ارتقاء سیستم بسیار سریعتر و راحتتر انجام میشود.
-
امنیت بالاتر: به کمک کپسولهسازی، از تغییرات ناخواسته و مستقیم در دادههای حساس جلوگیری میشود.
-
کارتیمی بهتر: در پروژههای تیمی، برنامهنویسان میتوانند به صورت همزمان روی کلاسهای مختلف کار کنند بدون اینکه کدهایشان با یکدیگر تداخل پیدا کند.
نتیجهگیری
برنامهنویسی شیگرا (OOP) یک مهارت ضروری برای هر توسعهدهنده مدرن PHP است. تمام فریمورکهای معروف و قدرتمند PHP مانند لاراول (Laravel) کاملاً بر پایه معماری شیگرا ساخته شدهاند. با درک عمیق کلاسها، اشیاء و اصول چهارگانه OOP، میتوانید پروژههایی مقیاسپذیر، استاندارد و حرفهای توسعه دهید. در مقالات بعدی، به صورت عملیتر به نحوه ساخت و استفاده از متدها و ویژگیها در کلاسهای PHP خواهیم پرداخت.

بدون دیدگاه