The Symfony Glossary
From bundles to kernel, discover the meaning of the most important terms for Symfony developers.
- Acme is a sample company name used in Symfony demos and documentation.
It's used as a namespace where you would normally use your own company's
- An action is a PHP function or method that executes, for example, when a given route is matched. The term action is synonymous with controller, though a controller may also refer to an entire PHP class that includes several actions. See the Controller Chapter.
- Annotations are metadata written alongside your code. They can either be explanatory and will be
ignored during execution or add functionality to the line of code directly below as a means of
configuration. For example, the annotation
@vardescribes the type of a variable, whereas in Symfony2
@Assertcan add validation to a member variable of a class (see Validation chapter).
- An Application is a directory containing the configuration for a given set of Bundles.
- An asset is any non-executable, static component of a web application,
directly in the project's
webdirectory, or published from a Bundle to the web directory using the
- A controller is a PHP function that houses all the logic necessary
to return a
Responseobject that represents a particular page. Typically, a route is mapped to a controller, which then uses information from the request to process information, perform actions, and ultimately construct and return a
- Dependency Injection
- The Dependency Injection is a design pattern highly used in the Symfony Framework. It encourages loosely coupled and more maintainable architecture of an application. The main principle of this pattern is that it allows developers to inject objects (also known as services) in other objects, generally passing them as parameters. Different levels of coupling between these objects can be established depending on the method used to inject objects together. The Dependency Injection pattern is the more often associated to another specific type of object: the Service Container.
- A Distribution is a package made of the Symfony Components, a selection of bundles, a sensible directory structure, a default configuration, and an optional configuration system.
- An environment is a string (e.g.
dev) that corresponds to a specific set of configuration. The same application can be run on the same machine using different configuration by running the application in different environments. This is useful as it allows a single application to have a
devenvironment built for debugging and a
prodenvironment that's optimized for speed.
- In Symfony, a Firewall doesn't have to do with networking. Instead, it defines the authentication mechanisms (i.e. it handles the process of determining the identity of your users), either for the whole application or for just a part of it. See the Security chapters.
- Front Controller
- A Front Controller is a short PHP script that lives in the web directory of your project. Typically, all requests are handled by executing the same front controller, whose job is to bootstrap the Symfony application.
- HTTP Specification
- The HTTP Specification is a document that describes the Hypertext Transfer Protocol - a set of rules laying out the classic client-server request-response communication. The specification defines the format used for a request and response as well as the possible HTTP headers that each may have. For more information, read the HTTP Wikipedia article or the HTTP 1.1 RFC.
- The Kernel is the core of Symfony. The Kernel object handles HTTP requests using all the bundles and libraries registered to it. See The Architecture: The Application Directory and the Internal Events Reference.
- A Project is a directory composed of an Application, a set of bundles, vendor libraries, an autoloader, and web front controller scripts.
- A Service is a generic term for any PHP object that performs a specific task. A service is usually used "globally", such as a database connection object or an object that delivers email messages. In Symfony, services are often configured and retrieved from the service container. An application that has many decoupled services is said to follow a service-oriented architecture.
- Service Container
- A Service Container, also known as a Dependency Injection Container, is a special object that manages the instantiation of services inside an application. Instead of creating services directly, the developer trains the service container (via configuration) on how to create the services. The service container takes care of lazily instantiating and injecting dependent services. See Service Container chapter.
- A vendor is a supplier of PHP libraries and bundles including Symfony
itself. Despite the usual commercial connotations of the word, vendors
in Symfony often (even usually) include free software. Any library you
add to your Symfony project should go in the
vendordirectory. See The Architecture: Using Vendors.
- YAML is a recursive acronym for "YAML Ain't a Markup Language". It's a lightweight, human friendly data serialization language used extensively in Symfony's configuration files. See the The Yaml Component chapter.
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.