<!--
-File $Id: AppendixC-MapBuilders.html,v 1.1 2004/07/08 01:17:06 hlellelid Exp $
-License GNU FDL (http://www.gnu.org/copyleft/fdl.html)
-Copyright 2003, Propel project
-Author Hans Lellelid, hide@address.com
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Propel Guide</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="Stylesheet" rev="Stylesheet" href="../../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" />
</head>
<body>
<h1>Apendice C - Usando clases MapBuilder(constructoras de mapas)</h1>
<p>Cuando Propel genera el modelo objeto para su proyecto, él también genera clases MapBuilder
que son clases "estaticas" que representan la estructura de su base de datos.
Estas clases son usadas para determinar(por ejemplo), que columnas son llaves primarias,
llaves foraneass, etc. a nivel de ejecución sin requerir ninguna operación de metadato
en su base de datos.</p>
<p>Usted no necesite conocer nada sobre esas clases -- hasta que ellas son
utilizadas unicamente dentro de las clases base generadas peer y clases centrales de Propel --
ellas proveen una forma rápida y poderosa para tomar metadatos para su base de datos.</p>
<pre>require_once("propel/Propel.php");
Propel::init("bookstore-conf.php");
require_once("Book.php");
require_once("Author.php");
require_once("Publisher.php");
require_once("propel/map/DatabaseMap.php");
try {
$dbMap = Propel::getDatabaseMap("bookstore");
$tables = $dbMap->getTables();
foreach ($tables as $tableName => $table) {
print "Table: $tableName\n";
$columns = $table->getColumns();
foreach ($columns as $column) {
$creoleType = CreoleTypes::getCreoleName($column->getCreoleType());
print "\tColumn: " . $column->getColumnName() . "\n";
print "\t\tFQN: " . $column->getFullyQualifiedName() . "\n";
if ($column->isPrimaryKey()) {
print "\t\tPrimary Key: true\n";
}
print "\t\tSize: " . $column->getSize() . "\n";
print "\t\tType: " . $column->getType() . "\n";
print "\t\tCreole Type: " . $creoleType . "\n";
}
}
} catch (Exception $e) {
die("Exception: " . $e);
}</pre>
</body>
</html>