WikiaResponse is a [Data Transfer Object]. Any data which is being passed from a Controller into the Template should go through this object.
Important WikiaResponse class features
$this->response->addAsset( 'extensions/wikia/Foo/css/Foo.scss' ); $this->response->addAsset( 'extensions/wikia/Foo/js/Foo.js' ); $this->response->addAsset( 'oasis_shared_js' );
The main function of this DTO is to maintain an array of data. If you need to get at that or set all the data at once, use these helpers. Generally the main access point for data is in the Controller class where individual fields are set through the magic __set helper on the Controller, which automatically adds to the WikiaResponse data object which is automatically exported into the template. For example:
//Controller code to set template variables $this->stuff = $helper->getStuff(); //Template code to use template variable <?= $stuff ?>
- redirect(), setHeader(), setContentType(), setCode() are all pretty obvious
- Cache Control. It is possible to control the browser and varnish cache headers
// 1) setting browserTTL is optional, it defaults to the varnishTTL param // 2) use the constants WikiaResponse::CACHE_LONG, CACHE_STANDARD, CACHE_SHORT $this->response->setCacheValidity( $varnishTTL, $browserTTL );
- render(), toString(), printText() are all helpers used by Ajax entry points and shouldn't be used directly without good reason. Render a View, not the Response.