The context :
I'm using php langage in order to develop a new module on Dolibarr software and I need your help because I don't overcome to solve my issue since 2 days.
The process :
I created a very simple php form with only 2 fields : lastname ("nom" in French) and firstname ("prénom" in French). I fill my form, then I submit it and I should have my object saved into my MySQL database.
The issue :
I'm getting a blank page and none object is saved into my database.
Files :
The first one according to the new table :
#llx_moduletest_myobject.sql 
CREATE TABLE llx_moduletest_myobject(
    -- BEGIN MODULEBUILDER FIELDS
    rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(255) NOT NULL,
    prenom VARCHAR(255) NOT NULL
    -- END MODULEBUILDER FIELDS
) ENGINE=innodb;
The second one corresponds to the action and the view :
#card.php
<?php
// Load traductions files requiredby by page
$langs->loadLangs(array("moduletest@moduletest","other"));
// Get parameters
$id         = GETPOST('id', 'int');
$ref        = GETPOST('ref', 'alpha');
$action     = GETPOST('action', 'alpha');
$cancel     = GETPOST('cancel', 'aZ09');
$backtopage = GETPOST('backtopage', 'alpha');
// Initialize technical objects
$object=new MyObject($db);
/*
 * Actions
 *
 * Put here all code to do according to value of "action" parameter
 */
// If create a request
if ($action == 'create')
{
        $object = new FormFile($db);
        $db->begin();
            $nom = GETPOST('nom');
            $prenom = GETPOST('prenom');
        // If no name
            if (empty($nom))
            {
                setEventMessages($langs->trans("Pas de nom"), null, 'errors');
                $error++;
                $action='create';
            }
        // If no firstname
            if (empty($prenom))
            {
                setEventMessages($langs->trans("Pas de prénom"), null, 'errors');
                $error++;
                $action='create';
            }
            $result = 0;
            if (! $error)
            {
                $object->nom = $nom;
                $object->prenom = $prenom;
                $result = $object->create($user); //return int
             if ($result <= 0)
                {
                        setEventMessages($object->errors, 'errors');
                        $error++;
                        }        
                }
            // If no SQL error we redirect to the request card
            if (! $error)
            {
                print $db->commit();
                $db->commit();
                header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
                exit;
            }
            else
                {
                $db->rollback();
            }
}
/* ************************ 
 View
 *********************** */
$form=new Form($db);
$formfile=new FormFile($db);
llxHeader('', $langs->trans('Formulaire de test'));
// Part to create
if ($action == 'create')
{
    // Formulaire de test
        print load_fiche_titre($langs->trans('Formulaire de test'), '', 'title_hrm.png');
    // Formulaire de test
        print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'" onsubmit="return valider()" name="Formulaire de test">'."\n";
        print '<input type="hidden" name="action" value="create" />'."\n";
        dol_fiche_head();
        print '<table class="border" width="100%">';
        print '<tbody>';
    // Nom
        print '<tr>';
        print '<td class="fieldrequired">'.$langs->trans("Nom").'</td>';
        print '<td>';
        print '<input type="text" name="nom" value="'.$object->nom.'">';
        print '</td></tr>';
    // Prenom
        print '<tr>';
        print '<td class="fieldrequired">'.$langs->trans("Prenom").'</td>';
        print '<td>';
        print '<input type="text" name="prenom" value="'.$object->prenom.'">';
        print '</td></tr>';
        print '</tbody>';
        print '</table>'; 
        dol_fiche_end();
        print '<div class="center">';
        print '<input type="submit" value="'.$langs->trans("Valider le formulaire").'" name="bouton" class="button">';
        print '    ';
        print '<input type="button" value="'.$langs->trans("Cancel").'" class="button" onclick="history.go(-1)">';
        print '</div>';
        print '</form>'."\n";
}
// End of page
llxFooter();
$db->close();
I have a create() function : $result = $object->create($user); //return int
This function lets to create object into my database :
#moduletestmyobject.class.php
function create($user, $notrigger=0)
    {
        global $conf, $langs;
        $error=0;
        // Clean parameters
        if (isset($this->prop1)) $this->prop1=trim($this->prop1);
        if (isset($this->prop2)) $this->prop2=trim($this->prop2);
        // Check parameters
        // Put here code to add control on parameters values
        // Insert request
        $sql = "INSERT INTO ".MAIN_DB_PREFIX."moduletest_myobject(";
        $sql.= " field1,";
        $sql.= " field2";
        $sql.= ") VALUES (";
        $sql.= " '".$this->prop1."',";
        $sql.= " '".$this->prop2."'";
        $sql.= ")";
        $this->db->begin();
        dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
        $resql=$this->db->query($sql);
        if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
        if (! $error)
        {
            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."moduletest_myobject");
        }
        // Commit or rollback
        if ($error)
        {
            foreach($this->errors as $errmsg)
            {
                dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
                $this->error.=($this->error?', '.$errmsg:$errmsg);
            }
            $this->db->rollback();
            return -1*$error;
        }
        else
        {
            $this->db->commit();
            return $this->id;
        }
    }
I'm getting this issue in apache2 logs :
Uncaught Error: Call to undefined method FormFile::create()
 
     
     
    