Nette Documentation Preview

syntax
Cómo escribir micrositios
*************************

Imagine que necesita crear rápidamente un pequeño sitio web para un próximo evento de su empresa. Debe ser simple, rápido y sin complicaciones innecesarias. Podrías pensar que un proyecto tan pequeño no requiere un framework robusto. Pero, ¿y si el uso del framework Nette puede simplificar y acelerar significativamente este proceso?

Incluso cuando se crean sitios web sencillos, no se quiere renunciar a la comodidad. No quieres reinventar la rueda. Siéntase libre de ser perezoso y mimarse. Nette Framework también puede utilizarse de forma excelente como micro framework.

¿Qué aspecto podría tener un micrositio de este tipo? Por ejemplo, todo el código del sitio web puede colocarse en un único archivo `index.php` en la carpeta pública:

```php
<?php

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');

// crear un contenedor DI basado en la configuración en config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// configurar el enrutamiento
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// ruta para la URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// detectar el idioma del navegador y redirigir a la URL /en o /de etc.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// ruta para URL https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// mostrar la plantilla adecuada, por ejemplo ../templates/es.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// ejecutar la aplicación
$container->getByType(Nette\Application\Application::class)->run();
```

Todo lo demás serán plantillas almacenadas en la carpeta padre `/templates`.

El código PHP en `index.php` primero [configura el entorno |bootstrap:], luego define las [rutas |application:routing#dynamic-routing-with-callbacks] y finalmente ejecuta la aplicación. La ventaja es que el segundo parámetro de la función `addRoute()` puede ser un callable que se ejecuta cuando se abre la página correspondiente.


¿Por qué utilizar Nette para los micrositios? .[#toc-why-use-nette-for-microsites]
----------------------------------------------------------------------------------

- Los desarrolladores que hayan probado alguna vez [Tracy |tracy:] no se imaginan hoy en día codificar sin él.
- Pero sobre todo, utilizarán el sistema de plantillas [Latte |latte:], porque a partir de sólo 2 páginas, querrán separar [maquetación y contenido |latte:template-inheritance].
- Y sin duda querrá confiar en el [escape automático |latte:safety-first] para evitar vulnerabilidades XSS.
- Nette también garantiza que, en caso de error, nunca se mostrarán mensajes de error de PHP, sino una página fácil de usar.
- Si desea obtener comentarios de los usuarios, por ejemplo en forma de formulario de contacto, también puede añadir [formularios |forms:] y [base de datos |database:].
- También puedes hacer que los formularios rellenados se envíen fácilmente [por correo electrónico |mail:].
- A veces puede resultarte útil [el almacenamiento en caché |caching:], por ejemplo, al descargar y mostrar feeds.

En la era actual, en la que la velocidad y la eficacia son fundamentales, es importante contar con herramientas que permitan obtener resultados sin retrasos innecesarios. El framework Nette ofrece precisamente eso: desarrollo rápido, seguridad y una amplia gama de herramientas como Tracy y Latte que simplifican el proceso. Basta con instalar algunos paquetes de Nette, y construir un micrositio de este tipo se convierte en un juego de niños. Y sabes que no hay fallos de seguridad ocultos.

Cómo escribir micrositios

Imagine que necesita crear rápidamente un pequeño sitio web para un próximo evento de su empresa. Debe ser simple, rápido y sin complicaciones innecesarias. Podrías pensar que un proyecto tan pequeño no requiere un framework robusto. Pero, ¿y si el uso del framework Nette puede simplificar y acelerar significativamente este proceso?

Incluso cuando se crean sitios web sencillos, no se quiere renunciar a la comodidad. No quieres reinventar la rueda. Siéntase libre de ser perezoso y mimarse. Nette Framework también puede utilizarse de forma excelente como micro framework.

¿Qué aspecto podría tener un micrositio de este tipo? Por ejemplo, todo el código del sitio web puede colocarse en un único archivo index.php en la carpeta pública:

&lt;?php

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');

// crear un contenedor DI basado en la configuración en config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// configurar el enrutamiento
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// ruta para la URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// detectar el idioma del navegador y redirigir a la URL /en o /de etc.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// ruta para URL https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// mostrar la plantilla adecuada, por ejemplo ../templates/es.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// ejecutar la aplicación
$container->getByType(Nette\Application\Application::class)->run();

Todo lo demás serán plantillas almacenadas en la carpeta padre /templates.

El código PHP en index.php primero configura el entorno, luego define las rutas y finalmente ejecuta la aplicación. La ventaja es que el segundo parámetro de la función addRoute() puede ser un callable que se ejecuta cuando se abre la página correspondiente.

¿Por qué utilizar Nette para los micrositios?

  • Los desarrolladores que hayan probado alguna vez Tracy no se imaginan hoy en día codificar sin él.
  • Pero sobre todo, utilizarán el sistema de plantillas Latte, porque a partir de sólo 2 páginas, querrán separar maquetación y contenido.
  • Y sin duda querrá confiar en el escape automático para evitar vulnerabilidades XSS.
  • Nette también garantiza que, en caso de error, nunca se mostrarán mensajes de error de PHP, sino una página fácil de usar.
  • Si desea obtener comentarios de los usuarios, por ejemplo en forma de formulario de contacto, también puede añadir formularios y base de datos.
  • También puedes hacer que los formularios rellenados se envíen fácilmente por correo electrónico.
  • A veces puede resultarte útil el almacenamiento en caché, por ejemplo, al descargar y mostrar feeds.

En la era actual, en la que la velocidad y la eficacia son fundamentales, es importante contar con herramientas que permitan obtener resultados sin retrasos innecesarios. El framework Nette ofrece precisamente eso: desarrollo rápido, seguridad y una amplia gama de herramientas como Tracy y Latte que simplifican el proceso. Basta con instalar algunos paquetes de Nette, y construir un micrositio de este tipo se convierte en un juego de niños. Y sabes que no hay fallos de seguridad ocultos.