如何使用PHPStorm处理大量远程文件

7
我有一个小型的Debian VPS服务器,我在其中托管和开发几个小型的私人PHP网站。
我使用Windows桌面上的PHPStorm进行开发。
我的大部分项目只有几十个源文件,但也包含几千个库文件。
我不想在本地计算机上运行Web服务器,因为这会引起一系列问题,对于这样的小型项目,我不想被打扰。(例如:设置另一个Web服务器;同步桌面和VPS-box之间的文件;管理Windows和Debian的不同配置(不同的主机,路径...);保持数据库模式和数据同步)。
我正在寻找一种处理大量远程文件的好方法。
到目前为止,我的方法是:
1.将远程文件系统挂载在Windows上(尝试过pptp/smb,ftp,webdav),并使用PHPStorm像处理本地文件一样工作。
=>索引、同步和PHPStorm的VCS支持变得无法使用。 这可能是由于文件访问的高延迟导致的。
2.PHPStorm提供自动复制远程文件到本地机器,然后在更改时进行同步的功能。
=>初始复制后,这很快。 不幸的是,这种设置下,我经常使用的PHPStorm无法提供VCS支持。
欢迎就此提出您的任何想法 :)

1
我决定在这个问题上设置赏金,因为我有类似的问题。PHPStorm是我一直在使用的最好的IDE,但这也是它最大的限制。它无法有效地处理远程文件。我的解决方案是在小项目中使用PHPStorm,在FTP / SFTP上处理远程项目时使用PHPDesigner。这很好用,PHPDesigner能够创建类等层次结构。我相信即使在团队合作时,我的文件也始终是最新的。 - WooDzu
嗨,Imran,文档只是说IDE不支持直接在远程服务器上进行编辑,尽管提问者描述了一种解决方法,但它很慢且过度。在PHP Storm中,通过本地文件与远程主机一起工作可能不是一个选项,因为它不会同步其他人在服务器上所做的更改。 - WooDzu
PhpStorm确实具有远程更改感知功能。请参见设置->部署->选项["通知有关远程更改"]。 PhpStorm还提供了与远程的差异特性。然而,最安全的设置是制定一个规则,每个工程师都有自己的远程开发环境,并将本地检出视为记录源。通常,在远程系统上进行的更改会影响到糟糕的隔离开发环境,这应该得到解决,因为这是一个基本问题,可以很容易地解决。 - Lance Caraccioli
1个回答

1
我使用PhpStorm,配置与您的第二种方法非常相似(本地副本,自动同步更改),并且重要的是支持版本控制系统(VCS)。
理想情况下,根据我的经验,最简单的解决方案是在本地机器上检出/克隆您的VCS分支,并将远程文件系统用作不了解VCS的暂存平台;即普通文件系统。
然而,在现实世界中,如果需要在每个系统上都有VCS(例如在我的情况下),可能是因为您的远程环境是您的商店的标准,或者您商店的专有审查/构建工具是特定于某个平台。那么需要稍微不同的远程设置,但仍然将远程系统视为暂存是最佳方法。
例如:Perforce-集中式VCS(客户端工作区) 在我的经验中,基于工作区的VCS系统(例如Perforce)可以通过在本地和远程系统之间共享相同的客户端工作区来最好地处理,这样做的好处是只需应用一次VCS文件状态更改。缺点是远程系统上的文件系统更改通常必须手动处理。在我的情况下,我手动chmod(或操作系统等效)我的远程文件并洗手(问题解决)。另一种方法(双工作区)需要更多的移动部件,我不建议这样做。

例子:Git - 分布式版本控制系统

更简单的方法当然是使用 Git,它有一个奇妙的功能,可以检测到文件变化而无需将文件权限直接耦合到版本控制系统(VCS)中。这使得生活变得轻松,因为您可以从一个共同的工作分支开始,并创建两个不同的分支“my-feature”和“my-feature-remote-proxy”等。一旦您决定将更改合并到上游,最好从本地环境中进行。远程代理分支可以被还原或者任何你想做的事情。注意:对于 Git,我总是有两个分支,因为这很容易。当您的硬盘在一次不幸的闪电打击中熔断时,您有额外的冗余 :|

希望这对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接