Code Monkey home page Code Monkey logo

kamebase's Introduction

Kamebase

PHP Framework which includes Routes and Routing, Layout loader, Session manager, Database interface and Entities models.

Routes

/routes.php

<?php
use Kamebase\Layout\Layout;
use Kamebase\Router\Router;

// Only replies to GET requests
Router::get("/", "Controller@index"); // First param: Route, Second param: function or Controller@method

Router::post("/", "Controller@post");
Router::put("/", "Controller@put");
Router::delete("/", "Controller@delete");
Router::patch("/", "Controller@patch");
Router::options("/", function () {
    return Layout::load("index.page");
});

Router::all("/page", "Page@show"); // This route will work on every HTTP Method

// You can use variables in the route, for a post slug you can use for example /blog/{post}
//
// You can even use an optional variable, just add a "?" after the name, like /user/{id?}
// If the variable "id" has got a default value it will be used
Router::all("/page/{id}/section/{section?}", function ($id, $sec) {

    // If you "return" an array it will be automatically converted to JSON
    $array = array("id" => $id, "section" => $sec);
    
    // Return arrays (served as JSON), numbers or text (such as HTML)
    return $array;
    
})->where(

    // You can specify a regex for the variables with a where($name, $expression);
    ["id" => "[0-9]+", "section" => "[a-zA-Z-]+"]
    
)->defaults(

    // Specify a default value for optional variables
    "section", "not-set"
);

Controller example

Create a file named /Controller.php in the /Controllers/ directory.

<?php
namespace Controllers;

use Kamebase\Request;
use Kamebase\Layout\Layout;

class Controller {
    public function index(Request $request) {
       return Layout::load("home");
    }
}

Config

Create a file named /Config.php in the root directory, the config will allow you to connect to a database.

<?php
class Config extends \Kamebase\Config {
    protected $dbData = [
        "host" => "localhost",
        "user" => "username",
        "password" => "password",
        "database" => "database"
    ];

    public function isCloudFlareEnabled() {
        return true;
    }
}

This project doesn't use Composer, sorry.

kamebase's People

Contributors

alexdicy avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.