-1

祝大家有美好的一天,

我目前正在Laravel上开发一个项目。到目前为止,我一直在线开发,通过 FTP 直接在网络服务器上编辑我的文件(使用 PSPad 或类似的简单编辑工具)。

我现在想做的(以及我相信大多数人实际做的)是在我的本地机器上设置一个(W)LAMP 堆栈并在本地编程。但是,我有点不清楚如何使我的本地代码(包括数据库)与实时网站保持同步。你们是怎么做到的?我知道可能有很多方法和工具可以做到这一点,但您对最佳实践有何建议?任何建议都会非常受欢迎:)

4

3 回答 3

2

许多公司所做的是离线构建,然后使用git.

我不是该软件的专家,所以我无法以基本形式描述您所做的事情:

我的建议是在您编辑/更新时创建一个在线存储库(存储库)来存储您的项目。

有几个git项目管理系统,例如githubbitbucket。我个人使用bitbucket

什么git是当您在本地 (w)lamp 上离线构建或添加所需的内容时,然后将git push它们上传到您的存储库或服务器。然后,更改的文件将与 repo 或服务器上的现有文件合并。如果您想要项目的最新版本,您只需git pull将它们下载下来即可。

阅读此处的完整文档以查看使用时可用的各种选项git

于 2013-03-22T11:17:49.747 回答
1

我们的平台中有一个设置数组,可用作 $res::Config。

在运行时,在检查 HTTP 主机后,变量会从“dev”更改为“live”,这显然取决于 IP 地址。

在我们的框架引导中,根据 $res::Config->$env 的值,或者之前设置为 dev 或 live 的环境,设置数据库连接的设置。您将这些设置作为 db_live 或 db_dev 存储在 Config 数组中。

不管你怎么做,使用环境变量来确定你想要 live 还是 dev,并相应地设置和设置数组。

我们还为间歇性开发阶段提供沙箱和分期。

至于版本控制,使用git或subversion。

编辑:也有可能在我们的vhost文件中,我们将环境变量设置为 live 或 dev,并且我们的应用程序会相应地从中读取。我建议这种方法:)

于 2013-03-22T11:13:52.303 回答
1

有很多方法可以做到这一点。但这是你问的一个看似巨大的问题。这里有一些好的实践建议——去研究这些项目,然后看看我的方法。

通常,您使用称为版本控制的过程,它允许您创建系统的“版本”或快照。常用的“SVN”软件很好,但新出现的(不再是)孩子是 GIT,我个人推荐它。

您可以使用此系统以受控方式实时推送代码库。虽然文件/上传功能本质上类似于 FTP,但它允许您实时转储站点的特定版本。

在有多个开发人员的环境中,这是理想的 - 您可以相互比较/测试和解决问题,并且版本控制往往会阻止开发人员之间的错误。

所以 - 建议第 1 部分:查找并了解版本控制,然后使用它将 CODE 发布到实时环境。

第 2 部分:我使用数据库转储并将它们返回到我的机器上使用。如果实时数据库需要更新,我可以在本地工作并简单地导出,然后在实时系统上重新导入。

例如:在我最近参与的一个 Moodle 项目中,刷新整个数据库需要几秒钟的时间……我可以在几分钟内推送一个补丁和数据库更新。但是:您应该考虑维护和调度......如果站点是实时的并且有持续的数据更改,那么您需要小心这一点。考虑添加维护页面。

建议 2:研究 SQL 转储/导出和导入。

我个人使用 phpmyadmin 转储和重新导入,因为它非常方便。

建议 3:在本地工作然后推送现场是更好的做法。你正在开始一条比你现在更安全、更好的道路!

希望这会有所帮助......但请记住 - 这是一个很大的主题,因此您需要进行一些研究。

于 2013-03-22T11:18:03.730 回答