Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

viernes, 25 de enero de 2013

Empezando de cero con CodeIgniter

Ayer quise empezar un nuevo proyecto PHP con el framework CodeIgniter. Como otras tantas veces, no me acordaba en absoluto de como se hacía pero al ir recordándolo, me lleve una grata sorpresa al ver cuan fácil es comenzar un proyecto codeigniter

Los pasos a seguir para una primera instalación son:

  1. Descargar desde su página oficial

  2. Descomprimir y colocar en la carpeta del servidor, ya sea en local o subiéndolo a la red vía ftp, por ejemplo. El archivo 'index.php' debe quedar en el directorio raíz de nuestro servidor web

  3. Abrir el archivo 'application/config/config.php' y editarlo para configurar la 'base_url' que será la dirección web donde estará nuestra aplicación:
    $config['base_url']= 'http://midominio.com/misubcarpeta';
  4. Si se va a usar una base de datos con la aplicación, también hay que abrir 'application/config/database.php' y editarlo para introducir la información de nuestra página.

Y eso es todo. Al abrir la URL que hemos indicado en el paso 3 debería de aparecer la página de bienvenida de CodeIgniter informándonos de que ya podemos empezar a trabajar cuando queramos.





miércoles, 24 de octubre de 2012

Enviar emails con Codeigniter y Gmail

Sigo aprendiendo como funciona Codeigniter y hoy una de las cosas que he aprendido y me ha gustado es la simplicidad para mandar correos electrónicos.

Una de las limitaciones que tenía hasta ahora cuando probaba en local es que no podía mandar correos por no tener ningún servidor montado. Seguramente haya otras posibilidades, pero tampoco me había molestado en aprender.

Hoy, con codeigniter, he conseguido mandar emails desde mi propio ordenador a través de mi cuenta de gmail, en tan solo unos minutos:


  1. Para empezar, hay que crear un archivo de configuración llamado "email.php" (tiene que llamarse así exactamente) y que esté situado dentro de la carpeta de configuración.
    En este archivo colocaremos las propiedades del servidor de correo que serán algo así:

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'ssl://smtp.googlemail.com';
    $config['smtp_port'] = 465;
    $config['smtp_user'] = 'youremail@gmail.com';
    $config['smtp_pass'] = 'yourpassword';
    $config['smtp_timeout'] = '7';
    $config['charset']    = 'utf-8';
    $config['newline']    = "\r\n";
    $config['mailtype'] = 'text'; // or html
    $config['validation'] = TRUE; // bool whether to validate email or not

  2. Segundo, tenemos que cargar la librería en el lugar donde queramos enviar el email:

    $this->load->library('email','','correo');

  3. Y por último preparar el email para enviar

    $this->correo->from('noreply@yourdomain.com', 'Your Name');
      $this->correo->to('toemail@gmail.com');
      $this->correo->subject('This is an email test');
      $this->correo->message('This is the body of the message');
    if($this->correo->send())
      {
       echo 'Correo enviado';
      }
    
      else
      {
       show_error($this->correo->print_debugger());
      }

  4. Y eso es todo! Correo enviado

martes, 23 de octubre de 2012

Añadir la extensión .html a algunas páginas de Codeigniter

En la configuración de codeigniter, en el archivo config.php, tenemos la opción de añadir una extensión a todas las páginas de nuestra aplicación de manera que la página

/pagina/de/contacto

se convierta en

/pagina/de/contacto.html

Pero esto tiene la pega de que se aplicará a cualquier URL de la aplicación y a lo mejor no queremos que esto sea así.

Si sólo queremos añadir el sufijo a algunas páginas, pero que siga funcionando el motor de codeigniter, podemos añadirlas en el archivo de routes.php. Por ejemplo podría quedar de la siguiente manera

$routes['/pagina/de/contacto.html'] = "nuestro_controlador/contacto"

También se pueden poner expresiones regulares del tipo


$route['^([^\/]*).html$'] = 'pages/view/$1'; 

domingo, 15 de abril de 2012

Mover un proyecto dentro de Eclipse

