Imports & Overriding
Container files are rarely a single file. You split definitions across many files and compose them, then selectively replace definitions when needed.
Imports
Other container files can be imported from the container namespace by their import name.
import config
import app/dashboard
import app/user
import app/shopAn import name is not a file path — it is the name the file was registered under in the namespace (for example via importDirectory()), so app/user resolves to whatever path is mapped to that name. See Parsing for how those names are established, and Composer Integration for importing files shipped by packages.
Overriding
Services and parameters must be explicitly overwritten if they have already been defined. Without the override keyword, redefining an existing name is an error — this protects you from silently shadowing a definition, especially across imported files.
:ship: 'Star Destroyer'
override :ship: 'X-Wing'The same applies to services:
@producer.default: Acme\Producer('standard')
override @producer.default: Acme\Producer('massive')TIP
override also works with generic definitions and materializations.
