Select

@param null|Closure $Func Selector
@return $this|Queryable
160320
public function Select( $Func = null )
	{

		if ( $Func == null ) return $this;

		$Func = new Expression( $Func );

		$obj = $this->getClone();

        foreach ( $obj->repository as &$item )
            $item = $Func->execute( $item );

		return $obj;

	}
963769
protected function launch(\Closure $func)
    {
        foreach ($this->manager->getPool()->getPriority('transaction') as $managerName) {
            $func($this->manager->getPool()->getManager($managerName));
        }
    }
150771
public function newNestedInstance(Closure $closure = null)
    {
        $query = $this->newInstance()->nested();

        if ($closure) {
            call_user_func($closure, $query);
        }

        return $query;
    }
985904
public function select($select=null)
    {
        $select = LambdaUtils::toSelectCallable($select);

        $result = array();
        foreach($this as $key => $record)
        {
            $result[] = call_user_func($select, $record, $key);
        }
        return new ArrayList($result);
    }
299750
public function maybe(Closure $callback) {
        $predicate = new Predicate(self::MAYBE);
        $predicate->bindCallback($callback);

        $this->_params[] = $predicate;

        $this->addBinding(null, $predicate);

        return $this;
    }
820477
public function select($table = null, $selectFields = array('*'))
    {
    	$this->queryTypeProcess(self::QUERYTYPE_SELECT, $table, $selectFields);
        return $this;
    }
393917
public function bindCallback(Closure $callback, $query = null) {
        call_user_func_array($callback, [$this, $query]);

        return $this;
    }
818102
public function filter(\Closure $callback)
    {
        $results = array_filter($this->all(), $callback, ARRAY_FILTER_USE_BOTH);

        return new static($results);
    }
371001
public function each($func)
    {
        $data = [];
        foreach ($this->_nodes as $index => $selector) {
            $data[$index] = $func($selector, $index);
        }

        return $data;
    }
513633
public static function selectOptions(\Closure $closure = null, $rootText = 'Root')
    {
        $options = (new static())->withQuery($closure)->buildSelectOptions();

        return collect($options)->prepend($rootText, 0)->all();
    }
1180566
public function map(callable $func) : self
    {
        $list = $this->list;

        foreach ($list as $index => $val) {
            $list[$index] = $func($val);
        }

        return new static($list);
    }
1119466
public function func($func, $column, $alias = null)
    {
        $this->queryBuilder->func($func, $column, $alias);
        return $this;
    }
953154
public static function functionAvailable($func)
    {
        $disabled = explode(',', ini_get('disable_functions'));

        return function_exists($func) && !in_array($func, $disabled);
    }
354544
public function copyfrom($var,$func=NULL)
    {
        if (is_string($var)) {
            $var = Base::instance()->get($var);
        }
        if ($func) {
            $var = call_user_func($func, $var);
        }
        foreach ($var as $key=>$val) {
            if (
                array_key_exists($key, $this->fields)
                || array_key_exists($key, $this->extras)
            ) {
                $this->set($key,$val);
            }
        }
    }
872232
public function with($selector, Closure $callback)
    {
        $browser = new static(
            $this->driver, new ElementResolver($this->driver, $this->resolver->format($selector))
        );

        if ($this->page) {
            $browser->onWithoutAssert($this->page);
        }

        if ($selector instanceof Component) {
            $browser->onComponent($selector, $this->resolver);
        }

        call_user_func($callback, $browser);

        return $this;
    }
1022429
final public function each($func)
    {
        foreach ($this->elements as $inx => $val)
        {
            call_user_func($func,$inx,$val);
        }
        return $this;
    }
1185221
public static function lazy(int $count, ?Closure $closure = null) : Lazy
  {
    $page = isset($_GET['page']) ? $_GET['page'] : null;
    $path = isset($_SERVER['REQUEST_URI']) ? ((str_contains($_SERVER['REQUEST_URI'], '?')) ? explode('?', ($_SERVER['REQUEST_URI']))[0] : $_SERVER['REQUEST_URI']) : '';

    if ($page == null) {
      $pattern = explode('/', $path);
      $page = (is_numeric(end($pattern)) ? $page = end($pattern) : 1);
    }

    $skip = ($page * $count) - $count;

    if ($closure !== null) {
      $query = call_user_func_array($closure, [new self]);

      if (!$query instanceof Builder) {
        throw new HibernateBuilderException;
      }
    }

    $get   = isset($query) ? $query->skip($skip)->take($count)->get() : self::skip($skip)->take($count)->get();
    $total = isset($query) ? $query->count() : self::count();
    $next  = ($total - ($page * $count)) > 0 ? '/?page=' . ($page + 1) : null;
    $prev  = $page > 1 ? '/?page=' . ($page - 1) : null;
    $first = ($get->count() < 1) ? null : "/?page=1";
    $last  = '/?page=' . (strpos(($total / $count),'.') ? explode('.', $total / $count)[0] + 1 : ($total / $count));

    $object = [
      'current_page' => (int)$page,
      'data' => $get,
      'first_page_url' => $first,
      'prev_page_url' => $prev,
      'next_page_url' => $next,
      'last_page_url' => $last,
      'per_page' => $count,
      'total' => $total
    ];

    return new Lazy($object);
  }