글쓴사람 관리자
글쓴시간2003년 4월 16일 오후 12시 20분 43초
    제목[응답]버전 업데이트 되었네요~!
장문의 글을 올려주셨네요.. 의견 감사합니다.



"역시 뼈와살을 분리해야 하지 않을까 생각"

"함수 호출에는 극히 제한적일 수 있습니다."

"예를들어, [ 날짜 포멧 | 문자열 길이 | 문자열 포멧 ]"

{:: subject  10  max} - 문자열 자르기
{:: timestamp "Y-m-d" date} - 날짜 변환

행인님 의견을 이 정도 요약할 수 있을 거 같은데,,


=====================

일단, 잘못 이해하고 계신 점이 있습니다.

템플릿 태그내에 아무 명령어도 없으면 원래 출력하게 되어있죠.

<div>
<b><?=substr({:: subject}, 0, 5)?></b>
</div>

{:: subject} 자리에는 템플릿변수의 값이 아니라 템플릿 변수 자체가 들어갑니다.

행인님 의견은 :: 가 없더라도 원래는 출력이지만

PHP코드내에 있을 때는 출력하지 말게 하라는 건데,

오히려 혼란을 줄 수 있을 것 같고,, :: 을 뺄려면, 코드가 많이 복잡해져야 합니다.


{:: expression}의 의미는 expression에 대해서 출력이나, 다른 아무명령도 주지 말고

그냥 놔두라는 뜻입니다.

======================

"함수 호출에는 극히 제한적일 수 있습니다."

가 아니라

"함수 호출에는 극히 제한적입니다." 라고 단정하시고 근거를 말씀해 주실 수 있다면

고려해 보겠지만, 그렇지 않은 것 같습니다.

{:: subject  10  max} 모양도 이쁘고 뼈와살이 분리되는 장점이 있지만,

범용적인 방법을 놔두고 어떤 언어에도 없는 새로운 문법을 익히게 한다는 단점도 있습니다.

======================

의견을 그대로 반영하지 못한 점이 아쉽지만 잘 이해해 주시기 바랍니다.
기훈 템플릿 화일내에서도 php를 파싱을 함으로 필요없는 구문이 아닌가 생각되네요
03-04-16 14:05
관리자 실은 변환파일을 "인클루드"하기 때문에 원래도 php코드를 쓸 수 있었습니다. 다만 템플릿변수를 이용할 수 없었던 거죠.
03-04-16 14:09
관리자 한 때, 토론이 있었던, 외부파일 인클루드를 템플릿차원에서 하자는 것도.. <? include '/home/...php';?> 하면 됩니다. 이 때 템플릿 변수들과 충돌할 수 있으니 주의해야 하구요.
03-04-16 14:13
관리자 그러니까.. 솔직히 말하면, php 파싱은 제 아이디어가 아니라 스마티의 템플릿컴파일방식을 취했기 때문에 생긴 기능입니다. 기훈님이 극찬할 때 미리 말씀을 드렸어야 했는데.. 이렇게 됐네요.
03-04-16 14:43
기훈 어쨌든 제겐 더할나위없는 최고의 템플릿입니다.
감사드립니다.
03-04-16 14:50
관리자 네..^^
03-04-16 14:51
행인 제가 말주변이 없어서 글이 길어지긴 했네요;;
제가 말한 뼈와살은 디자이너가 만질 템플릿 파일에 PHP 코드가 들어간다는 부분이었습니다. 그래서 이 부분이 기존 템플릿의 개념에 반하지 않아 싶어서 였습니다.
제가 말한 부분이 잘못 전달된것인지 아니면 제가 윗글을 잘 못이해하고 있는것인지;;
지금 테스트를 해보고 알겠군요. PHP 코드내에 있을때 그냥 두는것이;;
출력이라면 <?php echo ... ?> 를 찍지 않는다는것.
제가 잘못 생각하고 있었네요.

