laminas-api-tools / api-tools-asset-manager
用于将模块资源复制到应用程序文档根目录的Composer插件。
Requires
- php: ~8.0.0 || ~8.1.0 || ~8.2.0
- composer-plugin-api: ^1.1 || ^2.0
- laminas/laminas-zendframework-bridge: ^1.0
Requires (Dev)
- composer/composer: ^1.4.1 || ^2.1.9
- laminas/laminas-coding-standard: ~2.3.0
- mikey179/vfsstream: ^1.6.10
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.5.27
- psalm/plugin-phpunit: ^0.16.1
- vimeo/psalm: ^4.30
Replaces
- zfcampus/zf-asset-manager: ^1.2.0
README
🇷🇺 俄罗斯公民
我们,Laminas的参与者,来自不同的国家。我们中许多人有俄罗斯和乌克兰的朋友、亲戚和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在二战中与法西斯作战。在这里,没有人支持法西斯主义。
我们中的一员有一个乌克兰亲戚,她和儿子一起从家中逃出。由于前方道路上的轰炸,火车延误了。我们有朋友在防空洞里藏身。我们在空袭后焦急地等待他们的消息,空袭不分青红皂白地袭击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些情况。我们直接观察到这些。
您信任我们足够,以至于使用我们的程序,我们请求您再次信任我们。我们需要帮助。走出家门,抗议这场无用的战争。停止流血。说“不,战争!”
🇺🇸 致俄罗斯公民
Laminas的我们来自世界各地。我们中许多人有俄罗斯和乌克兰的朋友、家人和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在二战中与纳粹作战。在这里,没有人支持法西斯主义。
我们团队的一员有一个乌克兰亲戚,她和儿子一起逃离了家园。由于前方道路上的轰炸,火车延误了。我们有朋友在防空洞里躲藏。我们在空袭后焦急地等待他们的消息,空袭不分青红皂白地袭击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些情况。这是我们亲身体验到的。
您信任我们足够,以至于使用我们的软件。我们要求您信任我们说出真相。我们需要您的帮助。走出家门,抗议这场不必要的战争。停止流血。说“停止战争!”
api-tools-asset-manager
是一个Composer插件,它将配置的Web可访问资源复制到Laminas应用程序的公共文档根目录。它使用 rwoverdijk/AssetManager 的配置格式,具体来说是这个子集
'asset_manager' => [ 'resolver_configs' => [ 'paths' => [ /* paths containing asset directories */ ], ], ],
每个配置的路径都会迭代,然后将其下的每个路径复制到公共树中。
安装
$ composer require --dev laminas-api-tools/api-tools-asset-manager
推荐用于开发
我们主要推荐此模块用于开发目的。在大多数情况下,当准备生产时,应使用特定于项目的资源覆盖第三方模块的资源。为了强调这一点,默认情况下会从您的git仓库中排除资源。(您可以在稍后手动添加它们,如下所述。)
示例
以下是一个示例,假设在一个包内部具有以下目录结构
./
- asset/
- README.md
- gruntfile.js
- package.json
- api-tools/
- css/
- bootstrap.min.css
- img/
- logo.png
- js/
- bootstrap.min.js
- jquery.min.js
- api-tools-welcome/
- css/
- main.min.css
- img/
- ag-hero.png
- config/
- module.config.php
其中 module.config.php
至少定义了以下内容
return [ 'asset_manager' => [ 'resolver_configs' => [ 'paths' => [ __DIR__ . '/../asset/' ], ], ], ]
当您安装包时,资产管理器会将 asset/api-tools/
和 asset/api-tools-welcome/
树复制到项目的 public/
路径。单独的文件 asset/README.md
、asset/gruntfile.js
和 asset/package.json
被排除在安装之外,因为它们不是目录。
此外,在安装过程中,插件会将一个.gitignore
文件添加到public/
路径,列出所有新目录。
# public/.gitignore
api-tools/
api-tools-welcome/
安装完成后,您可以访问相对于public根目录安装的任何资源。
卸载
当您删除模块时,插件将
- 从public树中删除为该模块配置的所有资源树。
- 从
public/.gitignore
文件中删除与这些资源树相关的条目。
保留资源
资源默认情况下被Git标记为忽略。此模块的主要目的是为了开发目的;它是为了允许安装与Apiglity管理UI、欢迎屏幕和文档相关的资源而开发的,其中大部分仅在开发模式下相关。
然而,如果您希望保留public树中的资源,可以按照以下步骤操作
- 编辑
public/.gitignore
文件,移除您希望保留的资源树条目。 - 将资源树添加到您的仓库中(
git add public/{tree}
)。
从public/.gitignore
中删除条目就足以防止卸载器在您删除模块时移除资源。