josantonius / mimetype
Requires
- php: ^8.0
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
README
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
测试
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