Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/silverleague/silverstripe-ideannotator

Generate docblocks for DataObjects, Page, PageControllers and (Data)Extensions
https://github.com/silverleague/silverstripe-ideannotator

code-generator code-quality dataobject docblock hacktoberfest helper improvement packagist phpstorm rick-and-morty silverleague-modules silverstripe silverstripe-4 silverstripe-ideannotator vscode

Last synced: 3 days ago
JSON representation

Generate docblocks for DataObjects, Page, PageControllers and (Data)Extensions

Awesome Lists containing this project

README

        

# silverstripe-ideannotator

[![Scrutinizer](https://img.shields.io/scrutinizer/g/silverleague/silverstripe-ideannotator.svg)](https://scrutinizer-ci.com/g/silverleague/silverstripe-ideannotator/)
[![Travis](https://img.shields.io/travis/silverleague/silverstripe-ideannotator.svg)](https://travis-ci.org/silverleague/silverstripe-ideannotator)
[![codecov](https://codecov.io/gh/silverleague/silverstripe-ideannotator/branch/master/graph/badge.svg)](https://codecov.io/gh/silverleague/silverstripe-ideannotator)
[![Packagist](https://img.shields.io/packagist/dt/silverleague/ideannotator.svg)](https://packagist.org/packages/silverleague/ideannotator)
[![Packagist](https://img.shields.io/packagist/v/silverleague/ideannotator.svg)](https://packagist.org/packages/silverleague/ideannotator)
[![Packagist Pre Release](https://img.shields.io/packagist/vpre/silverleague/ideannotator.svg)](https://packagist.org/packages/silverleague/ideannotator)

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.

## Requirements

SilverStripe Framework and possible custom code.

By default, `mysite` and `app` are enabled "modules".

### Version ^2:
SilverStripe 3.x framework

### Version ^3:
SilverStripe 4.x+

## Installation

```json
{
"require-dev": {
"silverleague/ideannotator": "3.x-dev"
}
}
```
Please note, this example omitted any possible modules you require yourself!

## Example result

```php
'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
);
}
```

## Further information
For installation, see [installation](docs/en/Installation.md)

For the Code of Conduct, see [CodeOfConduct](docs/en/CodeOfConduct.md)

For contributing, see [Contributing](CONTRIBUTING.md)

For further documentation information, see the [docs](docs/en/Index.md)

## A word of 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.

Windows users should be aware that the PHP Docs are generated with PSR in mind and use \n for line endings rather than Window's \r\n, some editors may have a hard time with these line endings.

This module should **never** be installed on a production environment.