jakharbek
6 years ago
committed by
GitHub
22 changed files with 604 additions and 87 deletions
@ -0,0 +1,205 @@ |
|||||||
|
Yii 2.0 الدليل التقني الخاص ببيئة العمل |
||||||
|
=============================== |
||||||
|
|
||||||
|
تم تحرير هذا الملف اعتمادا على [الشروط الخاصة بتوثيف ال Yii](http://www.yiiframework.com/doc/terms/). |
||||||
|
|
||||||
|
جميع الحقوق محفوظة |
||||||
|
|
||||||
|
2014 (c) Yii Software LLC. |
||||||
|
|
||||||
|
|
||||||
|
المقدمة |
||||||
|
------------ |
||||||
|
|
||||||
|
* [عن بيئة العمل Yii](intro-yii.md) |
||||||
|
* [التحديث من الإصدار 1.1](../guide/intro-upgrade-from-v1.md) |
||||||
|
|
||||||
|
|
||||||
|
البداية من هنا |
||||||
|
--------------- |
||||||
|
|
||||||
|
* [ماذا يجب أن تعرف عن بيئة العمل](start-prerequisites.md) |
||||||
|
* [تنصيب ال Yii](../guide/start-installation.md) |
||||||
|
* [تشغيل وتطبيق بيئة العمل](../guide/start-workflow.md) |
||||||
|
* [قل مرحبا - المشروع الأول](../guide/start-hello.md) |
||||||
|
* [العمل مع ال forms](../guide/start-forms.md) |
||||||
|
* [العمل مع قواعد البيانات](../guide/start-databases.md) |
||||||
|
* [إنشاء الشيفرة البرمجية من خلال ال gii](../guide/start-gii.md) |
||||||
|
* [ماذا الآن - الخطوة القادمة](../guide/start-looking-ahead.md) |
||||||
|
|
||||||
|
|
||||||
|
الهيكلية الخاصة بالتطبيق (Application Structure) |
||||||
|
--------------------- |
||||||
|
|
||||||
|
* [نظرة عامة عن الهيكلية الخاصة بالتطبيق](../guide/structure-overview.md) |
||||||
|
* [Entry Scripts](../guide/structure-entry-scripts.md) |
||||||
|
* [التطبيقات](../guide/structure-applications.md) |
||||||
|
* [مكونات التطبيقات](../guide/structure-application-components.md) |
||||||
|
* [Controllers](../guide/structure-controllers.md) |
||||||
|
* [Models](../guide/structure-models.md) |
||||||
|
* [Views](../guide/structure-views.md) |
||||||
|
* [Modules](../guide/structure-modules.md) |
||||||
|
* [Filters](../guide/structure-filters.md) |
||||||
|
* [Widgets](../guide/structure-widgets.md) |
||||||
|
* [Assets](../guide/structure-assets.md) |
||||||
|
* [Extensions](../guide/structure-extensions.md) |
||||||
|
|
||||||
|
|
||||||
|
التعامل مع ال requests |
||||||
|
----------------- |
||||||
|
|
||||||
|
* [نظرة عامة عن التعامل مع ال requests](../guide/runtime-overview.md) |
||||||
|
* [Bootstrapping](../guide/runtime-bootstrapping.md) |
||||||
|
* [Routing and URL Creation](../guide/runtime-routing.md) |
||||||
|
* [Requests](../guide/runtime-requests.md) |
||||||
|
* [Responses](../guide/runtime-responses.md) |
||||||
|
* [Sessions and Cookies](../guide/runtime-sessions-cookies.md) |
||||||
|
* [Handling Errors - التحكم بالأخطاء](../guide/runtime-handling-errors.md) |
||||||
|
* [Logging - تسجيل الحركات](../guide/runtime-logging.md) |
||||||
|
|
||||||
|
|
||||||
|
المفاهيم الرئيسية (Key Concepts) |
||||||
|
------------ |
||||||
|
|
||||||
|
* [Components](../guide/concept-components.md) |
||||||
|
* [Properties](../guide/concept-properties.md) |
||||||
|
* [Events](../guide/concept-events.md) |
||||||
|
* [Behaviors](../guide/concept-behaviors.md) |
||||||
|
* [Configurations](../guide/concept-configurations.md) |
||||||
|
* [Aliases](../guide/concept-aliases.md) |
||||||
|
* [Class Autoloading](../guide/concept-autoloading.md) |
||||||
|
* [Service Locator](../guide/concept-service-locator.md) |
||||||
|
* [Dependency Injection Container](../guide/concept-di-container.md) |
||||||
|
|
||||||
|
|
||||||
|
التعامل مع قواعد البيانات |
||||||
|
---------------------- |
||||||
|
|
||||||
|
* [Database Access Objects](../guide/db-dao.md): Connecting to a database, basic queries, transactions, and schema manipulation |
||||||
|
* [Query Builder](../guide/db-query-builder.md): Querying the database using a simple abstraction layer |
||||||
|
* [Active Record](../guide/db-active-record.md): The Active Record ORM, retrieving and manipulating records, and defining relations |
||||||
|
* [Migrations](../guide/db-migrations.md): Apply version control to your databases in a team development environment |
||||||
|
* [Sphinx](https://www.yiiframework.com/extension/yiisoft/yii2-sphinx/doc/guide) |
||||||
|
* [Redis](https://www.yiiframework.com/extension/yiisoft/yii2-redis/doc/guide) |
||||||
|
* [MongoDB](https://www.yiiframework.com/extension/yiisoft/yii2-mongodb/doc/guide) |
||||||
|
* [ElasticSearch](https://www.yiiframework.com/extension/yiisoft/yii2-elasticsearch/doc/guide) |
||||||
|
|
||||||
|
|
||||||
|
الحصول على البيانات من خلال المستخدمين |
||||||
|
----------------------- |
||||||
|
|
||||||
|
* [Creating Forms](../guide/input-forms.md) |
||||||
|
* [Validating Input](../guide/input-validation.md) |
||||||
|
* [Uploading Files](../guide/input-file-upload.md) |
||||||
|
* [Collecting Tabular Input](../guide/input-tabular-input.md) |
||||||
|
* [Getting Data for Multiple Models](../guide/input-multiple-models.md) |
||||||
|
* [Extending ActiveForm on the Client Side](../guide/input-form-javascript.md) |
||||||
|
|
||||||
|
|
||||||
|
عرض البيانات |
||||||
|
--------------- |
||||||
|
|
||||||
|
* [Data Formatting](../guide/output-formatting.md) |
||||||
|
* [Pagination](../guide/output-pagination.md) |
||||||
|
* [Sorting](../guide/output-sorting.md) |
||||||
|
* [Data Providers](../guide/output-data-providers.md) |
||||||
|
* [Data Widgets](../guide/output-data-widgets.md) |
||||||
|
* [Working with Client Scripts](../guide/output-client-scripts.md) |
||||||
|
* [Theming](../guide/output-theming.md) |
||||||
|
|
||||||
|
|
||||||
|
الامان والحماية |
||||||
|
-------- |
||||||
|
|
||||||
|
* [Security Overview](../guide/security-overview.md) |
||||||
|
* [Authentication](../guide/security-authentication.md) |
||||||
|
* [Authorization](../guide/security-authorization.md) |
||||||
|
* [Working with Passwords](../guide/security-passwords.md) |
||||||
|
* [Cryptography](../guide/security-cryptography.md) |
||||||
|
* [Auth Clients](https://www.yiiframework.com/extension/yiisoft/yii2-authclient/doc/guide) |
||||||
|
* [Best Practices](../guide/security-best-practices.md) |
||||||
|
|
||||||
|
|
||||||
|
Caching التخزين المؤقت |
||||||
|
------- |
||||||
|
|
||||||
|
* [Caching Overview](../guide/caching-overview.md) |
||||||
|
* [Data Caching](../guide/caching-data.md) |
||||||
|
* [Fragment Caching](../guide/caching-fragment.md) |
||||||
|
* [Page Caching](../guide/caching-page.md) |
||||||
|
* [HTTP Caching](../guide/caching-http.md) |
||||||
|
|
||||||
|
|
||||||
|
RESTful Web Services |
||||||
|
-------------------- |
||||||
|
|
||||||
|
* [Quick Start](../guide/rest-quick-start.md) |
||||||
|
* [Resources](../guide/rest-resources.md) |
||||||
|
* [Controllers](../guide/rest-controllers.md) |
||||||
|
* [Routing](../guide/rest-routing.md) |
||||||
|
* [Response Formatting](../guide/rest-response-formatting.md) |
||||||
|
* [Authentication](../guide/rest-authentication.md) |
||||||
|
* [Rate Limiting](../guide/rest-rate-limiting.md) |
||||||
|
* [Versioning](../guide/rest-versioning.md) |
||||||
|
* [Error Handling](../guide/rest-error-handling.md) |
||||||
|
|
||||||
|
|
||||||
|
الأدوات المساعدة أثناء تطوير التطبيقات |
||||||
|
----------------- |
||||||
|
|
||||||
|
* [Debug Toolbar and Debugger](https://www.yiiframework.com/extension/yiisoft/yii2-debug/doc/guide) |
||||||
|
* [Generating Code using Gii](https://www.yiiframework.com/extension/yiisoft/yii2-gii/doc/guide) |
||||||
|
* [Generating API Documentation](https://www.yiiframework.com/extension/yiisoft/yii2-apidoc) |
||||||
|
|
||||||
|
|
||||||
|
فحص واختبار التطبيقات |
||||||
|
------- |
||||||
|
|
||||||
|
* [Testing Overview](../guide/test-overview.md) |
||||||
|
* [Testing environment setup](../guide/test-environment-setup.md) |
||||||
|
* [Unit Tests](../guide/test-unit.md) |
||||||
|
* [Functional Tests](../guide/test-functional.md) |
||||||
|
* [Acceptance Tests](../guide/test-acceptance.md) |
||||||
|
* [Fixtures](../guide/test-fixtures.md) |
||||||
|
|
||||||
|
|
||||||
|
مواضيع وعناوين مميزة |
||||||
|
-------------- |
||||||
|
|
||||||
|
* [Advanced Project Template](https://www.yiiframework.com/extension/yiisoft/yii2-app-advanced/doc/guide) |
||||||
|
* [Building Application from Scratch](../guide/tutorial-start-from-scratch.md) |
||||||
|
* [Console Commands](../guide/tutorial-console.md) |
||||||
|
* [Core Validators](../guide/tutorial-core-validators.md) |
||||||
|
* [Docker](../guide/tutorial-docker.md) |
||||||
|
* [Internationalization](../guide/tutorial-i18n.md) |
||||||
|
* [Mailing](../guide/tutorial-mailing.md) |
||||||
|
* [Performance Tuning](../guide/tutorial-performance-tuning.md) |
||||||
|
* [Shared Hosting Environment](../guide/tutorial-shared-hosting.md) |
||||||
|
* [Template Engines](../guide/tutorial-template-engines.md) |
||||||
|
* [Working with Third-Party Code](../guide/tutorial-yii-integration.md) |
||||||
|
* [Using Yii as a micro framework](../guide/tutorial-yii-as-micro-framework.md) |
||||||
|
|
||||||
|
|
||||||
|
Widgets |
||||||
|
------- |
||||||
|
|
||||||
|
* [GridView](https://www.yiiframework.com/doc-2.0/yii-grid-gridview.html) |
||||||
|
* [ListView](https://www.yiiframework.com/doc-2.0/yii-widgets-listview.html) |
||||||
|
* [DetailView](https://www.yiiframework.com/doc-2.0/yii-widgets-detailview.html) |
||||||
|
* [ActiveForm](https://www.yiiframework.com/doc-2.0/guide-input-forms.html#activerecord-based-forms-activeform) |
||||||
|
* [Pjax](https://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html) |
||||||
|
* [Menu](https://www.yiiframework.com/doc-2.0/yii-widgets-menu.html) |
||||||
|
* [LinkPager](https://www.yiiframework.com/doc-2.0/yii-widgets-linkpager.html) |
||||||
|
* [LinkSorter](https://www.yiiframework.com/doc-2.0/yii-widgets-linksorter.html) |
||||||
|
* [Bootstrap Widgets](https://www.yiiframework.com/extension/yiisoft/yii2-bootstrap/doc/guide) |
||||||
|
* [jQuery UI Widgets](https://www.yiiframework.com/extension/yiisoft/yii2-jui/doc/guide) |
||||||
|
|
||||||
|
|
||||||
|
Helpers |
||||||
|
------- |
||||||
|
|
||||||
|
* [Helpers Overview](../guide/helper-overview.md) |
||||||
|
* [ArrayHelper](../guide/helper-array.md) |
||||||
|
* [Html](../guide/helper-html.md) |
||||||
|
* [Url](../guide/helper-url.md) |
||||||
|
|
@ -0,0 +1,20 @@ |
|||||||
|
Tests de aceptación |
||||||
|
=================== |
||||||
|
|
||||||
|
Un test de aceptación verifica escenarios desde la perspectiva de un usuario. |
||||||
|
Se accede a la aplicación testeada por medio de PhpBrowser o de un navegador de verdad. |
||||||
|
En ambos casos los navegadores se comunican vía HTTP así que la aplicación debe ser |
||||||
|
servida por un servidor web. |
||||||
|
|
||||||
|
Los tests de aceptación se implementan con ayuda del _framework_ Codeception, que tiene |
||||||
|
una buena documentación: |
||||||
|
|
||||||
|
- [Codeception para el _framework_ Yii](http://codeception.com/for/yii) |
||||||
|
- [Tests funcionales de Codeception](http://codeception.com/docs/04-FunctionalTests) |
||||||
|
|
||||||
|
## Ejecución de tests en las plantillas básica y avanzada |
||||||
|
|
||||||
|
Si ha empezado con la plantilla avanzada, consulte la [guía de testeo](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-testing.md) |
||||||
|
para más detalles sobre la ejecución de tests. |
||||||
|
|
||||||
|
Si ha empezado con la plantilla básica, consulte la [sección sobre testeo de su README](https://github.com/yiisoft/yii2-app-basic/blob/master/README.md#testing). |
@ -1,11 +1,25 @@ |
|||||||
Tests Funcionales |
Tests funcionales |
||||||
================= |
================= |
||||||
|
|
||||||
> Note: Esta sección se encuentra en desarrollo. |
Los tests funcionales verifican escenarios desde la perspectiva de un usuario. |
||||||
|
Son similares a los [tests de aceptación](test-acceptance.md) pero en lugar de |
||||||
|
comunicarse vía HTTP rellena el entorno como parámetros POST y GET y después ejecuta |
||||||
|
una instancia de la aplicación directamente desde el código. |
||||||
|
|
||||||
- [Tests Funcionales de Codeception](http://codeception.com/docs/04-FunctionalTests) |
Los tests funcionales son generalmente más rápidos que los tests de aceptación y |
||||||
|
proporcionan _stack traces_ detalladas en los fallos. |
||||||
|
Como regla general, debería preferirlos salvo que tenga una configuración de servidor |
||||||
|
web especial o una interfaz de usuario compleja en Javascript. |
||||||
|
|
||||||
Ejecutar test funcionales de templates básicos y avanzados |
Las pruebas funcionales se implementan con ayuda del _framework_ Codeception, que tiene |
||||||
---------------------------------------------------------- |
una buena documentación: |
||||||
|
|
||||||
Por favor consulta las instrucciones provistas en `apps/advanced/tests/README.md` y `apps/basic/tests/README.md`. |
- [Codeception para el _framework_ Yii](http://codeception.com/for/yii) |
||||||
|
- [Tests funcionales de Codeception](http://codeception.com/docs/04-FunctionalTests) |
||||||
|
|
||||||
|
## Ejecución de tests en las plantillas básica y avanzada |
||||||
|
|
||||||
|
Si ha empezado con la plantilla avanzada, consulte la [guía de testeo](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-testing.md) |
||||||
|
para más detalles sobre la ejecución de tests. |
||||||
|
|
||||||
|
Si ha empezado con la plantilla básica, consulte la [sección sobre testeo de su README](https://github.com/yiisoft/yii2-app-basic/blob/master/README.md#testing). |
||||||
|
@ -0,0 +1,80 @@ |
|||||||
|
Tests |
||||||
|
===== |
||||||
|
|
||||||
|
Las pruebas son una parte importante del desarrollo de software. Seamos conscientes |
||||||
|
de ello o no, ralizamos pruebas contínuamente. |
||||||
|
Por ejemplo, cuando escribimos una clase en PHP, podemos depurarla paso a paso o |
||||||
|
simplemente usar declaraciones `echo` o `die` para verificar que la implementación |
||||||
|
funciona conforme a nuestro plan inicial. En el caso de una aplicación web, introducimos |
||||||
|
algunos datos de prueba en los formularios para asegurarnos de que la página interactúa |
||||||
|
con nosotros como esperábamos. |
||||||
|
|
||||||
|
El proceso de testeo se puede automatizar para que cada vez que necesitemos verificar |
||||||
|
algo, solamente necesitemos invocar el código que lo hace por nosotros. El código que |
||||||
|
verifica que el restulado coincide con lo que habíamos planeado se llama *test* y el proceso |
||||||
|
de su creación y posterior ejecución es conocido como *testeo automatizado*, que es el |
||||||
|
principal tema de estos capítulos sobre testeo. |
||||||
|
|
||||||
|
|
||||||
|
## Desarrollo con tests |
||||||
|
|
||||||
|
El Desarrollo Dirigido por Pruebas (_Test-Driven Development_ o TDD) y el Desarrollo |
||||||
|
Dirigido por Corpotamientos (_Behavior-Driven Development_ o BDD) son enfoques para |
||||||
|
desarrollar software, en los que se describe el comportamiento de un trozo de código |
||||||
|
o de toda la funcionalidad como un conjunto de escenarios o pruebas antes de escribir |
||||||
|
el código real y sólo entonces crear la implementación que permite pasar esos tests |
||||||
|
verificando que se ha logrado el comportamiento pretendido. |
||||||
|
|
||||||
|
El proceso de desarrollo de una funcionalidad es el siguiente: |
||||||
|
|
||||||
|
- Crear un nuevo test que describe una funcionalidad a implementar. |
||||||
|
- Ejecutar el nuevo test y asegurarse de que falla. Esto es lo esperado, dado que todavía no hay ninguna implementación. |
||||||
|
- Escribir un código sencillo para superar el nuevo test. |
||||||
|
- Ejecutar todos los tests y asegurarse de que se pasan todos. |
||||||
|
- Mejorar el código y asegurarse de que los tests siguen superándose. |
||||||
|
|
||||||
|
Una vez hecho, se repite el proceso de neuvo para otra funcionalidad o mejora. |
||||||
|
Si se va a cambiar la funcionalidad existente, también hay que cambiar los tests. |
||||||
|
|
||||||
|
> Tip: Si siente que está perdiendo tiempo haciendo un montón de iteraciones pequeñas |
||||||
|
> y simples, intente cubrir más por cada escenario de test, de modo que haga más cosas antes |
||||||
|
> de ejecutar los tests de nuevo. Si está depurando demasiado, intente hacer lo contrario. |
||||||
|
|
||||||
|
La razón para crear los tests antes de hacer ninguna implementación es que eso nos permite |
||||||
|
centrarnos en lo que queremos alcanzar y sumergirnos totalmente en «cómo hacerlo» después. |
||||||
|
Normalmente conduce a mejores abstracciones y a un más fácil mantenimiento de los tests |
||||||
|
cuando toque hacer ajustes a las funcionalidades o componentes menos acoplados. |
||||||
|
|
||||||
|
Para resumir, las ventajas de este enfoque son las siguientes: |
||||||
|
|
||||||
|
- Le mantiene centrado en una sola cosa en cada momento, lo que resulta en una mejor planificación e implementación. |
||||||
|
- Resulta en más funcionalidades cubiertas por tests, y en mayor detalle. Es decir, si se superan los tests, lo más problable es que no haya nada roto. |
||||||
|
|
||||||
|
A largo plazo normalmente tiene como efecto un buen ahorro de tiempo. |
||||||
|
|
||||||
|
## Qué y cómo probar |
||||||
|
|
||||||
|
Aunque el enfoque de primero los tests descrito arriba tiene sentido para el largo plazo |
||||||
|
y proyectos relativamente complejos, sería excesivo para proyectos más simples. |
||||||
|
Hay algunas indicaciones de cuándo es apropiado: |
||||||
|
|
||||||
|
- El proyecto ya es grande y complejo. |
||||||
|
- Los requisitos del proyecto están empezando a hacerse complejos. El proyecto crece constantemente. |
||||||
|
- El proyecto pretende a ser a largo plazo. |
||||||
|
- El coste de fallar es demasiado alto. |
||||||
|
|
||||||
|
No hay nada malo en crear tests que cubran el comportamiento de una implementación existente. |
||||||
|
|
||||||
|
- Es un proyecto legado que se va a renovar gradualmente. |
||||||
|
- Le han dado un proyecto sobre el que trabajar y no tiene tests. |
||||||
|
|
||||||
|
En algunos casos cualquier forma de testo automatizado sería exagerada: |
||||||
|
|
||||||
|
- El proyecto es sencillo y no se va a volver más complejo. |
||||||
|
- Es un proyecto puntual en el que no se seguirá trabajando. |
||||||
|
|
||||||
|
De todas formas, si dispone de tiempo, es bueno automatizar las pruebas también en esos casos. |
||||||
|
|
||||||
|
## Más lecturas |
||||||
|
|
||||||
|
- Test Driven Development: By Example / Kent Beck. ISBN: 0321146530. |
@ -1,25 +1,25 @@ |
|||||||
Tests de Unidad |
Pruebas unitarias |
||||||
=============== |
================= |
||||||
|
|
||||||
> Note: Esta sección se encuentra en desarrollo. |
Un test unitario se encarga de verificar que una unidad simple de código funcione como se espera. |
||||||
|
Esto decir, dados diferentes parámetros de entrada, el test verifica que el método |
||||||
|
de la clase devuelve el resultado esperado. |
||||||
|
Normalmente los tests unitarios son desarrollados por la persona que escribe las clases testeadas. |
||||||
|
|
||||||
Un test de unidad se encarga de verificar que una unidad simple de código funcione como se espera. En la programación orientada a objetos, |
Los tests unitarios en Yii están construidos en base a PHPUnit y, opcionalmente, Codeception, por lo que se recomienda consultar su respectiva documentación: |
||||||
la unidad de código más básica es una clase. Por lo tanto, un test de unidad necesita verificar que cada método de la interfaz de la clase funciona apropiadamente. |
|
||||||
Esto quiere decir que, dando diferentes parámetros de entrada, el test verifica que el método devuelve el resultado esperado. |
|
||||||
Los tests de unidad son normalmente desarrollados por la persona que escribe las clases siendo testeadas. |
|
||||||
|
|
||||||
Los tests de unidad en Yii están construidos en base a PHPUnit y opcionalmente, Codeception, por lo que se recomineda consultar su respectiva documentación: |
- [Codeception para el _framework_ Yii](http://codeception.com/for/yii) |
||||||
|
- [Tests unitarios con Codeception](http://codeception.com/docs/05-UnitTests) |
||||||
|
- [Documentación de PHPUnit, empezando por el capítulo 2](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html) |
||||||
|
|
||||||
- [Documentación de PHPUnit comienza en el capítulo 2](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html). |
## Ejecución de tests en las plantillas básica y avanzada |
||||||
- [Tests de Unidad con Codeception](http://codeception.com/docs/05-UnitTests). |
|
||||||
|
|
||||||
Ejecutar test de unidad de templates básicos y avanzados |
Si ha empezado con la plantilla avanzada, consulte la [guía de testeo](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-testing.md) |
||||||
-------------------------------------------------------- |
para más detalles sobre la ejecución de tests. |
||||||
|
|
||||||
Por favor consulta las instrucciones provistas en `apps/advanced/tests/README.md` y `apps/basic/tests/README.md`. |
Si ha empezado con la plantilla básica, consulte la [sección sobre testeo de su README](https://github.com/yiisoft/yii2-app-basic/blob/master/README.md#testing). |
||||||
|
|
||||||
Test de unidad del Framework |
##Tests unitarios del framework |
||||||
---------------------------- |
|
||||||
|
|
||||||
Si quieres ejecutar tests de unidad para Yii en sí, consulta |
Si desea ejecutar tests unitarios para el framework Yii en sí, consulte |
||||||
"[Comenzando a desarrollar con Yii 2](https://github.com/yiisoft/yii2/blob/master/docs/internals/getting-started.md)". |
«[Comenzando con el desarrollo de Yii 2](https://github.com/yiisoft/yii2/blob/master/docs/internals/getting-started.md)». |
||||||
|
@ -1,3 +1,37 @@ |
|||||||
<form id="w0"> |
<form id="w0"> |
||||||
<input id="name" type="text" name="name" value=""> |
<input id="name" type="text" name="name" value=""> |
||||||
</form> |
</form> |
||||||
|
|
||||||
|
<form id="w1"> |
||||||
|
<fieldset disabled=""> |
||||||
|
<div class="form-group required"> |
||||||
|
<label class="control-label" for="test_text">Test text</label> |
||||||
|
<input type="text" id="test_text" class="form-control" name="Test[text]" aria-required="true"> |
||||||
|
<div class="help-block"></div> |
||||||
|
</div> |
||||||
|
</fieldset> |
||||||
|
|
||||||
|
<fieldset disabled=""> |
||||||
|
<div class="form-group required"> |
||||||
|
<label class="control-label">Test radio</label> |
||||||
|
<input type="hidden" name="Test[radio]" value=""> |
||||||
|
<div id="test_radio" aria-required="true"> |
||||||
|
<label><input type="radio" name="Test[radio]" value="1"> Test1</label> |
||||||
|
<label><input type="radio" name="Test[radio]" value="0"> Test2</label> |
||||||
|
</div> |
||||||
|
<div class="help-block"></div> |
||||||
|
</div> |
||||||
|
</fieldset> |
||||||
|
|
||||||
|
<fieldset disabled=""> |
||||||
|
<div class="form-group required"> |
||||||
|
<label class="control-label">Test checkbox</label> |
||||||
|
<input type="hidden" name="Test[checkbox]" value=""> |
||||||
|
<div id="test_checkbox" aria-required="true"> |
||||||
|
<label><input type="checkbox" name="Test[checkbox][]" value="1"> Test1</label> |
||||||
|
<label><input type="checkbox" name="Test[checkbox][]" value="0"> Test2</label> |
||||||
|
</div> |
||||||
|
<div class="help-block"></div> |
||||||
|
</div> |
||||||
|
</fieldset> |
||||||
|
</form> |
Loading…
Reference in new issue