使用XML进行Model类和结构化

时间:2009-12-23 11:19:46

标签: php xml model-view-controller data-structures model

我目前正在开发一个小应用程序: 该结构以某种方式遵循MVC模式。 简而言之,它有基本的东西,模型,控制器等。

现在我坐在这里,不知道是否:


1

SQL数据库只能通过程序员给他的方法来管理模型:“嘿,我们有name记录,所以我们需要一个getName()方法”。

2

该模型使用XML文件动态创建整个数据库和方法,即使非程序员也可以使用该文件设计数据库。

并且模型类应该检查每个/单个请求是否是有效请求,例如getName()无效houses_tbl,如果无效则无法执行查询,而是发回错误消息?


我完全不知道如何处理我的模型类,它应遵循哪种结构以及程序员应该将多少内容放入一个新模型中,以便它能够按照他希望的方式工作。


重点:

  • 性能(哪种方式可以节省最多的性能)
  • KISS (哪种方式很简单,所以第二个队友可以理解我的逻辑)
  • 可扩展性(我可以扩展结构)

2 个答案:

答案 0 :(得分:1)

为什么静态在开发过程中从数据库中创建对象等。即使用一些对象关系映射?

这样就可以从(比方说)数据库模式创建Person对象。它会创建一个getName()访问器,其余的代码将针对该访问器进行编译。如果删除/重命名名称字段,则生成的代码会更改,因此内容不会编译。及早发现这些错误将会带来很多悲伤。

This question详细介绍了一些PHP / ORM选项。我承认我没有检查这些,看看它们是否完全是你想要的,但希望它们能指出你正确的方向。

答案 1 :(得分:1)

检查这些Data Source Architectural PatternsTable Data GatewayRow Data GatewayActive RecordData Mapper。有关PHP中这些模式的代码示例,您可以检查Zend_DB_*

您应该选择哪种模式取决于您的应用。如果您正在执行简单的CRUD应用程序,则可能需要使用行数据网关。如果您正在构建一个包含大量business logic from a certain domain的应用程序,您可能会选择不同的应用程序。

请记住,MVC中的M不仅仅是持久层。该模型是您的应用程序的核心。 Controller和View只是您应用程序的终结。按Rob AllenMatthew Weier O'Phinney进一步阅读。

至于你的主要观点,我建议坚持一般的惯例。 UnitTest你的代码,编写有意义的代码并记录它,支持聚合,组合,封装和单独的关注,代码与接口,重构等。