RAJESTARY DIGITAL TECH • SECURITY • EDUCATION
دانش • فناوری • امنیت

دنیای تکنولوژی
از یادگیری شروع می‌شود

آموزش‌های کاربردی، برنامه‌نویسی، امنیت و فناوری برای ساختن، یادگرفتن و بهتر زندگی کردن با تکنولوژی.

LEARN BUILD SECURE CREATE

مقدمه‌ای بر شی‌گرایی (OOP)؛ کدنویسی مدرن و ماژولار

مقدمه‌ای بر شی‌گرایی (OOP)؛ کدنویسی مدرن و ماژولار

🧬 درس پنجم: مقدمه‌ای بر شی‌گرایی (OOP)؛ کدنویسی مدرن و ماژولار

👋

سلام مهمان عزیز!

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

🎯 هدف این درس: آشنایی با مفاهیم پایه‌ای برنامه‌نویسی شی‌گرا (OOP) در PHP، درک تفاوت آن با برنامه‌نویسی تابعی (Procedural) و یادگیری ساخت کلاس، شیء، متد و ویژگی‌ها.

مهمان عزیز! 👋
تا اینجا تمام کدهای ما به صورت «تابعی» (Procedural) نوشته می‌شدند؛ یعنی مجموعه‌ای از توابع و متغیرهای پراکنده. اما وقتی پروژه بزرگ می‌شود، مدیریت این کدها بسیار دشوار و گیج‌کننده می‌گردد.

برنامه‌نویسی شی‌گرا (Object-Oriented Programming یا OOP) روشی است که در آن ما کدها را در قالب «اشیاء» دسته‌بندی می‌کنیم. هر شیء مانند یک بسته کامل است که داده‌ها (ویژگی‌ها) و کارهایی که می‌تواند انجام دهد (متدها) را در خود نگه می‌دارد.

این سبک کدنویسی استاندارد جهانی است و تمام فریم‌ورک‌های مدرن مثل Laravel یا سیستم‌هایی مثل وردپرس بر اساس آن ساخته شده‌اند.

💡 تشبيه ساده:

اگر برنامه‌نویسی تابعی را مثل «خرید مواد اولیه و آشپزی در لحظه» بدانیم، OOP مثل داشتن «دستگاه‌های آماده آشپزی» است. شما یک بار دستگاه (کلاس) را می‌سازید و هر بار که نیاز دارید، از آن استفاده می‌کنید.


🏗️ مرحله ۱: تعریف کلاس (Class)

کلاس مانند یک «نقشه» یا «الگو» است. مثلاً کلاسی به نام User می‌سازیم که مشخصات یک کاربر را تعریف می‌کند.



🏗️
User.php

PHP
8.x



<?php

class User {
    // ویژگی‌ها (Properties): داده‌های مربوط به کاربر
    public $name;
    public $email;

    // سازنده (Constructor): وقتی شیء ساخته می‌شود اجرا می‌شود
    public function __construct($name, $email) {
        $this->name = $name;
        $this->email = $email;
    }

    // متد (Method): کاری که کاربر می‌تواند انجام دهد
    public function greet() {
        return "سلام، من {$this->name} هستم.";
    }
}

🚀 مرحله ۲: ساخت شیء (Object) و استفاده از آن

حالا که نقشه (کلاس) را داریم، می‌توانیم از روی آن اشیاء واقعی بسازیم. به این کار «نمونه‌سازی» (Instantiation) می‌گویند.



🚀
index.php

PHP
8.x



<?php
require_once 'User.php';

// ساخت دو کاربر مختلف از روی یک کلاس
$user1 = new User('یونس رجستری', 'younes@rajestary.com');
$user2 = new User('علی احمدی', 'ali@example.com');

// دسترسی به متدها
echo $user1->greet(); // خروجی: سلام، من یونس رجستری هستم.
echo "<br>";
echo $user2->greet(); // خروجی: سلام، من علی احمدی هستم.

🔒 مرحله ۳: مفهوم Encapsulation (کپسوله‌سازی)

در مثال بالا از کلمه public استفاده کردیم. در OOP سه سطح دسترسی داریم:
1. Public: همه جا قابل دسترسی است.
2. Private: فقط داخل همان کلاس قابل دسترسی است (برای امنیت داده‌ها).
3. Protected: برای ارث‌بری استفاده می‌شود.



