PHP code example of karelwintersky / arris.presenter

1. Go to this page and download the library: Download karelwintersky/arris.presenter library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

karelwintersky / arris.presenter example snippets


$t = new \Arris\Presenter\Template(smarty_options: [], template_options: [], logger: null);

use Arris\Presenter\Template;

Template::setDefaults([
    'setTemplateDir'    => '/path/to/templates',
    'setCompileDir'     => '/path/to/cache',
    'setForceCompile'   => true,
    'cleanup_extra_eol' => true,
]);
Template::addPlugin(Template::PLUGIN_MODIFIER, 'json_decode', 'json_decode');
Template::addPlugin(Template::PLUGIN_MODIFIER, 'json_encode', 'json_encode');
Template::addClass('Arris\AppRouter', 'Arris\AppRouter');
Template::addHook('pre_content', $someCallback);

  Template::setDefaults([...])
      ->registerClass('Arris\AppRouter', 'Arris\AppRouter')
      ->registerHook('pre_content', $someCallback)
      ->registerPlugin(Template::PLUGIN_MODIFIER, 'json_decode', 'json_decode');
  

$partial = Template::make();               // или $main->fork()
$partial->setTemplateContent('...');
$html = $partial->renderToString();        // не шлёт хедеры, не печатает

$json = Template::make();
$json->assignJSON($data);
$api = $json->renderToString();

$render = $template->render();           // заголовки НЕ отправлены
if (!empty($render)) {
    $template->headers->send();
    echo $render;
}
if ($template->isRedirect()) {
    $template->makeRedirect();
}

use Arris\Presenter\System\ContentType;

$t->setRenderType(Template::CONTENT_TYPE_404);  // BC-алиас
$t->setRenderType(ContentType::JSON);           // enum напрямую

ContentType::JSON->contentTypeHeader();   // 'application/json; charset=utf-8'
ContentType::NOT_FOUND->statusCode();     // 404
ContentType::HTML->needsTemplateRender(); // true

{hook run='pre_content' foo=$foo}

->registerHook('pre_content', function ($foo = 'aaa'){
    return "pre content hook with arg: {$foo}";
})

{hook run='pre_content' foo=$foo}
{hook run='pre_content'}

$flash = FlashMessages::getInstance();   // синглтон; требует активной $_SESSION

$flash->addMessage(['type' => 'success', 'text' => 'Сохранено']);   // === addMessage('flash', ...)
$flash->addMessageNow('Это видно сразу');

$messages = $flash->getMessage('flash', []);   // что показать в шаблоне

$template->meta
    ->setTitle('Заголовок страницы')
    ->setDescription('Краткое описание')
    ->setCanonical('https://example.com/page')
    ->setOgType('article')
    ->setOgImage('https://example.com/img.png')
    ->addCustom('google-site-verification', 'abc123');

$html = $template->meta->render();            // готовые <title>/<meta>/<link canonical>
$data = $template->meta->toArray();           // структурированный массив
$template->assign('meta', $template->meta->toArray());

{$meta}   // отступ шаблона в 4 пробела -> render() по умолчанию выровняет все строки
{$template->meta->render(8, ' ')}   // свой отступ
{$template->meta->render(0)}        // без отступа