根据Silverstripe Docs
动作方法可以返回以下四个主要内容之一:
我的问题在哪里可以找到有关这些的扩展说明?
答案 0 :(得分:1)
根据你对'权威'的意思,你会感到失望。虽然付出了努力,但通常有很多(特别是API)文档会不时地过时。
你的两个文档来源(不是逐字阅读代码)是:
http://docs.silverstripe.org http://api.silverstripe.org
我认为你会想要后者,在这种情况下你会想要使用Controller::handleRequest
的搜索来跟踪我的想法。您正在讨论控制器操作,但对于任何涉及返回的输出,基本上都是如此。
返回:字符串|数组|对象。
字符串基本上是直接输出(但是首先继续通过处理管道,而不是例如。echo 'direct output';
。我相信在字符串设置方面有关于字符串的假设(IIRC)它默认是认为它是HTML,或者可能有简单的启发式测试),所以应该在API文档/代码中进行检查。
数组是一个简单的快捷方式,与返回$this->customise($thatSameArray);
实际上相同(使用上面的api链接并搜索controller :: customize)
对象是 RequestHandler
或响应对象(正如您的snippit所说)。如果返回RequestHandler,则执行它(除非它是例如。$ this,并且已经执行)。响应是它在锡上所说的;封装输出的对象,包括响应代码,正文等。
这一切都来自我的头脑,所以应该通过上面的链接检查(这反过来是doxygen风格生成的文档,因此包含在代码中,但是从阅读代码本身开始是一步)。