WordPress Plugin Boilerplate

Estoy utilizando WordPress-Plugin-Boilerplate para desarrollar plugins, y puedo decir que es una herramienta que sirve mucho para trabajar ordenadamente el código, obtener plugins más prolijos, todos orientados a objetos y fáciles de mantener.

Este es el repositorio en github: https://github.com/DevinVinson/WordPress-Plugin-Boilerplate

Y como no tiene mucha documentación recomiendo accudir a los issues como fuente y area de consultas.

Para arrancar a utilizarlo hay que reemplazar todas las ocurrencias de ‘plugin-name’, ‘Plugin_Name’, con el correspondiente nombre de tu plugin, dentro de los archivos y en los nombres de los archivos.

También como necesitaba usar shorcodes, modifique la clase loader según este comentario del autor.

La idea es separar los archivos en admin y public, que son llamados en la clase genérica dentro del include, que agrupa los hooks, filters y shortcodes en mi caso.

Conectar Jetpack

Tuve problemas con mi instalación para conectar jetpack y lo resolví, primero chequeando en el debug de Jetpack, que me mostraba un problema para acceder al xmlrcp.

Como yo tengo WordPress en otro directorio, intenté haciendo una redirección 301 en el .htaccess.

Redirect 301 /xmlrpc.php http/tusitio.com/directorio_de_wordpress/xmlrcp.php

Desconecté, rehice la conexión y funcionó!

PHP_CodeSniffer para WordPress

Este post solo tiene la finalidad de registrar el proceso de instalación de PHP_CodeSniffer y configurarlo para los requerimientos de WordPress, en MAC OS El Capitan.

Primero instalamos PEAR: Install PEAR and PECL on Mac OS X

curl -O http://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar

Podemos Configurarlo en la instalación o bien como en mi caso, luego:

sudo pear config-set php_bin /usr/bin/php
sudo pear config-set bin_dir /usr/local/bin

luego instalamos PHP_CodeSniffer

sudo pear install PHP_CodeSniffer

Y voilà:

phpsc --version

Debería funcionar, pero no, da algunos errores:

Warning: include_once(PHP/CodeSniffer/CLI.php): failed to open stream: No such file or directory in /usr/local/bin/phpcs on line 21
Warning: include_once(): Failed opening 'PHP/CodeSniffer/CLI.php' for inclusion (include_path='.:') in /usr/local/bin/phpcs on line 21
Fatal error: Class 'PHP_CodeSniffer_CLI' not found in /usr/local/bin/phpcs on line 24

Necesitamos hacer una configuración más: http://viastudio.com/configure-php-codesniffer-for-mac-os-x/

sudo mkdir -p /Library/Server/Web/Config/php
sudo touch /Library/Server/Web/Config/php/local.ini
echo 'include_path = ".:'`pear config-get php_dir`'"' | sudo tee -a /Library/Server/Web/Config/php/local.ini

y con eso corregimos los errores de include_path y tenemos nuestro comamndo phpsc funcionando en la consola.

Ahora vamos a integrar el WordPress Coding Standards for PHP_CodeSniffer, para ajustarnos a sus parametros.

git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs
sudo phpcs --config-set installed_paths /path/to/wpcs

ahora probamos la herramienta

phpcs --standard=WordPress path/to/file.php

o

phpcs --standard=WordPress path/to/fdir

y este es un posible resultado:

----------------------------------------------------------------------
FOUND 6 ERRORS AFFECTING 2 LINES
----------------------------------------------------------------------
16 | ERROR | [x] Expected 1 spaces after opening bracket; 0 found
16 | ERROR | [x] Expected 1 spaces before closing bracket; 0 found
16 | ERROR | [ ] Expected next thing to be an escaping function
| | (like esc_html_e() or esc_attr_e()), not '_e'
19 | ERROR | [x] Expected 1 spaces after opening bracket; 0 found
19 | ERROR | [x] Expected 1 spaces before closing bracket; 0 found
19 | ERROR | [ ] Expected next thing to be an escaping function
| | (like esc_html_e() or esc_attr_e()), not '_e'
----------------------------------------------------------------------
PHPCBF CAN FIX THE 4 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------
Time: 117ms; Memory: 11Mb

y tal como lo indica ahi, con:

phcbf --standard=WordPress path/to/file.php

resolvemos automáticamente alguno de los errores.

Javascript en JSConfUY

Este fin de semana tuve la suerte de poder asistir a la JSConfUy y volví muy impresionada de la gran calidad de la mayoría de las presentaciones y con un montón de información nueva en mi cabeza para procesar.

Ya habia tenido acercamientos a nodejs, hice mis primero pinitos (muy minimos) hace un tiempo influenciada por mi pareja que trabaja con la tecnología hace bastante tiempo. Sin embargo pude darme cuenta que es la tecnología de este momento y que de alguna manera la web va a volcarse a nodejs mas ponto que tarde. Sobretodo por su potencialidad y por lo amigable que es con el desarrollador. Tuve la oportunidad de participar de un workshop que me ayudo a refrescar algunas cosas y me dejo pensando en cual será el camino a seguir para poder aplicar esas tecnologías en mi actividad actual.

Algunas herramientas ya las utilizo, (como jade, stylus, components, etc.) todavía en el medio del camino, desde wordpress (php) y el desarrollo de themes y plugins customizados, pero voy viendo que no es tan lejana la posibilidad de dejar de compilar en consola para compilar en el cliente.

Otro tema en el que vi luz, es Web Components, según la presentación que dio Zeno Rocha. Tiene un potencial enorme, y voy a intentar escribir particularmente mi experiencia en un post cuando empiece a tratar el tema. Espero pronto tambien suban el video de la charla por que puede ser de mucha ayuda.

Como conclusión personal, ya me voy anotando a la proxima JSConf en Argentina, no me la pierdo.