Es mostren els missatges amb l'etiqueta de comentaris php. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris php. Mostrar tots els missatges

dilluns, 5 de març del 2012

Els videotutorials de la deSymfony 2011

PHP és un dels llenguatges més populars per a desenvolupar aplicacions i llocs web. La creació de llocs web acostuma a enfocar-se com la tria d'un gestor de continguts que ens proporcioni un sistema amistós  per a fer pàgines i organitzar-les, i sense haver de preocupar-nos de detalls de baix nivell. En molts casos, ens permeten desenvolupar el lloc sense ni haver de conèixer PHP. Parlo, per exemple de Drupal i derivats, com OpenAtrium,  o Joomla!... N'hi han molts.

Els Gestors de Contingut són extraordinàriament útils justament per al que estan fets: crear, mantenir, organitzar continguts, documents, imatges; organitzar-ne l'accés dels usuaris; llistes de correu; fòrums... tot allò per al que existeixi un mòdul disponible o que es pugui connectar al CMS i que no calgui modificar més enllà de les possibilitats de parametrització que ofereixi.

El problema ve quan els requeriments de l'aplicació web ja no són els relacionats amb la gestió de continguts. En aquest moment, el CMS ja no és útil, o només ho és marginalment. Aleshores cal atacar el desenvolupament de l'aplicació web d'una altre forma. Per descomptat que es pot encarar la construcció d'un lloc web creant des de zero, "from scratch",  totes les pàgines del lloc.

Però en aquest cas segur que ens trobaríem que hem de reinventar la roda contínuament. Un  enfoc més pràctic  seria utilitzar un framework que ens proporcionés unes llibreries, una arquitectura, una estructura i unes capes i patrons ben definits per a desenvolupar el lloc. Encara serem nosaltres els responsables d'escriure les pàgines amb PHP i desenvolupar-ne els requeriments funcionals. Però ja no caldrà que reinventem la roda.

Estic parlant de frameworks com poden ser Spring, Ruby on Rails,  ASP MVC... Tots ells es basen en el patró d'arquitectura MVC (Model View Controller).

Symfony és un dels framework MVC més populars per al llenguatge PHP.

Per a conèixer-lo millor podem revisar aquesta col·lecció de vídeos i tutorials que es van realitzar durant les jornades deSymfony 2011 a la Universitat Jaume I de Castelló, els passats 1,2 i 3 de juliol de 2011. Es tracta d'una recopilació excepcional que ens pot ajudar  molt en la tasca d'iniciar-nos en l'ús de Symfony.

La DeSymphony és la major conferència sobre Symfony en castellà i la segona del món, en valor absolut, després de la Symfony Live que és la conferència oficial de Symfony.

Per a enguany també està prevista la celebració de jornades: la deSymfony 2012  els dies 15 i 16 de juny, a Castelló.

Tots els enllaços estan presos de la pàgina http://www.symfony.es/2011/07/06/desymfony-2011-todos-los-videos-y-presentaciones/. Els reprodueixo a continuació:


Els enllaços porten a les pàgines respectives de symfony.es, a les que està encastat el vídeo corresponent. Els vídeos estan allotjats a vimeo.

Vet aquí els enllaços:


Primer dia (1 de juliol de 2011):


Segon dia (2 de juliol de 2011):


Tercer dia (3 de juliol de 2011):

divendres, 28 d’octubre del 2011

Com instal·lar XAMPP a Ubuntu.

A l'hora de fer presentacions i demos d'aplicacions web, pot ser molt útil disposar d'una versió de la demo en un servidor web en localhost, potser en una clau usb.

També pot ser molt útil un servidor web d'aquest tipus a l'hora de preparar sessions de formació.

És possible trobar per Internet diverses distribucions que d'aquest tipus que combinen Apache amb  MySQL i PHP, tant sobre Linux (LAMP), com sobre Windows (WAMP), per exemple XAMPP o MoWeS Portable.

MoWeS Portable empaqueta, a més de la plataforma AMP, altres aplicacions que utilitzen aquesta infraestructura, com Joomla! o Drupal. Ara bé, MoWeS Portable només està disponible per a Windows.

XAMPP, en canvi, s'ofereix per a Linux i Windows.

