升级PHP/MYSQL应用程序?

升级PHP/MYSQL应用程序?,php,process,upgrade,recommendation-engine,Php,Process,Upgrade,Recommendation Engine,我想了解如何管理自己开发的php/mysql应用程序的升级过程。也就是说,如果我们的php/mysql应用程序有一个“稳定”的版本在我们的生产服务器上运行,并且我们现在想要将它升级到我们已经开发的下一个版本,那么我们如何优雅地做到这一点呢?我应该实施哪些实践 我计划做的只是 要求开发者停止 检查代码是否稳定 /功能测试已经完成 使应用程序离线***(问:如何防止ppl登录/访问公共页面?最佳做法?),但允许开发人员通过秘密登录页面/url进行访问 登录到生产服务器并查看最新版本 局部*** 让开

我想了解如何管理自己开发的php/mysql应用程序的升级过程。也就是说,如果我们的php/mysql应用程序有一个“稳定”的版本在我们的生产服务器上运行,并且我们现在想要将它升级到我们已经开发的下一个版本,那么我们如何优雅地做到这一点呢?我应该实施哪些实践

我计划做的只是

  • 要求开发者停止 检查代码是否稳定 /功能测试已经完成

  • 使应用程序离线***(问:如何防止ppl登录/访问公共页面?最佳做法?),但允许开发人员通过秘密登录页面/url进行访问

  • 登录到生产服务器并查看最新版本 局部***
  • 让开发人员/测试人员通过秘密访问页面/url测试他们的代码***
  • 完成后,我们通过删除此秘密访问页/url、删除“维护”页下的站点并恢复对所有站点的访问来恢复对所有站点的访问

  • ***注意:一个简单的方法是将/myapp/重命名为/myapp.old/,并将新的应用程序版本放入/myapp.new/中。开发者将访问/myapp.new/,并进行测试,直到他们满意为止,然后在我们完成后,我们将其重命名为/myapp/(这只是一个基本想法)

    这是一个巨大的问题,在许多方面,这将取决于你的具体项目。但以下是一些需要思考的实践:

  • 在代码中添加大量注释。当你在一两年后回去做改变时,现在看起来完全合乎逻辑的事情会让人困惑

  • 使用自己的数据库维护站点的开发版本。您可以在发布到生产站点之前测试对站点的更改

  • 使用PHP框架(如CakePHP、CodeIgniter等)。如果你的项目进展缓慢,这可能很难做到。但它将帮助您以一种易于更新的方式编写代码,并将包含许多稳定、成熟的函数,您不必从头开始编写这些函数。使用其中一个框架(并遵循其最佳实践)可能是初学者学习编写易于更新的模块化代码的最佳方式。这也将鼓励您以与站点结构一致的方式开发数据库

  • 编写测试(框架应该可以帮助您完成这项工作)以编程方式检查代码是否存在错误

  • 使用版本控制系统,如Subversion或Git。这允许您跟踪对站点的更改,并在您意识到更改有问题时轻松回滚更改


  • 全面的单元测试覆盖将非常有用,小的、高度内聚的、低耦合的类也是如此。除了单元测试之外,从集成级别进行良好的覆盖也是很有价值的。

    我想补充一点-使用自动化构建工具(如Phing)来实现可重复的、无需动手的构建(减少犯错误的机会,并允许问题滑入生产)。走这条路线的另一个好处是,您可以将单元测试集成到构建中。如果测试失败,则不会将构建升级到生产环境。