Download the PHP package alto/favicon without Composer
On this page you can find all versions of the php package alto/favicon. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package favicon
Short Description Generate a modern favicon set (SVG icon, apple-touch-icon, favicon.ico, Web Manifest) from a single SVG or PNG file.
License MIT
Homepage https://github.com/phpalto/favicon
Informations about the package favicon
Alto Favicon
A modern, efficient PHP library and CLI tool to generate a complete favicon set from a single SVG or PNG source.
It follows the modern best practices (2025) to generate a minimal yet robust set of icons for all browsers and devices.
Features
- Minimal Output: Generates only the necessary files to cover all modern use cases.
- SVG Support: Preserves your vector logo for modern browsers (
icon.svg). - Legacy Support: Generates a 32x32
favicon.icofor older browsers. - Mobile Ready: Generates
apple-touch-icon.pngand Android icons (icon-192.png,icon-512.png). - PWA Ready: Automatically generates a
manifest.webmanifest. - Search Friendly: Optionally generates a 48x48 PNG for Google Search results.
- HTML Snippet: Outputs the exact HTML tags you need to include in your
<head>. - Flexible Rasterization: Supports multiple adapters for image processing:
- SVG:
rsvg-convert,inkscape, orimagemagick(CLI) - PNG:
ext-imagickorext-gd
- SVG:
Requirements
- PHP 8.3 or higher
- For PNG processing:
ext-imagick(recommended) ORext-gd - For SVG input, one of the following must be installed on your system:
rsvg-convert(part oflibrsvg, recommended)inkscapeimagemagick(magickorconvert)
Installation
Usage
CLI
Run the tool using the binary:
Programmatic Usage
You can use the FaviconGenerator class directly in your PHP application (e.g., in a CMS, build script, or controller).
FaviconOptionsBuilder API
| Method | Description | Default |
|---|---|---|
__construct(string $inputFile, string $outputDir) |
Initialize with input file and output directory. | - |
publicPath(string $path) |
Set the public URL prefix for generated files. | / |
appName(string $name) |
Set the application name for the manifest. | App |
themeColor(string $color) |
Set the theme color (meta tag & manifest). | #0b0b0b |
backgroundColor(string $color) |
Set the background color (manifest). | #ffffff |
generateManifest(bool $generate) |
Enable/disable manifest generation. | false |
generateSearchPng48(bool $generate) |
Enable/disable 48x48 PNG generation. | false |
force(bool $force) |
Enable/disable overwriting existing files. | false |
build(): FaviconOptions |
Build the options object. | - |
GenerationReport Properties
The generate() method returns a GenerationReport object with the following properties:
outputDir(string): The directory where files were written.publicPath(string): The public URL prefix used.files(array<string, int>): Map of generated filenames to their size in bytes.htmlSnippet(string): The HTML tags to include in your<head>.manifestFile(?string): The name of the manifest file (if generated).totalBytes()(int): Helper method to get total size of generated files.
Options (CLI)
| Option | Description | Default |
|---|---|---|
--output, -o |
Output directory for generated files | public |
--public-path |
Public path prefix used in HTML/manifest | / |
--app-name |
Application name used in the manifest | App |
--theme-color |
Theme color for browser UI and manifest | #0b0b0b |
--background-color |
Background color for the manifest | #ffffff |
--manifest |
Generate manifest.webmanifest and Android icons |
false |
--search-png |
Generate the 48x48 PNG favicon | false |
--force, -f |
Overwrite existing files | false |
Examples
Basic usage (Minimal set):
Full set with Manifest and Search Icon:
Customizing output and colors:
Using a PNG source (if you don't have SVG):
Note: When using PNG input, icon.svg will not be generated, and 16x16/32x32 PNGs will be used as fallbacks.
Generated Files
The tool generates the following structure in your output directory:
favicon.ico(Legacy support)icon.svg(Modern browsers)apple-touch-icon.png(iOS)favicon.html(HTML snippet to include)
Optional files (with --manifest and --search-png):
icon-192.png(Android)icon-512.png(Android)icon-maskable.png(Android maskable icon)manifest.webmanifest(Web App Manifest)favicon-48x48.png(Google Search)
Testing
To run the test suite:
License
This project is licensed under the MIT License.
All versions of favicon with dependencies
psr/log Version ^3.0
symfony/console Version ^7.3 || ^8.0
symfony/filesystem Version ^7.3 || ^8.0
symfony/process Version ^7.3 || ^8.0