포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
스킨 신문법 switch 문 이렇게 하면 어떨까? 궁리해 봤는데...
2011.07.29 00:07
모든 문법을 신문법으로 바꾸고 싶은 맘에 삽질한번 해봤어요 ^^;
그냥 구문법 쓰겠네 ㅋ 란 댓글은 하지 말아주세요 ㅜㅜ;;
- 예제 ------------------
switch ($vvv) {
case '1':
break;
case '2':
break;
default:
break;
}
-------------------------
추신:
한가지 <?php break; ?> 이거 맘에 걸리는데? 더 좋은 방법 아시는분?
그냥 구문법 쓰겠네 ㅋ 란 댓글은 하지 말아주세요 ㅜㅜ;;
- 예제 ------------------
switch ($vvv) {
case '1':
break;
case '2':
break;
default:
break;
}
-------------------------
<block loop="array($vvv == '1', $vvv == '2', true) => $key,$val">
<block cond="$key == '0' && $val">
$vvv == '1' 면 먼가해?
<?php break; ?>
</block>
<block cond="$key == '1' && $val">
$vvv == '2' 면 먼가해?
<?php break; ?>
</block>
<block cond="$key == '2' && $val">
마지막 값은 true 를 줘서 디폴트 ㅋ;;
<?php break; ?>
</block>
</block>
추신:
한가지 <?php break; ?> 이거 맘에 걸리는데? 더 좋은 방법 아시는분?
태그 연관 글
- [2008/08/16] 묻고답하기 Switch 문 사용시 에러
댓글 8
-
하늘03
2011.07.29 02:50
<break /> 로 하면 될려나요 ㅎㅎ -
파이델
2011.07.29 08:06
그렇게 되면 좋겠네요 ㅎㅎ
아니면 block 태그랑 똑같이 break 가상 태그를 이렇게?...
<break loop="$i...$i++" cond="$i == '5'">
$i == '5 면 브레이크
</break>
둘중 하나만 지원해 주면 완벽할거 같은데요 ㅎㅎ -
Treasurej
2011.07.29 03:28
대박! 스위치문이 되면 if, elseif문으로 된 많은 부분들이 대체될 수 있을 것 같네요!!^^
계속 간결하게 정리되어 가길 기대합니다.^^
저도 급 필요한 1인! -
Treasurej
2011.07.29 03:31
이 문법을 select문으로 바꾸고 싶었거든요^^
<!--@if($layout_info->slider_select == 'bxslider')--><include target="bxslider.html" /><!--@elseif($layout_info->slider_select == 'nivo')--><include target="nivo.html" /><!--@elseif($layout_info->slider_select == 'architector')--><include target="architector.html" /><!--@end-->
<!--@else-->
<include target="slider.html" />
대박!! -
파이델
2011.07.29 08:11
저도 그런게 맘에 걸리더라구요
궁하면 통한다 ㅎㅎ; -
Treasurej
2011.07.29 16:05
제작 중인 레이아웃이 있는데 연구좀 해야 겠습니다^^
<block cond="$layout_info->bg_alpha == '0.1'">{@ $bg_alpha_ie = '19'}</block>
<block cond="$layout_info->bg_alpha == '0.2'">{@ $bg_alpha_ie = '33'}</block>
<block cond="$layout_info->bg_alpha == '0.3'">{@ $bg_alpha_ie = '4C'}</block>
<block cond="$layout_info->bg_alpha == '0.4'">{@ $bg_alpha_ie = '66'}</block>
<block cond="$layout_info->bg_alpha == '0.5'">{@ $bg_alpha_ie = '7F'}</block>
<block cond="$layout_info->bg_alpha == '0.6'">{@ $bg_alpha_ie = '99'}</block>
<block cond="$layout_info->bg_alpha == '0.7'">{@ $bg_alpha_ie = 'B2'}</block>
<block cond="$layout_info->bg_alpha == '0.8'">{@ $bg_alpha_ie = 'CC'}</block>
<block cond="$layout_info->bg_alpha == '0.9'">{@ $bg_alpha_ie = 'E5'}</block>
<block cond="$layout_info->bg_alpha == '1'">{@ $bg_alpha_ie = 'FF'}</block>
이 엄청난 조건문 땜시롱~
이걸 select문으로 바꾸고 싶거든요.
어떤 분이 조건문이 많아도 CPU의 속도가 우리가 느끼지 못할 정도로 빠르게 처리한다고 해서,
테스트를 해봤습니다. 이런 조건문이 도대체 몇 개가 있어야 느리기 시작하네라는 체감속도가 되는지...
* 테스트 환경
CPU - P4 QuadCore 8200
RAM - 8G
GRAPHIC - ATI Radeon 4670 256M
OS - MS Windows 7 x64
Browser - IE9(x32), IE6(VMWare), 파폭, 크롬
Network - KT광
위 사양은 그래도 평균 이상의 속도라고 생각하구요,
* 사이트 처음 열리는 시간을 기준. (완전히 뜨는 시간 말고)
조건문 1개 기준 : 간단한 <block></block>
여러번 테스트에도 똑같은 시간이 나오는 걸 적었음.
- 조건문 500개 : 액서스 시간을 못 느낄 정도로 빠름
- 조건문 3000개 : 약간 느려진 것 같은 느낌.
- 조건문 5000개 : 3~4초 정도 느려짐. 파폭만 빠름.
- 조건문 6000개 : 4~5초 정도 느려짐. 파폭만 빠름.
- 조건문 7000개 : Fatal error: Allowed memory size of 41943040 bytes exhausted ~ 이런 에러나 Fatal error : Maxium xexcution time of 30 seconds exceeded in ~ 이런 에러가 납니다.
테스트 환경이 조금 빠르지만, 평균 이하의 인터넷 환경에서는 어떨지 모르겠네요. 제 생각엔 조금 더 영향을 받지 않을까 싶습니다.
조건문을 이정도로 많이 쓰지도 않지만,
XE Core, Module, Addon, Widget, Skin 등을 합한다면 레이아웃엔 그래도 상당히 많은 조건문을 쓰고 있고,
이 elseif 조건문을 select문으로 대응한다면 아주 조금의 성능은 도움이 될 것 같아요.
뭐 안되면 어쩔 수 없지만^^
댓글 리뷰였습니다.ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ -
파이델
2011.08.02 13:54
저는 그런걸 요런식으로 해결해요, 머가 좋을지 모르지만 일단 보기가 간편해서 ㅎ{@ $t1 = array('0.1'=>'19','0.2'=>'33','0.3'=>'4C')}<block loop="$t1 => $key,$val"><block cond="$layout_info->bg_alph == $key">
{@ $bg_alpha_ie = $val} <?php break;?>
</block></block> -
SMaker
2011.07.30 12:56
<block switch="$변수명">
<case value="값1">값1<break /></case>
<case value="값2">값2<break /></case>
</block>이런 식으로 하면 어떨까요? @_@