Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ojhaujjwal/service-manager
Service manager prototype
https://github.com/ojhaujjwal/service-manager
Last synced: 17 days ago
JSON representation
Service manager prototype
- Host: GitHub
- URL: https://github.com/ojhaujjwal/service-manager
- Owner: ojhaujjwal
- License: mit
- Created: 2014-11-17T14:04:36.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2014-11-17T14:17:23.000Z (almost 10 years ago)
- Last Synced: 2023-08-04T03:00:11.875Z (over 1 year ago)
- Language: PHP
- Size: 124 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Service Manager
This is a prototype for a new service manager for ZFx.
```php
class UserController
{
/**
* @Inject
*/
public function __construct(UserService $userService)
{
$this->userService = $userService;
}
}
``````php
/**
* @CreateWith(factory="User\Factory\UserServiceFactory", shared=true)
*/
class UserService
{}
```1. On demande un objet
2. Si une fabrique existe, alors celle-ci est utilisée pour construire l'objet.
3. Autrement, on le passe à un "resolver", par exemple Reflection:
3.1. On vérifie si le constructeur a l'annotation "Inject". Si non, on s'arrête, sinon on passe en 3.2
3.2. Pour chaque paramètre, on vérifie si il dispose d'une annotation "CreateWith".
3.2.1. Si il y en a une, alors on utilise la fabrique indiquée
3.2.2. Sinon on vérifie si il y a au moins un paramètre obligatoire, si oui => récursion, sinon => invokable factory