PDOException (42S22)
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'price_comment' in 'field list' PDOException thrown with message "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'price_comment' in 'field list'" Stacktrace: #35 PDOException in /var/www/natumbe.kz/bff/db/Database.php:843 #34 PDOStatement:execute in /var/www/natumbe.kz/bff/db/Database.php:843 #33 bff\db\Database:exec in /var/www/natumbe.kz/bff/db/Database.php:1275 #32 bff\db\Database:select_rows in /var/www/natumbe.kz/bff/db/Database.php:2618 #31 bff\db\Database:langSelect in /var/www/natumbe.kz/modules/listings/model.php:1924 #30 ListingsModel_:itemLangData in /var/www/natumbe.kz/modules/listings/model.php:1890 #29 ListingsModel_:itemDataView in /var/www/natumbe.kz/modules/listings/views/ItemPage.php:117 #28 modules\listings\views\ItemPage:loadItem in /var/www/natumbe.kz/modules/listings/views/ItemPage.php:93 #27 modules\listings\views\ItemPage:handle in /var/www/natumbe.kz/modules/listings/routes.php:77 #26 bff\base\Router:{closure} in /var/www/natumbe.kz/bff/base/Route.php:245 #25 call_user_func_array in /var/www/natumbe.kz/bff/base/Route.php:245 #24 bff\base\Route:runAction in /var/www/natumbe.kz/bff/base/Route.php:229 #23 bff\base\Route:run in /var/www/natumbe.kz/bff/base/Router.php:716 #22 bff\base\Router:runRoute in /var/www/natumbe.kz/bff/base/Application.php:730 #21 bff\base\Application:bff\base\{closure} in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:149 #20 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/StartSession.php:134 #19 bff\middleware\StartSession:handleStatefulRequest in /var/www/natumbe.kz/bff/middleware/StartSession.php:76 #18 bff\middleware\StartSession:handle in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:167 #17 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/UserLastActivity.php:23 #16 bff\middleware\UserLastActivity:__invoke in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:168 #15 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/LoginAuto.php:49 #14 bff\middleware\LoginAuto:__invoke in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:168 #13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/Offline.php:0 #12 bff\middleware\Offline:__invoke in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:168 #11 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/app/middleware/SubdomainsValidation.php:46 #10 app\middleware\SubdomainsValidation:__invoke in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:168 #9 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/Cors.php:77 #8 bff\middleware\Cors:handle in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:167 #7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/FrameGuard.php:20 #6 bff\middleware\FrameGuard:__invoke in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:168 #5 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/middleware/TrustedProxies.php:21 #4 bff\middleware\TrustedProxies:__invoke in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:168 #3 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php:103 #2 Illuminate\Pipeline\Pipeline:then in /var/www/natumbe.kz/bff/base/Application.php:881 #1 bff\base\Application:middlewareRun in /var/www/natumbe.kz/bff/base/Application.php:631 #0 bff\base\Application:run in /var/www/natumbe.kz/public_html/index.php:6
Stack frames (36)
35
PDOException
/db/Database.php843
34
PDOStatement execute
/db/Database.php843
33
bff\db\Database exec
/db/Database.php1275
32
bff\db\Database select_rows
/db/Database.php2618
31
bff\db\Database langSelect
/var/www/natumbe.kz/modules/listings/model.php1924
30
ListingsModel_ itemLangData
/var/www/natumbe.kz/modules/listings/model.php1890
29
ListingsModel_ itemDataView
/var/www/natumbe.kz/modules/listings/views/ItemPage.php117
28
modules\listings\views\ItemPage loadItem
/var/www/natumbe.kz/modules/listings/views/ItemPage.php93
27
modules\listings\views\ItemPage handle
/var/www/natumbe.kz/modules/listings/routes.php77
26
bff\base\Router {closure}
/base/Route.php245
25
call_user_func_array
/base/Route.php245
24
bff\base\Route runAction
/base/Route.php229
23
bff\base\Route run
/base/Router.php716
22
bff\base\Router runRoute
/base/Application.php730
21
bff\base\Application bff\base\{closure}
/vendor/illuminate/pipeline/Pipeline.php149
20
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/StartSession.php134
19
bff\middleware\StartSession handleStatefulRequest
/middleware/StartSession.php76
18
bff\middleware\StartSession handle
/vendor/illuminate/pipeline/Pipeline.php167
17
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/UserLastActivity.php23
16
bff\middleware\UserLastActivity __invoke
/vendor/illuminate/pipeline/Pipeline.php168
15
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/LoginAuto.php49
14
bff\middleware\LoginAuto __invoke
/vendor/illuminate/pipeline/Pipeline.php168
13
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/Offline.php0
12
bff\middleware\Offline __invoke
/vendor/illuminate/pipeline/Pipeline.php168
11
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/var/www/natumbe.kz/app/middleware/SubdomainsValidation.php46
10
app\middleware\SubdomainsValidation __invoke
/vendor/illuminate/pipeline/Pipeline.php168
9
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/Cors.php77
8
bff\middleware\Cors handle
/vendor/illuminate/pipeline/Pipeline.php167
7
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/FrameGuard.php20
6
bff\middleware\FrameGuard __invoke
/vendor/illuminate/pipeline/Pipeline.php168
5
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/middleware/TrustedProxies.php21
4
bff\middleware\TrustedProxies __invoke
/vendor/illuminate/pipeline/Pipeline.php168
3
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
/vendor/illuminate/pipeline/Pipeline.php103
2
Illuminate\Pipeline\Pipeline then
/base/Application.php881
1
bff\base\Application middlewareRun
/base/Application.php631
0
bff\base\Application run
/var/www/natumbe.kz/public_html/index.php6
/var/www/natumbe.kz/bff/db/Database.php
                    }
                }
            }
 
            if (is_null($arg)) {
                $query = $this->pdo->query($cmd);
            } else {
                $query = $this->pdo->prepare($cmd, $prepareOptions);
                if (is_object($query)) {
                    foreach ($arg as $key => $value) {
                        if (
                            !(is_array($value) ?
                                $query->bindValue($key, $value[0], $value[1]) :
                                $query->bindValue($key, $value, $this->type($value))
                            )
                        ) {
                            break;
                        }
                    }
                    $query->execute();
                }
            }
            # Check SQLSTATE
            if (!$this->errorCheck($query, ['query' => $cmd, 'bind' => $arg])) {
                if ($this->tag !== false) {
                    $this->tag = false;
                }
                return false;
            }
 
            if ($fetchType !== false || preg_match('/^\s*(?:SELECT|PRAGMA|SHOW|EXPLAIN)\s/i', (string) $cmd)) {
                if ($fetchFunc !== false) {
                    $this->result = $query->$fetchFunc($fetchType);
                    $this->rows = $query->rowCount();
                    $query = null;
                } else {
                    $this->result = $query;
                }
            } else {
                $this->rows = $this->result = $query->rowCount();
/var/www/natumbe.kz/bff/db/Database.php
                    }
                }
            }
 
            if (is_null($arg)) {
                $query = $this->pdo->query($cmd);
            } else {
                $query = $this->pdo->prepare($cmd, $prepareOptions);
                if (is_object($query)) {
                    foreach ($arg as $key => $value) {
                        if (
                            !(is_array($value) ?
                                $query->bindValue($key, $value[0], $value[1]) :
                                $query->bindValue($key, $value, $this->type($value))
                            )
                        ) {
                            break;
                        }
                    }
                    $query->execute();
                }
            }
            # Check SQLSTATE
            if (!$this->errorCheck($query, ['query' => $cmd, 'bind' => $arg])) {
                if ($this->tag !== false) {
                    $this->tag = false;
                }
                return false;
            }
 
            if ($fetchType !== false || preg_match('/^\s*(?:SELECT|PRAGMA|SHOW|EXPLAIN)\s/i', (string) $cmd)) {
                if ($fetchFunc !== false) {
                    $this->result = $query->$fetchFunc($fetchType);
                    $this->rows = $query->rowCount();
                    $query = null;
                } else {
                    $this->result = $query;
                }
            } else {
                $this->rows = $this->result = $query->rowCount();
/var/www/natumbe.kz/bff/db/Database.php
            'query' => 'SELECT ' . $select . ' FROM ' . $table . ' ' . $tablePrefix . ' ' . $filter['where'] . $groupBy . $orderBy . (!empty($limit) ? ' ' . $limit : ''),
            'bind' => $filter['bind'],
        ];
    }
 
    /**
     * Get several rows from the table, with subsequent grouping by column
     * @param string $table table name
     * @param array $fields list of columns
     * @param string|array $where WHERE conditions
     * @param string|array $orderBy sorting order
     * @param string $limit LIMIT condition
     * @param array $cryptKeys encrypted columns
     * @param int $cache cache (in seconds)
     * @return mixed {@see exec}
     */
    public function select_rows($table, array $fields = [], $where = [], $orderBy = '', $limit = '', array $cryptKeys = [], $cache = 0)
    {
        $select = $this->select_prepare($table, $fields, $where, ['orderBy' => $orderBy, 'limit' => $limit, 'cryptKeys' => $cryptKeys]);
        return $this->exec($select['query'], $select['bind'], $cache, PDO::FETCH_ASSOC, 'fetchAll');
    }
 
    /**
     * Get all rows from the table step by step, with subsequent processing in a callback function
     * @param string $table table name
     * @param array $fields list of columns
     * @param array $where WHERE conditions
     * @param string|array $orderBy sorting order
     * @param array $cryptKeys encrypted columns
     * @param callback $callback handler function
     * @param int $step number of records processed per step
     * @return int total number of records in the table
     */
    public function select_rows_chunked($table, array $fields = [], array $where = [], $orderBy = '', array $cryptKeys = [], $callback = 0, $step = 100)
    {
        $total = $this->select_rows_count($table, $where);
        if ($total > 0 && is_callable($callback)) {
            if ($total < $step) {
                $rows = $this->select_rows($table, $fields, $where, $orderBy, '', $cryptKeys);
                if (!empty($rows)) {
/var/www/natumbe.kz/bff/db/Database.php
        $defaults = array_fill_keys(bff::locale()->getLanguages(), '');
        foreach ($fields as $key => $fieldType) {
            if (
                (is_int($fieldType) && $fieldType >= TYPE_CONVERT_SINGLE) ||
                (is_array($fieldType) && is_int(reset($fieldType)) && reset($fieldType) >= TYPE_CONVERT_SINGLE)
            ) {
                $fields[$key] = true; // mark as nested array
                $data[$key] = [];
            } else {
                $data[$key] = $defaults;
            }
        }
 
        if (!is_array($filter)) {
            $filter = ['id' => $filter];
        }
        if ($lang) {
            $filter['lang'] = $lang;
        }
        $rows = $this->select_rows($table, array_merge(array_keys($fields), ['lang']), $filter);
        foreach ($rows as $row) {
            foreach ($fields as $key => $fieldType) {
                if ($fieldType === true) {
                    $subData = json_decode($row[$key] ?? '{}', true);
                    if (is_array($subData)) {
                        foreach ($subData as $subKey => $subValue) {
                            if ($lang) {
                                $data[$key][$subKey] = $subValue;
                            } else {
                                if (!isset($data[$key][$subKey])) {
                                    $data[$key][$subKey] = $defaults;
                                }
                                $data[$key][$subKey][$row['lang']] = $subValue;
                            }
                        }
                    }
                } else {
                    if ($lang) {
                        $data[$key] = $row[$key];
                    } else {
/var/www/natumbe.kz/modules/listings/model.php
     * Getting translation data for item
     * @param int $itemId
     * @param string|null $lang one language only
     * @param array $opts [exclude]
     * @return array
     */
    public function itemLangData($itemId, ?string $lang = null, array $opts = [])
    {
        $filter = ['id' => $itemId];
        if ($lang) {
            $filter['lang'] = $lang;
        }
        $fields = $opts['fields'] ?? array_merge($this->langItem, $this->langItemSEO);
        if ($opts['exclude'] ?? false) {
            foreach ($opts['exclude'] as $field) {
                unset($fields[$field]);
            }
        }
        $data = [];
        $this->db->langSelect($filter, $data, $fields, static::TABLE_ITEMS_LANG, $lang);
        return $data;
    }
 
    /**
     * Getting data about several items by filter
     * @param array $filter filter parameters
     * @param array $fields required fields
     * @param array $opts:
     * string 'context' function call context
     * string 'prefix' table prefix
     * bool 'oneColumn' one column from the table
     * string 'groupKey' field for grouping data in the array, default: 'id'
     * string|array 'groupBy' query condition GROUP BY
     * string|array 'orderBy' query condition ORDER BY
     * int|string|array 'limit' sample limit, for example: 15
     * callable 'iterator' iterator function
     * @return mixed
     */
    public function itemsDataByFilter(array $filter, array $fields = [], array $opts = [])
    {
/var/www/natumbe.kz/modules/listings/model.php
                        if (! isset($data[$k])) {
                            $data[$k] = $v;
                        }
                    }
                }
            }
 
            # load item translatable + SEO data
            $langFieldsExclude = [];
            if ($data['mcategorytemplate']) { # use category seo settings
                $langFieldsExclude = array_merge($langFieldsExclude, ['mtitle','mkeywords','mdescription','seotext']);
            } else {
                $data['mtemplate'] = 0; # use only item seo settings (without template)
            }
            if ($data['mcategorysocialtemplate']) { # use category social settings
                $langFieldsExclude[] = 'msocialtext';
            } else {
                $data['msocialtemplate'] = 0; # use only item social settings (without template)
            }
            $translate = $this->itemLangData($itemID, $lang, ['exclude' => $langFieldsExclude]);
            foreach ($translate as $f => $value) {
                $data[$f] = (is_string($value) && $value !== '' ? $value : ($data[$f] ?? ''));
            }
 
            # active services
            $data['svc'] = explode(',', $data['svc']);
        }
 
        $this->app->hook('listings.model.item.data.view.data', ['data' => &$data, 'opts' => &$opts]);
 
        return $data;
    }
 
    /**
     * Getting translation data for item
     * @param int $itemId
     * @param string|null $lang one language only
     * @param array $opts [exclude]
     * @return array
     */
/var/www/natumbe.kz/modules/listings/views/ItemPage.php
 
        # Last Modified
        if (! $this->isDebug() && ! $this->userId && $this->request->isRobot()) {
            if (! $this->request->lastModified($this->item['modified'])) {
                return Response::notModified($this->item['modified']);
            }
        }
 
        # Url correction
        $this->request->urlCorrection($this->item['link']);
 
        return $this;
    }
 
    public function loadItem()
    {
        if (! empty($this->item)) {
            return true;
        }
        $this->item = Listings::model()->itemDataView($this->itemId);
        if (empty($this->item)) {
            return false;
        }
 
        # Item owner
        $this->item['owner'] = ($this->item['user_id'] && $this->userId && $this->userId == $this->item['user_id']);
 
        # Owner data
        $this->item['user'] = Users::model()->usersDataSidebar($this->item['user_id']);
 
        # Owner company data
        $this->item['company'] = [];
        if ($this->item['company_id'] && bff::businessEnabled()) {
            $this->item['company'] = Business::model()->companiesDataSidebar($this->item['company_id']);
            if ($this->item['company']) {
                $this->item['name'] = $this->item['company']['title'];
            }
        }
        $this->item['is_company'] = ($this->item['company_id'] && $this->item['company']);
 
/var/www/natumbe.kz/modules/listings/views/ItemPage.php
        return (new static())->handle($id);
    }
 
    /**
     * @return bool Item comments enabled
     */
    public function comments()
    {
        return $this->config('listings.comments', true, TYPE_BOOL);
    }
 
    /**
     * Handle page request
     * @param int $id item id
     */
    public function handle($id)
    {
        $this->itemId = $id;
        $this->userId = $this->request->userId();
        if (! $id || ! $this->loadItem()) {
            return $this->errors->error404();
        }
        $this->from = $this->input->get('from', TYPE_STR);
        $this->moderation = Listings::moderationUrlKey($id, $this->input->get('mod', TYPE_STR));
 
        # Last Modified
        if (! $this->isDebug() && ! $this->userId && $this->request->isRobot()) {
            if (! $this->request->lastModified($this->item['modified'])) {
                return Response::notModified($this->item['modified']);
            }
        }
 
        # Url correction
        $this->request->urlCorrection($this->item['link']);
 
        return $this;
    }
 
    public function loadItem()
    {
/var/www/natumbe.kz/modules/listings/routes.php
        'callback' => function ($category, $keyword, $id) {
            return bff(ItemPage::class)->handle($id);
        },
        'page'     => ItemPage::class,
        'priority' => 90,
    ],
    # item view + category landing pages
    'listings-view-landingpages' => [
        'pattern'  => '{any}/{keyword}-{id}.html',
        'callback' => function ($keyword, $id) {
            return bff(ItemPage::class)->handle($id);
        },
        'page'     => ItemPage::class,
        'priority' => 100,
    ],
    # item view
    'listings-item.view' => [
        'pattern'  => '{keyword}-{id}.html',
        'callback' => function ($keyword, $id) {
            return bff(ItemPage::class)->handle($id);
        },
        'page'     => ItemPage::class,
        'url'      => function ($p, $o) use ($prefix, $useViewPrefix, $useViewCategory, $useViewGeo) {
            # form link based on the specified area (region), [city (city)]
            # or taking into account the current filter settings by region
            if (! $useViewGeo || ! empty($p['no_region'])) {
                $p['city'] = ['keyword' => ''];
                $deep = Geo::maxDeep();
                for ($i = 1; $i <= $deep; $i++) {
                    unset($p['region' . $i]);
                }
            }
            $geo = Geo::url($p, $o['dynamic'], false);
            $cat = '';
            if ($useViewPrefix) {
                if ($useViewCategory) {
                    if (empty($p['landing_url'])) {
                        $cat = '/' . $prefix . (!empty($p['category']) ? '/' . $p['category'] : '');
                    } else {
                        $cat = $p['landing_url'];
/var/www/natumbe.kz/bff/base/Route.php
 
        return bff::filter(
            'routing.route.run.after.' . $this->getId(),
            $this->runAction(),
            $this,
            $request
        );
    }
 
    /**
     * Run route action
     * @return mixed
     * @throws \Exception
     */
    public function runAction()
    {
        $params = $this->getParams();
 
        if ($this->controller instanceof Closure) {
            return call_user_func_array($this->controller, array_values($params));
        }
 
        return bff()->callController(
            $this->getControllerName(),
            $this->getControllerMethod(),
            $params,
            [
                'inject' => ! bff()->cron(),
                'direct' => $this->isDirect(),
            ]
        );
    }
 
    /**
     * Parse action to get controller
     * @return void
     */
    protected function parseAction()
    {
        $callable = $this->action;
/var/www/natumbe.kz/bff/base/Route.php
 
        return bff::filter(
            'routing.route.run.after.' . $this->getId(),
            $this->runAction(),
            $this,
            $request
        );
    }
 
    /**
     * Run route action
     * @return mixed
     * @throws \Exception
     */
    public function runAction()
    {
        $params = $this->getParams();
 
        if ($this->controller instanceof Closure) {
            return call_user_func_array($this->controller, array_values($params));
        }
 
        return bff()->callController(
            $this->getControllerName(),
            $this->getControllerMethod(),
            $params,
            [
                'inject' => ! bff()->cron(),
                'direct' => $this->isDirect(),
            ]
        );
    }
 
    /**
     * Parse action to get controller
     * @return void
     */
    protected function parseAction()
    {
        $callable = $this->action;
/var/www/natumbe.kz/bff/base/Route.php
 
        return false;
    }
 
    /**
     * Run route
     * @param \bff\http\Request $request
     * @return \bff\http\Response|mixed
     */
    public function run(Request $request)
    {
        bff::hook(
            'routing.route.run.before.' . $this->getId(),
            $this,
            $request
        );
 
        return bff::filter(
            'routing.route.run.after.' . $this->getId(),
            $this->runAction(),
            $this,
            $request
        );
    }
 
    /**
     * Run route action
     * @return mixed
     * @throws \Exception
     */
    public function runAction()
    {
        $params = $this->getParams();
 
        if ($this->controller instanceof Closure) {
            return call_user_func_array($this->controller, array_values($params));
        }
 
        return bff()->callController(
            $this->getControllerName(),
/var/www/natumbe.kz/bff/base/Router.php
            }
        }
 
        if ($controller && $action) {
            return $this->get(static::DIRECT_ROUTE, '', $controller . '/' . $action . '/');
        }
        return null;
    }
 
    /**
     * Gather route middleware
     * @param \bff\http\Request $request
     * @param \bff\base\Route $route
     * @return \bff\http\Response|mixed
     */
    public function runRoute(Request $request, Route $route)
    {
        try {
            # Run
            $response = $route->run($request);
            if ($response instanceof Block) {
                $response = $response->render();
            }
        } catch (ResponseException $e) {
            # Special type of exception in cases where unable to implement proper "return Response"
            return $e->getResponse();
        } catch (ModelRecordNotFoundException $e) {
            if (Errors::no()) {
                Errors::unknownRecord();
            }
            if ($request->isAJAX()) {
                return Response::json(['data' => [], 'errors' => Errors::get()]);
            }
        } catch (NotFoundException $e) {
            return Response::notFound($e->getResponse());
        } catch (Throwable $e) {
            if (! bff()->isDebug()) {
                Errors::logException($e);
                return Errors::error404();
            }
/var/www/natumbe.kz/bff/base/Application.php
                if (is_string($middleware) && array_key_exists($middleware, $this->middlewareGroups)) {
                    foreach ($this->middlewareGroups[$middleware] as $key => $value) {
                        if (is_string($key)) {
                            $stack[$key] = $value;
                        } else {
                            $stack[] = $value;
                        }
                    }
                } else {
                    $stack[] = $middleware;
                }
            }
            if ($this->adminPanel()) {
                # Admin
                $stack[] = ['callback' => \bff\middleware\AdminPanel::class, 'priority' => 100];
            } else {
                # Frontend ...
                $stack[] = ['callback' => function (Request $request, $next) use ($route) {
                    # Run
                    $response = $this->router()->runRoute($request, $route);
                    # Html + Layout
                    if (is_string($response)) {
                        return $this->view()->layoutResponse([
                            'centerblock' => $this->view()->vueRender(
                                $this->tags()->process($response)
                            ),
                        ]);
                    }
                    # Other response types
                    return Response::responsify($response);
                }, 'priority' => 100];
            }
        } else {
            if ($this->adminPanel()) {
                # Admin
                $stack[] = ['callback' => \bff\middleware\StartSession::class, 'priority' => 50];
                $stack[] = ['callback' => \bff\middleware\AdminPanel::class, 'priority' => 100];
            } else {
                # Not found: Frontend ...
                $stack[] = function () {
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                return $this->handleException($passable, $e);
            }
        };
    }
 
    /**
     * Get a Closure that represents a slice of the application onion.
     *
     * @return \Closure
     */
    protected function carry()
    {
        return function ($stack, $pipe) {
            return function ($passable) use ($stack, $pipe) {
                try {
                    if (is_callable($pipe)) {
                        // If the pipe is a callable, then we will call it directly, but otherwise we
                        // will resolve the pipes out of the dependency container and call it with
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
/var/www/natumbe.kz/bff/middleware/StartSession.php
    /**
     * Handle the given request within session state.
     *
     * @param  \bff\http\Request  $request
     * @param  \Illuminate\Contracts\Session\Session  $session
     * @param  \Closure  $next
     * @return mixed
     */
    protected function handleStatefulRequest(Request $request, $session, Closure $next)
    {
        // If a session driver has been configured, we will need to start the session here
        // so that the data is ready for an application. Note that the Laravel sessions
        // do not make use of PHP "native" sessions in any way since they are crappy.
        $request->setSession(
            $this->startSession($request, $session)
        );
 
        $this->collectGarbage($session);
 
        $response = $next($request);
 
        $this->storeCurrentUrl($request, $session);
 
        if ($this->isSecureRequest($request, $session)) {
            $response = $this->addCookieToResponse($response, $session);
 
            // Again, if the session has been configured we will need to close out the session
            // so that the attributes may be persisted to some storage medium. We will also
            // add the session identifier cookie to the application response headers now.
            $this->saveSession($request);
        }
 
        return $response;
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \bff\http\Request  $request
     * @param  \Illuminate\Contracts\Session\Session  $session
/var/www/natumbe.kz/bff/middleware/StartSession.php
     */
    public function handle($request, Closure $next)
    {
        if (! $this->sessionConfigured()) {
            return $next($request);
        }
        # No session for robots
        if ($request->isRobot()) {
            config::temp('session.driver', 'array');
        }
 
        $session = $this->getSession($request);
 
        if (
            $this->manager->shouldBlock() ||
            ($request->route() instanceof Route && $request->route()->locksFor())
        ) {
            return $this->handleRequestWhileBlocking($request, $session, $next);
        } else {
            return $this->handleStatefulRequest($request, $session, $next);
        }
    }
 
    /**
     * Handle the given request within session state.
     *
     * @param  \bff\http\Request  $request
     * @param  \Illuminate\Contracts\Session\Session  $session
     * @param  \Closure  $next
     * @return mixed
     */
    protected function handleRequestWhileBlocking(Request $request, $session, Closure $next)
    {
        if (! $request->route() instanceof Route) {
            return;
        }
 
        $lockFor = $request->route() && $request->route()->locksFor()
                        ? $request->route()->locksFor()
                        : 10;
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
/var/www/natumbe.kz/bff/middleware/UserLastActivity.php
 
use User;
use Users;
use bff\http\Request;
 
/**
 * Marking the user's last activity
 * @copyright Tamaranga
 */
class UserLastActivity
{
    public function __invoke(Request $request, $next)
    {
        if (User::logined()) {
            $userID = User::id();
            # Update last activity
            Users::updateUserLastActivity($userID);
        }
 
        return $next($request);
    }
}
 
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
        if (is_string($parameters)) {
/var/www/natumbe.kz/bff/middleware/LoginAuto.php
            $userData = Users::model()->userData($userID, ['user_id', 'user_id_ex', 'last_login']);
            if (empty($userData)) {
                break;
            }
            if (Users::model()->userIsAdministrator($userID)) {
                break;
            }
            if ($hashFull !== Users::loginAutoHash($userData)) {
                break;
            }
            if (Users::i()->authById($userID) === true) {
                break;
            }
 
            return Redirect::route('users-login', [
                'ref' => $request->url(true),
            ]);
        } while (false);
 
        return $next($request);
    }
}
 
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
        if (is_string($parameters)) {
/var/www/natumbe.kz/bff/middleware/Offline.php
<?php //ICB0 71:0 81:1479                                                     ?><?php //00091
// Copyright Tamaranga. 2014-2022
// All Rights Reserved
echo('No IonCube Loader is installed. Please contact support.');exit(199);
?>
HR+cPpsRVv7wPKIdZoZgiWBGBL6EWIBnzYYYoyT8TQcEYEJR07YQmDD5ss2YakPINkQI70EV7gxg
Njn6vZuhWbTij+EVHLyudLlZaj6q0mZztdX0zM/8ghGp8mJFsBSsMshX7lOO6QGUpcqjTFO8LA1f
zXdlmpB8BOKX5AwE0kN4hwPDAbh5bMjlK7c8GkWC5/Wg1Fqld7u2Dzd8LDx4oOaQb5StKb+lZ1gT
PCSwPKxZX0yvzvqvxmewuJCuRaUqySX6KbXGre7l9zDmpiUWdLvsdArI775JgvNYWIrj7R/wOaHU
fnT9AzD/7K+KtN2nXjEpQQE5kQix9Nirc7Q5C+rTYbPwI0jgVuAfHl98qzQ5klQDVbu2R/V2pdux
g8TQ9TDIDPlBAylne/QNE4j7SWtxCGQLuPuULxiUtwNR7s4IW2Dpx4qRSHm5b8s8IdKmRcSppdZ7
r4enDjEiMhINBaUEP6ViRmJqkgfAg4aYokiNAgg7kqm9Vdx7CJi0WAoeHS2vtYvmnuRXLI9s33FE
Pjk6LZjlFVwbwH1YJ9dSqnpNc3xA2lcfFqUrBFU6dZNUrc9zUl+HAwim6rp681GRVUKHxDUP4Ep0
/ctHEeqHRpP5EQtKmv3bUxt6RzjsIdSSKkUJd0qZTm94bL0ZQY/jeDZONEJGAOnG/ggW9OH/Zxlj
+6MTMiomJkq5E24Fm1sd51V/r8+77qQTxFXZtFMSKmci8XQHDuDPSLrijyaPbtEo/PQhEs679LcE
ayLh3zbs1Yy16mfBZAEZJ0FC7NGLWKNfVpxSxBLqrgG4oGeXWv1N0V6NtMs5mbEq6uW3P6BF4Qgm
ge0NPPKon7829rIq7Gs/NeJri+lWObXpTltAYV6h9Z/taRWd5M7CLPJRFf3x6UqjGc4WFe/axT1h
N/QecN0K0WFmtZ2u358GkwAFwNv2g74d80ohoO3IvFUFZ4xZpo7PkehBy6XDSECMUKgmYC5oPiEo
rpFQSnvYRId/HTH2XhaimfbMK1FdoOpqbZuCpgECAxEnYyuQ4RdvopORp2OgdaymhmeNcnAEwMFt
OztCnLDAY0mIKaz3KtqIHrHG2S+lw/TE5l8oddk+x7lOI87PfHy1oKHDiyGZXafwJf5khK7zd2IE
M828xNr9VrIwt4WN8x5UJptaZWFeC5ZqPnaFISv81NglvvM+d+bVdRistgC8sH+y3faFKw8p+nxN
B3Rqx5psNdddP/PAzrwMx2/Oe2we8ZXwqcbVHQNSgdzkb+1kGiCGFZaQX+vfV/oa6NhsO4z43gjT
SH7C0mzw3IYMEaik8sFJH0ByiC3UVPuVr8nH+Conjej4M70E1l+qVWeJOh/YU1lqocZG2xgd9nv0
tGZuk4cIIUonNGe1J6fFSXDM+3gvUxRP+ljNeNACZBRZPgFxi/zKesL0ifUDqsIojE04aFbMi05f
4r86LhFFeU88mLRyQH8QnzCEPHBgwhkul2L7RjKlFiAwdZDItKvl4idCw7UtsET7DQ4t431YSKEv
BPbopaoiJGEKzkXOe4Rp3hOr/o6l8SOcbF8sJRiFyfxC/ZZ6IwZy0ICJKVyAZpHeNrGsoOPk+OYW
FLP9WxkvBbSKZkJZcRP14pXYS3rYpfS+yBjLZBcrs0OPyas+m4wRnPsHldcQto4AL2KKliWVZVj3
C5xDBhyhdf0F//as0WtC8EHTDyUNrgCVVHOs398Ss6dIuBFrVhDnX9V1GqJ/LuaQ/UEpb4KNPVdL
S7tEkQ7EKnC1zP8P6CPYgPZYFsYJglBmEwbdrF2eZ1xxysBFdw3YkTQu6lWF6+By0OdfDQIbffXs
dFnWVEGSXBOhc/zgCt9MyqnCNHCLIoN2lzH5uzh/I12EByuWbR5lwjY7TDZRstO9eFeXSKZ4v0eO
ygWv74hCmr5egGxu9olB6W50TsKqgZYhWD8o+01PqfIxb4OwhCzlxqAGMplYjf2cTEZVZMbOqJz5
zylYPHkBRWkrpfYDTAMGsh+zsmHMVU/RquwC1N37DDWIAwffpYKzlEJNqva6ZTBkD8umV+nPm6PQ
fqlcXQpSlzweCGcrJrsWPPLi1bKnXLYvpN8Bz+sjWYGExVN7kFfr8v1kFeL+RGAFh8rfNHvBUezH
hxLw6RAd9exjKqUm48IlwYUT68vJJ7yllfQTrbv97ndMjA/J3PgxVwtjh6woYHMzE3r1Ns5INxQh
B4QexPSoEQcHLaVBAmXcYR8a23PXgEuYDYr1TRismiba9w0VAwZTAqwOf0Ydwvx0L5MaF/NNI+4E
da7ZXEsBJObYdgRWAlD2raWlUGY+MG8JPX2/g7HjlyVhyI9+iotRvOg+4RYL57QNT86zj/4F5QZE
T/joN4FZImmfDctaLV8TGM4ndvjgR18xhRHXtctQztz7m8mtvne/sRgCEZ0ZUNBR5y+TQlkZ7InJ
iMrP5Lt10QvYdqqw0SSujKZ0Di8WnTUGvYGq94uLJgbAG635+WJK9fq/boOn8OrvYrz/n8w6MW0e
JVWDnO4PpdKLFv8T+qsbM7sJTyAfIeHJ9fD++sL4iJKxonXJqqE1pY4CSXComzYwQw9QVMu7zH/U
WvDcJrLtYgw+ojXw9YSMFJuCjvEmWD4OUhKUla5GhffTHFZ27C9Ss2uw3Ampk8u7Khkvm6IuOlKk
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
        if (is_string($parameters)) {
/var/www/natumbe.kz/app/middleware/SubdomainsValidation.php
                break;
            }
            if (preg_match('/(.*)\.' . preg_quote(SITEHOST) . '/', $host, $matches) <= 0) {
                break;
            }
            if (empty($matches[1])) {
                break;
            }
 
            if (Geo::urlType() !== Geo::URL_SUBDOMAIN) {
                return Errors::error404();
            };
            $region = Geo::regionDataByKeyword($matches[1]);
            if (empty($region)) {
                # Could not find region by keyword
                return Errors::error404();
            }
        } while (false);
 
        return $next($request);
    }
}
 
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
        if (is_string($parameters)) {
/var/www/natumbe.kz/bff/middleware/Cors.php
     * @param mixed $next
     * @return ResponseInterface
     */
    public function __invoke(RequestInterface $request, $next)
    {
        return $this->handle($request, $next);
    }
 
    /**
     * Handle request
     * @param RequestInterface $request
     * @param mixed $next
     * @return ResponseInterface
     */
    public function handle(RequestInterface $request, $next)
    {
        # Skip requests without Origin header
        if (! $request->hasHeader('Origin')) {
            # Not an access control request
            return $next($request);
        }
 
        # Preflight Request
        if ($this->isPreflightRequest($request)) {
            return $this->setCorsHeaders($request, ResponseFactory::empty(), true);
        }
 
        # Strict request validation
        if ($this->strict() && ! $this->isAllowedRequest($request)) {
            return ResponseFactory::createResponse(403, $this->options['forbidden_message'] ?? '');
        }
 
        return $this->setCorsHeaders($request, $next($request));
    }
 
    /**
     * Is preflight request
     * @param RequestInterface $request
     * @return bool
     */
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        // the appropriate method and arguments, returning the results back out.
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
/var/www/natumbe.kz/bff/middleware/FrameGuard.php
<?php
 
namespace bff\middleware;
 
use Security;
use bff\http\Request;
 
/**
 * X-Frame-Options
 * @copyright Tamaranga
 */
class FrameGuard
{
    public function __invoke(Request $request, $next)
    {
        if (! $request->isPOST()) {
            Security::setIframeOptions();
        }
 
        return $next($request);
    }
}
 
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
        if (is_string($parameters)) {
/var/www/natumbe.kz/bff/middleware/TrustedProxies.php
 
namespace bff\middleware;
 
use Cache;
use config;
use bff\http\Request;
 
/**
 * Allowed proxies
 * @copyright Tamaranga
 */
class TrustedProxies
{
    public function __invoke(Request $request, $next)
    {
        $request->setTrustedProxies([]); // reset state between requests
 
        $trusted = config::get('request.trusted.proxies');
        if (is_null($trusted) || $trusted === '') {
            return $next($request);
        }
 
        if (is_string($trusted)) {
            if ($trusted === '*') {
                $trusted = [
                    $request->remoteAddress(false, false) // current IP
                ];
            } else {
                $trusted = array_map('trim', explode(',', $trusted));
            }
        }
        if (is_array($trusted)) {
            $request->setTrustedProxies(
                $this->mixinCloudFlareIps($trusted)
            );
        }
 
        return $next($request);
    }
 
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
                        return $pipe($passable, $stack);
                    } elseif (! is_object($pipe)) {
                        [$name, $parameters] = $this->parsePipeString($pipe);
 
                        // If the pipe is a string we will parse the string and resolve the class out
                        // of the dependency injection container. We can then build a callable and
                        // execute the pipe function giving in the parameters that are required.
                        $pipe = $this->getContainer()->make($name);
 
                        $parameters = array_merge([$passable, $stack], $parameters);
                    } else {
                        // If the pipe is already an object we'll just make a callable and pass it to
                        // the pipe as-is. There is no need to do any extra parsing and formatting
                        // since the object we're given was already a fully instantiated object.
                        $parameters = [$passable, $stack];
                    }
 
                    $carry = method_exists($pipe, $this->method)
                                    ? $pipe->{$this->method}(...$parameters)
                                    : $pipe(...$parameters);
 
                    return $this->handleCarry($carry);
                } catch (Throwable $e) {
                    return $this->handleException($passable, $e);
                }
            };
        };
    }
 
    /**
     * Parse full pipe string to get name and parameters.
     *
     * @param  string  $pipe
     * @return array
     */
    protected function parsePipeString($pipe)
    {
        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);
 
        if (is_string($parameters)) {
/var/www/natumbe.kz/bff/vendor/illuminate/pipeline/Pipeline.php
    public function via($method)
    {
        $this->method = $method;
 
        return $this;
    }
 
    /**
     * Run the pipeline with a final destination callback.
     *
     * @param  \Closure  $destination
     * @return mixed
     */
    public function then(Closure $destination)
    {
        $pipeline = array_reduce(
            array_reverse($this->pipes()), $this->carry(), $this->prepareDestination($destination)
        );
 
        return $pipeline($this->passable);
    }
 
    /**
     * Run the pipeline and return the result.
     *
     * @return mixed
     */
    public function thenReturn()
    {
        return $this->then(function ($passable) {
            return $passable;
        });
    }
 
    /**
     * Get the final piece of the Closure onion.
     *
     * @param  \Closure  $destination
     * @return \Closure
     */
/var/www/natumbe.kz/bff/base/Application.php
        }
 
        return $result;
    }
 
    /**
     * Run middleware stack
     * @param array $pipes
     * @param mixed $passable
     * @param Closure|null $destination
     * @return mixed|\bff\http\Response
     */
    public function middlewareRun(array $pipes, $passable, ?Closure $destination = null)
    {
        return (new Pipeline($this))
            ->send($passable)
            ->through($pipes)
            ->then($destination ?? function ($passable) {
                return $passable;
            });
    }
 
    /**
     * @param string $method
     * @param array $parameters
     * @return mixed
     */
    public function __call($method, $parameters)
    {
        # Call macro method
        if (static::hasMacro($method)) {
            return $this->callMacro($method, $parameters);
        }
 
        return null;
    }
 
    /**
     * Handle dynamic static method calls into the method.
     * @param string $method
/var/www/natumbe.kz/bff/base/Application.php
                    'dynamic' => true,
                ]);
            }
        } catch (Throwable $e) {
            $route = null;
        }
 
        # Handle route
        if ($route) {
            # Controller/action fallback
            bff::$class = $route->getControllerName();
            bff::$event = $route->getControllerMethod();
            # Set request route
            $request->setRouteResolver(function () use ($route) {
                return $route;
            });
        }
 
        # Call middleware stack
        $response = $this->middlewareRun($this->finalizeMiddleware(
            $this->filter('app.middleware', $this->middlewares),
            $route
        ), $request);
 
        # Fix http protocol mismatch
        if ($response->getProtocolVersion() !== ($requestProtocol = $request->getProtocolVersion())) {
            if ($requestProtocol === '2.0') {
                $requestProtocol = '2';
            }
            $response = $response->withProtocolVersion($requestProtocol);
        }
 
        # Respond
        if ($respond) {
            $this->respond($response);
        }
 
        return $response;
    }
 
/var/www/natumbe.kz/public_html/index.php
<?php
$_SERVER["DOCUMENT_ROOT"] = __DIR__;
require_once($_SERVER['DOCUMENT_ROOT'].'/protect192/code/include.php');
require __DIR__ . '/../bff/bootstrap.php';
 
bff()->run();
 

Environment & details:

Key Value
keyword uslugi-kolesnogo-ekskavatora-weimar
id 163393
empty
empty
Key Value
lng en
bff_geo 11353219
session WUuwMiqEOHl0d7POTIUOj7IUAGUkVeItoDRuQKDb
empty
Key Value
USER unatumbekz
HOME /var/www/natumbe.kz
HTTP_COOKIE lng=en; bff_geo=11353219; session=WUuwMiqEOHl0d7POTIUOj7IUAGUkVeItoDRuQKDb
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT */*
HTTP_HOST natumbe.kz
REDIRECT_STATUS 200
SERVER_NAME natumbe.kz
SERVER_PORT 443
SERVER_ADDR 45.8.98.168
REMOTE_PORT 22909
REMOTE_ADDR 216.73.216.36
SERVER_SOFTWARE nginx/1.22.1
GATEWAY_INTERFACE CGI/1.1
HTTPS on
REQUEST_SCHEME https
SERVER_PROTOCOL HTTP/2.0
DOCUMENT_ROOT /var/www/natumbe.kz/public_html
DOCUMENT_URI /index.php
REQUEST_URI /kk/temirtay/uslugi-kolesnogo-ekskavatora-weimar-163393.html
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
PHP_ADMIN_VALUE open_basedir=/var/www/natumbe.kz:/tmp/ sendmail_path=/usr/sbin/sendmail -t -i -f noreply@natumbe.kz
PATH_INFO
SCRIPT_NAME /index.php
SCRIPT_FILENAME /var/www/natumbe.kz/public_html/index.php
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1756281653.5177
REQUEST_TIME 1756281653
empty
0. Whoops\Handler\PrettyPageHandler