Archivo de la categoría: Sin categoría

Primer Hola Mundo con Symfony

En esta entrada explicaré como crear el ya archiconocido Hola Mundo con el FrameWork de php :Symfony.

En mi caso lo primero que he hecho ha sido instalar composer y git

Una vez instalados abrimos el git bash y ejecutamos

composer create-project holam // esta linea nos crea un proyecto llamado holam mas información aquí
en mi caso una vez creado como quiero comprobar el correcto funcionamiento copio la carpeta del proyecto y la pego en xamppp htdocs.

Symfony está pensado para un diseño modular como si todo fuesen objetos para tomar el control de lo que sucede desde los controladores que creemos ejecutamos

composer require annotations//

ahora nos queda crear el controlador que nos permita realizar las acciones deseadas en nuestro caso escribir en el navegador Hola Mundo

Para eso navegamos a nuestro proyecto en mi caso la ruta es

C:\xampp\htdocs\holam\src\Controller

dentro de esta carpeta creamos el siguiente archivo controlador.php

y dentro de el pegamos el siguiente código

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class controlador
{
/**
* @Route(«/»)
*/
public function home()
{
return new Response(
‘¡Hola mundo con Symfony!’
);
}
}

En muchos lugares indican que el subir una aplicación realizada con symfony es complicado, nada mas lejos de la realidad, en mi caso en el servidor contratado creo una carpeta y subo el proyecto completo creo un subdomininio que apunte a /public/index.php de nuestro proyecto y el resultado puede verse aquí

Inserción de un formulario de contacto

Aquí dejo el código para insertar un sencillo formulario de contacto en nuestra web

 

<?php
$remitente = $_POST[‘email’];
$destinatario = ‘email@email.com’; // en esta línea va el mail del destinatario.
$asunto = ‘Consulta’; // encabezado del email
if (!$_POST){
?>

<?php
}else{

$cuerpo = «Nombre y apellido: » . $_POST[«nombre»] . «\r\n»;
$cuerpo .= «Email: » . $_POST[«email»] . «\r\n»;
$cuerpo .= «Consulta: » . $_POST[«consulta»] . «\r\n»;
//las líneas de arriba definen el contenido del mail. Las palabras que están dentro de $_POST[«»] deben coincidir con el «name» de cada campo.
// Si se agrega un campo al formulario, hay que agregarlo aquí.

$headers = «MIME-Version: 1.0\n»;
$headers .= «Content-type: text/plain; charset=utf-8\n»;
$headers .= «X-Priority: 3\n»;
$headers .= «X-MSMail-Priority: Normal\n»;
$headers .= «X-Mailer: php\n»;
$headers .= «From: \»».$_POST[‘nombre’].» «.$_POST[‘apellido’].»\» <«.$remitente.»>\n»;

mail($destinatario, $asunto, $cuerpo, $headers);

include ‘confirma.html’; //se  referencia a un html que confirma el envío
}
?>

 

el código de arriba se debe guardar en un archivo llamado envia.php y subido al servidor.

dentro de la misma carpeta del servidor hay que guardar el siguiente archivo: confirma.html con el siguiente código, el sript php realiza una llamada al archivo y lo muestra una vez que el mensaje ha sido enviado correctamente

<!DOCTYPE HTML>
<html lang=»es»>
<head>
<meta charset=»utf-8″/>
<title>Formulario</title>
</head>

<body>
Gracias por comunicarse, su mensaje fue enviado correctamente
</body>
</html>

el siguiente código debe copiarse y pegarse dentro de un archivo .html , es la parte que ve el usuario.

<html lang=»es»>
<head>
<meta charset=»utf-8″/>
<title>Formulario</title>
<link href=»styles.css» rel=»stylesheet»>
<link href=’https://fonts.googleapis.com/css?family=Source+Sans+Pro:400′ rel=’stylesheet’ type=’text/css’>
</head>

<body>

<!– formulario de contacto –>

<form action=»envia.php» method=»post» class=»form-consulta»>
<label>Nombre y apellido: <span>*</span>
<input type=»text» name=»nombre» placeholder=»Nombre y apellido» class=»campo-form» required>
</label>

<label>Email: <span>*</span>
<input type=»email» name=»email» placeholder=»Email» class=»campo-form» required>
</label>

<label>Consulta:
<textarea name=»consulta» class=»campo-form»></textarea>
</label>

<input type=»submit» value=»Enviar» class=»btn-form»>
</form>

<!– formulario –>

</body>
</html>