3
3
4
4
Bundles
5
5
=======
6
-
7
- A bundle is a directory that has a well-defined structure and can host anything
8
- from classes to controllers and web resources. Even if bundles are very
9
- flexible, you should follow some best practices if you want to distribute them .
6
+ Un bundle es un directorio con una estructura definida que contiene desde
7
+ clases hasta controladores y recursos de red. Aunque los bundles son
8
+ muy flexibles, se recomienda siempre usar métodos (no se a que practicas se refieren)
9
+ para distribuirlos de una forma mas efectiva .
10
10
11
11
.. index ::
12
12
pair: Bundles; Naming Conventions
@@ -15,24 +15,24 @@ flexible, you should follow some best practices if you want to distribute them.
15
15
16
16
Bundle Name
17
17
-----------
18
+ Un bundle es también un PHP namespace. El namespace debe tener todos
19
+ los requerimientos de compatibilidad de los namespaces y el nombre
20
+ de las clases, con respecto a la versión PHP 5.3. Esto significa
21
+ que el bundle debe empezar con un segmento del vendor, seguido de un 0
22
+ o de segmentos de otras categorías, y debe terminar con el shortname
23
+ del namespace, que debe terminar con la palabra Bundle.
18
24
19
- A bundle is also a PHP namespace. The namespace must follow the technical
20
- interoperability `standards `_ for PHP 5.3 namespaces and class names: it
21
- starts with a vendor segment, followed by zero or more category segments, and
22
- it ends with the namespace short name, which must end with a ``Bundle ``
23
- suffix.
24
25
25
- A namespace becomes a bundle as soon as you add a bundle class to it. The
26
- bundle class name must follow these simple rules :
26
+ Un namespace se vuelve un bundle tan pronto se añade una clase al bundle.
27
+ La clase que se crea debe seguir las siguientes reglas :
27
28
28
- * Use only alphanumeric characters and underscores;
29
- * Use a CamelCased name;
30
- * Use a descriptive and short name (no more than 2 words);
31
- * Prefix the name with the concatenation of the vendor (and optionally the
32
- category namespaces);
33
- * Suffix the name with ``Bundle ``.
29
+ * Use únicamente caracteres alfanuméricos y underscores;
30
+ * La primera letra de cada palabra debe empezar con mayúscula;
31
+ * Usar un nombre que tenga máximo dos palabras y sirva para su descripción;
32
+ * El nombre debe empezar con el nombre del vendor y puede tener seguido al vendor las categorías de los namespaces.
33
+ * El nombre debe terminar con la palabra ``Bundle ``.
34
34
35
- Here are some valid bundle namespaces and class names :
35
+ Un ejemplo de algunos nombres validos de namesapces y de las clases :
36
36
37
37
+-----------------------------------+--------------------------+
38
38
| Namespace | Bundle Class Name |
@@ -44,26 +44,25 @@ Here are some valid bundle namespaces and class names:
44
44
| ``Acme\BlogBundle `` | ``AcmeBlogBundle `` |
45
45
+-----------------------------------+--------------------------+
46
46
47
- By convention, the ``getName() `` method of the bundle class should return the
48
- class name .
47
+ Por convención, el método ``getName() `` de la clase del bundle debe retornar el
48
+ nombre de la clase .
49
49
50
50
.. note ::
51
51
52
- If you share your bundle publicly, you must use the bundle class name as
53
- the name of the repository (`` AcmeBlogBundle `` and not `` BlogBundle ``
54
- for instance ).
52
+ Si usted comparte su bundle, usted debe usar el mismo nombre
53
+ del repositorio con el nombre de la clase de su bundle.
54
+ (por ejemplo `` AcmeBlogBundle `` y no `` BlogBundle `` ).
55
55
56
56
.. note ::
57
57
58
- Symfony2 core Bundles do not prefix the Bundle class with ``Symfony ``
59
- and always add a ``Bundle `` subnamespace; for example:
58
+ Los bundles de Symfony2 por defecto no añaden el prefijo ``Symfony ``
59
+ al nombre de la clase y siempre agregan un ``Bundle `` subnamesapce: por ejemplo:
60
60
:class: `Symfony\\ Bundle\\ FrameworkBundle\\ FrameworkBundle `.
61
61
62
62
Directory Structure
63
63
-------------------
64
64
65
- The basic directory structure of a ``HelloBundle `` bundle must read as
66
- follows:
65
+ La estructura básica de un ``HelloBundle `` debe ser de la siguiente forma:
67
66
68
67
.. code-block :: text
69
68
@@ -82,29 +81,32 @@ follows:
82
81
public/
83
82
Tests/
84
83
85
- The ``XXX `` directory(ies) reflects the namespace structure of the bundle.
84
+ El directorio ``XXX `` hace referencia al nombre del namespace del bundle.
86
85
87
- The following files are mandatory :
86
+ Estos archivos se deben crear obligatoriamente :
88
87
89
88
* ``HelloBundle.php ``;
90
- * ``Resources/meta/LICENSE ``: The full license for the code;
91
- * ``Resources/doc/index.rst ``: The root file for the Bundle documentation.
89
+ * ``Resources/meta/LICENSE ``: Toda la licencia de nuestro código;
90
+ * ``Resources/doc/index.rst ``: Este archivo contiene la documentación de nuestro Bundle.
91
+
92
92
93
93
.. note ::
94
94
95
- These conventions ensure that automated tools can rely on this default
96
- structure to work .
95
+ Esto nos permite que diferentes herramientas puedan identificar
96
+ esta estructura para trabajar con ella .
97
97
98
- The depth of sub-directories should be kept to the minimal for most used
99
- classes and files (2 levels at a maximum). More levels can be defined for
100
- non-strategic, less-used files.
98
+ La máxima cantidad de sub-directorios para almacenar nuestras clases y
99
+ archivos que mas usamos debe ser de 2 niveles, y si se usan mas
100
+ niveles se recomienda guardar allí los archivos menos usados y
101
+ nuestras clases que no sean fundamentales para la aplicación.
101
102
102
- The bundle directory is read-only. If you need to write temporary files, store
103
- them under the ``cache/ `` or ``log/ `` directory of the host application. Tools
104
- can generate files in the bundle directory structure, but only if the generated
105
- files are going to be part of the repository.
103
+ El directorio del bundle es de solo escritura. Si necesita escribir
104
+ archivos temporales, archívelas en la ``cache/ `` o el ``log/ `` del
105
+ directorio principal de la aplicación. Hay herramientas que crean
106
+ archivos en el directorio del bundle, pero solo si dichos archivos
107
+ van a hacer parte del repositorio.
106
108
107
- The following classes and files have specific emplacements :
109
+ Las siguientes clases y archivos se deben ubicar en los siguientes directorios :
108
110
109
111
+---------------------------+-----------------------------+
110
112
| Type | Directory |
@@ -127,103 +129,110 @@ The following classes and files have specific emplacements:
127
129
Classes
128
130
-------
129
131
130
- The bundle directory structure is used as the namespace hierarchy. For
131
- instance, a ``HelloController `` controller is stored in
132
- ``Bundle /HelloBundle/Controller/HelloController.php `` and the fully qualified
133
- class name is ``Bundle\HelloBundle\Controller\HelloController ``.
132
+ La estructura del directorio del bundle es usada con la jerarquía del namespace.
133
+ Por ejemplo el ``HelloController `` es almacenado en
134
+ ``Bunlde /HelloBundle/Controller/HelloController.php `` y el
135
+ nombre completo de la clase es ``Bundle\HelloBundle\Controller\ ``.
134
136
135
- All classes and files must follow the Symfony2 coding :doc: `standards
136
- </contributing/code/standards>` .
137
+ Todas las clases y archivos deben se codificados con los :doc: `standards</contributing/code/standards> `
138
+ de Symfony2 .
137
139
138
- Some classes should be seen as facades and should be as short as possible, like
139
- Commands, Helpers, Listeners, and Controllers.
140
+ Algunas clases deben ser fachadas ( facades no se como traducir esto) y
141
+ deben ser lo mas cortas posible, como Commands, Helpers, Listeners, y Controllers.
140
142
141
- Classes that connects to the Event Dispatcher should be suffixed with
142
- ``Listener ``.
143
+ Las clases que se usan para conectar con el Event Dispatcher deben terminar con
144
+ el sufijo ``Listener ``.
143
145
144
- Exceptions classes should be stored in an ``Exception `` sub-namespace.
146
+ Las clases que sirven para usar excepciones deben almacenarse en
147
+ el sub-namespace ``Exception ``.
145
148
146
149
Vendors
147
150
-------
148
151
149
- A bundle must not embed third-party PHP libraries. It should rely on the
150
- standard Symfony2 autoloading instead.
152
+ Un bundle no debe contener librerías PHP de terceros. Deben redireccionar al standard
153
+ de auto carga usado por Symfony2.
151
154
152
- A bundle should not embed third-party libraries written in JavaScript, CSS, or
153
- any other language .
155
+ Un bundle no debe contener librerías de terceros escritas en
156
+ JavaScript, CSS, u otro lenguaje .
154
157
155
158
Tests
156
159
-----
157
160
158
- A bundle should come with a test suite written with PHPUnit and stored under
159
- the ``Tests/ `` directory. Tests should follow the following principles:
161
+ Un bundle debe tener un paquete de prueba escrito con PHPUnit y
162
+ se debe almacenar en el directorio ``Tests/ ``.
163
+ Estos test deben seguir los siguientes principios:
164
+
165
+ * El paquete de pruebas debe poder ejecutarse desde cualquier aplicación
166
+ con un comando simple de ``phpunit ``;
167
+ * Las pruebas funcionales deben ser para probar la respuesta de
168
+ salida e información de perfiles si usted posee;
169
+ * La cobertura del código de prueba deber ser del 95% con respecto
170
+ a nuestro código.
160
171
161
- * The test suite must be executable with a simple ``phpunit `` command run from
162
- a sample application;
163
- * The functional tests should only be used to test the response output and
164
- some profiling information if you have some;
165
- * The code coverage should at least covers 95% of the code base.
166
172
167
173
.. note ::
168
- A test suite must not contain `` AllTests.php `` scripts, but must rely on the
169
- existence of a ``phpunit.xml.dist `` file .
174
+ El paquete de pruebas no debe contener los scripts de
175
+ `` AllTests.php ``, si no que debe redireccionar al archivo ``phpunit.xml.dist ``.
170
176
171
177
Documentation
172
178
-------------
173
179
174
- All classes and functions must come with full PHPDoc.
180
+ Todas las clases y funciones deben tener completamente su PHPDoc.
181
+
182
+ Si llega haber documentación mas extensiva debe
183
+ estar en el formato de :doc: `reStructuredText
184
+ </contributing/documentation/format>`, y debe almacenarse en el
185
+ directorio ``Resources/doc/ ``; ``Resources/doc/index.rst ``
186
+ Este archivo es obligatorio.
175
187
176
- Extensive documentation should also be provided in the :doc: `reStructuredText
177
- </contributing/documentation/format>` format, under the ``Resources/doc/ ``
178
- directory; the ``Resources/doc/index.rst `` file is the only mandatory file.
179
188
180
189
Controllers
181
190
-----------
182
191
183
- As a best practice, controllers in a bundle that's meant to be distributed
184
- to others must not extend the
185
- :class: `Symfony\\ Bundle\\ FrameworkBundle\\ Controller\\ Controller ` base class.
186
- They can implement
187
- :class: `Symfony\\ Component\\ DependencyInjection\\ ContainerAwareInterface ` or
188
- extend :class: `Symfony\\ Component\\ DependencyInjection\\ ContainerAware `
189
- instead.
192
+ Como buena practica, un controller en un bundle es usado p
193
+ ara ser distribuido hacia otros controllers pero no debe extender la clase
194
+ base de :class: `Symfony\\ Bundle\\ FrameworkBundle\\ Controller\\ Controller `.
195
+ Los controller pueden implementar :class: `Symfony\\ Component\\ DependencyInjection\\ ContainerAwareInterface `
196
+ o extender de :class: `Symfony\\ Component\\ DependencyInjection\\ ContainerAware `.
190
197
191
198
.. note ::
192
199
193
- If you have a look at
194
- :class: `Symfony\\ Bundle\\ FrameworkBundle\\ Controller\\ Controller ` methods,
195
- you will see that they are only nice shortcuts to ease the learning curve.
200
+ Los métodos de :class: `Symfony\\ Bundle\\ FrameworkBundle\\ Controller\\ Controller `
201
+ son simplemente atajos para facilitar la curva de aprendizaje.
196
202
197
203
Templates
198
204
---------
199
205
200
- If a bundle provides templates, they must use Twig. A bundle must not provide
201
- a main layout, except if it provides a full working application.
206
+ Si un bundle usa templates, estos deben usar Twig. Un bundle no
207
+ debe usar un layout principal, a menos que este proporcione una aplicación
208
+ de trabajo completa.
202
209
203
210
Translation Files
204
211
-----------------
205
212
206
- If a bundle provides message translations, they must be defined in the XLIFF
207
- format; the domain should be named after the bundle name (``bundle.hello ``).
213
+ Si un bundle contiene mensajes con traducción, estos deben ser
214
+ definidos con el formato XLIFF; El domino debe ser nombrado después
215
+ del nombre del bundle. (``bundle.hello ``).
208
216
209
- A bundle must not override existing messages from another bundle.
217
+ Un bundle no debe sobrescribir mensajes existentes de otro bundle.
210
218
211
219
Configuration
212
220
-------------
213
221
214
- To provide more flexibility, a bundle can provide configurable settings by
215
- using the Symfony2 built-in mechanisms .
222
+ Para permitir mas flexibilidad, un bundle debe proveer una
223
+ configuración que se pueda configurar mediante los métodos incluidos en Symfony2 .
216
224
217
- For simple configuration settings, rely on the default ``parameters `` entry of
218
- the Symfony2 configuration. Symfony2 parameters are simple key/value pairs; a
219
- value being any valid PHP value. Each parameter name should start with a
220
- lower-cased short version of the bundle name using underscores (``acme_hello ``
221
- for ``AcmeHelloBundle ``, or ``acme_social_blog `` for ``Acme\Social\BlogBundle ``
222
- for instance), though this is just a best-practice suggestion. The rest of
223
- the parameter name will use a period (``. ``) to separate different parts
224
- (e.g. ``acme_hello.email.from ``).
225
+ Para una configuración simple, use los ``parameters `` por defecto que se usan en
226
+ la configuración de Symfony2. Los parámetros de Symfony2 son simplemente pares
227
+ de key/value; un value es un valor valido de PHP. El nombre del parámetro debe
228
+ empezar con el nombre en minuscula del nombre del bundle usando
229
+ underscores (``acme_hello `` para ``AcmeHelloBundle ``, o ``acme_social_blog ``
230
+ para ``Acme\Social\BlogBundle `` por ejemplo), aunque esta es una sugerencia
231
+ para realizar una buena practica. El resto de los parámetros
232
+ deben usar un punto (``. ``) para separar sus diferentes
233
+ partes (e.g. ``acme_hello.email.from ``).
225
234
226
- The end user can provide values in any configuration file :
235
+ El usuario final debe proveer valores en cualquier archivo de configuración :
227
236
228
237
.. configuration-block ::
229
238
@@ -250,14 +259,14 @@ The end user can provide values in any configuration file:
250
259
[parameters]
251
260
acme_hello.email.from = fabien@example.com
252
261
253
- Retrieve the configuration parameters in your code from the container::
262
+ Obtén los parámetros de la configuración desde el container con el código ::
254
263
255
264
$container->getParameter('acme_hello.email.from');
256
265
257
- Even if this mechanism is simple enough, you are highly encouraged to use the
258
- semantic configuration described in the cookbook.
266
+ Inclusive si este mecanismo es bastante simple, se recomienda
267
+ altamente usar la configuración semántica descrita en el cookbook.
259
268
260
- Learn more from the Cookbook
269
+ Aprende mas desde el Cookbook
261
270
----------------------------
262
271
263
272
* :doc: `/cookbook/bundles/extension `
0 commit comments