Xpressengine\Storage\Storage::bytesByMime PHP Method

bytesByMime() public method

mime 별 파일 용량 정보 반환
public bytesByMime ( callable $scope = null ) : array
$scope callable 검색 조건
return array ex.) [mime => bytes]
    public function bytesByMime(callable $scope = null)
    {
        $model = $this->createModel();
        $query = $model->getConnection()->table($model->getTable());
        if ($scope) {
            call_user_func($scope, $query);
        }
        $rows = $query->groupBy('mime')->select(['mime', new Expression('sum(`size`) as amount')])->get();
        $array = [];
        foreach ($rows as $row) {
            $row = (array) $row;
            $array[$row['mime']] = $row['amount'];
        }
        return $array;
    }

Usage Example

 public function testBytesByMime()
 {
     list($handler, $repo, $auth, $keygen) = $this->getMocks();
     $instance = new Storage($handler, $repo, $auth, $keygen);
     $repo->shouldReceive('sumGroupBy')->twice()->andReturn(['image/jpeg' => 15116107, 'image/gif' => 14008053]);
     $data = $instance->bytesByMime([], false);
     $this->assertEquals(15116107 + 14008053, array_sum($data));
     $data = $instance->bytesByMime();
     $this->assertEquals(15116107, reset($data));
     $this->assertEquals(14008053, next($data));
 }