学习OOP PHP:识别类,测验系统的关联

我开发PHP Web应用程序已经很长时间了,但是现在正在学习OOP方法.为了学习和练习,我正在开发一个简单的“多项选择题” Web应用程序.注册用户登录后,将显示一个测验列表.他选择了一个,并得到了多个答案都正确的问题.

我的问题是:

>识别类别的规则是什么?我认为“测验”,“问题”
和“答案”可以声明为类.我对吗?
>这些类之间的关联类型是什么(或
您会建议).识别关联的规则是什么?
>如何分隔或显示系统类(例如数据库,验证
类)和业务领域类?

如果能在测验系统的上下文中提供答案,我将不胜感激,因为我已经阅读了很多有关“动物狗”类示例的信息…预先感谢您的支持.

解决方法:

您会发现有用的一种OOP风格是Model View Controller范式.

PHP中的类通常是“对象”的表示,或者是理想地完成特定任务的事物的表示.它们的集合可以一起工作以提供更全面的功能,而很少孤立地使用.

在MVC中,通常将这些类分为(以简化形式):

>模型:可帮助您处理数据库的类.您将为每个表使用一个模型,每种模型都将为您提供保存和检索数据以及在事实发生之前和之后进行操作的能力.在您的情况下,问题将是一个模型,并且可能包含问题本身和答案.
>视图:这些不是类,而是原始HTML模板,这些模板具有通过控制器注入的来自模型的数据.就您而言,一个视图可能是一个问题视图.另一个可能代表索引页.另一个可以呈现问卷的结果.
>控制器:充当视图和模型之间的中间人的类.他们将从相关模型中获取数据并将其传递给视图.在您的情况下,这可能是测验控制器.它将从数据库获取所请求的问题并将其提供给视图,并在提交答案时,控制器会将其传递给模型以查看其是否正确,并采取相应的措施.

该MCV的后面是一个框架(预制的或您自己创建的框架),该框架提供了许多库和抽象层,可帮助您专注于应用程序逻辑.因此,将有诸如ActiveRecord之类的数据库抽象,将有一些常用的过程函数的包装器,这些对象将在OOP上下文中呈现,还将有模板系统来帮助将数据传递到您的视图并对其进行格式化,等等.

如果您想朝这个方向前进,请考虑使用现有的框架(如CakePHPCodeIgniter)为您提供领先的机会.他们将使您熟悉OOP(在某种程度上),以及如何使用类对大型项目有好处.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...