<?php
/*******************************************************/
/* */
/*******************************************************/
// . $modx->addPackage()
<br>
$obj = 'program' ;
/*
. , .
, xPDO ,
, .
*/
<br>
$tablePrefix= 'modx_program_' ;
// , XML-
// $modx->addPackage();
<br>
$Path = dirname(__FILE__). '/model/' ;
// -
<br>
$Schema = $Path. '/' .$obj. '.mysql.schema.xml' ;
/*******************************************************/
<br>
// -
<br>
require_once dirname(dirname(dirname(__FILE__))). '/core/config/config.inc.php' ;
// MODx
<br>
include_once MODX_CORE_PATH . 'model/modx/modx.class.php' ;
// MODx
<br>
$modx= new modX();
// ,
<br>
// $modx->initialize('mgr');
//
//
<br>
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
<br>
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML' );
// !!! !
<br>
// -
<br>
$modx->addPackage( 'transport.modPackageBuilder' , '' , false , true );
// (MySQL / MsSQL ..)
<br>
$manager = $modx->getManager();
// -
<br>
$generator = $manager->getGenerator();
// -XML
<br>
// /xpdo/om/mysql/xpdogenerator.class.php
<br>
// public function writeSchema($schemaFile, $package= '', $baseClass= '', $tablePrefix= '', $restrictPrefix= false)
<br>
// $tablePrefix - , , .
<br>
// $restrictPrefix - true,
<br>
$xml= $generator->writeSchema($Schema, $obj, 'xPDOObject' , $tablePrefix ,$restrictPrefix= true );
// (php) xml
<br>
$generator->parseSchema($Schema, $Path);
<br>
<br>
print "<br /><br />" ;
< model package ="testtbl" baseClass ="xPDOObject" platform ="mysql" defaultEngine ="MyISAM" version ="1.1" >
< object class ="Tbl" table ="tbl" extends ="xPDOObject" >
< model package="testtbl"
we need the value of the package attribute to know which package we need to load. In this case, this is testtbl. Call the package like this:
$modx->addPackage( $package, $path, $prefix);
// !!! addPackage , , .
$result = $modx->getCollection( 'Tbl' );
foreach ($result as $row){
print “<br />Next:”. $row-> get ('columnName');
}
private static function testCreateRows(){
$pkg = 'testtbl' ;
$modx->addPackage( 'testtbl' , $Path , 'modx_kl_test' )) ;
$row = $modx->newObject( 'Tbl' );
$row->fromArray(array(
'id' => 5
));
$row->save();
return ;
}
Source: https://habr.com/ru/post/123072/