PHP හි OOP හි වර්ග ස්වයංක්රීයව පූරණය කිරීම

ඔබ දැනටමත් දන්නා පරිදි, යම් වර්ගයක් භාවිතා කිරීමට, අපි එය require හරහා සම්බන්ධ කළ යුතුය. ව්‍යාපෘතියක ඉතා වැඩි වර්ග ගණනක් ඇති විට, ලිවීමට ඉතා අපහසු හා පාලනය කිරීමට අපහසු බොහෝ සම්බන්ධතා ඇති වේ.

එවැනි ගැටළුවක් විසඳීම සඳහා PHP හි වර්ග ස්වයංක්රීයව පූරණය කිරීම එකතු කරන ලදී. ස්වයංක්රීයව පූරණය කිරීම PHP වලට කේතය තුළ එම වර්ගයට ප්‍රවේශ වීමට උත්සාහ කරන විට වර්ගය අඩංගු ගොනුව ස්වයංක්රීයව පූරණය කිරීමට ඉඩ සලසයි. කෙසේ වෙතත්, සරලවම වර්ග පූරණය වන්නේ නැත - ඒවා වෙබ් අඩවියේ ෆෝල්ඩර තුළ විශේෂ ආකාරයකින් තැබිය යුතු අතර, යම් එකක් අනුගමනය කරමින් ගොනු නම් සහ වර්ග ෆෝල්ඩර නම් කිරීමේ රීතියක්. PHP හි අන්තර්ගත රීතිය භාවිතා කළ හැකිය, නැතහොත් ඔබේම එකක් සොයා ගෙන එය භාවිතා කරන්න.

පළමුව PHP හි සම්මත රීතිය සලකා බලමු. මෙම රීතිය පවතින්නේ අප සතුව වර්ගයක් අඩංගු යම් ගොනුවක් තිබේ නම්, වෙබ් අඩවියේ ෆෝල්ඩර ඔස්සේ එම ගොනුවට යන පාඨමාලාව ගොනුවේ නම් අවකාශය සමඟ නොගැලපිය යුතු අතර, ගොනුවේ නම එහි ගබඩා කර ඇති වර්ගයේ නම සමඟ නොගැලපිය යුතුය. මෙම අවස්ථාවේදී ෆෝල්ඩර නම් සහ ගොනු නම පහළ අකුරු වලින් විය යුතුය.

උදාහරණයක් සලකා බලමු. අප සතුව ඇතැයි සිතමු පහත වර්ගය:

/core/admin/pagecontroller.php<?php
  namespace Core\Admin;
  
  class PageController
  {
    
  }
?>

රීතියට අනුව මෙම වර්ගය පිහිටිය යුතුය /core/admin/ ෆෝල්ඩරයේ pagecontroller.php ගොනුවේ.

දැන් index.php ගොනුවේ අපගේ වර්ගය භාවිතා කරමු, require හරහා සම්බන්ධ නොකර, ස්වයංක්රීයව පූරණය කිරීම භාවිතා කරමින්. මෙම සඳහා ආරම්භයේදී, වර්ග ඇමතෙන ගොනුවේ, spl_autoload_register ශ්‍රිතය ක්‍රියාත්මක කළ යුතුය. අපි එය කරමු:

index.php<?php
  spl_autoload_register(); // ස්වයංක්රීයව පූරණය කිරීම සක්‍රිය කරන්න
  
  $obj = new Core\Admin\PageController; // නිර්භීතව වස්තුව සාදන්න
?>
Задание 1

index.php ගොනුවේ ස්වයංක්රීය වර්ග පූරණය කිරීම සක්‍රිය කරන්න. ෆෝල්ඩර සහ ගොනු නම් කිරීමේ රීතිය අනුගමනය කරමින් Core\User වර්ගය, Core\Admin\Controller වර්ගය සහ Project\User\Data වර්ගය සාදන්න. index.php ගොනුවේ මෙම වර්ගවල වස්තු සාදන්න.