En el post d'avuí el que faig és instal·lar el XAMPP a un netbook Linux.

No cal dir que la plataforma AMP es pot instal·lar des del Centre de Programari de l'Ubuntu. Però la instal·lació de XAMPP és encara més senzilla.

Dit i fet. El primer pas és descarregar-se el paquet d'instal·lació. El  puc trobar en aquesta adreça:  http://sourceforge.net/projects/xampp/files/BETAS/xampp-linux-1.7.7.tar.gz/download. Són uns 77MB.

Aquesta versió incorpora:   Apache, MySQL, PHP amb PEAR, Perl, ProFTPD, phpMyAdmin, OpenSSL, GD, Freetype2, libjpeg, libpng, gdbm, zlib, expat, Sablotron, libxml, Ming, Webalizer, pdf class, ncurses, mod_perl, FreeTDS, gettext, mcrypt, mhash, eAccelerator, SQLite i IMAP C-Client.

En particular Apache 2.2.21, MySQL 5.5.16, PHP 5.3.8, i phpMyAdmin 3.4.5.

Per instal·lar  n'hi ha prou amb desempaquetar el tar.gz. Cal tenir en compte que als fitxers d'instal·lació s'assumeix que la home del XAMPP serà /opt/lampp. Això NO vol dir que només es pugui instal·lar en aquesta carpeta. Això l'únic que vol dir és que caldrà que /opt/lampp sigui la "home" del XAMPP i això es podrà aconseguir amb un enllaç simbòlic des de /opt/lampp al directori d'instal·lació que triï.

Si la carpeta de destinació del XAMPP es troba en una clau usb caldrà que aquesta clau estigui formatada amb un sistema de fitxers que permeti els enllaços simbòlics, per exemple  ext2,ext3 o ext4.

A l'hora de fer l'enllaç simbòlic caldrà tenir en compte el punt de muntatge del dispositiu. Per exemple, al meu netbook amb Ubuntu 11.04, el punt de muntatge és /media.

Per a poder instal·lar correctament el XAMPP caldran, a més, permisos de root. I també per a posar en marxa i aturar els diversos components de la distribució.

Tenint en compte tot l'anterior, instal·lo el XAMPP a la meva carpeta home, on he deixat el tar.gz:

sudo tar xvfz xampp-linux-1.7.7.tar.gz -C .

Amb la ordre anterior es crea una carpeta lampp amb els dversos components del XAMPP.

Ara creo l'enllaç simbòlic:

sudo ln -s /home/albert/lampp /opt/lampp

I engego per primer cop el servidor. Aquesta primera arrencada acaba d'instal·lar i configurar els components.

albert@athena:~$ sudo /opt/lampp/lampp start
Starting XAMPP for Linux 1.7.7...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.
albert@athena:~$ 

I per revisar la nova instal·lació en tinc prou amb obrir un navegador i apuntar-lo al localhost:




