Méthodes

Set()

Set(string:$attribute, any:$value)

La méthode Set() permet d’assigner une valeur à un attribut de votre classe.

Utilisation

$s = new student;
$s->Set( "firstname" , "John" );
Note : si vos attributs sont publiques vous pouvez y accéder directement sans passer par la méthode Set()

Get()

any: Get(string:$attribute)

La méthode Get() vous retournera la valeur d’un attribut de la classe.

Utilisation

$s = new student;
$s->Set( "firstname" , "John" );
$fn = $s->Get( "firstname" );
echo $fn;
Note : si vos attributs sont publics vous pouvez y accéder directement sans avoir à utiliser la méthode Get().

Add()

La méthode Add() va vous permettre d’insérer toutes les valeurs contenues dans votre objet dans votre table BDD.

Utilisation

$s = new student;
$s->Set( "firstname" , "John" );
$s->Set( "lastname" , "Doe" );
$s->Set( "birth" , "22-10-1981" );
$s->Add();
Note : la méthode Add() se charge de traiter vos types de données suivant le type de champs en base de données.

Par exemple l’attribut birth correspond au champs birth dans votre base. Ce dernier étant de type date, Genos se chargera automatiquement de la conversion

Load()

La méthode Load() permet de récupérer toutes les informations liées à un enregistrement dont la clé primaire est fournie et les insère dans votre objet.

Utilisation

$s = new student;
$s->Set( "id" ,1);
$s->Load();
Il est important de définir une valeur dans votre attribut correspondant à votre clé primaire avant d’appeler la méthode Load().

Update()

La méthode Update() permet la mise à jour d’un enregistrement dans votre table en prenant en compte la valeur de votre clé primaire.

Utilisation

$s = new student;
$s->Set( "id" ,1); // Je renseigne l'élément que je veux charger
$s->Load();
$s->Set( "firstname" , "Oliver" );
$s->Update(); // je modifie l'élément qui a pour id = 1

Delete()

La méthode Delete() supprime un enregistrement en prenant en compte la valeur de la clé primaire contenu dans votre objet.

Utilisation

$s = new student;
$s->Set( "id" ,1); // Je renseigne l'élément que je veux charger
$s->Delete();

LoadForm()

Qu’y a t-il de plus rébarbatif en PHP que de traiter un formulaire ? La méthode LoadForm() va vous faire gagner un temps considérable sur ce type de traitement.

Les conditions d’utilisation de la méthode sont :

  • Formulaire POST
  • Le nom des champs du formulaire doivent correspondre avec le nom des attributs de la classe
$s = new student;
$s->Set( "firstname" , "John" );
$fn = $s->Get( "firstname" );
echo $fn;
L’exemple ci dessus va :

  • Récupérer les informations du formulaire
  • Les insérer dans l’objet $s
  • Ajouter le contenu de l’objet dans la base de données

LoadArray()

La méthode LoadArray() récupère les valeurs contenues dans un tableau associatif et les insère dans l’objet appelant la méthode.

Utilisation

$arr = new array ();
$arr[ "firstname" ] = "Eikichi" ;
$arr[ "lastname" ] = "Onizuka" ;
$arr[ "birth" ] = "10-03-1980" ;

$s = new student;
$s->LoadArray($arr);
$s->Add();
L’exemple ci-dessus va :

  • Créer un tableau associatif contenant des informations
  • La méthodeLoadArray() fait correspondre les valeurs contenues dans le tableau avec les attributs de l’objet
  • Ajouter le contenu de l’objet dans la base de données

IdList()

array :IdList(string:$query, [ array :$bind])

La méthode IdList() retourne un tableau contenant une liste de clé primaire correspondant aux résultats de la requête passée en paramètre.

Le tableau optionnel $bind correspond à un tableau de bindage pour sécuriser votre requête avec des valeurs provenant de l’extérieur. Utilisation

$query = "SELECT * FROM Student" ;
$s = new student;
$s->IdList($query);

Find()

array :Find( array :$array)

La méthode Find() retourne un tableau à deux dimensions contenant les résultats en prenant comme paramètre les valeurs du tableau $array.

Utilisation

$arr = array ();
$arr[ "firstname" ] = "John" ;
$s = new student;
$res = $s->Find($arr);
Le code ci-dessus va :

  • Créer une variable $arr de type tableau;
  • Créer une clé qui correspond à un attribut de notre classe;
  • Créer un objet $s de type student;
  • Retourner dans un tableau, grâce à la méthode Find(), tous les enregistrements dont le champs firstname est John.

Le nombre de clés dans le tableau $arr est illimité et cumulatif. Si par exemple vous avez un tableau :
$arr = array ();
$arr[ "firstname" ] = "John" ;
$arr[ "lastname" ] = "Doe" ;
La méthode Find() retourne tous les enregistrements dont le firstname est égal à John et dont le lastname est égal à Doe.

StructList()

array :StructList(string:$query, array :$returnFields, [ array :$bind],[string:$json])

