drmvc/framework

Simple and flexible PHP7 MVC Framework

3.0.0 2018-04-19 12:11 UTC

README

Latest Stable Version Build Status Total Downloads License PHP 7 ready Code Climate Scrutinizer CQ

DrMVC\Framework

A framework that combines some modules. necessary to create a full-fledged web application.

composer require drmvc/framework

How to use

More examples you can find here.

Example of index.php inside public_html folder:

<?php
require_once __DIR__ . '/../vendor/autoload.php';

$config = new \DrMVC\Config();
$config->load(__DIR__ . '/../app/database.php', 'database');

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

$app = new \DrMVC\App($config);
$app
    ->get('/', \MyApp\Controllers\Index::class . ':default') //-> public function action_default()
    ->get('/zzz', \MyApp\Controllers\Index::class) //-> public function action_index()
    ->get('/zzz/<action>', \MyApp\Controllers\Index::class)
    ->get('/aaa', function(Request $request, Response $response, $args) {
        print_r($args);
    });

echo $app->run();

Example of Index controller inside app/Controllers folder:

<?php

namespace MyApp\Controllers;

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

class Index
{
    public function action_index(Request $request, Response $response, $args)
    {
        $out = [
            'dummy',
            'array'
        ];

        $json = json_encode($out);
        header('Content-Type: application/json');
        $response->getBody()->write($json);
    }

    public function action_defaultRequest $request, Response $response, $args)
    {
        $out = [
            'test1',
            'test2'
        ];

        $json = json_encode($out);
        header('Content-Type: application/json');
        $response->getBody()->write($json);
    }
}

Where to get help

If you found the bug, please report about this on GitHub Issues page.

About PHP Unit Tests

First need to install all dev dependencies via composer update, then you can run tests by hands from source directory via ./vendor/bin/phpunit command.

Links

  • DrMVC Framework
  • Slim - Is a PHP micro framework, I really like how there are implemented the PSR-4 conception.
  • SimpleMVC - it was a very exciting project, before the author renamed this to Nova
  • Phalcon - Simple and clean code of your application