josantonius/mimetype

此包已被废弃且不再维护。作者建议使用 josantonius/mime-type 包。

PHP 库,用于从扩展名获取 MIME 类型。

v2.0.3 2023-07-13 18:05 UTC

This package is auto-updated.

Last update: 2023-07-13 18:05:49 UTC


README

Latest Stable Version License Total Downloads CI CodeCov PSR1 PSR4 PSR12

PHP 库,用于从扩展名获取 MIME 类型。

我的项目最初的概念,将单个 MIME 类型与文件扩展名关联起来,发现这在准确反映现实世界用例中存在的多对一关系方面是不够的。实际上,多个文件扩展名通常对应单个 MIME 类型,使得我现有的设计方法变得次优。

基于这些见解,我决定存档此存储库。我建议有兴趣的人查看 patrickmccallum/mimetype-io 存储库采用的方法。该项目采用更细致的视角,通过承认多个扩展名对应单个 MIME 类型的可能性来有效地管理 MIME 类型。我相信这是管理 MIME 类型的更有前景的方法。

要求

  • 操作系统:Linux | Windows。

  • PHP 版本:8.0 | 8.1 | 8.2。

安装

安装此扩展的首选方式是通过 Composer

要安装 PHP MimeType 库,只需

composer require josantonius/mime-type

上述命令将仅安装必要的文件,如果您想 下载整个源代码,可以使用

composer require josantonius/mime-type --prefer-source

您也可以使用 Git 克隆完整存储库

git clone https://github.com/josantonius/php-mime-type.git

可用类

MimeType

Josantonius\MimeType\MimeType

获取所有 MIME 类型的数组

public function all(): array;

从 MIME 类型获取文件扩展名

public function getExtension(string $mimeType): string|null;

从文件扩展名获取 MIME 类型

public function getMime(string $extension): string|null;

MimeTypeCollection

Josantonius\MimeType\MimeTypeCollection

获取所有 MIME 类型的数组

public static function all(): array;

从 MIME 类型获取文件扩展名

public static function getExtension(string $mimeType): string|null;

从文件扩展名获取 MIME 类型

public static function getMime(string $extension): string|null;

用法

此库的使用示例

获取所有 MIME 类型的数组

use Josantonius\MimeType\MimeType;

$mimeType = new MimeType();

$mimeType->all();
use Josantonius\MimeType\MimeTypeCollection;

MimeTypeCollection::all();

结果

[
    [".123"]=> "application/vnd.lotus-1-2-3"
    [".3dml"]=> "text/vnd.in3d.3dml"
    [".3g2"]=> "video/3gpp2"
    [".3gp"]=> "video/3gpp"
    [".7z"]=> "application/x-7z-compressed"
    [".aab"]=> "application/x-authorware-bin"
    [".aac"]=> "audio/x-aac"
    [".aam"]=> "application/x-authorware-map"
    [".aas"]=> "application/x-authorware-seg"
    [".abw"]=> "application/x-abiword"
    (...)
]

从 MIME 类型获取文件扩展名

use Josantonius\MimeType\MimeType;

$mimeType = new MimeType();

$mimeType->getExtension('text/html'); // .html
use Josantonius\MimeType\MimeTypeCollection;

MimeTypeCollection::getExtension('application/zip'); // .zip

从文件扩展名获取 MIME 类型

use Josantonius\MimeType\MimeType;

$mimeType = new MimeType();

$mimeType->getMime('.tar'); // application/x-tar

// The dot can be omitted:

$mimeType->getMime('mp4'); // video/mp4
use Josantonius\MimeType\MimeTypeCollection;

MimeTypeCollection::getMime('.json'); // application/json

测试

要运行 测试,您只需要 Composer 并执行以下操作

git clone https://github.com/josantonius/php-mime-type.git
cd PHP-MimeType
composer install

使用 PHPUnit 运行单元测试

composer phpunit

使用 PHPCS 运行代码标准测试

composer phpcs

运行 PHP代码错误检测器 测试以检测代码风格的差异

composer phpmd

运行所有之前的测试

composer tests

待办事项

  • 添加新功能
  • 改进测试
  • 改进文档
  • 改进README文件中的英文翻译
  • 重构禁用代码风格规则的代码(见 phpmd.xml 和 phpcs.xml)

变更日志

每个版本的详细变更记录在 发布说明 中。

贡献

在发起拉取请求、开始讨论或报告问题之前,请务必阅读 贡献指南

感谢所有 贡献者!💖

赞助

如果这个项目帮助您减少了开发时间,您可以赞助我 以支持我的开源工作😊

许可协议

本存储库受 MIT许可协议 授权。

版权所有 © 2016-2023,Josantonius