$query : votre requête sql $returnFields : tableau contenant une liste de chaîne, chaque chaîne étant le nom d’un champ que vous voulez récupérer. $bind : Il peut arriver que pour des notions de sécurité vous soyez contraint d’avoir dans vos requêtes des valeurs bindées. Ce tableau optionnel vous servira de correspondance entre les clés de bindage et les valeurs réelles. $json : Si cette chaîne de caractère optionnelle a pour valeur “ json ” alors la fonction StructList() vous retournera un tableau de JSON. Utilisation

$query = "SELECT id, firstname, birth FROM Student" ;
$fields = array ( "id" , "firstname" , "birth" );
$s = new student;
$res = $s->StructList($querry,$fields);
L’exemple va :

  • Executer la requête $query
  • $fields indique les champs existants dans la requête $query
  • $res recevra un tableau multidimensionnel

Utilisation JSON
$query = "SELECT id, firstname, birth FROM Student" ;
$fields = array ( "id" , "firstname" , "birth" );
$s = new student;
$res = $s->StructList($querry,$fields, "json" );
L’exemple va :

  • Executer la requête $query
  • $fields indique les champs existants dans la requête $query
  • $res recevra un tableau de json

Utilisation Bindage
$firstname = $_GET[ "firstname" ];
$query = "SELECT id, firstname, birth FROM Student WHERE firstname =
:firstname" ;
$fields = array ( "id" , "firstname" , "birth" );
$bind = array ( "firstname" => $firstname);

$s = new student;
$res = $s->StructList($querry,$fields,$bind);
Dans cet exemple nous avons une variable $firstname qui provient d’une variable globale GET. Cela implique que n’importe qui peut la modifier.

Si un utilisateur malveillant injecte du code SQL dans cette variable ce code risquerait de s’exécuter.

Pour se protéger nous allons utiliser le bindage comme solution.

Sql()

[ array :]Sql(string:$query,[string:$returnValue...], [ array :$bind])

La méthode Sql() lance une requête SQL, la sécurise avec un tableau de bindage et permet même d’obtenir un tableau de résultats.

Utilisation

$req = "UPDATE Student SET birth = '1981-10-22' " ;
$s->Sql($req);
L’exemple met à jour le champs birth de tous les enregistrements de la table student.
$s = new student;

$req = "SELECT * FROM Student" ;
$res = $s->Sql($req, "id" );
L’exemple retourne la liste des id dans la variable $res
$s = new student;

$req = "SELECT * FROM Student" ;
$res = $s->Sql($req, "id" , "firstname" , "lastname" );
L’exemple retourne la liste des id , firstname et lastname de la table Student.
$s = new student;

$bind = array ( "id" =>$_GET[ "id" ]);
$req = "SELECT * FROM Student WHERE id = :id" ;
$res = $s->Sql($req, "id" , "firstname" , "lastname" ,$bind);

SelectList()

SelectList(string:$selectName, string:$fieldValue, string: $fieldOptionText..., [ array :$config],[int:$selectId])

La fonction SelectList() permet de créer une liste déroulante HTML (balise select) en relation avec votre base de données.

$selectName : Correspond à la valeur de l’attribut name de la balise select $fieldValue : Correspond à la valeur du champs qui sera inséré dans l’attribut value de la balise option $fieldOptionText : Correspond à la valeur des champs qui seront affichés dans la liste $config : Tableau optionnel de configuration $selectId : Si le dernier paramètre est un entier alors Genos va présélectionner cette valeur. Utilisation :

$s = new student;
$s->SelectList( "id_student" , "id" , "firstname" , "lastname" );
Résultat HTML



Présélection auto :

Résultat HTML



L’utilisation du tableau de Configuration

Suivant les clés présentes dans le tableau de configuration vous allez pouvoir paramétrer votre balise select

Preselect & PreselectVal
$s = new student;
$config = array ();
$config[ "preselect" ] 	= "Choose student" ;
$config[ "preselectVal" ] 	= 0;

$s->SelectList( "id_student" , "id" , "firstname" , "lastname" ,$config,2);
Rendu HTML



Class

Si vous souhaitez ajouter une ou plusieurs class à votre balise select
$s = new student;
$config = array ();
$config[ "class" ] = "form-control myclass myclass2" ;
$s->SelectList( "id_student" , "id" , "firstname" , "lastname" ,$config,2);
Rendu HTML

	
	



Sql & Bind

Il se peut que vous ayez besoin de sélectionner des données qui proviennent de plusieurs tables ou qui proviennent de résultats de fonctions SQL (COUNT, SUM…)
$s = new student;
$config = array ();
$query = "SELECT id, firstname, lastname, (SELECT COUNT(*) FROM Student) as nb
FROM Student WHERE id < :id" ;
$config[ "sql" ] = $query;
$config[ "bind" ] = array ( "id" ,10);

$s->SelectList( "id_student" , "id" , "firstname" , "lastname" , "nb" ,$config,2);
Rendu HTML