Plan de portado del Engine PHP a Harbour
Inventario ordenado por prioridad real para convertir el Engine actual a Harbour sin portar disenador, endpoints web ni renderizado HTML.
| Orden | Archivo PHP | Que hace | Que usa | Quien lo usa | Dificultad | Estado |
|---|---|---|---|---|---|---|
| 1 | public/motor/clases/TBarcodeUtil.php |
Normaliza y genera datos de barcode. | Funciones de cadenas PHP. | TBarcode.php, TFuncFormulas.php. |
Baja | Portado |
| 2 | public/motor/clases/TImageUtil.php |
Resuelve imagen a origen renderizable. | Ficheros, MIME, base64, rutas. | TImage.php. |
Media | Portado |
| 3 | public/php/TObjectBase.php |
Base comun de objetos de plantilla. | TContextoEjecucion, datos de capa, formulas de color. |
TText, TRectangle, TEllipse, TLine, TBarcode, TImage. |
Media | Portado |
| 4 | public/php/TRectangle.php |
Genera IR de rectangulos. | TObjectBase. |
TDocument.php, TTable.php. |
Baja | Portado |
| 5 | public/php/TEllipse.php |
Genera IR de elipses. | TObjectBase. |
TDocument.php. |
Baja | Portado |
| 6 | public/php/TLine.php |
Genera IR de lineas. | TObjectBase. |
TDocument.php. |
Baja | Portado |
| 7 | public/php/TBarcode.php |
Genera IR de codigos de barras. | TObjectBase, TBarcodeUtil, TContextoEjecucion. |
TDocument.php, TTable.php. |
Media | Portado |
| 8 | public/php/TImage.php |
Genera IR de imagenes. | TObjectBase, TImageUtil, TContextoEjecucion. |
TDocument.php, TTable.php. |
Media | Portado |
| 9 | public/php/TText.php |
Genera IR de textos. | TObjectBase, TContextoEjecucion, evaluacion de formulas. |
TDocument.php, TTable.php, TMotorComposicion.php. |
Media | Portado |
| 10 | public/php/TTable.php |
Genera IR de tablas con detalle y grupos. | TRectangle, TText, TBarcode, TImage, TContextoEjecucion. |
TDocument.php, TMotorComposicion.php. |
Muy alta | Portado |
| 11 | public/php/TDocument.php |
Modelo del documento y fabrica de objetos. | TText, TRectangle, TEllipse, TLine, TBarcode, TImage, TTable. |
TPlantilla.php, scripts de preview/export/tests. |
Alta | Portado |
| 12 | public/motor/clases/TConectorDatos.php |
Carga y normaliza datos de ejecucion legacy. | JSON, ficheros, variables DataVar, DetalleVar, UserVar, AcumVar. |
TConectorDatosReg.php, TContextoEjecucion.php, TMotorEjecucion.php, tests. |
Alta | Portado |
| 13 | public/motor/clases/TConectorDatosReg.php |
Recibe datos runtime en memoria. | TConectorDatos, estructuras/registros VAR y LINE. |
TLLDominusPHP.php, TContextoEjecucion.php, TMotorEjecucion.php, tests datos_reg. |
Media | Portado |
| 14 | public/motor/clases/TFuncFormulas.php |
Implementa funciones de formulas. | TBarcodeUtil, fechas, numeros, cadenas. |
TEvaluadorFormulas.php. |
Alta | Portado |
| 15 | public/motor/clases/TEvaluadorFormulas.php |
Evalua formulas y condiciones. | TFuncFormulas, variables, contexto de pagina. |
TContextoEjecucion.php, validar_formula.php, tests. |
Muy alta | Portado |
| 16 | public/motor/clases/TContextoEjecucion.php |
Mantiene contexto runtime. | TConectorDatos, TConectorDatosReg, TEvaluadorFormulas, acumuladores, paginas, capas. |
Objetos PHP, TTable.php, TMotorEjecucion.php. |
Muy alta | Portado |
| 17 | public/motor/clases/TPlantilla.php |
Carga .lbl como documento. |
TDocument, JSON, ficheros. |
TMotorEjecucion.php, scripts de preview/export/tests. |
Media | Portado |
| 18 | public/motor/clases/TMotorComposicion.php |
Convierte objetos en renderizables. | Objetos con generarRenderizable(), TContextoEjecucion. |
TMotorEjecucion.php. |
Baja | Portado |
| 19 | public/motor/clases/TDocumentoRenderizable.php |
Contenedor del documento IR. | Estructuras de paginas y avisos. | TMotorPaginacion.php, TMotorEjecucion.php, renderizadores/endpoints. |
Baja | Portado |
| 20 | public/motor/clases/TMotorPaginacion.php |
Agrupa renderizables en paginas. | TDocumentoRenderizable. |
TMotorEjecucion.php, tests de paginacion. |
Media | Portado |
| 21 | public/motor/clases/TMotorEjecucion.php |
Orquesta ejecucion completa a IR. | TPlantilla, TConectorDatos, TConectorDatosReg, TContextoEjecucion, TMotorComposicion, TMotorPaginacion. |
index.php, preview.php, export_ir.php, tests, futura API Harbour. |
Alta | Portado |
PHP que si debe portarse
public/motor/clases/TBarcodeUtil.php: ya portado; dependencia de barcode y formulas.public/motor/clases/TImageUtil.php: ya portado; dependencia de imagenes.public/php/TObjectBase.php: ya portado; base comun de objetos.public/php/TRectangle.php: ya portado; objeto simple.public/php/TEllipse.php: ya portado; objeto simple.public/php/TLine.php: ya portado; objeto simple.public/php/TBarcode.php: ya portado; objeto con util de barcode.public/php/TImage.php: ya portado; objeto con util de imagen.public/php/TText.php: ya portado; objeto de texto.public/php/TTable.php: ya portado; cubierto por test Harbour focalizado en cabecera, detalle, pie yDetalleVar.public/php/TDocument.php: ya portado; carga y crea objetos Harbour porcType.public/motor/clases/TConectorDatos.php: ya portado; contrato base y compatibilidad legacy JSON.public/motor/clases/TConectorDatosReg.php: ya portado; conector definitivo de datos runtime en memoria paraTLLDominusPHP.public/motor/clases/TFuncFormulas.php: ya portado; funciones de formulas cubiertas por test Harbour.public/motor/clases/TEvaluadorFormulas.php: ya portado; condiciones, expresiones y funciones runtime cubiertas por test Harbour.public/motor/clases/TContextoEjecucion.php: ya portado; contexto runtime probado con conector falso.public/motor/clases/TPlantilla.php: ya portado; carga datos normalizados o formato minimopagina/objetos.public/motor/clases/TMotorComposicion.php: ya portado; delega engenerarRenderizable()y registra avisos.public/motor/clases/TDocumentoRenderizable.php: ya portado; contenedor de paginas y tamano de salida.public/motor/clases/TMotorPaginacion.php: ya portado; pagina renderizables en documento IR.public/motor/clases/TMotorEjecucion.php: ya portado; orquesta report normal y etiquetas hasta IR.
PHP que no debe portarse y por que
public/motor/index.php: entrada web HTML; se sustituye por API Cliente/Engine.public/motor/preview.php: endpoint de preview real; se sustituye por llamada a Engine Harbour.public/motor/export_ir.php: endpoint JSON de IR; no se porta literal, solo su contrato.public/motor/validar_formula.php: endpoint web; la logica portable esta enTEvaluadorFormulas.php.public/motor/demo_data.php: datos demo para preview; no pertenece al nucleo.public/motor/recurso_existe.php: helper web de recursos; no pertenece al nucleo.public/motor/clases/TRenderizador.php: base de renderizado HTML actual; el port necesita un renderer Harbour/GDI nuevo.public/motor/clases/TSalidaHtml.php: salida HTML; no forma parte de.lbl + datos -> IR.public/motor/herramientas/*.php: herramientas, generadores y analisis LL12; no son runtime del Engine.public/motor/tests/**/*.php: pruebas PHP actuales; se reemplazan por pruebas Harbour equivalentes.
Fase actual completada: API Harbour cliente consolidada en TLLDominus.prg; usa TConectorDatosReg.prg y TMotorEjecucion.prg directamente. Preview() devuelve IR, no HTML.