Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🔴 Advanced  ·  Lesson 22

Autoloading Classes

Autoloading क्यों

असली project में दर्जनों class files हो सकती हैं। हर एक के लिए require line लिखना थकाऊ है और गलती आसान। Autoloading PHP को class file अपने-आप ढूँढने और include करने देता है जब आप वो class पहली बार इस्तेमाल करें — तो loading logic एक बार लिखिए, हर file के लिए नहीं।

💡 Autoloading require पूरी तरह नहीं हटाता — autoloader एक बार require कीजिए, फिर classes खुद load होती हैं।

पुराना तरीका: कई requires

Autoloading बिना, हर file हाथ से include करनी पड़ती है:

<?php
  require "User.php";
  require "Product.php";
  require "Order.php";
  // ... और हर class के लिए ऐसे ही
?>

यह जल्दी बेकाबू हो जाता है, और एक line भूलने से "class not found" error आती है। Autoloading बिल्कुल यही हल करता है।

spl_autoload_register

एक function register कीजिए जो class नाम को file path में बदलकर include करे।

<?php
  spl_autoload_register(function ($class) {
      require __DIR__ . "/classes/" . $class . ".php";
  });

  // User के लिए require नहीं चाहिए — अपने-आप load:
  $u = new User();
?>

अब जब PHP पहली बार new User() देखती है, वो आपका function call करती है, जो classes/User.php include करता है। folder में और classes जोड़िए, वो बस चल जाती हैं।

Composer autoload (PSR-4)

आधुनिक PHP में Composer PSR-4 standard से autoloading संभालता है। composer.json में:

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

composer dump-autoload चलाने के बाद, autoloader एक बार include कीजिए:

<?php
  require "vendor/autoload.php";
  use App\Models\User;

  $u = new User();   // src/Models/User.php से अपने-आप load
?>

PSR-4 App\ namespace को src/ folder से map करता है, तो App\Models\User src/Models/User.php पर मिलती है — कोई manual require नहीं।

आम गलतियाँ

  • File नाम class नाम से न मिलना। Autoloader path class नाम से बनाता है — वे बिल्कुल मेल खाने चाहिए, case समेत।
  • Path में गलत folder। अगर class autoloader की उम्मीद से अलग folder में हो, वो नहीं मिलेगी।
  • composer dump-autoload भूलना। नई namespaced classes जोड़ने के बाद autoloader दोबारा generate कीजिए।
  • Namespace PSR-4 mapping से न मिलना। Namespace prefix mapped folder से मेल खाना चाहिए।

सारांश

  • Autoloading class files पहली बार इस्तेमाल पर अपने-आप load करती है।
  • यह कई require lines को एक setup से बदल देती है।
  • spl_autoload_register Composer बिना built-in तरीका है।
  • Composer + PSR-4 namespace को folder से map करके सब autoload करता है।
  • Class नाम और file नाम (और namespace व folder) मेल खाने चाहिए।

आगे, classes व्यवस्थित कीजिए namespaces से, या पूरा app structure कीजिए MVC pattern से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

PHP में autoloading क्या है?
Autoloading का मतलब PHP class file को अपने-आप तब load करती है जब आप class पहली बार इस्तेमाल करते हैं, तो हर file के लिए require line लिखने की ज़रूरत नहीं। यह बड़े projects को साफ़ और आसान रखता है।
spl_autoload_register क्या करता है?
यह एक function register करता है जिसे PHP तब call करती है जब आप कोई ऐसी class इस्तेमाल करें जो अभी load नहीं हुई। आपका function class नाम से file path निकालकर उसे include करता है। Composer बिना autoload करने का यह built-in तरीका है।
Composer autoload क्या है?
Composer PHP का package manager है। यह PSR-4 standard के आधार पर आपके लिए autoloader बना देता है। बस एक बार require "vendor/autoload.php"; जोड़िए, और आपकी सारी classes व install की libraries अपने-आप load हो जाती हैं।
PSR-4 क्या है?
PSR-4 एक standard है जो namespace को folder से map करता है — जैसे App\ को src/ folder से। इसका पालन Composer को किसी class file को उसके namespaced नाम से अपने-आप ढूँढने देता है।
क्या autoloading के साथ भी require चाहिए?
autoloader खुद को एक बार require करना पड़ता है (या तो आपका spl_autoload_register setup या vendor/autoload.php)। उसके बाद अलग-अलग class files खुद load होती हैं — per-class require नहीं।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicTraits आपकी प्रगति: 22 / 50 (44%) · Lesson 23 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें