я использую PHP-ActiveRecord на короткое время, и я очень люблю это. Php-activerecord — это ORM-библиотека с открытым исходным кодом, основанная на ActiveRecord шаблон. Впрочем, мне тоже нравится PHPDoc и использовать это для документирования моего кода. Поэтому моим коллегам легко понять, какую платформу я строю. Но с использованием php-activerecord мои классы Model теперь выглядят так:
/**
* The Company class.
*
* @since 1.0.0
*
*/
class Company extends \ActiveRecord\Model
{
/** explicit table name since our table is not "company" */
static $table_name = 'Company';
/** explicit pk since our pk is not "id" */
static $primary_key = 'companyId';
}
Они работают, но раньше они выглядели так:
/**
* The Company class.
*
* @since 1.0.0
*
*/
class Company extends \ActiveRecord\Model
{
/** @var integer The company id. */
private $companyId;
/** @var string The company name. */
private $name;
}
Короче
При использовании php-activerecord невозможно документировать атрибуты моей модели и обновлять phpdoc. Я хочу быть в состоянии сделать это, в каком направлении я должен смотреть?
Вы можете задокументировать все свои «волшебные» свойства как @property
! Допустим, у вас есть таблица «Компания» с полями «id, name, location», в результате вы получите:
**
* @property int $id
* @property string $name
* @property string $location
*/
class Company extends \ActiveRecord\Model
{
}
Ты можешь видеть в документации что есть некоторые другие приемы, такие как «чтение свойств». Я использую их для любых соединений, которые у вас могут быть, например, вы можете прочитать has-one, но не можете писать модели для этих соединений.
Так что если в компании есть сотрудники, которых вы определили как $employees
, вы можете добавить
* @property-read Employee[] $employees
и так далее.
Других решений пока нет …