我目前正在开发一个小应用程序: 该结构以某种方式遵循MVC模式。 简而言之,它有基本的东西,模型,控制器等。
现在我坐在这里,不知道是否:
SQL数据库只能通过程序员给他的方法来管理模型:“嘿,我们有name
记录,所以我们需要一个getName()
方法”。
或
该模型使用XML文件动态创建整个数据库和方法,即使非程序员也可以使用该文件设计数据库。
并且模型类应该检查每个/单个请求是否是有效请求,例如getName()
无效houses_tbl
,如果无效则无法执行查询,而是发回错误消息?
我完全不知道如何处理我的模型类,它应遵循哪种结构以及程序员应该将多少内容放入一个新模型中,以便它能够按照他希望的方式工作。
重点:
答案 0 :(得分:1)
为什么静态在开发过程中从数据库中创建对象等。即使用一些对象关系映射?
这样就可以从(比方说)数据库模式创建Person
对象。它会创建一个getName()
访问器,其余的代码将针对该访问器进行编译。如果删除/重命名名称字段,则生成的代码会更改,因此内容不会编译。及早发现这些错误将会带来很多悲伤。
This question详细介绍了一些PHP / ORM选项。我承认我没有检查这些,看看它们是否完全是你想要的,但希望它们能指出你正确的方向。
答案 1 :(得分:1)
检查这些Data Source Architectural Patterns:Table Data Gateway,Row Data Gateway,Active Record,Data Mapper。有关PHP中这些模式的代码示例,您可以检查Zend_DB_*。
您应该选择哪种模式取决于您的应用。如果您正在执行简单的CRUD应用程序,则可能需要使用行数据网关。如果您正在构建一个包含大量business logic from a certain domain的应用程序,您可能会选择不同的应用程序。
请记住,MVC中的M不仅仅是持久层。该模型是您的应用程序的核心。 Controller和View只是您应用程序的终结。按Rob Allen和Matthew Weier O'Phinney进一步阅读。
至于你的主要观点,我建议坚持一般的惯例。 UnitTest你的代码,编写有意义的代码并记录它,支持聚合,组合,封装和单独的关注,代码与接口,重构等。