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

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

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

LEARN BUILD SECURE CREATE

مدیریت وابستگی با Composer؛ استاندارد جهانی PHP

مدیریت وابستگی با Composer؛ استاندارد جهانی PHP

📦 درس چهارم: مدیریت وابستگی با Composer؛ استاندارد جهانی PHP

👋

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

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

🎯 هدف این درس: یادگیری کار با Composer به عنوان ابزار استاندارد مدیریت پکیج در PHP. آشنایی با مفاهیم Autoloading (PSR-4)، مدیریت نسخه‌ها (Semantic Versioning) و نحوه ساخت و انتشار پکیج‌های اختصاصی.

مهمان عزیز! 👋
تا قبل از ظهور Composer، نصب کتابخانه‌های خارجی در PHP کابوس بود! باید فایل‌ها را دستی دانلود می‌کردی، در پوشه‌ها کپی می‌کردی و نگران تداخل نام کلاس‌ها بودی.

اما امروز، Composer قلب تپنده اکوسیستم مدرن PHP است. ابزاری که نه تنها نصب پکیج‌ها را آسان می‌کند، بلکه با قابلیت Autoloading، نیاز به استفاده از دستورات قدیمی require و include را برای هر فایل کلاس از بین می‌برد.

💡 چرا Composer حیاتی است؟

۱. مدیریت وابستگی‌ها: نصب خودکار تمام پیش‌نیازهای یک پکیج.
۲. استاندارد PSR-4: بارگذاری خودکار کلاس‌ها بر اساس نام و مسیر فایل.
۳. به‌روزرسانی آسان: مدیریت نسخه‌ها با یک دستور ساده.


1️⃣ نصب و راه‌اندازی اولیه

برای شروع، باید فایل composer.json را در ریشه پروژه خود ایجاد کنی. این فایل شناسنامه پروژه توست.



📄
composer.json

JSON
1.0



{
    "name": "rajestary/my-project",
    "description": "A sample project for learning Composer",
    "type": "project",
    "require": {
        "php": "^8.2"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

بعد از ایجاد فایل، دستور composer install را در ترمینال اجرا کن تا پوشه vendor ساخته شود.


2️⃣ نصب پکیج‌های خارجی

فرض کن می‌خواهی از کتابخانه معروف monolog برای لاگ‌گیری استفاده کنی. به جای دانلود دستی، فقط کافیست دستور زیر را بزنی:



💻
Terminal

Bash
5.0



composer require monolog/monolog

3️⃣ جادوی Autoloading (PSR-4)

مهم‌ترین بخش Composer، قابلیت Autoloading است. با تعریف_namespace_ در فایل json، دیگر نیازی به require 'classes/User.php' نداری.




index.php

PHP
8.x



<?php

// فقط یک بار این فایل را صدا می‌زنیم
require_once 'vendor/autoload.php';

// حالا می‌توانیم از هر کلاسی در پوشه src استفاده کنیم
use App\Models\User;

$user = new User();
$user->setName('Younes');

4️⃣ مدیریت نسخه‌ها (Semantic Versioning)

در فایل composer.json، نمادهایی مثل ^ یا ~ را می‌بینی:

  • "php": "^8.2": یعنی نسخه ۸.۲ یا بالاتر (تا قبل از ۹.۰).
  • "monolog/monolog": "~2.0": یعنی آخرین نسخه از سری ۲.

⚠️ نکته مهم:

فایل composer.lock را هرگز حذف نکن و آن را در Git کامیت کن. این فایل تضمین می‌کند که همه اعضای تیم دقیقاً از همان نسخه‌هایی استفاده کنند که تو تست کرده‌ای.


❌ خطاهای رایج در Composer

  • فراموش کردن dump-autoload: اگر namespace جدیدی اضافه کردی و کار نکرد، دستور composer dump-autoload را اجرا کن.
  • تغییر دستی پوشه vendor: هرگز فایل‌های داخل پوشه vendor را دستی تغییر نده. همیشه از طریق composer اقدام کن.

🏁 جمع‌بندی درس چهارم

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

  • ✅ نحوه ایجاد و پیکربندی فایل composer.json.
  • ✅ نصب و به‌روزرسانی پکیج‌های خارجی.
  • ✅ پیاده‌سازی استاندارد Autoloading PSR-4.
  • ✅ اهمیت فایل lock و مدیریت نسخه‌ها.

🎓 تمرین عملی درس چهارم

یک پروژه جدید بساز، پکیج vlucas/phpdotenv را نصب کن و سعی کن متغیرهای محیطی (.env) را در پروژه‌ات لود کنی.


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

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

درس عنوان درس آنچه یاد می‌گیرید
۱ اصول SOLID در PHP تک‌مسئولیتی، باز/بسته، جایگزینی لیسکوف، جداسازی رابط، وارونگی وابستگی
۲ الگوهای طراحی (Design Patterns) Singleton, Factory, Strategy, Observer, MVC پیشرفته
۳ برنامه‌نویسی تابعی در PHP توابع ناشناس (Closures)، Arrow Functions، Map/Filter/Reduce
۴ مدیریت وابستگی با Composer نصب پکیج‌ها، مدیریت نسخه‌ها، Autoloading (PSR-4)
۵ تست‌نویسی حرفه‌ای (TDD) آشنایی با PHPUnit، نوشتن Unit Test، Mocking
۶ کار با Redis و Caching کش کردن داده‌ها، Session Handler با Redis
۷ پردازش‌های پس‌زمینه (Queue & Jobs) استفاده از صف‌ها برای ایمیل‌زنی یا پردازش سنگین
۸ API نویسی حرفه‌ای (RESTful) استانداردهای REST، احراز هویت با JWT، Rate Limiting
۹ امنیت سایبری پیشرفته تحلیل حملات پیچیده، Secure Headers، CSP
۱۰ پروژه نهایی پیشرفته ساخت یک CMS ماژولار با قابلیت نصب پلاگین و تم

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

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

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

⚠️

هشدار مهم!

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

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