2017 © Pedro Peláez
 

library kodiapp

PHP Application framework

image

nagyatka/kodiapp

PHP Application framework

  • Monday, July 31, 2017
  • by nagyatka
  • Repository
  • 2 Watchers
  • 0 Stars
  • 109 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 5 Open issues
  • 41 Versions
  • 0 % Grown

The README.md

KodiApp

PHP application framework, (*1)

Install

$ composer require nagyatka/kodiapp

Documentation v1.0

Magyar nyelvű dokumentáció, (*2)

Alkalmazás indítása

/*
 * index.php
 */

define('PATH_BASE', dirname(__FILE__).'/..' );

// Composer autoloader
require '../vendor/autoload.php';

use KodiApp\Application;
use MyApp\MyAppConfiguration;

Application::getInstance()->run(new MyAppConfiguration());

Egy alkalmazást az Application::getInstance() osztály metódus meghívásával lehet elérni. Mivel az Application Singleton mintát valósít meg, emiatt az alkalmazás futása során bárhol elérhető ezzel a metódus hívással., (*3)

Az alkalmazást elindítani a run metódussal lehet, amely paraméterként egy olyan osztály vár, ami megvalósítja az ApplicationConfiguration interfészt. Itt csak a initializeApplication metódust kell implementálni, amelyet az alkalmazás futása elején fog majd meghívni. Itt kell regisztrálni az adatbázis kapcsolatot, routokat, biztonsági beállításokat, stb., (*4)

Ez a megközelítés nagy fokú szabadságot biztosít, hiszen megvalósíthatjuk úgy a konfigurációt, hogy konfigurációs osztályon belül töltjük be a konfigurációs fájlokat, de az is megoldható, hogy konstruktoron keresztül oldjuk meg ugyanezt., (*5)

class MyAppConfiguration implements ApplicationConfiguration
{
    public function __construct()
    {
        // ...
    }

    public function initializeApplication(Application $application)
    {
        // ...
    }
}

Komponensek

Komponensek regisztrációja, (*6)

A különböző komponenseket az ApplicationConfiguration interfészt megvalósító osztály initializeApplication metódusában kell inicializálni., (*7)

Routolás

Az útvonalakat egy tömbben kell definiálni a következő struktúra szerint:, (*8)

//Struktúra:    
    [route_name] => [
        "method"    =>  [HTTP method],
        "url"       =>  [url],
        "handler"   =>  "[controller_class]::[controller_class_function]",
    ], ...

//Példa:
    "home" => [
        "method"    =>  "GET",
        "url"       =>  "/",
        "handler"   =>  "HomeController::handleIndex",
    ],

Router inicializálása:, (*9)

class MyAppConfiguration implements ApplicationConfiguration
{
    private $myroutes = [
         "home" => [
                "method"    =>  "GET",
                "url"       =>  "/",
                "handler"   =>  "HomeController::handleIndex",
         ],  
    ];

    public function initializeApplication(Application $application)
    {
        $router = new SimpleRouter();
        $router->setRoutes($this->myroutes);
        $application->setRouter($router);
    }
}

A route-hoz tartozó HomeController:, (*10)

class HomeController 
{
    public function handleIndex()
    {
        return "Hello world!";
    }
}

Paraméterek beállítása az urlben:, (*11)

class MyAppConfiguration implements ApplicationConfiguration
{
    private $myroutes = [
         "home" => [
                "method"    =>  "GET",
                "url"       =>  "/user/{user_id:[0-9]+}",
                "handler"   =>  "UserController::getUser",
         ],  
    ];

    public function initializeApplication(Application $application)
    {
        $router = new SimpleRouter();
        $router->setRoutes($this->myroutes);
        $application->setRouter($router);
    }
}

class UserController 
{
    public function getUser($params)
    {
        return "User_id: ".$params["user_id"];
    }
}

A megadott url-ekben tetszőlegesen beállíthatóak paraméterek, amiket a metódus egy asszociatív tömbben kap meg. Az url paramétereknél :-tal elválasztva megadható reguláris kifejezés is, amelynek teljesülnie kell, hogy meghívódjon a handlerben megadott metódus! A url-k beállításáról részletesebben itt tudsz olvasni., (*12)

The Versions

31/07 2017
31/07 2017
25/05 2017
25/05 2017
25/05 2017
22/05 2017
22/05 2017
06/04 2017
21/12 2016
08/12 2016
10/11 2016
17/10 2016
13/10 2016
13/10 2016
11/10 2016
10/10 2016
07/10 2016
30/09 2016
23/09 2016
22/09 2016
22/08 2016
22/08 2016
22/08 2016
16/08 2016
16/08 2016
15/08 2016
15/08 2016
14/08 2016
01/08 2016
01/08 2016
01/08 2016
01/08 2016
24/07 2016

v0.9.0

0.9.0.0 https://github.com/nagyatka/kodiapp

PHP Application framework

  Sources   Download

Apache-2.0

The Requires

 

by Attila Nagy

framework php