本文整理汇总了PHP中DAL::tableExists方法的典型用法代码示例。如果您正苦于以下问题:PHP DAL::tableExists方法的具体用法?PHP DAL::tableExists怎么用?PHP DAL::tableExists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DAL
的用法示例。
在下文中一共展示了DAL::tableExists方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: test1
public function test1()
{
PersistentManager::getInstance()->generateAll();
echo YuppConventions::tableName('Pagina') . "<br/>";
/**
* Resultado>
*
* CREATE TABLE test_a004_pagina (id INT(11) DEFAULT 1 PRIMARY KEY, titulo VARCHAR(255) NULL, contenido MEDIUMTEXT NULL, class TEXT NOT NULL, deleted BOOL NOT NULL, owner_id INT(11) NULL);
*
* CREATE TABLE test_a004_pagina_subpages_test_a004_pagina (id INT(11) DEFAULT 1 PRIMARY KEY, owner_id INT(11) NOT NULL, ref_id INT(11) NOT NULL, type INT(11) NOT NULL, deleted BOOL NOT NULL, class TEXT NOT NULL, ord INT(11) NULL);
*
* ALTER TABLE test_a004_pagina_subpages_test_a004_pagina ADD FOREIGN KEY (owner_id) REFERENCES test_a004_pagina(id);
*
* ALTER TABLE test_a004_pagina_subpages_test_a004_pagina ADD FOREIGN KEY (ref_id) REFERENCES test_a004_pagina(id);
*
* ALTER TABLE test_a004_pagina ADD FOREIGN KEY (owner_id) REFERENCES test_a004_pagina(id);
*
*/
// TODO: verificar si la tabla para Nariz y Cara fue creada.
//$dal = DAL::getInstance();
$dal = new DAL('tests');
$this->assert($dal->tableExists(YuppConventions::tableName('Pagina')), 'TestCaseA004: Test generar tabla');
}
示例2: test1
private function test1()
{
PersistentManager::getInstance()->generateAll();
echo YuppConventions::tableName('M010_Persona') . "<br/>";
/**
* Resultado>
*
* CREATE TABLE test_m010_persona (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* nombre TEXT NULL,
* class TEXT NOT NULL,
* deleted BOOL NOT NULL
* );
*
* CREATE TABLE test_m010_persona_hijos_test_m010_persona (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* owner_id INT(11) NOT NULL,
* ref_id INT(11) NOT NULL,
* type INT(11) NOT NULL,
* deleted BOOL NOT NULL,
* class TEXT NOT NULL,
* ord INT(11) NULL
* );
*
*/
// TODO: verificar si la tabla para Nariz y Cara fue creada.
//$dal = DAL::getInstance();
$dal = new DAL('tests');
if ($dal->tableExists(YuppConventions::tableName('M010_Persona'))) {
echo "Test 1 correcto";
} else {
echo "Test 1 Incorrecto";
}
}
示例3: test1
private function test1()
{
PersistentManager::getInstance()->generateAll();
echo YuppConventions::tableName('Contenido1') . "<br/>";
echo YuppConventions::tableName('Recipiente1') . "<br/>";
echo YuppConventions::tableName('Vaso1') . "<br/>";
/**
* Resultado>
*
* CREATE TABLE test_i006_contenido1 (id INT(11) DEFAULT 1 PRIMARY KEY, elemento VARCHAR(30) NULL, volumen FLOAT NULL, class TEXT NOT NULL, deleted BOOL NOT NULL);
*
* CREATE TABLE test_i005_contenido (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* elemento VARCHAR(30) NULL,
* volumen FLOAT NULL,
* class TEXT NOT NULL,
* deleted BOOL NOT NULL
* );
*
* CREATE TABLE test_i006_vaso1 (id INT(11) DEFAULT 1 PRIMARY KEY, marca TEXT NULL, class TEXT NOT NULL, deleted BOOL NOT NULL, contenido_id INT(11) NULL, super_id_recipiente1 INT(11) NOT NULL);
*
* CREATE TABLE test_i005_vaso (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* marca TEXT NULL,
* class TEXT NOT NULL,
* deleted BOOL NOT NULL,
* contenido_id INT(11) NULL,
* super_id_recipiente INT(11) NOT NULL
* );
*
* CREATE TABLE test_i006_recipiente1 (id INT(11) DEFAULT 1 PRIMARY KEY, material VARCHAR(30) NULL, capacidad FLOAT NULL, tieneTapa BOOL NULL, class TEXT NOT NULL, deleted BOOL NOT NULL);
*
* CREATE TABLE test_i005_recipiente (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* material VARCHAR(30) NULL,
* capacidad FLOAT NULL,
* tieneTapa BOOL NULL,
* class TEXT NOT NULL,
* deleted BOOL NOT NULL
* );
*
* ALTER TABLE test_i006_vaso1 ADD FOREIGN KEY (super_id_recipiente1) REFERENCES test_i006_recipiente1(id);
*
* ALTER TABLE test_i005_vaso
* ADD FOREIGN KEY (super_id_recipiente)
* REFERENCES test_i005_recipiente(id);
*
* ALTER TABLE test_i006_vaso1 ADD FOREIGN KEY (contenido_id) REFERENCES test_i005_contenido(id);
*
* ALTER TABLE test_i005_vaso
* ADD FOREIGN KEY (contenido_id)
* REFERENCES test_i005_contenido(id);
*/
// TODO: verificar si la tabla para Nariz y Cara fue creada.
//$dal = DAL::getInstance();
$dal = new DAL('tests');
if ($dal->tableExists(YuppConventions::tableName('Contenido1'))) {
echo "Test 1 correcto";
} else {
echo "Test 1 Incorrecto";
}
if ($dal->tableExists(YuppConventions::tableName('Recipiente1'))) {
echo "Test 1 correcto";
} else {
echo "Test 1 Incorrecto";
}
if ($dal->tableExists(YuppConventions::tableName('Vaso1'))) {
echo "Test 1 correcto";
} else {
echo "Test 1 Incorrecto";
}
}
示例4: dbStatusAction
public function dbStatusAction()
{
$yupp = new Yupp();
$appNames = $yupp->getAppNames();
$appModelClasses = array();
// [appName][class][tablename,creada o no]
// Incluye todas las clases del modelo de todas las apps
YuppLoader::loadModel();
// Para saber si se crearon las tablas para todas las
// clases del modelo de todas las aplicaciones.
$allTablesCreated = true;
$fn = new FileNames();
// http://code.google.com/p/yupp/issues/detail?id=123
$createDatabaseForApps = array();
// Aplicaciones a las que se sugiere que se cree su base de datos
foreach ($appNames as $appName) {
$app = new App($appName);
$modelClassFileNames = $app->getModel();
// no incluye las clases, solo obtiene los nombres
//print_r($modelClassFileNames);
// Necesito que sea plano el array, si no, tengo que hacer recorrida recursiva.
// Esto no seria necesario si modifico la recorrida en la vista, para mostrar
// la estructura interna de paquetes del modelo de la aplicacion.
$modelClassFileNames = $this->array_flatten($modelClassFileNames);
//print_r($modelClassFileNames);
// Toda la informacion de las clases y tablas creadas para esta app
$appModelClasses[$appName] = array();
// http://code.google.com/p/yupp/issues/detail?id=123
try {
$dal = new DAL($appName);
// Falla sino existe la base para la app $appName
} catch (Exception $e) {
if ($e->getCode() == 666) {
$createDatabaseForApps[] = $appName;
}
continue;
// Para el for appNames
}
foreach ($modelClassFileNames as $classFileName) {
$fileInfo = $fn->getFileNameInfo($classFileName);
$className = $fileInfo['name'];
// Para incluir las clases (por si no estan incluidas)
// Ticket: http://code.google.com/p/yupp/issues/detail?id=71
YuppLoader::load($fileInfo['package'], $className);
$tableName = YuppConventions::tableName($className);
if ($dal->tableExists($tableName)) {
$appModelClasses[$appName][$className] = array('tableName' => $tableName, 'created' => "CREADA");
} else {
$appModelClasses[$appName][$className] = array('tableName' => $tableName, 'created' => "NO CREADA");
$allTablesCreated = false;
}
}
}
$this->params['allTablesCreated'] = $allTablesCreated;
$this->params['appModelClasses'] = $appModelClasses;
$this->params['createDatabaseForApps'] = $createDatabaseForApps;
return $this->render("dbStatus");
}
示例5: test1
public function test1()
{
$dal = new DAL('tests');
$this->assert($dal->tableExists(YuppConventions::tableName('Entidad')), 'Test 003.1.1 existe tabla');
$this->assert($dal->tableExists(YuppConventions::tableName('TestPersona')), 'Test 003.1.2 existe tabla');
}
示例6: test1
private function test1()
{
PersistentManager::getInstance()->generateAll();
echo YuppConventions::tableName('Dedo') . "<br/>";
echo YuppConventions::tableName('Mano') . "<br/>";
/**
* Resultado>
*
* CREATE TABLE test_m003_dedo (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* uniaLarga BOOL NULL,
* class TEXT NOT NULL,
* deleted BOOL NOT NULL
* );
*
* CREATE TABLE test_m003_mano (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* tamanio TEXT NULL,
* class TEXT NOT NULL,
* deleted BOOL NOT NULL
* );
*
* CREATE TABLE test_m003_mano_dedos_test_m003_dedo (
* id INT(11) DEFAULT 1 PRIMARY KEY,
* owner_id INT(11) NOT NULL,
* ref_id INT(11) NOT NULL,
* type INT(11) NOT NULL,
* deleted BOOL NOT NULL,
* class TEXT NOT NULL,
* ord INT(11) NULL
* );
*
* ALTER TABLE test_m003_mano_dedos_test_m003_dedo
* ADD FOREIGN KEY (owner_id)
* REFERENCES test_m003_mano(id);
*
* ALTER TABLE test_m003_mano_dedos_test_m003_dedo
* ADD FOREIGN KEY (ref_id)
* REFERENCES test_m003_dedo(id);
*
*/
// TODO: verificar si la tabla para Nariz y Cara fue creada.
//$dal = DAL::getInstance();
$dal = new DAL('tests');
if ($dal->tableExists(YuppConventions::tableName('Dedo'))) {
echo "Test 1 correcto";
} else {
echo "Test 1 Incorrecto";
}
if ($dal->tableExists(YuppConventions::tableName('Mano'))) {
echo "Test 1 correcto";
} else {
echo "Test 1 Incorrecto";
}
}
示例7: generateAll
/**
* generateAll
* Genera todas las tablas correspondientes al modelo previamente cargado.
*
* @pre Deberia haber cargado, antes de llamar, todas las clases persistentes.
*/
public static function generateAll()
{
Logger::getInstance()->pm_log("TableGen::generateAll ======");
$yupp = new Yupp();
$appNames = $yupp->getAppNames();
foreach ($appNames as $appName) {
$dalForApp = new DAL($appName);
// No puedo usar this->dal porque esta configurada para 'core'
// Todas las clases del primer nivel del modelo.
$A = ModelUtils::getSubclassesOf('PersistentObject', $appName);
// FIXME> no es recursiva!
// Se utiliza luego para generar FKs.
$generatedPOs = array();
foreach ($A as $clazz) {
$struct = MultipleTableInheritanceSupport::getMultipleTableInheritanceStructureToGenerateModel($clazz);
// struct es un mapeo por clave las clases que generan una tabla y valor las clases que se mapean a esa tabla.
foreach ($struct as $class => $subclassesOnSameTable) {
// Instancia que genera tabla
$c_ins = new $class();
// FIXME: supongo que ya tiene withTable, luego veo el caso que no se le ponga WT a la superclase...
// FIXME: como tambien tiene los atributos de las superclases y como van en otra tabla, hay que sacarlos.
// Para cara subclase que se mapea en la misma tabla
foreach ($subclassesOnSameTable as $subclass) {
$sc_ins = new $subclass();
// Para setear los atributos.
$props = $sc_ins->getAttributeTypes();
$hone = $sc_ins->getHasOne();
$hmany = $sc_ins->getHasMany();
// FIXME: si el artibuto no es de una subclase parece que tambien pone nullable true...
// Agrega constraint nullable true, para que los atributos de las subclases
// puedan ser nulos en la tabla, para que funcione bien el mapeo de herencia de una tabla.
//Logger::getInstance()->pm_log( "Para cada attr de: $subclass " . __FILE__ . " " . __LINE__);
foreach ($props as $attr => $type) {
// FIXME: esta parte seria mas facil si simplemente cuando la clase tiene la constraint
// y le seteo otra del mismo tipo para el mismo atributo, sobreescriba la anterior.
$constraint = $sc_ins->getConstraintOfClass($attr, 'Nullable');
if ($constraint !== NULL) {
//Logger::getInstance()->log( "CONTRAINT NULLABLE EXISTE!");
// Si hay, setea en true
$constraint->setValue(true);
} else {
// Si no hay, agrega nueva
//Logger::getInstance()->log( "CONTRAINT NULLABLE NO EXISTE!, LA AGREGA");
$sc_ins->addConstraints($attr, array(Constraint::nullable(true)));
}
}
//Logger::getInstance()->pm_log( "Termina con las constraints ======= " . __FILE__ . " " . __LINE__);
// Se toma luego de modificar las restricciones
$constraints = $sc_ins->getConstraints();
foreach ($props as $name => $type) {
$c_ins->addAttribute($name, $type);
}
foreach ($hone as $name => $type) {
$c_ins->addHasOne($name, $type);
}
foreach ($hmany as $name => $type) {
$c_ins->addHasMany($name, $type);
}
// Agrego las constraints al final porque puedo referenciar atributos que todavia no fueron agregados.
foreach ($constraints as $attr => $constraintList) {
$c_ins->addConstraints($attr, $constraintList);
}
}
$parent_class = get_parent_class($c_ins);
if ($parent_class !== 'PersistentObject') {
// La superclase de c_ins se mapea en otra tabla, saco esos atributos...
$suc_ins = new $parent_class();
$c_ins = PersistentObject::less($c_ins, $suc_ins);
// Saco los atributos de la superclase
}
$tableName = YuppConventions::tableName($c_ins);
// FIXME: esta operacion necesita instanciar una DAL por cada aplicacion.
// La implementacion esta orientada a la clase, no a la aplicacion, hay que modificarla.
// Si la tabla ya existe, no la crea.
if (!$dalForApp->tableExists($tableName)) {
// FIXME: c_ins no tiene las restricciones sobre los atributos inyectados.
self::generate($c_ins, $dalForApp);
// Para luego generar FKs.
$generatedPOs[] = $c_ins;
}
}
// foreach ($struct as $class => $subclassesOnSameTable)
}
// foreach( $A as $clazz )
// ======================================================================
// Crear FKs en la base.
//Logger::struct( $generatedPOs, "GENERATED OBJS" );
foreach ($generatedPOs as $ins) {
$tableName = YuppConventions::tableName($ins);
$fks = array();
// FKs hasOne
$ho_attrs = $ins->getHasOne();
foreach ($ho_attrs as $attr => $refClass) {
// Problema: pasa lo mismo que pasaba en YuppConventions.relTableName, esta tratando
//.........这里部分代码省略.........