Para algunos, WP-Cli puede parecer un comodidad agradable, pero opcional para un desarrollador de WordPress que se siente cómodo con la línea de comandos. Para los desarrolladores que han enfrentado problemas de tiempo de espera en los procesos de PHP o que administran muchos sitios web, WP-CLI es más que eso: es una herramienta de ahorro de tiempo y energía. Hoy veremos cuidadosamente un solo comando WP-Cli para averiguar cómo funciona. Al hacer esto, descubriremos más sobre cómo funcionan las órdenes de WP-CLI y qué debemos hacer para hacer las las nuestras.
Este artículo implica una cantidad suficiente de comodidad y conocimiento con la línea de comando en general y WP-CLI en particular. Realmente no aprenderemos cómo pilotarlo, sino cómo funciona dentro. Independientemente de su familiaridad con WP-CLI, manténgase al día con la próxima sección, tenemos mucho otro contenido gratuito que puede ayudarlo. La lectura útil antes de aprender sobre la redacción de comandos WP-CLI Aprender los elementos básicos de WP-CLI en sí es el lugar inicial. Este artículo funcionará desde esta base. Si desea una actualización de lo que es una “CLI”, puede comenzar con esto:
¿Cuál es la línea de comando? CLI de los primeros principios Si tiene esa parte bajo control, pero necesita una introducción al WP-CLI, comience aquí: qué, cómo y por qué WP-cli: WordPress en su terminal también tenemos una serie de otros elementos, guías rápidas Y muchos más que tienen videos que pueden ayudarlo a ver algunas de estas cosas en acción. Aquí están algunas:
Guía rápida: navegación del sistema de archivos en la línea de comandos
Artículo: 10 órdenes para archivos CLI UNIX que cada desarrollador de WordPress debe saber rápidamente: cómo y por qué una fiesta de alias
Guía rápida: Instalación de WP-CLI
Enlace de la publicación: WRK WP-CLI comandos que funcionan
¿Qué es un comando wp-cli? A diferencia de gran parte de los desarrolladores de WordPress Core y WordPress escritos, WP-CLI hace que muchas cosas sucedan con los objetos PHP. (Si desea una introducción a la programación orientada al objeto en PHP, lea estos dos artículos: los conceptos básicos de OOP y el buceo más profundo en la orientación de objetos).
Un comando WP-CLI es una sola acción o conjunto de acciones que están registradas con WP-CLI a través de un gancho. Es lo mismo que la mayoría de los WordPress. Sin embargo, la diferencia es que, además de registrar un solo pedido con una sola llamada a ese gancho, con WP-CLI puede conectar un objeto PHP completo a su llamada. En este caso, todos los métodos públicos en su objeto se convierten en CLI ejecutables (o subcomando, si lo prefiere). Esta es una opción realmente genial y poderosa, pero no es algo que cada desarrollador de WordPress espere que suceda de forma predeterminada. La primera vez que escuché eso, dudé sutilmente que entendí correctamente. WordPress no contiene demasiadas brujas.
El orden que estudiaremos y por qué: WP DB Importa cómo WP-CLI (el proyecto básico) está realmente organizado hoy está en una serie de depósitos distintos para muchos de los pedidos que pueden actuar de inmediato.Por lo tanto, los componentes del complemento son completamente distintos del núcleo, y en el lanzamiento, el proceso utiliza el compositor para ingresar todos los pedidos que deben estar en la base establecida antes del empaque final.Este es otro gran ejemplo de modularidad y pensamiento anticipados, pero puede desencadenar a algunas personas.Algunos de los comandos, complementos y tema, por ejemplo, están en WP-CLI/WP-CLI, pero la mayoría de los otros están fuera de él.Y creo que los extraños son útiles para alguien que está pensando en escribir sus propias órdenes.Después de todo, si pudiera agregar órdenes al núcleo WP-CLI, ya sabría cómo hacer una extensión.
En cualquier caso, el orden que veremos más de cerca y entenderemos un poco mejor es el importador de la base de datos. Como mencioné en el artículo en el que discutimos WP-CLI, uno de los poderes realmente interesantes de WP-CLI es importar y exportar bases de datos sin tener que llamar a PhPMyadmin o herramientas similares. Este comando es solo la parte de importación de ese proceso. Pero primero, un poco más sobre el proyecto general en el que vive. Cómo se registran y se ejecutan los comandos WP-CLI: varias veces diferentes en este artículo, me referiré a los números de línea en el paquete de software DB-Command que hace que las funciones de WP DB estén disponibles en WP-CLI. Al leer esto, es muy posible que estos números de línea hayan cambiado. Pero haré un enlace a cada número de línea al que me refiero en GitHub, y esos enlaces están anclados a la confirmación que fue actual cuando lo escribí. Por lo tanto, todas las referencias deben llevarse a cabo de esta manera, aunque el código puede cambiar en el futuro.
Dicho esto, la forma en que se registra un pedido (objeto) con WP-CLI debe ser lo suficientemente cómodo para cualquier desarrollador de WordPress de larga duración porque tiene mucho en común con la mayoría de los códigos de WordPress están registrados con la aplicación básica. tiempo de ejecución. Después de un poco de calderas en db-command.php, la línea base (12) que hace que este conjunto de comandos, incluido nuestro orden específico, la importación WP DB, se puede ejecutar en WP-CLI es: WP_CLI :: ADD_COMMAND (‘DB’ , ‘db_command’); ¿Qué hace esto? Llama al método estático add_command en la clase básica wp_cli. El método estático es un nuevo susurro, pero por lo demás es bastante similar a la sintaxis de funciones familiares como add_action () o registrar_widget (). Este último es una coincidencia ligeramente mejor, porque tanto con add_command como con registro_widget, transmite un nombre de clase, en lugar de un cierre de función o un nombre de función.
Sin embargo, para WP-CLI, primero especifique cómo se invocará el pedido (o el conjunto de pedidos) desde la línea de comando.En nuestro ejemplo aquí, este es el argumento de DB.Como mencioné, todos los métodos públicos de la clase DB_COMMAND serán accesibles allí.Es posible registrar algo como DB CoolMethod específicamente, pero en este caso vemos que toda la magia de ¿qué tal una docena de comandos se registran con WP-CLI en una sola línea?Cómo las órdenes WP-CLI documentadas Una de las cosas interesantes y mágicas sobre WP-CLI es que todos los pedidos están documentados en la línea de comandos.Además, esto es en realidad el resultado de comentarios de PHP que existen más o menos en línea con el comando en sí.Esto tiene muchos beneficios.

