Tutoriel : Créer votre première application

Dans ce tutoriel vous apprendrez à créer votre application compléte avec les pages de front et l'administration.

Création des élements de base

Nous allons commencer par créer les éléments dont nous aurons besoins

1. Création de l'application

Lancer Ide et créer le projet Avis. L'ossature et tout les fichiers ont été crées.

2. Création de l'entité

Concernant  la base de données nous n'aurons besoin que d'une seul table. Créer donc l'entité avec l'ide avec les champs suivants :

  • Name Varchar(50)
  • Email Varchar(50) NULL
  • Avis Text 
  • DateCreated Date
  • Actif int 

 /! N'oubliez pas de cocher la case Partagé, vous comprendrez plus tard pourquoi . Votre entity doit donc ressembler à ceci

namespace Apps\Avis\Entity;
use Core\Entity\Entity;
use Core\Entity\Entity\Property;
use Core\Entity\Entity\EntityProperty;

class AvisAvis extends Entity  
{
	//Constructeur
	function __construct($core)
	{
		//Version
		$this->Version ="2.0.0.0"; 

		//Nom de la table 
		$this->Core=$core; 
		$this->TableName="AvisAvis"; 
		$this->Alias = "AvisAvis"; 

		$this->Name = new Property("Name", "Name", TEXTBOX,  true, $this->Alias); 
		$this->Email = new Property("Email", "Email", TEXTBOX,  false, $this->Alias);
		$this->Avis = new Property("Avis", "Avis", TEXTAREA,  true, $this->Alias); 
		$this->DateCreated = new Property("DateCreated", "DateCreated", DATEBOX,  true, $this->Alias); 
		$this->Actif = new Property("Actif", "Actif", NUMERICBOX,  false, $this->Alias); 

		//Partage entre application 
		$this->AddSharedProperty();

		//Creation de l entité 
		$this->Create(); 
	}
}

3. Création du model

  1. Créer le model dans le dossier Model > AvisModel.php 
<?php

/*
 * PuzzleApp
 * Webemyos
 * Jérôme Oliva
 * GNU Licence
 */
namespace AppsAvisModel;

use CoreCoreRequest;
use CoreModelModel;
use CoreUtilityDateDate;

class AvisModel extends Model
{
	/*
	 * Constructeur
	 */
	public function __construct($core, $articleId = "")
	{
		$this->Core = $core;

		$entityName = "Apps\Avis\Entity\AvisAvis";
		$this->Entity = new $entityName($core);
	}

	/*
	 * Prepare the form
	 */
	public function Prepare()
	{
		$this->Exclude(array("Actif","AppName", "AppId","EntityName","EntityId", "DateCreated"));
	}

	/*
	 * Save/update the entity
	 */
	public function Updated()
	{
		if(Request::IsPost())
		{
			//Get The Defaul blog
			$this->Entity->DateCreated->Value = Date::Now();
			$this->Entity->Actif->Value = false;

			parent::Updated();
		}
	}
}