josantonius/mime-type

此软件包已被弃用且不再维护。未建议替代软件包。

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

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

This package is auto-updated.

Last update: 2023-08-13 18:24:03 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 Mess Detector测试以检测代码风格的冲突

composer phpmd

运行所有之前的测试

composer tests

待办事项

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

变更日志

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

贡献

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

感谢所有贡献者!💖

赞助

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

许可

此存储库受MIT许可的许可。

版权所有 © 2016-2023,Josantonius