Добрый всем форумчанам.
Прошу подсказки.
Модикс Рево 2.2.10.
Делаю маппинг своих таблиц (пока 1 таблицы) руковдствуясь в основном этим -
http://habrahabr.ru/post/123072/
Таблица реквизитов фирмы main_rekvisits .
Кстати создана в InnoDB, а не в MyIsam.
Размещаю свои классы правда не в папке core/components,
а в папке core/model.
Прописываю префикс для таблиц $tablePrefix='main_',
выполняю код из файла gen_main.php
<?php
/* /core/model.gen_main.php */
$obj = 'main';
$tablePrefix='main_';
/*$Model = dirname(__FILE__).'/model/';
$Schema = dirname(__FILE__).'/model/schema/'; */
$Model = dirname(__FILE__).'/';
$Schema = dirname(__FILE__).'/schema/';
shell_exec('rm -rf '.$Model.$obj.'/mysql/*');
shell_exec('rm -rf '.$Schema.'*');
$xml = $Schema.$obj.'.mysql.schema.xml';
/*******************************************************/
require_once /*dirname(*/dirname(dirname(dirname(__FILE__)))/*)*/.'/core/config/config.inc.php';
include_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx= new modX();
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->loadClass('transport.modPackageBuilder', '', false, true);
$manager = $modx->getManager();
$generator = $manager->getGenerator();
$generator->writeSchema($xml, $obj, 'xPDOObject', $tablePrefix, $restrictPrefix=true );
$generator->parseSchema($xml, $Model);
print "
Выполнена генерация маппинга для таблиц с префиксом".$tablePrefix;
?>
получаю класс Rekvisits,
процесс маппинга происходит удачно - ошибок не выдает,
файлы в core/model/main и в core/model/schema создаются.
При попытке создать запись в этой таблице черех XPDO
объект вроде бы создается, но при чтении поля и при записи в БД выдает ошибку
Call to a member function get() on a non-object in D:\Run\OpenServerNew\domains\localhost\core\cache\includes\elements\modsnippet\28.include.cache.php on line 16
Вот код сниппета
<?php
$modx->addPackage('main', MODX_CORE_PATH.'model/main/', 'main_');
$rekv = $modx->newObject('Rekvisits', array('name' => 'IPTelekom'));
if (!rekv)
die("error creating object Rekvisit");
else
print "okey creating object
";
print $rekv -> get('name');
$rekv->save();
похожечто Modx не понимает что это класс БД, унаследованный от XPDO
и не знает что с ним делать.
В чем может быть причина?
Что нужно еще сделать/доделать?