*/
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
/**
* Implements functions related to MIME types such as detection and mapping to file extension
$this->detectCallback = $params['detectCallback'] ?? null;
$this->guessCallback = $params['guessCallback'] ?? null;
$this->extCallback = $params['extCallback'] ?? null;
- $this->logger = $params['logger'] ?? new \Psr\Log\NullLogger();
+ $this->logger = $params['logger'] ?? new NullLogger();
$this->loadFiles();
}
/**
* look for XML formats (XHTML and SVG)
*/
+ Wikimedia\suppressWarnings();
$xml = new XmlTypeCheck( $file );
+ Wikimedia\restoreWarnings();
if ( $xml->wellFormed ) {
$xmlTypes = $this->xmlTypes;
return $xmlTypes[$xml->getRootElement()] ?? 'application/xml';
$mime = 'application/zip';
$opendocTypes = [
+ # In OASIS Open Document Format v1.2, Database front end document
+ # has a recommended MIME type of:
+ # application/vnd.oasis.opendocument.base
+ # Despite the type registered at the IANA being 'database' which is
+ # supposed to be normative.
+ # T35515
+ 'base',
+
'chart-template',
'chart',
'formula-template',
'text-web',
'text' ];
- // https://lists.oasis-open.org/archives/office/200505/msg00006.html
+ // The list of document types is available in OASIS Open Document
+ // Format version 1.2 under Appendix C. It is not normative though,
+ // supposedly types registered at the IANA should be.
+ // http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html
$types = '(?:' . implode( '|', $opendocTypes ) . ')';
$opendocRegex = "/^mimetype(application\/vnd\.oasis\.opendocument\.$types)/";