1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php namespace Config;
- use CodeIgniter\Config\BaseConfig;
- class Format extends BaseConfig
- {
- /*
- |--------------------------------------------------------------------------
- | Available Response Formats
- |--------------------------------------------------------------------------
- |
- | When you perform content negotiation with the request, these are the
- | available formats that your application supports. This is currently
- | only used with the API\ResponseTrait. A valid Formatter must exist
- | for the specified format.
- |
- | These formats are only checked when the data passed to the respond()
- | method is an array.
- |
- */
- public $supportedResponseFormats = [
- 'application/json',
- 'application/xml', // machine-readable XML
- 'text/xml', // human-readable XML
- ];
- /*
- |--------------------------------------------------------------------------
- | Formatters
- |--------------------------------------------------------------------------
- |
- | Lists the class to use to format responses with of a particular type.
- | For each mime type, list the class that should be used. Formatters
- | can be retrieved through the getFormatter() method.
- |
- */
- public $formatters = [
- 'application/json' => \CodeIgniter\Format\JSONFormatter::class,
- 'application/xml' => \CodeIgniter\Format\XMLFormatter::class,
- 'text/xml' => \CodeIgniter\Format\XMLFormatter::class,
- ];
-
- /*
- |--------------------------------------------------------------------------
- | Formatters Options
- |--------------------------------------------------------------------------
- |
- | Additional Options to adjust default formatters behaviour.
- | For each mime type, list the additional options that should be used.
- |
- */
- public $formatterOptions = [
- 'application/json' => JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES,
- 'application/xml' => 0,
- 'text/xml' => 0,
- ];
- //--------------------------------------------------------------------
- /**
- * A Factory method to return the appropriate formatter for the given mime type.
- *
- * @param string $mime
- *
- * @return \CodeIgniter\Format\FormatterInterface
- */
- public function getFormatter(string $mime)
- {
- if (! array_key_exists($mime, $this->formatters))
- {
- throw new \InvalidArgumentException('No Formatter defined for mime type: ' . $mime);
- }
- $class = $this->formatters[$mime];
- if (! class_exists($class))
- {
- throw new \BadMethodCallException($class . ' is not a valid Formatter.');
- }
- return new $class();
- }
- //--------------------------------------------------------------------
- }
|