ما در روش 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";
}
});