Download the PHP package ilab/namespacer without Composer

On this page you can find all versions of the php package ilab/namespacer. 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 namespacer

Namespacer

Using composer when building WordPress plugins sound like a good idea at first, but it won't be long until you run into trouble when other plugins are loading incompatible versions of libraries that you are using. Our plugin, MediaCloud, uses packages extensively - over 65 different libraries - many of them fairly common. I'd say over half of our support requests are due to conflicts with other plugins users have installed that are using outdated or newer versions of the same libraries we are using. The only way to really do that is to re-namespace the packages we are using and to be able to do that easily and safely.

Namespacer allows you to re-namespace any composer packages you are using by adding a namespace prefix to all of the namespaces as well as prefixing the package names too. It will then generate a folder called "lib" which you can safely include in your plugin.

Yes, I'm aware of projects out there like PHP-Scoper and Imposter and others. I've had issues with all of them, which is why I built this. Yoast and other plugins happily used PHP-Scoper, but their plugins, believe it or not, are much smaller than MediaCloud. Yoast, for example, uses 4 composer packages.

Installation

You can install this globally, but I think you'd be better off using it as the basis of a project via composer.

Usage

Once installed:

Arguments

Argument Description
composer The path (full or relative) to the composer file containing all the package dependencies you want to renamespace. You must specify this argument OR the source argument.
source The path (full or relative) to a directory containing a composer file and an existing vendor directory. When using source the vendor directory must already exist (composer update must already have been run). You must specify this argument OR the composer argument.
package The prefix to append to package names, for example specifying --package mcloud will turn nesbot/carbon into mcloud-nesbot/carbon. Default is mcloud.
namespace The prefix to append to namespaces, for example specifying --namespace MediaCloud\Vendor will transform namespace Aws; into namespace MediaCloud\Vendor\Aws;. Default is MediaClound\Vendor.
config An optional PHP configuration file for inserting filters into the namespacing process.
<dest> The destination directory. Namespacer will create a directory named lib inside that directory, removing it first if it already exists.

For example, you might run it:

In this example, we're pointing to a composer.json file containing the packages we want to re-namespace and to a config file that contains filters that will apply more manual patches during the re-namespace process. The output of the processing will be put into the build/ folder.

Filtering (Patching in PHP-Scoper parlance)

You can see some example configurations in vendor/ilab/namespacer/sample.config.php and vendor/ilab/namespacer/patches.config.php that will demonstrate how to insert your own code into the namespacing process to catch special cases.

Reporting Bugs

If you run into issues, please open a ticket and attach the composer.json you were trying to process with a clear description of the problem.


All versions of namespacer with dependencies

PHP Build Version
Package Version
Requires symfony/finder Version ^5.1
symfony/console Version ^5.1
ext-json Version *
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 ilab/namespacer contains the following files

Loading the files please wait ....