روش Classmap در autoload composer

13 خرداد 1398, خواندن در 2 دقیقه

همان طور که می دانید کامپوزر (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 در دسترس خواهد بود و می توانیم از آن استفاده کنیم .

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
پشتیبانی راکت @roocketir
باور ما اینست که کاربران ایرانی لایق بهترین‌ها هستند، از این رو ما تمام تلاش خود را می‌کنیم تا بتوانیم فیلم‌ها و مقالات آموزشی بروز و کاربردی را در اخ...
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو