Php 你如何将你的项目从开发到生产?

Php 你如何将你的项目从开发到生产?,php,laravel,Php,Laravel,大家好 我目前正在开发一个关于的项目。到目前为止,我一直在线开发,通过FTP(使用PSPad或类似的简单编辑工具)在Web服务器上直接编辑我的文件 我现在想做的(我相信大多数人都会这么做)是在我的本地机器上设置一个(W)灯堆栈,并在本地编程。但是,如何保持本地代码(包括数据库)与实时网站同步,我还不太清楚。你们是怎么做到的?我知道可能有很多方法和工具可以做到这一点,但您对最佳实践有什么建议?任何建议都非常受欢迎:)我们的平台中有一个设置数组$res::Config 在运行时,检查HTTP主机后,

大家好

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


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

我们的平台中有一个设置数组$res::Config

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

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

无论您如何操作,都要使用环境变量来确定您是想要live还是dev,并相应地设置和设置数组

我们还为间歇开发阶段提供了沙箱和阶段

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


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

许多公司所做的是离线构建,然后使用将编辑推送到服务器上

我不是该软件的专家,因此我将以基本形式介绍您的工作:

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

有几种
git
项目管理系统,如or。我个人使用
比特桶

git
所做的是,当您在本地(w)lamp上离线构建或添加了所需的内容时,您可以
git将它们推送到您的repo或服务器上。然后,更改的文件将与repo或服务器上的现有文件合并。如果你想要你的项目的最新版本,你只要把它们拉下来就行了


要查看使用git时可用的各种选项,有多种方法。但这是你提出的一个看似巨大的问题。 这里有一些好的实践建议——去研究这些项目,然后看看我的方法

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

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

在有多个开发人员的环境中,这是理想的——您可以相互比较/测试并相互协作,版本控制可以阻止开发人员之间的错误

所以-建议第1部分:查找并理解版本控制,然后使用它向实时环境发布代码

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

例如:在我最近参与的一个Moodle项目中,刷新整个数据库需要几秒钟。。。我可以在几分钟内推出补丁和数据库更新。 但是:您应该考虑维护和计划。。。如果站点处于活动状态,并且正在进行数据更改,那么您需要小心处理。考虑添加维护页。

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

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

建议3:在当地工作,然后推动现场直播是更好的做法。你开始走一条比现在更安全更好的路了


希望这有助于。。。但请记住——这是一个大课题,所以你需要做一些研究。

研究
git
,这就是我所用的和它的精妙之处。出于两个原因,我对这个问题投了反对票。1.它与php无关。2.它与拉拉维尔无关。你是对的,可惜我找不到更合适的标签。谢谢你,我会考虑你写的东西,挖掘Git!