jbsnewmedia / asset-composer-bundle
一个用于帮助您管理资产的Symfony组件
Requires
- php: >=8.0
- symfony/framework-bundle: ^6.0|^7.0
Requires (Dev)
README
一个直接从 vendor
目录管理您的资产的Symfony组件,确保所有文件始终使用它们的文件时间版本保持最新。
要求
- PHP 8.0 或更高版本
- Symfony框架组件6.0或更高版本
安装
要安装AssetComposerBundle,您需要使用 Composer。在项目根目录中运行以下命令
composer require jbsnewmedia/asset-composer-bundle
用法
此组件允许您将来自 vendor
目录的资产包含到您的Symfony项目中。它通过使用文件的最后修改时间作为版本号来确保所有文件始终是最新的。这样,即使您更新了依赖项,您也可以确保资产始终是最新的。
添加资产示例
要将来自 vendor
目录的资产添加到项目中,请使用Composer管理您的依赖项。此方法确保所有资产始终是最新的,因为Composer将为您处理所需包的下载和更新。以下是如何在Symfony项目中包含资产的示例
通过Composer安装资产包:
例如,要将Bootstrap、FontAwesome和AvalynxAlert包含到项目中,请运行以下命令
composer require twbs/bootstrap composer require components/font-awesome composer require avalynx/avalynx-alert
这将在您的Symfony项目的 vendor
目录中下载资产包。
在模板中包含资产:
一旦安装了资产,您就可以使用 addAssetComposer
函数将它们包含到twig模板中。此函数将资产注册为包含在HTML输出中。以下是在基础模板中使用它的示例
{% extends 'base.html.twig' %} {% do addAssetComposer('twbs/bootstrap/dist/css/bootstrap.css') %} {% do addAssetComposer('components/font-awesome/css/all.css') %} {% do addAssetComposer('avalynx/avalynx-alert/dist/css/avalynx-alert.css') %} {% do addAssetComposer('avalynx/avalynx-alert/dist/js/avalynx-alert.js') %}
在上面的示例中,指定包的CSS和JS文件被添加到资产管道中,确保它们包含在最终的HTML输出中。
渲染资产:
最后,您需要使用 renderAssetComposerStylesheets
和 renderAssetComposerJavascripts
函数在HTML中渲染样式表和JavaScript。以下是如何在HTML结构中包含它们的示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{% block title %}Welcome!{% endblock %}</title> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>"> {% block stylesheets %} {{ renderAssetComposerStylesheets() }} {% endblock %} {% block javascripts %} {{ renderAssetComposerJavascripts() }} {% endblock %} </head> <body> {% block body %}{% endblock %} {{ renderAssetComposerJavascripts('bottom') }} </body> </html>
按照这些步骤,您可以在Symfony项目中无缝管理和包含来自 vendor
目录的资产,确保它们始终是最新的。
文件结构概述
- src
- Controller
AssetComposerController.php
:用于管理资产路由的控制器。
- DependencyInjection
AssetComposerExtension.php
:依赖注入配置。Configuration.php
:组件的配置设置。
- Resources
- config
routes.yaml
:路由配置。(已移动到config/routes/asset_composer.yaml
)services.yaml
:Symfony服务配置。
- Service
AssetComposer.php
:处理资产的核心功能。
- Twig
AssetComposerBundle.php
:主组件类。
- Controller
composer.json
:组件的Composer配置文件。
自动加载
组件使用PSR-4自动加载,如 composer.json
中定义。
"autoload": { "psr-4": { "JBSNewMedia\\AssetComposerBundle\\": "src/" } }
确保通过运行以下命令更新应用程序的自动加载器
composer dump-autoload
许可证
此组件基于MIT许可证。有关详细信息,请参阅 LICENSE 文件。
由Juergen Schwind和其他贡献者开发。
贡献
欢迎贡献!如果您想贡献,请将仓库fork,然后提交一个包含您更改或改进的pull request。我们期待在以下领域得到贡献:
- 错误修复
- 功能增强
- 文档改进
在提交pull request之前,请确保您的更改有良好的文档,并遵循项目现有的编码风格。
联系方式
如果您有任何问题、功能请求或问题,请在我们的GitHub仓库上打开一个issue或提交一个pull request。
我们期待您的回复!