mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 09:57:37 +03:00 
			
		
		
		
	Update providers index page
This commit is contained in:
		
							parent
							
								
									7bdf57da9c
								
							
						
					
					
						commit
						580b31ba13
					
				| 
						 | 
				
			
			@ -3,18 +3,32 @@
 | 
			
		|||
Providers
 | 
			
		||||
=========
 | 
			
		||||
 | 
			
		||||
Providers help you to define how objects are created. They manage objects lifetime and their
 | 
			
		||||
dependencies.
 | 
			
		||||
Providers help to assemble the objects. They create objects and inject the dependencies.
 | 
			
		||||
 | 
			
		||||
Each provider is a callable. You call the provider like a function when you need to create an
 | 
			
		||||
object or call a function. Provider calls all dependent providers to retrieve the dependencies
 | 
			
		||||
and injects them.
 | 
			
		||||
object. Provider retrieves the underlying dependencies and inject them into the created object.
 | 
			
		||||
It causes the cascade effect that helps to assemble object graphs.
 | 
			
		||||
 | 
			
		||||
Any of the providers can be overridden by another provider. When provider is overridden it calls
 | 
			
		||||
to the overriding provider. This helps in testing or overriding API clients with stubs for dev or
 | 
			
		||||
stage environment.
 | 
			
		||||
.. code-block:: bash
 | 
			
		||||
 | 
			
		||||
Providers package API docs - :py:mod:`dependency_injector.providers`
 | 
			
		||||
   provider1()
 | 
			
		||||
   │
 | 
			
		||||
   ├──> provider2()
 | 
			
		||||
   │
 | 
			
		||||
   ├──> provider3()
 | 
			
		||||
   │    │
 | 
			
		||||
   │    └──> provider4()
 | 
			
		||||
   │
 | 
			
		||||
   └──> provider5()
 | 
			
		||||
        │
 | 
			
		||||
        └──> provider6()
 | 
			
		||||
 | 
			
		||||
Another providers feature is an overriding. Any of the providers can be overridden by another
 | 
			
		||||
provider. When provider is overridden it calls to the overriding provider instead of providing
 | 
			
		||||
the object by its own. This helps in testing. This also helps in overriding API clients with
 | 
			
		||||
stubs for the development or staging environment.
 | 
			
		||||
 | 
			
		||||
Providers module API docs - :py:mod:`dependency_injector.providers`
 | 
			
		||||
 | 
			
		||||
..  toctree::
 | 
			
		||||
    :maxdepth: 2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user