承接 ride/lib-mvc 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ride/lib-mvc

最新稳定版本:1.3.0

Composer 安装命令:

composer require ride/lib-mvc

包简介

MVC library of the Ride framework

README 文档

README

Model-View-Controller library of the PHP Ride framework.

It builds on top of the HTTP and routing library to handle input and output.

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.

Response

The MVC Response is an extended HTTP response. It adds methods to deal with views and messages.

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.

To translate incoming request into actions, the actions must be defined in the routing table.

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.

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, ....

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.

Code Sample

Check this code sample to see some possibilities of this library:

<?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:

Installation

You can use Composer to install this library.

composer require ride/lib-mvc

统计信息

  • 总下载量: 5.33k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 13
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 8
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-02-21