Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Pdoblog - exemple de blog mappé avec pdomap

5/5 (6 avis)

Vue 6 479 fois - Téléchargée 243 fois

Description

L'intérêt de ce projet n'est pas le blog en soi mais l'exemple d'utilisation de la librairie pdoMap.

Cette librairie sous forme de classes en PHP5 vous permet de mapper une base de données à travers un fichier DataSet XSD (cf DotNET et Visual Studio). Au delà du mapping de la structure des tables, vous pouvez y stocker des requêtes avec des paramètres et définir les jointures car cette librairie supporte le mode ORM.

Du coup l'exemple de blog vous permettra de constater l'ensemble des cas de figures jointures, requêtes et accès aux données en I/O.

Vous vous dites une librairie de mapping de plus ? Prenez SqlMap ou une foule d'autres. Chacune avec sa structure XML divergente - et au pire il faut écrire manuellement le fichier.

Avec pdoMap vous prenez le standard de définition de Visual Studio, vous restez dans un environnement de drag & drop et query builder - puis utilisez en toute transparence des objets.

Source / Exemple :


<?php

	// **** EXEMPLE DU FICHIER INDEX DU BLOG *****
	require_once('includes/autoload.php');	

	// INITIALIZE PAGE
	$page = new page('HOME PAGE');
	$blog = new myBlog();
	
	// INITIALIZE DATA
	$posts = $blog->posts->RecentPosts(5);

	// SET PAGE CONTENT's
	if (sizeof($posts) > 0) {
		foreach($posts as $post) $page->writeLine('main', $post);		
	} else {
		$page->writeLine('main', 'Admin should write the first article');
	}	

	// FLUSH PAGE
	echo $page;
?>

<?php

	// UNE PARTIE DE LA PAGE WRITE POUR ECRIRE UN ARTICLE
	$page = new page('WRITE A NEW ARTICLE');
	$blog = new myBlog();
	$post = $blog->posts->CreateNew();

	// CANCEL ACTION
	if (isset($_POST['cancel'])) {
		header('Location: '.$_GET['from']);
		die();
	}		
	if (isset($_POST['update']) || isset($_POST['preview'])) {
		$post->title->set($_POST['title']);
		$post->category->set($_POST['category']);
		$post->resume->set($_POST['wyzzresume']);
		$post->content->set($_POST['content']);
		$post->author->set($_SESSION['user']->getId());
		if (isset($_POST['preview'])) {
			$page->writeLine('main', $post->ShowPage());
		}		
		if (isset($_POST['update'])) {
			$post->insert_date->setNOW();
			$post->Insert();
			header('Location: '.$_GET['from']);
			die();
		}
	}

?>

Conclusion :


Vous pouvez télécharger la dernière version de la librairie seule à cette adresse :

http://pdomap.webframe.fr/

Pour voir des screen cast rendez-vous à cette adresse :
http://pdomap.webframe.fr/demo.php

En cas d'erreur ou de bug, merci de la signaler à cette adresse :
https://sourceforge.net/tracker/?atid=1060154&group_id=224043&func=browse

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.