CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 8.4 |
안녕하세요
v2 스킨을 작성중인데 아래와 같이 스킨에서 사용자정의함수를 작성하면
@verbatim
@php
function val_sort($a, $b){
if ($a->order_group === $b->order_group) {
return $a->order_idx <=> $b->order_idx;
}
return $a->order_group <=> $b->order_group;
}
@endphp
@endverbatim
캐시파일에서는 아래처럼 변경됩니다.
<?php
function val_sort($__Context->a, $__Context->b){
if ($__Context->a->order_group === $__Context->b->order_group) {
return $__Context->a->order_idx <=> $__Context->b->order_idx;
}
return $__Context->a->order_group <=> $__Context->b->order_group;
}
?>
이때 캐시파일의 매개변수가 객체로 바뀌어서 오류가 나는데요. 해결 방법이 있을까요?
ehii
Lv. 2
댓글 5
달러 기호를 이스케이프해 주셔야 합니다.
function val_sort(\$a, \$b) { ...
해당 내용을 그대로 출력하려는 것이 아니기 때문에 @verbatim은 필요없습니다만,
@verbatim의 의미를 확장해서 PHP 변수도 변환하지 않도록 한다면 편리하지 않을까 하는 생각도 드네요.
감사합니다!
verbatim 패치 감사합니다.
원글의 예시처럼 함수 선언은 상관없겠지만,
@php + @verbatim 안에서 변수를 선언하면 Context가 아닌 로컬 변수가 되어서
해당 템플릿의 다른 부분에서는 참조할 수 없게 되는 점 주의 바랍니다.^^
네. 주의사항까지 알려주셔서 감사합니다.!