آموزش Classmap Based Autoloading در php

  • خانه
  • آموزش Classmap Based Autoloading در php
Image تحقیقات

آموزش Classmap Based Autoloading در php

با سلام و احترام

در ادامه ی مقالات مربوط به composer و Autoloading , امروز میخواهیم درباره نوع دیگری از autoload در composer به نام Classmap  در php صحبت کنیم.

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

بیایید باهم مثال را کامل کنیم :

  1. ابتدا داخل روت پروژتون یک فولدر به نام aldemo ایجاد کنید .
  2. سپس داخل این فولدر , فولدر دیگری به نام Model ایجاد می کنیم.
  3. حالا داخل فولدر Model یک کلاس به نام User ایجاد می کنیم و یک متد getName برای آن ساخته که می خواهیم این متد را در فایل index.php که در روت پروژه میسازیم اجرا نماییم.
<?php

class User
{
	public function getName()
	{
		$name='Alihossein';
		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 به راحتی استفاده کنید .

 

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

دانلود فایل های این جلسه

خب مقاله امروز هم به پایان رسید.خوشحال میشم مثل همیشه نظراتتون رو اعلام کنید.