Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
d7623a39
Commit
d7623a39
authored
Jun 28, 2014
by
Antonio Ramirez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add concept-autoloading.md
parent
5c19baab
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
46 additions
and
42 deletions
+46
-42
concept-autoloading.md
docs/guide-es/concept-autoloading.md
+46
-42
No files found.
docs/guide-es/concept-autoloading.md
View file @
d7623a39
...
@@ -13,7 +13,7 @@ El cargador se instala cuando incluyes el archivo `Yii.php`.
...
@@ -13,7 +13,7 @@ El cargador se instala cuando incluyes el archivo `Yii.php`.
Usando el Autocargador de Yii <a name="using-yii-autoloader"></a>
Usando el Autocargador de Yii <a name="using-yii-autoloader"></a>
-----------------------------
-----------------------------
Para utilizar el
el autocargador
de clases de Yii, deberías seguir dos reglas básicas cuando desarrolles y nombres tus
Para utilizar el
cargador automático
de clases de Yii, deberías seguir dos reglas básicas cuando desarrolles y nombres tus
clases:
clases:
*
Cada clase debe estar bajo un espacio de nombre (namespace). Por ejemplo
`foo\bar\MyClass`
.
*
Cada clase debe estar bajo un espacio de nombre (namespace). Por ejemplo
`foo\bar\MyClass`
.
...
@@ -24,70 +24,74 @@ clases:
...
@@ -24,70 +24,74 @@ clases:
$classFile
=
Yii
::
getAlias
(
'@'
.
str_replace
(
'\\'
,
'/'
,
$className
)
.
'.php'
);
$classFile
=
Yii
::
getAlias
(
'@'
.
str_replace
(
'\\'
,
'/'
,
$className
)
.
'.php'
);
```
```
For example, if a class name is
`foo\bar\MyClass`
, the
[
alias
](
concept-aliases.md
)
for the corresponding class file path
Por ejemplo, si el nombre de una clase es
`foo\bar\MyClass`
, el
[
alias
](
concept-aliases.md
)
la correspondiente ruta de
would be
`@foo/bar/MyClass.php`
. In order for this alias to be able to be resolved into a file path,
archivo de la clase sería
`@foo/bar/MyClass.php`
. Para que este sea capaz de ser resuelto como una ruta de archivo, ya sea
either
`@foo`
or
`@foo/bar`
must be a
[
root alias
](
concept-aliases.md#defining-aliase
s
)
.
`@foo`
o
`@foo/bar`
debe ser un
[
alias de raíz
](
concept-aliases.md#defining-aliases
)
(
root
alia
s).
When you are using the
[
Basic Application Template
](
start-basic.md
)
, you may put your classes under the top-level
Cuando utilizas la
[
Plantilla de Aplicación Básica
](
start-basic.md
)
, puede que pongas tus clases bajo el nivel superior
namespace
`app`
so that they can be autoloaded by Yii without the need of defining a new alias. This is because
de espacio de nombres
`app`
para que de esta manera pueda ser automáticamente cargado por Yii sin tener la necesidad de
`@app`
is a
[
predefined alias
](
concept-aliases.md#predefined-aliases
)
, and a class name like
`app\components\MyClass`
definir un nuevo alias. Esto es porque
`@app`
es un
[
alias predefinido
](
concept-aliases.md#predefined-aliases
)
, y el
can be resolved into the class file
`AppBasePath/components/MyClass.php`
, according to the algorithm we just described.
nombre de una clase tal como
`app\components\MyClass`
puede ser resuelto en el archivo de la clase
`AppBasePath/components/MyClass.php`
,
de acuerdo con el algoritmo previamente descrito.
In the
[
Advanced Application Template
](
tutorial-advanced-app.md
)
, each tier has its own root alias. For example,
En la
[
Plantilla de Aplicación Avanzada
](
tutorial-advanced-app.md
)
, cada nivel tiene su propio alias. Por ejemplo, el nivel
the front-end tier has a root alias
`@frontend`
while the back-end tier
`@backend`
. As a result, you may
`front-end`
tiene un alias de raíz
`@frontend`
mientras que el nivel
`back-end`
tiene
`@backend`
. Como resultado, es posible
p
ut the front-end classes under the namespace
`frontend`
while the back-end classes under
`backend`
. This will
p
oner las clases
`front-end`
bajo el espacio de nombres
`frontend`
mientras que las clases
`back-end`
pueden hacerlo bajo
allow these classes to be autoloaded by the Yii autoloader
.
`backend`
. Esto permitirá que estas clases sean automaticamente cargadas por el autocargador de Yii
.
Class Map
<a name="class-map"></a>
Mapa de Clases
<a name="class-map"></a>
---------
---------
-----
The Yii class autoloader supports the
*class map*
feature which maps class names to the corresponding class file paths.
El autocargador de clases de Yii soporta el
*mapa de clases*
, que mapea nombres de clases to sus correpondientes rutas de
When the autoloader is loading a class, it will first check if the class is found in the map. If so, the corresponding
archvios. Cuando el autocargador esta cargando una clase, primero chequeará si la clase se encuentra en el mapa. Si es así,
file path will be included directly without further check. This makes class autoloading super fast. In fact,
el correspondiente archivo será incluido directamente sin más comprobación. Esto hace que la clase se cargue muy rápidamente.
all core Yii classes are being autoloaded this way
.
De hecho, todas las clases de Yii son autocargadas de esta manera
.
You may add a class to the class map
`Yii::$classMap`
as follows
,
Puedes añadir una clase al mapa de clases
`Yii::$classMap`
de la siguiente forma
,
```
php
```
php
Yii
::
$classMap
[
'foo\bar\MyClass'
]
=
'path/to/MyClass.php'
;
Yii
::
$classMap
[
'foo\bar\MyClass'
]
=
'path/to/MyClass.php'
;
```
```
[
Aliases
](
concept-aliases.md
)
can be used to specify class file paths. You should set the class map in the
[
Alias
](
concept-aliases.md
)
puede ser usado para especificar la ruta de archivos de clases. Deberías iniciar el mapeo de
[
bootstrapping
](
runtime-bootstrapping.md
)
process so that the map is ready before your classes are used.
clases en el proceso
[
bootstrapping
](
runtime-bootstrapping.md
)
de la aplicación para que de esta manera el mapa esté listo
antes de que tus clases sean usadas.
Us
ing Other Autoloader
s <a name="using-other-autoloaders"></a>
Us
ando otros Autocargadore
s <a name="using-other-autoloaders"></a>
-----------------------
-----------------------
----
Because Yii embraces Composer as a package dependency manager, it is recommended that you also instal
l
Debido a que Yii incluye Composer como un gestor de dependencias y extensions, es recomendado que también instales e
l
the Composer autoloader. If you are using some 3rd-party libraries that have their autoloaders, you should
autocargador de Composer. Si estás usando alguna librería externa que requiere sus autocargadores, también deberías
also install them
.
instalarlos
.
When you are using the Yii autoloader together with other autoloaders, you should include the
`Yii.php`
file
Cuando se utiliza el cargador de clases automático de Yii conjuntamente con otros autocargadores, deberías incluir el
*after*
all other autoloaders are installed. This will make the Yii autoloader to be the first one responding to
archivo
`Yii.php`
*después*
de que todos los demás autocargadores se hayan instalado. Esto hará que el autocargador de
any class autoloading request. For example, the following code is extracted from
Yii sea el primero en responder a cualquier petición de carga automática de clases. Por ejemplo, el siguiente código ha
the
[
entry script
](
structure-entry-scripts.md
)
of the
[
Basic Application Template
](
start-basic.md
)
. The first
sido extraido del
[
script de entrada
](
structure-entry-scripts.md
)
de la
[
Plantilla de Aplicación Básica
](
start-basic.md
)
.
line installs the Composer autoloader, while the second line installs the Yii autoloader
.
La primera línea instala el autocargador de Composer, mientras que la segunda línea instala el autocargador de Yii
.
```
php
```
php
require
(
__DIR__
.
'/../vendor/autoload.php'
);
require
(
__DIR__
.
'/../vendor/autoload.php'
);
require
(
__DIR__
.
'/../vendor/yiisoft/yii2/Yii.php'
);
require
(
__DIR__
.
'/../vendor/yiisoft/yii2/Yii.php'
);
```
```
You may use the Composer autoloader alone without the Yii autoloader. However, by doing so, the performanc
e
Puedes usar el autocargador de Composer sin el autocargador de Yii. Sin embargo, al hacerlo, la eficacia de la carga d
e
of your class autoloading may be degraded, and you must follow the rules set by Composer in order for your classes
tus clases puede que se degrade, y además deberías seguir las reglas establecidas por Composer para que tus clases pudieran
to be autoloadable
.
ser autocargables
.
>
Info: If you do not want to use the Yii autoloader, you must create your own version of the `Yii.php` fil
e
>
Nota: Si no deseas utilizar el autocargador de Yii, tendrás que crear tu propia versión del archivo `Yii.php`
e
and include it in your
[
entry script
](
structure-entry-scripts.md
)
.
incluirlo en tu
[
script de entrada
](
structure-entry-scripts.md
)
.
Autoloading Extension Class
es <a name="autoloading-extension-classes"></a>
Carga Automática de Clases de Extension
es <a name="autoloading-extension-classes"></a>
-----------------------------
-----------------------------
------------
The Yii autoloader is capable of autoloading
[
extension
](
structure-extensions.md
)
classes. The sole requirement
El autocargador de Yii es capaz de autocargar clases de
[
extensiones
](
structure-extensions.md
)
. El único requirimiento es
is that an extension specifies the
`autoload`
section correctly in its
`composer.json`
file. Please refer to the
que la extensión especifique correctamente la sección de
`autoload`
(autocarga) en su archivo
`composer.json`
. Por favor,
[
Composer documentation
](
https://getcomposer.org/doc/04-schema.md#autoload
)
for more details about specifying
`autoload`
.
consulta la
[
documentación de Composer
](
https://getcomposer.org/doc/04-schema.md#autoload
)
para más detalles acerca de la
especificación
`autoload`
.
In case you do not use the Yii autoloader, the Composer autoloader can still autoload extension classes for you.
En el caso de que no quieras usar el autocargador de Yii, el autocargador de Composer podría cargar las clases de extensiones
por tí.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment