Error
Class 'bff\modules\svc\Service' not found Error thrown with message "Class 'bff\modules\svc\Service' not found" Stacktrace: #43 Error in /var/www/natumbe.kz/plugins/services_listings_p0e50fd/ServiceBase.php:14 #42 include in /var/www/natumbe.kz/bff/base/Application.php:2440 #41 bff\base\Application:autoloadByNamespace in /var/www/natumbe.kz/bff/base/Application.php:2390 #40 bff\base\Application:autoload in [internal]:0 #39 spl_autoload_call in /var/www/natumbe.kz/plugins/services_listings_p0e50fd/Fix.php:13 #38 include in /var/www/natumbe.kz/bff/base/Application.php:2440 #37 bff\base\Application:autoloadByNamespace in /var/www/natumbe.kz/bff/base/Application.php:2390 #36 bff\base\Application:autoload in [internal]:0 #35 spl_autoload_call in [internal]:0 #34 class_exists in /var/www/natumbe.kz/bff/modules/svc/ServiceManager.php:120 #33 bff\modules\svc\ServiceManager:getService in /var/www/natumbe.kz/modules/listings/base.php:1866 #32 ListingsBase_:itemServices in /var/www/natumbe.kz/bff/vendor/illuminate/support/Facades/Facade.php:261 #31 Illuminate\Support\Facades\Facade:__callStatic in /var/www/natumbe.kz/modules/listings/views/search/FilterBlock.php:910 #30 modules\listings\views\search\FilterBlock:toSqlQuery in /var/www/natumbe.kz/modules/listings/views/search/ListBlock.php:172 #29 modules\listings\views\search\ListBlock:prepareSearchQuery in /var/www/natumbe.kz/modules/listings/views/search/ListBlock.php:127 #28 modules\listings\views\search\ListBlock:loadList in /var/www/natumbe.kz/modules/listings/views/SearchPage.php:92 #27 modules\listings\views\SearchPage:data in /var/www/natumbe.kz/bff/view/Block.php:895 #26 bff\view\Block:gatherData in /var/www/natumbe.kz/bff/view/Block.php:748 #25 bff\view\Block:renderContent in /var/www/natumbe.kz/bff/view/Page.php:129 #24 bff\view\Page:renderContent in /var/www/natumbe.kz/bff/view/Block.php:696 #23 bff\view\Block:render in /var/www/natumbe.kz/bff/base/Router.php:718 #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 (44)
43
Error
/var/www/natumbe.kz/plugins/services_listings_p0e50fd/ServiceBase.php14
42
include
/base/Application.php2440
41
bff\base\Application autoloadByNamespace
/base/Application.php2390
40
bff\base\Application autoload
[internal]0
39
spl_autoload_call
/var/www/natumbe.kz/plugins/services_listings_p0e50fd/Fix.php13
38
include
/base/Application.php2440
37
bff\base\Application autoloadByNamespace
/base/Application.php2390
36
bff\base\Application autoload
[internal]0
35
spl_autoload_call
[internal]0
34
class_exists
/modules/svc/ServiceManager.php120
33
bff\modules\svc\ServiceManager getService
/var/www/natumbe.kz/modules/listings/base.php1866
32
ListingsBase_ itemServices
/vendor/illuminate/support/Facades/Facade.php261
31
Illuminate\Support\Facades\Facade __callStatic
/var/www/natumbe.kz/modules/listings/views/search/FilterBlock.php910
30
modules\listings\views\search\FilterBlock toSqlQuery
/var/www/natumbe.kz/modules/listings/views/search/ListBlock.php172
29
modules\listings\views\search\ListBlock prepareSearchQuery
/var/www/natumbe.kz/modules/listings/views/search/ListBlock.php127
28
modules\listings\views\search\ListBlock loadList
/var/www/natumbe.kz/modules/listings/views/SearchPage.php92
27
modules\listings\views\SearchPage data
/view/Block.php895
26
bff\view\Block gatherData
/view/Block.php748
25
bff\view\Block renderContent
/view/Page.php129
24
bff\view\Page renderContent
/view/Block.php696
23
bff\view\Block render
/base/Router.php718
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/plugins/services_listings_p0e50fd/ServiceBase.php
<?php
 
namespace plugins\services\listings;
 
use Geo;
use User;
use Listings;
use bff\tpl\admin\Form;
use bff\modules\svc\Service;
use modules\listings\ItemServices;
use modules\listings\ItemServicePrices;
use modules\listings\models\ItemServiceStatus;
 
abstract class ServiceBase extends Service
{
    use ItemServicePrices;
 
