Mam problem z front controllerem, dopiero zaczynam z wzorcami, więc proszę o wyrozumiałość.
Folder web jest skonfigurowany jak document root serwera, a w nim posiadam takie coś:
projekt/web/front_controller.php
<?php require_once '../dispatcher.php'; require_once '../routing.php'; require_once '../controllers.php'; //aspekty globalne //wybór kontrolera do wywołania: $action_url = $_GET['action']; dispatch($routing, $action_url);
jest tam równiez pliczek .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ front_controller.php?action=/$1 [QSA]
</IfModule>
ogólnie struktura projektu wygląda tak:
projekt/
-buisness.php - tutaj mam logikę biznesową
-dispatcher.php
-controllers.php
-routing.php
views/
-galeria_view.php
web/
/static (tu trzymam pliki css i różne zasoby)
-fornt_controller.php
-.htaccess
teraz po kolei:
dispatcher.php
<?php const REDIRECT_PREFIX = 'redirect:'; function dispatch($routing, $action_url) { $controller_name = $routing[$action_url]; $model = []; $view_name = $controller_name($model); build_response($view_name, $model); } function build_response($view, $model) { exit; } else { render($view, $model); } } function render($view_name, $model) { include 'views/' . $view_name . '.php'; }
controllers.php
<?php require_once 'business.php'; function galeria(&$model) { $products = get_products(); $model['products'] = $products; return 'galeria_view'; }
routing.php
<?php $routing = [ '/' => 'galeria', '/upload' => 'upload', '/login' => 'login', '/logout' => 'logout', '/sign_in' => 'sign_in', ];
A w folderze views galeria_view.php
<!DOCTYPE html> <html> <head> <title>Galeria</title> <link rel="stylesheet" href="static/css/styles.css"/> </head> <body> <div id="naglowek"> <p class="bold">jakis tekst</p> </div> </body> </html>
Problem tkwi w tym, że nie wyświetla się galeria_view przy starcie i nie wiem w czym tkwi błąd, proszę o pomoc, tutaj załączam obrazek jak to wygląda:

jak widać mam apache 2.4.10