我开始研究一个新的,运行时间更长的php项目。我想尽可能地将我的文件与框架文件分开,以便能够更新框架而无需将我的文件与框架文件分开。
在Java中,我使用maven并将所有内容放在lib文件夹中。从那里,我将libs导入我的代码中。我了解到php的相同工具是作曲家(或者我怀疑如此;))但我很难开始使用它。
我在phpstorm中配置了项目和作曲家,并添加了一个composer.json文件,看起来像这样(我删除了个人信息):
{
"name": "example",
"description": "description_text",
"minimum-stability": "stable",
"license": "proprietary",
"authors": [
{
"name": "author's name",
"email": "email@example.com"
}
],
"require": {
"twbs/bootstrap": "v4.0.0-alpha.*",
"laravel/laravel": "v5.2.*",
"components/jquery": "2.2.*",
"components/font-awesome": "4.6.*"
},
"config": {
"vendor-dir": "laravel/laravel/public"
}
}
正如您所看到的,我试图将所有内容移动到laravel的公共文件夹中,其中Bootstrap和jQuery属于AFAIK(路径基于观察,laravel本身位于vendor / laravel / laravel中)。但当然,laravel也会被放在那里。
最重要的是,作曲家的下载量超出了我的需要。例如,我只需要bootstraps dist文件夹的内容(css和js用于bootstrap 4(以及它们,只有min文件))但它也会安装文档等。
因为我没有这方面的经验,所以我不知道我想要的是什么,或者怎么做。我怀疑我的许多问题都来自于我尝试在同一个composer.json文件中安装laravel和其他东西。
你可以帮帮我吗? :)此致
基督教
答案 0 :(得分:0)
引用this Laravel文档,您希望放置所有"框架"在vendor
目录中,是的,包括Laravel,请删除你的配置composer.json。
vendor
目录包含您的Composer依赖项。
您尝试放置物品的地方是您的资源
public
目录包含前端控制器和您的资产(图像,JavaScript,CSS等)。
app
是您放置课程等的地方。
至于这些框架对于不需要的文件有点臃肿,我还没有找到一种很好的方法来清理它们,而不是手动删除它们。
我试图在maven和作曲家之间得出一个结论,但是它的发布方式比我更喜欢。你是对的,这是最接近PHP maven的。
修改强>
当我重新阅读它时,对你的问题的一个更好的答案是你的代码与框架版本一样需要它。我怀疑开发过程中的任何版本都会破坏向后兼容性。至少我希望不会,如果你知道一个新版本即将推出beta / dev / nightly版本。
至于我上面的陈述是,作曲家被设计成以所描述的方式使用这个结构。如果你想使用作曲家的psr-4自动加载部分,这将对你有很大帮助。
在任何情况下都将供应商视为您的.m2本地回购。