    /**
     * @var ItemServices
     */
    protected $manager = null;
 
    /**
     * @return \Plugin_Services_Listings_p0e50fd | \Plugin
     */
    protected function plugin()
    {
        return $this->app->plugin('services\listings');
    }
 
    /**
     * @return \Plugin_Services_Listings_p0e50fd | null
     */
    protected function addon()
    {
        return null;
    }
 
    /**
     * Admin settings form
/var/www/natumbe.kz/bff/base/Application.php
     */
    protected function autoloadByNamespace(string $class, bool $themed = false)
    {
        foreach ($this->autoloadNamespaces as $namespace => $path) {
            if (mb_stripos($class, $namespace) === 0) {
                $files = [
                    # \namespace\class => /path/class.php
                    str_replace(static::NS, static::DS, str_replace($namespace . static::NS, $path, $class)) . '.php'
                ];
                # themed version
                if ($themed) {
                    # /path/class.php => /path/_theme/class.php
                    array_unshift(
                        $files,
                        str_replace($path, $path . '_' . $this->theme()->getName() . static::DS, $files[0])
                    );
                }
                foreach ($files as $file) {
                    if (file_exists($file)) {
                        include modification($file);
                        $this->classAlias($class);
                        return true;
                    }
                }
            }
        }
 
        return false;
    }
 
