borschphp/mimetype

MimeType和MediaType的实现。

1.0.0 2021-11-26 12:04 UTC

This package is auto-updated.

Last update: 2024-09-26 18:41:21 UTC


README

Latest Stable Version License PHP Version Require build Code Coverage Scrutinizer Code Quality

MimeType和MediaType的实现。

安装

此项目需要PHP 7.2或更高版本。
通过Composer,只需运行

composer require borschphp/mimetype

基本用法

轻松为请求创建Mime Type

use Borsch\MimeType\MimeType;
use Laminas\Diactoros\Request;
use Laminas\Diactoros\Uri;

$mime_type = new MimeType('application', 'json', ['charset' => 'UTF-8']);

$request = (new Request())
    ->withUri(new Uri('http://example.com'))
    ->withMethod('GET')
    ->withAddedHeader('Content-Type', (string)$mime_type);

或媒体类型

use Borsch\MimeType\MediaType;
use Laminas\Diactoros\Request;
use Laminas\Diactoros\Uri;

$request = (new Request())
    ->withUri(new Uri('http://example.com'))
    ->withMethod('GET')
    ->withAddedHeader('Content-Type', MediaType::APPLICATION_JSON);

解析Mime Types并获取有用数据

use Borsch\MimeType\MimeType;
use Borsch\MimeType\MediaType;

$mime_type = MimeType::createFromString(
    'application/atom+xml;charset=utf-8;boundary=3d6b6a416f9b5;name=some_file'
);

$mime_type->getType(); // application
$mime_type->getSubtype(); // atom+xml
$mime_type->getSubtypeSuffix() // xml
$mime_type->getCharset(); // utf-8
$mime_type->getParameters(); // ['charset' => 'utf-8', 'boundary' => '3d6b6a416f9b5', 'name' => 'some_file']
$mime_type->getParameter('boundary'); // 3d6b6a416f9b5

$media_type = new MediaType('image', 'png', ['q' => 0.8]);
$media_type->getQualityValue(); // 0.8
$media_type->removeQualityValue();
$media_type->getQualityValue(); // null

贡献

请参阅CONTRIBUTING.md以获取详细信息。

测试

使用PHPUnit制作,只需运行

./vendor/bin/phpunit tests

许可证

此项目采用MIT许可证。
有关更多详细信息,请参阅LICENSE.md文件。