jjzjj

php - self 更新 PHP+MySQL 应用程序的最佳实践是什么?

coder 2023-06-10 原文

现在,桌面应用程序 self 更新是非常标准的做法。在 Mac 上,每个使用 Sparkle 的非 Apple 程序在我的书中是一个即时的胜利。对于 Windows 开发人员,this has already been discussed at length .我还没有找到关于 self 更新网络应用程序的信息,希望您能提供帮助。

我正在构建一个旨在像 Wordpress 或 Drupal 一样安装的 Web 应用程序 - 将其解压缩到一个目录中,点击某个安装页面,然后就可以使用了。为了获得广泛的服务器兼容性,我被要求使用 PHP 和 MySQL —— 那是 **MP 吗?无论如何,它必须是广泛的跨平台。就上下文而言,这基本上是针对小型企业的统一 Web 消息传递应用程序。这不是另一个 CMS 平台,想想 webmail。

我想了解自更新网络应用程序。首先,(1)这是一个坏主意吗?从 Wordpress 2.7 开始,自动更新是一个按钮,这看起来很简单,但我可以想象有很多方法可能会变得非常非常错误。此外,Web 文件可被 Web 进程写入的想法不是安全漏洞吗?

(2) 值得开发时间吗?世界上可能有数百万个 WP 安装,因此 WP 团队花费时间来简化它可能是值得的,在全局范围内节省了数百万工时。我只能想象我的软件安装了几千次 - 构建 self 升级值得时间投资,还是我可以假设足够成熟以首先下载和安装 Web 软件的用户可以通过升级 list ?

如果这不是安全灾难或浪费时间,那么 (3) 我正在寻找以前做过的任何人的建议。您是否在数据库中保留版本表?您如何管理数据库升级?在自更新 Web 应用程序的上下文中,您使用什么方法来回滚部分升级?使用 ORM 层是否更容易或更难?您是保留版本更改的增量,还是每次都把整个事情搞砸?

感谢您对此的看法。

最佳答案

坦率地说,这确实取决于您的用户群。有大量的 PHP 应用程序不会自动升级。他们的用户要么有足够的技术来处理升级过程,要么就是不升级。

我打算分两步:

1) 认真问问自己,您的用户可能真正需要什么。 self 更新是否会为采用提供足够的插入力来证明额外工作的合理性?如果你确信答案是肯定的,那就去做吧。

既然你在这里问,我猜你还不知道。在这种情况下,我打算执行第 2 步:

2) 发布不带该功能的 1.0 版。等待用户反馈。您的用户可能会立即要求更简单的升级过程,在这种情况下,您应该优先考虑它。或者,您可能会发现您的用户更关心其他一些功能。

在不询问用户的情况下猜测用户想要什么是一种将大量开发时间浪费在人们实际上并不需要的东西上的好方法。

关于php - self 更新 PHP+MySQL 应用程序的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723791/

有关php - self 更新 PHP+MySQL 应用程序的最佳实践是什么?的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  3. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  4. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  7. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  8. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  9. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  10. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

随机推荐