    /**
     * Register autoload class by namespace prefix
     * @param string $namespace prefix
     * @param string $path
     * @return bool
     */
    public function autoloadNamespace(string $namespace, string $path)
    {
        $namespace = trim($namespace, static::NS);
        $path = rtrim($path, static::DS) . static::DS;
/var/www/natumbe.kz/bff/base/Application.php
            }
            # alias: class_ => class
            if (class_exists($class . '_', false)) {
                $this->classAlias($class);
                $log = '3) alias of "' . $class . '_" => "' . $class . '"';
                break;
            }
            # try to load application module
            if (mb_strpos($class, static::NS) === false) {
                $this->module($class, ['throw' => false]);
                $log = '4) load module';
                break;
            }
            # class with "theme" support
            $themed = (
                # \views\
                mb_stripos($class, static::NS . 'views' . static::NS) !== false
            );
            # namespace prefixed class => file path
            if ($this->autoloadByNamespace($class, $themed)) {
                $log = '5) class => namespace prefix';
                break;
            }
            # namespaced class => file path
            $path = str_replace(static::NS, static::DS, $class) . '.php';
            if ($themed) { # themed version
                if ($themePath = $this->view()->resolveFileInTheme(static::DS . $path)) {
                    include modification($themePath);
                    $this->classAlias($class);
                    $log = '6) class => themed path';
                    break;
                }
            }
            foreach ([$path, mb_strtolower($path)] as $path) {
                if (is_file($this['path.base'] . $path)) {
                    include modification($this['path.base'] . $path);
                    $this->classAlias($class);
                    $log = '7) class => path';
                    break 2;
                }
[internal]
/var/www/natumbe.kz/plugins/services_listings_p0e50fd/Fix.php
<?php
 
namespace plugins\services\listings;
 
use tpl;
use Listings;
use bff\tpl\admin\Form;
 
/**
 * Listings: Fix service
 * @copyright Tamaranga
 */
class Fix_ extends ServiceBase
{
    use PeriodType;
 
    public function getKey(): string
    {
        return 'fix';
    }
 
    /**
     * Service can be in a pack
     * @return bool
     */
    public function isPackable(): bool
    {
        return true;
    }
 
    public function onActivateAfter()
    {
        do {
            if (! $this->itemID) {
                break;
            }
 
            $exist = $this->getItemServiceData($this->getKey(), $this->itemID);
            if (empty($exist)) {
                break;
/var/www/natumbe.kz/bff/base/Application.php
     */
    protected function autoloadByNamespace(string $class, bool $themed = false)
    {
        foreach ($this->autoloadNamespaces as $namespace => $path) {
            if (mb_stripos($class, $namespace) === 0) {
                $files = [
                    # \namespace\class => /path/class.php
                    str_replace(static::NS, static::DS, str_replace($namespace . static::NS, $path, $class)) . '.php'
                ];
                # themed version
                if ($themed) {
                    # /path/class.php => /path/_theme/class.php
                    array_unshift(
                        $files,
                        str_replace($path, $path . '_' . $this->theme()->getName() . static::DS, $files[0])
                    );
                }
                foreach ($files as $file) {
                    if (file_exists($file)) {
                        include modification($file);
                        $this->classAlias($class);
                        return true;
                    }
                }
            }
        }
 
        return false;
    }
 
    /**
     * Register autoload class by namespace prefix
     * @param string $namespace prefix
     * @param string $path
     * @return bool
     */
    public function autoloadNamespace(string $namespace, string $path)
    {
        $namespace = trim($namespace, static::NS);
        $path = rtrim($path, static::DS) . static::DS;
/var/www/natumbe.kz/bff/base/Application.php
            }
            # alias: class_ => class
            if (class_exists($class . '_', false)) {
                $this->classAlias($class);
                $log = '3) alias of "' . $class . '_" => "' . $class . '"';
                break;
            }
            # try to load application module
            if (mb_strpos($class, static::NS) === false) {
                $this->module($class, ['throw' => false]);
                $log = '4) load module';
                break;
            }
            # class with "theme" support
            $themed = (
                # \views\
                mb_stripos($class, static::NS . 'views' . static::NS) !== false
            );
            # namespace prefixed class => file path
            if ($this->autoloadByNamespace($class, $themed)) {
                $log = '5) class => namespace prefix';
                break;
            }
            # namespaced class => file path
            $path = str_replace(static::NS, static::DS, $class) . '.php';
            if ($themed) { # themed version
                if ($themePath = $this->view()->resolveFileInTheme(static::DS . $path)) {
                    include modification($themePath);
                    $this->classAlias($class);
                    $log = '6) class => themed path';
                    break;
                }
            }
            foreach ([$path, mb_strtolower($path)] as $path) {
                if (is_file($this['path.base'] . $path)) {
                    include modification($this['path.base'] . $path);
                    $this->classAlias($class);
                    $log = '7) class => path';
                    break 2;
                }
[internal]
[internal]
/var/www/natumbe.kz/bff/modules/svc/ServiceManager.php
        $className = false;
        $key = false;
        if (isset($this->services[$service]['class_name'])) {
            # get service by key
            $className = $this->services[$service]['class_name'];
            $key = $service;
        } else {
            # get service by class name
            foreach ($this->services as $k => $v) {
                if ($v['class_name'] == $service) {
                    $className = $v['class_name'];
                    $key = $k;
                    break;
                }
            }
            if (! $className) {
                $className = $service;
            }
        }
        if (! class_exists($className)) {
            return null;
        }
 
        $service = new $className($this, $this->services[$key] ?? []);
 
        if ($service instanceof Service) {
            return $service;
        }
        return null;
    }
 
    /**
     * Install service
     * @param string $serviceClass
     * @param array $opts
     * @return bool
     */
    public function installService(string $serviceClass, array $opts = []): bool
    {
        $service = $this->getService($serviceClass);
/var/www/natumbe.kz/modules/listings/base.php
            return true;
        } while (false);
 
        return false;
    }
 
    /**
     * Item services
     * @param string|null $serviceKey
     * @return ItemServices | \bff\modules\svc\Service | \bff\modules\svc\ServiceManager | null
     */
    public function itemServices(?string $serviceKey = null)
    {
        $manager = Svc::getServiceManager(ItemServices::KEY);
        if (! $manager) {
            return null;
        }
 
        if ($serviceKey) {
            $service = $manager->getService($serviceKey);
            if (! $service || ! $service->isEnabled()) {
                return null;
            }
            return $service;
        }
        return $manager;
    }
 
    /**
     * Detect if item has active service
     * @param array $item data
     * @param string $key
     * @return bool
     */
    public function isItemService(array $item, string $key)
    {
        $manager = $this->itemServices();
        if (! $manager) {
            return false;
        }
/var/www/natumbe.kz/bff/vendor/illuminate/support/Facades/Facade.php
    }
 
    /**
     * Handle dynamic, static calls to the object.
     *
     * @param  string  $method
     * @param  array  $args
     * @return mixed
     *
     * @throws \RuntimeException
     */
    public static function __callStatic($method, $args)
    {
        $instance = static::getFacadeRoot();
 
        if (! $instance) {
            throw new RuntimeException('A facade root has not been set.');
        }
 
        return $instance->$method(...$args);
    }
}
 
/var/www/natumbe.kz/modules/listings/views/search/FilterBlock.php
        if ($isGeo && !empty($this->regionDistrict)) {
            $sql['district_id'] = $this->regionDistrict;
        }
        # metro:
        if ($isGeo && !empty($this->regionMetro)) {
            $sql['metro_id'] = $this->regionMetro;
        }
 
        # Last Viewed
        if ($this->lastViewed && ! $this->fixedListActive) {
            if ($this->hasSearchQuery() && $sphinxSearch) {
                $sql['created'] = ['>', (int)$this->lastViewed];
            } else {
                $sql['publicated_order'] = ['>', date('Y-m-d H:i:s', $this->lastViewed)];
            }
        }
 
        # sorting order:
        $sqlOrderBy = 'publicated_order DESC, id DESC';
        if ($this->singleList && Listings::itemServices('fix')) {
            $sqlOrderBy = 'svc_fixed_order DESC, publicated_order DESC, id DESC';
        }
        switch ($this->sortBy) {
            case 'price-desc':
                $sqlOrderBy = 'price_search DESC';
                break;
            case 'price-asc':
                $sqlOrderBy = 'price_search ASC';
                break;
        }
        if ($this->fixedListActive && Listings::itemServices('fix')) {
            $sql['svc'] = 'fix';
            $sqlOrderBy = 'svc_fixed_order DESC, id DESC';
        }
 
        return $this->sqlQueryCache = [
            'filter' => $sql,
            'orderBy' => $sqlOrderBy,
        ];
    }
/var/www/natumbe.kz/modules/listings/views/search/ListBlock.php
            }
 
            $this->filter->page = $pages->currentPage();
            # Items
            $this->items = Listings::model()->itemsList($filterQuery['filter'], false, [
                'context' => static::class,
                'orderBy' => $filterQuery['orderBy'],
                'limit'   => $pages->limit(),
                'offset'  => $pages->offset(),
                'listCurrency' => $this->filter->currencyId,
            ]);
        }
        $this->filter->total = $this->total;
 