Un pequeño how-to para los que uséis Eclipse: ¿Cómo se mueve un proyecto de una ubicación a otra y que todo permanezca igual?


  • En la vista de "Package explorer", 
  • botón derecho sobre el proyecto que queremos mover, 
  • "Refactor" 
  • y "Move".
  • Elegimos la nueva ubicación 

Y listo!

Fuente: Stackoverflow 



martes, 7 de junio de 2011

Sumergiéndome en los PHP Frameworks

Llevo ya bastante tiempo programando en PHP, pero la verdad, siempre lo he hecho a pelo, partiendo de cero en la mayoría de ocasiones y creándome mis clases y scripts a medida que era necesario. He repetido muchas veces los mismos patrones que surgían una y otra vez proyecto tras proyecto, pero como ninguno era lo suficientemente grande (o eso creía yo) pues lo único que hacía era reutilizar código de los anteriores.

Bien, aunque ahora que he empezado a mirar frameworks y me he dado cuenta que gran parte del trabajo que yo repetía una y otra vez ya se encuentra implementado, empaquetado, testado y disponible gratuitamente; tengo que decir que no me arrepiento para nada de todas las líneas de código escritas o de los errores con los que me he tenido que pelear. Todo eso me ha dado una base y un conocimiento que no podría haber adquirido de otra forma.

Dicho esto paso a mencionar las tres opciones que he visto: Zend, Yii y Lithium

Zend es el único que conocía antes de ponerme con todo esto, y el único que he probado y con el que he llegado más lejos. Tras realizar algún ejemplo simple me llevo la impresión de que te dan mucho código ya hecho, pero no es sencillo, no es mágico y hace falta entender lo que estás haciendo. A cambio de eso te puedes abstraer de capas intermedias y dedicarte más a la estrategia de los proyectos. Como todo, con tiempo se podrán comenzar proyectos hasta un punto bastante avanzado en pocos pasos y no demasiado tiempo.

Los otros dos apenas he tenido ocasión de verlos y leer un poco acerca de ellos. Me da la impresión de que serán algo más modernos que Zend, quizá más rápidos y algo más mágicos (todo una impresión, como digo).

Próximamente me gustaría darles una oportunidad a los tres para poder dedicarme a uno en concreto o para utilizar lo mejor de cada uno. Algo que les pido es que se puedan integrar con el IDE que empleo (Eclipse para PHP) o en su defecto con el NetBeans PHP que también quiero probar.

miércoles, 1 de diciembre de 2010

Tiempo de ejecucion en PHP

Para saber el tiempo que tarda en ejecutar una función / script / tarea en PHP y ver dónde se produce el mayor gasto de tiempo, se puede usar:

<!-- put this at the top of the page -->
<?php
   $mtime = microtime();
   $mtime = explode(" ",$mtime);
   $mtime = $mtime[1] + $mtime[0];
   $starttime = $mtime;
;?>

<!-- put other code and html in here -->


<!-- put this code at the bottom of the page -->
<?php
   $mtime = microtime();
   $mtime = explode(" ",$mtime);
   $mtime = $mtime[1] + $mtime[0];
   $endtime = $mtime;
   $totaltime = ($endtime - $starttime);
   echo "This page was created in ".$totaltime." seconds";
;?>



Sacado de http://www.developerfusion.com/code/2058/determine-execution-time-in-php/

jueves, 11 de noviembre de 2010

Pasar fechas de PHP a JavaScript

En el post anterior contaba como realizar un contador de tiempo con JavaScript para llegar a una determinada fecha en concreto.
La fecha que yo tenía, estaba en el servidor, el cual funciona con PHP, pero como acabo de decir, el contador funciona con JavaScript. Aunque pudiera pensarse que ambos son compatibles, no es así.

En PHP utilizo la función strtotime() que convierte la mayoría de formatos de fechas al formato timestamp de UNIX (número de segundos desde 1970).
En JavaScript utilizo la función Date() que acepta como parámetro un string con la fecha o un número con el timestamp.

¿Pasar el strtotime() de PHP al Date() de JavaScript verdad? Pues no es suficiente, no son compatibles, para que funcione es necesario multiplicar por 1000, es decir (sintaxis JavaScript)

var fecha = new Date(<?php echo strtotime($nuestra_fecha)*1000;?>);