祝大家有美好的一天,
我目前正在Laravel上开发一个项目。到目前为止,我一直在线开发,通过 FTP 直接在网络服务器上编辑我的文件(使用 PSPad 或类似的简单编辑工具)。
我现在想做的(以及我相信大多数人实际做的)是在我的本地机器上设置一个(W)LAMP 堆栈并在本地编程。但是,我有点不清楚如何使我的本地代码(包括数据库)与实时网站保持同步。你们是怎么做到的?我知道可能有很多方法和工具可以做到这一点,但您对最佳实践有何建议?任何建议都会非常受欢迎:)
许多公司所做的是离线构建,然后使用git
.
我不是该软件的专家,所以我无法以基本形式描述您所做的事情:
我的建议是在您编辑/更新时创建一个在线存储库(存储库)来存储您的项目。
有几个git
项目管理系统,例如github
或bitbucket
。我个人使用bitbucket
什么git
是当您在本地 (w)lamp 上离线构建或添加所需的内容时,然后将git push
它们上传到您的存储库或服务器。然后,更改的文件将与 repo 或服务器上的现有文件合并。如果您想要项目的最新版本,您只需git pull
将它们下载下来即可。
阅读此处的完整文档以查看使用时可用的各种选项git
我们的平台中有一个设置数组,可用作 $res::Config。
在运行时,在检查 HTTP 主机后,变量会从“dev”更改为“live”,这显然取决于 IP 地址。
在我们的框架引导中,根据 $res::Config->$env 的值,或者之前设置为 dev 或 live 的环境,设置数据库连接的设置。您将这些设置作为 db_live 或 db_dev 存储在 Config 数组中。
不管你怎么做,使用环境变量来确定你想要 live 还是 dev,并相应地设置和设置数组。
我们还为间歇性开发阶段提供沙箱和分期。
至于版本控制,使用git或subversion。
编辑:也有可能在我们的vhost文件中,我们将环境变量设置为 live 或 dev,并且我们的应用程序会相应地从中读取。我建议这种方法:)
有很多方法可以做到这一点。但这是你问的一个看似巨大的问题。这里有一些好的实践建议——去研究这些项目,然后看看我的方法。
通常,您使用称为版本控制的过程,它允许您创建系统的“版本”或快照。常用的“SVN”软件很好,但新出现的(不再是)孩子是 GIT,我个人推荐它。
您可以使用此系统以受控方式实时推送代码库。虽然文件/上传功能本质上类似于 FTP,但它允许您实时转储站点的特定版本。
在有多个开发人员的环境中,这是理想的 - 您可以相互比较/测试和解决问题,并且版本控制往往会阻止开发人员之间的错误。
所以 - 建议第 1 部分:查找并了解版本控制,然后使用它将 CODE 发布到实时环境。
第 2 部分:我使用数据库转储并将它们返回到我的机器上使用。如果实时数据库需要更新,我可以在本地工作并简单地导出,然后在实时系统上重新导入。
例如:在我最近参与的一个 Moodle 项目中,刷新整个数据库需要几秒钟的时间……我可以在几分钟内推送一个补丁和数据库更新。但是:您应该考虑维护和调度......如果站点是实时的并且有持续的数据更改,那么您需要小心这一点。考虑添加维护页面。
建议 2:研究 SQL 转储/导出和导入。
我个人使用 phpmyadmin 转储和重新导入,因为它非常方便。
建议 3:在本地工作然后推送现场是更好的做法。你正在开始一条比你现在更安全、更好的道路!
希望这会有所帮助......但请记住 - 这是一个很大的主题,因此您需要进行一些研究。