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
۹ پروژه نهایی سطح متوسط ساخت وبلاگ کامل با قابلیت لاگین و مدیریت

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

👤
نویسنده یونس رجستری
📅
تاریخ انتشار 28 مرداد 1405
🔄
آخرین بروزرسانی 28 مرداد 1405
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

⚠️

هشدار مهم!

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

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