Posts Tagged ‘Php’

[php] Instalando Symfony 2 desde consola en 5 minutos


17 may

simfony-2

Cambiamos de directorio hacia nuestro directorio de proyectos web.

cd projectwebs

Creamos un nuevo proyecto (zarpele)

mkdir zarpele

Descargamos composer

curl -sS https://getcomposer.org/installer | php

Creamos la carpeta donde estar nuestro Symfony2

mkdir trunk

Le decimos a composer que instale nuestro Symfony2

php composer.phar create-project symfony/framework-standard-edition trunk/ 2.2.1

Listo para generar nuestro bundle!

php app/console generate:bundle

Saludos….

[Drupal 7] Template direferente por cada tipo de contenido


09 may

php_code

La cosa es así, creamos un tipo de contenido ‘prosa’ con X campos y queremos que tome un template diferente a los demás. Osea que no tome el template page.tpl.php sino uno que le vamos a indicar.

En la carpeta de nuestro theme actual (NOMBRETHEME) editamos el archivo template.php y agregamos esta funcion.

function NOMBRETHEME_preprocess_page(&$vars) {
    $type_with_template = array('prosa');
    if(isset($vars['node'])){
        if(in_array($vars['node']->type, $type_with_template)){
            if (isset($vars['node']->type)) {
                $vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
            }        
        }        
    }
}

Creamos un archivo page–prosa.tpl en la carpeta templates de nuestro modulo y listo!.

Saludos…

Actualizar phpMyAdmin a mano en GNU/Linux!


16 nov

No voy a recaer en hacer una descripción completa de esta tremenda herramienta para administrar nuestras Bases de Datos en Mysql, eso lo verán ustedes mismos en Google.

Es muy importante mantener actualizado todos los sistemas que dependen de “terceros”, esto es un problema de seguridad critico, a menudo van apareciendo bugs que dejan a descubiertos ciertos datos e información a personas no autorizadas y al tratarse de una herramientas para administrar Mysql esto podría dejar a descubierto todas las bases de datos.

Como saber que versión tengo? solo desde nuestro navegador… http://localhost/phpmyadmin Accedemos…

Esta marcado como rojo la versión…

  • 1. Descargamos la ultima versión.
    Nos dirigimos a la web oficial y descargamos la ultima versión.
  • 2. Resguardando los archivos viejos.
    Hacemos un backup del archivo config.inc.php y un backup comprimido de todo phpMyAdmin viejo.

    cp /usr/share/phpmyadmin/config.inc.php
    tar -zcvf phpmyadmin.tar.gz /usr/share/phpmyadmin/
  • 3. Instalando la nueva version de phpMyAdmin.

    Borramos el viejo phpMyAdmin.

    sudo rm -R /usr/share/phpmyadmin/

    Copiamos el nuevo al mismo lugar (notese que la versión puede variar).

    sudo cp -R phpMyAdmin-3.5.3-all-languages /usr/share/phpmyadmin

    Copiamos el archivo de configuración.

    sudo cp config.inc.php /usr/share/phpmyadmin
  • 4. Listo!

Buen código!

Instalando Zend Framework 1.x desde cero


04 oct

