Enviar correos desde Symfony con Swift Mailer
Primero se necesario bajar las clases de Swift Mailer. A parte de las cosas que trae como licencia y ejemplos, lo importante es el directorio lib el cual debe ser copiado en el directorio actions del módulo que enviará los correos. Fragmento de action.class.php
<?php
class mailActions extends sfActions
{
public function executeSendmsg (sfWebRequest $request)
{
// datos para cargar el correo
$title = "el titulo del correo";
$email = "kope@dominio.com";
$from = "sender@dominio.com";
$message = "El cuerpo del mensaje";
$ip = $_SERVER["REMOTE_ADDR"];
$servidor = "smtp.dominio.com";
$puerto = 25;
// lib requerida para la clase de envio de correos
require_once 'lib/swift_required.php';
// Crear objetos y configurar el correo
$msg = Swift_Message::newInstance();
$msg->setSubject ($title);
$msg->setFrom (array ($from => 'Nombre del emisor'));
$msg->setTo (array ($email => 'Destinatario'));
$msg->setBody ($email . ' wrote:<br />'.$message.'<br /><br /><br />From ' . $ip, 'text/html');
$transport = Swift_SmtpTransport::newInstance ($servidor, $puerto);
$transport->setUsername ('usuario');
$transport->setPassword ('p4ssw0rd');
$mailer = Swift_Mailer::newInstance ($transport);
// Enviar el mensaje
$numSent = $mailer->send ($msg);
if ($numSent)
{
// método para notificar el éxito
$this->redirect ('contact/thanks');
} else {
// método para notificar el fracazo
$this->redirect ('contact/fail');
}
}
}
LIKE en SF 1.2 (Propel)
<?php
class AlgunPeer extends BaseAlgunPeer
{
public static function nombre_funcion ($param1)
{
$c = new Criteria();
// is like en SQL
$c->add (AlgunPeer::CAMPO,"%{$param1}%", Criteria::LIKE);
// para no discriminar entre mayúsculas y minúsculas
$c->setIgnoreCase (true);
return AlgunPeer::doSelect ($c);
}
}
?>
Procedimientos almacenados desde Symfony 1.2
Dentro de el modelo Peer
<?php
class EjemploPeer extends BaseEjemploPeer
{
$con = Propel::getConnection(EjemploPeer::DATABASE_NAME);
$sql = "SELECT * FROM procedimiento('". $param1."', '".$param2."');";
$st = $con->prepare($sql);
$st->execute();
return true;
}
?>
Nero