zanozik/cdnjs

安装、更新、管理和测试 CDNjs 资产

v1.0 2017-07-02 11:24 UTC

This package is auto-updated.

Last update: 2024-09-19 09:46:05 UTC


README

Latest Version on Packagist Packagist Downloads Github Downloads Software License

CDNjs 资产管理器可以帮助您在 Laravel 应用程序中安装、更新、管理和测试 CDNjs 资产。它使用自定义助手 cdnjs() 和 Blade 指令(已弃用!)通过您定义的别名在模板中包含适当的资产。所有资产都存储在数据库中,并在第一次请求时无限期缓存。

管理器的前端允许您添加、编辑、更新和测试资产,直接从 CDNjs 获取。您还可以设置一个计划程序,根据您定义的版本掩码自动检查(甚至更新到)资产的最新版本。

示例

您可以在 blade 模板或部分中添加类似的内容

<html>
<body>
    <head>
        <!-- include css assets with helper-->
        {!! cdnjs(['bootstrap-css','select2-css']) !!}

        <!-- OR Blade directive (DEPRECATED) -->
        @cdnjs(bootstrap-css|select2-css)
    </head>
    
......

    <!-- include js assets -->
    {!! cdnjs(['jquery','bootstrap-js','select2-js']) !!}
    
    <!-- OR Blade directive (DEPRECATED) -->
    @cdnjs(jquery|bootstrap-js|select2-js)
</body>
</html>

您将得到如下输出

<html>
<body>
    <head>
        <!-- include css assets -->
         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" />

    </head>
    
<!-- ... -->

    <!-- include js assets -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>

</body>
</html>

安装

在控制台中运行以下命令以要求包

composer require zanozik/cdnjs:dev-master

Zanozik\Cdnjs\CdnjsServiceProvider::class 添加到 providers 数组的末尾

// config/app.php
'providers' => [
    ...
    Zanozik\Cdnjs\CdnjsServiceProvider::class,
],

发布资产和运行迁移非常简单

php artisan package:install

这将执行以下所有操作

  • 在您的数据库中创建 assets
  • 用示例数据填充它(用于渲染 CDNjs 资产管理器,例如)
  • 创建 config/cdnjs.php 配置文件
  • 创建 resources/lang/en/cdnjs.php 英语语言文件
  • 创建 resources/view/vendor/cdnjs/index.phpresources/view/vendor/cdnjs/edit.php CDNjs 资产管理器 blade 模板文件,以便您方便使用。

配置

config/cdnjs.php 文件包含路由、URL 和时间选项。您可以根据需要更改它们,尽管默认设置也应该工作得很好。

更改每日版本检查和自动更新的所需时间(如果您想完全禁用此功能,请分配 false

	/*
	|--------------------------------------------------------------------------
	| Daily version update check time (H:i)
	|--------------------------------------------------------------------------
	|
	*/
	'time' => '0:00'

要使用的路由前缀和中间件

	/*
	|--------------------------------------------------------------------------
	| Routes group config
	|--------------------------------------------------------------------------
	|
	*/
	'route' => [
		'prefix' => 'cdnjs',
		'middleware' => 'web'
	],

更改前缀为要在 CDNjs 资产管理器路径之前出现的任何内容。默认路径是 /cdnjs/assets,因此您可以将其更改为类似 /admin/assets 的内容,通过分配 'prefix' => 'admin',。您甚至可以通过分配空字符串来禁用前缀,并通过 /assets 调用路由。

如果需要,您可以添加更多中间件,如下所示

	/*
	|--------------------------------------------------------------------------
	| Routes group config
	|--------------------------------------------------------------------------
	|
	*/
	'route' => [
		'prefix' => 'cdnjs',
		'middleware' => [
		    'web',
		    'auth'
        ],
	],

使用方法

管理器

单击 添加新资产,并在打开的模态框中的 类型 选择搜索框中输入部分关键字以搜索所需的库。

Screenshot

选择所需的版本和资产,您自己的自定义别名(名称),默认情况下将为您生成。如果您想使用版本检查,请选择 版本检查自动更新 掩码。如果您想使用版本检查,请确保正确配置了您的时间表计划程序(有关 Laravel 网站上的任务计划的参考)

Screenshot

自动更新掩码 不能比 版本检查掩码 更宽。

如果在版本检查期间根据定义的掩码自动找到新版本,CDNjs 资产管理器将记录版本并允许您测试和更新到它。

如果新版本恰好落在定义的 自动更新掩码 下,它将自动将当前版本更新到新版本。

该包还将触发预定义的 事件

处理事件

该包可以触发两个事件

  • \Zanozik\Cdnjs\Events\NewAssetVersion
  • \Zanozik\Cdnjs\Events\AssetVersionUpdated

该包将传递 Asset 集合到每个 事件

您可以以任何方式监听和捕获这些事件(有关Laravel网站上的事件的更多信息,请继续阅读)。

示例

创建 app/Listeners/NewVersionListener.php

<?php

namespace App\Listeners;

class NewVersionListener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  \Zanozik\Cdnjs\Events\NewAssetVersion $event
     * @return void
     */
    public function handle(\Zanozik\Cdnjs\Events\NewAssetVersion $event)
    {
        //$event->asset will return your affected asset
    }
}

您可以在控制台中运行 php artisan make:listener NewVersionListener --event="\Zanozik\Cdnjs\Events\NewAssetVersion" 而不是手动创建(新功能,已在 laravel:master 中)

并在您的 $listen 数组中注册该监听器

//app/Providers/EventServiceProvider.php
    protected $listen = [
        'Zanozik\Cdnjs\Events\NewAssetVersion' => [
            'App\Listeners\NewVersionListener',
        ],
    ];

辅助函数

该包提供自定义辅助函数

  • cdnjs()

当您想要获取HTML资产时,可以使用数组作为函数变量,例如 cdnjs(['asset1', 'asset2', 'asset3'])。注意:您必须在模板中使用未转义的Blade标签 {!! cdnjs() !!}

当您想要获取定义的资产的URL时,可以使用字符串作为函数变量,例如 cdnjs('asset4')

Blade模板(已弃用)

该包提供两个Blade指令

  • @cdnjs
  • cdnjs_url

当您想在Blade模板中输出HTML资产时,使用 @cdnjs(asset1|asset2|asset3)

当您只想输出定义的资产的URL时,使用 @cdnjs_url(asset4)

重要提示

如果您担心通过更改默认资产而破坏cdnjs资产管理器的功能,请在发布的 index.blade.php 中覆盖 cdnjs 函数(已为您预设适当的HTML标签)。

资产集合正在自动缓存和刷新,因此如果您进行了手动更改,不要忘记清除视图和缓存。

php artisan cache:clear
php artisan view:clear

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件