함수 호출에는 제한적일 수 있다는 것은.
자주 사용되는 것들을 기본 지원함으로서 호출이 제한적일 수 있겠지만, 자유도 측면에서 본다면 템플릿을 작성 하는데 걸림돌이 될수 있다는 것입니다.
저도 이부분에 대해서는 아직 타협점을 찾지 못했습니다. 그래서 일단 의견 드린 부분도 예를 들기 위해 작성한 것입니다. 그래서 최적화라든가 보편적 편리성은 약간은 부족한것 같습니다. 그래서 이러한 부분...
'가장 많이 사용되는 함수'를 기본 지원함으로서 템플릿 코드의 표현과 프로그래밍 등..에 대해 토론을 부탁드렸던것입니다. 제가 다른 부분 설명에 집중하느라 이런 부분을 미리 말씀드리지 못했네요. ^^;;;
03-04-16 19:12
곰돌이푸우 설명서~~~~ ㅠㅠ
03-04-16 22:03
관리자 잘 이해해주셔서 감사합니다.
코드분리 문제 때문에 $flexible 이란 속성을 만들게 된 거고,
어떤 면에서, 결국 템플릿언더바는 함수 지원을 안하는 거나 마찬가지라고 할 수 있죠..

아시는지 모르겠지만 템플릿 엔진이라는게 필요하냐는 토론이 다른 싸이트에서 종종 있었습니다. 저는 참여하지 않았지만서도.. 이건 외국 포럼에서도 마찬가지입니다. {변수} 와 <?=변수?> 가 뭐가 다르냐는 것이죠. 특히 스마티를 옹호하는 사용자들은 여러가지로 변론을 하지만, 템플릿 엔진을 쓰지 않고 코드분리하는 노하우를 가진 프로그래머들의 답은 "No Point" 였습니다.
템플릿 언더바를 만들 때 항상 이걸 염두에 두고 있었죠. 템플릿엔진을 안쓴 것보다 분명한 장점이 있느냐하는 것입니다. 어찌보면 템플릿언더바는 템플릿엔진안쓰고 코드분리하는 노하우를 최대한 간단하고 빠른 형태로 모듈화한 것에 불과합니다.

이런 관점에서, 템플릿태그내에 함수를 지원했을 때, 제 개인적인 생각은 "No point" 라는 것입니다. 그다지 간편해진다고 생각되지 않습니다.

프로그래머에게는 함수 하나하나마다 새로운 문법을 익혀야된다는 부담이 생기고, 템플릿이 제공하는 함수를 디자이너가 사용할 정도면 차라리 PHP 함수를 익히는 게 좋겠다는 생각입니다.

"자주 쓰이는 함수" 라는 기준이 불투명하다는 것에 일단 행인님도 인정하신 걸로 간주하겠습니다. 나중엔 "정규식도 지원하게 해주세요" 라는 요청이 나올 수도 있을 것 같습니다.

요청을 받아들이다보면, 경우에 따라 잘 쓰지도 않을 기능들로 중무장한 엄청 비대해진 프로그램을 사용자가 프로그램 머리에 인클루드해야만 되는 부담을 가지게 되겠죠..

템플릿 코드내에 함수가 들어가 주는게 보기가 좋다는 의견에 동의하지만, 원래 php 가 html에 삽입할 수 있는 코드라는 점도 감안해 주시고, 적절하게 혼합하는 것은 말 그대로 flexible 하다는 생각입니다.
03-04-16 22:12
관리자 푸님.. 이것 저것 생각이 있어서.. 오늘은 안되겠네요.. 내일까지는 꼭 올리겠습니다.
03-04-16 22:14
행인 그렇군요. 관리자님의 생각을 잘 알것 같네요. ^^
저 역시 괜한 기능을 많이 넣은 비대한 템플릿보다 빠르고 가벼운 템플릿이 되길 바랍니다.
그 점에서 언더바는 제맘에 쏙 듭니다.
앞으로도 좋은 템플릿 계속 만들어 주시길 :)
03-04-17 00:02
관리자 감사합니다.
03-04-17 00:44
    이름
비밀번호
  버전 업데이트 되었네요~! [1] 03-04-16 1884 행인
>> [응답]버전 업데이트 되었네요~! [12] 03-04-16 1157 관리자
 
Since 2003-03-03 hosted on vultr.com