صفحه اصلی / آموزش برنامه نویسی php / آموزش شی گرایی در PHP

آموزش شی گرایی در PHP

آشنایی با مفهوم auto loading در PHP

مفهوم autoloading یکی از موارد بسیار مهم و کاربردی در PHP می باشد. همواره برای اینکه بتوانیم از یک فایل یا یک کلاس PHP در فایل ها یا کلاس های دیگر استفاده نماییم، می باید محل آن فایل را با دستور include یا require به بالای فایل خود اضافه کنیم.

این امر وقتی برنامه کوچک است و تعداد بخش ها و فایل های آن زیاد نیست، مهم نمی باشد. اما هنگامی که برنامه کمی بزرگ می شود و تعداد بخش های آن افزایش می یابد، این امر بسیار مشکل شده و هر بار می باید تعداد زیادی فایل را قبل از استفاده، include نماییم.

زمانی که تعداد فایل ها افزایش می یابد، مدیریت این کار فوق العاده سخت و پیچیده خواهد شد. در واقع ما باید تمام فایل ها لود کنیم در حالی که فقط به بخشی از آن ها نیاز داریم. در ابتدا برای مدیریت این کار از متد جادویی autoload برای کلاس ها استفاده می شد.

در PHP7 و در SPL یا همان Standard PHP Library تابعی با نام  spl_autoload_register معرفی شد. در واقع PHP در صورتی که فایل یا کلاسی را در برنامه ببیند که در ابتدای برنامه تعریف نشده، آن را به این تابع ارجاع می دهد تا این تابع به صورت خودکار، فایل یا کلاس مورد نظر را پیدا کرده و به برنامه اضافه کند.

به این عمل اصطلاحا autoloading گفته می شود. مزیت استفاده از این روش این می باشد که هم استفاده از فضای حافظه کمتر خواهد شد و هم باعث افزایش سرعت پردازش برنامه می گردد.

برای انجام auto loading و استفاده از تابع  spl_autoload_register ، شما می باید یک ساختار مشخص برای فایل ها یا کلاس های خود مشخص کنید، تا هنگام ارجاع شدن یک فایل یا کلاس ناشناخته، کلاس autoloading  شما بتواند ساختار آن را درست کرده و به برنامه شما اضافه کند.

به عنوان مثال، شما در کلیه کلاس های خود را در یک دایرکتوری می گذارید. همچنین اول اسم کلیه کلاس ها را با -class نام گذاری می کنید.

حال فقط لازم است کلاس autoloader را خود را در هدر صفحات یا تابعی به نام init.php اضافه کنید. پس از آن دیگر نیاز به اضافه کردن فایل ها و کلاس های خود برای شناخته به برنامه ندارید و کلاس autoloader شما به راحتی به صورت خودکار این کار را برای شما انجام خواهد داد.

کد زیر، یک نمونه از کلاس autoloader می باشد. البته در نظر بگیرید که پس از تعریف این کلاس، کلیه کلاس های شما باید با نام -class آغاز گردد تا کلاس autoloader شما بتواند آن ها را به صورت اتوماتیک به برنامه در حال اجرای  شما اضافه نماید.

البته روش های دیگری مثل استفاده از composer با استفاده از PSR-0 و PSR-4 وجود دارد که در این مقاله نمی گنجد. حتما در بخش بعدی این مقاله یک مثال عملی و واقعی از این مورد، ارائه خواهد شد.


منبع مطلب

این مطالب را نیز ببینید!

پاک کردن منو افزایش فروش بعد از آپدیت ووکامرس فارسی

پاک کردن منو افزایش فروش بعد از آپدیت ووکامرس فارسی

فکر می کنم اولین سوالی که هر کس از خود می پرسد، این می باشد …

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *