定制 rudra/view 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rudra/view

Composer 安装命令:

composer require rudra/view

包简介

Rudra framework

README 文档

README

PHPunit Maintainability CodeFactor Coverage Status

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("layout", [
    'content' => view('page', [
        'foo' => 'foo',
        'bar' => 'bar'
    ]),
]);

With setting data through the data helper

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());

Adding Twig

composer require "twig/twig:^3.0"

Create factory:

<?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;
    }
}

Configure service:

<?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/

统计信息

  • 总下载量: 274
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-09-16

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固