Hoy les traigo un pequeño tuto para instalar Zend Framework 1.x desde cero, mas adelante les traere una guia para hacerlo con la version 2 que por lo que estoy viendo esta que promete.

  1. Descargando Zend Framework
    Lo Primero que vamos a hacer es descargar el comprimido desde la web oficial. En este momento la ultima version estable es la 1.12.0 que es con la que trabajaremos, puede ver las ultimas versiones aquí. En nuestra carpeta personal descargamos el .tar.gz

    wget http://packages.zendframework.com/releases/ZendFramework-1.12.0/ZendFramework-1.12.0.tar.gz
  2. Descomprimimos…
    tar -xzvf ZendFramework-1.12.0.zip.tar.gz
  3. Renombramos a un nombre mas estandar…
    mv ZendFramework-1.12.0 ZendFramework
  4. Copiamos todo a /usr/local
    sudo cp -R ZendFramework /usr/local
  5. Le damos los permisos necesarios…
    cd /usr/local
    sudo chmod 0755 ZendFramework
    sudo chmod -R 0755 ZendFramework/*
  6. Creamos un enlaze simbolico para el zf tool
    sudo ln -s /usr/local/ZendFramework/bin/zf.sh /usr/bin/zf
  7. Probamos nuestro zf tool
    zf show version

    Y si todo sale bien obtendremos ‘Zend Framework Version: 1.12.0

  8. Agregamos la libreria a nuestro sistema
    cd /etc/php5/apache2/
    sudo nano php.ini

    Buscamos esta linea

    ;include_path = ".:/usr/share/php";

    Y la sustituimos por la siguiente linea (notese que no esta el punto y coma inicial que indica un comentario)

    include_path = ".:/usr/share/php:/usr/local/ZendFramework/library"
  9. Creamos nuestro proyecto ‘zarpele
    zf create project zarpele
    Creating project at /var/www/framework/zarpele
    Note: This command created a web project, for more information setting up your VHOST, please see docs/README

Listo solo tienen que crear un vhost apuntando a la carpeta public, aqui les dejo un tutorial de mi autoria para crear vhosts de hace algunos años pero valido al fin.

Saludos…

[PHP] Haciendo modulo “Hola Mundo” en Magento


07 ago

Hace tiempo no hacia un post elaborado y como tenia que recordar algunas buenas practicas hoy les traigo esta entrada tipo “How-to” para que tu primer modulo en Magento salga con fritas. Vale aclarar, que veremos el código mínimo para hacer andar un modulo.

En primer instancia debemos tener un Magento andando en nuestro servidor local (http://magento.local/ por ejemplo), esto es bastante fácil y no requiere de una guiá extensa. Descargamos del sitio oficial la ultima versión de Magento, descomprimimos, creamos una base de datos y sin mas vueltas tenemos a nuestro Magento funcionando. Si tienen problemas con la instalación, solo dejen un comentario debajo…

1. Crear archivo Zarpele_Holamundo.xml

Nuestro Modulo se llamará Holamundo y el espacio de trabajo será Zarpele, buscamos la carpeta /app/etc/modules/ y creamos el archivo Zarpele_Holamundo.xml con este contenido:

Archivo: /app/etc/modules/Zarpele_Holamundo.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Zarpele_Holamundo>
            <active>true</active>
            <codePool>local</codePool>
        </Zarpele_Holamundo>
    </modules>
</config> 

En nuestro backend (/admin), podemos observar el modulo activo si vamos a System -> Configuration -> Advanced -> Advanced junto a a otros módulos que proporcionan el funcionamiento correcto del sitio (es aconsejable no desactivarlos)

2. Configurando nuestro modulo

Ahora nos queda configurar nuestro modulo, en /app/code/local vamos a crear una carpeta con nuestro espacio de trabajo “Zarpele”, y crearemos otra carpeta dentro de esta con el nombre del modulo “Holamundo”.

En esta carpeta /app/code/local/Zarpele/Holamundo van a estar todos los archivos de nuestro modulo (configuraciones, controladores, vistas, modelos, bloques, etc).

Vamos a crear el archivo de configuración de nuestro modulo.

Archivo: /app/code/local/Zarpele/Holamundo/etc/config.xml

<?xml version="1.0"?>
<config>
    <!--Indicamos la version del modulo-->
    <modules>
        <Zarpele_Holamundo>
            <version>0.1.0</version>
        </Zarpele_Holamundo>
    </modules>    
    <!--Indica que estamos desarrollando para el frontend-->
    <frontend>
        <routers>
            <Zarpele_Holamundo_NombreDeRoute><!--NombreDeRoute es simplemente el nombre del route-->
                <use>standard</use><!--admin o standard-->
                <args>
                    <module>Zarpele_Holamundo</module><!--Nombre del modulo-->
                    <frontName>zarpele-holamundo</frontName><!--URL donde se podra acceder-->
                </args>
            </Zarpele_Holamundo_NombreDeRoute>
        </routers>
    </frontend>    
</config>

Expliqué brevemente este archivo en el mismo con comentarios, a medida que vayamos aumentando la complejidad de nuestro modulo les iré mostrando diferentes configuraciones.

3. Creando el controlador

Ahora solo nos falta crear el controlador para que funcione con esta configuración…

Archivo: /app/code/local/Zarpele/Holamundo/controllers/IndexController.php

<?php
class Zarpele_Holamundo_IndexController extends Mage_Core_Controller_Front_Action
{
    /*http://magento.local/index.php/zarpele-holamundo*/
    public function indexAction()
    {
        echo 'Hola Mundo Zarpele...';
    }
     
    /*http://magento.local/index.php/zarpele-holamundo/index/otraPagina*/
    public function otraPaginaAction()
    {
        echo 'Hola Mundo 2 Zarpele...';
    }
}
?><

Listo, ya hicimos nuestro primer modulo en Magento. Si este no funciona, no se olviden de limpiar cache (importante siempre a la hora de encontrar un problema) System -> Configuration -> Cache Management

Saludos y buen código…

Distancia de Levenshtein con PHP


04 nov

Se llama, Distancia de Levenshtein, distancia de edición, o distancia entre palabras, a la cantidad de inserciones, eliminaciones o cambios de caracteres que hay que realizar para convertir una palabra en otra.

Por ejemplo:

casa → cala (sustitución de ‘s’ por ‘l’) osea que d(casa,cala) = 1

cala → calla (inserción de ‘l’ entre ‘l’ y ‘a’) osea que d(cala, calla) = 1

calla → calle (sustitución de ‘a’ por ‘e’) osea que d(calla, calle) = 1

anemia → anestesia (3 inserciones ‘ste’, sustitución de ‘m’ por ‘s’) osea que d(anemia, anestesia) = 4

Luego de esta pequeña intro, veremos lo sencillo que resulta calcular distancias de Levenshtein con PHP.

<?php
echo levenshtein('anemia', 'anestesia');
?>

Resultado:

4

Fácil!, lo bueno es que con PHP, la función esta implementada de forma nativa en contra de otros lenguajes como C++, C#, Java, etc. en donde uno debe programar la función distancia.

Les dejo a continuación un pequeño script, que toma como entrada un conjunto de palabras y genera una matriz con las distancias de Levenshtein asociadas una por una. Esta matriz tiene la particularidad de que es simétrica respecto a su diagonal principal donde todos sus elementos son 0.

<?php
$data = array('Ana', 'Francisco', 'Belen', 'Zulma', 'Pedro', 'Esteban', 'Amy', 'Paula', 'Claudia', 'Anama', 
   'Jorge', 'Estanislao', 'Cristian', 'Adrian', 'Clara', 'Fernando', 'Alan', 'Charlize', 'Cameron', 'Anahi'); 

?>
<table>
    <tr>
        <td></td>
        <?php foreach($data as $value): ?>
        <td><?php echo $value?></td>
        <?php endforeach;?>
    <tr>
    <?php foreach($data as $value): ?>
    <tr>
    <td><?php echo $value?></td>
    <?php foreach($data as $value2):?>
        <td><?php echo levenshtein($value, $value2);?></td>
    <?php endforeach;?>
        </tr>
    <?php endforeach;?>
</table>

El resultado del anterior ejemplo, seria:

Zarpele! Linux and Software Libre

GNU/Linux, Programación, Tecnologia…


Follow Me Hazte Fan