روش Classmap در autoload composer

گردآوری و تالیف : مجله آموزشی راکت
تاریخ انتشار : 14 دی 1396
دسته بندی ها : پی اچ پی

همان طور که می دانید کامپوزر (composer) ابزاری است که فرایند مدیریت Dependency ها را برای ما تسهیل می کند. به طور خلاصه، کامپوزر(composer)  یک ابزار Command Line است که در آن با استفاده از یکسری دستورات از پیش تعریف شده، می‌توان به مدیریت منابع خارجی برای استفاده در پروژه خود پرداخت.

اگر شما از کامپوزر استفاده نکنید باید فایل های مربوط به کلاس یا کتابخانه مد نظر خود را به صورت دستی که زمان بر و خسته کننده است را به پروژه و ریشه سایت خود بیفزایید.

برای فراخوانی کلاس ها و استفاده از autoload و اضافه نمودن کلاس توسط composer در پروژه روش های مختلفی وجود دارد که در این مقاله به یکی از روش های autoload در کامپوزر به نام Classmap می پردازیم.

روش Classmap  از روش های فراخوانی لود فایل ها و اسناد در پروژه است که توسط composer   صورت می پذیرد . در این روش دیگر لازم نیست تک تک فایل های مورد نیاز را به composer معرفی کنید تا آنها را autoload کند و فقط کافی است دایرکتوری مورد نظر آن را به composer معرفی کنید تا تمام کلاس های داخل آن دایرکتوری را autoload کند .

به عنوان مثال

ابتدا داخل روت پروژه تان یک فولدر به نام aldemo ایجاد کنید .

سپس داخل این فولدر , فولدر دیگری به نام Model ایجاد می کنیم.

حالا داخل فولدر Model یک کلاس به نام User ایجاد می کنیم و یک متد getName برای آن ساخته که می خواهیم این متد را در فایل index.php که در روت پروژه میسازیم اجرا نماییم.

class User
{
	public function getName()
	{
		$name='Hesam';
		return $name;
	}
}

حالا به سراغ فایل composer.json می رویم و تعیین می کنیم که نوعی از Autoloading را لازم داریم به نام classmap   و آدرس پوشه ای که کلاسهایمان داخل آن قرار دارند را می دهیم :

{
    "autoload": {
        "files": ["aldemo/mylibrary/functions.php" ,"aldemo/mylibrary/helper.php"],
          "classmap": ["aldemo/Model"]
    }
}

حالا توبت به آپدیت کردن composer  می رسد پس لازم است دستور composer dump را در ترمینال خود وارد کنید .

در آخر به سراغ فایل index.php که در روت ساختیم بروید و کدهای زیر را در آن قرار دهید و از کلاس User به راحتی استفاده کنید .

 require 'vendor/autoload.php';
 $user=new User();
 echo $user->getname();​

از این پس هر کلاسی که داخل فولدر Model ایجاد کنیم و بعدش composer dump یا composer dumpautoload  را بزنیم , کلاس مورد نظر در فایل index.php در دسترس خواهد بود و می توانیم از آن استفاده کنیم .

مقالات پیشنهادی

آیکون های فروشگاهی و بازاریابی

در این پست لذت بخش من میخوام به شما یک مجموعه از آیکون های زیبا و ضررویه بازاریابی و فروشگاهی رو معرفی کنم که شامل +100 آیکون Swificons با 3 نوع مختلف...

Composer ، ابزار مدیریت پکیچ ها و پلاگین ها در PHP

اگر قبلا چیزی را با PHP نوشته باشید، به احتمال زیاد به این نتیجه رسیده اید که هر موقع می خواهید کارهای معمول و تکراری مثل احراز هویت کاربر، مدیریت دیت...

20 مجموعه آیکون فروشگاهی

در حال جستجو برای دانلود آیکون های کسب و کار آنلاین خودتان هستید ؟ من در این پست 20 مجموعه از آیکون های مورد نیاز شما را قرار دادم ، که احتمالا شما می...

Elton - کیت UI فروشگاهی

یک مجموعه رایگان UI که به شما کمک میکند وبسایت های فروشگاهی زیبایی طراحی کنید . نام این مجموعه Elton است . این مجموعه شامل بخش ها زیادیست ، که شما به...