Kyslik\ColumnSortable\SortableLink::parseParameters PHP Method

parseParameters() public static method

public static parseParameters ( array $parameters ) : array
$parameters array
return array
    public static function parseParameters(array $parameters)
    {
        //TODO: let 2nd parameter be both title, or default query parameters
        //TODO: needs some checks before determining $title
        $explodeResult = self::explodeSortParameter($parameters[0]);
        $sortColumn = empty($explodeResult) ? $parameters[0] : $explodeResult[1];
        $title = count($parameters) === 1 ? $sortColumn : $parameters[1];
        $queryParameters = isset($parameters[2]) && is_array($parameters[2]) ? $parameters[2] : [];
        return [$sortColumn, $parameters[0], $title, $queryParameters];
    }

Usage Example

 public function testParseParameters()
 {
     $parameters = ['column'];
     $resultArray = SortableLink::parseParameters($parameters);
     $expected = ['column', 'column', 'column', []];
     $this->assertEquals($expected, $resultArray);
     $parameters = ['column', 'ColumnTitle'];
     $resultArray = SortableLink::parseParameters($parameters);
     $expected = ['column', 'column', 'ColumnTitle', []];
     $this->assertEquals($expected, $resultArray);
     $parameters = ['column', 'ColumnTitle', ['world' => 'matrix']];
     $resultArray = SortableLink::parseParameters($parameters);
     $expected = ['column', 'column', 'ColumnTitle', ['world' => 'matrix']];
     $this->assertEquals($expected, $resultArray);
     $parameters = ['relation.column'];
     $resultArray = SortableLink::parseParameters($parameters);
     $expected = ['column', 'relation.column', 'column', []];
     $this->assertEquals($expected, $resultArray);
     $parameters = ['relation.column', 'ColumnTitle'];
     $resultArray = SortableLink::parseParameters($parameters);
     $expected = ['column', 'relation.column', 'ColumnTitle', []];
     $this->assertEquals($expected, $resultArray);
     $parameters = ['relation.column', 'ColumnTitle', ['world' => 'matrix']];
     $resultArray = SortableLink::parseParameters($parameters);
     $expected = ['column', 'relation.column', 'ColumnTitle', ['world' => 'matrix']];
     $this->assertEquals($expected, $resultArray);
 }