³¯Â¥: 2002-02-05 | ±Û¾´ÀÌ: µµ¾Æ | 56452 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

CGI::FastTemplate - °è¼Ó


ÇÙ½É ¸Þ¼Òµå define(HASH) ¸Þ¼Òµå define()Àº ÅÛÇø´ ÆÄÀÏÀ» À̸§(º¸Åë ªÀº À̸§)À¸·Î ¿¬°ü½ÃŲ´Ù. ¿¹:
    my $tpl = new FastTemplate();
    $tpl->define(   main   => "main.tpl",
                    footer   => "footer.tpl",
                    );
»õ·Î¿î À̸§Àº ÅÛÇø´À» ÂüÁ¶Çϴµ¥ »ç¿ëµÈ´Ù. ÆÄÀϸíÀº define() ÀÌ¿ÖÀÇ ¾î¶°ÇÑ °÷¿¡¼­µµ ³ªÅ¸³ªÁö ¾Ê¾Æ¾ß ÇÑ´Ù. (ÁÖÀÇ: ÀÌ °ÍÀº ¹Ýµå½Ã ÇÊ¿äÇÑ ÀýÂ÷ÀÌ´Ù! ÀÌ°ÍÀº À§ÀÇ ¿¹¿Í°°ÀÌ ÂªÀº ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§¿¡´Â »ó´çÈ÷ Â¥Áõ³ª´Â ÀÛ¾÷ó·³ ¿©°ÜÁú °ÍÀÌ´Ù. ±×·¯³ª ¾ÆÁÖ ¸¹Àº ¼öÀÇ ÅÛÇø´À¸·Î ÀÛ¾÷À» ÇÏ´Â °æ¿ì ÆÄÀÏÀ̸§°ú´Â µ¶¸³ÀûÀÎ À̸§À¸·Î ÅÛÇø´À» ÂüÁ¶ÇÏ´Â °ÍÀº ¾ÆÁÖ À¯¿ëÇÑ ¹æ¹ýÀÌ´Ù. ÆÁ: define()Àº »ç½Ç ÅÛÇø´À» ÀÐÁö¾ÊÀ¸¹Ç·Î Çѹø È£ÃâÇÒ ¶§ ¸ðµç ÅÛÇø´À» Á¤ÀÇÇÏ´Â °ÍÀÌ ÈξÀ È¿°úÀûÀÌ´Ù. define_nofile(HASH) º°Äª: define_raw(HASH) ¶§¶§·Î °¢°¢ÀÇ ÅÛÇø´À» º°µµÀÇ ÆÄÀÏ·Î »ý¼ºÇÏÁö¾Ê´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÒ ¶§°¡ ÀÖ´Ù. define_nofile()·Î ÀÌ °ÍÀ» ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î Ç׸ñÀ» µÎ²¨¿î ±Û¾¾·Î Ç¥ÇöÇÏ´Â »õ·Î¿î ¼Ó¼ºÀ» ¸¸µé±âÀ§ÇØ ´ÙÀ½ ¿¹Ã³·³ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
    my $tpl = new FastTemplate();

    $tpl->define_nofile(    new   => '<b>$ITEM_NAME</b> <BR>',
                            old   => '$ITEM_NAME <BR>');

    if ($new)
    {
        $tpl->parse($ITEM   => "new");
    }
    else
    {
        $tpl->parse($ITEM   => "old");
    }
¹°·Ð ÇÁ·Î±×·¡¸Ó°¡ »õ·Î¿î Ç׸ñÀ» ¾î¶»°Ô Ãâ·ÂÇÏ´ÂÁö¸¦ °»½ÅÇؾßÇÑ´Ù. ¹Ý¸é¿¡ ÀÌ °ÍÀÌ ÅÛÇø´ ³»¿¡ ÀÖ´Ù¸é ´Ù¸¥ ´©±º°¡¿¡°Ô ¸º±æ ¼öµµ ÀÖ´Ù. define_nofile(HASH REF) º°Äª: define_raw(HASH REF) ½ÇÁ¦ Çؽ¬¸¦ Àü´ÞÇÏ´Â °Íº¸´Ù Àμö¸¦ Àü´ÞÇÏ´Â È¿°úÀûÀÎ ¹æ¹ýÀº Çؽ¬ÀÇ ·¹ÆÛ·±½º¸¦ Àü´ÞÇÏ´Â °ÍÀÌ´Ù. assign(HASH) assign()´Â º¯¼öÀÇ °ªÀ» ÇÒ´çÇÑ´Ù. ÅÛÇø´¿¡ º¯¼ö¸¦ »ðÀÔÇϱâÀ§ÇØ ¹Ýµå½Ã ÇÒ´çÇØ¾ß ÇÑ´Ù. µÎ°¡Áö Çü½ÄÀÌ °¡´ÉÇÏÁö¸¸ µÎ ¹æ¹ýÀº ¸î¸î Áß¿äÇÑ Â÷ÀÌÁ¡À» °®´Â´Ù. °£´ÜÇÑ Çü½ÄÀº Çؽ¬¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î ¸ðµç Å°/°ª ½ÖÀ» FastTemplate³»ÀÇ Çؽ¬·Î º¹»çÇÑ´Ù. FastTemplate³»¿¡´Â ÇϳªÀÇ Çؽ¬¸¸ Á¸ÀçÇϸç, µû¶ó¼­ µ¿ÀÏÇÑ Å°¿¡ ´Ù¸¥°ªÀ» ÇÒ´çÇÏ¸é ¸ÕÀú ÇÒ´çµÈ °ªÀº »ç¶óÁø´Ù.
    ¿¹

    $tpl->assign(TITLE   => "king kong");
    $tpl->assign(TITLE   => "godzilla");    ## "king kong"Àº »ç¶óÁø´Ù
assign(HASH REF) °ªÀ» Àü´ÞÇÏ´Â ÈξÀ È¿°úÀûÀÎ ¹æ¹ýÀº Çؽ¬ÀÇ ·¹ÆÛ·±½º¸¦ Àü´ÞÇÏ´Â °ÍÀÌ´Ù(µ¥ÀÌŸ º£À̽º·ÎºÎÅÍ Çؽ¬³ª Çؽ¬ ·¹ÆÛ·±½º¸¦ ±¸ÇÑ °æ¿ì ƯÈ÷ À¯¿ëÇÏ´Ù). Çؽ¬ ·¹ÆÛ·±½º¸¦ Àü´ÞÇÔÀ¸·Î¼­ µ¥ÀÌŸ¸¦ º¹»çÇÏÁö´Â ¾ÊÁö¸¸ ¹è¿­³»ÀÇ ·¹ÆÛ·±½º´Â À¯ÁöµÈ´Ù. Çؼ®ÇÏ´Â µ¿¾È ÁÖ FastTemplate Çؽ¬¿¡¼­ º¯¼ö °ªÀ» ãÀ» ¼ö ¾ø´Â °æ¿ì Çؽ¬ ·¹ÆÛ·±½ºÀÇ ¹è¿­À» Á¶»çÇÑ´Ù. °ªÀÌ ¹ß°ßµÇÀÚ¸¶ÀÚ ÁßÁöµÈ´Ù. ´õÀÌ»ó ÇÊ¿ä°¡ ¾ø´Â °æ¿ì Çؽ¬ ·¹ÆÛ·±½º¸¦ ²À Á¦°ÅÇØ¾ß ÇÑ´Ù.
    ¿¹

    my %foo = ("TITLE" => "king kong");
    my %bar = ("TITLE" => "godzilla");

    $tpl->assign(\%foo);   ## TITLEÀº "king kong"À¸·Î Çؼ®µÈ´Ù.
    $tpl->clear_href(1);   ## Çؽ¬ ·¹ÆÛ·±½º »èÁ¦(\%foo)
    $tpl->assign(\%bar);   ## TITLEÀº "godzilla"·Î Çؼ®µÈ´Ù.

    $tpl->clear_href();    ## ¸ðµç Çؽ¬ ·¹ÆÛ·±½º »èÁ¦

    $tpl->assign(\%foo);   ## TITLEÀº "king kong"À¸·Î Çؼ®µÈ´Ù.
    $tpl->assign(\%bar);   ## TITLEÀº ¾ÆÁ÷µµ"king kong"À¸·Î Çؼ®µÈ´Ù.
parse(HASH) parse ÇÔ¼ö´Â FastTemplateÀÇ ÁÖ ÇÔ¼öÀÌ´Ù. ÀÌ °ÍÀº Å°°¡ Ÿ°Ù ÅÛÇø´À̸ç, °ªÀÌ ¼Ò½º ÅÛÇø´ÀÎ Çؽ¬¸¦ Çã¿ëÇÑ´Ù. ÀÌ Çؽ¬¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼¼°¡Áö Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
    $tpl->parse(MAIN => "main");                ## Á¤»ó

    $tpl->parse(MAIN => ["table", "main"]);     ## °áÇÕ

    $tpl->parse(MAIN => ".row");                ## Ãß°¡
Á¤»óÀûÀÎ Çü½ÄÀ» »ç¿ëÇϸé À̸§ÀÌ "main"ÀÎ ÅÛÇø´ÀÌ ÀÐÇôÁø´Ù(ÀÌ¹Ì ÀÐÁö¾ÊÀº °æ¿ì). ¸ðµç º¯¼ö°¡ »ðÀÔµÇ¸ç ±× °á°ú´Â MAINÀ̶ó´Â °ªÀ¸·Î ÀúÀåµÈ´Ù. º¯¼ö '$MAIN'ÀÌ ÀÌ ÈÄÀÇ ÅÛÇø´¿¡¼­ »ç¿ëµÇ¸é Çؼ®µÈ "main" ÅÛÇø´ÀÇ °ªÀ¸·Î »ðÀ﵃ °ÍÀÌ´Ù. ÀÌ°ÍÀ¸·Î ½±°Ô ÅÛÇø´³»¿¡ ÅÛÇø´À» µÎ´Â °ÍÀÌ °¡´ÉÇØÁø´Ù. °áÇÕ ½ºÅ¸ÀÏÀº ½±°Ô ÅÛÇø´¾È¿¡ ÅÛÇø´À» µÎ±âÀ§ÇØ °í¾ÈµÇ¾ú´Ù. ´ÙÀ½ ¿¹´Â µ¿ÀÏÇÑ °á°ú¸¦ ¾ò°ÔµÈ´Ù.
    $tpl->parse(MAIN => "table");
    $tpl->parse(MAIN => "main");

    ## Àº ´ÙÀ½ Ç¥Çö°ú µ¿ÀÏÇÏ´Ù:

    $tpl->parse(MAIN => ["table", "main"]);     ## ÀÌ ÆûÀº ÇÔ¼ö È£ÃâȽ¼ö¸¦ ÁÙ¿©ÁØ´Ù
                                                ## (±×¸®°í Äڵ带 º¸´Ù ºÐ¸íÇÏ°Ô ÇØÁØ´Ù)
°áÇÕÇü½ÄÀ» »ç¿ëÇÒ ¶§ ³ªÁß¿¡ ³ª¿À´Â °¢°¢ÀÇ ÅÛÇø´(ÀÌ°æ¿ì 'main')Àº °á°ú¸¦ Çؼ®ÇÑ º¯¼ö('$MAIN')¸¦ Æ÷ÇÔÇؾßÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. À§ÀÇ ¿¹¿¡¼­ 'main'Àº 'table'À» Çؼ®ÇÑ °á°ú¸¦ ÀúÀåÇÑ º¯¼ö '$MAIN'À» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¸¸¾à 'main'ÀÌ º¯¼ö '$MAIN'À» Æ÷ÇÔÇÏÁö ¾Ê´Â °æ¿ì, 'table'À» Çؼ®ÇÑ °á°ú´Â »ç¶óÁú ¼öµµ ÀÖ´Ù. Ãß°¡ Çü½ÄÀº ÀÏÁ¾ÀÇ ¹ÌºÀÃ¥À¸·Î Çؼ®µÈ °á°ú¸¦ Ÿ°Ùº¯¼ö¿¡ Ãß°¡ÇÒ ¶§ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº ÇàÀÇ ¼ö¸¦ µ¿ÀûÀ¸·Î °»½ÅÇؾßÇϴ ǥ¸¦ ¸¸µé¶§(µ¥ÀÌŸ º£À̽º¿¡ ÁúÀÇÇÑ °á°ú¸¦ Ç¥·Î ¸¸µé¶§) °¡Àå À¯¿ëÇÏ´Ù. strict() strict()ÀÌ 'on'(±âº»°ª)À̸é ÅÛÇø´À» Çؼ®ÇÏ´Â µ¿¾È ¹ß°ßµÇ´Â ¸ðµç º¯¼öÁß Çؼ®µÇÁö¾ÊÀº º¯¼ö´Â Ç¥ÁØ ¿À·ù·Î °æ°í Çü½ÄÀ¸·Î Ãâ·ÂµÈ´Ù.
¿¹

   [CGI::FastTemplate] Warning: no value found for variable: SOME_VARIABLE
1.04 ÀÌÈĹöÀü¿¡¼­ »õ·Ó°Ô ¹Ù²ï »çÇ×À¸·Î ÀÌ·¯ÇÑ º¯¼ö´Â Ãâ·ÂµÈ ¹®¼­¿¡ ³²°ÔµÈ´Ù. ÀÌ °ÍÀº µÎ°¡Áö ÀÌÀ¯¶§¹®ÀÌ´Ù. ù¹ø°´Â ´Ü°èÀûÀ¸·Î Çؼ®À» ¼öÇàÇϱâÀ§Çؼ­ ÀÌ´Ù(Áï, ´ÙÁßÀ¸·Î ÅÛÇø´À» Àü´ÞÇÏ´Â °æ¿ì). µÎ¹ø°´Â Çؼ®µÈ °á°ú³»¿¡ À̵éÀ» µÒÀ¸·Î¼­ Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö¸¦ È®ÀÎÇϱ⠽±µµ·ÏÇϱâÀ§Çؼ­ ÀÌ´Ù. FastTemplateÀÇ ÃֽŹöÀüÀ» »ç¿ëÇϸ缭, Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö¸¦ °ø¹éÀ¸·Î ´ëÄ¡ÇÏ´Â ¿¹Àü ±â´ÉÀ» »ç¿ëÇÏ·Á¸é no_strict()À» º¸±â¹Ù¶õ´Ù. ÁÖÀÇ: 1.07 ¹öÀüÀº µÎ°¡Áö Çü½ÄÀÇ º¯¼ö¸¦ Áö¿øÇÑ´Ù. µû¶ó¼­ $VAR°ú ${VAR}´Â µ¿ÀÏÇÑ º¯¼öÀÌ´Ù. ±×·¯³ª strict()À» »ç¿ëÇϸé, ${VAR}ÀÇ Çü½ÄÀ» °°´Â Çؼ®µÇÁö ¾Ê´Â º¯¼ö´Â $VAR·Î Ãâ·ÂµÈ´Ù. Áï, ${VAR}¿¡ ¾î¶°ÇÑ °ªµµ ÇÒ´çµÇÁö ¾ÊÀº °æ¿ì, $VAR·Î¼­ Ãâ·ÂµÈ´Ù´Â ¶æÀÌ´Ù. ÀÌ °ÍÀº ´Ù¼Ò ¸ð¼øÀûÀÌ´Ù - ÀÌ»óÀûÀÎ °æ¿ì Çؼ®µÇÁö¾ÊÀº º¯¼ö´Â º¯°æµÇÁö ¾Ê´Â ä·Î ³²¾Æ¾ß ÇÑ´Ù. ÁÖÀÇ: STDERR Ãâ·ÂÀº À¥ ¼­¹ö¿¡ÀÇÇØ ±â·ÏµÈ´Ù. µû¶ó¼­ Ãâ·ÂÀ» È®ÀÎÇϱâÀ§ÇØ ¿À·ù ·Î±×ÆÄÀÏÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
    ¿¹

    tail -f /etc/httpd/logs/error_log
no_strict() Çؼ®µÇÁö ¾ÊÀº ÅÛÇø´ º¯¼ö¿¡´ëÇÑ °æ°í ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. 1.04 ¹öÀü¿¡¼­ ó·³ no_strict()À» È£ÃâÇÔÀ¸·Î¼­ Çؼ®µÇÁö¾ÊÀº º¯¼ö¸¦ °ø¹éÀ¸·Î ´ëÄ¡ÇÒ ¼ö ÀÖ´Ù. ±âº»ÀûÀ¸·Î FastTemplateÀÇ ¸ðµç »çº»Àº strict()À» È£ÃâÇÑ °Íó·³ µ¿ÀÛÇÑ´Ù. ¶ÇÇÑ no_strict()Àº °¢°¢ÀÇ CGI::FastTemplate »çº»¿¡´ëÇØ ¼³Á¤µÇ¾î¾ß ÇÑ´Ù.
   ¿¹:

   CGI::FastTemplate::no_strict;        ## no 
   
   my $tpl = CGI::FastTemplate;
   $tpl->no_strict;                     ## yes
print(SCALAR) print() ¸Þ¼Òµå´Â À̸§À» °®´Â º¯¼öÀÇ ³»¿ëÀ» Ãâ·ÂÇÑ´Ù. ¾î¶°ÇÑ º¯¼öµµ ÁöÁ¤ÇÏÁö¾ÊÀ¸¸é È£Ãâ¿¡ »ç¿ëµÈ ¸¶Áö¸· º¯¼ö¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ °ÍÀº ¾ÆÁÖ Å¸´çÇÑ °Í °°´Ù.
    ¿¹

    $tpl->parse(MAIN => "main");
    $tpl->print();         ## MAINÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù
    $tpl->print("MAIN");   ## À§¿Í µ¿ÀÏ
ÀÌ ¸Þ¼Òµå´Â ÀÏ°ü¼ºÀÌ Á¦°øµÈ´Ù. Ç¥ÁØ Ãâ·Â ÀÌ¿ÜÀÇ °÷(¿¹, ¼ÒÄÏ, ÆÄÀÏÇÚµé)¿¡ Ãâ·ÂÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é fetch()¸¦ º¸±â¹Ù¶õ´Ù.


´ÙÀ½±Û: Á¦ 2°­ - CGIÀÇ °³³ä (29874)1996-03-02
ÀÌÀü±Û: HTTP/1.0 »óÅÂÄÚµå (9707)1997-02-03
<< ÀÌÀüÆäÀÌÁö (1/5)´ÙÀ½ÆäÀÌÁö (3/5) >>

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.