🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمد خضرپور
Autoload
جامعه پی اچ پی ایجاد شده در ۲۹ تیر ۱۴۰۰

ما در روش oop که یک فایل autoloadبرای خودمون میسازیم و در حین حال وقتی پکیج‌ها رو نصب میکنیم در پوشه vendor یک اتولود هست چطوری این رو حل کنیم باید همیشه هر دوتا رو در هر فایل قرارا بدیم یا راه دیگه ای هست؟

 

سلام و احترام

شما وقتی از composer استفاده میکنید دیگه لازم نیست autoload خودتون رو داشته باشید، از همون autoload کامپوزر استفاده کنید تا تداخلی داخل پروژتون نداشته باشید

امیر صالحی ۳۰ تیر ۱۴۰۰، ۰۹:۱۰

سلام.

خب همونطور که پاسخ داده شد در پست قبلی، برای استفاده از autoload کامپوزر میتونید داخل فایل composer.json مسیر فایل کلاس هاتون رو مشخص کنید، بعنوان مثال:

"autoload": {
    "classmap": ["lib"]
}

در اینجا آدرس فولدرو دادم که شما میتونید حتی فایل هارو هم مشخص کنید در قسمت files.
بعد سیو فایل composer.json کامند زیر را اجرا کنید:

composer dump-autoload

اما اگر میخواهید autoload جدایی داشته باشید و با کامپوزر conflict نکنه میتونی از file_exits استفاده کنی:

spl_autoload_register(function ($className) {
    if (file_exists("lib/$className.php")) {
        include "lib/$className.php";
    }
});
محسن موحد ۳۱ تیر ۱۴۰۰، ۰۷:۳۸