¸ñÂ÷
Zend_Loader Ŭ·¡½º´Â, ÆÄÀÏÀ» µ¿ÀûÀ¸·Î ÀоîµéÀ̱â À§ÇÑ ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù.
![]() |
Zend_Loader ´ë require_once() |
---|---|
|
Á¤Àû ¸Þ¼Òµå Zend_Loader::loadFile()
(Àº)´Â,PHP ÆÄÀÏÀ» ÀоîµéÀÔ´Ï´Ù.
ÀÐÈ÷´Â ÆÄÀÏ¿¡´Â ÀÓÀÇÀÇ PHP Äڵ带 Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â PHP ÇÔ¼ö
include()
ÀÇ ·¡ÆÛ·Î, ½ÇÆÐÇßÀ» °æ¿ì (¿¹¸¦ µé¾î ÁöÁ¤ÇÑ ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â µî)
¿¡´Â Zend_Exception
(À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
Àμö $filename
¿¡´Â ÀоîµéÀÌ´Â ÆÄÀϸíÀ» ÁöÁ¤ÇÕ´Ï´Ù.
¿©±â¿¡´Â ÆÐ½º Á¤º¸¸¦ Æ÷ÇÔÇØ¼´Â ¾ÈµË´Ï´Ù.$filename
¿¡ ´ëÇØ¼´Â ½ÃÅ¥·¯Æ¼ üũ¸¦ ÇÕ´Ï´Ù.
$filename
¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â °ÍÀº ¿µ¼ýÀÚ, µ¥½¬ ("-"),
¾ð´õ ½ºÄÚ¾Æ ("_") ȤÀº ÇǸ®¿Àµå (".") »ÓÀÔ´Ï´Ù.
Àμö $dirs
¿¡´Â ±×·¯ÇÑ Á¦ÇÑÀº ¾ø½À´Ï´Ù.
Àμö $dirs
¿¡´Â ÆÄÀÏÀ» ã´Â µð·ºÅ丮¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
NULL
ÀÇ °æ¿ì´Â include_path
¾ÈÀÇ ºÁ¸¦ ´ë»óÀ¸·Î ÇÕ´Ï´Ù.
¹®ÀÚ¿ ȤÀº ¹è¿À» ÁöÁ¤Çϸé, ÁöÁ¤µÈ µð·ºÅ丮¸¦ ¿ì¼± ãÀº ´ÙÀ½¿¡,
±×¸®°í include_path
(À»)¸¦ ã½À´Ï´Ù.
Àμö $once
(Àº)´Â ³í¸®Ä¡ÀÔ´Ï´Ù.TRUE
(À»)¸¦ ÁöÁ¤Çϸé,
Zend_Loader::loadFile()
ÇÏ PHP ÀÇ ÇÔ¼ö
include_once()
±×¸®°í ÆÄÀÏÀ» ÀоîµéÀÔ´Ï´Ù.±× ÀÌ¿ÜÀÇ °æ¿ì´Â
include()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
Á¤Àû ¸Þ¼Òµå Zend_Loader::loadClass($class, $dirs)
(Àº)´Â,PHP ÆÄÀÏÀ» Àоîµé¿© Ŭ·¡½º°¡ Á¸ÀçÇÒÁö¸¦ È®ÀÎÇÕ´Ï´Ù.
·Ê 21.2. loadClass() ¸Þ¼ÒµåÀÇ ¿¹
<?php
Zend_Loader::loadClass('Container_Tree',
array(
'/home/production/mylib',
'/home/production/myapp'
)
);
Ŭ·¡½º¸¦ ÁöÁ¤ÇÏ´Â ¹®ÀÚ¿Àº, ¾ð´õ ½ºÄھƸ¦ ÆÐ½º ´Ü¶ô ¹®ÀÚ·Î º¯È¯ÇØ, ¸¶Áö¸·¿¡ '.php' (À»)¸¦ Ãß°¡µË´Ï´Ù.À§ÀÇ ¿¹¿¡¼´Â, 'Container_Tree' ÇÏ 'Container/Tree.php' µË´Ï´Ù.
$dirs
¿¡ ¹®ÀÚ¿ ȤÀº ¹è¿À» ÁöÁ¤Çϸé,
Zend_Loader::loadClass()
(Àº)´Â ÁöÁ¤ÇÑ ¼ø¼¿¡ ±× µð·ºÅ丮¸¦ ã½À´Ï´Ù.
±×¸®°í ÃÖÃÊ·Î ¹ß°ßµÈ ÆÄÀÏÀ» ÀоîµéÀÔ´Ï´Ù.
µð·ºÅ丮 $dirs
¿¡ ÆÄÀÏÀÌ ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì´Â,
PHP ÀÇ include_path
±×¸®°í ÁöÁ¤µÈ Àå¼Ò¸¦ ã½À´Ï´Ù.
ÆÄÀÏÀÌ ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì, ȤÀº ÀоîµéÀÎ ÆÄÀÏ¿¡ Ŭ·¡½º°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â
Zend_Loader::loadClass()
ÇÏ Zend_Exception
(À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
ÆÄÀÏÀÇ Àб⿡´Â Zend_Loader::loadFile()
(À»)¸¦ »ç¿ëÇϹǷÎ,
Ŭ·¡½º¸íÀ¸·Î¼ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº
¿µ¼ýÀÚ¿Í ÇÏÀÌÇ ('-'), ¾ð´õ ½ºÄÚ¾Æ ('_') ±×¸®°í ÇǸ®¿Àµå ('.') »ÓÀÔ´Ï´Ù.
Á¤Àû ¸Þ¼Òµå Zend_Loader::isReadable($pathname)
(Àº)´Â, ÁöÁ¤ÇÑ Àå¼Ò¿¡ ÆÄÀÏÀÌ Á¸ÀçÇØ Àоîµé¿© °¡´ÉÇÑ °æ¿ì¿¡
TRUE
, ±× ÀÌ¿ÜÀÇ °æ¿ì¿¡ FALSE
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
·Ê 21.3. isReadable() ¸Þ¼ÒµåÀÇ ¿¹
<?php
if (Zend_Loader::isReadable($filename)) {
// $filename ±×¸®°í ¹«¾ùÀΰ¡¸¦ ÇÕ´Ï´Ù
}
Àμö $filename
±×¸®°í, Á¶»çÇÏ°í ½ÍÀº ÆÄÀϸíÀ» ÁöÁ¤ÇÕ´Ï´Ù.
¿©±â¿¡´Â ÆÐ½º Á¤º¸¸¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â,PHP ÀÇ ÇÔ¼ö
is_readable()
ÀÇ ·¡ÆÛÀÔ´Ï´Ù.ÀÌ ÇÔ¼ö´Â include_path
(À»)¸¦ ãÁö ¾Ê½À´Ï´Ù¸¸,Zend_Loader::isReadable()
ÇÏ include_path
µµ °Ë»ö ´ë»óÀ¸·Î Æ÷ÇÔÇÕ´Ï´Ù.
Zend_Loader
Ŭ·¡½º¿¡´Â,PHP ÀÇ SPL
ÀÚµ¿ ·Î´õ¿¡ µî·ÏÇϱâ À§ÇÑ ¸Þ¼Òµå°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.±× ÄÝ¹é ¸Þ¼Òµå°¡
Zend_Loader::autoload()
ÀÔ´Ï´Ù.Æí¸®¼ºÀ» °í·ÁÇϰí,
Zend_Loader
±×·³ registerAutoload()
ÇÔ¼ö¸¦ Á¦°øÇϰí ÀÖ½À´Ï´Ù.
ÀÌ ÇÔ¼ö´Â,autoload()
¸Þ¼Òµå¸¦ µî·ÏÇÏ´Â °ÍÀÔ´Ï´Ù.
spl_autoload
È®Àå ¸ðµâÀ» »ç¿ëÇÒ ¼ö ¾ø´Â ȯ°æÀÇ °æ¿ì´Â,
registerAutoload()
¸Þ¼Òµå´Â Zend_Exception
(À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
Zend Framework ÀÇ autoload ÄݹéÀ» µî·ÏÇϸé,
¸í½ÃÀûÀ¸·Î ÀоîµéÀÌÁö ¾Ê¾Æµµ Zend Framework ÀÇ Å¬·¡½º¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
autoload()
¸Þ¼Òµå´Â, Ŭ·¡½º¸¦ ÂüÁ¶ÇÒ ¶§¿¡ ÀÚµ¿ÀûÀ¸·Î
Zend_Loader::loadClass()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
Zend_Loader
Ŭ·¡½º¸¦ °è½ÂÇßÀ» °æ¿ì´Â,registerAutoload()
¿¡ Àμö¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.ÀÌ Àμö·Î, ¾î´À Ŭ·¡½º·ÎºÎÅÍ
autoload()
¸Þ¼Òµå¸¦ µî·ÏÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
·Ê 21.5. autoload ÄÝ¹é ¸Þ¼Òµå¸¦ °è½Â Ŭ·¡½º·ÎºÎÅÍ µî·ÏÇÏ´Â ¿¹
PHP ¿¡ ÀÖ¾î¼ÀÇ Á¤Àû ÇÔ¼öÀÇ ÂüÁ¶ÀÇ ¹æ¹ý»ó,
loadClass()
(¿Í)°ú autoload()
ÀÇ ¾çÂÊ ¸ðµÎÀÇ Äڵ带 ½ÇÀåÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
±×¸®°í,autoload()
±×·³
self::loadClass()
(À»)¸¦ ÄÝ ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
ÀÛ¼ºÇÑ´Ù autoload()
¸Þ¼Òµå°¡ ģŬ·¡½º¿¡
self::loadClass()
ÀÇ Ã³¸®¸¦ ¸Ã±ä´Ù¸é,
¼ºê Ŭ·¡½ºÀÇ ¸Þ¼Òµå´Â ¾Æ´Ï°í ģŬ·¡½ºÃøÀÇ µ¿¸íÀÇ ¸Þ¼Òµå¸¦ ÄÝ ÇÕ´Ï´Ù.
<?php
class My_Loader extends Zend_Loader
{
public static function loadClass($class, $dirs = null)
{
parent::loadClass($class, $dirs);
}
public static function autoload($class)
{
try {
self::loadClass($class);
return $class;
} catch (Exception $e) {
return false;
}
}
}
Zend_Loader::registerAutoload('My_Loader');
autoload ÄݹéÀ» »èÁ¦ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
registerAutoload()
¿¡´Â ¿É¼ÇÀ¸·Î 2 ¹øÂ°ÀÇ Àμö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ¾î
µðÆúÆ®¿¡¼´Â true
ÇÏÁö¸¸ ¼³Á¤µÇ°Ô µÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ Àμö¸¦ false
(À¸)·Î Çϸé,
ÁöÁ¤ÇÑ ÄݹéÀÌ SPL ÀÇ autoload ½ºÅÃÀ¸·ÎºÎÅÍ »èÁ¦µË´Ï´Ù.