tatter/frontend

针对CodeIgniter 4的前端技术精选套件

v1.1.0 2024-03-02 13:50 UTC

README

针对CodeIgniter 4的前端技术精选套件

Coverage Status

描述

此库利用Tatter\Assets以及框架的Publisher Library来自动发现资源并注入HTML标签,以支持前端解决方案的精选。

安装

通过Composer轻松安装,以利用CodeIgniter 4的自动加载功能并保持最新状态

composer require tatter/frontend

或者,通过下载源文件并将目录添加到app/Config/Autoload.php中手动安装。

下载文件后,将其包含在自动加载中,然后运行框架的publish命令,将所有资源注入到前端控制器路径

php spark publish

包含的解决方案

资源库

  • AdminLTE - 管理仪表板模板
  • Bootstrap - 针对响应式网页开发的移动端优先的前端CSS框架
  • DataTables - 增强HTML表格数据的可访问性
  • FontAwesome - 流行的矢量图标和社交媒体标志工具包
  • jQuery - 一个快速、小巧且功能丰富的JavaScript库

支持库

*注意:由于一些其他库依赖于它,因此包含了jQuery;如果这些库将其作为依赖项删除或被删除,则jQuery将不再包含在内。

版本控制

目标是无限期地维护此库的两个主要版本,直到AdminLTE 4完全发布并稳定用于生产。核心差异将围绕AdminLTE、Bootstrap和jQuery的依赖栈。

配置

有关完整配置信息,请参阅资源文档

在想要应用标签的任何“after”路由上启用AssetsFilters。要将其应用到任何地方,请简单添加到$globalsapp/Config/Filters.php

    /**
     * List of filter aliases that are always
     * applied before and after every request.
     *
     * @var array
     */
    public $globals = [
        'before' => [
            // 'honeypot',
            // 'csrf',
        ],
        'after'  => [
            'assets',
        ],
    ];

然后创建或编辑您的Assets配置文件,并添加您想要应用的路由的每个包。 app/Config/Assets.php

<?php

namespace Config;

use Tatter\Frontend\Bundles\AdminLTEBundle;
use Tatter\Frontend\Bundles\BootstrapBundle;
use Tatter\Frontend\Bundles\FontAwesomeBundle;

class Assets extends \Tatter\Assets\Config\Assets
{
    public $routes = [
        '*' => [
            BootstrapBundle::class,
            FontAwesomeBundle::class,
        ],
        'admin/*' => [
        	AdminLTEBundle::class,
        	ChartJSBundle::class,
        ],
        'files/upload' => [
        	DropzoneJSBundle::class,
        ]
    ];
}

请注意,每个包都包含其依赖项(例如,AdminLTE包含Bootstrap,Bootstrap包含jQuery),因此即使重复资源也无害,但也是不必要的。这并不适用于可选插件,例如,如果您想在AdminLTE中使用FontAwesome,您将需要包含两者。

测试

此库在src/Test/中包含PHPUnit扩展类,以帮助测试供应商源代码的Publishers。 Tatter\Assets为Bundles提供类似的测试用例。这两个类用于测试此库的文件,但也可供使用Tatter\Frontend的其他项目使用。要测试自己的类,只需扩展适当的测试用例,并添加一个数据提供程序方法,其中包含您的类名和满足条件的标准。请参阅tests/中的测试文件以获取示例。