Download the PHP package belca/finfo without Composer

On this page you can find all versions of the php package belca/finfo. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package finfo

FInfo

FInfo (расшифровывается как Fileinfo - информация о файле) - расширяемый пакет для извлечения сведений из метаданных файла и/или на основе контента файла.

Изначально FInfo разработан для Dios CMS, но может независимо использоваться в любом PHP-проекте.

Что может FInfo?

По умолчанию пакет имеет минимальные возможности для работы с файлами (может извлечь минимум информации из файла).

Пакет используется для предоставления единого интерфейса для извлечения сведений из файлов с разными MIME-типами. Поэтому для работы с конкретными свойствами или типами файлов необходимо устанавливать или разрабатывать собственные классы или пакеты, затем подключать их с помощью методов класса в Fileinfo.

Класс Fileinfo

Класс Fileinfo предоставляет набор методов для работы с классами-обработчиками (классы извлекающие данные из файлов) и набор методов для извлечения информации из файлов.

В таблице перечислены основные методы класса. Более подробная информация содержится в самих классах.

Метод класса Описание
addClass($className) Добавляет указанный класс в список классов-обработчиков. Добавляемый класс должен быть расширен классом FileExplorer.
getClasses() Возвращает список добавленных классов.
file($filename, $virtualProperties = null) Возвращает сведения о файле. Если в параметре $virtualProperties указан список виртуальных свойств, то будут возвращены указанные виртуальные свойства.
getFileinfo($filename, $virtualProperty) Возвращает информацию конкретного виртуального свойства указанного файла.

Как использовать FInfo?

Установите FInfo через composer (хранилище Packagist) или сделав клон с репозитория Github.

Fileinfo работает со статическими методами, поэтому вы можете не инициализировать класс, и добавлять и извлекать данные из файлов в любом месте, где доступен подключенный класс.

// Подключите основной класс Fileinfo и классы-обработчики
use Belca\FInfo\Fileinfo; // Основной
use Belca\FInfo\BasicFileinfo; // Базовый класс-обработчик

...

// Добавьте классы-обработчики в список обработчиков
Fileinfo::addClass(BasicFileinfo::class);

...

// Извлеките всю информацию о файле
Fileinfo::file($filename);

// Output:
// [
//     [created] => 1531556313
//     [edited] => 1531556313
//     [size] => 9399
//     [filesize] => 9399
// ]

// Получите информацию о конкретных виртуальных свойствах
Fileinfo::file($filename, ['created', 'size');

// Output:
// [
//     [created] => 1531556313
//     [size] => 9399
// ]

// Если вы укажите несуществующее виртуальное свойство, то ошибок не будет. Свойство не будет возвращено.
Fileinfo::file($filename, ['created', 'edited', 'size', 'length');

// Output:
// [
//     [created] => 1531556313
//     [edited] => 1531556313
//     [size] => 9399
//     [filesize] => 9399
// ]

// Получите информацию только об одном виртуальном свойстве
Fileinfo::getFileinfo($filename, 'size');

// Output: 9399

// Или    
Fileinfo::file($filename, ['size']);

// Output:
// [
//     [size] => 9399
// ]

// Или
Fileinfo::file($filename, 'size');

// [
//     [size] => 9399
// ]

Расширение Fileinfo и FileExplorer

Как вы можете догадываться, и как упоминалось выше, пакет легко расширяется и дополняется другими обработчиками виртуальных свойств.

Вы можете посмотреть исходный код класса BasicFileinfo. Он достаточно простой и хорошо показывает как создать новый класс-обработчик для извлечения виртуальных свойств.

// Используйте абстрактный класс для создания нового обработчика
use Belca\FInfo\FileExplorer;

class ImageColorFileinfo extends FileExplorer
{

// При необходимости, вы можете задать алиасы существующих виртуальных свойств или указать используемые методы извлечения виртуального свойства
protected static $aliases = [
    'humanColor' => 'color',
    // or
    'colorForHuman' => 'getColorProperty',
];

// Если обработчик работает только с определенными типами данных, то их можно перечислить в $mimes;
protected static $mimes => ['image/png', 'image/jpeg'];

// Реализуйте метод проверки совместимости с файлом
public function checkCompatibility()
{
    // Код проверяющий возможность обработки файла
    // При успешной проверке верните true.
    // Если обработчик работает со всеми типами файлов, то также верните true, желательно проверив существование файла в этом методе или в методе извлекающим виртуальное свойство файла

    return true;
}

// Добавьте необходимые "извлекаторы" (методы извлекающие свойства файла) в класс
public function getColorProperty()
{
    if ($this->checkCompatibility() {
        // Код метода с возвращением полученного значения

        return $color;
    }

    // При неудачной обработке или проверки совместимости верните false

    return false;
}

Как видно, реализовать собственного обработчика действительно просто, нужно только разместить код обрабатывающий файл и извлекающий свойства файла.

Подключите реализуемый класс в место добавления класса-обработчика и добавьте его в класс Fileinfo с помощью метода addClass.

use Belca\FInfo\Fileinfo; // Основной
use Belca\FInfo\ImageColorFileinfo; // Класс извлекающий цвет из изображения

...

// Добавляем в список обработчиков файла
Fileinfo::addClass(ImageColorFileinfo::class);

Определения FInfo

Для более понятной работы с пакетом FInfo были введены некоторые абстрактные понятия.

Виртуальные свойства, методы извлечения, алиасы и значения

Для получения информации о файле (свойств файла) используются виртуальные свойства, алиасы и методы извлечения.

Виртуальные свойства и параметры файлов (они же вычисленные свойства и высчитанные значения) — понятия введенные в этом пакете для определения получаемых значений и свойств файла. Виртуальное значение может быть получено из существующих данных файла (например, размер файла, дата изменения файла, владелец файла и т.п.) или определено на основе содержимого файла.

На самом деле, виртуальное свойство - название метода класса для получения значения свойства файла измеряемое одним значением или набором значений (массивом), а виртуальное значение - рассчитанное или извлеченное значение на основе данных файла и возвращаемое определенным методом (виртуальным свойством).

Примеры виртуальных значений

Примерами виртуальных свойств будут:

Как можно заменить, такие значения как размер файла, геолокация, создатель файла и т.п. могут быть определены в метаданных файла или в сведениях самого файла, а значение свойств как средний цвет изображения, основные цвета изображения и т.п., отсутствуют у файлов и для их получения необходимо обработать файл с помощью специальных инструментов (библиотек, модулей, классов и т.п.).

Лицензия

Пакет распространяется по лицензии MIT.


All versions of finfo with dependencies

PHP Build Version
Package Version
No informations.
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package belca/finfo contains the following files

Loading the files please wait ....