This module generates @property, @method and @mixin tags for DataObjects, PageControllers and (Data)Extensions, so ide's like PHPStorm recognize the database and relations that are set in the $db, $has_one, $has_many and $many_many arrays.
The docblocks can be generated/updated with each dev/build and with a DataObjectAnnotatorTask per module or classname.
SilverStripe Framework and possible custom code.
By default, mysite
is an enabled "module".
SilverStripe 3.x framework
SilverStripe 4.x
{
"require-dev": {
"silverleague/ideannotator": "3.x-dev"
}
}
Please note, this example omitted any possible modules you require yourself!
<?php
/**
* Class NewsItem
*
* @property string $Title
* @property int $Sort
* @property int $Version
* @property int $AuthorID
* @method \SilverStripe\Security\Member Author()
* @method \SilverStripe\ORM\DataList|Category[] Categories()
* @method \SilverStripe\ORM\ManyManyList|Tag[] Tags()
* @mixin Versioned
*/
class NewsItem extends \SilverStripe\ORM\DataObject
{
private static $db = array(
'Title' => 'Varchar(255)',
'Sort' => 'Int'
);
private static $has_one = array(
'Author' => Member::class
);
private static $has_many = array(
'Categories' => Category::class
);
private static $many_many = array(
'Tags' => Tag::class
);
}
For installation, see installation
For the Code of Conduct, see CodeOfConduct
For contributing, see Contributing
For further documentation information, see the docs
This module changes the content of your files and currently there is no backup functionality. PHPStorm has a Local history for files and of course you have your code version controlled... I tried to add complete UnitTests, but I can't garantuee every situation is covered.
This module should never be installed on a production environment.