Esempio n. 1
0
 public static function sort(&$books, \Sb\Lists\Sorting $sorting)
 {
     $className = get_class();
     $sortingField = $sorting->getField();
     $sortingDirection = $sorting->getDirection();
     switch ($sortingField) {
         case self::SORTING_FIELD_RATING:
             switch ($sortingDirection) {
                 case EntityHelper::ASC:
                     \Sb\Trace\Trace::addItem($className . "::compareByRatingAsc");
                     usort($books, $className . "::compareByRatingAsc");
                     break;
                 case EntityHelper::DESC:
                     \Sb\Trace\Trace::addItem($className . "::compareByRatingDesc");
                     usort($books, $className . "::compareByRatingDesc");
                     break;
             }
             break;
         case self::SORTING_FIELD_TITLE:
             switch ($sortingDirection) {
                 case EntityHelper::ASC:
                     \Sb\Trace\Trace::addItem($className . "::compareByTitleAsc");
                     usort($books, $className . "::compareByTitleAsc");
                     break;
                 case EntityHelper::DESC:
                     \Sb\Trace\Trace::addItem($className . "::compareByTitleDesc");
                     usort($books, $className . "::compareByTitleDesc");
                     break;
             }
             break;
         case self::SORTING_FIELD_AUTHOR:
             switch ($sortingDirection) {
                 case EntityHelper::ASC:
                     \Sb\Trace\Trace::addItem($className . "::compareByAuthorAsc");
                     usort($books, $className . "::compareByAuthorAsc");
                     break;
                 case EntityHelper::DESC:
                     \Sb\Trace\Trace::addItem($className . "::compareByAuthorDesc");
                     usort($books, $className . "::compareByAuthorDesc");
                     break;
             }
             break;
         case self::SORTING_FIELD_STATE:
             switch ($sortingDirection) {
                 case EntityHelper::ASC:
                     \Sb\Trace\Trace::addItem($className . "::compareByStateAsc");
                     usort($books, $className . "::compareByStateAsc");
                     break;
                 case EntityHelper::DESC:
                     \Sb\Trace\Trace::addItem($className . "::compareByStateDesc");
                     usort($books, $className . "::compareByStateDesc");
                     break;
             }
             break;
         case self::SORTING_FIELD_PUBLISHING_DATE:
             switch ($sortingDirection) {
                 case EntityHelper::ASC:
                     \Sb\Trace\Trace::addItem($className . "::compareByPublishingDateAsc");
                     usort($books, $className . "::compareByPublishingDateAsc");
                     break;
                 case EntityHelper::DESC:
                     \Sb\Trace\Trace::addItem($className . "::compareByPublishingDateDesc");
                     usort($books, $className . "::compareByPublishingDateDesc");
                     break;
             }
             break;
     }
 }