Как уже упоминалось в других ответах, с PHP ниже 5.0 это было невозможно, однако, начиная с PHP 5.0 , можно имитировать функциональность C #, используя DocComment
Я взял идею из этого вопроса и изменил ее для целей этого вопроса. Можно использовать строку JSON
как DocComment
, чтобы упростить последующий анализ и получить к ним доступ с помощью отражения из вашего кода, как показано ниже
<?php
/** {"Description":"This is a test class"} */
class User {
/** {"Message":"Please enter a user name."} */
public $Username;
/** {"Message":"Please enter a user name."} */
public function Login($username) {
print "Inside `aMemberFunc()`";
}
}
$rc = new ReflectionClass("User"); // class name
print $rc->getDocComment() . "<br />\n"; // Get Class comment
print $rc->getMethod("Login")->getDocComment() . "<br />\n"; // Get Method comment
print $rc->getProperty("Username")->getDocComment() . "<br />\n"; // Get Property comment
?>
со следующими результатами
/** {"Description":"This is a test class"} */
/** {"Message":"Please enter a user name."} */
/** {"Message":"Please enter a user name."} */
Идти дальше будет легко, уберите маркеры DocComment
и проанализируйте его как JSON, чтобы получить объект с вашими свойствами. Доступно больше reflection
методов, таких как получение списка свойств, методов и констант, о которых вы можете прочитать в Руководство по отражению PHP
Примечание: Компиляция с Zend
и т.п. удалит комментарии из вашего кода, и они будут недоступны, поэтому вам нужно будет настроить свою платформу, чтобы оставлять комментарии в покое.