/home
/deploy
/EHungry-11-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-11-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
"describe_template_account_setting_1"
86400
"a:7:{s:2:"id";s:1:"N";s:8:"key_name";s:1:"S";s:5:"value";s:1:"S";s:10:"account_id";s:1:"N";s:10:"created_at";s:2:"DT";s:11:"modified_at";s:2:"DT";s:11:"template_id";s:1:"N";}"
/home
/deploy
/EHungry-11-boyan
/Web
/classes
/Cache.class.php
if (!@static::$redisObj->connect(static::$host, (int)static::$port)) {
static::$redisObj = false;
Splunk::log(Splunk::LOG_REDIS_CONN, ['error' => 'Error connecting']);
} else {
static::$redisObj->select(static::$db);
}
} catch (RedisException $e) {
static::$redisObj = false;
Splunk::log(Splunk::LOG_REDIS_CONN, ['error' => 'Error connecting: '.$e->getMessage()]);
}
}
return static::$redisObj;
}
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);
Arguments
"describe_template_account_setting_1"
"a:7:{s:2:"id";s:1:"N";s:8:"key_name";s:1:"S";s:5:"value";s:1:"S";s:10:"account_id";s:1:"N";s:10:"created_at";s:2:"DT";s:11:"modified_at";s:2:"DT";s:11:"template_id";s:1:"N";}"
86400
/home
/deploy
/EHungry-11-boyan
/Web
/classes
/DbFields.php
$this->table = $table;
}
public function getFields($withTypes = false):array {
//FIXME: workaround for BaseClass objects that are not present in the database. check BaseClass::NO_TABLE
if (!$this->table) {
return [];
}
if (!$this->typesCache) { //not in the local cache, let's fetch it
$cacheKey = "describe_{$this->table}_1"; //this "1" meant "include ID" in the old code
//TODO: replace with Cache::Remember
$this->typesCache = Cache::GetArray($cacheKey);
if (!$this->typesCache || self::SKIP_CACHE) { //not in the cache either, let's generate it
$this->typesCache = collect(DB::select("DESCRIBE $this->table"))
->pluck('Type', 'Field')
->transform(['DbFields','simplifyType'])
->all();
Cache::SetArray($cacheKey, $this->typesCache);
}
}
if (!$this->fieldsCache && !$withTypes) {
$this->fieldsCache = array_keys($this->typesCache);
}
return $withTypes? $this->typesCache : $this->fieldsCache;
}
/**
* Separates all attributes into custom and pure fields (those present on the database table).
* @param array $values
* @return array 0 => custom fields, 1 => pure fields
*/
public function splitCustom(array $values) {
$tableFields = array_flip($this->getFields());
$customFields = array_diff_key($values, $tableFields);
$pureFields = array_intersect_key($values, $tableFields);
Arguments
"describe_template_account_setting_1"
array:7 [
"id" => "N"
"key_name" => "S"
"value" => "S"
"account_id" => "N"
"created_at" => "DT"
"modified_at" => "DT"
"template_id" => "N"
]
/home
/deploy
/EHungry-11-boyan
/Web
/classes
/BaseClass.class.php
/**
* Sets the updated_at field, with a backport of the 5.5+ behavior for disabling that field.
* @param mixed $value
* @return EloquentModel
*/
public function setUpdatedAt($value) {
if (static::UPDATED_AT) {
parent::setAttribute(static::UPDATED_AT, $value);
}
return $this;
}
public function getAttribute($key) {
//first we check for mutated getters
if ($getter = $this->findAnyGetMutator($key)) {
return $this->$getter();
}
if (in_array($key, $this->fields()->getFields()) || array_key_exists($key, $this->attributes)) {
//this is an existing database field or came from a custom query, so let's get it as an attribute
return parent::getAttribute($key);
} elseif ($this->relationLoaded($key) || method_exists($this, $key)) {
//this is a relationship method, skipped at getAttribute() by the last if-clause, so let's call it here
try {
return $this->getRelationValue($key);
} catch (LogicException $e) {
throw new LogicException('You probably forgot to *return* from your relation method - or accidentally triggered a relation getter where you shouldn\'t', $e->getCode(), $e);
}
} elseif (property_exists($this, $key)) {
//support for legacy getter of custom props
return $this->$key;
} else {
//probably a custom prop (sometimes used in legacy code), so let's get it directly from the object as usual
//this causes a small side-effect where isset() can't be used with undeclared custom props; property_exists() should be used instead (actually, they should be declared lol)
if (DevLevel > 0) {
trigger_error('Custom property got from '.static::class.": $key", E_USER_NOTICE);
}
return $this->$key;
}
/home
/deploy
/EHungry-11-boyan
/PHP
/vendor
/illuminate
/database
/Eloquent
/Model.php
*
* @param int $perPage
* @return $this
*/
public function setPerPage($perPage)
{
$this->perPage = $perPage;
return $this;
}
/**
* Dynamically retrieve attributes on the model.
*
* @param string $key
* @return mixed
*/
public function __get($key)
{
return $this->getAttribute($key);
}
/**
* Dynamically set attributes on the model.
*
* @param string $key
* @param mixed $value
* @return void
*/
public function __set($key, $value)
{
$this->setAttribute($key, $value);
}
/**
* Determine if the given attribute exists.
*
* @param mixed $offset
* @return bool
*/
Arguments
/home
/deploy
/EHungry-11-boyan
/Web
/classes
/BaseClass.class.php
* @param string $func
* @param array $args
* @return mixed|null If setXyz() is called, it will return the final stored format. Otherwise, returns what's
* recovered from getXyz() or whatever the resulting magic method should return.
*/
public function __call($func, $args) {
$action = substr($func, 0, 3);
$prop = snake_case(substr($func, 3));
//we need to extend snake_case() result to consider numbers as boundaries too..... for most cases :|
if (!preg_match('/(^street|note|freepos_tax)\d/', $prop)) {
$prop = preg_replace('/(.)(?=\d)/u', '$1_', $prop);
}
switch ($action) {
case 'set':
$this->__set($prop, $args[0]);
return $this->__get($prop);
case 'get':
return $this->__get($prop);
case 'iss':
return isset($this->attributes[$prop]);
}
try {
return parent::__call($func, $args);
} catch (BadMethodCallException $e) {
trigger_error('Invalid method called: '.get_class($this)."::$func()", E_USER_WARNING);
return null;
}
}
/**
* Checks for either legacy or Laravel-style mutators (setField() or getFieldAttribute()).
* @param string $getSet either 'get' or 'set'
* @param string $key
* @return string
*/
private function findAnyMutator($getSet, $key):string {
$base = $getSet.studly_case($key);
Arguments
/home
/deploy
/EHungry-11-boyan
/Web
/templates3.0
/customer
/header.php
$metaDescription = str_replace('{LOCATION}', $restaurant->getCity().', '.$restaurant->getState(), $metaDescription);
$metaDescription = str_replace('{CUISINE}', $restaurant->getCuisineType(), $metaDescription);
$metaDescription = str_replace('{ORDER_TYPES}', $restaurant->getOrderTypeText(), $metaDescription);
} else {
$metaDescription = str_replace(' in {LOCATION}', '', $metaDescription);
$metaDescription = str_replace('{CUISINE}', '', $metaDescription);
$metaDescription = str_replace('{ORDER_TYPES}', '', $metaDescription);
}
$metaDescription = str_replace('{ACCOUNT_NAME}', $account->getDisplayName(), $metaDescription);
echo '<meta name="description" content="'.HS($metaDescription).'" />';
} ?>
<?=(is_object($account)?'<meta name="keywords" content="'.htmlentities($account->getMetaKeywords()).'" />':'')?>
<? foreach (\EDS\Portal::getPageMetadata() as $portalMetaData) { ?>
<?= $portalMetaData ?>
<? }
if (isset($_REQUEST['_TEMPLATE_SETTINGS']['favicon_image'])) {
$ext = pathinfo($_REQUEST['_TEMPLATE_SETTINGS']['favicon_image']->getValue(), PATHINFO_EXTENSION);
$all_ext = ['jpg', 'png', 'gif', 'ico'];
if (in_array($ext, $all_ext)) {
if ($ext == 'jpg') {
$ext = 'jpeg';
} elseif ($ext == 'ico') {
$ext = 'x-icon';
} ?>
<link rel="shortcut icon" href="<?=$_REQUEST['_TEMPLATE_SETTINGS']['favicon_image']->getUrl()?>" type="image/<?=$ext?>" />
<? }
} ?>
<meta property="og:type" content="website">
<meta property="og:title" content="<?=$title?>">
<meta property="og:description" content="<?=HS($metaDescription)?>">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="<?=$title?>">
<meta name="twitter:description" content="<?=HS($metaDescription)?>">
<?
$openGraphImage = null;
Arguments
/home
/deploy
/EHungry-11-boyan
/Web
/controllers
/customer.php
}
if (!isset($cart) || !is_object($cart)) {
$GLOBALS['cart'] = \Cart::getCurrent();
}
//unset callback data in the event someone didn't hit the callback validation page
if (!in_array($_REQUEST['form'], ['checkout', 'nosuchpage', 'validatecallback', 'viewdeliveryzone'])) {
//TODO: probably need to add one more form here that is called ajax, callback seems to reset when it shouldnt
unset($_SESSION['validation_data']);
}
$locs = $account->getActiveRestaurants('position');
$tab = MainNavigationTab::getAllForAccount($account->getId());
include_once(CORE_PATH.'lib/helpers/customer3.0.php');
if (!in_array($_REQUEST['form'], $viewContentOnly)) {
App::debugbarTime('header');
include_once(getLayoutPartPath('header'));
App::debugbarTime('header');
}
App::debugbarTime("view '{$_REQUEST['form']}'");
$path = CORE_PATH.'view' . ($_REQUEST['_VERSION'] == 4 ? 4 : 3) . '.0/customer/'.$_REQUEST['form'].'.php';
if (is_readable($path)) {
include_once($path);
}
App::debugbarTime("view '{$_REQUEST['form']}'");
if (!in_array($_REQUEST['form'], $viewContentOnly)) {
App::debugbarTime('footer');
include_once(getLayoutPartPath('footer'));
App::debugbarTime('footer');
}
function getLayoutPartPath($part) {
if (isset($_REQUEST['_CORDOVA_APP'])) {
$cart = Cart::getCurrent();
Arguments
"/home/deploy/EHungry-11-boyan/Web/templates3.0/customer/header.php"
/home
/deploy
/EHungry-11-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-11-boyan/Web/controllers/customer.php"