Package Home

Zend Framework 2 Documentation (Manual)

PHK Home

File: /_sources/modules/zend.validator.file.hash.txt

Size:1873
Storage flags:no_autoload,compress/gzip (41%)

.. _zend.validator.file.hash:

Hash
----

``Zend\Validator\File\Hash`` allows you to validate if a given file's hashed contents
matches the supplied hash(es) and algorithm(s).

.. note::

   This validator requires the `Hash extension`_ from PHP. A list of
   supported hash algorithms can be found with the `hash_algos() function`_.

.. _`Hash extension`: http://php.net/manual/en/book.hash.php
.. _`hash_algos() function`: http://php.net/manual/en/function.hash-algos.php


.. _zend.validator.file.hash.options:

Supported Options
^^^^^^^^^^^^^^^^^

The following set of options are supported:

- **hash** ``(string)``
   Hash to test the file against.
- **algorithm** ``(string) default: "crc32"``
   Algorithm to use for the hashing validation.


.. _zend.validator.file.hash.usage:

Usage Examples
^^^^^^^^^^^^^^

.. code-block:: php
   :linenos:

   // Does file have the given hash?
   $validator = new \Zend\Validator\File\Hash('3b3652f', 'crc32');

   // Or, check file against multiple hashes
   $validator = new \Zend\Validator\File\Hash(array('3b3652f', 'e612b69'), 'crc32');

   // Perform validation with file path
   if ($validator->isValid('./myfile.txt')) {
      // file is valid
   }


.. _zend.validator.file.hash.methods:

Public Methods
^^^^^^^^^^^^^^

.. function:: getHash()
   :noindex:

   Returns the current set of hashes.

   :rtype: ``array``

.. function:: addHash(string|array $options)
   :noindex:

   Adds a hash for one or multiple files to the internal set of hashes.

   :param $options: See :ref:`Supported Options <zend.validator.file.hash.options>` section for more information.

.. function:: setHash(string|array $options)
   :noindex:

   Sets a hash for one or multiple files. Removes any previously set hashes.

   :param $options: See :ref:`Supported Options <zend.validator.file.hash.options>` section for more information.


For more information about the PHK package format: http://phk.tekwire.net