Download the PHP package brightnucleus/static-facade without Composer

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

Bright Nucleus Static Facade

Latest Stable Version Total Downloads Latest Unstable Version License

Abstract static Facade class to wrap around shared object instances for convenient access.

Table Of Contents

Installation

The best way to use this package is through Composer:

Basic Usage

To create a static Facade, you can either extend the StaticFacade class or use the StaticFacadeTrait, depending on whether you need to extend an existing class or not.

Such a static Facade will then forward any static method calls it gets to the instance of the object it is wrapping as a dynamic method call.

As an example, let's say you have a UserRepository class to fetch users from. If you can't have that shared instance just be injected through the constructor (which would avoid a static coupling), you would normally either have a way of getting the shared instance through a static call (UserRepository::getInstance()) or have a Service Locator to get the shared instance (Services::get('UserRepository')). This produces cumbersome code, as every interaction with such a class consists of two separate steps.

To make this more convenient, you can provide a static Facade that abstracts away the fetching of the shared instance.

Example:

Note: This creates a tight coupling within the consuming code to the static Facade itself. This is great for getting around limitations in legacy code, and is preferable to coupling your code to the actual class being used, as you have another layer abstraction and can modify/replace the actual class as needed. However, you should always prefer having your dependencies be injected at runtime without creating such a tight coupling.

Extending The StaticFacade Class

You would typically extend the StaticFacade class if you don't need to have your Facade extend another existing class.

Example:

Using The StaticFacadeTrait Trait

If your Facade already extends another class, you cannot use the StaticFacade class, as PHP does not allow for multiple inheritance. In this case, you can make use of the StaticFacadeTrait that provides the same functionality.

Example:

Exception Thrown On Missing Method

By default, a BrightNucleus\Exception\BadMethodCallException with a detailed message is thrown when an unknown method is called through the Facade.

To provide custom exceptions, you can override the getFacadeException method, that has the following signature:

Adding Methods Directly To The Facade

By default, the static Facade will now just work, and forward any method calls to its wrapped object dynamically.

However, you can always directly add stubs to the Facade. This might make sense if you're using the Facade a lot, as the automagic method of forwarding the calls is slower than a direct call, and it is also missing the necessary hints for your IDE to make any sense of it.

To use direct calls, just add the matching static methods, and forward the arguments to the dynamic method no the object's instance, like in the following example:

Contributing

All feedback / bug reports / pull requests are welcome.

License

Copyright (c) 2016 Alain Schlesser, Bright Nucleus

This code is licensed under the MIT License.


All versions of static-facade with dependencies

PHP Build Version
Package Version
Requires brightnucleus/exceptions Version >=0.2
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 brightnucleus/static-facade contains the following files

Loading the files please wait ....