روش Classmap در autoload composer
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 2 دقیقه

روش Classmap در autoload composer

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

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
5 از 1 رای

/@roocketir

باور ما اینست که کاربران ایرانی لایق بهترین‌ها هستند، از این رو ما تمام تلاش خود را می‌کنیم تا بتوانیم فیلم‌ها و مقالات آموزشی بروز و کاربردی را در اختیارتان قرار دهیم تا با استفاده از آنها بتوانید جزء بهترین‌ها در صنعت طراحی و برنامه‌نویسی وب شوید. ما ادعا نمی‌کنیم که بهترین هستیم ولی همیشه تمام تلاش خود را می‌کنیم بهترین عملکرد را به شما ارائه دهیم.

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

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

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

پشتیبانی راکت