آموزش جامع برنامهنویسی شیگرا (OOP) در PHP بر اساس استانداردهای گوگل
مقدمهای بر برنامهنویسی شیگرا (OOP) در PHP
برنامهنویسی شیگرا یا Object-Oriented Programming (OOP) یک الگوی برنامهنویسی است که بر اساس مفهوم «اشیاء» (Objects) شکل گرفته است. اشیاء میتوانند دادهها (در قالب ویژگیها یا Properties) و کدها (در قالب توابع یا Methods) را در بر بگیرند. استفاده از شیگرایی به ما کمک میکند کدهایی با قابلیت استفاده مجدد بالا، ساختاریافتهتر و خواناتر بنویسیم.
بر اساس استانداردهای توسعه نرمافزار گوگل، استفاده از مفاهیم OOP برای پروژههای بزرگ مقیاسپذیر الزامی است چرا که توسعه تیمی را آسانتر و فرآیند دیباگ را به شکل چشمگیری سریعتر میکند.
تعریف کلاس (Class) و شیء (Object)
کلاس مانند یک نقشه ساختمان یا قالب اولیه است و شیء، نمونه واقعی ساخته شده از روی آن قالب است. برای مثال، کلاس «خودرو» مشخصات کلی خودرو را تعریف میکند، اما «پراید» یا «تسلا» اشیاء واقعی ساخته شده از روی این کلاس هستند.
در ادامه نحوه تعریف یک کلاس و نمونهسازی (Instantiation) از آن را در PHP مشاهده میکنید:
class Car {
// Properties
public $brand;
public $color;
// Constructor
public function __construct($brand, $color) {
$this->brand = $brand;
$this->color = $color;
}
// Method
public function getDetails() {
return "این خودرو یک " . $this->brand . " به رنگ " . $this->color . " است.";
}
}
// Instantiating objects
$tesla = new Car("Tesla Model S", "مشکی");
$bmw = new Car("BMW M4", "آبی");
echo $tesla->getDetails(); // خروجی: این خودرو یک Tesla Model S به رنگ مشکی است.
اصول چهارگانه برنامهنویسی شیگرا
برنامهنویسی شیگرا بر پایه ۴ ستون اصلی استوار است:
۱. ارثبری (Inheritance)
ارثبری به یک کلاس اجازه میدهد ویژگیها و متدهای کلاس دیگری را به ارث ببرد. این ویژگی از تکرار بیهوده کدها جلوگیری میکند.
class Vehicle {
public $engineStatus = false;
public function startEngine() {
$this->engineStatus = true;
return "موتور روشن شد.";
}
}
class ElectricCar extends Vehicle {
public $batteryLevel = 100;
}
$myElectricCar = new ElectricCar();
echo $myElectricCar->startEngine(); // خروجی: موتور روشن شد.
۲. کپسولهسازی (Encapsulation)
کپسولهسازی به معنای محدود کردن دسترسی مستقیم به دادههای درون یک شیء است. این کار با کمک کلمات کلیدی دسترسی (Access Modifiers) یعنی public، protected و private انجام میشود. گوگل همیشه توصیه میکند که ویژگیها به صورت private تعریف شوند و دسترسی به آنها از طریق متدهای Getter و Setter صورت گیرد.
class User {
private $password;
public function setPassword($password) {
if (strlen($password) < 8) {
throw new Exception("رمز عبور باید حداقل ۸ کاراکتر باشد.");
}
$this->password = password_hash($password, PASSWORD_BCRYPT);
}
}
۳. چندریختی (Polymorphism)
چندریختی به اشیاء کلاسهای مختلف اجازه میدهد که متدهایی با نام یکسان اما با پیادهسازیهای متفاوت داشته باشند. این کار معمولاً از طریق Interfaceها یا کلاسهای انتزاعی انجام میشود.
۴. انتزاع (Abstraction)
انتزاع به معنای پنهان کردن جزئیات پیچیده پیادهسازی و نمایش دادن فقط ویژگیهای ضروری به کاربر است. کلاسهای abstract نقش مستقیمی در ایجاد انتزاع ایفا میکنند.
بهترین شیوهها و استانداردهای گوگل در PHP OOP
- پیروی از استاندارد PSR-12: نام کلاسها باید به صورت تککلمهای و با استاندارد StudlyCaps (مانند
UserSession) نامگذاری شوند. - قانون تک مسئولیتی (Single Responsibility): هر کلاس باید فقط و فقط یک وظیفه مشخص داشته باشد.
- استفاده از Type Hinting: همیشه نوع ورودیها و خروجیهای متدها را مشخص کنید تا خطاهای زمان اجرا به حداقل برسند.
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید