【发布时间】:2016-07-18 06:17:57
【问题描述】:
我在这里遇到了一个问题,我觉得有一个我还没有找到的简单而干净的解决方案...... 我的 Cake-PHP-Application 看起来像这样:
- 项目文件夹
- 应用程序
- 供应商
- composer.json
Cake-PHP 和我要使用的外部文件安装在供应商文件夹中。 在供应商中,我有一个用于 twitter bootstrap 的包,它有一个 css 和一个 js 文件,我想将其包含在我的视图中,但它无法访问,因为这些文件不会保留在我的 Cake 的 webroot 文件夹中-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"
}
顺便说一句:composer 会忽略给定的引导安装路径,因为包没有类型...
【问题讨论】:
-
恕我直言,将 composer 用于前端依赖项没有多大意义,您最好使用 bower 之类的东西。
-
你可能是对的,但是因为我必须使用 Composer,所以我使用它并且安装 2 个 packagemanagers 对我来说似乎很奇怪......
-
如果你问我没什么奇怪的,别忘了 composer 天生就是一个 PHP 依赖管理器,你总是会遇到非 PHP 包的问题,导致不得不使用自定义安装程序等。无论如何,请检查stackoverflow.com/q/25685722/1392379 (github.com/RobLoach/component-installer) 或stackoverflow.com/q/19118367/1392379
-
我看到了你的方法,我不认为你在默认情况下是错误的,但是这个问题必须有一个具体的解决方案,因为 cake-php 自然支持作曲家。如果不是这样,那么整个 composer-cake-symbiosys 将毫无意义,除了只是用 composer 安装 cake 而已。我添加的每个包管理器,我都必须安装在服务器上,这对我来说很糟糕。 :)
-
除了使用自定义作曲家安装程序(对于通用软件包或 shim 软件包 - 有什么理由不能使用此选项吗?)、复制/链接文件或制作之外,没有其他解决方案使用额外的依赖管理器,你可能不喜欢它,但它就是这样。
标签: twitter-bootstrap cakephp composer-php