Stack Trace
11 frame
VENDORerrors.app.404.compiled.php:6
include()
/home2/divantur/zframework/zFramework/storage/views/errors.app.404.compiled.php
VENDORView.php:267
include()
/home2/divantur/zframework/zFramework/Core/View.php
VENDORView.php:269
zFramework\Core\View::zFramework\Core\{closure}
/home2/divantur/zframework/zFramework/Core/View.php
VENDORView.php:239
zFramework\Core\View::render
/home2/divantur/zframework/zFramework/Core/View.php
VENDORFunctions.php:138
zFramework\Core\View::view
/home2/divantur/zframework/zFramework/modules/Functions.php
VENDORHttp.php:39
view()
/home2/divantur/zframework/zFramework/Core/Helpers/Http.php
VENDORFunctions.php:169
zFramework\Core\Helpers\Http::abort
/home2/divantur/zframework/zFramework/modules/Functions.php
VENDORRoute.php:536
abort()
/home2/divantur/zframework/zFramework/Core/Route.php
VENDORrun.php:327
zFramework\Core\Route::run
/home2/divantur/zframework/zFramework/run.php
VENDORrun.php:201
zFramework\Run::handle
/home2/divantur/zframework/zFramework/run.php
APPindex.php:11
zFramework\Run::begin
/home2/divantur/public_html/index.php
/home2/divantur/zframework/zFramework/storage/views/errors.app.404.compiled.php:6
include()
1<?php
2# Hata sayfası bilinçli olarak app.main'i genişletmez: hata veritabanı
3# kaynaklıysa ayarları/menüyü okumaya çalışmak ikinci bir hata üretir.
4# Bu yüzden yalnızca site.css'e yaslanan, veri istemeyen bir kabuk.
5?>
6<!DOCTYPE html><html lang="<?= htmlspecialchars(\App\Helpers\Locale::current()) ?>" dir="<?= \App\Helpers\Locale::direction() ?>"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="robots" content="noindex"><title><?= htmlspecialchars((string) ($code ?? 'Hata')) ?> · Divan Turizm</title><link href="<?= asset('/assets/logo/favicon.svg') ?>" rel="shortcut icon" type="image/x-icon"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Red+Hat+Display:wght@700;800&display=swap" rel="stylesheet"><link href="<?= asset('/assets/css/theme-1.min.css') ?>" rel="stylesheet"><link href="<?= asset('/assets/fontawesome/css/all.css') ?>" rel="stylesheet"><link href="<?= asset('/assets/css/site.css') ?>" rel="stylesheet"></head><body style="background:var(--dv-cream)"><main class="dv-section"><div class="container"><div class="dv-empty" style="max-width:38rem"><a href="<?= route('home') ?>" class="d-inline-block mb-4"><img src="<?= asset('/assets/logo/divantur.png') ?>" alt="Divan Turizm" style="max-height:3.25rem"></a><p class="dv-eyebrow justify-content-center"><?= Locale::t('error.404-label') ?></p><h1 style="font-size:clamp(1.5rem,3vw,2.1rem)"><?= Locale::t('error.404-title') ?></h1><p class="mb-4"> <?= htmlspecialchars((string) ($message ?? Locale::t('error.404-text'))) ?>
7 </p><div class="d-flex flex-wrap justify-content-center gap-2"><a class="dv-btn" href="<?= route('home') ?>"><i class="fas fa-house"></i><span><?= Locale::t('error.home') ?></span></a><a class="dv-btn dv-btn--ghost" href="<?= route('contact') ?>"><i class="fas fa-envelope"></i><span><?= Locale::t('error.contact') ?></span></a></div></div></div></main></body></html>
/home2/divantur/zframework/zFramework/Core/View.php:267
include()
252 {
253 $caching = (self::$config['caching'] ?? false) && !empty(self::$config['caches']);
254 $cache = null;
255 $result = null;
256
257 if ($caching) $result = self::tryCache($view_name);
258
259 if ($result) {
260 // Cache hit: re-apply all binds from the full chain
261 foreach ($result['binds'] as $bindKey) $data = self::applyBinds($bindKey, $data);
262
263 $cache = $result['path'];
264 $output = (function () use ($data, $cache) {
265 ob_start();
266 extract($data);
267 include($cache);
268 return ob_get_clean();
269 })();
270 } else {
271 $result = self::compile($view_name, $data);
272 $compiled = $result['compiled'];
273 $data = $result['data'];
274
275 if (self::$config['minify'] ?? false) $compiled = self::minifyTemplate($compiled);
276 if ($caching && !self::$hasDynamicExtends) $cache = self::saveCache($view_name, $compiled);
277
278 $output = (function () use ($data, $compiled) {
279 ob_start();
280 extract($data);
281 echo eval('?>' . $compiled);
282 return ob_get_clean();
/home2/divantur/zframework/zFramework/Core/View.php:269
zFramework\Core\View::zFramework\Core\{closure}()
254 $cache = null;
255 $result = null;
256
257 if ($caching) $result = self::tryCache($view_name);
258
259 if ($result) {
260 // Cache hit: re-apply all binds from the full chain
261 foreach ($result['binds'] as $bindKey) $data = self::applyBinds($bindKey, $data);
262
263 $cache = $result['path'];
264 $output = (function () use ($data, $cache) {
265 ob_start();
266 extract($data);
267 include($cache);
268 return ob_get_clean();
269 })();
270 } else {
271 $result = self::compile($view_name, $data);
272 $compiled = $result['compiled'];
273 $data = $result['data'];
274
275 if (self::$config['minify'] ?? false) $compiled = self::minifyTemplate($compiled);
276 if ($caching && !self::$hasDynamicExtends) $cache = self::saveCache($view_name, $compiled);
277
278 $output = (function () use ($data, $compiled) {
279 ob_start();
280 extract($data);
281 echo eval('?>' . $compiled);
282 return ob_get_clean();
283 })();
284 }
/home2/divantur/zframework/zFramework/Core/View.php:239
zFramework\Core\View::render()
Argserrors.app.404, array(2), 0
message => null
code => 404
224 * 3. If any file changed -> compile, minify, save cache + manifest (with bind list)
225 *
226 * Binds always run (cache hit or miss) because they return runtime data
227 * (DB queries, auth state etc.) that cannot be cached.
228 */
229 public static function view(string $view_name, array $data = [])
230 {
231 # Views nest - a layout renders a page, pagination renders its own view -
232 # so only the outermost call is timed. Timing each would report the same
233 # milliseconds several times over.
234 # Not loaded means nothing is profiling; see the same guard in Route::call().
235 $timing = class_exists(\zFramework\Core\Profiler::class, false) && \zFramework\Core\Profiler::active() && self::$depth === 0 ? hrtime(true) : 0;
236 self::$depth++;
237
238 try {
239 return self::render($view_name, $data, $timing);
240 } finally {
241 self::$depth--;
242 }
243 }
244
245 /**
246 * @param string $view_name
247 * @param array $data
248 * @param float $timing hrtime() when the outermost render started, or 0.
249 * @return string
250 */
251 private static function render(string $view_name, array $data, float $timing = 0)
252 {
253 $caching = (self::$config['caching'] ?? false) && !empty(self::$config['caches']);
254 $cache = null;
/home2/divantur/zframework/zFramework/modules/Functions.php:138
zFramework\Core\View::view()
Argserrors.app.404, array(2)
message => null
code => 404
123function inputMethod($method = "GET")
124{
125 return '<input type="hidden" name="_method" value="' . strtoupper($method) . '" />';
126}
127
128// Helper methods: start
129// Get Csrf with ready input
130function csrf()
131{
132 return zFramework\Core\Csrf::csrf();
133}
134
135// Shortcut view method
136function view()
137{
138 return call_user_func_array([zFramework\Core\View::class, 'view'], func_get_args());
139}
140
141// Shortcut Route::find method
142function route()
143{
144 return call_user_func_array([zFramework\Core\Route::class, 'find'], func_get_args());
145}
146
147// Shortcut Config::get method
148function config()
149{
150 return call_user_func_array([zFramework\Core\Facades\Config::class, 'get'], func_get_args());
151}
152
153// Shortcut Lang::get method
/home2/divantur/zframework/zFramework/Core/Helpers/Http.php:39
view()
Argserrors.app.404, array(2)
message => null
code => 404
24 }
25
26 /**
27 * Check is XMLHttpRequest Or Normal Request
28 */
29 public static function isAjax()
30 {
31 return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest';
32 }
33
34 // Abort to http response.
35 public static function abort(int $code = 418, $message = null)
36 {
37 if (self::isAjax()) throw new \zFramework\Core\ResponseSignal($code, ['Content-Type' => 'application/json; charset=utf-8'], json_encode(compact('message', 'code'), JSON_UNESCAPED_UNICODE));
38
39 $view = @view(self::$error_view . ".$code", compact('message', 'code'));
40 throw new \zFramework\Core\ResponseSignal($code, [], !empty($view) ? $view : (string) $message);
41 }
42}
/home2/divantur/zframework/zFramework/modules/Functions.php:169
zFramework\Core\Helpers\Http::abort()
Args404
154function _l()
155{
156 return call_user_func_array([zFramework\Core\Facades\Lang::class, 'get'], func_get_args());
157}
158// Helper methods: end
159
160// Get Client IP address
161function ip()
162{
163 return ($_SERVER['HTTP_CLIENT_IP'] ?? ($_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR']));
164}
165
166// Http::abort shorcut
167function abort()
168{
169 return call_user_func_array([zFramework\Core\Helpers\Http::class, 'abort'], func_get_args());
170}
171
172// Get current uri but with parse
173function getQuery($adds = [], $except = [], bool $string = true)
174{
175 @parse_str($_SERVER['QUERY_STRING'], $output);
176
177 //
178 foreach ($except as $key => $unset)
179 if (is_array($unset)) foreach ($unset as $f) unset($output[$key][$f]);
180 else unset($output[$unset]);
181
182 foreach ($adds as $key => $add) $output[$key] = $add;
183 //
184
/home2/divantur/zframework/zFramework/Core/Route.php:536
abort()
Args404
521 if (!$middleware) return;
522 }
523
524 self::$calledRoute = [
525 'name' => $found['key'],
526 'callback' => $route['callback'],
527 'parameters' => $found['parameters'],
528 ];
529 }
530
531 /**
532 * Run route with options.
533 */
534 public static function run(): void
535 {
536 if (self::$calledRoute === null) abort(404);
537
538 $callback = self::$calledRoute['callback'];
539
540 # A redirect carries its destination rather than a handler - see redirect().
541 # Keyed by name, so it cannot be mistaken for a [Controller::class, 'method']
542 # pair, which is indexed.
543 if (is_array($callback) && isset($callback['redirect']))
544 throw new ResponseSignal((int) ($callback['status'] ?? 302), ['Location' => (string) $callback['redirect']]);
545
546 if (!in_array(gettype($callback), ['object', 'array', 'string'])) throw new \Exception('This type not valid.');
547
548 switch (gettype($callback)) {
549 case 'string':
550 $callback = explode('@', $callback);
551 $callback[0] = strtok(findFile($callback[0], 'php', 'App\Controllers'), '.');
/home2/divantur/zframework/zFramework/run.php:327
zFramework\Core\Route::run()
312 if (self::$handled) self::includer(BASE_PATH . '/App/Middlewares/autoload.php');
313 self::$handled = true;
314
315 # Same reasoning: module callbacks build menus and view data from the
316 # current request.
317 self::runModuleCallbacks();
318
319 # Back to the booted table, then route/dynamic on top: those definitions
320 # depend on request state, so they are re-evaluated every time and never
321 # accumulate. A cached table could not hold them at all.
322 \zFramework\Core\Route::restoreTable(self::$bootRoutes, self::$bootIndex);
323 self::includer(BASE_PATH . '/route/dynamic');
324
325 # Every route is registered by now: resolve the request once, then run it.
326 \zFramework\Core\Route::match();
327 \zFramework\Core\Route::run();
328 \zFramework\Core\Facades\Alerts::unset(); # forgot alerts
329 \zFramework\Core\Facades\JustOneTime::unset(); # forgot data
330 } catch (\zFramework\Core\ResponseSignal $signal) {
331 # abort(), redirect(), refresh(), a file download: the response is
332 # ready and nothing else should run. Unlike die(), this leaves a
333 # long-running worker alive to serve the next request.
334 $signal->send();
335 \zFramework\Core\Facades\Alerts::unset();
336 \zFramework\Core\Facades\JustOneTime::unset();
337 } catch (\Throwable $errorHandle) {
338 errorHandler($errorHandle);
339 }
340
341 # Release the response, then run whatever was handed to Defer::after().
342 # Outside the try/catch on purpose: deferred jobs handle their own errors,
/home2/divantur/zframework/zFramework/run.php:201
zFramework\Run::handle()
186 */
187 private static bool $handled = false;
188
189 /**
190 * One request, start to finish: FPM's entry point.
191 *
192 * A long-running server calls boot() once and handle() per request instead -
193 * see worker.php. Keeping both paths going through the same two methods is
194 * what stops the two environments from drifting apart.
195 *
196 * @return void
197 */
198 public static function begin()
199 {
200 self::boot();
201 self::handle();
202 }
203
204 /**
205 * Everything that does not depend on the request: modules, providers, view
206 * settings, the route table.
207 *
208 * Under FPM this runs per request because the process is new every time.
209 * Under a long-running worker it runs once, which is where the speedup comes
210 * from - and why nothing request-specific may happen here.
211 *
212 * @return void
213 */
214
215 public static function boot()
216 {
/home2/divantur/public_html/index.php:11
zFramework\Run::begin()
1<?php
2gc_disable();
3// no cache
4header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
5header("Pragma: no-cache");
6//
7
8define('PUBLIC_DIR', __DIR__);
9define('BASE_PATH', dirname(__DIR__) . "/zframework"); # you can move framework location. for example: define('BASE_PATH', dirname(__DIR__) . "/zframework");
10include(BASE_PATH . '/zFramework/bootstrap.php');
11zFramework\Run::begin();