Objeto estándar Constructor

Funciones del objeto estándar


Estas son las funciones del objeto estándar:
Cada una de ella será explicada en su propio tutorial.
  • constructor
  • get
  • set
  • set_attributes
  • assing_components
  • exceptions
  • basic_exceptions
  • pre_edit (es una función utilizada a la hora de editar un objeto, se verá mas adelante en la capa orm)

Para analizar cada una de las funciones, y hacer la explicación mas practica, utilizaremos el siguiente ejemplo:

example-classes25533.jpg

Tenemos 2 clases, la clase persona (person) y la clase jefe (boss); la clase persona tiene los siguientes atributos: document, name, lastname, age y boss; y la clase jefe tiene los siguientes atributos: (document, name, charge).
Ademas existe una relación en la cual un jefe puede ser el jefe de ninguna o muchas personas, y una persona puede tener o no un solo jefe.

En base a esto trabajaremos los siguientes tutoriales.

Ahora creemos el archivo boss.php en la ruta work/classes/boss.php con la siguiente información:

<?php

class boss extends object_standard
{
    
//attribute variables
    
protected $document;
    protected 
$name;
    protected 
$charge;
    
    
//components
    
var $components = array();
    
    
//auxiliars for primary key and for files
    
var $auxiliars = array();
    
    
//data about the attributes
    
public function metadata()
    {
        return array(
"document" => array("name" => "Document""type" => "bigint"
                     
"required" => "not null""length" => "20""additional" => array()),
 
"name" => array("name" => "Name""type" => "string""required" => "not null"
                      
"length" => "30""additional" => array()),
 
"charge" => array("name" => "Charge""type" => "string""required" => "not null"
                      
"length" => "30""additional" => array())); 
    }

    public function 
primary_key()
    {
        return array(
"document");
    }
    
    public function 
relational_keys($option)
    {
        switch(
$option)
        {        
            default:
            break;
        }
    }
    
    function 
additional_exceptions($list$check, &$message)
    {
    }
    
    
//
    //space for class functions and methods
    //
}

?>

Y creemos el archivo person.php en la ruta work/classes/person.php con esta información:

<?php

class person extends object_standard
{
    
//attribute variables
    
protected $document;
    protected 
$name;
    protected 
$lastname;
    protected 
$age;
    protected 
$boss;
    
    
//components
    
var $components = array();
    
    
//auxiliars for primary key and for files
    
var $auxiliars = array();
    
    
//data about the attributes
    
public function metadata()
    {
        return array(
"document" => array("name" => "Document""type" => "bigint"
                      
"required" => "not null""length" => "20""additional" => array()),
 
"name" => array("name" => "Name""type" => "string""required" => "not null"
                      
"length" => "30""additional" => array()),
 
"lastname" => array("name" => "Lastname""type" => "string""required" => "not null",
                      
"length" => "30""additional" => array()),
 
"age" => array("name" => "Age""type" => "int""required" => "not null""length" => "30",
                      
"additional" => array()),
 
"boss" => array("name" => "Boss""type" => "bigint""required" => "null"
                      
"foreign_name" => "b_p""foreign" => "boss"
                      
"foreign_attribute" => "document""length" => "20"
                      
"additional" => array())); 
    }

    public function 
primary_key()
    {
        return array(
"document");
    }
    
    public function 
relational_keys($class$rel_name)
    {
        switch(
$class)
        {
            case 
"boss":
            switch(
$rel_name)
            {
                case 
"b_p":
                return array(
"boss");
                break;
            }
            break;
                    
            default:
            break;
        }
    }
    
    function 
additional_exceptions($list$check, &$message)
    {
    }
    
    
//
    //space for class functions and methods
    //
}

?>

Hasta ahora tenemos creadas las 2 clases que nos servirán en los tutoriales siguientes para trabajar de ejemplos todas las funciones del objeto estándar y las partes de una clase.
Objeto estándar Constructor