phalcon volt에 원래 또는 php의 Fuction을 추가하는 방법

phalcon의 Volt 확장



여기 있는데,
즐거운 답변이 아니기 때문에. .

config/services.php

config/service.php
$compiler->addFunction(
    "widget",
    function ($resolvedArgs, $exprArgs) {
        return "MyLibrary\\Widgets::get(" . $resolvedArgs . ")";
    }
);

이런 설명이 있습니다만,
어쩌면 View의 확장을 할 때, volt의 동작을 정의하고있는 곳이 있습니다. 거기에 추가하는 느낌이 될 것 같아요.

주의점은, 실행하고 싶은 Function 이름을 캐릭터 라인으로 돌려준다고 하는 점. 여기 중요
$di->setShared('view', function() {
}

간단하게 php의 date_format 함수를 추가하는 경우


$volt->getCompiler()->addFunction('date_format', 'date_format');

이하, 어쩐지 조금 처리를 넣는 경우, post된 데이터를 base64_decode를 추가하는 방법


$volt->getCompiler()->addFunction('base64_decode', function($args) {
          $str = str_replace(' ', '+', $args);
          return "base64_decode({$str})";
});

인수가 많으면


$volt->getCompiler()->addFunction('mb_strimwidth', function($args) {
          return "mb_strimwidth({$args})";
});

여기가 조금 재미있는 곳에서, addFunction 의 제 2 인수에 function($args)로 합니다만, 여기는 복수 인수 지정되면 그 캐릭터 라인이 건네 오는 것입니다.

사용할 때는 이런 느낌이지만
{{ mb_strimwidth(str,0,10,"...") }}

위에서 말한
$args
에,
str,0,10,"..."

라는 문자열이 들어오므로 그대로 세트하면 됩니다.

좋은 웹페이지 즐겨찾기