Cómo hacer que Yii 1.x cargue automáticamente las clases de Composer

Hoy en día si programas una aplicación en PHP, es muy probable que utilices composer para instalar y manejar las dependencias de tu programa; sin embargo, aunque es fácil de utilizar e instalar dependencias, muchas veces tenemos problemas para instanciarlas en nuestra aplicación por los distintos formatos existentes (debido a la distintas versiones de PHP) utilizados para la carga de clases.

Con Yii framework es posible configurar para que cargue todas las clases instaladas con composer automáticamente, para ello, debes comenzar agregando lo siguiente en tu archivo composer.json

"config": {
  "vendor-dir": "protected/external" //definimos la carpeta de instalación
},
"autoload": {
  "psr-0": {  //definimos el estándar a usar
   "config": "./",
    "": "src"
  },
  "classmap": ["protected/"] //CREO que define el namespace raíz de las clases
},
"require": {
  "php": ">=5.3.2", //la versión de php a usar
  "yiisoft/yii": "1.1.*", //la última versión de Yii 1.1
}

En tu archivo /index.php modificamos el atributo classMap de la aplicación Yii, para incluir las rutas de los componentes externos que han sido instalados con composer:

require_once($yii);
$loader = require(__DIR__ . '/protected/external/autoload.php');
Yii::$classMap = $loader->getClassMap();
Yii::createWebApplication($config)->run();

¡Listo! A partir de ahora se cargaran automáticamente, las clases ubicadas en las rutas definidas en /protected/config/main.php y todas las ubicadas en la carpeta protected/external. De esta forma, puedes instalar componentes/clases/liberías desde composer y automáticamente se integrarán a tu aplicación Yii.

Hace 7 años en esa fecha: LinuxTube: El Youtube de Linux

Hace 9 años en esa fecha: Mi primer theme de Splashy (para Debian)

Como arreglar gráficamente los URLs de tu sitio WordPress en tu BD al migrar desde tu servidor local a producción

En el anterior artículo de este blog, hablé sobre Como migrar la base de datos de WordPress de local a producción y mediante un programa arreglar las URLs que quedan con el dominio localhost. Sin embargo, varias personas me comentaron su imposibilidad de utilizar ese método porque no tienen acceso SSH o a la terminal de sus servidores, pues sus proveedores de alojamiento web solo les da cuenta FTP y acceso a un panel.

Para estos casos, existe un programa de código abierto llamado Search Replace DB que consiste en una página web que instalas en la raíz del sitio, ésta detecta la configuración de la base de datos de WordPress y mediante un sencillo formulario puedes: escribir la URL que habías configurado como local y la de producción, seleccionar las tablas donde debe buscar la información, migrar a InnoDB (no veo razón de usar otro motor en WordPress) y probar los cambios antes de ejecutarlos.

Interfaz de Search Replace DB

Interfaz de Search Replace DB

Como ves, es una aplicación sencilla de utilizar y solo requieres tener acceso para subir archivos al servidor. Luego de realizar estos cambios, puedes borrar los archivos con un solo clic para evitar futuros accesos no autorizados a esta herramienta y causar daños en tu base de datos.

Espero que les sea útil esta información y si conocen otra alternativa no duden en comentarla.

 

 

 

Hace 6 años en esa fecha: Oracle compra Sun

Hace 7 años en esa fecha: Hacer arranque dual con Vista y Linux

Hace 8 años en esa fecha: Análisis ( Review ) de Archlinux 0.8 'Voodoo'

Como migrar tu base de datos de WordPress desde tu servidor local a producción

Generalmente si eres un buen desarrollador, tendrás tu entorno de desarrollo (servidor web, base de datos, etc) instalado en tu máquina local. De esta manera, puedes trabajar rápidamente al evitar solicitudes al servidor web remoto cada vez que realices modificaciones en un archivo o necesites visualizar cambios (por nombrar ejemplos), además, no requieres conexión a Internet, por lo que si ocurre una falla con el servicio o estas usando el ancho de banda para descargar cosas, no afectará tu flujo de trabajo.

En el caso de WordPress, existen dos opciones de configuración: home y siteurl que indican las URLs de la página inicial y sitio respectivamente. Por ello al realizar una instalación y configuración local, éstas variables tienen valores que apunta a localhost. Entonces, al momento de migrar la base de datos al servidor de producción, muchos enlaces quedan bajo el dominio localhost y no al dominio del sitio. Cambiar estos valores no ayuda mucho, pues si tienen imágenes, vídeos y archivos enlazados a contenidos creados dentro del editor, verán que no son accesibles porque siguen apuntando a localhost.

