src/Collection.php
protected function valueAccessor($value, $returnNull = false)
    {
        if (Support::isCallable($value)) {
            return $value;
        }

        return function ($item) use ($value, $returnNull) {
            if (is_null($value)) {
                return $returnNull ? null : $item;
            }
            if (Support::isTraversable($item)) {
                return array_key_exists($value, $item) ? $item[$value] : null;
            }
            if (is_object($item) && isset($item->{$value})) {
                return $item->{$value};
            }
            if (is_object($item) && method_exists($item, $value)) {
                return $item->{$value}();
            }
            if (is_object($item) && method_exists($item, 'get' . ucwords($value))) {
                return $item->{'get' . ucwords($value)}();
            }

            return $returnNull ? null : $item;
        };
    }
protected function valueAccessor($value, $returnNull = false)
    {
        if (Support::isCallable($value)) {
            return $value;
        }

        return function ($item) use ($value, $returnNull) {
            if (is_null($value)) {
                return $returnNull ? null : $item;
            }
            if (Support::isTraversable($item)) {
                return array_key_exists($value, $item) ? $item[$value] : null;
            }
            if (is_object($item) && isset($item->{$value})) {
                return $item->{$value};
            }
            if (is_object($item) && method_exists($item, $value)) {
                return $item->{$value}();
            }
            if (is_object($item) && method_exists($item, 'get' . ucwords($value))) {
                return $item->{'get' . ucwords($value)}();
            }

            return $returnNull ? null : $item;
        };
    }
protected function valueAccessor ( $ value , $ returnNull = false ) { if ( Support :: isCallable ( $ value ) ) { return $ value ; } return function ( $ item ) use ( $ value , $ returnNull ) { if ( is_null ( $ value ) ) { return $ returnNull ? null : $ item ; } if ( Support :: isTraversable ( $ item ) ) { return array_key_exists ( $ value , $ item ) ? $ item [ $ value ] : null ; } if ( is_object ( $ item ) && isset ( $ item -> { $ value } ) ) { return $ item -> { $ value } ; } if ( is_object ( $ item ) && method_exists ( $ item , $ value ) ) { return $ item -> { $ value } ( ) ; } if ( is_object ( $ item ) && method_exists ( $ item , 'get' . ucwords ( $ value ) ) ) { return $ item -> { 'get' . ucwords ( $ value ) } ( ) ; } return $ returnNull ? null : $ item ; } ; }
Providers a callable for fetching data from a collection item

Based on Laravel: Illuminate\Support\Collection.valueRetriever

@param string|callable $value
@param bool            $returnNull If true, returns null instead of the item

@return callable
Providers a callable for fetching data from a collection item