$prefix = 'xyz_';
$tablename = 'chronicles';
$packagename = 'chronicleThis';
$packagepath = $modx->getOption($packagename . '.core_path', NULL, $modx->getOption('core_path') . 'components/' . $packagename . '/');
$modelpath = $packagepath . 'model/';
$schemapath = $modelpath . 'schema/';
$schemafile = $schemapath . $packagename . '.mysql.schema.xml';
$manager = $modx->getManager();
$generator = $manager->getGenerator();
$generator->parseSchema($schemafile, $modelpath);
$modx->addPackage($packagename, $modelpath, $prefix);
$classname = $generator->getClassName($tablename);$prefix = 'xyz_';
$classname = 'Chronicle';
$packagename = 'chroniclethis';//should be lowercase
$packagepath = $modx->getOption($packagename . '.core_path', NULL, $modx->getOption('core_path') . 'components/' . $packagename . '/');
$modelpath = $packagepath . 'model/';
$modx->addPackage($packagename, $modelpath, $prefix);the package needs to be registered somewhere, before you can use its classes and you will need to know the classname.
then this is enough:
$prefix = 'xyz_'; $classname = 'Chronicle'; $packagename = 'chroniclethis';//should be lowercase $packagepath = $modx->getOption($packagename . '.core_path', NULL, $modx->getOption('core_path') . 'components/' . $packagename . '/'); $modelpath = $packagepath . 'model/'; $modx->addPackage($packagename, $modelpath, $prefix);
you can also register your package with the system-setting 'extension-packages', if you need to have it registered on every request.