Entonces, antes de mirar el código de orden de importación de WP, veamos el bloque de documentación. Lo que debe hacer es que lo que está buscando (en las filas 340-361) es lo que obtiene cuando está en la ayuda del comando WP DB Import. /*** Importar una base de datos desde un archivo o desde Stdin. * * Ejecuta consultas SQL usando `db_host`,` db_name`, `db_user y *` db_password` credenciales de base de datos especificadas en wp-config.php. Esto * no crea una base de datos por sí misma y solo actuaciones, cualesquiera que las tareas hayan * definidas en el SQL. * * ## opciones * * [] *: el nombre del archivo SQL para importar. If ‘-‘, entonces lee desde Stdin. Si se omite, buscará ‘{dbname} .sql’. * * [–skip-optimization] *: cuando se usa un archivo SQL, no incluya la optimización de velocidad, como deshabilitar las comprobaciones de autocommitte y clave. * * ## Ejemplos * * # Importar mySQL desde un archivo. * $ Wp db import wordpres_dbase.sql * éxito: importado de ‘wordpres_dbase.sql’. */ Por lo tanto, el primer párrafo, “Importar una base de datos …” es un resumen corto. Es lo que ves cuando presionas WP DB – -Help. También es la primera línea para WP DB Import -Help. El resto también es visible al realizar este último pedido. El segundo párrafo es la descripción más exhaustiva. La sección de opciones ## le indica todos los argumentos posibles, y la sección de ejemplos ## también desea ver la documentación de pedido en la línea de comando.
Esta documentación no es completamente necesaria para que un comando WP-CLI se ejecute correctamente, pero es realmente un buen hábito de ingresar. Y si lo escribe primero, le hace pensar un poco más sobre cómo su usuario usará su trabajo. Esto es casi siempre algo bueno. Cómo funciona la importación de DB WP el algoritmo real y el conjunto de funciones que usa este orden específico no tiene sentido si lee este artículo para averiguar cómo se estructuran los pedidos WP-CLI. Pero hay algunas cosas interesantes que podemos atrapar. Aquí está, ligeramente acortado: importación de función pública ($ args, $ asociar_args) {if (! Vacía ($ args [0])) {$ result_file = $ args [0]; } else {$ result_file = sprintf (‘%s.sql’, db_name); } $ mysql_args = array (‘base de datos’ => db_name,); if (‘-‘! == $ result_file) {if (! is_redable ($ result_file)) {wp_cli :: error (sprintf (el archivo de importación falta o no legible: %s ‘, $ result_file)); } $ query = ‘fuente %s;’; $ mysql_args [‘ejecute’] = sprintf ($ query, $ result_file); } Self :: run (‘/usr/bin/env mysql-no defaults-no-ao-inhash’, $ mysql_args); WP_CLI :: Success (sprintf (“importado de ‘%s’.”, $ Result_file));
} En primer lugar, como se mencionó anteriormente, el hecho de que este método se declare como una importación de función pública (…) en 362 es crucial. Esa audiencia es la parte interesante e importante. Si registra una clase de comandos CLI, como lo hace esta extensión, todos los métodos públicos se tratan como comandos CLI que se pueden ejecutar. Entonces, si desea tener otros métodos que no se pueden realizar para su clase (para subrutinas, etc.), debe asegurarse de hacerlos privados o protegidos. Después de eso, el pedido adivina qué archivo debe importar si no se proporciona ese archivo (365). Aquí, el uso del primer argumento del método, $ args, es notable. Esta es la lista ordenada de las opciones pasadas en la sección de opciones ## de la documentación. El segundo argumento del método es el mismo, pero con los nombres colocados como claves en lugar de posiciones simples. La línea 375 es notable para el uso de wp_cli :: error (). Este es un pequeño envoltorio lindo (uno de los pocos) para permitirle notificar al usuario que algo ha sucedido. Pero en este caso, también es una indicación de que algo salió mal (o, para el método exitoso y correcto) para el orden que ejecuta. Lo que es muy bueno de estos es que hago el script y emito el código de salida correcto para que otros comandos de CLI puedan entender. Echo funciona al escribir comandos WP-CLI, pero estos métodos deben preferirse. Finalmente, la línea 385 merece una explicación: self :: run (‘/usr/bin/env mysql-no defaults-no-ao-inhash’, $ mysql_args);
Anatomía de un comando wp-cli: importación de la base de datos WP
Tags Anatomía de un comando wp
homefinance blog