Basic Class update
Start moving all basic class methods into dedicated classes. Most of them are static and can be direct called. No need to group them into one big class that is hard to maintain and check. Work is ongoing
This commit is contained in:
87
www/lib/CoreLibs/Convert/MimeAppName.php
Normal file
87
www/lib/CoreLibs/Convert/MimeAppName.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* Translates a mime id string into the actual application or file name
|
||||
* for example 'text/plain' will output 'Text file'
|
||||
*/
|
||||
|
||||
namespace CoreLibs\Convert;
|
||||
|
||||
class MimeAppName
|
||||
{
|
||||
private $mime_apps= [];
|
||||
|
||||
/**
|
||||
* constructor: init mime list
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->mimeInitApps();
|
||||
}
|
||||
|
||||
/**
|
||||
* init array for mime type to application name lookup
|
||||
* @return void
|
||||
*/
|
||||
private function mimeInitApps(): void
|
||||
{
|
||||
// match mime type to some application description
|
||||
// this is NOT translated
|
||||
$this->mime_apps = [
|
||||
// zip
|
||||
'application/zip' => 'Zip File',
|
||||
// Powerpoint
|
||||
'application/vnd.ms-powerpoint' => 'Microsoft Powerpoint',
|
||||
'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'Microsoft Powerpoint',
|
||||
// PDF
|
||||
'pplication/pdf' => 'PDF',
|
||||
// JPEG
|
||||
'image/jpeg' => 'JPEG',
|
||||
// PNG
|
||||
'image/png' => 'PNG',
|
||||
// Indesign
|
||||
'application/x-indesign' => 'Adobe InDesign',
|
||||
// Photoshop
|
||||
'image/vnd.adobe.photoshop' => 'Adobe Photoshop',
|
||||
'application/photoshop' => 'Adobe Photoshop',
|
||||
// Illustrator
|
||||
'application/illustrator' => 'Adobe Illustrator',
|
||||
// Word
|
||||
'application/vnd.ms-word' => 'Microsoft Word',
|
||||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'Microsoft Word',
|
||||
// Excel
|
||||
'application/vnd.ms-excel' => 'Microsoft Excel',
|
||||
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'Microsoft Excel',
|
||||
// plain text
|
||||
'text/plain' => 'Text file',
|
||||
// html
|
||||
'text/html' => 'HTML',
|
||||
// mp4 (max 45MB each)
|
||||
'video/mpeg' => 'MPEG Video'
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets or updates a mime type
|
||||
* @param string $mime MIME Name, no validiation
|
||||
* @param string $app Applicaiton name
|
||||
* @return void
|
||||
*/
|
||||
public function mimeSetAppName(string $mime, string $app): void
|
||||
{
|
||||
$this->mime_apps[$mime] = $app;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the application name from mime type
|
||||
* if not set returns "Other file"
|
||||
* @param string $mime MIME Name
|
||||
* @return string Application name matching
|
||||
*/
|
||||
public function mimeGetAppName(string $mime): string
|
||||
{
|
||||
return $this->mime_apps[$mime] ?? 'Other file';
|
||||
}
|
||||
}
|
||||
|
||||
// __END__
|
||||
Reference in New Issue
Block a user