mattwellss / magento-composer-autoloader
Installs: 831
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 1
Open Issues: 0
Type:magento-module
Requires
- composer/composer: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-12-25 19:27:52 UTC
README
Complete and simple to install Composer autoloader or Magento
Why Does This Even Exist?
- Other Composer autoloader integrations aren't complete. The most common issues with other implementations:
- They allow both Magento and Composer to register autoloaders. This causes problems when using libraries that expect
class_exists
to work properly—Magento's will always attempt to include the file. - They allow Magento's autoload to register itself, then manually de-register it. This is wholly unnecessary overhead.
- They require manual configuration of
composer.json
for Magento autoloading.
- With more and more need to integrate namespaced systems with Magento, a
require
-able, redistributable, easy to set up module is needed
Installation
Until it's listed in packagist or firegento, add the repository to your composer.json
:
{ "type": "vcs", "url": "https://github.com/mattwellss/magento-composer-autoloader" }
Add the library to your require
section:
"require": { "mattwellss/magento-composer-autoloader": "~1.0" }
Configuration
Post install, the new Varien_Autoload
class needs to know where vendor/autoload.php
is hiding. This must be configured.
Defining the vendor root directory
Regardless of how the vendor dir is defined, it must not end with a trailing slash.
The two methods of describing the vendor root directory are:
VENDOR_ROOT
constant. Must be defined in all entry points.MAGE_VENDOR_ROOT
env variable. Be sure it's defined for all PHP environments (cli and fpm/mod_php).
Optimizing the Autoloader
Normally, composer dump -o
is all one does to optimize a composer autoloader. However, running php shell/classmap_generator.php
when deploying new code to production is recommended. The script generates a classmap file to be used by composer to speed autoloading of files in Magento's code pools.
To enable use of the generated classmap, include define('OPTIMIZED_COMPOSER', true)
in includes/config.php
.