( ! ) Fatal error: Class 'eHungry\classes\Util\BitmaskSet' not found in /home/deploy/EHungry-2-joel/Web/classes/Bitmasks/OrderTemplatePlatforms.php on line 4
Call Stack
#TimeMemoryFunctionLocation
10.0001399344{main}( ).../index.php:0
20.01517129760require( '/home/deploy/EHungry-2-joel/Web/controllers/sitemap.php' ).../index.php:30
30.02137683768formatCustomerLink( ).../sitemap.php:53
40.02137683792Account->formatCustomerLinkForCurrentPlatform( ).../global.php:415
50.02137683792spl_autoload_call ( ).../Account.class.php:2502
60.02137683872Composer\Autoload\ClassLoader->loadClass( ).../Account.class.php:2502
70.02137684032Composer\Autoload\includeFile( ).../ClassLoader.php:428
80.02137685016include( '/home/deploy/EHungry-2-joel/Web/classes/Bitmasks/OrderTemplatePlatforms.php' ).../ClassLoader.php:571
Whoops! There was an error.
Whoops \ Exception \ ErrorException (E_ERROR)
Class 'eHungry\classes\Util\BitmaskSet' not found Whoops\Exception\ErrorException thrown with message "Class 'eHungry\classes\Util\BitmaskSet' not found" Stacktrace: #8 Whoops\Exception\ErrorException in /home/deploy/EHungry-2-joel/Web/classes/Bitmasks/OrderTemplatePlatforms.php:4 #7 in /home/deploy/EHungry-2-joel/PHP/vendor/composer/ClassLoader.php:571 #6 Composer\Autoload\includeFile in /home/deploy/EHungry-2-joel/PHP/vendor/composer/ClassLoader.php:428 #5 Composer\Autoload\ClassLoader:loadClass in /home/deploy/EHungry-2-joel/Web/classes/Account.class.php:2502 #4 spl_autoload_call in /home/deploy/EHungry-2-joel/Web/classes/Account.class.php:2502 #3 Account:formatCustomerLinkForCurrentPlatform in /home/deploy/EHungry-2-joel/Web/lib/global.php:415 #2 formatCustomerLink in /home/deploy/EHungry-2-joel/Web/controllers/sitemap.php:53 #1 in /home/deploy/EHungry-2-joel/Web/index.php:30 #0 {main} in /home/deploy/EHungry-2-joel/Web/index.php:0
Stack frames (9)
8
Whoops
\
Exception
\
ErrorException
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
classes
/
Bitmasks
/
OrderTemplatePlatforms.php
4
7
/
vendor
/
composer
/
ClassLoader.php
571
6
Composer
\
Autoload
\
includeFile
/
vendor
/
composer
/
ClassLoader.php
428
5
Composer
\
Autoload
\
ClassLoader
loadClass
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
classes
/
Account.class.php
2502
4
spl_autoload_call
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
classes
/
Account.class.php
2502
3
Account
formatCustomerLinkForCurrentPlatform
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
lib
/
global.php
415
2
formatCustomerLink
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
controllers
/
sitemap.php
53
1
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
index.php
30
0
{main}
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
index.php
0
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
classes
/
Bitmasks
/
OrderTemplatePlatforms.php
<?php
namespace eHungry\classes\Bitmasks;
 
class OrderTemplatePlatforms extends \eHungry\classes\Util\BitmaskSet {
    const DOT = 1; // Direct Order Template; everything except springroll
    const MOT = 2; // Marketplace Order Template; springroll
 
    public static function normalizeBitName(int $value, string $name): string {
        switch ($value) {
            case self::DOT:
                $out = 'DOT - Direct Order Template';
                break;
            case self::MOT:
                $out = 'MOT - Springroll';
                break;
            default:
                $out = parent::normalizeBitName($value, $name);
        }
 
        return $out;
    }
 
    public static function currentOrderingPlatform(bool $isSpringRoll): int {
        return ($isSpringRoll? self::MOT : self::DOT);
    }
}
 
