我应该使用纯 PHP/MySQL 来开发 Web 应用程序吗?

Posted

技术标签:

【中文标题】我应该使用纯 PHP/MySQL 来开发 Web 应用程序吗?【英文标题】:Should I use pure PHP/MySQL for developing web applications? 【发布时间】: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 程序员。但是是的 - 框架,但并非没有正确理解它的作用。 【参考方案1】:

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

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

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

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

Zend Framework Symfony CakePHP Code Igniter Kohana

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

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

PHP Framework Decision - Analysis paralysis! To use a PHP framework or not? PHP - MVC framework? Which PHP Framework is right for this project? Best PHP framework for an experienced PHP developer?

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

我非常喜欢 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 是最近推荐给我的。

【讨论】:

以上是关于我应该使用纯 PHP/MySQL 来开发 Web 应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何记录所有 Web 事务 (PHP/Laravel)

自学php+mysql开发环境应该怎么弄

酒店管理系统用php+apache+mysql做的谁有?

这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境!

部署一个小型 PHP + MySQL 服务

php+mysql入门笔记