Description
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 alternatives and similar libraries
Based on the "Files" category.
Alternatively, view Hoa Mime alternatives based on common mentions on social networks and blogs.
-
Gaufrette
PHP library that provides a filesystem abstraction layer − will be a feast for your files! -
UnifiedArchive
UnifiedArchive - an archive manager with unified interface for different formats (bundled with cli utility). Supports all formats with basic operations (reading, extracting and creation) and popular formats specific features (compression level, password-protection, comment) -
Filesystem Component
Filesystem Package provide a fluent, object-oriented interface for working with filesystem.
Cloudways Early Bird Offer
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Hoa Mime or a related project?
README
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
This library allows to manipulate a MIME types database and get some related informations about streams.
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:
- On the
#hoaproject
IRC channel, - On the forum at users.hoa-project.net.
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.
*Note that all licence references and agreements mentioned in the Hoa Mime README section above
are relevant to that project's source code only.