build.modx.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. $mtime= microtime();
  3. $mtime= explode(" ", $mtime);
  4. $mtime= $mtime[1] + $mtime[0];
  5. $tstart= $mtime;
  6. $properties = array();
  7. include_once (dirname(dirname(__DIR__)) . '/xpdo/xpdo.class.php');
  8. require_once (dirname(dirname(dirname(__DIR__))) . '/config.core.php');
  9. require_once (dirname(dirname(dirname(__DIR__))) . '/_build/build.properties.php');
  10. foreach (array('mysql', 'sqlsrv') as $driver) {
  11. $xpdo= new xPDO(
  12. $properties["{$driver}_string_dsn_nodb"],
  13. $properties["{$driver}_string_username"],
  14. $properties["{$driver}_string_password"],
  15. $properties["{$driver}_array_options"],
  16. $properties["{$driver}_array_driverOptions"]
  17. );
  18. $xpdo->setPackage('modx', dirname(XPDO_CORE_PATH) . '/model/');
  19. $xpdo->setDebug(true);
  20. $manager= $xpdo->getManager();
  21. $generator= $manager->getGenerator();
  22. $generator->classTemplate= <<<EOD
  23. <?php
  24. /**
  25. * [+phpdoc-package+]
  26. * [+phpdoc-subpackage+]
  27. */
  28. /**
  29. * [+phpdoc-package+]
  30. * [+phpdoc-subpackage+]
  31. */
  32. class [+class+] extends [+extends+] {
  33. }
  34. EOD;
  35. $generator->platformTemplate= <<<EOD
  36. <?php
  37. /**
  38. * [+phpdoc-package+]
  39. * [+phpdoc-subpackage+]
  40. */
  41. require_once (dirname(__DIR__) . '/[+class-lowercase+].class.php');
  42. /**
  43. * [+phpdoc-package+]
  44. * [+phpdoc-subpackage+]
  45. */
  46. class [+class+]_[+platform+] extends [+class+] {
  47. }
  48. EOD;
  49. $generator->mapHeader= <<<EOD
  50. <?php
  51. /**
  52. * [+phpdoc-package+]
  53. * [+phpdoc-subpackage+]
  54. */
  55. EOD;
  56. //Use this to create a schema from an existing database
  57. //$xml= $generator->writeSchema(XPDO_CORE_PATH . '../model/schema/modx.mysql.schema.xml', 'modx', 'xPDOObject', 'modx_');
  58. //Use this to generate classes and maps from a schema
  59. // NOTE: by default, only maps are overwritten; delete class files if you want to regenerate classes
  60. $package= 'modx';
  61. $generator->parseSchema(dirname(XPDO_CORE_PATH) . "/model/schema/modx.{$driver}.schema.xml", dirname(XPDO_CORE_PATH) . '/model/');
  62. $package= 'modx.transport';
  63. $generator->parseSchema(dirname(XPDO_CORE_PATH) . "/model/schema/modx.transport.{$driver}.schema.xml", dirname(XPDO_CORE_PATH) . '/model/');
  64. $package= 'modx.registry.db';
  65. $generator->parseSchema(dirname(XPDO_CORE_PATH) . "/model/schema/modx.registry.db.{$driver}.schema.xml", dirname(XPDO_CORE_PATH) . '/model/');
  66. $package= 'modx.sources';
  67. $generator->parseSchema(dirname(XPDO_CORE_PATH) . "/model/schema/modx.sources.{$driver}.schema.xml", dirname(XPDO_CORE_PATH) . '/model/');
  68. }
  69. $mtime= microtime();
  70. $mtime= explode(" ", $mtime);
  71. $mtime= $mtime[1] + $mtime[0];
  72. $tend= $mtime;
  73. $totalTime= ($tend - $tstart);
  74. $totalTime= sprintf("%2.4f s", $totalTime);
  75. echo "\nExecution time: {$totalTime}\n";
  76. exit ();