        $this->getList()->setItems($this->items);
    }
 
    public function prepareSearchQuery(): array
    {
        return $this->filter->toSqlQuery();
    }
 
    /**
     * List block
     * @return ListListBlock|mixed
     */
    public function getList()
    {
        return $this->getBlock('list');
    }
 
    /**
     * Fixed items block
     * @return FixedBlock|mixed
     */
    public function getFixed()
    {
        return $this->getBlock('fixedBlock');
    }
 
/var/www/natumbe.kz/modules/listings/views/search/ListBlock.php
    }
 
    public function data()
    {
        $data = parent::data();
 
        if ($data['filterVertical'] = $this->filter->isVertical()) {
            $data['filterVerticalBlock'] = $this->filter->getPropsBlock();
        }
        $this->filter->setVisibleProps(! $data['filterVertical']);
        $data['ajax'] = $this->filter->ajax;
 
        return $data;
    }
 
    public function loadList($countOnly = false)
    {
        # Search Query
        $this->filter->singleList = $this->getBlock('fixedBlock')->singleList;
        $filterQuery = $this->prepareSearchQuery();
 
        # Count
        $this->total = Listings::model()->itemsList($filterQuery['filter'], true, ['context' => static::class]);
        if ($countOnly) {
            return;
        }
 
        # Load
        if ($this->total > 0) {
            # Pagination
            $pages = $this->pagination()
                ->total($this->total)
                ->pageSize($this->pageSize)
                ->pageUrl(
                    Listings::url('items.search', [
                        'keyword' => $this->filter->categoryKeyword,
                        'landing_url' => $this->filter->categoryData['landing_url'],
                    ]),
                    $this->filter->toUrlQuery()
                );
/var/www/natumbe.kz/modules/listings/views/SearchPage.php
            $filter->categoryId &&
            $filter->categoryData['numlevel'] == 1 &&
            $filter->categoryData['settings']['subcats_view'] &&
            ! $filter->anyGetFilters
        ) {
            return bff(contracts\CategoryPage::class, ['settings' => ['filter' => $filter]]);
        }
 
        if ($filter->categoryId && $filter->categoryId !== $categoryRootId) {
            return bff(contracts\SearchCategoryPage::class, ['settings' => ['filter' => $filter]]);
        }
 
        return bff(contracts\SearchPage::class, ['settings' => ['filter' => $filter]]);
    }
 
    public function data()
    {
        $data = parent::data();
 
        $this->getList()->loadList();
 
        # Banners + query
        if ($this->filter->hasSearchQuery()) {
            Banners::viewQuery($this->filter->query);
        }
 
        # Category crumbs
        $this->filter->categoryData['crumbs'] = Listings::categoryCrumbs($this->filter->categoryId, 'search');
        $data['category'] = &$this->filter->categoryData;
 
        # Page number
        $data['page'] = $this->filter->page;
 
        return $this->app->filter('listings.search.page.data', $data, ['searchPage' => $this]);
    }
 
    public function blocks()
    {
        $this->addBlock('filterBlock', $this->filter);
        $this->rotateBlock('filterBlock', false);
/var/www/natumbe.kz/bff/view/Block.php
 
        foreach ($this->fillable as $key) {
            # Do not override data keys
            if (array_key_exists($key, $this->data)) {
                continue;
            }
            $this->data[$key] = &$this->$key;
        }
    }
 
    /**
     * Gather data before render
     * @return void
     */
    protected function gatherData()
    {
        $this->fillSettings();
        $this->fillableToData();
 
        $this->data = $this->data();
 
        $this->app->hook('view.block.data', $this, ['data' => & $this->data]);
 
        if (is_array($this->data)) {
            $this->blocksIterator(function ($block, $key) {
                $this->data[$key] = $block;
            });
        }
    }
 
    /**
     * Get block (and sub blocks) data without rendering
     * @return array|mixed
     */
    public function getData()
    {
        $this->gatherData();
 
        if (is_array($this->data)) {
            foreach ($this->data as $key => $value) {
/var/www/natumbe.kz/bff/view/Block.php
                        $wrapper['renderOptions'] ?? $this->renderOptions
                    );
                    continue;
                }
                if (is_callable($wrapper['template'])) {
                    $content = call_user_func($wrapper['template'], $content, $this->data);
                }
            }
        }
 
        return $content;
    }
 
    /**
     * Render block content
     * @return string|mixed
     */
    protected function renderContent()
    {
        $this->gatherData();
 
        # Try to return data
        if (! is_array($this->data)) {
            if ($this->data instanceof self) {
                return $this->data->render();
            }
            # cancel render
            if ($this->beforeRender() === false) {
                return '';
            }
            # string is a render goal
            if (is_string($this->data)) {
                return $this->data;
            }
            # throw response
            if ($this->data instanceof Response) {
                $this->data->throw();
            }
            if ($this->data instanceof Closure) {
                $callback = $this->data;
/var/www/natumbe.kz/bff/view/Page.php
            $this->fillSettings();
        }
 
        if ($this->isSubmitAction()) {
            if ($response = $this->handleActionRequest('submit')) {
                if (is_array($response)) {
                    return $this->getActionResponse($response);
                }
                return $response;
            }
        } else {
            if ($response = $this->handleActionRequest()) {
                if (is_array($response)) {
                    return $this->getActionResponse($response);
                }
                return $response;
            }
        }
 
        return parent::renderContent();
    }
 
    /**
     * Init before render to fill seo data used in template (titleh1, breadcrumbs ...)
     * @return bool|void
     */
    protected function beforeRender()
    {
        if (parent::beforeRender() === false) {
            return false;
        }
 
        if ($this->skipSeo) {
            return;
        }
 
        if (is_array($this->data)) {
            $this->seoSettings();
            $this->seo();
 
/var/www/natumbe.kz/bff/view/Block.php
 
        return parent::config($key, $default, $opts);
    }
 
    /**
     * Before render
     * @return bool|void
     */
    protected function beforeRender()
    {
        $this->beforeRenderRotation();
    }
 
    /**
     * Render block
     * @return string|mixed
     */
    public function render()
    {
        $content = $this->renderContent();
        if (! is_string($content)) {
            return $content;
        }
 
        $content = $this->applyWrappers($content);
 
        return $this->app->filter('view.block.render', $content, $this);
    }
 
    /**
     * Apply content wrappers
     * @param string $content
     * @return false|mixed|\Psr\Http\Message\ResponseInterface|string
     */
    protected function applyWrappers($content)
    {
        if (! empty($this->wrappers)) {
            foreach (array_reverse($this->wrappers) as $wrapper) {
                if (empty($wrapper['template'])) {
                    continue;
/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();
            }
            return Errors::handleException($e);
        }
/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);
?>
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
/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 /biznes/tovary/kosmetika-parfyumeriya/
empty
empty
Key Value
lng en
bff_geo 1156
session SROWiwUrxgvr7lVYvPDoA8ZKBSnvWE4rTpe04VCR
empty
Key Value
USER unatumbekz
HOME /var/www/natumbe.kz
HTTP_COOKIE lng=en; bff_geo=7000; session=SROWiwUrxgvr7lVYvPDoA8ZKBSnvWE4rTpe04VCR
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 57724
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 /istra/kosmetika-parfyumeriya
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 1756281442.6041
REQUEST_TIME 1756281442
empty
0. Whoops\Handler\PrettyPageHandler