| 524 | | } |
| 525 | | |
| 526 | | return self::getLoadedModels(array_keys(self::$_loadedModels)); |
| 527 | | } |
| 528 | | |
| 529 | | /** |
| 530 | | * getLoadedModels |
| 531 | | * |
| 532 | | * Get all the loaded models, you can provide an array of classes or it will use get_declared_classes() |
| 533 | | * |
| 534 | | * Will filter through an array of classes and return the Doctrine_Records out of them. |
| 535 | | * If you do not specify $classes it will return all of the currently loaded Doctrine_Records |
| 536 | | * |
| 537 | | * @param classes Array of classes to filter through, otherwise uses get_declared_classes() |
| 538 | | * @return array $loadedModels |
| 539 | | */ |
| 540 | | public static function getLoadedModels($classes = null) |
| 541 | | { |
| 542 | | if ($classes === null) { |
| 543 | | $classes = get_declared_classes(); |
| 544 | | $classes = array_merge($classes, array_keys(self::$_loadedModels)); |
| 545 | | } |
| 546 | | |
| 547 | | $loadedModels = array(); |
| 548 | | |
| 549 | | foreach ((array) $classes as $name) { |
| 550 | | try { |
| 551 | | $declaredBefore = get_declared_classes(); |
| 552 | | $class = new ReflectionClass($name); |
| 553 | | if (self::isValidModelClass($class)) { |
| 554 | | $loadedModels[] = $name; |
| 555 | | } |
| 556 | | } catch (Exception $e) { |
| 557 | | // Determine class names by the actual inclusion of the model file |
| 558 | | // The possibility exists that the class name(s) contained in the model |
| 559 | | // file is not the same as the actual model file name itself |
| 560 | | if (isset(self::$_loadedModels[$name])) { |
| 561 | | try { |
| 562 | | require_once self::$_loadedModels[$name]; |
| | 524 | |
| | 525 | $loadedModels = array(); |
| | 526 | |
| | 527 | $modelFiles = array_keys(self::$_loadedModelFiles); |
| | 528 | |
| | 529 | foreach ($modelFiles as $name) { |
| | 530 | if (class_exists($name)) { |
| | 531 | $declaredBefore = get_declared_classes(); |
| | 532 | |
| | 533 | if (self::isValidModelClass($name) && !in_array($name, $loadedModels)) { |
| | 534 | $loadedModels[] = $name; |
| | 535 | } |
| | 536 | } else { |
| | 537 | // Determine class names by the actual inclusion of the model file |
| | 538 | // The possibility exists that the class name(s) contained in the model |
| | 539 | // file is not the same as the actual model file name itself |
| | 540 | if (isset(self::$_loadedModelFiles[$name])) { |
| | 541 | require_once self::$_loadedModelFiles[$name]; |
| 579 | | |
| 580 | | } |
| 581 | | return $loadedModels; |
| 582 | | } |
| 583 | | |
| | 555 | } |
| | 556 | |
| | 557 | return self::filterInvalidModels($loadedModels); |
| | 558 | } |
| | 559 | |
| | 560 | /** |
| | 561 | * getLoadedModels |
| | 562 | * |
| | 563 | * Get all the loaded models, you can provide an array of classes or it will use get_declared_classes() |
| | 564 | * |
| | 565 | * Will filter through an array of classes and return the Doctrine_Records out of them. |
| | 566 | * If you do not specify $classes it will return all of the currently loaded Doctrine_Records |
| | 567 | * |
| | 568 | * @param classes Array of classes to filter through, otherwise uses get_declared_classes() |
| | 569 | * @return array $loadedModels |
| | 570 | */ |
| | 571 | public static function getLoadedModels($classes = null) |
| | 572 | { |
| | 573 | if ($classes === null) { |
| | 574 | $classes = get_declared_classes(); |
| | 575 | $classes = array_merge($classes, array_keys(self::$_loadedModelFiles)); |
| | 576 | } |
| | 577 | |
| | 578 | return self::filterInvalidModels($classes); |
| | 579 | } |
| | 580 | |
| | 581 | /** |
| | 582 | * filterInvalidModels |
| | 583 | * |
| | 584 | * Filter through an array of classes and return all the classes that are valid models |
| | 585 | * |
| | 586 | * @param classes Array of classes to filter through, otherwise uses get_declared_classes() |
| | 587 | * @return array $loadedModels |
| | 588 | */ |
| | 589 | public static function filterInvalidModels($classes) |
| | 590 | { |
| | 591 | $validModels = array(); |
| | 592 | |
| | 593 | foreach ((array) $classes as $name) { |
| | 594 | if (self::isValidModelClass($name) && !in_array($name, $validModels)) { |
| | 595 | $validModels[] = $name; |
| | 596 | } |
| | 597 | } |
| | 598 | |
| | 599 | return $validModels; |
| | 600 | } |