Hus*_*110 6 cakephp twitter-bootstrap composer-php
我在这里遇到了一个问题,我感觉有一个简单而干净的解决方案,我还没有找到...我的Cake-PHP-Application看起来像这样:
Cake-PHP和我想要使用的外部文件安装在vendors-folder中.在供应商中,我有一个twitter bootstrap包,它有一个css-和一个js文件,我想包含在我的视图中,但它不可访问,因为那些文件不会保留在我的Cake的webroot-Folder中-PHP项目.现在我的问题是 - 如何在Cake-PHP项目中使这两个文件都可访问,而不将它们复制到webroot文件夹?使用符号链接对我来说看起来有点像肮脏的黑客...必须有一个干净的解决方案,因为否则使用Cake-PHP与Composer将没有任何意义.我的composer.json看起来像这样:
{
"name": "MyProject",
"version": "0.0.0",
"require": {
"php": ">=5.5.11",
"cakephp/cakephp": "2.6.3",
"composer/installers": "*",
"twbs/bootstrap": "3.3.4",
"components/jquery": "2.1.3"
},
"extra" : {
"installer-paths":{
"plugins/{$name}":["type:cakephp-plugin"],
"app/webroot/bootstrap":["twbs/bootstrap"]
}
},
"config": {
"vendor-dir": "vendors"
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句:composer忽略了bootstrap的给定installpath,因为包没有类型......
使用时tws/bootstrap需要额外的步骤来安装这些资产。这通常是通过符号链接或复制来完成的。
例如,当将 Bootstrap 添加到 Symfony2 时,您需要
"require" : {
"mopa/bootstrap-bundle": "dev-master",
"twbs/bootstrap": "dev-master",
},
"scripts": {
"post-install-cmd": [
/* sensio commands **/
"Mopa\\Bundle\\BootstrapBundle\\Composer\\ScriptHandler::postInstallSymlinkTwitterBootstrap"
],
"post-update-cmd": [
/* sensio commands **/
"Mopa\\Bundle\\BootstrapBundle\\Composer\\ScriptHandler::postInstallSymlinkTwitterBootstrap"
]
},
Run Code Online (Sandbox Code Playgroud)
一个包是资产本身,其他包提供资产的集成和“postInstall”处理程序。
对于Cake,您必须找到执行安装工作的软件包tws/boostrap- 也许 Cake 社区中就有这样的软件包。
但我建议使用一些更简单、开箱即用的东西:
{
"require": {
"slywalker/boost_cake": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用enableCakePlugin::load('BoostCake');并添加您需要的帮助程序。
正如 @ndm 指出的:您还可以决定使用 Composer 与其他资产管理器(间接)建立“桥梁”。其中之一是https://github.com/francoispluchino/composer-asset-plugin
或者您可以直接与这些资产管理器合作,例如 Bower、npm。
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |