Composer是用于获取PHP依赖项的工具。它与其他Web资源(如CSS或JS文件)不兼容。
Composer Asset Plugin
为了解决获取资源的问题,François Pluchino(fxp)开发了Composer Asset插件。它为Composer提供了一个NPM / Bower依赖项管理器。它是这些依赖项管理器的桥梁,并将其获取到vendor文件夹中。
请记住,您始终可以直接使用Bower或NPM。
使用composer.json定义的Composer获取您的PHP依赖项。
使用bower.json定义的Bower获取您的资产。
这可能是一种更清晰的方法。
文档 - Packagist
您可以从CLI中要求它:composer require fxp/composer-asset-plugin
例如,要获取“Twitters Bootstrap”和“Jquery”等资产:
{
"require": {
"bower-asset/bootstrap": "dev-master",
"bower-asset/jquery-2.1.0": "2.1.0"
}
}
一些框架提供自定义处理程序用于资产,主要是为了支持它们各自的文件夹布局并从供应商文件夹中将东西复制到正确的位置。我不知道Phalcon是否有提取资产的功能。
难道没有一种“自动”完成这个过程的方法吗?或者通过在控制器中指定,然后将文件复制到公共目录中?
从供应商文件夹中将资产复制到应用程序布局的正确位置是另一回事。
没有自动完成此操作的方式。您必须自己提供机制。
例如,您可以将安装路径从供应商更改为public/assets或其他内容,请参见
https://github.com/francoispluchino/composer-asset-plugin/blob/master/Resources/doc/index.md#define-a-custom-directory-for-the-assets-installation
插件不会复制任何东西。
Bower + Grunt(简而言之:使用Bower获取资产,使用Grunt复制文件)。
最接近“指定控制器”的方法是设置一个
Grunt任务,将仅从
web/assets/vendor
复制与Bower获取的相关内容到
web/assets/app
文件夹中。
换句话说:即使像Bower这样的JS包管理器也不提供自动复制主API文件。Bower会将最新版本的jQuery获取到一个定义好的vendor文件夹中,但它不会自动将
jquery.min.js
复制到
web/assets/js/jquery.min.js
中。您需要在其上添加一个任务。