Download the PHP package colinmollenhour/cache-backend-file without Composer

On this page you can find all versions of the php package colinmollenhour/cache-backend-file. 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 cache-backend-file

Cm_Cache_Backend_File

The stock Zend_Cache_Backend_File backend has extremely poor performance for cleaning by tags making it become unusable as the number of cached items increases. This backend makes many changes resulting in a huge performance boost, especially for tag cleaning.

This cache backend works by indexing tags in files so that tag operations do not require a full scan of every cache file. The ids are written to the tag files in append-only mode and only when files exceed 4k and only randomly are the tag files compacted to prevent endless growth in edge cases.

The metadata and the cache record are stored in the same file rather than separate files resulting in fewer inodes and fewer file stat/read/write/lock/unlink operations. Also, the original hashed directory structure had very poor distribution due to the adler32 hashing algorithm and prefixes. The multi-level nested directories have been dropped in favor of single-level nesting made from multiple characters.

Is the improvement substantial? Definitely. Tag cleaning is literally thousands of times faster, loading is twice as fast, and saving is slightly slower dependent on the number of tags being saved.

Test it for yourself with the Magento Cache Benchmark.

Installation

  1. Install with Composer: composer require colinmollenhour/cache-backend-file
  2. Edit app/etc/local.xml changing global/cache/backend to Cm_Cache_Backend_File (Magento 1 / OpenMage)
  3. Delete all contents of the cache directory

Example Configuration

By default, Cm_Cache_Backend_File is configured not to use chmod to set file permissions. The proper way to do file permissions is to respect the umask and not set any permissions. This way the file permissions can be properly inherited using the OS conventions. To improve security the umask should be properly set. In Magento the umask is set in index.php as 0 which means no restrictions. So, for example to make files and directories no longer public add umask(0007) to Mage.php.

If umasks are too complicated and you prefer the sub-optimal (less-secure, needless system calls) approach you can enable the legacy chmod usage as seen below. This will force the file modes to be set regardless of the umask.

For directory_mode the setgid bit can be set using 2 for the forth digit. E.g. 02770. This will cause files and directories created within the directory with the setgid bit to inherit the same group as the parent which is useful if you run scripts as users other than your web server user. The setgid bit can also be used with the default configuration (use_chmod off) by simply setting the bit on the var/cache directory one time using chmod g+s var/cache.

Note that running your cron job as root is not a good practice from a security standpoint.

Cleaning Old Files

Magento and Zend_Cache do not cleanup old records by themselves so if you want to keep your cache directory tidy you need to write and invoke regularly your own script which cleans the old data. Here is an example for Magento:

Development

Please feel free to send Pull Requests to give back your improvements to the community!

You can run the unit tests locally with just Docker installed using a simple alias:

Then, install Composer dependencies and run tests like so:

Special Thanks

Thanks to Vinai Kopp for the inspiring this backend with your symlink rendition!


All versions of cache-backend-file 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 colinmollenhour/cache-backend-file contains the following files

Loading the files please wait ....