* @return string */ public function sharedGet(string $path) { $contents = ''; $handle = fopen($path, 'rb'); if ($handle) { // try { if (flock($handle, LOCK_SH)) { clearstatcache(true, $path); $contents = fread($handle, $this->size($path) ?: 1); //ini_set('error_log' , '/home/solomono/web/solomono.net/sites/dev/php.log'); error_reporting(E_ALL); set_error_handler(function ($level, $message, $file = '', $line = 0) { $this->handleError($level, $message, $file, $line); }); set_exception_handler(function ($e) { $this->handleException($e); }); * @return string */ public function sharedGet(string $path) { $contents = ''; $handle = fopen($path, 'rb'); if ($handle) { // try { if (flock($handle, LOCK_SH)) { clearstatcache(true, $path); $contents = fread($handle, $this->size($path) ?: 1); * @throws Exception */ public function get(string $path, bool $lock = false) { if ($this->isFile($path)) { return $lock ? $this->sharedGet($path) : file_get_contents($path); } throw new Exception("File does not exist at path {$path}"); } /** // If the file doesn't exist, we obviously cannot return the cache so we will // just return null. Otherwise, we'll get the contents of the file and get // the expiration UNIX timestamps from the start of the file's contents. try { $expire = substr( $contents = $this->files->get($path, true), 0, 10 ); } catch (Exception $e) { return $this->emptyPayload(); * Retrieve an item from the cache by key. * @param string|array $key */ public function get($key) { return $this->getPayload($key)['data'] ?? null; } /** * Store an item in the cache for a given number of seconds. * @param string $key */ public function forget($key): bool { //save list of keys to paths if ($key !== 'ALL_KEYS' && empty($seconds)) { $allKeys = $this->get('ALL_KEYS') ?: []; if (isset($allKeys[$key])) { unset($allKeys[$key]); $this->put('ALL_KEYS', $allKeys, 0); } } // If the current time is greater than expiration timestamps we will delete // the file and return null. This helps clean up the old files and keeps // this directory much cleaner for us as old files aren't hanging out. if ($this->currentTime() >= $expire) { $this->forget($key); return $this->emptyPayload(); } try { * Retrieve an item from the cache by key. * @param string|array $key */ public function get($key) { return $this->getPayload($key)['data'] ?? null; } /** * Store an item in the cache for a given number of seconds. * @param string $key { if (is_array($key)) { return $this->many($key); } $value = $this->store->get($this->itemKey($key)); // If we could not find the cache value, we will fire the missed event and get // the default value for this cache value. This default could be a callback // so we will execute the value function which will resolve it if needed. if (is_null($value)) { * @param Closure $callback * @return mixed */ public function remember($key, $ttl, Closure $callback) { $value = $this->get($key); // If the item exists in the cache we will just return this immediately and if // not we will execute the given Closure and cache the result of that for a // given number of seconds so it's available for all subsequent requests. if (!is_null($value)) { public static function remember(string $key, \Closure $closure, $ttl = 60 * 5) { try { return self::getRepository() ->remember( $key, $ttl, $closure ); } catch (\Exception $exception) { Log::critical($exception->getMessage(), [ while ($raw_listing = tep_db_fetch_array($module_products_first)) { $all_pids[] = $raw_listing['products_id']; } return $all_pids; }, null ); } return $all_pids;}}function tep_get_all_pids_price_exclude($listing_sql, $excluded_statement){ $cleared_listing_sql = str_replace($excluded_statement, '', $listing_sql); return tep_get_all_pids($cleared_listing_sql);}/** * get count of comments */ $listing_sql .= " limit 0, " . $lastProductNumberForPagination; $listing_sql_raw = $listing_sql; // debug($listing_sql); // split query to 2 small queries: 1) find all products ids, 2) get info for each product $pids_price_filter_excluded = tep_get_all_pids_price_exclude($listing_sql, $price_filter_statement); $pids_filter_excluded = tep_get_all_pids_price_exclude($listing_sql, str_replace($price_filter_statement, '', $where_filters)); $pids_filter_excluded = $pids_filter_excluded ?: [0]; $where_attr = str_replace($manFilter, '', $where_filters); |
ErrorException
|
|---|
ErrorException:
fopen(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/storage/cache/bd/a5/bda5fcbf671782aad500a5f6cf52179bc99ebd7b): failed to open stream: No such file or directory
at /home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Filesystem/Filesystem.php:50
at Bootstrap\HandleExceptions->handleError()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/bootstrap/HandleExceptions.php:32)
at Bootstrap\HandleExceptions->Bootstrap\{closure}()
at fopen()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Filesystem/Filesystem.php:50)
at App\Classes\Filesystem\Filesystem->sharedGet()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Filesystem/Filesystem.php:38)
at App\Classes\Filesystem\Filesystem->get()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Store/FileStore.php:195)
at App\Classes\Cache\Store\FileStore->getPayload()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Store/FileStore.php:46)
at App\Classes\Cache\Store\FileStore->get()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Store/FileStore.php:149)
at App\Classes\Cache\Store\FileStore->forget()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Store/FileStore.php:207)
at App\Classes\Cache\Store\FileStore->getPayload()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Store/FileStore.php:46)
at App\Classes\Cache\Store\FileStore->get()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Repository.php:65)
at App\Classes\Cache\Repository->get()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Repository.php:319)
at App\Classes\Cache\Repository->remember()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/app/Classes/Cache/Helpers/FileCacheHelper.php:282)
at App\Classes\Cache\Helpers\FileCacheHelper::remember()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/includes/functions/general.php:120)
at tep_get_all_pids()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/includes/functions/general.php:129)
at tep_get_all_pids_price_exclude()
(/home/dev_ltscreen/web/dev.ltscreen.com/public_html/index.php:320)
|