/** * @return Website[] * @throws \Exception */ public function getWebsites() { $apiResourceModel = new Website(); $params = array('offset' => 0, 'max_results' => 200, 'project' => $this->getId()); $url = Api::$apiUrl . '/' . 'websites'; $url .= '?' . http_build_query($params); $cachedResponse = $apiResourceModel->_getCachedRequest($url); if ($cachedResponse) { return $cachedResponse; } $objects = array(); $apiResponse = $apiResourceModel->_request($url); if (!isset($apiResponse['list'])) { throw new \Exception("No 'list' found for URL ({$url}): " . print_r($apiResponse, 1)); } foreach ($apiResponse['list'] as $resourceUrl) { $objects[] = (new Website())->load($resourceUrl); } // Cache the list for 1/10th of a day $apiResourceModel->_putCachedRequest($url, $objects, 0.1); return $objects; }