Complemento SVN y API de actualización: ¿cómo se identifican los complementos?

11

Una cosa que nunca me ha quedado clara (especialmente porque no he enviado un complemento al repositorio) es cómo se genera la "ID" (slug) única de un complemento (es decir, esta lista ).

  1. ¿Es una elección del autor en el momento de la presentación de SVN o de un moderador?
  2. ¿Es el nombre del complemento desinfectado (título)?
  3. Es el plugin_basename?
  4. ¿Es el archivo de complemento principal (sin el nombre del directorio)?
  5. ¿Algo más?

Tengo curiosidad por saber qué atributo (s) de un complemento lo vincula a su contraparte SVN (si tiene uno) para la API de actualización del complemento.

Pregunto, en parte por mi naturaleza, querer saber, pero también cómo asegurarme (hasta cierto punto), mis propios complementos únicos no chocarán con uno en el SVN.

Por ejemplo, si solo fuera 3) , podría usar un nombre de directorio muy exclusivo, pero mantener mi nombre de complemento (título) corto y dulce.


NB Mientras que parece ser la convención de nombres de archivos "estándar" [my-plugin-name]/[my-plugin-name].php, me gusta [my-plugin-name]/plugin.php.

Da a todos mis complementos algo de coherencia, está claro que es el archivo "bootloader" (principal), y desde un punto de vista insignificante, odio la repetición del nombre del directorio.

Esta es otra razón por la que hago la pregunta, ya que 4) me fastidiaría. Además, me gustaría escuchar tu opinión sobre este "estándar" también :)

TheDeadMedic
fuente
posible duplicado de ¿Cómo crear una API para mi plugin?
JayDeep Nimavat

Respuestas:

6

Al enviar un complemento, la babosa se convierte en el nombre del complemento desinfectado, tal como se envió. El "Nombre" del complemento puede cambiar después de esto, pero la babosa sigue siendo la misma para siempre.

Cuando WordPress necesita verificar una actualización del complemento, obtiene toda la información del encabezado del complemento y el nombre del directorio en el que se encuentra el complemento, y lo envía a WordPress.org.

Actualmente se utilizan tres factores para intentar hacer una coincidencia con los complementos del directorio. Tenga en cuenta que digo "actualmente", porque esto cambia de vez en cuando a medida que intentamos mejorar los algoritmos de coincidencia.

  1. El nombre del directorio del complemento suele ser el "slug" del complemento. Al menos, lo es si lo instaló desde el directorio para empezar. Así que buscamos una babosa con ese nombre de directorio. Este no es un gran indicador, pero ayuda.

  2. También se busca el "Nombre" en el encabezado del complemento, ya que el Nombre debe ser único en el directorio del complemento. Si no hay una coincidencia en ese nombre exacto, entonces el Nombre se desinfecta para producir una babosa, y también buscamos esa babosa, por si acaso. Esto no siempre funciona.

  3. El "URI del complemento" en el encabezado también se verifica para una coincidencia. Como conocemos ese valor para todos los complementos en el directorio, eso puede considerarse razonablemente único para cada complemento. Por lo tanto, se recomienda a los autores de complementos que coloquen un URI de complemento que apunte a un dominio que controlen y a una URL que sea exclusiva del complemento.

Los tres factores se ponderan y se devuelve el resultado superior. Los pesos utilizados para cada uno de los tres reflejan un nivel de confianza en la precisión de los datos. Por ejemplo, Nombre tiene un peso más alto que plugin-directory-as-slug, porque la mayoría de los autores no cambian los Nombres de plugin con mucha frecuencia, y plugin-directory puede ser cualquier cosa si el usuario lo instaló manualmente o algo así.

Cuanto más cerca esté la coincidencia de estos tres elementos, más probable es que coincida con el complemento. Pero se debe encontrar al menos una coincidencia exacta en estos para que se devuelva cualquier resultado.

Para complementos únicos personalizados, tiendo a usar el nombre del sitio en el nombre del complemento. Esto también me ayuda con la organización. Entonces, mi nombre de complemento único podría ser "ottopress.com - Solucionar problema con lo que sea". Es poco probable que cualquier complemento en el directorio coincida con su dominio.

Otón
fuente
¡Increíble! No creo que sea el único en apreciar esta respuesta;)
TheDeadMedic
2

Dado que la entrada SVN obviamente se crea antes de confirmar su complemento por primera vez, se basa en su solicitud inicial de entrada. No sé si el proceso es técnico o manual, probablemente un poco de ambos.

Para fines de actualización, se envía mucha información y el repositorio intenta determinar la coincidencia, en función del nombre del complemento, el nombre del directorio, la versión actual y posiblemente más. No sé si alguna vez se publicó el algoritmo exacto.

Rarst
fuente
1
Recuerdo que @ otto42 en el pasado indicaba que AuthorURI se usa como un token único en este proceso, ya que, aunque la babosa Plugin puede chocar, la combinación de Plugin slug y AuthorURI casi nunca lo hará.
Chip Bennett
Saludos chicos, así que está bastante claro que no es solo un atributo particular. Sin embargo, sería una idea ver el algoritmo. ¿Alguna idea sobre mi convención de nomenclatura de archivos?
TheDeadMedic
El nombre de archivo @TheDeadMedic no importa mucho en general, tampoco creo que sea suficiente para confundir la lógica de actualización.
Rarst