Download the PHP package ulrack/services without Composer
On this page you can find all versions of the php package ulrack/services. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ulrack/services
More information about ulrack/services
Files in ulrack/services
Package services
Short Description A services implementation for PHP applications.
License MIT
Informations about the package services
DEPRECATION NOTICE: this package has been moved and improved at grizz-it/services
Ulrack Services
This package contains a services implementation. These services can be configured for a project to create a configured depency injection layer. The services are ran through a compiler to create workable data for the factories. The factories are used to retrieve assembled objects for the project. Both the compiler and factory can be extended by creating compiler extensions and factory extensions. On top of that, existing compilers and factories can be extended and altered with hooks.
Installation
To install the package run the following command:
Usage
Registry
To start, the ServiceRegistry needs to be created. The ServiceRegistry is the object on which all service definitions are registered, before they are compiled. To create the ServiceRegistry use the following snippet:
The service definitions can then be registered with the add
method.
See the files in configuration/schema to see everything
that can be registered out of the box.
Compiler
Then to create the compiler use the following snippet:
Compiler extensions
The compiler is used to reformat all defined code to operate faster in the factories later on. In order to add logic to the compiler, extensions need to be added. To support services, the ServicesCompiler can be used. Extensions are required to implement the AbstractServiceCompilerExtension.
If the services are already in an optimal state, the PassThroughCompiler can also be chosen.
To add the ServicesCompiler, use the following snippet:
Compiler hooks
To add a hook to the compiler the following snippet can be used:
The hooks are required to implement the AbstractServiceCompilerHook.
Creating the factory
Once everything is configured for the compiler, the factory can be created in a similar way.
Factory extensions
Factory extensions must implement the AbstractServiceFactoryExtension.
To add the services
factory use the following snippet:
Factory hooks
Adding a factory hook is similar to factory extension. It must implement the AbstractServiceFactoryHook. Then to add the hook, use the following snippet:
Using the factory
After everything is configured the factory can be used to create an instance of the declared service, or retrieve a certain configured value. To do so invoke the create method with the reference to the service declaration.
This will return whatever is registered on foo
.
Example
To see a full example, see the example directory. Run the following commands in the root directory to be able to execute the example:
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CODE_OF_CONDUCT for details.
MIT License
Copyright (c) GrizzIT
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
All versions of services with dependencies
grizz-it/configuration Version ^1.0
grizz-it/object-factory Version ^1.1
grizz-it/storage Version ^1.0
grizz-it/validator Version ^1.0