Nette Documentation Preview

syntax
¡Cree su primera aplicación!
****************************

.[perex]
Conozca Nette Framework mientras crea un blog sencillo con comentarios. ¡Empecemos!

Tras los dos primeros capítulos tendrá su propio blog funcionando y estará listo para publicar sus estupendos artículos, aunque las funcionalidades serán bastante limitadas después de completar solo esos dos capítulos. Debería leer también los capítulos siguientes, en los que implementaremos la adición de comentarios, la edición de artículos y, por último, la protección del blog.

.[tip]
Este tutorial da por hecho que ha completado el documento de [instalación |nette:installation] y que ha configurado con éxito sus herramientas. También da por hecho que entiende la [programación orientada a objetos en PHP |nette:introduction-to-object-oriented-programming].

Use PHP 8.1 o superior. La aplicación completa la encontrará [en GitHub |https://github.com/nette-examples/quickstart/tree/v4.0].


La página de bienvenida
=======================

Empecemos creando un proyecto nuevo en el directorio `nette-blog`:

```shell
composer create-project nette/web-project nette-blog
```

En este momento debería estar funcionando la página de bienvenida del Web Project. Pruébelo abriendo el navegador y yendo a la siguiente URL:

```
http://localhost/nette-blog/www/
```

y debería ver la página de bienvenida de Nette Framework:

[* qs-welcome.webp .{url: http://localhost/nette-blog/www/} *]

La aplicación funciona y ya puede empezar a hacerle cambios.

.[note]
Si tiene algún problema, [pruebe estos consejos |nette:troubleshooting#Nette no funciona, se muestra una página en blanco].


Contenido del Web Project
=========================

El Web Project tiene la siguiente estructura:

/--pre
<b>nette-blog/</b>
├── <b>app/</b>              ← directorio de la aplicación
│   ├── <b>Core/</b>         ← clases básicas necesarias
│   ├── <b>Presentation/</b> ← presenters, plantillas y demás
│   │   └── <b>Home/</b>     ← directorio del presenter Home
│   └── <b>Bootstrap.php</b> ← clase de arranque Bootstrap
├── <b>assets/</b>           ← recursos en bruto (SCSS, TypeScript, imágenes fuente)
├── <b>bin/</b>              ← scripts para la línea de comandos
├── <b>config/</b>           ← archivos de configuración
├── <b>log/</b>              ← registros de errores
├── <b>temp/</b>             ← archivos temporales, caché, …
├── <b>vendor/</b>           ← bibliotecas instaladas por Composer
│   └── <b>autoload.php</b>  ← carga automática de todos los paquetes instalados
└── <b>www/</b>              ← carpeta pública, el único lugar accesible desde el navegador
    ├── <b>assets/</b>       ← archivos estáticos compilados (CSS, JS, imágenes, …)
    └── <b>index.php</b>     ← archivo inicial que arranca la aplicación
\--

El directorio `www/` está pensado para guardar imágenes, archivos JavaScript, estilos CSS y otros archivos accesibles públicamente. Es el único directorio accesible directamente desde internet, así que configure el document root de su servidor web para que apunte aquí (puede configurarlo en Apache o Nginx, pero hagámoslo más tarde, porque ahora mismo no es crucial).

El directorio más importante para usted es `app/`. Aquí encontrará el archivo `Bootstrap.php`, que contiene una clase que carga el framework y configura la aplicación. Activa la [carga automática |robot-loader:], prepara el [depurador |tracy:] y configura las [rutas |application:routing].


Limpieza
========

El Web Project contiene una página de bienvenida que eliminaremos antes de empezar a programar. Sustituya sin miedo el contenido del archivo `app/Presentation/Home/default.latte` por "Hello world!".


[* qs-hello.webp .{url:-} *]


Tracy (el depurador)
====================

Una herramienta extremadamente importante para el desarrollo es la [herramienta de depuración Tracy |tracy:]. Pruebe a introducir un error en su archivo `app/Presentation/Home/HomePresenter.php` (p. ej. elimine una llave de la definición de la clase `HomePresenter`) y vea qué pasa. Aparecerá una página de pantalla roja con una descripción comprensible del error.

[* qs-tracy.avif .{url:-}(debugger screen) *]

Tracy le ayudará muchísimo a depurar errores. Fíjese también en la Tracy Bar flotante de la esquina inferior derecha de la pantalla, que muestra información importante de la ejecución.

[* qs-tracybar.webp .{url:-} *]

En modo de producción, Tracy está, por supuesto, desactivada y no muestra ninguna información sensible. Todos los errores se guardan en el directorio `log/`. Vamos a probarlo. En el archivo `app/Bootstrap.php` busque el siguiente fragmento de código, descomente la línea y cambie el parámetro de la llamada al método a `false`, de modo que quede así:

```php .{file:app/Bootstrap.php}
// ...
$this->configurator->setDebugMode(false);
```

Tras recargar la página web ya no verá la pantalla roja. En su lugar se mostrará un mensaje amable para el usuario:

[* qs-fatal.webp .{url:-}(error screen) *]

Ahora mire en el directorio `log/`. Aquí (en el archivo `exception.log`) encontrará el error registrado y también la conocida página con el mensaje de error (guardada como archivo HTML con un nombre que empieza por `exception-`).

Vuelva a comentar la línea `// $this->configurator->setDebugMode(false);`. Tracy activa automáticamente el modo de desarrollo en un entorno `localhost` y lo desactiva en los demás.

Ahora podemos arreglar el error que introdujimos y seguir construyendo nuestra aplicación.


Dar las gracias
===============

Le enseñamos un truco que alegrará a los autores de código abierto. Puede dar fácilmente una estrella en GitHub a las bibliotecas que usa su proyecto. Basta con ejecutar:

```shell
composer thanks
```

¡Pruébelo!

{{priority: -1}}

¡Cree su primera aplicación!

Conozca Nette Framework mientras crea un blog sencillo con comentarios. ¡Empecemos!

Tras los dos primeros capítulos tendrá su propio blog funcionando y estará listo para publicar sus estupendos artículos, aunque las funcionalidades serán bastante limitadas después de completar solo esos dos capítulos. Debería leer también los capítulos siguientes, en los que implementaremos la adición de comentarios, la edición de artículos y, por último, la protección del blog.

Este tutorial da por hecho que ha completado el documento de instalación y que ha configurado con éxito sus herramientas. También da por hecho que entiende la programación orientada a objetos en PHP.

Use PHP 8.1 o superior. La aplicación completa la encontrará en GitHub.

La página de bienvenida

Empecemos creando un proyecto nuevo en el directorio nette-blog:

composer create-project nette/web-project nette-blog

En este momento debería estar funcionando la página de bienvenida del Web Project. Pruébelo abriendo el navegador y yendo a la siguiente URL:

http://localhost/nette-blog/www/

y debería ver la página de bienvenida de Nette Framework:

La aplicación funciona y ya puede empezar a hacerle cambios.

Si tiene algún problema, pruebe estos consejos.

Contenido del Web Project

El Web Project tiene la siguiente estructura:

nette-blog/
├── app/              ← directorio de la aplicación
│   ├── Core/         ← clases básicas necesarias
│   ├── Presentation/ ← presenters, plantillas y demás
│   │   └── Home/     ← directorio del presenter Home
│   └── Bootstrap.php ← clase de arranque Bootstrap
├── assets/           ← recursos en bruto (SCSS, TypeScript, imágenes fuente)
├── bin/              ← scripts para la línea de comandos
├── config/           ← archivos de configuración
├── log/              ← registros de errores
├── temp/             ← archivos temporales, caché, …
├── vendor/           ← bibliotecas instaladas por Composer
│   └── autoload.php  ← carga automática de todos los paquetes instalados
└── www/              ← carpeta pública, el único lugar accesible desde el navegador
    ├── assets/       ← archivos estáticos compilados (CSS, JS, imágenes, …)
    └── index.php     ← archivo inicial que arranca la aplicación

El directorio www/ está pensado para guardar imágenes, archivos JavaScript, estilos CSS y otros archivos accesibles públicamente. Es el único directorio accesible directamente desde internet, así que configure el document root de su servidor web para que apunte aquí (puede configurarlo en Apache o Nginx, pero hagámoslo más tarde, porque ahora mismo no es crucial).

El directorio más importante para usted es app/. Aquí encontrará el archivo Bootstrap.php, que contiene una clase que carga el framework y configura la aplicación. Activa la carga automática, prepara el depurador y configura las rutas.

Limpieza

El Web Project contiene una página de bienvenida que eliminaremos antes de empezar a programar. Sustituya sin miedo el contenido del archivo app/Presentation/Home/default.latte por „Hello world!“.

Tracy (el depurador)

Una herramienta extremadamente importante para el desarrollo es la herramienta de depuración Tracy. Pruebe a introducir un error en su archivo app/Presentation/Home/HomePresenter.php (p. ej. elimine una llave de la definición de la clase HomePresenter) y vea qué pasa. Aparecerá una página de pantalla roja con una descripción comprensible del error.

debugger screen

Tracy le ayudará muchísimo a depurar errores. Fíjese también en la Tracy Bar flotante de la esquina inferior derecha de la pantalla, que muestra información importante de la ejecución.

En modo de producción, Tracy está, por supuesto, desactivada y no muestra ninguna información sensible. Todos los errores se guardan en el directorio log/. Vamos a probarlo. En el archivo app/Bootstrap.php busque el siguiente fragmento de código, descomente la línea y cambie el parámetro de la llamada al método a false, de modo que quede así:

// ...
$this->configurator->setDebugMode(false);

Tras recargar la página web ya no verá la pantalla roja. En su lugar se mostrará un mensaje amable para el usuario:

error screen

Ahora mire en el directorio log/. Aquí (en el archivo exception.log) encontrará el error registrado y también la conocida página con el mensaje de error (guardada como archivo HTML con un nombre que empieza por exception-).

Vuelva a comentar la línea // $this->configurator->setDebugMode(false);. Tracy activa automáticamente el modo de desarrollo en un entorno localhost y lo desactiva en los demás.

Ahora podemos arreglar el error que introdujimos y seguir construyendo nuestra aplicación.

Dar las gracias

Le enseñamos un truco que alegrará a los autores de código abierto. Puede dar fácilmente una estrella en GitHub a las bibliotecas que usa su proyecto. Basta con ejecutar:

composer thanks

¡Pruébelo!