SilverStripe混乱

Mil*_*ter 1 silverstripe

我对如何在SilverStripe 3中使用RESTful服务器API感到有点困惑.我刚刚开始学习,以下内容使我感到困惑.

我们网站上的所有内容都存储在数据库中.作为DataObject类的子类的每个类在我们的数据库中都有自己的表.

这样一个类的每个对象都对应于该表中的一行 - 这是我们的"数据对象",即模型 - 视图 - 控制器的"模型".页面类型有一个数据对象,表示我们页面的所有数据.它不是直接从DataObject继承,而是继承自SiteTree.我们通常创建一个"Page"数据对象,并将其子类化为所有其他页面类型.这允许我们定义在我们网站的所有页面中一致的行为.

我这样做是为了设置页面,但现在我正在学习RESTful服务器API,它说要创建一个扩展DataObject的对象.

原谅我的无知,但扩展SiteTree不是一回事吗?

很困惑所以会欣赏一些启示.

Luk*_*e H 5

如上所述,如果扩展SiteTree,那么您正在扩展DataObject,但会产生大量开销.一些开销可能对您有用,因为SiteTree提供版本控制,层次结构和其他一些很好的技巧,使其成为您网站中的页面的良好类.

但是,如果您想要管理大量对象,或者您没有使用层次结构或版本控制模型,或者您只想自定义在CMS中呈现或管理对象的方式,那么最好扩展DataObject直接.SilverStripe 文档站点SSBits上有各种相关教程

对你也很有用.

一旦您的DataObject子类适合您,您就可以开始向其添加RestfulServer功能.最基本的方法是在类中添加一个静态属性:

static $api_access = true; 
Run Code Online (Sandbox Code Playgroud)

有关使用RestfulServer的更多信息,请访问此处