Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

MVC po swojemu

Jako, że na home.pl do którego przenosimy usługi również nie działa większość funkcji Laravela to postanowiłem napisać MVC od początku po mojemu. Na youtube jest bardzo ciekawy poradnik. Plik .htaccess sobie w całości z niego zapożyczę.



RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

Teraz pora na strukturę katalogów, czyli

.config        <- konfiguracja frameworka, np zmienne globalne czy ustawienia bazy
controllers    <- kontrolery
models         <- modele
views          <- widoki
libs |         <- aplikacja
     |- Controller.php       <- główny kontroler
     |- Model.php
     |- View.php
     |- Projekt.php          <- nazwa naszego projektu
index.php      <- główny plik programu

Powiedzmy, że na razie mamy dwie podstrony: główną i kontakt oraz rezerwową stronę dla błędów.

/index.php



<?php

require "libs/Controller.php";
require "libs/Model.php";
require "libs/View.php";
require "libs/Projekt.php";

$app=new Projekt();

libs/Controller.php



class Controller {

    function __construct() {
        echo "Main controller<br>";
    }

}

libs/Model.php



class Model {

    function __construct() {
        echo "Main Model<br>";
    }

}

libs/View.php



class View {

    function __construct() {
        echo "Main View<br>";
    }

}

libs/Projekt.php



class Projekt {

    function __construct() {
        $url=filter_var($_GET['url'],FILTER_SANITIZE_URL);
        $url=explode("/",$url);
        
        $url[0]=empty($url[0])||$url[0]==="index.php"?"index":$url[0];
        
        $file="controllers/".$url[0].".php";
        
        if(file_exists($file)){
            require $file;
            new $url[0];
        }else{
            require "controllers/error.php";
            new Error_404();
        }
        
    }

}

controllers/index.php



class Index extends Controller {

    function __construct() {
        require 'views/index.php';
    }

}

controllers/kontakt.php



class Kontakt extends Controller {

    function __construct() {
        echo "Kontakt kontroler<br>";
    }

}

controllers/error.php



class Error_404 extends Controller {

    function __construct() {
        echo "Błąd 404<br>";
    }

}

views/index.php



echo "Index widok<br>";

Tak wygląda szkielet całego przedsięwzięcia. Kontrolery sterują wszystkim, modele zajmują się tylko przetwarzaniem danych a widoki prezentują treść.

Komentarze (0)

Nikt jeszcze nie dodał komentarza. Możesz być pierwszy.

Napisz komentarz lub zgłoś błąd

Dodane w dniu 9 sierpnia 2017 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony