PHP Classes
elePHPant
Icontem

File: build/generation/common.php

Recommend this page to a friend!
  Classes of Will Tinsdeall  >  Boiler Framework  >  build/generation/common.php  >  Download  
File: build/generation/common.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: Boiler Framework
Web application framework that implements MVC
Author: By
Last change:
Date: 4 years ago
Size: 2,498 bytes
 

 

Contents

Class file image Download
<?php
if (!defined("BOILER_LOCATION")) {
   
$_SERVER['no_run'] = true;
    require_once
"../../htdocs/index.php";
}


function
getPHPArray($array) {
    return
'array("'.implode('","', $array).'")';
}

function
getClassName($table) {
   
$name = explode("_", $table);
   
$className = "";
    foreach (
$name as $n) {
       
$className .= ucfirst($n);
    }
    return
$className;
}

function
getClassNamePlural($table) {
   
$name = explode("_", $table);
   
$className = "";
    foreach (
$name as $c=>$n) {
        if (
$c == count($name)-1) {
           
$n = \System\Library\Lexical::pluralize($n);
        }
       
$className .= ucfirst($n);

    }
    return
$className;
}

function
getModels() {
   
$d = new mysqli(\Core\Router::$settings['database']['server'], \Core\Router::$settings['database']['user'], \Core\Router::$settings['database']['passwd'], \Core\Router::$settings['database']['db'], \Core\Router::$settings['database']['port']);
   
   
$q = $d->query("SHOW FULL TABLES WHERE Table_Type != 'VIEW'");
   
$models = array();
    while (
$data = $q->fetch_array()) {
       
$models[$data[0]] = array("columns"=>array(), "multi"=>array(), "single"=>array(), "key"=>array());
    }
   
    foreach (
$models as $table=>$model) {
       
$q = $d->query("SHOW COLUMNS IN `$table`");
        while (
$data = $q->fetch_assoc()) {
           
$models[$table]['columns'][$data['Field']] = $data['Type'];
            if (
$data['Key'] == "PRI") {
               
$models[$table]['key'][] = $data['Field'];
            }
        }
    }
   
    foreach (
$models as $table=>$model) {
       
$sQuery = <<<EOF
SELECT i.TABLE_NAME, k.COLUMN_NAME, i.CONSTRAINT_TYPE, i.CONSTRAINT_NAME, k.REFERENCED_TABLE_NAME, k.REFERENCED_COLUMN_NAME
FROM information_schema.TABLE_CONSTRAINTS i
LEFT JOIN information_schema.KEY_COLUMN_USAGE k ON i.CONSTRAINT_NAME = k.CONSTRAINT_NAME
WHERE i.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND i.TABLE_SCHEMA = DATABASE()
AND i.TABLE_NAME = '
$table'
EOF;
       
$q = $d->query($sQuery);
        while (
$data = $q->fetch_assoc()) {
           
$models[$data['TABLE_NAME']]['multi'][$data['CONSTRAINT_NAME']] = array($data['COLUMN_NAME'], $data['REFERENCED_TABLE_NAME'], $data['REFERENCED_COLUMN_NAME']);
           
$models[$data['REFERENCED_TABLE_NAME']]['single'][$data['CONSTRAINT_NAME']] = array($data['REFERENCED_COLUMN_NAME'], $data['TABLE_NAME'], $data['COLUMN_NAME']);
        }
       
    }
   
    foreach (
$models as $table=>$model) {
        if (
count($model['multi']) == 2 && count($model['columns']) == 2) {
           
$models[$table]['link_table'] = true;
        } else {
           
$models[$table]['link_table'] = false;
        }
    }
    return
$models;
}