tbn/json-annotation-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

tbn/json-annotation-bundle

最新稳定版本:1.2.1

Composer 安装命令:

composer require tbn/json-annotation-bundle

包简介

add the json annotation for an action

README 文档

README

The JsonAnnotationBundle permits to use an annotation Json for your controller

Usage

Use the annotation @Json() in your controller

#Configuration

Some parameters are optionnals:

	json_annotation:
			exception_code: 500 #the http code used for the exception
        	data_key: "data" # the key used to contains the data, it can be directly at the root, using the "" parameter
        	exception_message_key: "message" #the key for the exeception message
        	success_key: "success" #the key for the success (that is true is the result is ok, false for an exception)
        	post_query_back: false #do we send back the post parameters
        	post_query_key: "query" #the key for the post back parameters
            enable_authentication_error: false #A json response is sent back is the user is not authenticated or not granted

The reponse

The normal response

It is a json stream with the property 'success' with the true value and the property 'data' containing the array returned in the controller

The exception response

It is a json stream with the property 'success' with the false value and the property 'message' containing the error

Examples

Import the bundle using composer

"tbn/json-annotation-bundle": "dev-master"

Import the bundle in your AppKernel

new tbn\JsonAnnotationBundle\JsonAnnotationBundle()

The normal response Example

use tbn\JsonAnnotationBundle\Configuration\Json;

class DefaultController extends Controller
{

     /**
      * The main view
      *
      * @Route("/someroute")
      * @Json()
      *
      * @return array
      */
     public function somerouteAction()
     {
         return array('data1' => 'value1', 'data2' => 'value2');
     }
  }

It will send back a json stream

 'success' => true
 'data'    => ['data1' => 'value1', 'data2' => 'value2']

The exception response

use tbn\JsonAnnotationBundle\Configuration\Json;

 class DefaultController extends Controller
 {
     /**
      * The main view
      *
      * @Route("/someroute")
      * @Json()
      *
      * @return array
      */
     public function somerouteAction()
     {
	     throw \Exception('some error occured');
     }
 }

It will send back a json stream

 'success' => false
 'message'    => 'some error occured'

Events

A pre-hook event is dispatched at the beginning of the json response. It can be used to validate a token for example.

some_bundle.listener.json_token_validation_listener:
    class: "some_bundle\\Listener\\JsonTokenValidationListener"
    tags:
        - { name: kernel.event_listener, event: json.pre_hook, method: onJsonPrehook }

The method has one argument of type JsonPreHookEvent.

public function onJsonPrehook(JsonPreHookEvent $jsonPreHookEvent)

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: Unknown
  • 更新时间: 2015-03-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固