El directori arrel del servidor web es troba a /opt/lampp/htdocs (en el meu cas, mercès a l'enllaç simbòlic, és /home/albert/lampp/htdocs).

Per aturar el XAMPP puc fer:


albert@athena:~$ sudo /opt/lampp/lampp stop
Stopping XAMPP for Linux 1.7.7...
XAMPP: Stopping Apache with SSL...
XAMPP: Stopping MySQL...
XAMPP: Stopping ProFTPD...
XAMPP stopped.
albert@athena:~$ 

I per a eliminar la instal·lació sense deixar rastres, amb el XAMPP aturat, n'hi ha prou amb fer:

sudo rm -r lampp

És possible engegar i aturar individualment els diversos components del XAMPP. Examinant el fitxer $HOME/lampp/lampp es poden  trobar les diverses opcions disponibles. La forma d'invocar-les, en general, és: 

sudo /opt/lampp/lampp opció

dijous, 12 d’agost del 2010

Com enviar correu amb PHPMailer / 28 gener 2010

Com enviar correu amb PHPMailer

Aquest és un problema típic: com enviar un correu electrònic des d'una aplicació web.

Amb PHP  la resposta típica és: fent servir el PHPMailer.

Vet aquí un exemple: un mini formulari que permet introduir un "Subject" i un "Cos del missatge" i envia aquest missatge a una llista d'adreces de correu. Àquest codi el posem en un fitxer font "enviar.php" que deixem en una carpeta del nostre servidor, en la mateixa carpeta deixarem les classes que composen el PHPMailer, class.phpmailer.php i class.smtp.php. Et voila, ja funciona. Senzill, no?

Bé, ens caldrà també configurar correctament el servidor SMTP. El port estàndar de SMTP és el 25, ara bé, si és SMTP sobre SSL, aleshores és el 465. Vet aquí el codi:

<?php
require("class.phpmailer.php");
header("Cache-Control: no-cache, must-revalidate");
    $mail_address[0] = "compte@eservidor0.cat";
    $mail_address[1] = "
compte@eservidor1.cat";
    $mail_address[2] = "
compte@eservidor2.cat";
    $mail_address[3] = "
compte@eservidor3.cat";    
    $mail_address[4] = "
compte@eservidor4.cat";
    $mail_address[5] = "
compte@eservidor5.cat";
    $mail_address[6] = "
compte@eservidor6.cat";
    $mail_address[7] = "
compte@eservidor7.cat";
    $mail_address[8] = "
compte@eservidor8.cat";
    $mail_address[9] = "
compte@eservidor9.cat"; 

    if (isset($_POST["subject"]) && isset($_POST["body"]) && isset($_POST["boto"])) {
        $subject = $_POST["subject"];
        $body = $_POST["body"];
        $boto = $_POST["boto"];
    } else {
        $subject = "";
        $body = "";
        $boto = "";
    }    
?>
<html>
<head>
<title>Enviament de missatges</title>
</head>
<body bgcolor="#eeeeee">
<center>
<font face="Arial">
<h1>Enviament de missatges</h1>
<br />
<table border="0">
<tr>
<?php
echo "<form method=\"POST\" action=\"http://localhost/php/enviar.php\" >";
echo "<td>Subject:</td> <td><input name=\"subject\" value=\"$subject\" size=\"50\"/></td></tr>";
echo "<tr><td colspan=\"2\" align=\"left\">Text del missatge</td></tr><tr><td colspan=\"2\" align=\"center\"><textarea name=\"body\" cols=\"80\" rows=\"18\" >";
echo $body;
echo "</textarea></td></tr>";
echo "<tr><td colspan=\"2\" align=\"left\"><input type=\"submit\" name=\"boto\" value=\"Enviar\"></td>";
echo "</form>";
?>
</tr>
</table>
</font>
</center>
<?php
if ($boto == "Enviar") {
    $mail = new PHPMailer();
    $mail->IsSMTP();          
    $mail->SMTPDebug = 1;      // : 1 = errors i missatges, 2 = només missatges   
    $mail->SMTPAuth = true;   
    //$mail->SMTPSecure = "ssl"; // si cal SSL
    $mail->Host = "smtp.elmeuservidor.com";            
    $mail->Port = 25;        // o 465, si SSL     
    $mail->Username = "usuari";   
    $mail->Password = "password"; 
   
   
    foreach ($mail_address as $the_mail_address) {
        echo "Enviant a $the_mail_address<br />";
        $mail->From = "elmeucompte@servidor.cat";
        $mail->FromName = "El meu nom";
        $mail->Subject = $subject;
        $mail->AddAddress($the_mail_address,$the_mail_address);
        $mail->Body = $body;
        // afegir tractament pel cas que hi hagin adjunts
        if(!$mail->Send()) {
            echo "Error d'enviament: " . $mail->ErrorInfo."<br />";
        } else {
            echo "Missatge enviat<br />";
        }
        $mail->ClearAddresses ();
    }
   
    $mail->SmtpClose();
}
?>
</body>
</html>


GMail fa servir TLS, en comptes de SSL, per a prevenir l'spam. Per a GMail, la configuració que funciona és:

    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "tls";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 587;


Les versions antigues de PHPMailer no suportaven TLS, així que val la pena descarregar-se la darrera versió, tenint en compte que l'opció d'enviar per GMail pren un caràcter "universal".

PHPMailer ofereix moltes possibilitats més: adjunts, enviament com HTML... O sigui que és una bona inversió llegir-ne el manual i fer proves. Es tracta d'un clàssic imprescindible al PHP.