gpt4 book ai didi

php - "PHP Composer"与 "Ruby Gems and Bundler"相比

转载 作者:可可西里 更新时间:2023-10-31 22:47:53 28 4
gpt4 key购买 nike

(首先,这个问题不是“哪个更好”的问题。我只是想知道它们在功能方面有何相似之处和不同之处。)

我是 php 开发人员,目前正在学习 ruby。如今,鼓励许多 php 开发人员使用 Composer 进行依赖管理。在提问之前,我想先验证一下我的知识。

据我了解,

  • Composer 是 php 库(或包)的依赖管理工具。
  • Composer 在每个项目基础上安装 php 库(所谓的本地)。我的意思是,为 project1 安装的 php 库不能重新用于 project2,而无需为 project2 再次安装。

我注意到Ruby也有很好的依赖管理工具“RubyGems”。据我所知,

  • RubyGems”是“Gems”的包管理器。
  • Gem”是以标准格式打包用于共享的Ruby 程序或库。 (Rails 也是一颗 gem 。)
  • Gem 可以通过 gem install sinatra 这样的命令安装。
  • 但是,还有所谓的“Bundler”,它也是一个 gem,用于为应用程序 bundle gem。
  • 当命令 bundle install 运行时(在特定的 ruby​​ 项目目录下),将为此 ruby​​ 项目安装 Gemfile 中列出的所有 gem。

那么,我的问题就在这里。

  1. Composer 是否类似于 RubyGemsBundler ?
  2. 当运行 gem install sinatra 时,它是否安装在系统级别?
  3. 当运行 bundle install 时,Gems 是在本地(仅在这个项目上)还是在系统范围内安装?
  4. 如果我需要一个 gem 的两个版本(例如 sinatra)用于不同的项目,我应该如何处理?

(对不起,我的问题很长,如果我的理解有问题,请再次抱歉,请指出正确的。)

最佳答案

1) Composer 更类似于 bundler。Composer 将所有内容带入您的项目,bundler 将所有内容带入您的系统并在您的项目上下文中“链接”它们。 Bundler 在后台处理 gems。

2) 是的。 gem install 在系统范围内执行操作(如果您使用 rbenv 或 rvm 之类的东西,则按用户执行)

3) 查看 1. 系统范围,并在您通过 bundle exec 运行时根据 Gemfile 正确选择

4) 我建议使用 Gemfile,将您感兴趣的版本放在那里,然后让 bundler 完成剩下的工作(它将在后面安装多个版本并选择正确的版本)。不过一定要运行“bundle exec”。如果您喜欢 rvm,您还可以选择使用 rvm gemset,但这更难处理,并且在尝试部署时会遇到非常糟糕的时间。

关于php - "PHP Composer"与 "Ruby Gems and Bundler"相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462969/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com