1752171309 gFFBC%2BJB4H%3AphpDocumentor-projectDescriptor-files-01a390d186050d57db204ae154bd0237 O:39:"phpDocumentor\Descriptor\FileDescriptor":23:{s:8:"*fqsen";N;s:7:"*name";s:11:"Ratings.php";s:12:"*namespace";s:0:"";s:10:"*package";s:8:"Db_Table";s:10:"*summary";s:28:"Table Definition for ratings";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:687:"PHP version 8 Copyright (C) The National Library of Finland 2022. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";N;s:7:"*line";i:0;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:5:{s:8:"category";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:"*name";s:8:"category";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:6:"VuFind";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:7:"package";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:"*name";s:7:"package";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:8:"Db_Table";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:6:"author";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\AuthorDescriptor":3:{s:7:"*name";s:6:"author";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:37:"Ere Maijala ";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:7:"license";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:"*name";s:7:"license";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:69:"http://opensource.org/licenses/gpl-2.0.php GNU General Public License";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:4:"link";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:43:"phpDocumentor\Descriptor\Tag\LinkDescriptor":4:{s:7:"*name";s:4:"link";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:9:"Main Site";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:7:"*link";s:18:"https://vufind.org";}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:7:"*hash";s:32:"dbdcf2a889245a530c42412155911348";s:7:"*path";s:38:"VuFind/src/VuFind/Db/Table/Ratings.php";s:9:"*source";s:7716:" * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License * @link https://vufind.org Main Site */ namespace VuFind\Db\Table; use Laminas\Db\Adapter\Adapter; use Laminas\Db\Sql\Expression; use Laminas\Db\Sql\Select; use VuFind\Db\Row\RowGateway; use VuFind\Db\Service\DbServiceAwareInterface; use VuFind\Db\Service\DbServiceAwareTrait; use VuFind\Db\Service\ResourceServiceInterface; /** * Table Definition for ratings * * @category VuFind * @package Db_Table * @author Ere Maijala * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License * @link https://vufind.org Main Site */ class Ratings extends Gateway implements DbServiceAwareInterface { use DbServiceAwareTrait; /** * Constructor * * @param Adapter $adapter Database adapter * @param PluginManager $tm Table manager * @param array $cfg Laminas configuration * @param RowGateway $rowObj Row prototype object (null for default) * @param string $table Name of database table to interface with */ public function __construct( Adapter $adapter, PluginManager $tm, $cfg, ?RowGateway $rowObj = null, $table = 'ratings' ) { parent::__construct($adapter, $tm, $cfg, $rowObj, $table); } /** * Get average rating and rating count associated with the specified resource. * * @param string $id Record ID to look up * @param string $source Source of record to look up * @param ?int $userId User ID, or null for all users * * @return array Array with keys count and rating (between 0 and 100) */ public function getForResource(string $id, string $source, ?int $userId): array { $resourceService = $this->getDbService(ResourceServiceInterface::class); $resource = $resourceService->getResourceByRecordId($id, $source); if (!$resource) { return [ 'count' => 0, 'rating' => 0, ]; } $callback = function ($select) use ($resource, $userId) { $select->columns( [ // RowGateway requires an id field: 'id' => new Expression( '1', [], [Expression::TYPE_IDENTIFIER] ), 'count' => new Expression( 'COUNT(?)', [Select::SQL_STAR], [Expression::TYPE_IDENTIFIER] ), 'rating' => new Expression( 'FLOOR(AVG(?))', ['rating'], [Expression::TYPE_IDENTIFIER] ), ] ); $select->where->equalTo('ratings.resource_id', $resource->id); if (null !== $userId) { $select->where->equalTo('ratings.user_id', $userId); } }; $result = $this->select($callback)->current(); return [ 'count' => $result->count ?? 0, 'rating' => $result->rating ?? 0, ]; } /** * Get rating breakdown for the specified resource. * * @param string $id Record ID to look up * @param string $source Source of record to look up * @param array $groups Group definition (key => [min, max]) * * @return array Array with keys count and rating (between 0 and 100) as well as * an groups array with ratings from lowest to highest */ public function getCountsForResource( string $id, string $source, array $groups ): array { $result = [ 'count' => 0, 'rating' => 0, 'groups' => [], ]; foreach (array_keys($groups) as $key) { $result['groups'][$key] = 0; } $resourceService = $this->getDbService(ResourceServiceInterface::class); $resource = $resourceService->getResourceByRecordId($id, $source); if (!$resource) { return $result; } $callback = function ($select) use ($resource) { $select->columns( [ // RowGateway requires an id field: 'id' => new Expression( '1', [], [Expression::TYPE_IDENTIFIER] ), 'count' => new Expression( 'COUNT(?)', [Select::SQL_STAR], [Expression::TYPE_IDENTIFIER] ), 'rating' => 'rating', ] ); $select->where->equalTo('ratings.resource_id', $resource->id); $select->group('rating'); }; $ratingTotal = 0; $groupCount = 0; foreach ($this->select($callback) as $rating) { $result['count'] += $rating->count; $ratingTotal += $rating->rating; ++$groupCount; if ($groups) { foreach ($groups as $key => $range) { if ( $rating->rating >= $range[0] && $rating->rating <= $range[1] ) { $result['groups'][$key] = ($result['groups'][$key] ?? 0) + $rating->count; } } } } $result['rating'] = $groupCount ? floor($ratingTotal / $groupCount) : 0; return $result; } /** * Deletes all ratings by a user. * * @param \VuFind\Db\Row\User $user User object * * @return void */ public function deleteByUser(\VuFind\Db\Row\User $user): void { $this->delete(['user_id' => $user->id]); } /** * Get statistics on use of ratings. * * @return array */ public function getStatistics(): array { $select = $this->sql->select(); $select->columns( [ 'users' => new Expression( 'COUNT(DISTINCT(?))', ['user_id'], [Expression::TYPE_IDENTIFIER] ), 'resources' => new Expression( 'COUNT(DISTINCT(?))', ['resource_id'], [Expression::TYPE_IDENTIFIER] ), 'total' => new Expression('COUNT(*)'), ] ); $statement = $this->sql->prepareStatementForSqlObject($select); $result = $statement->execute(); return (array)$result->current(); } } ";s:19:"*namespaceAliases";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:16:"\VuFind\Db\Table";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:16:"\VuFind\Db\Table";s:36:"phpDocumentor\Reflection\Fqsenname";s:5:"Table";}}}s:11:"*includes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:12:"*constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:12:"*functions";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:10:"*classes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:24:"\VuFind\Db\Table\Ratings";O:40:"phpDocumentor\Descriptor\ClassDescriptor":19:{s:8:"*fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:24:"\VuFind\Db\Table\Ratings";s:36:"phpDocumentor\Reflection\Fqsenname";s:7:"Ratings";}s:7:"*name";s:7:"Ratings";s:12:"*namespace";s:16:"\VuFind\Db\Table";s:10:"*package";s:8:"Db_Table";s:10:"*summary";s:28:"Table Definition for ratings";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";r:1;s:7:"*line";i:49;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:5:{s:8:"category";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:"*name";s:8:"category";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:6:"VuFind";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:7:"package";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:"*name";s:7:"package";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:8:"Db_Table";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:6:"author";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\AuthorDescriptor":3:{s:7:"*name";s:6:"author";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:37:"Ere Maijala ";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:7:"license";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:"*name";s:7:"license";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:69:"http://opensource.org/licenses/gpl-2.0.php GNU General Public License";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}}}s:4:"link";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:43:"phpDocumentor\Descriptor\Tag\LinkDescriptor":4:{s:7:"*name";s:4:"link";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:9:"Main Site";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:7:"*link";s:18:"https://vufind.org";}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*parent";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:24:"\VuFind\Db\Table\Gateway";s:36:"phpDocumentor\Reflection\Fqsenname";s:7:"Gateway";}s:13:"*implements";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:42:"\VuFind\Db\Service\DbServiceAwareInterface";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:42:"\VuFind\Db\Service\DbServiceAwareInterface";s:36:"phpDocumentor\Reflection\Fqsenname";s:23:"DbServiceAwareInterface";}}}s:11:"*abstract";b:0;s:8:"*final";b:0;s:12:"*constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:13:"*properties";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:10:"*methods";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:5:{s:11:"__construct";O:41:"phpDocumentor\Descriptor\MethodDescriptor":19:{s:8:"*fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:39:"\VuFind\Db\Table\Ratings::__construct()";s:36:"phpDocumentor\Reflection\Fqsenname";s:11:"__construct";}s:7:"*name";s:11:"__construct";s:12:"*namespace";s:16:"\VuFind\Db\Table";s:10:"*package";N;s:10:"*summary";s:11:"Constructor";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";N;s:7:"*line";i:62;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:5:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:16:"Database adapter";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\Object_":1:{s:45:"phpDocumentor\Reflection\Types\Object_fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:27:"\Laminas\Db\Adapter\Adapter";s:36:"phpDocumentor\Reflection\Fqsenname";s:7:"Adapter";}}s:15:"*variableName";s:7:"adapter";}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:13:"Table manager";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\Object_":1:{s:45:"phpDocumentor\Reflection\Types\Object_fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:30:"\VuFind\Db\Table\PluginManager";s:36:"phpDocumentor\Reflection\Fqsenname";s:13:"PluginManager";}}s:15:"*variableName";s:2:"tm";}i:2;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:21:"Laminas configuration";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}s:15:"*variableName";s:3:"cfg";}i:3;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:39:"Row prototype object (null for default)";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\Object_":1:{s:45:"phpDocumentor\Reflection\Types\Object_fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:25:"\VuFind\Db\Row\RowGateway";s:36:"phpDocumentor\Reflection\Fqsenname";s:10:"RowGateway";}}s:15:"*variableName";s:6:"rowObj";}i:4;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:40:"Name of database table to interface with";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\String_":0:{}s:15:"*variableName";s:5:"table";}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*parent";r:91;s:11:"*abstract";b:0;s:8:"*final";b:0;s:9:"*static";b:0;s:13:"*visibility";s:6:"public";s:12:"*arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:5:{s:7:"adapter";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:7:"adapter";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:204;s:17:"*fileDescriptor";N;s:7:"*line";i:62;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:183;s:7:"*type";r:211;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:2:"tm";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:2:"tm";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:218;s:17:"*fileDescriptor";N;s:7:"*line";i:62;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:183;s:7:"*type";r:225;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:3:"cfg";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:3:"cfg";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:232;s:17:"*fileDescriptor";N;s:7:"*line";i:62;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:183;s:7:"*type";r:239;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:6:"rowObj";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:6:"rowObj";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:250;s:17:"*fileDescriptor";N;s:7:"*line";i:62;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:183;s:7:"*type";r:257;s:10:"*default";s:4:"null";s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:5:"table";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:5:"table";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:264;s:17:"*fileDescriptor";N;s:7:"*line";i:62;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:183;s:7:"*type";r:271;s:10:"*default";s:9:"'ratings'";s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}}}s:53:"phpDocumentor\Descriptor\MethodDescriptorreturnType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:63:"phpDocumentor\Descriptor\MethodDescriptorhasReturnByReference";b:0;}s:14:"getForResource";O:41:"phpDocumentor\Descriptor\MethodDescriptor":19:{s:8:"*fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:42:"\VuFind\Db\Table\Ratings::getForResource()";s:36:"phpDocumentor\Reflection\Fqsenname";s:14:"getForResource";}s:7:"*name";s:14:"getForResource";s:12:"*namespace";s:16:"\VuFind\Db\Table";s:10:"*package";N;s:10:"*summary";s:75:"Get average rating and rating count associated with the specified resource.";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";N;s:7:"*line";i:81;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:3:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:20:"Record ID to look up";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\String_":0:{}s:15:"*variableName";s:2:"id";}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:27:"Source of record to look up";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\String_":0:{}s:15:"*variableName";s:6:"source";}i:2;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:30:"User ID, or null for all users";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:39:"phpDocumentor\Reflection\Types\Nullable":1:{s:49:"phpDocumentor\Reflection\Types\NullablerealType";O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:15:"*variableName";s:6:"userId";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:7:"*name";s:6:"return";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:52:"Array with keys count and rating (between 0 and 100)";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*parent";r:91;s:11:"*abstract";b:0;s:8:"*final";b:0;s:9:"*static";b:0;s:13:"*visibility";s:6:"public";s:12:"*arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:3:{s:2:"id";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:2:"id";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:401;s:17:"*fileDescriptor";N;s:7:"*line";i:81;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:380;s:7:"*type";r:408;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:6:"source";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:6:"source";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:412;s:17:"*fileDescriptor";N;s:7:"*line";i:81;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:380;s:7:"*type";r:419;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:6:"userId";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:6:"userId";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:423;s:17:"*fileDescriptor";N;s:7:"*line";i:81;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:380;s:7:"*type";r:430;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}}}s:53:"phpDocumentor\Descriptor\MethodDescriptorreturnType";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}s:63:"phpDocumentor\Descriptor\MethodDescriptorhasReturnByReference";b:0;}s:20:"getCountsForResource";O:41:"phpDocumentor\Descriptor\MethodDescriptor":19:{s:8:"*fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:48:"\VuFind\Db\Table\Ratings::getCountsForResource()";s:36:"phpDocumentor\Reflection\Fqsenname";s:20:"getCountsForResource";}s:7:"*name";s:20:"getCountsForResource";s:12:"*namespace";s:16:"\VuFind\Db\Table";s:10:"*package";N;s:10:"*summary";s:48:"Get rating breakdown for the specified resource.";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";N;s:7:"*line";i:136;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:3:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:20:"Record ID to look up";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\String_":0:{}s:15:"*variableName";s:2:"id";}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:27:"Source of record to look up";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\String_":0:{}s:15:"*variableName";s:6:"source";}i:2;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:36:"Group definition (key => [min, max])";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}s:15:"*variableName";s:6:"groups";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:7:"*name";s:6:"return";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:115:"Array with keys count and rating (between 0 and 100) as well as an groups array with ratings from lowest to highest";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*parent";r:91;s:11:"*abstract";b:0;s:8:"*final";b:0;s:9:"*static";b:0;s:13:"*visibility";s:6:"public";s:12:"*arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:3:{s:2:"id";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:2:"id";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:549;s:17:"*fileDescriptor";N;s:7:"*line";i:136;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:528;s:7:"*type";r:556;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:6:"source";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:6:"source";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:560;s:17:"*fileDescriptor";N;s:7:"*line";i:136;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:528;s:7:"*type";r:567;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}s:6:"groups";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:6:"groups";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:571;s:17:"*fileDescriptor";N;s:7:"*line";i:136;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:528;s:7:"*type";r:578;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}}}s:53:"phpDocumentor\Descriptor\MethodDescriptorreturnType";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}s:63:"phpDocumentor\Descriptor\MethodDescriptorhasReturnByReference";b:0;}s:12:"deleteByUser";O:41:"phpDocumentor\Descriptor\MethodDescriptor":19:{s:8:"*fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:40:"\VuFind\Db\Table\Ratings::deleteByUser()";s:36:"phpDocumentor\Reflection\Fqsenname";s:12:"deleteByUser";}s:7:"*name";s:12:"deleteByUser";s:12:"*namespace";s:16:"\VuFind\Db\Table";s:10:"*package";N;s:10:"*summary";s:30:"Deletes all ratings by a user.";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";N;s:7:"*line";i:205;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:7:"*name";s:5:"param";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:11:"User object";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:38:"phpDocumentor\Reflection\Types\Object_":1:{s:45:"phpDocumentor\Reflection\Types\Object_fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:19:"\VuFind\Db\Row\User";s:36:"phpDocumentor\Reflection\Fqsenname";s:4:"User";}}s:15:"*variableName";s:4:"user";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:7:"*name";s:6:"return";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:36:"phpDocumentor\Reflection\Types\Void_":0:{}}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*parent";r:91;s:11:"*abstract";b:0;s:8:"*final";b:0;s:9:"*static";b:0;s:13:"*visibility";s:6:"public";s:12:"*arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:4:"user";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:8:"*fqsen";N;s:7:"*name";s:4:"user";s:12:"*namespace";s:0:"";s:10:"*package";N;s:10:"*summary";s:0:"";s:14:"*description";r:703;s:17:"*fileDescriptor";N;s:7:"*line";i:205;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*method";r:682;s:7:"*type";r:710;s:10:"*default";N;s:14:"*byReference";b:0;s:13:"*isVariadic";b:0;}}}s:53:"phpDocumentor\Descriptor\MethodDescriptorreturnType";O:36:"phpDocumentor\Reflection\Types\Void_":0:{}s:63:"phpDocumentor\Descriptor\MethodDescriptorhasReturnByReference";b:0;}s:13:"getStatistics";O:41:"phpDocumentor\Descriptor\MethodDescriptor":19:{s:8:"*fqsen";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:41:"\VuFind\Db\Table\Ratings::getStatistics()";s:36:"phpDocumentor\Reflection\Fqsenname";s:13:"getStatistics";}s:7:"*name";s:13:"getStatistics";s:12:"*namespace";s:16:"\VuFind\Db\Table";s:10:"*package";N;s:10:"*summary";s:33:"Get statistics on use of ratings.";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:17:"*fileDescriptor";N;s:7:"*line";i:215;s:7:"*tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:7:"*name";s:6:"return";s:14:"*description";O:55:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptor":2:{s:68:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptordescription";O:45:"phpDocumentor\Reflection\DocBlock\Description":2:{s:59:"phpDocumentor\Reflection\DocBlock\DescriptionbodyTemplate";s:0:"";s:51:"phpDocumentor\Reflection\DocBlock\Descriptiontags";a:0:{}}s:67:"phpDocumentor\Descriptor\DocBlock\DescriptionDescriptorinlineTags";a:0:{}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:8:"*types";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}}}}}}s:9:"*errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:19:"*inheritedElement";N;s:9:"*parent";r:91;s:11:"*abstract";b:0;s:8:"*final";b:0;s:9:"*static";b:0;s:13:"*visibility";s:6:"public";s:12:"*arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:53:"phpDocumentor\Descriptor\MethodDescriptorreturnType";O:37:"phpDocumentor\Reflection\Types\Array_":3:{s:12:"*valueType";O:37:"phpDocumentor\Reflection\Types\Mixed_":0:{}s:10:"*keyType";N;s:17:"*defaultKeyType";O:39:"phpDocumentor\Reflection\Types\Compound":2:{s:52:"phpDocumentor\Reflection\Types\AggregatedTypetypes";a:2:{i:0;O:38:"phpDocumentor\Reflection\Types\String_":0:{}i:1;O:38:"phpDocumentor\Reflection\Types\Integer":0:{}}s:52:"phpDocumentor\Reflection\Types\AggregatedTypetoken";s:1:"|";}}s:63:"phpDocumentor\Descriptor\MethodDescriptorhasReturnByReference";b:0;}}}s:13:"*usedTraits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:1:{s:38:"\VuFind\Db\Service\DbServiceAwareTrait";O:30:"phpDocumentor\Reflection\Fqsen":2:{s:37:"phpDocumentor\Reflection\Fqsenfqsen";s:38:"\VuFind\Db\Service\DbServiceAwareTrait";s:36:"phpDocumentor\Reflection\Fqsenname";s:19:"DbServiceAwareTrait";}}}}}}s:13:"*interfaces";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:9:"*traits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:10:"*markers";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}s:46:"phpDocumentor\Descriptor\FileDescriptorenums";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:"*items";a:0:{}}}