/** * Get the library details for a particular release. * * @param \BoostVersion $version * @param string $sort Optional field used to sort the libraries. * @param callable $filter Optional filter function. * @return array */ function get_for_version($version, $sort = null, $filter = null) { $version = BoostVersion::from($version); $libs = array(); if (!$filter) { $filter = $version->is_numbered_release() ? 'BoostLibraries::filter_released' : 'BoostLibraries::filter_all'; } foreach ($this->db as $key => $versions) { $details = null; foreach ($versions as $lib) { if ($version->compare($lib->update_version) >= 0) { $details = $lib->details; } } if ($details) { if ($filter && !call_user_func($filter, $details)) { continue; } $libs[$key] = $details; } } $libs = array_values($libs); if ($sort) { uasort($libs, BoostUtility::sort_by_field($sort)); } return $libs; }
function sort_by($field) { uasort($this->db, BoostUtility::sort_by_field($field)); }