Entiendo el deseo de migrar a los usuarios al argumento include_condition en un uso estándar del método add_to_serializer, es decir, para agregar sus propios métodos a los serializadores.
Sin embargo, hay algunas instancias en las que un plugin puede querer agregar un método include_* a un serializador que no coinciden con ese caso, es decir, cuando no estás determinando si tu propio atributo personalizado está incluido, sino que estás anulando un método include_* en un serializador principal, por ejemplo.
Aprecio que ese uso en particular podría ser reconsiderado para no requerir una anulación del método del serializador del sitio, o que la anulación podría lograrse de otras maneras, pero me pregunto si hay alguna desventaja inherente en permitir dicho uso del método add_to_serializer de esta manera, y si la depreciación conducirá a la eliminación del uso del método de esta manera.
Recientemente hemos introducido un nuevo sistema para ‘modificadores de plugins’, que son puntos de extensión muy económicos y similares a DiscourseEvent pero toman un valor de entrada y devuelven un valor. Así que en tu caso, podrías hacer una PR principal para agregar una llamada a DiscoursePluginRegistry.apply_modifier en el método include_ relevante, y luego puedes usar register_modifier en tu plugin para anular el valor.
Es probable que eventualmente lo bloqueemos por completo, sí. Además, realmente no querrás usar un método que esté generando ruido de deprecación en los registros.
Si realmente debes anular un método sin la cooperación del núcleo, entonces modify_class parecería ser la mejor opción. La razón principal por la que tenemos un add_to_serializer dedicado es porque define automáticamente un método include_* para que solo se aplique cuando el plugin está habilitado.
Eso significa que el fragmento de código que enlazaste actualmente está definiendo dos métodos. include_wizard_required? y include_include_wizard_required?
Ese Readme dice que “opera como una pila (primero en entrar, primero en salir)”, pero eso es una cola. Una pila es primero en entrar, último en salir. (No puedo averiguar ni siquiera cómo copiar el texto en mi teléfono).
Es más como una ‘pila intermedia’: una serie de métodos que se ejecutan en orden, cada uno de los cuales pasa su resultado a la entrada del siguiente método.
No creo que intentar aplicar la terminología LIFO/FIFO aquí funcione: no se está agregando/eliminando nada de la ‘pila’, no hay una ‘salida’.
este es más o menos mi problema. Tengo una brecha reciente de casi 10 años en la que apenas me acerqué a una computadora (después de más de 25 años trabajando con ellas) y se siente como una sección de conocimiento faltante enorme.