Example #1
0
 /**
  * Returns table name by presenter i.e.: BaseTestPresenter => base_test
  * @return string
  */
 public function getTableName()
 {
     $name = parent::getName();
     if ($pos = strpos($name, ':')) {
         $name = substr($name, $pos + 1);
     }
     return Strings::toSnakeCase($name);
 }
Example #2
0
 /**
  * Convert array keys to camel case
  * @param array|\Traversable $array
  */
 private function convertToCamel(&$array)
 {
     if ($array instanceof \Traversable) {
         $array = iterator_to_array($array);
     }
     foreach (array_keys($array) as $key) {
         $value =& $array[$key];
         unset($array[$key]);
         $transformedKey = Strings::toCamelCase($key);
         if (is_array($value) || $value instanceof \Traversable) {
             $this->convertToCamel($value);
         }
         $array[$transformedKey] = $value;
         unset($value);
     }
 }
Example #3
0
 /**
  * Parse route annotations on given object methods
  * @param Method[] $methods
  * @return array $data[URL mask][request method] = action name e.g. $data['api/v1/articles']['GET'] = 'read'
  */
 protected function parseClassRoutes($methods)
 {
     $routeData = array();
     foreach ($methods as $method) {
         // Parse annotations only on action methods
         if (!Strings::contains($method->getName(), 'action')) {
             continue;
         }
         $annotations = $this->routeAnnotation->parse($method);
         foreach ($annotations as $requestMethod => $mask) {
             $action = str_replace('action', '', $method->getName());
             $action = Strings::firstLower($action);
             $pattern = $this->prefix ? $this->prefix . '/' . $mask : $mask;
             $routeData[$pattern][$requestMethod] = $action;
         }
     }
     return $routeData;
 }
Example #4
0
 /**
  * Create sort list
  * @return array
  */
 protected function createSortList()
 {
     $sortList = array();
     $fields = array_filter(explode(',', $this->request->getQuery(self::SORT_KEY)));
     foreach ($fields as $field) {
         $isInverted = Strings::substring($field, 0, 1) === '-';
         $sort = $isInverted ? self::SORT_DESC : self::SORT_ASC;
         $field = $isInverted ? Strings::substring($field, 1) : $field;
         $sortList[$field] = $sort;
     }
     return $sortList;
 }