PHP spl_autoload_register() Example : Classes Autoloading In PHP

Other Blogs

Blogs ❯❯ PHP

Image could not load

Classes Autoloading In PHP

Autoloading in PHP

PHP में auto-loading एक ऐसी technique है जो आपको classes और objects को automatically load करने में help करती है जब उनका पहली बार use किया जाता है। इसका मतलब है कि आपको manually require या include statements लिखने की need नहीं होती।

PHP में auto-loading ने coding process को बहुत ही आसान और organized बनाया है, खासकर जब आप large-scale applications develop कर रहे होते हैं।

What is auto loading in PHP ?

Autoloading का basic concept यह है कि जब भी आप किसी class का नाम use करते हैं जो अब तक load नहीं हुई है, PHP automatically उस class file को locate करने कि कोशिश करता है और उसको load करता है। इससे आपको manually classes को include करने कि need नहीं होती।

PHP के built-in functions जैसे spl_autoload_register() इसमें काफी helpful होते हैं।

Advantages of Auto Loading

  • Automatic Loading : आपको हर class के लिए require या include statements लिखने कि need नहीं होती।

  • Clean Code : Autoloading आपके code को clean और maintainable बनाता है, specially large projects में।

  • Performance Optimization : सिर्फ वही files load होती हैं जो actually use हो रही हैं, इससे performance better होता है।

  • PSR-4 Standard Support : PHP Frameworks जैसे Laravel PSR-4 autoloading standard को follow करते हैं जो autoloading को even more powerful बनाता है।

PHP spl_autoload_register() example

चलिए सबसे पहले एक basic example देखते हैं कि autoloading PHP में कैसे काम करता है।

Suppose आपके पास दो classes हैं : User और Product. Normally, आपको इन classes को use करने से पहले उनको include करना पड़ता।

// Traditional way without autoloading require 'User.php'; require 'Product.php'; $user = new User(); $product = new Product();

लेकिन auto loading के साथ, आपको manually include करने कि need नहीं है , आप spl_autoload_register() function का use कर सकते हैं।

// Autoloading with spl_autoload_register spl_autoload_register(function($className) { include $className . '.php'; }); $user = new User(); $product = new Product();
Explanation
  • spl_autoload_register() एक anonymous function को register करता है जो automatically उन classes कि files को include करता है जब उनका pehli बार use होता है।

  • इस example में, User.php और Product.php files automatically load हो जाएँगी जब User और Product classes का instance create होगा।

PHP auto loading with folder structure

Autoloading काफी useful होता है जब आपके पास complex folder structure हो और आप चाहे कि PHP automatically correct file locate करे।

चलिए एक folder structure setup करते हैं -

/project
    /classes
        User.php
        Product.php

अब हम auto loading implement करते हैं ताकि यह folder structure में classes को automatically load करे -

spl_autoload_register(function($className) { $path = 'classes/' . $className . '.php'; if (file_exists($path)) { require $path; } }); $user = new User(); $product = new Product();
Explanation
  • example में, spl_autoload_register() function classes/ folder में class file को locate करता है और उसको include करता है अगर file exist करती है।

  • इस तरह, आपको manually हर file को include करने कि need नहीं होती, और PHP automatically class को load कर लेता है।

PHP PSR-4 Auto Loading Standard

PSR-4 एक standardized auto loading convention है जो PHP-FIG (PHP Framework Interop Group) द्वारा define कि गयी है , इसमें Namespaces और directory structures का use करके auto loading किया जाता है।

Laravel जैसे frameworks इस PSR-4 standard को follow करते हैं।

PHP PSR-4 auto loading example

Suppose आपका folder structure कुछ ऐसा है -

/src
    /Models
        User.php
        Product.php

और आप Namespaces का use कर रहे हैं -

// User.php namespace Models; class User { // Class code here } // Product.php namespace Models; class Product { // Class code here }

अब आप composer.json file में auto loading configuration add करते हैं -

{ "autoload": { "psr-4": { "Models\\": "src/Models/" } } }

Composer को update करने के लिए command run करें -

composer dump-autoload

अब आप namespaces के through classes को directly use कर सकते हैं।

require 'vendor/autoload.php'; use Models\User; use Models\Product; $user = new User(); $product = new Product();
Explanation
  • PSR-4 standard में namespaces और folder structure को sync रखा जाता है , composer.json में psr-4 configuration set करने के बाद, Composer automatically classes को correct location से auto load करता है।

Conclusion

  • PHP में auto loading ने development process को simplify कर दिया है, खासकर जब large applications और complex folder structures के साथ काम करना हो।

  • spl_autoload_register() जैसे functions और PSR-4 standard के support से, आप आसानी से अपनी classes को auto load कर सकते हैं बिना manually files को include किये।

  • Auto loading का use करके आप अपना code more organized और maintainable बना सकते हैं. अगर आप PHP frameworks जैसे Laravel का use कर रहे हैं, तो autoloading by default integrated होता है जो आपके development experience को और भी smooth बनाता है।

Must read articles -

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !