Commit de1a2322 by Alexander Makarov

Merge pull request #6625 from pana1990/guide-es

[skip ci] Guide es
parents a57aeb2a 047a0ffc
......@@ -16,12 +16,12 @@ Un gestor de eventos es una
[llamada de retorno PHP (PHP callback)](http://php.net/manual/es/language.types.callable.php) que se ejecuta cuando se
lanza el evento al que corresponde. Se puede usar cualquier llamada de retorno de las enumeradas a continuación:
- una función de PHP global especificada como una cadena de texto (sin paréntesis), p. ej. `'trim'`;
- una función de PHP global especificada como una cadena de texto (sin paréntesis), ej. `'trim'`;
- un método de objeto especificado como un array de un objeto y un nombre de método como una cadena de texto
(sin paréntesis), p. ej. `[$object, 'methodNAme']`;
(sin paréntesis), ej. `[$object, 'methodNAme']`;
- un método de clase estático especificado como un array de un nombre de clase y un método como una cadena de texto
(sin paréntesis), p. ej. `[$class, 'methodName']`;
- una función anónima, p. ej. `function ($event) { ... }`.
(sin paréntesis), ej. `[$class, 'methodName']`;
- una función anónima, ej. `function ($event) { ... }`.
La firma de un gestor de eventos es:
......@@ -284,8 +284,8 @@ Yii::$app->trigger('bar', new Event(['sender' => new Foo]));
Un beneficio de usar eventos globales es que no se necesita un objeto cuando se adjuntan gestores a un evento para que
sean lanzados por el objeto. En su lugar, los gestores adjuntos y el lanzamiento de eventos se efectúan en el
Singleton (p. ej. la instancia de la aplicación).
Singleton (ej. la instancia de la aplicación).
Sin embargo, debido a que los `namespaces` de los eventos globales son compartidos por todas partes, se les deben
asignar nombres bien pensados, como puede ser la introducción de algún `namespace`
(p. ej. "frontend.mail.sent", "backend.mail.sent").
(ej. "frontend.mail.sent", "backend.mail.sent").
......@@ -2,7 +2,7 @@
===========
En PHP, las variables miembro de clases también llamadas *propiedades*, son parte de la definición de la clase, y se
usan para representar el estado de una instancia de la clase (p. ej. para diferenciar una instancia de clase de otra).
usan para representar el estado de una instancia de la clase (ej. para diferenciar una instancia de clase de otra).
A la práctica, a menudo, se puede querer gestionar la lectura o escritura de las propiedades de algunos momentos. Por
ejemplo, se puede querer eliminar los espacios en blanco (trim) de una cadena de texto cada vez que esta se asigne a
una propiedad de tipo `label`. Se *podría* usar el siguiente código para realizar esta tarea:
......
......@@ -20,7 +20,7 @@ De forma predeterminada, Yii soporta los siguientes DBMS (Sistemas de Gestión d
[bug](http://jira.cubrid.org/browse/APIS-658) en la extensión PDO de cubrid, los valores entrecomillados no
funcionarán, por lo que se necesita CUBRID 9.3 tanto para el cliente como para el servidor)
- [Oracle](http://www.oracle.com/us/products/database/overview/index.html)
- [MSSQL](https://www.microsoft.com/en-us/sqlserver/default.aspx): versión 2005 o superior.
- [MSSQL](https://www.microsoft.com/en-us/sqlserver/default.aspx): versión 2008 o superior.
Configuración
-------------
......@@ -114,8 +114,8 @@ $connection = new \yii\db\Connection([
$connection->open();
```
> Tip: Si se necesita ejecutar una consulta SQL inmediatamente después de establecer la conexión
(p. ej. para establecer la zona horaria (timezone) o juego de caracteres), se puede añadir el siguiente código en el
> Consejo: Si se necesita ejecutar una consulta SQL inmediatamente después de establecer la conexión
(ej. para establecer la zona horaria (timezone) o el juego de caracteres), se puede añadir el siguiente código en el
archivo de configuración de la aplicación:
>
```php
......@@ -135,7 +135,7 @@ return [
];
```
Ejecución de Consultas SQL Basicas
Ejecución de Consultas SQL Básicas
----------------------------------
Una vez instanciada una conexión a la base de datos, se pueden ejecutar consultas SQL usando [[yii\db\Command]].
......@@ -180,7 +180,7 @@ $command->execute();
```
De forma alternativa, se pueden usar los métodos `insert`, `update`, y `delete`. Estos métodos se encargarán de
gestionar entrecomillar adecuadamente el nombre de la tabla y de las columnas que se usen en la consulta, y solo se
gestionar el entrecomillado de los nombres de las tablas y de las columnas que se usen en la consulta, y solo se
tendrá que proporcionar los valores necesarios.
[[Se tiene que poner el enlace de documentación aquí.]]
......@@ -206,10 +206,10 @@ $connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execu
$connection->createCommand()->delete('user', 'status = 0')->execute();
```
Entrecomillado de Nombre de Tablas y Columnas
---------------------------------------------
Entrecomillado de los Nombres de las Tablas y las Columnas <a name="quoting-table-and-column-names"></a>
----------------------------------------------------------
Para hacer que los nombres de columnas y tablas sean seguros para usarse en consultas, se puede utilizar Yii
Para hacer que los nombres de las columnas y las tablas sean seguros para usarse en las consultas, se puede utilizar Yii
adecuadamente para que los entrecomille:
```php
......@@ -220,7 +220,7 @@ $rowCount = $connection->createCommand($sql)->queryScalar();
En el código anterior, se convertirá `[[$column]]` a un nombre de columna debidamente entrecomillado, mientras que se
convertirá `{{table}}` a un nombre de tabla debidamente entrecomillado.
Hay una variante especial de esta sintaxis especifica para que los nombres de tablas: `{{%Y}}` añade automáticamente
Hay una variante especial de esta sintaxis especifica para que los nombres de las tablas: `{{%Y}}` añade automáticamente
el prefijo de la tabla de la aplicación para proporcionar un valor, si se ha establecido un prefijo de tabla:
```php
......@@ -244,7 +244,7 @@ return [
];
```
La alternativa es entrecomillar los nombres de tabla y columna manualmente usando
La alternativa es entrecomillar los nombres de las tablas y las columnas manualmente usando
[[yii\db\Connection::quoteTableName()]] y [[yii\db\Connection::quoteColumnName()]]:
```php
......@@ -342,12 +342,12 @@ try {
```
Tenga en cuanta que el DBMS debe soportar Puntos de Registro (Savepoints) para que funcionen correctamente. El código
anterior, trabajará con cualquier DBMS pero las sólo se garantizarán las transacciones que se ejecuten bajo un DBMS
anterior, trabajará con cualquier DBMS pero sólo se garantizarán las transacciones que se ejecuten bajo un DBMS
que las soporte.
Yii también soporta la configuración de [niveles de aislamiento] en las transacciones. Cuando empiece una transacción
se ejecutará con el nivel predeterminado de aislamiento definido por la base de datos. Se puede especificar un nivel
de aislamiento especifico cuando se empieza una transacción:
de aislamiento específico cuando se empieza una transacción:
```php
$transaction = $connection->beginTransaction(\yii\db\Transaction::REPEATABLE_READ);
......@@ -379,7 +379,7 @@ conflictos de configuración. En este momento se ven afectados los DBMS MSSQL y
[isolation levels]: http://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Isolation_levels
Replicas y División Lectura-Escritura
Réplicas y División Lectura-Escritura
-------------------------------------
Muchos DBMS soportan
......@@ -406,7 +406,7 @@ el componente [[yii\db\Connection]] como se muestra a continuación:
'username' => 'slave',
'password' => '',
'attributes' => [
// use a smaller connection timeout
// utiliza un tiempo de espera de conexión más pequeña
PDO::ATTR_TIMEOUT => 10,
],
],
......@@ -422,7 +422,7 @@ el componente [[yii\db\Connection]] como se muestra a continuación:
```
La configuración anterior especifica una configuración con un único maestro y múltiples esclavos. Uno de los esclavos
se conectará y se usará para ejecutar consultas de lectura mientras que el maestro se usara para realizar consultas de
se conectará y se usará para ejecutar consultas de lectura mientras que el maestro se usará para realizar consultas de
escritura. De este modo la división de lectura-escritura se logra automáticamente con esta configuración, Por ejemplo,
```php
......@@ -442,7 +442,7 @@ $db->createCommand("UPDATE user SET username='demo' WHERE id=1")->execute();
El componente `Connection` soporta el balanceo de carga y la conmutación de errores entre esclavos. Cuando se realiza
una consulta de lectura por primera vez, el componente `Connection` elegirá un esclavo aleatorio e intentará realizar
una conexión a este. Si está "muerto", se intentara con otro. Si no está disponible ningún esclavo, se conectará al
una conexión a este. Si está "muerto", se intentará con otro. Si no está disponible ningún esclavo, se conectará al
maestro. Configurando una [[yii\db\Connection::serverStatusCache|server status cache]], se recordarán los servidores
"muertos" por lo que no se intentará volver a conectar a ellos durante
[[yii\db\Connection::serverRetryInterval|certain period of time]].
......@@ -462,7 +462,7 @@ También se pueden configurar múltiples parámetros para múltiples esclavos. P
'username' => 'master',
'password' => '',
'attributes' => [
// use a smaller connection timeout
// utilizar un tiempo de espera de conexión más pequeña
PDO::ATTR_TIMEOUT => 10,
],
],
......@@ -478,7 +478,7 @@ También se pueden configurar múltiples parámetros para múltiples esclavos. P
'username' => 'slave',
'password' => '',
'attributes' => [
// use a smaller connection timeout
// utilizar un tiempo de espera de conexión más pequeña
PDO::ATTR_TIMEOUT => 10,
],
],
......@@ -499,7 +499,7 @@ cuando no se encuentra ningún maestro disponible se lanza una excepción.
> Nota: cuando se usa la propiedad [[yii\db\Connection::masters|masters]] para configurar uno o múltiples maestros, se
ignorarán todas las otras propiedades que especifiquen una conexión de base de datos
(p. ej. `dsn`, `username`, `password`), junto con el mismo objeto `Connection`.
(ej. `dsn`, `username`, `password`), junto con el mismo objeto `Connection`.
Las conexiones usan la conexión de maestro de forma predeterminada. Y todas las operaciones de BBDD que estén dentro
de una transacción, usaran la conexión de maestro. Por ejemplo,
......@@ -560,7 +560,7 @@ Para hacer referencia al esquema entero, se puede revisar [[yii\db\Schema]].
### Modificación de esquemas
Aparte de consultas SQL basicas, [[yii\db\Command]] contiene un conjunto de métodos que permiten modificar el esquema
Aparte de consultas SQL básicas, [[yii\db\Command]] contiene un conjunto de métodos que permiten modificar el esquema
de la base de datos:
- createTable, renameTable, dropTable, truncateTable
......@@ -572,7 +572,7 @@ de la base de datos:
Que pueden usarse como se muestra a continuación:
```php
// CREATE TABLE
// CREAR TABLA
$connection->createCommand()->createTable('post', [
'id' => 'pk',
'title' => 'string',
......
......@@ -81,9 +81,9 @@ $query->select(['id', 'name'])
cadena de texto de otra columna, puede ser que la expresión se divida en varias partes por comas, esto puede
conllevar a errores.
Cuando se especifican columnas, se pueden incluir los prefijos de las tablas o alias de columnas, p. ej. `user.id`,
Cuando se especifican columnas, se pueden incluir los prefijos de las tablas o alias de columnas, ej. `user.id`,
`user.id AS user_id`. Si se usa un array para especificar las columnas, también se pueden usar las claves del array
para especificar los alias de columna, p. ej. `['user_id' => 'user.id', 'user_name' => 'user.name']`.
para especificar los alias de columna, ej. `['user_id' => 'user.id', 'user_name' => 'user.name']`.
A partir de la versión 2.0.1, también se pueden seleccionar subconsultas como columnas. Por ejemplo:
......@@ -109,7 +109,7 @@ $query->select('*')->from('user');
```
Se pueden especificar múltiples tablas usando una cadena de texto separado por comas o un array. Los nombres de tablas
pueden contener prefijos de esquema (p. ej. `'public.user'`) y/o alias de tablas (p. ej. `'user u'). El método
pueden contener prefijos de esquema (ej. `'public.user'`) y/o alias de tablas (ej. `'user u'). El método
entrecomillara automáticamente los nombres de tablas a menos que contengan algún paréntesis (que significa que se
proporciona la tabla como una subconsulta o una expresión de BD). Por ejemplo:
......
......@@ -48,8 +48,8 @@ gestión adicional que se debe conocer:
[atributos booleanos](http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes).
- Los valores de los atributos se codificaran en HTML usando [[yii\helpers\Html::encode()|Html::encode()]].
- El atributo "data" puede recibir un array. En este caso, se "expandirá" y se renderizará una lista de atributos
`data` p. ej. `'data' => ['id' => 1, 'name' => 'yii']` se convierte en `data-id="1" data-name="yii"`.
- El atributo "data" puede recibir JSON. Se gestionará de la misma manera que un array p. ej.
`data` ej. `'data' => ['id' => 1, 'name' => 'yii']` se convierte en `data-id="1" data-name="yii"`.
- El atributo "data" puede recibir JSON. Se gestionará de la misma manera que un array ej.
`'data' => ['params' => ['id' => 1, 'name' => 'yii'], 'status' => 'ok']` se convierte en
`data-params='{"id":1,"name":"yii"}' data-status="ok"`.
......
......@@ -38,7 +38,7 @@ para crear una URL:
$url = Url::toRoute(['product/view', 'id' => 42]);
```
Se puede especificar la ruta como una cadena de texto, p. ej. `site/index`. También se puede usar un array si se
Se puede especificar la ruta como una cadena de texto, ej. `site/index`. También se puede usar un array si se
quieren especificar parámetros para la URL que se esta generando. El formato del array debe ser:
```php
......@@ -53,14 +53,14 @@ Si se quiere crear una URL con un enlace, se puede usar el formato de array con
['site/index', 'param1' => 'value1', '#' => 'name']
```
Una ruta puede ser absoluta o relativa. Una ruta absoluta tiene una barra al principio (p. ej. `/site/index`),
mientras que una ruta relativa no la tiene (p. ej. `site/index` o `index`). Una ruta relativa se convertirá en una
Una ruta puede ser absoluta o relativa. Una ruta absoluta tiene una barra al principio (ej. `/site/index`),
mientras que una ruta relativa no la tiene (ej. `site/index` o `index`). Una ruta relativa se convertirá en una
ruta absoluta siguiendo las siguientes normas:
- Si la ruta es una cadena vacía, se usará la [[\yii\web\Controller::route|route]] actual;
- Si la ruta no contiene barras (p. ej. `index`), se considerará que es el ID de una acción del controlador actual y
- Si la ruta no contiene barras (ej. `index`), se considerará que es el ID de una acción del controlador actual y
se antepondrá con [[\yii\web\Controller::uniqueId]];
- Si la ruta no tiene barra inicial (p. ej. `site/index`), se considerará que es una ruta relativa del modulo actual y
- Si la ruta no tiene barra inicial (ej. `site/index`), se considerará que es una ruta relativa del modulo actual y
se le antepondrá el [[\yii\base\Module::uniqueId|uniqueId]] del modulo.
A continuación se muestran varios ejemplos del uso de este método:
......
......@@ -4,7 +4,7 @@
Yii incluye un [[yii\web\ErrorHandler|error handler]] que permite una gestión de errores mucho más práctica que
anteriormente. En particular, el gestor de errores de Yii hace lo siguiente para mejorar la gestión de errores:
* Todos los errores no fatales (p. ej. advertencias (warning), avisos (notices)) se convierten en excepciones
* Todos los errores no fatales (ej. advertencias (warning), avisos (notices)) se convierten en excepciones
capturables.
* Las excepciones y los errores fatales de PHP se muestran con una pila de llamadas (call stack) de información
detallada y lineas de código fuente.
......
......@@ -12,7 +12,7 @@ Usar el framework de registro de anotaciones de Yii involucra los siguientes pas
* Configurar los [destinos de las anotaciones](#log-targets) en la configuración de la aplicación para filtrar y
exportar los mensajes de las anotaciones;
* Examinar los mensajes filtrados de los las anotaciones exportadas para diferentes destinos
(p. ej. [Yii debugger](tool-debugger.md)).
(ej. [Yii debugger](tool-debugger.md)).
En esta sección, se describirán principalmente los dos primeros pasos.
......
......@@ -70,7 +70,7 @@ A continuación se explicarán más detalladamente las propiedades del [[yii\web
* [[yii\web\AssetBundle::js|js]]: un array lista los archivos JavaScript que contiene este bundle. Tenga en cuenta que
solo deben usarse las barras invertidas "/" como separadores de directorios. Cada archivo Javascrpt se puede
especificar en uno de los siguientes formatos:
- una ruta relativa que represente un archivo local JavaScript (p. ej. `js/main.js`). La ruta actual del fichero
- una ruta relativa que represente un archivo local JavaScript (ej. `js/main.js`). La ruta actual del fichero
se puede determinar anteponiendo [[yii\web\AssetManager::basePath]] a la ruta relativa, y la URL actual de un
archivo puede ser determinada anteponiendo [[yii\web\AssetManager::baseUrl]] a la ruta relativa.
- un URL absoluta que represente un archivo JavaScript externo. Por ejemplo,
......
......@@ -190,7 +190,7 @@ aplicaciones Yii pueden saber que extensiones están instaladas. (se puede acced
La extensión depende de Yii (por supuesto). Por ello se debe añadir (`yiisoft/yii2`) a la lista en la entrada
`required` del archivo `composer.json`. Si la extensión también depende de otras extensiones o de terceras
(third-party) librerías, también se deberán listar. Debemos asegurarnos de anotar las restricciones de versión
apropiadas (p. ej. `1.*`, `@stable`) para cada paquete dependiente. Se deben usar dependencias estables en versiones
apropiadas (ej. `1.*`, `@stable`) para cada paquete dependiente. Se deben usar dependencias estables en versiones
estables de nuestras extensiones.
La mayoría de paquetes JavaScript/CSS se gestionan usando [Bower](http://bower.io/) y/o [NPM](https://www.npmjs.org/),
......@@ -358,7 +358,7 @@ pruebas unitarias (unit tests), pruebas de aceptación (acceptance tests) y prue
#### Versiones <a name="versioning"></a>
Se debe asignar un número de versión cada vez que se lance una nueva distribución. (p. ej. `1.0.1`). Recomendamos
Se debe asignar un número de versión cada vez que se lance una nueva distribución. (ej. `1.0.1`). Recomendamos
seguir la práctica [Versionamiento Semántico](http://semver.org/lang/es/) para determinar que números se deben usar.
#### Lanzamientos <a name="releasing"></a>
......@@ -367,7 +367,7 @@ Para dar a conocer nuestra extensión a terceras personas, debemos lanzara al pÃ
Si es la primera vez que se realiza un lanzamiento de una extensión, debemos registrarla en un repositorio Composer
como puede ser [Packagist](https://packagist.org/). Después de estos, todo lo que tenemos que hacer es crear una
etiqueta (tag) (p. ej. `v1.0.1`) en un repositorio con VCS (Sistema de Control de Versiones) y notificarle al
etiqueta (tag) (ej. `v1.0.1`) en un repositorio con VCS (Sistema de Control de Versiones) y notificarle al
repositorio Composer el nuevo lanzamiento. Entonces la gente podrá encontrar el nuevo lanzamiento y instalar o
actualizar la extensión a mediante el repositorio Composer.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment