Generate docblocks for DataObjects, Page_Controllers and (Data)Extensions
PHP
Latest commit 7b2b47f Nov 23, 2016 @jelicanin jelicanin committed with Annotation for Namespaced Classes (#72)
Fix for Issue #71

README.md

silverstripe-ideannotator

Scrutinizer Travis Packagist Packagist Packagist

This module generates @property, @method and @mixin tags for DataObjects, Page_Controllers 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.

Example result

<?php

/**
 * Class NewsItem
 *
 * @property string $Title
 * @property int $Sort
 * @property int $Version
 * @property int $AuthorID
 * @method Member Author()
 * @method DataList|Category[] Categories()
 * @method ManyManyList|Tag[] Tags()
 * @mixin Versioned
 */
class NewsItem extends DataObject
{
    private static $db = array(
        'Title' => 'Varchar(255)',
        'Sort'  => 'Int'
    );

    private static $has_one = array(
        'Author'    => 'Member'
    );

    private static $has_many = array(
        'Categories' => 'Category'
    );

    private static $many_many = array(
        'Tags'  => 'Tag'
    );
}

Further information

For installation, see installation

For the Code of Conduct, see CodeOfConduct

For contributing, see Contributing

For further documentation information, see the docs

Caution

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.