Browse Source

Spanish docs [skip ci] (#11649)

ar-bug
Luciano Baraglia 8 years ago committed by Paul Klimov
parent
commit
0a7514eac8
  1. 72
      docs/guide-es/output-pagination.md
  2. 31
      docs/guide-es/security-passwords.md
  3. 53
      docs/guide-es/start-looking-ahead.md
  4. 18
      docs/guide-es/start-workflow.md

72
docs/guide-es/output-pagination.md

@ -0,0 +1,72 @@
Paginación
==========
Cuando hay muchos datos a mostrar en una sola página, una estrategia común es mostrarlos en varias
páginas y en cada una de ellas mostrar sólo una pequeña porción de datos. Esta estrategia es conocida como *paginación*.
Yii utiliza el objeto [[yii\data\Pagination]] para representar la información acerca del esquema de paginación. En particular,
* [[yii\data\Pagination::$totalCount|cuenta total]] especifica el número total de ítems de datos. Ten en cuenta que
este es normalmente un número mucho mayor que el número de ítems necesarios a mostrar en una simple página.
* [[yii\data\Pagination::$pageSize|tamaño de página]] especifica cuántos ítems de datos contiene cada página. El valor
por defecto es 20.
* [[yii\data\Pagination::$page|página actual]] da el número de la página actual (comenzando desde 0). El valor
por defecto es 0, lo que sería la primera página.
Con un objeto [[yii\data\Pagination]] totalmente especificado, puedes obtener y mostrar datos en partes. Por ejemplo,
si estás recuperando datos de una base de datos, puedes especificar las cláusulas `OFFSET` y `LIMIT` de la consulta a la BD
correspondientes a los valores provistos por la paginación. A continuación hay un ejemplo,
```php
use yii\data\Pagination;
// construye una consulta a la BD para obtener todos los artículos con status = 1
$query = Article::find()->where(['status' => 1]);
// obtiene el número total de artículos (pero no recupera los datos de los artículos todavía)
$count = $query->count();
// crea un objeto paginación con dicho total
$pagination = new Pagination(['totalCount' => $count]);
// limita la consulta utilizando la paginación y recupera los artículos
$articles = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
```
¿Qué página de artículos devolverá el ejemplo de arriba? Depende de si se le es pasado un parámetro llamado `page`.
Por defecto, la paginación intentará definir la [[yii\data\Pagination::$page|página actual]] con
el valor del parámetro `page`. Si el parámetro no es provisto, entonces tomará por defecto el valor 0.
Para facilitar la construcción de elementos UI que soporten paginación, Yii provee el widget [[yii\widgets\LinkPager]],
que muestra una lista de botones de navegación que el usuario puede presionar para indicar qué página de datos debería mostrarse.
El widget toma un objeto de paginación y tal manera conoce cuál es la página actual y cuántos botones
debe mostrar. Por ejemplo,
```php
use yii\widgets\LinkPager;
echo LinkPager::widget([
'pagination' => $pagination,
]);
```
Si quieres construir los elementos de UI manualmente, puedes utilizar [[yii\data\Pagination::createUrl()]] para generar URLs que
dirigirán a las distintas páginas. El método requiere un parámetro de página y generará una URL apropiadamente formada
contieniendo el parámetro de página. Por ejemplo,
```php
// especifica la ruta que la URL generada debería utilizar
// Si no lo especificas, se utilizará la ruta de la petición actual
$pagination->route = 'article/index';
// muestra: /index.php?r=article%2Findex&page=100
echo $pagination->createUrl(100);
// muestra: /index.php?r=article%2Findex&page=101
echo $pagination->createUrl(101);
```
> Tip: puedes personalizar el parámetro `page` de la consulta configurando
la propiedad [[yii\data\Pagination::pageParam|pageParam]] al crear el objeto de la paginación.

31
docs/guide-es/security-passwords.md

@ -0,0 +1,31 @@
Trabajar con Passwords
======================
La mayoría de los desarrolladores saben que los passwords no deben ser guardados en texto plano, pero muchos desarrolladores aún creen
que es seguro aplicar a los passowrds hash `md5` o `sha1`. Hubo un tiempo cuando utilizar esos algoritmos de hash mencionados era suficiente,
pero el hardware moderno hace posible que ese tipo de hash e incluso más fuertes, puedan revertirse rápidamente utilizando ataques de fuerza bruta.
Para poder proveer de una seguridad mayor para los passwords de los usuarios, incluso en el peor de los escenarios (tu aplicación sufre una brecha de seguridad),
necesitas utilizar un algoritmo que resista los ataques de fuerza bruta. La mejor elección actualmente es `bcrypt`.
En PHP, puedes generar un hash `bcrypt` utilizando la [función crypt](http://php.net/manual/en/function.crypt.php). Yii provee
dos funciones auxiliares que hacen que `crypt` genere y verifique los hash más fácilmente.
Cuando un usuario provee un password por primera vez (por ej., en la registración), dicho password necesita ser pasado por un hash:
```php
$hash = Yii::$app->getSecurity()->generatePasswordHash($password);
```
El hash puede estar asociado con el atributo del model correspondiente, de manera que pueda ser almacenado en la base de datos para uso posterior.
Cuando un usuario intenta ingresar al sistema, el password enviado debe ser verificado con el password con hash almacenado previamente:
```php
if (Yii::$app->getSecurity()->validatePassword($password, $hash)) {
// todo en orden, dejar ingresar al usuario
} else {
// password erróneo
}
```

53
docs/guide-es/start-looking-ahead.md

@ -1,32 +1,35 @@
Mirando Hacia Adelante
======================
Hasta ahora, has creado una aplicación completa en Yii, y has aprendido cómo implementar algunas de las características más típicas y necesarias, como la de obtener datos de los usuarios a través de un formulario HTML, y traer datos de la base de datos
para mostrarlos en forma paginada. También has aprendido cómo utilizar la herramienta [Gii](tool-gii.md) para generar
código automáticamente, lo que transforma el hecho de programar en una tarea tan simple como la de completar algunos formularios.
En esta sección, resumiremos los recursos acerca de Yii que ayudan a ser más productivos al utilizar la librería.
Si has leído el capítulo "Comenzando con Yii" completo, has creado una aplicación completa en Yii. En el proceso, has aprendido cómo implementar algunas
características comúnmente necesitadas, tales como obtener datos del usuario a través de formularios HTML, traer datos desde la base de datos,
y mostrar datos utilizando paginación. También has aprendido a utilizar [Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide/README.md) para generar
código automáticamente. Utilizar Gii para la generación de código transforma la carga en el proceso de tu desarrollo Web en una tarea tan simple como solamente completar unos formularios.
Esta sección resumirá los recursos disponibles de Yii que te ayudarán a ser más productivo al utilizar el framework.
* Documentación
- La Guía Definitiva:
Como el nombre indica, la guía precisamente define cómo Yii debería trabajar y te da una guía general
acerca de cómo usar la librería. Este es el tutorial simple más importante de Yii que deberías leer
antes de empezar a escribir código.
- La Referencia de Clases:
Este especifica el uso de cada clase provista por Yii. Debería ser utilizado mayormente cuando estés escribiendo
código y quieras entender el funcionamiento de alguna clase, método o propiedad en particular.
- Artículos de la Wiki:
Estos artículos son escritos por usuarios de Yii basado en experiencias propias. En su mayoría son escritos
como recetas que muestran cómo resolver problemas particulares en Yii. Aunque la calidad de estos artículos
puede ser tan buena como la Guía Definitiva, son particularmente útiles al cubrir aspectos más amplios
y puede a menudo ofrecer soluciones listas para usar.
- Libros
- [La Guía Definitiva](http://www.yiiframework.com/doc-2.0/guide-README.html):
Como su nombre lo indica, la guía define precisamente cómo debería trabajar Yii y provee guías generales
acerca de su utilización. Es el tutorial más importante de Yii, y el que deberías leer
antes de escribir cualquier código en Yii.
- [La Referencia de Clases](http://www.yiiframework.com/doc-2.0/index.html):
Esta especifica el uso de cada clase provista por Yii. Debería ser utilizada principalmente cuando estás escribiendo
código y deseas entender el uso de una clase, método o propiedad en particular. El uso de la referencia de clases es mejor luego de un entendimiento contextual del framework.
- [Los Artículos de la Wiki](http://www.yiiframework.com/wiki/?tag=yii2):
Los artículos de la wiki son escritos por usuarios de Yii basados en sus propias experiencias. La mayoría de ellos están escritos
como recetas de cocina, y muestran cómo resolver problemas particulares utilizando Yii. Si bien la calidad de estos
puede no ser tan buena como la de la Guía Definitiva, son útiles ya que cubren un espectro muy amplio
de temas y puede proveer a menudo soluciones listas para usar.
- [Libros](http://www.yiiframework.com/doc/)
* [Extensiones](http://www.yiiframework.com/extensions/):
Yii cuenta con una librería de cientos de extensiones que han sido provistas por la comunidad de usuarios que pueden ser fácilmente integradas
en tu aplicación y lograr que sea más simple y rápido desarrollarla.
Yii puede hacer alarde de una librería de miles de extensiones contribuidas por usuarios, que pueden fácilmente conectadas a tu aplicación, haciendo que el desarrollo de la misma sea todavía más fácil y rápido.
* Comunidad
- [Foro](http://www.yiiframework.com/forum/)
- [GitHub](https://github.com/yiisoft/yii2)
- [Facebook](https://www.facebook.com/groups/yiitalk/)
- [Twitter](https://twitter.com/yiiframework)
- [LinkedIn](https://www.linkedin.com/groups/yii-framework-1483367)
- Foro: <http://www.yiiframework.com/forum/>
- Chat IRC: El canal #yii en la red freenode (<irc://irc.freenode.net/yii>)
- Chat Gitter: <https://gitter.im/yiisoft/yii2>
- GitHub: <https://github.com/yiisoft/yii2>
- Facebook: <https://www.facebook.com/groups/yiitalk/>
- Twitter: <https://twitter.com/yiiframework>
- LinkedIn: <https://www.linkedin.com/groups/yii-framework-1483367>
- Stackoverflow: <http://stackoverflow.com/questions/tagged/yii2>

18
docs/guide-es/start-workflow.md

@ -11,16 +11,18 @@ y cómo la aplicación maneja los requests en general.
o similar.
Dependiendo de tus necesidades, por favor ajusta dichas URLs.
Ten en cuenta que a diferencia del framework en sí, después de que el template de proyecto es instalado, este es todo tuyo. Eres libre de agregar o eliminar
código modificar todo según tu necesidad.
Funcionalidad <span id="functionality"></span>
-------------
La aplicación básica contiene 4 páginas:
* Página principal, mostrada cuando se accede a la URL `http://hostname/index.php`,
* página principal, mostrada cuando se accede a la URL `http://hostname/index.php`,
* página "Acerca de (About)",
* la página "Contacto (Contact)", que muestra un formulario de contacto que permite a los usuarios
finales contactarse vía email,
* la página "Contacto (Contact)", que muestra un formulario de contacto que permite a los usuarios finales contactarse vía email,
* y la página "Login", que muestra un formulario para loguearse que puede usarse para autenticar usuarios.
Intenta loguearte con "admin/admin", y verás que el elemento "Login" del menú principal cambiará a "Logout".
@ -28,8 +30,11 @@ Estas páginas comparten un encabezado y un pie. El encabezado contiene una barr
la navegación entre las diferentes páginas.
También deberías ver una barra en la parte inferior de la ventana del navegador.
Esta es la útil [herramienta de depuración](tool-debugger.md) provista por Yii para registrar y mostrar mucha información de depuración,
tal como los mensajes de log, response status, las consultas ejecutadas a la base de datos, y más.
Esta es la útil [herramienta de depuración](tool-debugger.md) provista por Yii para registrar y mostrar mucha información de depuración, tal como los mensajes de log, response status, las consultas ejecutadas a la base de datos, y más.
Adicionalmente a la aplicación web, hay un script de consola llamado `yii`, localizado en el directorio base de la aplicación.
El script puede ser utilizado para ejecutar tareas de fondo y tareas de mantenimiento de la aplicación, las cuales son descritas
en la [Sección de Aplicación de Consola](tutorial-console.md).
Estructura de la aplicación <span id="application-structure"></span>
@ -71,7 +76,7 @@ Cada aplicación tiene un script de entrada `web/index.php` que es el único scr
El script de entrada toma una petición (request) entrante y crea una instancia de una [aplicación](structure-applications.md) para manejarlo.
La [aplicación](structure-applications.md) resuelve la petición (request) con la ayuda de sus [componentes](concept-components.md),
y la envía al resto de los elementos MVC. Los [widgets](structure-widgets.md) son usados en las [vistas](structure-views.md)
para ayudar a construir elementos de interfáz complejos y dinámicos.
para ayudar a construir elementos de interfaz complejos y dinámicos.
Ciclo de Vida de una Petición (Request) <span id="request-lifecycle"></span>
@ -94,3 +99,4 @@ El siguiente diagrama muestra cómo una aplicación maneja una petición.
9. La acción renderiza una vista, pasándole los datos del modelo cargado.
10. El resultado de la renderización es pasado al componente [response](runtime-responses.md) de la aplicación.
11. El componente response envía el resultado de la renderización al navegador del usuario.

Loading…
Cancel
Save