2012-02-19 65 views
2

我刚开始学习PHP。我想我很好。我想编写一个内容管理系统,就像我自己的一个项目一样,不管它需要多长时间。更具体地说,一个简单的游戏CMS,用户可以登录,发布部落统计数据,发布在论坛中,拥有用户配置文件,即将到来的匹配等,您可以自己安装或编码的各种其他模块。之前已经完成,但我觉得通过这样做可以学到很多东西。启动一个大型PHP项目。 OOP是必要的还是仅仅是一种偏好?

有经验的程序员:

需要什么来进行这样的项目呢?
任何框架偏好?
是否需要OOP?
是否有某些方法可以开展这样一个大型项目?

我听说过类似的CakePHP,笨,和Zend各种框架,但我不知道我该怎么做的吧。

谢谢!

+3

OOP是一个语法风格,而不是功能依赖。你可以在汇编器中编写面向对象的代码。但那不是重点。 – mario 2012-02-19 18:12:30

回答

8

在任何项目中最重要的一步是规划。 规划你所能做的一切,数据库(表格,列,关系),流程等。

没有什么是必要的,但建议OOP因为:

  1. 你不会迷失在自己的代码
  2. 易(更改reflexable)编辑和添加

CakePHP的,codeigniter是框架,它们将为您节省大量的开发时间。 而是写作班为每种类型的模型,你有(帖子,会员...)的 你运行一个简单的命令,它会为您的需求的基本应用。

+0

谢谢。我刚刚看了一下CakePHP的VS笨了几篇文章,似乎CI是去(至少对我来说),因为它的大量文件,并内置函数的方式。显然它也更快,但这很简单。 – eveo 2012-02-19 19:17:16

+0

考虑到问题的性质,我不同意最重要的一步就是规划。入门是关键。 – Cerad 2012-02-19 19:55:15

+1

入门是不是过程的一部分,因为它是它的beggining(我不只是一个开发者,我也哲学家):] – 2012-02-19 20:03:21

2

OOP到底是偏好的问题,但也有一些显着的优点。首先想到的就是安全性。使用mysqli进行参数化查询,这些查询被设计为以OOP方式运行,如果您有任何交易,则进行交易。 如果你想要CMS,那么你也可能需要显示相当多的数据库中的数据,这将需要分页。无需重新编写“程序性”分页算法,您可以使用一个类的OOP处理所有事情。最终,它仍然是一个优先选择的问题,但据我所知,oop在现实世界的应用中具有很多优点。祝你的项目好运!

+0

谢谢你,这是真的,我已经受够了在过去的分页问题。我可以只使用一个函数,不是吗? – eveo 2012-02-19 18:14:51

+0

像Codeigniter这样的框架内置了“库”来帮助分页。由于安全性和易用性,我更喜欢CI,这也会迫使OOP。这有助于您的项目的可扩展性和维护。你的PHP和HTML被分开,这使得维护你的代码变得更容易。 – 2012-02-19 18:23:12

+0

好吧,我会给codeigniter一看。 – eveo 2012-02-19 18:31:24

1

我认为框架将帮助你很多..我的意思是各种重复性的任务可以很容易地省略

和大型项目OOP强烈推荐简单而不OOP代码将是非常邪恶的,非常难维持

+0

感谢。学习OOP的时间。我看着它,但它只是在我头上,然后再试一次。 – eveo 2012-02-19 18:24:15

3

从我个人的经验,到目前为止,我建议你(至少)尝试使系统在您自己的,因为整个制作复杂系统的过程中获得的经验和知识,是迄今为止最好的手在练习,你将永远得到。

是否使用特定的框架或没有特别取决于你是否和您准备好了实现系统开发你自己的,因为使用框架的任务也需要学习的具体框架,以及。

对于OOP,我会强烈推荐它,因为它使一切变得容易很多。如果你以前从来没有使用面向对象的原则,你可能会发现它在开始时有点困难,但是一旦你了解了学习曲线,你会对结果感到满意,学到了什么,以及如何学习容易和组织整个系统将看起来,特别是当你必须做出小的改变或更新。

由于我们正在谈论一个相对较大的系统,因为您建议,我个人不能强调足够多,规划和分析有多重要。尽可能详细地写下你需要的所有数据,制作草稿并尽可能详细地规划你的数据库表格,因为如果在这个过程中你发现你忘记了某些东西或者某些东西只是感觉不对,你可能会必须重新创建类,数据库等,以使其运行顺利。

1

你应该首先寻找一些好的框架 - 从一开始工作是相当困难的。您应该首先创建应用程序的必要部分和相应的数据库/表的某种框图。

建议使用OOP,因为它可以为您节省大量时间。

一个很好的框架,看看这里:http://code.google.com/p/phpstartapp/

2

好,OOP的一点是,使编程与现实世界更相似。在现实世界中,你在处理对象。你的工作是Job类的一个对象,你是Employee它扩展了类Person类的一个对象,你回家载于Building类的一个对象,它包含在Block类的一个对象Apartment类的对象。

我的观点是,OOP的重点是让你的生活更轻松,你可以指定一个论坛帖子作为对象,就像你可以为用户和其他人一样。您可以在OOP中创建的整个数据结构比程序化PHP复杂得多,易于理解。如果你问我是否建议你在这个规模的项目上使用OOP,我肯定会说是的


至于你的其他问题:

  • 需要什么来进行这样的项目呢? - 计划,很多。提前计划任何你可能需要的东西(关于数据库,现有的项目/类,文件,页面)。还计划扩展性,在将来添加模块和表格。
  • 任何框架偏好? - 我不是框架的狂热粉丝,但我建议你学习MVC和单点入口的概念。
2

我只是重申什么已经在这里说,和这样说:OOP是一种实用工具,也从不要求。我自己是一个面向对象的人,在做了这么多年之后,我倾向于用这些术语来思考更容易的事情,但我认为我没有超过几个我认为我不能做到的事情没有面向对象的做法(其中之一是粒子效果引擎,这是一种给定的)。

这就是说,有很多时候OO比阻碍更多是一种障碍。你需要做的是坐下来,真正将你的项目视为一个整体。当你在看大局时,你看到的东西是封装对象吗?你会有一段代码,你会用很多次来描述相似但略有不同的东西吗?或者,您的项目是否更具线性,您可以看到大多数以传统“自上而下”格式运行的脚本?

相关问题