2017 © Pedro Peláez
 

library lib-mvc

MVC library of the Ride framework

image

ride/lib-mvc

MVC library of the Ride framework

  • Thursday, September 8, 2016
  • by ride-user
  • Repository
  • 8 Watchers
  • 0 Stars
  • 3,449 Installations
  • PHP
  • 13 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 19 Versions
  • 1 % Grown

The README.md

Ride: MVC Library

Model-View-Controller library of the PHP Ride framework., (*1)

It builds on top of the HTTP and routing library to handle input and output., (*2)

What's In This Library

Request

The MVC Request is an extended HTTP request. The route is integrated which gives you the possibility to get extra properties from it like the base URL and incoming arguments., (*3)

Response

The MVC Response is an extended HTTP response. It adds methods to deal with views and messages., (*4)

Controller

A Controller handles the incoming request and translates it into a response. The workhorse of a controller is an action. Multiple actions can be defined in one controller. Each action passes the input to the model to perform the necessairy logic. The result of this action is set to the response, possibly through a view., (*5)

To translate incoming request into actions, the actions must be defined in the routing table., (*6)

Model

A model contains the logic of your domain. There is no interface for this since it can by anything you want or need. It's completly up to you., (*7)

View

A View is a representation of the result. It's a data container of variables which will be rendered when sending the response. Different views for the same action can easily implemented like HTML, JSON, XML, ...., (*8)

Message

The Message is a data container for a single message. You can add multiple messages to a response. Usefull to add warnings or error and success messages when submitting a form., (*9)

Code Sample

Check this code sample to see some possibilities of this library:, (*10)

<?php

use ride\library\http\Header;
use ride\library\http\HttpFactory;
use ride\library\http\Response;
use ride\library\mvc\dispatcher\GenericDispatcher;
use ride\library\mvc\message\Message;
use ride\library\router\GenericRouter;
use ride\library\router\RouteContainer;
use ride\library\router\Route;

// prepare some routes
$route = new Route('/', 'testAction');
$route->setIsDynamic(true);

$routeContainer = new RouteContainer();
$routeContainer->setRoute($route);

// get the request and response
$httpFactory = new HttpFactory();
$httpFactory->setRequestClass('ride\\library\\mvc\\Request');
$httpFactory->setResponseClass('ride\\library\\mvc\\Response');

$request = $httpFactory->createRequestFromServer();
$response = $httpFactory->createResponse();

// route the request
$router = new GenericRouter($routeContainer);
$routerResult = $router->route($request->getMethod(), $request->getBasePath(), $request->getBaseUrl());

// dispatch the route
$returnValue = null;

if ($routerResult->isEmpty()) {
    $response->setStatusCode(Response::STATUS_CODE_NOT_FOUND);
} else {
    $route = $routerResult->getRoute();
    if ($route) {
        $request->setRoute($route);

        $dispatcher = new GenericDispatcher();
        $dispatcher->dispatch($request, $response);
    } else {
        $allowedMethods = $routerResult->getAllowedMethods();

        $response->setStatusCode(Response::STATUS_CODE_METHOD_NOT_ALLOWED);
        $response->addHeader(Header::HEADER_ALLOW, implode(', ', $allowedMethods));
    }
}

// send the response
$response->send($request);

// the test action
function testAction() {
    global $response;

    $response->addMessage(new Message('This is a test action', Message::TYPE_WARNING));
    $response->setBody('test: ' . var_export(func_get_args(), true));
}

Implementations

For more examples, you can check the following implementation of this library: - ride/web, (*11)

Installation

You can use Composer to install this library., (*12)

composer require ride/lib-mvc

The Versions

08/09 2016

dev-master

9999999-dev

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

08/09 2016

dev-develop

dev-develop

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

08/09 2016

1.1.1

1.1.1.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

24/08 2016

1.1.0

1.1.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

28/07 2016

1.0.0

1.0.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

09/03 2016

0.7.0

0.7.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

27/11 2015

0.6.0

0.6.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

06/11 2015

0.5.2

0.5.2.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

01/10 2015

0.5.1

0.5.1.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

23/04 2015

0.5.0

0.5.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

05/03 2015

0.4.4

0.4.4.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

25/11 2014

0.4.3

0.4.3.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

29/10 2014

0.4.2

0.4.2.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

16/10 2014

0.4.1

0.4.1.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

10/04 2014

0.4.0

0.4.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

28/03 2014

0.3.0

0.3.0.0

MVC library of the Ride framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

06/02 2014

0.2.1

0.2.1.0

MVC library of the Pallo framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

29/09 2013

0.2.0

0.2.0.0

MVC library of the Pallo framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd

22/09 2013

0.1.0

0.1.0.0

MVC library of the Pallo framework

  Sources   Download

MIT

The Requires

 

by Joris Vandeweerd