【问题标题】:Should I use pure PHP/MySQL for developing web applications?我应该使用纯 PHP/MySQL 来开发 Web 应用程序吗?
【发布时间】:2011-01-24 13:08:47
【问题描述】:

我从小就涉足编程/脚本语言。我从 HTML 和 CSS 开始,然后是 PHP(我非常擅长),然后是 Python、Perl 和 C(++)。我最近在 PHP(以及 MySQL)方面做了很多工作。

在花了这么多时间学习这些语言之后,我现在想用它们一些事情。我正在考虑启动/贡献一个开源项目;几乎可以肯定是某种网络应用程序。

根据我编写(诚然很小的)Web 应用程序的经验,我发现编写“纯”PHP 是一个极其缓慢和乏味的过程。

我的问题是:如果我要从头开始编写一个相对复杂/大型的 Web 应用程序,我应该写什么?我应该使用纯 PHP/MySQL,还是使用 Django、Rails 或 CakePHP 之类的框架?

【问题讨论】:

  • 不要使用 PHP。 (me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design) 你会发现你花大部分时间在 HTML+CSS+JS 和适当的模板中做前端工作。使用 PHP 作为控制器部分只是一个糟糕的选择。尝试 flask+Jinja2+Bootstrap 之类的,同时将逻辑与演示分开。这个世界不需要更多的 PHP 程序员。但是是的 - 框架,但并非没有正确理解它的作用。

标签: php mysql web-applications


【解决方案1】:

从头开始编写复杂的应用程序,我绝对不会使用 "bare PHP":我肯定会使用框架:他们提供:

  • 大量有用的类/方法
  • 一些规则——例如“控制器应该保存在哪个目录”“如何编写视图”、...
  • MVC - 即它们有助于更好地构建项目结构

请注意,此答案对个人项目和专业项目均有效。


PHP 中有几个很棒的框架,例如:

要记住的一件事:学习如何很好地使用框架需要一些时间:从一个小项目开始,然后再做一个大项目,这可能是一个好主意;-)


现在,当您问自己“我应该选择哪个框架”的问题时,这主要是个人喜好问题......这里有几个问题/答案可能会有所帮助:


当您问我会选择哪个框架时;好吧:

  • 我非常喜欢 Zend Framework,并且经常使用Doctrine 作为 ORM(它是 Symfony 的默认 ORM,但可以很容易地与 ZF 一起使用)
  • 如果我必须选择另一个,我可能会选择 Symfony,因为我已经看到它在工作中的几个项目中使用过,并且认识很多使用它并喜欢它的人

【讨论】:

  • 我不一定喜欢 PHP 框架;我看过 Rails 和 Django,虽然不是很详细。
  • @Tim :我已经编辑了我的答案以添加一些信息,并回答你的问题 :-) (对不起,我不能说任何关于 ruby​​ 或 python 的内容:从未使用过这些语言)
【解决方案2】:

如果您已经了解该语言,则应该绝对使用框架(除非您是受虐狂)。

对我来说,除了它们通常与各种优秀的库捆绑在一起之外,使用框架就是有效地利用时间。

最重要的是,它会节省您的时间。您可以从担心基础/架构的细节中解脱出来,并且能够将时间花在应用程序本身的功能上。

另外,它会节省其他人的时间;尤其是因为您计划完全开源。

【讨论】:

  • 除非你想学习一门语言,否则重新发明轮子并不能很好地利用你的时间;当然,除非你认为你可以制造出更好的轮子(然后给你更多的动力)。
【解决方案3】:

根据您的技能水平,是的,您可以在没有框架的情况下使用纯 PHP 来完成。 IMO,这也将有助于提高您在调试、逻辑和其他方面的技能。但是,另一方面,由于学习曲线,您将限制其他程序员来改进/维护您的代码,在这种情况下,该框架用作一种通用语言。我建议,如果您的项目比较复杂,或者有可能让其他程序员加入该项目,那么您可以选择一个您觉得舒服的框架并使用它。

【讨论】:

    【解决方案4】:

    取决于谁将使用代码,它必须在哪个平台上运行以及数据库应该有多复杂。

    如果您为公司或社区开发,使用 PHP 总是最容易的,因为有很多其他人知道它,所以对于公司来说,招聘懂这种语言的人更容易。

    如果你主要想自己开发,用你最喜欢的,我什至听说过用纯普通 lisp 编写的网站。

    如果应用程序只能在 Windows 上运行,C# 也是一个很好的解决方案,因为您可以非常快速地开发 Web 应用程序,而 .NET 库使许多任务变得容易。

    如果结构简单,您可以使用 MySQL 作为数据库后端,但对于更复杂的数据库,我会使用 postgres,因为 MySQL 性能似乎随着复杂性的增加而迅速下降(主观意见)。

    编辑: 正如其他人所指出的,框架总是一个好主意。大多数当前语言都有网络框架。对于 PHP CakePHP 是最近推荐给我的。

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多