Archivo de la etiqueta: PHP Tips

Función que nos devuelve el numero de días de un mes

Mas de una vez nos habremos visto en la duda de, como hacer que según el mes y el año que hemos marcado que nos de los dias que tiene ese mes, pues bien, en php hay una función interna que nos facilita el trabajo, esta es cal_days_in_month, y hay que pasarle como parametros el calendario que queremos, por ejemplo CAL_GREGORIAN, el numero del mes, y el año y nos devuelve el numero de dias que tuvo ese mes.

$numeroDias = cal_days_in_month(CAL_GREGORIAN, 10, 2008);
echo $numeroDias; //Devolvera 31

vía PHP: cal_days_in_month – Manual.

phpmaster | 10 Tips for Better Coding

 

Gran articulo en el que se ven 10 puntos que hay que tener muy en cuenta a la hora de programar un buen y mantenible codigo php.

phpmaster | 10 Tips for Better Coding.

Clase para la conexión a Base de Datos con PDO basada en Singleton Pattern – PHP Tips

Esta es una clase la cual la uso muchísimas veces para establecer la conexión a una base de datos con PHP. Se establece la conexión via PDO y esta basada en el patrón Singleton.  Una de las ventajas que tiene esta clase es que solo establece la conexión una vez, y por muchas veces que sea instanciada no duplica la conexión.

final class DBConnection {
	
    private static $_handle = null;
    private static $_dsn = "mysql:dbname=mydb;host=my.host.com;port=3306";
    private static $_user = "myUserName";
    private static $_password = "myPassword";
    private static $_options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); // SET UTF-8
    /**
     * Deny Construct
     */
    private function __construct()
    {
    }
    /**
     * Deny Clone
     */
    private function __clone()
    {
    }
    /**
     * Function to connect width database
     */
    function connect()
    {
        if ( is_null( self::$_handle ) ) {
            try {
                self::$_handle = new PDO( 
                    self::$_dsn, self::$_user, self::$_password, self::$_options 
                   );
            } catch ( PDOException $error ){
                die ( $error->getMessage() );
            }
        }
        return self::$_handle;
    }
}

La tengo disponible en http://gist.github.com/1771941 o para clonar con Git en git://gist.github.com/1771941.git

Comandos Zend Framework Command Line Console Tool

Dejo aquí los comandos de la zf tool en la versión de Zend Framework 1.11.11

Zend Framework Command Line Console Tool v1.11.11
Usage:
    zf [--global-opts] action-name [--action-opts] provider-name [--provider-opts] [provider parameters ...]
    Note: You may use "?" in any place of the above usage string to ask for more specific help information.
    Example: "zf ? version" will list all available actions for the version provider.

Providers and their actions:
  Version
    zf show version mode[=mini] name-included[=1]
    Note: There are specialties, use zf show version.? to get specific help on them.

  Config
    zf create config
    zf show config
    zf enable config
    Note: There are specialties, use zf enable config.? to get specific help on them.
    zf disable config
    Note: There are specialties, use zf disable config.? to get specific help on them.

  Phpinfo
    zf show phpinfo

  Manifest
    zf show manifest

  Profile
    zf show profile

  Project
    zf create project path name-of-profile file-of-profile
    zf show project
    Note: There are specialties, use zf show project.? to get specific help on them.

  Application
    zf change application.class-name-prefix class-name-prefix

  Model
    zf create model name module

  View
    zf create view controller-name action-name-or-simple-name module

  Controller
    zf create controller name index-action-included[=1] module

  Action
    zf create action name controller-name[=Index] view-included[=1] module

  Module
    zf create module name

  Form
    zf enable form module
    zf create form name module

  Layout
    zf enable layout
    zf disable layout

  DbAdapter
    zf configure db-adapter dsn section-name[=production]

  DbTable
    zf create db-table name actual-table-name module force-overwrite
    Note: There are specialties, use zf create db-table.? to get specific help on them.

  ProjectProvider
    zf create project-provider name actions

Formato moneda con PHP – PHP Tips

The PHP logo displaying the Handel Gothic font.
Image via Wikipedia

Con la función money_format  money_format( $formato, $numero ),  podemos convertir un numero en el formato de moneda sin necesidad de estar agregando el símbolo, establecer el numero de decimales que tendrá el numero, el separador de miles y el separador de decimales. En formato lo mas sencillo es poner «%i» o «%n» siendo la primera el formato internacional para la configuración regional y la segunda el formato nacional para la configuración regional.

Estas opciones las coges de las locales que tengamos definidas en el sistema, y aquí viene lo divertido de la historia.

Primero establecemos el formato monetario con setlocale.

$numero = 12345.67;
setlocale(LC_MONETARY, 'es_ES');
echo money_format('%i', $numero) ."\n"; // devuelve 12.345,6,7 EUR
echo money_format('%n', $numero) ."\n"; //devuelve 12.345,67 €

Es posible que probéis estos ejemplos y no funcionen, uno de los motivos es si estais usando ubuntu o cualquier distro basada en Debian, en estas distros hay que poner en vez de es_ES , es_ES.UTF-8, o puede que estéis probando esta función en windows y no funcione a lo cual me remito a lo que dice la documentacion de PHP:

«La función money_format() sólo está definida si el sistema tiene capacidad strfmon. Por ejemplo, Windows no lo hace, así que money_format() no está definido en Windows.»

Por lo tanto si tenemos la aplicación corriendo en un windows no podremos utilizar esta función tan util.

+ Info: http://es.php.net/manual/es/function.money-format.php