글쓴사람 김치빠
글쓴시간2012년 7월 23일 오후 8시 10분 45초
    제목안녕하세요 ^^
많은 부분에서 템플릿 언더바하고 있습니다^^
여러 곳에서 많이 사용하고 있음에도 불구하고 몇가지 난해하거나 불편한 점이 있어
이렇게 글 올립니다......

1. postfilter.arrangeSpace.php 파일에서
<pre> 뿐만 아니라 <textarea>도 같이 적용시켜 주시면 좀 더 완벽해질 것 같습니다..

2. 템플릿 언더바의 경우 <!--{}-->만 작동 가능한데 보통 주석을 처리할 때
<!-- 내용 -->과 같이 좌우에 공백이 들어간다는 점을 감안할 때
템플릿 언더바에서도 <!-- {} -->같은 코드가 작동되었으면 좋을 듯 싶습니다.
<!--(공백)내용(공백)-->

3. 템플릿 언더바에서 문자열을 출력할 때 {}나 {=}와 같은 식을 취하게 되어 있는데
이 경우 단순 "<?php echo" 와 같은 생성됩니다...
보통 php에서 보안이나 태그의 문제점 때문에 사용자로부터 입력 받은 값들은 보통
<?php echo htmlspecialchars()와 같이 작성할 때가 많은데
템플릿 언더바로 점복시킬 경우 {= htmlspecialchars{}} 이런식으로 상당히 길어짐을
볼 수 있는데 특정 값을 생성하여 자동으로 htmlspecialchars() 추가해주는 기능을
추가하면 어떨까 생각해봅니다.

제 작은 생각입니다만 숏태그 사용할 때 <?="내용"?>과 비슷한 식으로 {?= "내용"}
이런식으로 작성하면 "?="라는 문장을 활용하여 코드가 변환하여
<?php echo htmlspecialchars('내용')?>
이런식으로 조금 더 간편하게 사용할 수 있게 기능을 추가해주시면 좋겠습니다.

4. 함수나 객체를 사용할 경우 무조건 문자열의 리턴값을 필요로 하더라구요...
{user_func()} 작성시 자동으로 "<?php echo user_func()"와 같이 변경되어
함수이거나 객체일 경우 무조적으로
리턴값이 없으면 오류를 내기 때문에 return ''; 과 같은 무의미한 실행을 행하여야 하는데
이 부분에 대해서도
{}만 사용할 경우 echo 출력을 하지 못하는 것이 템플릿 언더바에서보면 이치에 맞다고 생각합니다만
하위버전들과의 호환성을 고려해볼 때 상당한 민감한 문제가 아닐 수 없다고 생각합니다...
위 3번에서 말씀드린 것처럼 특수기호(?)를 하나 정도 추가하여 {** user_func()} 이런식으로 작성할 경우 <?php user_func()?>
이런식으로 echo가 붙지 않는 기능도 추가로 해주셨으면 좋겠습니다.

무더운 여름날 건강 잘 챙기시고 행복하세요 ^^
관리자 성의껏 올려주신 글을 읽다보니 9년전 한참 업데이트하던 때가 생각이 나네요ㅎㅎ

1번은 예전에 리포트 됐던건데 잊고 있었습니다;

2번은.. <!--  {템플릿코드}  --> 별로 그럴 거 같지는 않지많 이걸 혹시나 다른 용도로 사용하셨던 분이 있다면 호환성 문제가 생길 수 있을 것 같아요.
참고로 취향에 따라서는
<!----------{템플릿코드}------------>
이런 걸 원하시는 분도 있더군요

3번은.. 읽고보니 htmlspecialchars()는  템플릿태그가 정말 알아서 해줘야 할 일인거 같은데.. 숏태그(?=)를 그 용도로 쓰자는 아이디어는 알겠습니다만  ? 가 if/switch 로 사용되고 있어서 적응이 필요한 문제가 있을거 같습니다..

4번은.. 템플릿코드는 무조건 출력용이다.. 이렇게 단정하고 지원을 안해왔던 내용인데.. 출력이 없으니 주석기호를 응용해보자는 아이디어인거 같아요. {** user_func()} 센스가 있어보입니다.



어떤 면에서는 기호라는 것이 코드읽기에 불편해서 뼈대가 되는 큰 요소가 아니라면 명령어 셋을 늘리는 것은 피하고 싶은 일이고.. 언더바에 관해서는 트러블 슈팅에만 관여하려고 하고 있기도 하고요..

반면에 디테일한 면에서 실무중에 생겨난 좋은 아이디어같고 추가할 코드가 많지 않아서.. 김치빠님이 고민을 안겨주시는군요ㅋㅋ
12-07-23 23:06
치킨빠 항상 빠른 답변 감사드립니다^^
2번에서 말씀 드린 주석 얘기를 드리면...
간단하게 웹표준 여부를 검사해보면
<!--내용--> (O)
<!-- 내용 --> (O)
<!-- 내용- --> (O)
<!-- 내용-- --> (X)
<!-- 내용----> (X)
위와 같은 결과가 나옵니다
좌우 공백과 상관 없이 주석 안에 "--"(하이픈 두개)가 들어가게 되면 웹표준에 어긋난다고 나오고 있습니다...

제가 <!-- {템플릿 코드} -->와 같이 좌우 공백 여부를 말씀드린 것은 ....
현재 이클립스나 에디터 플러스 등에서 확인해보시면 코드 어시스트 기능등으로 주석을 삽입시 <!--(공백)(커서)(공백)-->과 같이 좌우 공백이 들어가는 것이 기본값으로 설정이 되어 있습니다.
(다른 프로그램들은 어떤식으로 주석이 들어가는지 확인해보지 못한점 양해 부탁드립니다.)
코드 어시스트 기능을 이용해서 템플릿_ 코드를 작성하게 될 경우 실수하는 부분으로 <!--(공백){= name}(공백)-->과 같이 무의식적으로 작성을 하게 됩니다....
이럴 경우 템플릿 언더바의 경우 {}이 부분만 해석하게 되기 때문에 파서된 코드를 보면 <!-- <?php echo $name?> -->이런식으로 의도하지 않게 출력 문자열이 주석으로 감싸지는 현상이 나타날 수 있습니다...

많은 실제 웹사이트들의 소스를 보면 주석 좌우 공백을 띄어놓은 경우가 많고
강의 페이지에서 조차 좌우 공백을 띄우고 활용하라고 하고 있습니다.
물론 공백을 띄우든 띄우지 않든 웹표준에는 어긋나지 않지만 많은 분들이 공백을 띄우는 이유나 에디터 프로그램 상의 기본값이 좌우 공백이 들어간 점을 미뤄볼 때
가독성에 의미를 두고 있지 않나 생각해봅니다...

어차피 어떤식으로 이용하던 템플릿_에서 해석하며 실제 HTML에 영향을 미치지는 않지만 위에 말씀드린 실수를 개발자가 하지 않아도 되고
만약에 공백이 들어간 <!-- {} -->이 템플릿_에 작동된다면 기존 코드 어시스트 기능을 사용한 후 좌우 공백을 제거해주지 않아도 되는 편안한 장점(?)이 있을 듯 합니다...

이 부분도 하위버전을 고려하여 <!-- {이 작동되게 추가해주시면 고맙겠습니다 ^^
12-07-24 13:09
관리자 단순히 취향적인 문제가 아니라는 점 잘 알겠습니다.^^ 업데이트 주기가 빠르지 않은점 양해를 구하고.. 다음 업데이트에 대부분 반영해보는 방향으로 하겠습니다.

좋은 의견 감사합니다ㅎㅎ
12-07-24 14:46
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com