/home
/deploy
/EHungry-2-boyan
/Web
/classes
/Cache.class.php
}
public static function SetObject($key, $var, $expire = 86400) {
return static::Set($key, serialize($var), $expire);
}
public static function SetArray($key, $var, $expire = 86400) {
return static::Set($key, serialize($var), $expire);
}
public static function SetBoolean($key, $var, $expire = 86400) {
return static::Set($key, serialize($var), $expire);
}
public static function Set($key, $var, $expire = 86400) {
App::debugbarLog('debug', "Cache set: $key");
if ($i = static::getInstance()) {
$var = static::beforeSet($var);
return $expire > 0?
$i->setEx($key, $expire, $var) :
$i->set($key, $var);
}
return null;
}
public static function Exists(...$key):?bool {
if ($i = static::getInstance()) {
return $i->exists($key);
}
return null;
}
public static function Expire($key, $ttl) {
if ($i = static::getInstance()) {
return $i->expire($key, $ttl);
}
return false;
}
/**
Arguments
"MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error."
/home
/deploy
/EHungry-2-boyan
/Web
/classes
/Cache.class.php
}
public static function SetObject($key, $var, $expire = 86400) {
return static::Set($key, serialize($var), $expire);
}
public static function SetArray($key, $var, $expire = 86400) {
return static::Set($key, serialize($var), $expire);
}
public static function SetBoolean($key, $var, $expire = 86400) {
return static::Set($key, serialize($var), $expire);
}
public static function Set($key, $var, $expire = 86400) {
App::debugbarLog('debug', "Cache set: $key");
if ($i = static::getInstance()) {
$var = static::beforeSet($var);
return $expire > 0?
$i->setEx($key, $expire, $var) :
$i->set($key, $var);
}
return null;
}
public static function Exists(...$key):?bool {
if ($i = static::getInstance()) {
return $i->exists($key);
}
return null;
}
public static function Expire($key, $ttl) {
if ($i = static::getInstance()) {
return $i->expire($key, $ttl);
}
return false;
}
/**
Arguments
"generated_files:sitemap.xml"
86400
"""
<?xml version="1.0" encoding="UTF-8"?>\n
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net</loc><priority>1.0</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/restaurants</loc><priority>0.9</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/partners</loc><priority>0.8</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/help</loc><priority>0.5</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/terms-of-service</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog</loc><priority>0.6</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/search</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/celebrate-mom-sweepstakes-2025</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/celebrate-the-dragon-boat-festival-with-authentic-asian-flavors</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/holiday-sweepstakes-winner-announcement</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/how-thai-food-became-a-staple-in-american-cities</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/savor-mothers-day-with-special-deals-from-chinese-restaurants-near-you</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/spicy-thai-curries</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/springrolls-dragon-boat-festival-sweepstakes-enter-to-win</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/thai-green-curry</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/thai-street-food</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/the-most-popular-chinese-restaurant-names---and-why</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/the-ultimate-guide-to-spring-rolls</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/top-mothers-day-sushi-deals</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/recipiesandguides</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/springrollnews</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/tastetrends</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/thestories</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/campaigns/holidaysweepstakes</loc><priority>0.8</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/campaigns/high-five-for-good</loc><priority>0.8</priority></url>\n
</urlset>\n
"""
/home
/deploy
/EHungry-2-boyan
/Web
/marketplace
/routes
/generatedfilesroute.php
'contentType' => 'text/plain',
],
'sitemap.xml' => [
'generator' => 'generateSitemap',
'contentType' => 'application/xml',
],
];
if (!isset($files[$fileName])) {
return self::do404('Not Found');
}
$cacheKey = self::getAssetsCacheKey($fileName);
$lastModifiedCacheKey = $cacheKey.':lastModified';
$content = \Cache::Get($cacheKey);
if (!$content) {
$generatorMethod = $files[$fileName]['generator'];
$content = self::$generatorMethod();
\Cache::Set($cacheKey, $content);
\Cache::Set($lastModifiedCacheKey, time());
}
self::serveFile(
$content,
$files[$fileName]['contentType'],
\Cache::Get($lastModifiedCacheKey)
);
}
/**
* @return string
*/
protected static function generateSitemap(): string {
$springrollHost = trim(SPRINGROLL_HOST, '/');
$locations = [];
$locations[] = new SitemapLocation($springrollHost, '1.0');
$locations[] = new SitemapLocation($springrollHost . '/restaurants', '0.9');
$locations[] = new SitemapLocation($springrollHost . '/partners', '0.8');
Arguments
"generated_files:sitemap.xml"
"""
<?xml version="1.0" encoding="UTF-8"?>\n
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net</loc><priority>1.0</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/restaurants</loc><priority>0.9</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/partners</loc><priority>0.8</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/help</loc><priority>0.5</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/terms-of-service</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog</loc><priority>0.6</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/search</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/celebrate-mom-sweepstakes-2025</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/celebrate-the-dragon-boat-festival-with-authentic-asian-flavors</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/holiday-sweepstakes-winner-announcement</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/how-thai-food-became-a-staple-in-american-cities</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/savor-mothers-day-with-special-deals-from-chinese-restaurants-near-you</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/spicy-thai-curries</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/springrolls-dragon-boat-festival-sweepstakes-enter-to-win</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/thai-green-curry</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/thai-street-food</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/the-most-popular-chinese-restaurant-names---and-why</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/the-ultimate-guide-to-spring-rolls</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/post/top-mothers-day-sushi-deals</loc><priority>0.7</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/recipiesandguides</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/springrollnews</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/tastetrends</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/blog/category/thestories</loc><priority>0.3</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/campaigns/holidaysweepstakes</loc><priority>0.8</priority></url>\n
<url><loc>https://www.springroll.com.2.boyan.ehungry.net/campaigns/high-five-for-good</loc><priority>0.8</priority></url>\n
</urlset>\n
"""
/home
/deploy
/EHungry-2-boyan
/Web
/Services
/Router.php
$_REQUEST['_VERSION'] = 4; // Important for some methods that rely on the version
$account_id_string = Account::getAccountIdString();
$decoded_url = urldecode($url); // Handle encoded characters like `%20`
$unprefixed_url = $account_id_string
? preg_replace("/^\/$account_id_string\//", '/', $decoded_url)
: $decoded_url;
foreach ($route_classes as $route_class) {
$routes = $route_class::ROUTES;
foreach ($routes as $path => $handler) {
$params = [];
if (preg_match("/^$path\/?$/i", "$method $unprefixed_url", $params)) {
$query = [];
if ($query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY)) {
parse_str($query_string, $query);
}
return $route_class::$handler($params, $request, $query);
}
}
}
http_response_code(404);
return '<div class="px-4 py-3">' . \EDS\Alert(['variant' => 'danger'], 'Not Found') . '</div>';
}
}
Arguments
array:1 [
0 => "GET /sitemap.xml"
]
array:4 [
"aid" => "sitemap.xml"
"status" => []
"controller" => "marketplace"
"form" => "home"
]
[]
/home
/deploy
/EHungry-2-boyan
/Web
/marketplace
/router.php
require_once(CORE_PATH . 'checkout/cart.php');
require_once(CORE_PATH . 'checkout/coupons.php');
require_once(CORE_PATH . 'checkout/tip.php');
require_once(CORE_PATH . 'marketplace/assets/assets.php');
require_once(__DIR__ . '/routes/landing.php');
require_once(__DIR__ . '/routes/campaigns.php');
require_once(__DIR__ . '/routes/product.php');
require_once(__DIR__ . '/routes/restaurant_list.php');
require_once(__DIR__ . '/routes/restaurant_details.php');
require_once(__DIR__ . '/routes/support.php');
require_once(__DIR__ . '/routes/generatedfilesroute.php');
$handler_output = \eHungry\Services\Router::handle(
$_SERVER['REQUEST_METHOD'],
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ?? '/',
$_REQUEST,
[
\AccountSettings\ProfileInfoRoutes::class,
\AccountSettings\BasicInformationRoutes::class,
\AccountSettings\ChangePasswordRoutes::class,
\AccountSettings\AddressRoutes::class,
\AccountSettings\PaymentMethodRoutes::class,
\AccountSettings\CommunicationRoutes::class,
\AccountSettings\CampaignsRoutes::class,
\AccountSettings\AccountRoutes::class,
\AccountSettings\OrderRoutes::class,
\AccountSettings\CouponRoutes::class,
\Auth\ForgotPasswordRoutes::class,
\Auth\LoginRoutes::class,
\Auth\RegisterRoutes::class,
\Checkout\CartRoutes::class,
\Checkout\CouponRoutes::class,
\Checkout\TipRoutes::class,
LandingRoute::class,
CampaignsRoute::class,
Arguments
"GET"
"/sitemap.xml"
array:4 [
"aid" => "sitemap.xml"
"status" => []
"controller" => "marketplace"
"form" => "home"
]
array:23 [
0 => "AccountSettings\ProfileInfoRoutes"
1 => "AccountSettings\BasicInformationRoutes"
2 => "AccountSettings\ChangePasswordRoutes"
3 => "AccountSettings\AddressRoutes"
4 => "AccountSettings\PaymentMethodRoutes"
5 => "AccountSettings\CommunicationRoutes"
6 => "AccountSettings\CampaignsRoutes"
7 => "AccountSettings\AccountRoutes"
8 => "AccountSettings\OrderRoutes"
9 => "AccountSettings\CouponRoutes"
10 => "Auth\ForgotPasswordRoutes"
11 => "Auth\LoginRoutes"
12 => "Auth\RegisterRoutes"
13 => "Checkout\CartRoutes"
14 => "Checkout\CouponRoutes"
15 => "Checkout\TipRoutes"
16 => "Marketplace\LandingRoute"
17 => "Marketplace\CampaignsRoute"
18 => "Marketplace\ProductRoute"
19 => "Marketplace\RestaurantListRoute"
20 => "Marketplace\RestaurantPageRoute"
21 => "Marketplace\SupportRoutes"
22 => "Marketplace\GeneratedFilesRoute"
]
/home
/deploy
/EHungry-2-boyan
/Web
/controllers
/marketplace.php
<?
include(CORE_PATH . 'marketplace/router.php');
Arguments
"/home/deploy/EHungry-2-boyan/Web/marketplace/router.php"
/home
/deploy
/EHungry-2-boyan
/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");
Arguments
"/home/deploy/EHungry-2-boyan/Web/controllers/marketplace.php"