Guía para Migrar Modelos de FacturaScripts 2017 a 2018

Desde FacturaScripts 2018, hemos adoptado espacios de nombres, autoloading y notación CamelCase. Por ello, es necesario renombrar tus modelos siguiendo estas nuevas pautas: la primera letra del nombre en mayúscula y sin guiones bajos.

Procedimiento de Renombrado

Ejemplo Antes de la Migración

<?php

class my_model extends fs_model
{
    ...
}

Ejemplo Después de la Migración

<?php
namespace FacturaScripts\Plugins\NOMBRE_PLUGIN\Model;

use FacturaScripts\Core\Model\Base;

class MyModel extends Base\ModelClass
{
    use Base\ModelTrait;
}

Funciones Obligatorias

Los modelos ahora requieren conocer el nombre de la tabla y de la clave primaria. Debes implementar las funciones tableName() y primaryColumn().

public static function primaryColumn()
{
    // Sustituye 'id' por el nombre de la columna que es la clave primaria
    return 'id';
}

public static function tableName()
{
    // Sustituye 'my_table' por el nombre de la tabla
    return 'my_table';
}

Eliminación del Constructor

En versiones anteriores, existía un constructor extenso:

public function __construct($data = false)
{
    parent::__construct('my_table');
    if ($data) {
        $this->id = $this->intval($data['id']);
        ...
    } else {
        $this->id = null;
        ...
    }
}

Ahora, la función loadFromData() sustituye la parte 'if' y clear() reemplaza el 'else'. Implementa 'clear()' si necesitas valores por defecto:

public function clear()
{
    parent::clear();
    $this->fecha = Tools::date();
    $this->hora = Tools::hour();
}

Simplificación del Código

FacturaScripts 2018 facilita un desarrollo más rápido y eficiente. Elimina funciones que ya están implementadas por defecto, tales como:

  • construct()
  • get() y derivados
  • exists()
  • save()
  • delete()
  • test()
  • all() y derivados
  • url()

Consulta más acerca de operaciones comunes con modelos en nuestra documentación.

Uso de la Clase Tools

Las funciones no_html() y random_string() ahora residen en Core\Tools. Añade el use adecuado y llama a las funciones con la sintaxis:

// Coloca debajo del namespace
use FacturaScripts\Core\Tools;
...
public function test()
{
    $this->random = Tools::randomString(99);
    $this->observaciones = Tools::noHtml($this->observaciones);
}
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.31287s

Soporte