2011-02-11 118 views
6

正如标题所说,我是OOP的新手,但在PHP中自学。我们有一个内置于程序PHP的系统,由于它的大小,现在有点难以修改。所以我正在研究PHP OOP中的重写操作,以便于维护。PHP中面向对象的OOP新手关于定义类的问题

我正在制作类目录。我们的系统是管理驾驶学校,所以我们有学校,导师,学生和课程,我可以看到的将全部是对象,因此也是课堂。我的问题来自于我们有一所学校,但有很多教师,学生和课程的事实,因此在构建程序时我们需要显示这些对象的列表。因此,将其中任何一个列表视为一个类,或者在编程时,将需要为每个教师,学生和课程创建一个实例。或者我在OOP系统的设计中缺少一些基本的东西。

正如我所说,只是制定面向对象所以请温柔与我。

非常感谢 科林


谢谢大家迄今的意见。我越想越想,至少对我来说,我意识到的越多。我的系统中的某个列表是一个对象。我想象列表中的每个项目都是一个表单,因为它是现在的,所以任何项目的选择都会导致一个新的脚本运行,这将创建一个瞳孔,教师等的新实例,以及执行新实例。

+3

签出CodeIgniter和CakePHP等MVC框架。一旦你用模型(基本上是你的学生,教师和课堂课程)弄湿你的脚,你就会明白如何处理你的案例,并且你可以轻松地以结构化,可维护的方式与他们一起工作。 – coreyward 2011-02-11 19:12:51

回答

2

你可以这样做。每个都有它的优点和缺点。如果你只想要一个对象列表,你可以创建一个对象列表。它会正常工作。

请记住,您可以在一个类中拥有另一个类的对象。所以你的学校可以有一系列教师,以及一系列学生和一系列课程。

但是,如果您希望这些列表具有其他属性,还可以将它们自己分类。

2

OOP是为了克服复杂性,所以如果每个实体拥有许多不同的操作,那么为了让自己以后的事情更容易,每个实体的道路类都是要走的路。另外,如果函数调用彼此独立,则可以始终进行静态调用,而不必实例化对象。

3

我说忘记框架....每个人都有自己的细微差别。有些甚至没有正确地遵循MVC(Symfony),并且由于正面的频繁版本更新而导致很多教程有冲突(Zend)首先获得对OOP概念的基本掌握,然后学习您选择的框架的具体细节你选择走这条路。虽然我在Zend上获得认证,每天都在Symfony工作,并且已经使用CI很多,但我个人更喜欢自己动手,特别是在大量使用Ajax的应用程序中工作时。

这个工作很适合我好半天回:http://www.killerphp.com/tutorials/object-oriented-php/

好运。保持开放的态度,耐心等待。虽然它似乎需要更多的时间,但过了一段时间后,它变成了第二天性,实际上非常有益。