🔒
SecureUser.php

PHP
8.x



<?php

class BankAccount {
    private $balance; // موجودی نباید مستقیم تغییر کند

    public function __construct($initialBalance) {
        $this->balance = $initialBalance;
    }

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount;
        }
    }

    public function getBalance() {
        return $this->balance;
    }
}

❌ خطاهای رایج در شروع OOP

🚫 اشتباه رایج:

فراموش کردن کلمه $this. در داخل کلاس، برای دسترسی به ویژگی‌ها و متدهای همان کلاس حتماً باید از $this-> استفاده کنید.

  • تعریف نکردن Constructor: اگر می‌خواهید شیء هنگام ساخته شدن مقدار اولیه بگیرد، حتماً از __construct استفاده کنید.
  • استفاده بیش از حد از Public: همیشه سعی کنید داده‌های حساس را private کنید و فقط از طریق متدها به آن‌ها دسترسی دهید.

🏁 جمع‌بندی درس پنجم

مهمان عزیز، در این درس یاد گرفتی:

  • ✅ تفاوت کلاس (نقشه) و شیء (ساختمان ساخته شده).
  • ✅ نحوه تعریف ویژگی‌ها (Properties) و متدها (Methods).
  • ✅ کاربرد Constructor برای مقداردهی اولیه.
  • ✅ اهمیت کپسوله‌سازی (Encapsulation) با استفاده از private.

🎓 تمرین عملی درس پنجم

یک کلاس به نام Product بساز که ویژگی‌های نام، قیمت و تعداد را داشته باشد. متدی بنویس که قیمت نهایی (با احتساب مالیات ۹٪) را محاسبه و برگرداند.


🗺️ نقشه راه دوره: شما اینجا هستید!

برای اینکه بدانی دقیقاً کجای مسیر هستی و چه درس‌هایی در انتظار توست، به جدول زیر نگاه کن. درس فعلی با رنگ متفاوت مشخص شده است.

درس عنوان درس آنچه یاد می‌گیرید
۱ ارتباط با دیتابیس (PDO) اتصال امن به MySQL، جلوگیری از SQL Injection
۲ مدیریت نشست‌ها (Sessions) ساخت سیستم لاگین/خروج، مدیریت دسترسی کاربران
۳ کار با فایل‌ها (File Handling) آپلود تصویر، خواندن و نوشتن در فایل‌ها
۴ مدیریت خطاها (Error Handling) استفاده از Try/Catch، لاگ‌گیری خطاها
۵ مقدمه‌ای بر شی‌گرایی (OOP) کلاس، شیء، متد، ویژگی‌ها
۶ ساختاردهی پروژه (MVC مقدماتی) جداسازی منطق از ظاهر، فایل‌های Config
۷ امنیت پیشرفته هش کردن پسورد، محافظت در برابر XSS و CSRF
۸ کار با API (مقدماتی) دریافت داده از API خارجی (cURL)، JSON
۹ پروژه نهایی سطح متوسط ساخت وبلاگ کامل با قابلیت لاگین و مدیریت

🔗 لینک‌های مرتبط

نویسنده تیم رجستری
تاریخ انتشار

نظر خود را بنویسید

با ثبت نظر، به بهبود محتوای ما کمک کنید

امتیاز شما به این مطلب (اختیاری)
برای امتیازدهی، روی ستاره‌ها کلیک کنید
نام شما در سایت نمایش داده می‌شود
ایمیل شما محفوظ می‌ماند
0کاراکتر|حداقل ۱۰ کاراکتر
نظر سازنده و مفید بنویسید
ارسال دیدگاه: +۵ امتیاز
امتیازدهی: +۲ امتیاز
نشان شما: مبتدی
لطفاً از کلمات محترمانه استفاده کنید. دیدگاه‌های توهین‌آمیز حذف می‌شوند.
⚠️

هشدار مهم!

برای اتصال به درگاه پرداخت و انجام تراکنش، لطفاً VPN یا فیلترشکن خود را خاموش کنید.

⏳ ادامه در
5
ثانیه