Arguments
  1. "Class 'eHungry\classes\Util\BitmaskSet' not found"
    
/
home
/
deploy
/
EHungry-2-joel
/
PHP
/
vendor
/
composer
/
ClassLoader.php
        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
            return $file;
        }
 
        return false;
    }
}
 
/**
 * Scope isolated include.
 *
 * Prevents access to $this/self from included files.
 *
 * @param  string $file
 * @return void
 * @private
 */
function includeFile($file)
{
    include $file;
}
 
/
home
/
deploy
/
EHungry-2-joel
/
PHP
/
vendor
/
composer
/
ClassLoader.php
     */
    public function unregister()
    {
        spl_autoload_unregister(array($this, 'loadClass'));
 
        if (null !== $this->vendorDir) {
            unset(self::$registeredLoaders[$this->vendorDir]);
        }
    }
 
    /**
     * Loads the given class or interface.
     *
     * @param  string    $class The name of the class
     * @return true|null True if loaded, null otherwise
     */
    public function loadClass($class)
    {
        if ($file = $this->findFile($class)) {
            includeFile($file);
 
            return true;
        }
 
        return null;
    }
 
    /**
     * Finds the path to the file where the class is defined.
     *
     * @param string $class The name of the class
     *
     * @return string|false The path if found, false otherwise
     */
    public function findFile($class)
    {
        // class map lookup
        if (isset($this->classMap[$class])) {
            return $this->classMap[$class];
        }
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
classes
/
Account.class.php
        if ($isSingleRestaurant && !empty($_REQUEST['_SINGLE_MENU']) && end($psa) === 'menu') {
            $path = 'menu';
        } elseif (!empty($psa)) {
            $path .= '/' . implode('/', $psa);
        }
 
        // Ensure query string starts with '?'
        $qs = $qs !== '' && strpos($qs, '?') !== 0 ? '?'.$qs : $qs;
 
        return $this->getBaseUrl($orderTemplatePlatform) . $path . $qs;
    }
 
    /**
     * Format a customer link for the currently browsed ordering platform.
     * @param $form
     * @param $params
     * @return string
     */
    public function formatCustomerLinkForCurrentPlatform($form = '', $params = []) {
        return $this->formatCustomerLink(OrderTemplatePlatforms::currentOrderingPlatform(isSpringroll()), $form, $params);
    }
 
    /**
     * Format a customer link for a specific ordering platform.
     * @param int $orderTemplatePlatform
     * @param     $form
     * @param     $params
     * @return string
     */
    public function formatCustomerLink(int $orderTemplatePlatform = OrderTemplatePlatforms::DOT, $form = '', $params = []) {
        global $pageParameters;
 
        $ps = '';
        $psa = [];
        $sess = '';
        if (is_array($params) && is_array($pageParameters)) {
            //for known parameters, we don't need their 'key' in the url, so add them in correct order here
            if (array_key_exists($form, $pageParameters)) {
                foreach ($pageParameters[$form] as $p) {
                    if (array_key_exists($p, $params)) {
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
classes
/
Account.class.php
        if ($isSingleRestaurant && !empty($_REQUEST['_SINGLE_MENU']) && end($psa) === 'menu') {
            $path = 'menu';
        } elseif (!empty($psa)) {
            $path .= '/' . implode('/', $psa);
        }
 
        // Ensure query string starts with '?'
        $qs = $qs !== '' && strpos($qs, '?') !== 0 ? '?'.$qs : $qs;
 
        return $this->getBaseUrl($orderTemplatePlatform) . $path . $qs;
    }
 
    /**
     * Format a customer link for the currently browsed ordering platform.
     * @param $form
     * @param $params
     * @return string
     */
    public function formatCustomerLinkForCurrentPlatform($form = '', $params = []) {
        return $this->formatCustomerLink(OrderTemplatePlatforms::currentOrderingPlatform(isSpringroll()), $form, $params);
    }
 
    /**
     * Format a customer link for a specific ordering platform.
     * @param int $orderTemplatePlatform
     * @param     $form
     * @param     $params
     * @return string
     */
    public function formatCustomerLink(int $orderTemplatePlatform = OrderTemplatePlatforms::DOT, $form = '', $params = []) {
        global $pageParameters;
 
        $ps = '';
        $psa = [];
        $sess = '';
        if (is_array($params) && is_array($pageParameters)) {
            //for known parameters, we don't need their 'key' in the url, so add them in correct order here
            if (array_key_exists($form, $pageParameters)) {
                foreach ($pageParameters[$form] as $p) {
                    if (array_key_exists($p, $params)) {
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
lib
/
global.php
 
function executeForm($form = null, $exitAfter = false) {
    if ($form) {
        $_REQUEST["form"] = $form;
        include_once(CORE_PATH . "model/".$form.".php");
        if ($exitAfter) {
            exit(0);
        }
    }
}
 
/**
 * @deprecated {@see Account::formatCustomerLinkForCurrentPlatform()}
 * @param string $form
 * @param array $params
 * @return string
 */
function formatCustomerLink($form, $params = []) {
    global $account;
    return $account->formatCustomerLinkForCurrentPlatform($form, $params);
}
 
/**
 * @deprecated {@see Account::formatCustomerOrderLinkForCurrentPlatform()}
 * @param Restaurant[]|Menu[]|Category[]|MenuItemPrice[]|string[] $params An array with all the URL components, ideally objects (unless you _need_ to hardcode some parts)
 * @param string $qs Anything else to append as query-string params
 * @return string
 */
function formatCustomerOrderLink($params = [], $qs = '') {
    global $account;
 
    $restaurant = $params[0] ?? null;
    $menu = $params[1] ?? null;
    $category = $params[2] ?? null;
    $item = $params[3] ?? null;
    $price = $params[4] ?? null;
 
    return $account->formatCustomerOrderLinkForCurrentPlatform($restaurant, $menu, $category, $item, $price, $qs);
}
 
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
controllers
/
sitemap.php
 
$locs = $account->getActiveRestaurants('position');
if (count($locs) == 1) {
    $singleLocation = true;
    $_REQUEST['_SINGLE_RESTAURANT'] = true;
} else {
    $singleLocation = false;
}
 
$basePages = [
    'locationinfo',
    'contact',
    'reportbug',
    'privacy',
    'tos',
    'accessibility'
];
 
foreach ($basePages as $bp) {
    $sm->addUrl(formatCustomerLink($bp));
}
 
foreach ($locs as $restaurant) {
    $sm->addUrl(formatCustomerLink('map', ['lid' => $restaurant->getId()]));
    if ($restaurant->getHasNoOrdering()) {
        if ($restaurant->getPdfMenuFile()) {
            $sm->addUrl($restaurant->getUrl('pdfMenuFile'));
        }
    } else {
        $sm->addUrl(formatCustomerOrderLink([$restaurant]));
        $menus = $restaurant->getActiveMenus();
        if (is_array($menus)) {
            foreach ($menus as $menu) {
                $sm->addUrl(formatCustomerOrderLink([$restaurant, $menu]));
 
                $categories = $menu->getCategoriesForRestaurant($restaurant->getId(), true);
                if (is_array($categories)) {
                    foreach ($categories as $category) {
                        $sm->addUrl(formatCustomerOrderLink([$restaurant, $menu, $category]));
 
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
index.php
App::startTime();
 
ErrorHandlers::register();
 
// Global.php is the core setup file for the application
App::debugbarTime('Global.php');
require(dirname(__DIR__) . '/PHP/Global.php');
App::debugbarTime('Global.php');
/** @var string $controller The main controller - defined at /PHP/Global.php */
 
App::debugbarTime('Sentry - controller');
ErrorHandlers::sentryInit($controller); //doesn't always do much - not every controller has a Sentry project
App::debugbarTime('Sentry - controller');
 
App::debugbarTime("controller: $controller");
apache_note('AppController', $controller);
if (file_exists(CORE_PATH."lib/helpers/$controller.php")) {
    require CORE_PATH."lib/helpers/$controller.php";
}
require CORE_PATH."controllers/$controller.php";
App::debugbarTime("controller: $controller");
 
/
home
/
deploy
/
EHungry-2-joel
/
Web
/
index.php
<? /** @noinspection PhpIncludeInspection - to avoid marking dynamic includes */
 
//TODO create a «root»/_bootstrap.php which can be used by .psysh.php, tests/bootstrap.php and Web/index.php
require(dirname(__DIR__).'/PHP/base_consts.php');
require(dirname(__DIR__).'/PHP/autoloader.php');
initializeAutoLoader();
 
//disabled for now since we already have our own Alerts infrastructure, and it's not worth it to append another cloud provider to the startup of every freaking request; it's also not possible to catch errors this early if we depend on database checks, but we'll leave it here in case we change our mind?
//ErrorHandlers::sentryInit(); //early catch of errors and failsafe for smaller controllers, not in Sentry
 
App::startTime();
 
ErrorHandlers::register();
 
// Global.php is the core setup file for the application
App::debugbarTime('Global.php');
require(dirname(__DIR__) . '/PHP/Global.php');
App::debugbarTime('Global.php');
/** @var string $controller The main controller - defined at /PHP/Global.php */
 
App::debugbarTime('Sentry - controller');
ErrorHandlers::sentryInit($controller); //doesn't always do much - not every controller has a Sentry project
App::debugbarTime('Sentry - controller');
 
App::debugbarTime("controller: $controller");
apache_note('AppController', $controller);
if (file_exists(CORE_PATH."lib/helpers/$controller.php")) {
    require CORE_PATH."lib/helpers/$controller.php";
}
require CORE_PATH."controllers/$controller.php";
App::debugbarTime("controller: $controller");
 

Environment & details:

Key Value
aid
"sitemap.xml"
empty
empty
Key Value
PHPSESSID
"f4hdtk0vpdfhhu3bjbkpj0ae9e"
Key Value
loc
"en_US"
Key Value
UNIQUE_ID
"aWWbJdgzUa9F-1Qr9ufsxgAAAAU"
SCRIPT_URL
"/sitemap.xml"
SCRIPT_URI
"http://www.aclassicpizza.com.2.joel.ehungry.net/sitemap.xml"
HTTP_HOST
"www.aclassicpizza.com.2.joel.ehungry.net"
HTTP_X_REAL_IP
"216.73.216.9"
HTTP_X_CONFKEY
"Main_Domain:4252"
HTTP_SCHEME
"https"
HTTP_EHENV
"TODO"
HTTP_CONNECTION
"close"
HTTP_ACCEPT
"*/*"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_COOKIE
"PHPSESSID=f4hdtk0vpdfhhu3bjbkpj0ae9e"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache/2.4.62 () mod_wsgi/4.6.5 Python/3.7 PHP/7.2.34"
SERVER_NAME
"www.aclassicpizza.com.2.joel.ehungry.net"
SERVER_ADDR
"127.0.0.1"
SERVER_PORT
"80"
REMOTE_ADDR
"216.73.216.9"
DOCUMENT_ROOT
"/home/deploy/EHungry-2-joel/Web"
REQUEST_SCHEME
"http"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/home/deploy/EHungry-2-joel/Web"
SERVER_ADMIN
"root@localhost"
SCRIPT_FILENAME
"/home/deploy/EHungry-2-joel/Web/index.php"
REMOTE_PORT
"42978"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.0"
REQUEST_METHOD
"GET"
QUERY_STRING
"aid=sitemap.xml"
REQUEST_URI
"/sitemap.xml"
SCRIPT_NAME
"/sitemap.xml"
PHP_SELF
"/sitemap.xml"
REQUEST_TIME_FLOAT
1768266533.803
REQUEST_TIME
1768266533
empty
0. Whoops\Handler\PrettyPageHandler