/PHPFrame

A extremely lightweight php framework

Primary LanguagePHPMIT LicenseMIT

PHPFrame

Docs

Routen registrieren

Um eine neue Route zu registrieren bearbeite Routes/routes.php und füge die benötigte route hinzu

Typen

GET
Router::get('/neue/Route', 'ControllerFuerRoute@FunktionInController')
Post
Router::post(...)
PUT/PATCH
Router::put(...)
Router::patch(...)
DELETER
Router::delete(...)

Routen bennenen

Router::get(...)->name("NameDerRoute")

Routen mit paramtern

Router::get('/notes/show/{id}', 'ControllerFuerRoute@FunktionMitParameter');

Controllers

Um einen neuen Controller zu erstellen erstelle eine neue datei in App/Controllers oder in einem Unterordner

<?php

namespace App\Controllers;

class ControllerFuerRoute {

    function FunktionInController($request) {
        Response::view('notes.about', ["name" => "john"]);
    }

    function FunktionMitParameter($request, $id) {
        $arr = ["name"=>"john", "age"=>12]
        Response::json($arr, 200);
    }

}

Responses

In PHPFrame gibt es verschiedene arten daten auszugeben

Views

Alle view Dateien befinden sich in dem Ordner Views oder in einem der Unterordner

Response::view('unterordner.viewDateiNameOhneEndung');

View Dateien werden in folgendem Format benannt: <Name>.view.php

JSON

Um daten als JSON auszugeben kann man die funktion json() benutzen:

Response::json($daten)

Redirect

Um einen Redirect durchzuführen kann man die funktion redirect() verwenden:

Response::redirect($path,$before,$after)

Wobei before ein funktio ist

Raw daten

um raw daten auszugeben kann man die funktion response() verwenden:

Response::response($daten)

Datenbank

Um die datenbank zu konfigurieren bearbeite die config.php Datei

Für sqlite:

<?php

use function Core\base_path;

return $config = [
    "db" => [
        "connection" => "sqlite",
        "name" => base_path('Database/database.sqlite'),
    ],
    "debug" => "false",
    "url" => "http://localhost:8000"
    ];

Für mysql

<?php


return $config = [
    "db" => [
        "connection" => "mysql",
        "host" => "localhost:3306"
        "name" => "DatenbankName",
        "username" => "username",
        "password" => "password"
    ],
    "debug" => "false",
    "url" => "http://localhost:8000"
    ];

queries

Um eine Datenbank anfrage zu tätigen füre $db = App::resolve('Core\Database\Database')

$stmt = $db->query("Select * from table where id=:id and name=':name'", ["id" => $id, "name" => $name]); # PDOStatement

Diese funktion gibt ein PDOStatement zurück. Das heißt alle funktionen die hier genannt werden sind verfügbar.

View templates

Alle Variablen die vom controller durch die funktion Response::view() übergeben wurden sind hier verfügbar.

Verfügbare funktionen

out($name)

Gibt String aus. Wird vorher escaped.

outNoEscape($name)

Gibt String aus. Wird vorher nicht escaped

asset("styles.css") 

gibt tag (<link>, <script>, ...) zurück für die datei. Alle asset dateien befinden sich in /public/assets/

Diese funktion funktioniert nur für lokale dateien, stylesheets oder scripts aus dem Internet müssen manuell hinzugefügt werden.

url("pfad/zu/route") // // http://localhost:8080/pfad/zu/route

Benutzt die in config.php definierte url und hängt gegebenen pfad an

routePath($name)

gibt pfad zurück für eine benannte route.

route($name, ["id" => 4])

gibt pfad zurück für eine benannte route und ersetzt parameter in route durch gegebene werte.

Jede funktion muss importiert werden

use function Core/out;
use function Core/outNoEscape;
use function Core/asset;
use function Core/url;
use function Core/routePath;
use function Core/route;