لود خودکار کلاس‌ها در PHP (قسمت یکم)

در این مقاله می‌خواهیم اصول اولیه لودینگ در PHP و نحوه لود خودکار کلاس‌ها به وسیله کامپوزر را مورد بحث قرار دهیم. همچنین توضیح خواهیم داد که چرا لود خودکار اهمیت دارد و نحوه استفاده از کامپوزر برای این کار را به صورت گام به گام به شما نشان می‌دهیم. در آخر هم به تفاوت بین انواع مختلف لود خودکار در کامپوزر خواهیم پرداخت.


چرا به Autoloading نیاز داریم؟

هنگام ایجاد برنامه‌های PHP ممکن است لازم باشد از کتابخانه‌های شخص ثالث استفاده کنید. همانطور که می‌دانید، اگر بخواهید از این کتابخانه‌ها در برنامه خود کمک بگیرید، باید آنها را با استفاده از عبارت require یا include در فایل منبع برنامه قرار دهید.

مادامی که در حال توسعه برنامه‌های کوچک هستید، استفاده از این عبارات کفایت می‌کند. اما هرچقدر که برنامه شما رشد کرده و بزرگتر می‌شود، لیست عبارات require و include طولانی‌تر می‌گردد که نگهداری آن‌ها کمی آزاردهنده و دشوار است. مشکل دیگر این روش آن است که شما کل کتابخانه‌ها را در برنامه خود بارگذاری می‌کنید، از جمله قسمت‌هایی که حتی قصد استفاده از آنها را هم ندارید. این باعث می‌شود حافظه برنامه شما سنگین‌تر شود.


راه حل چیست؟

برای غلبه بر این مشکل، راه حل ایده‌آل آن است که کلاس‌ها را تنها در مواقعی که واقعا مورد نیاز هستند بارگیری کنیم. در اینجاست که autoloading وارد عمل می‌شود. اساسا هنگامی که از کتابخانه‌ای در برنامه خود استفاده می‌کنید، لود خودکار بررسی می‌کند که آیا قبلا بارگیری شده است، در غیر این صورت کلاس مورد نیاز را در حافظه لود می‌کند. بنابراین کلاس در مکان مورد نیاز بارگذاری می‌شود - به این کار autoloading می‌گویند. هنگامی که از لود خودکار استفاده می‌کنید، نیازی نیست همه فایل‌های کتابخانه را به صورت دستی وارد نمایید. شما فقط باید فایل autoloader را که حاوی منطق بارگذاری خودکار است وارد کنید و کلاس‌های لازم به صورت داینامیک گنجانده می‌شوند.


مشاهده ادامه در لینک زیر:

https://dejavan.ir


سخن پایانی

این بود یکی دیگر از مقالات php در صورت داشتن سوال یا نظر اون رو با من در میان بزارید.

من امیر جوان میر هستم گرافیست و توسعه دهنده وب از سال 1390

instagram: https://www.instagram.com/amir.javanmir/

تمامی حقوق این مطلب متعلق به سایت دیزاینر جوان می باشد هرگونه استفاده از این مطلب با ذکر منبع آن بلامانع است.

website: https://dejavan.ir
instagram: https://instagram.com/designer.javan
twitter: https://twitter.com/designer_javan
Telegram: https://t.me/designer_javan


سایر مطالب

https://virgool.io/phpArticles