Download the PHP package macfja/composer-class-rewrite without Composer

On this page you can find all versions of the php package macfja/composer-class-rewrite. 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 composer-class-rewrite

Composer Class-Rewrite

Latest Version Total Downloads

What is Composer Class-Rewrite

Composer Class-Rewrite is a Composer plugin that allow you to rewrite almost1 any classes of your project.

Principle2

The idea is to scan every classes of the project to find classes declared as a rewrite. Then we make some modification on the parent (rewritten) class (a copy of the parent class) and the rewriter class (a copy of the rewriter class) and finally add them to the Composer autoload (before PSR-0 and PSR-4 classes). So, when a class ask for the rewritten class, Composer will return our modified rewiter class.

Installation

With Composer:

Usage

Limitations

Side effects

Multiple call

`

`

Magic constants

Explored ideas

  1. Inject my code during the Composer autoloading. Issue: Composer don't provide event in autoloader.
  2. Change the Composer autoloader code to add my logic. Issue: Change core code. So if Composer change it, he have to change mine too. Hard to maintain.
  3. Prepend a customer autoloader before Composer autoloader. Issue: Loose all the power of Composer autloading.

Under the hood

This plugin use:

How it works

Just before Composer autoloader generation, the plugin is parsing every PSR-0 and PSR-4 namespace. It search for class that implement the interface \MacFJA\ClassRewrite\Rewriter, store in memory the the rewriter class and the rewritten class. When the plugin have parse every classes. It rebuild every Rewriter and Rewritten class for rename the Rewritten classname with a hard to guess class name (in fact, it's a sha1 of the source file) and to rename the Rewriter classname into the original Rewritten classname. Finally it add the rewrite destination directory into Composer classmap autoload.
Then it let Composer do it's stuff.

It's works because Composer start searching class in the classmap autoload.

License

The MIT License (MIT). Please see License File for more information.


All versions of composer-class-rewrite with dependencies

PHP Build Version
Package Version
Requires composer-plugin-api Version ^1.0
nikic/php-parser Version ^2.0
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 macfja/composer-class-rewrite contains the following files

Loading the files please wait ....