Нет встроенной функции. Но вы можете использовать marker/tagger interface для тегов сущностей, принадлежащих вашему приложению. Затем вы можете использовать функции «get_declared_classes» и «is_subclass_of» найти список классов сущностей.
Для экс:
/**
* Provides a marker interface to identify entity classes related to the application
*/
interface MyApplicationEntity {}
/**
* @Entity
*/
class User implements MyApplicationEntity {
// Your entity class definition goes here.
}
/**
* Finds the list of entity classes. Please note that only entity classes
* that are currently loaded will be detected by this method.
* For ex: require_once('User.php'); or use User; must have been called somewhere
* within the current execution.
* @return array of entity classes.
*/
function getApplicationEntities() {
$classes = array();
foreach(get_declared_classes() as $class) {
if (is_subclass_of($class, "MyApplicationEntity")) {
$classes[] = $class;
}
}
return $classes;
}
Пожалуйста, обратите внимание, что мой пример кода выше не использует пространство имен для простоты ради. Вы должны будете соответствующим образом настроить его в своем приложении.
Это говорит, что вы не объяснили, почему вам нужно найти список классов сущностей. Возможно, есть лучшее решение для того, что вы пытаетесь решить.
Да, все они находятся в одной папке. Я просто надеялся, что будет такой простой метод. Полагаю, я мог бы добавить его, и он просто заглянет в папку моих сущностей. – celestialorb
print_r (get_declared_classes()); даст вам список классов, используемых в скрипте, но он не будет ограничен вашими классами доктрины. edit: он также не будет включать под-подклассы, только классы и их подклассы. – skrilled