zanozik / cdnjs
安装、更新、管理和测试 CDNjs 资产
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: ^6.2
- laravel/framework: ^5.4
This package is auto-updated.
Last update: 2024-09-19 09:46:05 UTC
README
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.php和resources/view/vendor/cdnjs/edit.phpCDNjs 资产管理器 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'
],
],
使用方法
管理器
单击 添加新资产,并在打开的模态框中的 类型 选择搜索框中输入部分关键字以搜索所需的库。
选择所需的版本和资产,您自己的自定义别名(名称),默认情况下将为您生成。如果您想使用版本检查,请选择 版本检查 和 自动更新 掩码。如果您想使用版本检查,请确保正确配置了您的时间表计划程序(有关 Laravel 网站上的任务计划的参考)
自动更新掩码 不能比 版本检查掩码 更宽。
如果在版本检查期间根据定义的掩码自动找到新版本,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指令
@cdnjscdnjs_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)。有关更多信息,请参阅许可文件。