Skip to content
This repository was archived by the owner on Sep 20, 2021. It is now read-only.

hoaproject/Mime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0c74b9d · Mar 6, 2018
Dec 13, 2014
Jan 9, 2017
Jan 9, 2017
Feb 10, 2014
Aug 3, 2015
Mar 6, 2018
Jan 10, 2017
Jan 9, 2017
Feb 12, 2018
Mar 15, 2017
Mar 6, 2018
Aug 3, 2017

Repository files navigation

Hoa


Build status Code coverage Packagist License

Hoa is a modular, extensible and structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds.

Hoa\Mime

Help on IRC Help on Gitter Documentation Board

This library allows to manipulate a MIME types database and get some related informations about streams.

Learn more.

Installation

With Composer, to include this library into your dependencies, you need to require hoa/mime:

$ composer require hoa/mime '~3.0'

For more installation procedures, please read the Source page.

Testing

Before running the test suites, the development dependencies must be installed:

$ composer install

Then, to run all the test suites:

$ vendor/bin/hoa test:run

For more information, please read the contributor guide.

Quick usage

As a quick overview, we will see how to get general and stream-related informations.

General informations

All we need is static methods Hoa\Mime\Mime::getExtensionsFromMime to get extensions from a type and Hoa\Mime\Mime::getMimeFromExtension to get type from an extension:

print_r(Hoa\Mime\Mime::getExtensionsFromMime('text/html'));

/**
 * Will output:
 *     Array
 *     (
 *         [0] => html
 *         [1] => htm
 *     )
 */

var_dump(Hoa\Mime\Mime::getMimeFromExtension('webm'));

/**
 * Will output:
 *     string(10) "video/webm"
 */

By default, Hoa\Mime\Mime uses the hoa://Library/Mime/Mime.types file as database. We can change this behavior by calling the Hoa\Mime\Mime::compute before any computations:

Hoa\Mime\Mime::compute('/etc/mime.types');

Stream-related informations

By instanciating the Hoa\Mime\Mime class with a stream, we are able to get some informations about the stream, such as its extension, others extensions, type, etc. Thus:

$type = new Hoa\Mime\Mime(new Hoa\File\Read('index.html'));

var_dump(
    $type->getExtension(),
    $type->getOtherExtensions(),
    $type->getMime(),
    $type->isExperimental()
);

/**
 * Will output:
 *     string(4) "html"
 *     array(1) {
 *       [0]=>
 *       string(3) "htm"
 *     }
 *     string(9) "text/html"
 *     bool(false)
 */

Documentation

The hack book of Hoa\Mime contains detailed information about how to use this library and how it works.

To generate the documentation locally, execute the following commands:

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

More documentation can be found on the project's website: hoa-project.net.

Getting help

There are mainly two ways to get help:

Contribution

Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know.

License

Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE for details.

Related projects

The following projects are using this library:

  • E-Conf, E-Conf is a Conference Management System,
  • sabre/katana, A contact, calendar, task list and file server.