<?php
/**
* restServer, a PSR HTTP Message rest server implementation
*
* This file is a part of restServer.
*
* Copyright 2018 Kjell-Inge Gustafsson, kigkonsult, All rights reserved
* Link http://kigkonsult.se/restServer/index.php
* Version 0.9.123
* License Subject matter of licence is the software restServer.
* The above copyright, link, package and version notices and
* this licence notice shall be included in all copies or
* substantial portions of the restServer.
* restServer can be used either under the terms of
* a proprietary license, available at <https://kigkonsult.se/>
* or the GNU Affero General Public License, version 3:
* restServer is free software: you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
* restServer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public
* License along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
namespace Kigkonsult\RestServer;
use Kigkonsult\RestServer\Handlers\ContentTypeHandler;
use Kigkonsult\RestServer\Handlers\EncodingHandler;
/**
* Configuration for the builtin ContentTypeHandler and EncodingHandler
*
* @author Kjell-Inge Gustafsson <ical@kigkonsult.se>
*
* This config is included in the RestServer config using append
*
* ex
* $config += include 'cfg/cfg.56.cte.php';
* Most config keys here have only default values set,
* include ONLY on after update!!
*/
$cteCfg = [];
/** ************************************************************************
* Content-types config
*
* For more info, see docs/TemplateHandler.php
*/
/**
* If request 'Accept' header is missing (response message content-type),
* you can alter the fallback content-type
* default value : 'application/json', set here if other !!
* Make sure the value is supported
*
* value type : string
* If you want NO response serializing as fallback, set (bool) false
*/
$cteCfg[ContentTypeHandler::ACCEPT][ContentTypeHandler::FALLBACK] = 'application/json';
/** ************************************************************************
* Content-Type options for specific handler
* Here as example only (set defaults), comment or remove them !!
*
* A serializing handler unSerialize-method MAY utilize
* ContentTypeHandler::UNSERIALIZEOPTIONS
* A serializing handler serialize-method MAY utilize
* ContentTypeHandler::SERIALIZEOPTIONS
************************************************************************ */
/**
* json_decode options (i.e. JsonHandler)
*
* value type : int
*
* default value : JSON_OBJECT_AS_ARRAY
* Make sure the value is supported
*/
$cteCfg['application/json'][ContentTypeHandler::UNSERIALIZEOPTIONS] = JSON_OBJECT_AS_ARRAY;
/**
* json_encode options (i.e. JsonHandler)
*
* value type : int
* default value : none, set here if other !!
* Make sure the value is supported
*/
$cteCfg['application/json'][ContentTypeHandler::SERIALIZEOPTIONS] = null;
/**
* XML unserialize Libxml parameters (i.e. XMLHandler)
*
* value type : int
* default value : none, set here if other !!
* Make sure the value is supported
*/
$cteCfg['application/xml'][ContentTypeHandler::UNSERIALIZEOPTIONS] = null;
/**
* NO XML serialize option
*/
/** ************************************************************************
* Encoding config
*
* For more info, see docs/TemplateHandler.php
*/
/**
* If request 'Accept-Encoding' header is missing (response message encoding),
* you can alter the fallback
* default value : 'gzip', set here if other !!
* Make sure the value is supported
*
* value type : string
*
* If you want NO response encoding as fallback, set (bool) false
*/
$cteCfg[EncodingHandler::ACCEPTENCODING][EncodingHandler::FALLBACK] = 'gzip';
/** ************************************************************************
* Encoding options for specific handler
* Here as example only (set defaults), comment or remove them !!
*
* A encoding handler deCode-method MAY utilize
* EncodingHandler::DECODELEVEL
* EncodingHandler::DECODEOPTIONS
* A encoding handler enCode-method MAY utilize
* EncodingHandler::ENCODELEVEL
* EncodingHandler::ENCODEOPTIONS
************************************************************************ */
/**
* Gzip encoding level
*
* value type : int
* default value : -1 (none)
* Make sure the value is supported
*/
$cteCfg['gzip'][EncodingHandler::ENCODELEVEL] = -1;
/**
* Gzip encoding_mode
*
* value type : int
* fallback value : FORCE_GZIP,
* Make sure the value is supported
*/
$cteCfg['gzip'][EncodingHandler::ENCODEOPTIONS] = FORCE_GZIP;
/**
* Any 'gzip' decoding parameters are ignored
*/
/** ************************************************************************
* Add to main config
* <code>
* $config += include 'cfg/cfg.56.cte.php';
* </code>
*/
return $cteCfg;
|