rudra / view
Rudra framework
Installs: 254
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/rudra/view
Requires
- php: >=8.3
- rudra/container: v25.12
- rudra/docs: v25.12
- rudra/exception: v25.12
This package is auto-updated.
Last update: 2025-12-30 09:12:04 UTC
README
Rudra-View | API
Install / Установка
composer require rudra/view
Using facade / Используя фасад
use Rudra\View\ViewFacade as View; echo View::view("layout", [ 'content' => View::view("page", [ 'foo' => 'foo', 'bar' => 'bar' ]), ]);
With caching / С кешированием
use Rudra\View\ViewFacade as View; echo View::cache(['mainpage', "+1 day"]) ?? View::render(["layout", "mainpage"], [ 'content' => View::cache(["page_{$slug}", "+1 day"]) ?? View::view(["page", "page_{$slug}"], [ 'foo' => 'foo', 'bar' => 'bar' ]), ]);
Using render, view helpers / При помощи хелперов render, view
render("layout", [ 'content' => view('page', [ 'foo' => 'foo', 'bar' => 'bar' ]), ]);
With setting data through the data helper / С установкой данных через хелпер data
data([ 'content' => view("page", [ 'foo' => 'foo', 'bar' => 'bar' ]), ]); render("layout", data());
With caching / С кешированием
data([ 'content' => cache(["page_{$slug}", "+1 day") ?? view(["page", "page_{$slug}"], [ 'foo' => 'foo', 'bar' => 'bar' ]), ]); cache(["mainpage", "+1 day"]) ?? render(["layout", "mainpage"], data()));
Добавление Twig
composer require "twig/twig:^3.0"
Создаем фабрику
<?php namespace App\Containers\Web\Factory; use Rudra\View\View; use Rudra\View\TwigView; use Rudra\Container\Interfaces\FactoryInterface; class TwigFactory implements FactoryInterface { public function create(): TwigView { $view = new TwigView(); $view->setup( viewPath: dirname(dirname(__DIR__)) . '/Web/UI/tmpl', prefix: '', extension: 'twig' ); return $view; } }
Настраиваем сервис
<?php use Rudra\View\View; use Rudra\View\TwigView; use App\Containers\Web\Factory\TwigFactory; return [ 'contracts' => [ ], 'services' => [ // View::class => function () { // $view = new TwigView(); // $view->setup( // viewPath: dirname(__DIR__) . '/Web/UI/tmpl', // prefix: '', // extension: 'twig' // ); // return $view; // } // View::class => fn() => (new TwigFactory())->create(), View::class => TwigFactory::class, ] ];
License
This project is licensed under the Mozilla Public License 2.0 (MPL-2.0) — a free, open-source license that:
- Requires preservation of copyright and license notices,
- Allows commercial and non-commercial use,
- Requires that any modifications to the original files remain open under MPL-2.0,
- Permits combining with proprietary code in larger works.
📄 Full license text: LICENSE
🌐 Official MPL-2.0 page: https://mozilla.org/MPL/2.0/
Проект распространяется под лицензией Mozilla Public License 2.0 (MPL-2.0). Это означает:
- Вы можете свободно использовать, изменять и распространять код.
- При изменении файлов, содержащих исходный код из этого репозитория, вы обязаны оставить их открытыми под той же лицензией.
- Вы обязаны сохранять уведомления об авторстве и ссылку на оригинал.
- Вы можете встраивать код в проприетарные проекты, если исходные файлы остаются под MPL.
📄 Полный текст лицензии (на английском): LICENSE
🌐 Официальная страница: https://mozilla.org/MPL/2.0/