Para cambiarlo, se puede hacer con WP-CLI que es una útil herramienta de interfaz de comandos para WordPress, donde puedes administrar el sitio, datos, respaldos, entre otras cosas, sin salir de la consola. Pues para renombrar los URL de localhost a tu dominio, simplemente debes ejecutar los siguientes dos comandos.

Instalas wp-cli en tu sitio wordpress de producción usando curl:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Luego ejecutas el comando search-replace cuyo primer parametro es la dirección actual (la local) y el segundo la dirección final del sitio:

wp search-replace 'http://localhost/sitio-de-desarollo' 'http://sitio-de-produccion.com/'

En caso que no te sirva el comando anterior porque no tienes configurado para la ejecución de archivos PHP automáticamente desde la consola ejecuta:

php wp-cli.phar search-replace 'http://localhost/sitio-de-desarollo' 'http://sitio-de-produccion.com/'

¡Listo! El comando se encargará de buscar en la base de datos cualquier referencia y la actualiza.

P.D: Si siempre trabajas en el servidor de producción o en un servidor remoto, estas perdiendo tiempo, ancho de banda, recursos y sobre todo dinero. ¡Aprende a optimizar!

Hace 9 años en esa fecha: Software como servicio pago

Aumenta la seguridad de tu sesión en WordPress

Una de las principales preocupaciones de los usuarios de WordPress es el acceso al panel de administración, pues por defecto se encuentra en la ruta /wp-admin y está compuesto de un simple formulario que puede ser atacado por fuerza bruta. Por eso les voy a recomendar dos complementos para aumentar la seguridad de inicio de sesión de WordPress, al implementar autenticación de dos factores (Two Factor Authentication) y cambiar la ruta por defecto del formulario de inicio de sesión:

  • Rename WP Login: es un plugin muy liviano y sencillo, simplemente te permite definir una url personalizada para el formulario de inicio de sesión en la pantalla de enlaces permanentes, como por ejemplo http://tusitio.org/entrar-al-admin/. Aunque en el título dice que el plugin no tiene soporte, el autor se refiere a que no posee tiempo para resolver cualquier duda que se presente en los foros , sin embargo, acepta parches de código, nuevas funcionalidades, correcciones de bugs, entre otros. Por lo que puedes instalarlo sin preocuparte de que esté obsoleto.
  • Clef: un plugin recomendado por Manuel Camacho, consiste en una autenticación de 2 factores, es decir, aparte de brindar una información que solo tú conoces, debes dar información generada de un objeto que tienes contigo (el móvil o una tarjeta por ejemplo). En este caso, una vez que instalas el plugin la pantalla de inicio de sesión cambia a una especie de QR dinámico, el cual debes escanear con tu teléfono móvil a través de la aplicación Clef, una vez que reconoce el patrón único automáticamente inicia sesión en el sitio, lo chévere es que desde el teléfono controlas el tiempo de sesión e inclusive cerrarla remotamente. También se configurar para usar el inicio tradicional como respaldo en caso de que no tengas el teléfono contigo.

 

Clef en el blog

Ejemplo de como funciona Clef

Con estos 2 sencillos plugines que puedes instalar y configurar en poco tiempo, podrás aumentar la seguridad en tu sitio con WordPress, o mejor aún, el de tus clientes. Finalmente, si conocen alguna alternativa o desean compartir información adicional, no duden en dejar un comentario para mejorar la seguridad de nuestros sitios.

Hace 7 años en esa fecha: Record Mundial de Guitar Hero 3

Liberado jQuery Archive List 3.0

Luego de mas de un año sin poder dedicarme a este proyecto personal, he podido liberar la versión 3.0 de jQuery Archive List un widget de WordPress para mostrar el historial de sitio de una mejor manera y con efectos de jQuery. El salto a la versión 3, es debido a grandes cambios en el código de Javascript y en algunas cosas internas de plugin.

Entre las mejoras de esta nueva versión podrán encontrar:

  • Re-escritura completa del código Javascript, ahora ocupa menos espacio, código mas entendible y debería funcionar mas rápido.
  • Finalmente he agregado soporte para tipos de entradas personalizadas, así que puedes usar este widget si tienes tipos de contenido personalizados.
  • Agregué la clase active a los elementos que enlazan a la página actual.
  • Agregué el atributo de título a los enlaces para generar código HTML validado por la W3C.
  • Se agregó traducción al Holadés (gracias a Patrick Schreibing).
  • Se migró la selección de categorías al API de WordPress.
  • Se solucionó errores de exclusión de categorías.
  • Se solucionó el error de la ausencia de la clase expanded  en los meses (gracias to pjarts).
  • Se solucionó el error de no expandirse los meses al seleccionar algunas opciones.

Descárgalo desde el gestor de Plugins de WordPress o desde el sitio oficial de jQuery Archive List Widget. Y cualquier reporte o duda, no te olvides de reportarla en los foros de soporte de WordPress.