rnr1721/le7-view

le7 PHP 框架或任何 PSR PHP 项目的视图模块

1.3.2 2023-05-28 10:59 UTC

README

le7 框架或任何 PHP 项目的基视图组件。

您可以在任何 PHP 8 PSR 项目中安装这些组件之一。

要求

  • PHP 8.1 或更高版本。
  • Composer 2.0 或更高版本。

它能做什么?

  • AssetsCollection 对象用于管理 JS 和 CSS 集合
  • WebPage 对象用于存储网页头部和脚本数据
  • ViewTrait 是 le7-framework 的任何视图适配器的一部分

安装

此组件是本项目的依赖项

您必须安装其中一个才能使用,但...

composer require rnr1721/le7-view

测试

composer test

AssetsCollection

这是一个用于管理资产集合的强大工具。它可以由特殊的设置方法控制,或者您可以在构造函数中将配置数组设置进去。

配置示例

        $styles = [
            'bootstrap5' => 'https://cdn.jsdelivr.net.cn/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css'
        ];

        $scripts = [
            'axios' => [
                // You can define with params as need
                'script' => 'https://cdnjs.cloudflare.com/ajax/libs/axios/1.4.0/axios.min.js',
                'params' => 'defer'
            ],
            // Or you can define scripts directly
            'jquery' => 'https://code.jqueryjs.cn/jquery-3.7.0.min.js',
            'vuejs' => 'https://cdn.jsdelivr.net.cn/npm/vue@2.7.8/dist/vue.js',
            'bootstrap5' => 'https://cdn.jsdelivr.net.cn/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js'
        ];

        $collections = [
            'mycollection' => [
                'scripts_header' => [
                    'vuejs'
                ],
                'scripts_footer' => [
                    
                ],
                'styles' => [
                    'bootstrap5'
                ]
            ]
        ];

注意:现在您可以在 CDN 中使用“变量”:本地位置的 URL:{url},{libs},{js},{css} 示例:{url}/libs/jquery.js

现在,我们可以创建 AssetsCollectionGeneric(实现 AssetsCollectionInterface)的实例

use Core\View\AssetsCollectionGeneric;
$ac = new AssetsCollectionGeneric($scripts, $styles, $collections);

设置脚本的方法

setStyle

您可以为样式库设置新的样式

$ac->setStyle('bootstrap5', 'https://link_to_bootstrap5.css');

setScript

您可以为样式库设置新的脚本

$params = 'defer' // Not-required
$ac->setScript('bootstrap5', 'https://link_to_bootstrap5.js', $params);

setCollection

您可以为样式库设置新的集合:例如,我们需要一个包含 vuejs JS 和 bootstrap5 CSS 的集合:当然,所有具有键的脚本在设置之前都需要定义。

// Add to header
$ac->setCollection('mycollection', ['vuejs'], [], ['bootstrap5']);
// Add to footer
$ac->setCollection('mycollection', [], ['vuejs'], ['bootstrap5']);

WebPage 对象

WebPage 对象收集有关网页的各种信息,您可以在网页模板中使用它 - 脚本、样式、元标签、导入映射、标题、描述、关键词等。

ViewTopology 对象

ViewTopology 需要存储基本路径和 URL。