Senior PHP Developer en UNIR (Universidad Internacional de La Rioja) at UNIR Universidad Internacional de La Rioja
Oct. 6, 2017•0 likes•1,218 views
1 of 132
Kiss cultura de plugins
Oct. 6, 2017•0 likes•1,218 views
Download to read offline
Report
Technology
Conceptos a tener en cuenta para conseguir que tu plugin sea un buen plugin. Hacer las cosas bien no cuesta tanto. Siendo un contexto técnico, utilizaré un lenguaje que pueda llegar a todos los públicos que conozcan WordPress.
2. /in/papoveda
@povedica
Pablo Poveda Ortega
Me puedes ver en …
Donde hay una voluntad, hay un camino
Senior PHP Developer | WordPress Professional
Incondicional
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
10. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
PIENSO, LUEGO
PROGRAMO
11. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO TE VENGAS
ARRIBA
(No si no tienes un plan)
12. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
APRENDE Y DISFRUTA
POR EL CAMINO SIEMPRE
(recuerda que aquí hemos venido a jugar aunque a veces no lo parezca)
13. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FACILITA EL TRABAJO
A LOS DEMÁS
14. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
Copia, inspírate y mejóralo
17. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
TEN EN CUENTA QUE
WORDPRESS EVOLUCIONA
CONSTANTEMENTE
18. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
TEN EN CUENTA QUE LOS
PLUGINS DEBEN
CONVIVIR ENTRE ELLOS
COMPATIBILIDAD CONFLICTOVS
(Ej: Gravity Forms Debug Add-on)
19. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
(puedes usar clases con métodos que contengan estas funciones)
UTILIZA LAS
FUNCIONES DE
WORDPRESS (DRTW)
20. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA
BOILERPLATES
http://wppb.io/
wp scaffold plugin
(DRTW)
https://wppb.me/
21. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA
BOILERPLATES
http://wppb.io/
wp scaffold plugin
(DRTW)
https://wppb.me/
22. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA
BOILERPLATES
http://wppb.io/
wp scaffold plugin
(DRTW)
https://wppb.me/
23. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FACILITA LA EXTENSIÓN
Y/O MODIFICACIÓN DEL
COMPORTAMIENTO
24. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EL ARTE DE
HOOKEAR
add_action
do_action
remove_action
add_filter
apply_filter
remove_filter
25. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DECIDE QUE PERMITES
MODIFICAR, QUE
PERMITES EXTENDER
27. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
INTERNACIONALIZACIÓN
.pot .po .mo
_e()
__()
28. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DETERMINA RESPONSABILIDADES
USANDO ROLES Y CAPABILITIES
29. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DETERMINA RESPONSABILIDADES
USANDO ROLES Y CAPABILITIES
30. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO LIMPIO(Clean code)
31. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO LIMPIO(Clean code)
32. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/
USA LA GUÍA DE
ESTILO DE CÓDIGO
33. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO TE OLVIDES DE QUE EL CÓDIGO
QUE GENERAS ES PARA QUE:
1. LO LEAN Y EVOLUCIONEN PERSONAS
2. LO EJECUTEN MÁQUINAS
Prioridad
34. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
ESCRIBE CÓDIGO
EN INGLÉS
35. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
( Programación Orientada a Objetos)
POO
59. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRY
DRY
PLANTILLA
“Adapter”
60. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRY
DRY
PLANTILLA
“Adapter”
SIMULACIÓN DE ADAPTER SIN USAR OO.
DEVUELVE LA ESTRUCTURA DE DATOS (ARRAY) YA LISTA PARA USAR. LA
61. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS
COMENTARIOS EN EL
CÓDIGO
62. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS
COMENTARIOS EN EL
CÓDIGO
//WHEN I WROTE THIS, ONLY GOD AND I UNDERSTOOD WHAT I WAS DOING
//NOW, GOD ONLY KNOWS
STOP(); // HAMMERTIME!
/// CLASS USED TO WORK AROUND RICHARD BEING A FUCKING IDIOT
// DRUNK, FIX LATER
//HAPPY DEBUGGING SUCKERS
RETURN 1; # RETURNS 1
//DONT TOUCH PLEASE
LONG JOHN; // SILVER
63. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS
COMENTARIOS EN EL
CÓDIGO
//WHEN I WROTE THIS, ONLY GOD AND I UNDERSTOOD WHAT I WAS DOING
//NOW, GOD ONLY KNOWS
STOP(); // HAMMERTIME!
/// CLASS USED TO WORK AROUND RICHARD BEING A FUCKING IDIOT
// DRUNK, FIX LATER
//HAPPY DEBUGGING SUCKERS
RETURN 1; # RETURNS 1
//DONT TOUCH PLEASE
LONG JOHN; // SILVER
LOL
64. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS
COMENTARIOS EN EL
CÓDIGO
//WHEN I WROTE THIS, ONLY GOD AND I UNDERSTOOD WHAT I WAS DOING
//NOW, GOD ONLY KNOWS
STOP(); // HAMMERTIME!
/// CLASS USED TO WORK AROUND RICHARD BEING A FUCKING IDIOT
// DRUNK, FIX LATER
//HAPPY DEBUGGING SUCKERS
RETURN 1; # RETURNS 1
//DONT TOUCH PLEASE
LONG JOHN; // SILVER
LOL
EL LISTILLO
65. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DELEGA RESPONSABILIDADES
SIMPLES
(Divide y vencerás)
(Código Limpio)
66. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CUIDA TODOS LOS
CONTEXTOS
67. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CONOCE EL FLUJO DE
EJECUCIÓN DE WP
https://wordpress.stackexchange.com/questions/71406/is-there-a-flowchart-for-wordpress-loading-sequence
http://cdn2.wpbeginner.com/wp-content/uploads/2017/05/wp-behind-the-scenes.png
Detalles técnicos:
Infografía:
68. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
PUBLIC, ADMIN, AJAX,
CRON
72. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
THEMES Y CHILDTHEMES
73. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO COMPATIBLE CON
CLI (SHELL)
74. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO COMPATIBLE CON
CLI (SHELL)
?
75. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO COMPATIBLE CON
CLI (SHELL)
?PHP NOTICE: UNDEFINED INDEX
76. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USO CORRECTO
DE LA BD
77. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
LA BD ES LA REINA
DEL AJEDREZ
78. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
LAS TABLAS DE WORDPRESS
SEGURAMENTE SON
SUFICIENTES PARA CUBRIR LO
QUE NECESITAS
(KISS)
(dale una vuelta)
79. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
¿TABLAS NUEVAS?
PIÉNSATELO DOS VECES(o más)
CRUD no nativo
La interfaz casi la generas desde cero
Pierdes compatibilidad con WordPress
Mantenimiento de estructura
Nadie espera esa tabla
Mantenimiento de queries
Posibilidad de queries no optimizadas
82. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA PRE_GET_POST
ANTES QUE WP_QUERY
(una query puede ser mejor que dos)
83. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA LOS HOOKS PARA
GESTIONAR QUERIES
https://codex.wordpress.org/Custom_Queries
84. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
VALIDA LO QUE SE
GUARDA EN BD DESDE
TU PLUGIN
85. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSES DE
LAS QUERIES
(menos es más)
86. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
OPTIMIZA TUS
QUERIEShttps://es.wordpress.org/plugins/query-monitor/
87. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA PREPARE
https://developer.wordpress.org/reference/classes/wpdb/prepare/
88. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SI NECESITAS QUERIES COMPLEJAS
CON SUBQUERIES, JOINS Y/O USAR
OFFSET,LIMIT CUIDA MUY BIEN EL
PERFORMANCE Y MIDE CON
HERRAMIENTAS
89. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS
DE BOTELLA
90. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS
DE BOTELLA
91. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA TÉCNICAS DE PROCESADO
POR BLOQUES (CHUNKS) PARA
PROCESAR GRANDES
CANTIDADES DE DATOS
Ejemplo: Exportar/Importar datos desde una fuente externa
92. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CACHÉ SI,
CACHÉ NO
USA UNA ESTRATEGIA Y NO IMPROVISES
93. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UI
ADMIN
SCREENS FRONT
(public)(dashboard)
95. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITA CONFLICTOS
¿Sabéis cual es la regla del !important?
96. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
HTML, CSS Y JAVASCRIPT
SIGUE SIENDO CÓDIGO
(código limpio)
97. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CARGAS CONDICIONALES
(carga lo mínimo en cada petición)
98. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SI EXISTEN POCOS
SETTINGS PIENSA DONDE
PRESENTARLOS
(no siempre tener tu propio menú es lo mejor)
(KISS)
99. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA LAS FUNCIONES DE
WORDPRESS PARA GESTIONAR
LAS PANTALLAS Y LOS
SETTINGS DE BACKOFFICE
100. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
https://codex.wordpress.org/Settings_API
103. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA FUNCIONES DE WORDPRESS PARA
AÑADIR EL JAVASCRIPT Y CSS QUE DARÁN
FORMA, COLOR Y COMPORTAMIENTO A LAS
PANTALLAS
(se aplica el mismo criterio: WP Friendly)
104. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
wp_enqueue_script
wp_dequeue_script
wp_enqueue_style
wp_dequeue_style
wp_add_inline_script
wp_add_inline_style
wp_register_style
wp_deregister_style
wp_register_script
wp_deregister_script
wp_script_is
wp_localize_script
wp_enqueue_media
admin_enqueue_scripts
admin_print_scripts
admin_print_styles
add_action (‘wp_head','hook_inHeader');
add_action( 'admin_head', 'my_custom_admin_head' );
Funciones WP para gestión de assets
105. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
wp_enqueue_script
wp_dequeue_script
wp_enqueue_style
wp_dequeue_style
wp_add_inline_script
wp_add_inline_style
wp_register_style
wp_deregister_style
wp_register_script
wp_deregister_script
wp_script_is
wp_localize_script
wp_enqueue_media
admin_enqueue_scripts
admin_print_scripts
admin_print_styles
add_action (‘wp_head','hook_inHeader');
add_action( 'admin_head', 'my_custom_admin_head' );
¿AÚN TIENES EXCUSAS?
Funciones WP para gestión de assets
106. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SI PUEDES, USA ALGUNAS
TÉCNICAS WPO PARA OPTIMIZAR
LA CARGA DE LAS PÁGINAS
107. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FACILITA SHORTCODES
109. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSES DEL
PRE_GET_POSTS
110. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS
DE BOTELLA
111. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS
DE BOTELLA
112. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
REALIZA BÚSQUEDAS CONDICIONADAS
AL CONTEXTO DE BÚSQUEDA
113. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
POR SUPUESTO, FILTRA Y VALIDA
LAS CADENAS DE BÚSQUEDA DE
LOS USUARIOS
(ojito con las cadenas que llegan por $_GET[’s'])
114. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SEGURIDADXSS
SQL
INYECTION
SSI
SESSION
CAPTURING AND
HIJACKING
CODE INJECTION
VALIDACIÓN
DE CAMPOS
VALIDA
TODAS LAS
PETICIONES
PREPARE
SQL
ESCAPA
CADENAS
LIMITA EL USO
CON
CAPABILITIES
116. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EXTENSIÓN DE
TERCEROS
117. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
RESPETOmuchos han trabajado, trabajan y
trabajarán a cambio de nada o muy
poco
118. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CORRECTAMENTE
LOS HOOKS
DISPONIBLES
119. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CORRECTAMENTE
LOS HOOKS
DISPONIBLES
HOOK
120. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SÉ FUERTE
NO MODIFIQUES EL
CÓDIGO DE UN TERCERO
121. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
RESPETA LOS LÍMITES DE LA EXTENSIÓN
PERMITIDA, NO TE EXCEDAS, NO
MODIFIQUES COMPORTAMIENTO QUE NO
ESTÁ PENSADO PARA TAL PROPÓSITO
122. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EJEMPLO CLARO
LAS EXTENSIONES DE
WOOCOMMERCE
123. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
API REST
https://developer.wordpress.org/rest-api/
124. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
BUGS, DEBUG, FIX,
UPDATE
Debug Bar + Add-ons
Query Monitor
P3 Profiler
xdebug +
125. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
GESTOR DE TAREAS,
ISSUE TRACKER
127. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DOCUMENTA TODO LO
QUE HACES
(Facilita el trabajo a los demás)
128. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FEEDBACK
(Escucha a tus usuarios)
129. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
POLITICA DE ACTUALIZACIONES
TENIENDO EN CUENTA TODOS
LOS CAMBIOS
130. KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
1.Olfato
2.Opiniones de camaradas
3.Frecuencia de actualizaciones
4.Issues
5.Soporte
6.Compatibilidad
7.Reviews
8.Calidad de código y performance
MI CRITERIO PARA
SELECCIONAR UN
PLUGIN