Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Apache Mime Types Laravel Package

dflydev/apache-mime-types

Parse and query Apache mime.types mappings in PHP. Includes bundled Apache mime.types plus JSON representation. Use parser to read mime.types files, or repositories (PHP, JSON, flat) to look up MIME type by extension and extensions by type.

View on GitHub
Deep Wiki
Context7

Apache MIME Types

Parses Apache MIME Types files and provides a simple interface to find extensions by type and type by extension.

Build Status

Features

  • Bundles mime.types from the Apache HTTP Project. (see here)
  • Bundles a JSON representation of Apache mime.types.
  • Provides an interface for reading either flat Apache HTTP mime.types or a JSON representation.

Requirements

  • PHP 5.3.3+

Installation

Through Composer as dflydev/apache-mime-types.

Usage

Parser

Parses Apache MIME Types in the format of mime.types found here.

<?php
$parser = new Dflydev\ApacheMimeTypes\Parser;

$map = $parser->parse('/path/to/mime.types');

The return value from parse is an array mapping types to an array of extensions.

<?php
array(
    'text/html' => array('html', 'htm'),
);

PhpRepository

A repository backed by static PHP arrays.

<?php
$repository = new Dflydev\ApacheMimeTypes\PhpRepository;

$type = $repository->findType('html');
$extensions = $repository->findExtensions('text/html');

var_dump($type);
var_dump($extensions);

//
// Result
//
// string(9) "text/html"
// array(2) {
//   [0]=>
//   string(4) "html"
//   [1]=>
//   string(3) "htm"
// }
//

JsonRepository

A repository backed by a JSON map of type to extensions.

{
    "text/html": ["html", "htm"]
}

To use the embedded JSON:

<?php
$repository = new Dflydev\ApacheMimeTypes\JsonRepository;

$type = $repository->findType('html');
$extensions = $repository->findExtensions('text/html');

var_dump($type);
var_dump($extensions);

//
// Result
//
// string(9) "text/html"
// array(2) {
//   [0]=>
//   string(4) "html"
//   [1]=>
//   string(3) "htm"
// }
//

To specify a specific JSON mapping:

<?php
$repository = new Dflydev\ApacheMimeTypes\JsonRepository('/path/to/mime.types.json');

FlatRepository

A repository backed by Apache MIME Types formatted mime.types. To use the embedded mime.types:

<?php
$repository = new Dflydev\ApacheMimeTypes\FlatRepository;

$type = $repository->findType('html');
$extensions = $repository->findExtensions('text/html');

var_dump($type);
var_dump($extensions);

//
// Result
//
// string(9) "text/html"
// array(2) {
//   [0]=>
//   string(4) "html"
//   [1]=>
//   string(3) "htm"
// }
//

To specify a specific mime.types mapping:

<?php
$repository = new Dflydev\ApacheMimeTypes\FlatRepository('/path/to/mime.types');

License

MIT, see LICENSE.

Community

If you have questions or want to help out, join us in the #dflydev channel on irc.freenode.net.

Not Invented Here

This project is based heavily on skyzyx/mimetypes. The major difference is that skyzyx/mimetypes is focussed on creating JSON files from Apache mime.types rather than providing a way to interact with Apache MIME Types as a data source.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle