PHP + MariaDB + Netbeans + php-activerecord: Generador de clases modelo de base de datos

El siguiente fragmento de código SQL genera una lista de clases con comentarios y propiedades predefinidas para ser usados con la librería phpactiverecord y Netbeans para habilitar Intellisense en los objetos del modelo para todas las columnas.

En algunas ejecuciones es necesario quitar las comillas dobles que se generan al rededor de cada clase.

Puedes revisar mi publicación anterior sobre PHPActiveRecord.

USE information_schema;

SET @TARGET_DB = 'mibasededatos';

SELECT --cols.TABLE_NAME, 
CONCAT('/**\r\n',tbl.TABLE_COMMENT,'\r\n',REPLACE(GROUP_CONCAT(PROPERTY),', *',' *'), ' */\r\n', 'class ' ,UCASE(LEFT(tbl.TABLE_NAME,1)), SUBSTRING(tbl.TABLE_NAME,2), ' extends ActiveRecord\\Model { public static $table=''' , tbl.TABLE_NAME,'''; public static $primary_key = ''', (
    SELECT GROUP_CONCAT(kcu.COLUMN_NAME) AS PK 
    FROM KEY_COLUMN_USAGE  kcu
    WHERE   kcu.TABLE_SCHEMA = @TARGET_DB 
            AND kcu.CONSTRAINT_NAME='PRIMARY'
            AND kcu.TABLE_NAME = cols.TABLE_NAME
) , ''';}'  ) AS class_def
FROM (
    SELECT DISTINCT *, CONCAT(' * @property ',DATA_TYPE,' $', COLUMN_NAME,' ',COLUMN_COMMENT,'\r\n') as PROPERTY 
    FROM COLUMNS WHERE TABLE_SCHEMA = @TARGET_DB
) cols
INNER JOIN TABLES tbl ON tbl.TABLE_NAME = cols.TABLE_NAME AND tbl.TABLE_SCHEMA = cols.TABLE_SCHEMA
GROUP BY cols.TABLE_NAME

342 total views, 6 views today

6Shares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.