Highlight code syntax on README document

This commit is contained in:
Thach Nguyen
2018-01-31 20:10:23 +07:00
parent 1080504a78
commit 66d6e3df01
+60 -38
View File
@@ -18,15 +18,18 @@ Note: You do need CodeIntel for Sublime Text: https://github.com/SublimeCodeInte
It's possible to generate a PhpStorm meta file, to [add support for factory design pattern](https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata). For Laravel, this means we can make PhpStorm understand what kind of object we are resolving from the IoC Container. For example, `events` will return ann `Illuminate\Events\Dispatcher` object, so with the meta file you can call `app('events')` and it will autocomplete the Dispatcher methods. It's possible to generate a PhpStorm meta file, to [add support for factory design pattern](https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata). For Laravel, this means we can make PhpStorm understand what kind of object we are resolving from the IoC Container. For example, `events` will return ann `Illuminate\Events\Dispatcher` object, so with the meta file you can call `app('events')` and it will autocomplete the Dispatcher methods.
php artisan ide-helper:meta ```bash
php artisan ide-helper:meta
app('events')->fire(); ```
\App::make('events')->fire(); ```php
app('events')->fire();
/** @var \Illuminate\Foundation\Application $app */ \App::make('events')->fire();
$app->make('events')->fire();
Pre-generated example: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67 /** @var \Illuminate\Foundation\Application $app */
$app->make('events')->fire();
```
Pre-generated example: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
> Note: You might need to restart PhpStorm and make sure `.phpstorm.meta.php` is indexed. > Note: You might need to restart PhpStorm and make sure `.phpstorm.meta.php` is indexed.
@@ -34,31 +37,41 @@ Pre-generated example: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
Require this package with composer using the following command: Require this package with composer using the following command:
composer require barryvdh/laravel-ide-helper ~1.11 ```bash
composer require barryvdh/laravel-ide-helper ~1.11
```
After updating composer, add the ServiceProvider to the providers array in `app/config/app.php` After updating composer, add the ServiceProvider to the providers array in `app/config/app.php`
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider', ```php
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',
```
You can now re-generate the docs yourself (for future updates) in artisan You can now re-generate the docs yourself (for future updates) in artisan
php artisan ide-helper:generate ```bash
php artisan ide-helper:generate
```
Note: bootstrap/compiled.php has to be cleared first, so run `php artisan clear-compiled` before generating (and `php artisan optimize` after..) Note: bootstrap/compiled.php has to be cleared first, so run `php artisan clear-compiled` before generating (and `php artisan optimize` after..)
You can configure your composer.json to do this after each commit: You can configure your composer.json to do this after each commit:
"scripts":{ ```json
"post-update-cmd":[ "scripts":{
"php artisan clear-compiled", "post-update-cmd":[
"php artisan ide-helper:generate", "php artisan clear-compiled",
"php artisan optimize" "php artisan ide-helper:generate",
] "php artisan optimize"
}, ]
},
```
You can also publish the config-file to change implementations (ie. interface to specific class) or set defaults for --helpers or --sublime. You can also publish the config-file to change implementations (ie. interface to specific class) or set defaults for --helpers or --sublime.
php artisan config:publish barryvdh/laravel-ide-helper ```bash
php artisan config:publish barryvdh/laravel-ide-helper
```
The generator tries to identify the real class, but if it cannot be found, you can define it in the config file. The generator tries to identify the real class, but if it cannot be found, you can define it in the config file.
@@ -70,7 +83,7 @@ The Illuminate/Support/helpers.php is already set-up, but you can add/remove you
### Automatic phpDocs for Models ### Automatic phpDocs for Models
> **Note:** Since v1.10 you need to require `doctrine/dbal: ~2.3` in your own composer.json. > **Note:** Since v1.10 you need to require `doctrine/dbal: ~2.3` in your own composer.json.
If you don't want to write your properties yourself, you can use the command `ide-helper:models` to generate If you don't want to write your properties yourself, you can use the command `ide-helper:models` to generate
phpDocs, based on table columns, relations and getters/setters. You can write the comments directly to your Model file, using the `--write (-W)` option. By default, you are asked to overwrite or write to a separate file (\_ide\_helper\_models.php) (You can force No with `--nowrite (-N)`). phpDocs, based on table columns, relations and getters/setters. You can write the comments directly to your Model file, using the `--write (-W)` option. By default, you are asked to overwrite or write to a separate file (\_ide\_helper\_models.php) (You can force No with `--nowrite (-N)`).
@@ -78,34 +91,43 @@ Please make sure to backup your models, before writing the info.
It should keep the existing comments and only append new properties/methods. The existing phpdoc is replaced, or added if not found. It should keep the existing comments and only append new properties/methods. The existing phpdoc is replaced, or added if not found.
With the `--reset (-R)` option, the existing phpdocs are ignored, only the newly found columns/relations are saved as phpdocs. With the `--reset (-R)` option, the existing phpdocs are ignored, only the newly found columns/relations are saved as phpdocs.
php artisan ide-helper:models Post ```bash
php artisan ide-helper:models Post
/** ```
* An Eloquent Model: 'Post' ```php
* /**
* @property integer $id * An Eloquent Model: 'Post'
* @property integer $author_id *
* @property string $title * @property integer $id
* @property string $text * @property integer $author_id
* @property \Carbon\Carbon $created_at * @property string $title
* @property \Carbon\Carbon $updated_at * @property string $text
* @property-read \User $author * @property \Carbon\Carbon $created_at
* @property-read \Illuminate\Database\Eloquent\Collection|\Comment[] $comments * @property \Carbon\Carbon $updated_at
*/ * @property-read \User $author
* @property-read \Illuminate\Database\Eloquent\Collection|\Comment[] $comments
*/
```
By default, models in app/models are scanned. The optional argument tells what models to use (also outside app/models). By default, models in app/models are scanned. The optional argument tells what models to use (also outside app/models).
php artisan ide-helper:models Post User ```bash
php artisan ide-helper:models Post User
```
You can also scan a different directory, using the --dir option (relative from the base path): You can also scan a different directory, using the --dir option (relative from the base path):
php artisan ide-helper:models --dir="app/workbench/name/package/models" --dir="app/src/Model" ```bash
php artisan ide-helper:models --dir="app/workbench/name/package/models" --dir="app/src/Model"
```
You can publish the config file (`php artisan config:publish barryvdh/laravel-ide-helper`) and set the default directories. You can publish the config file (`php artisan config:publish barryvdh/laravel-ide-helper`) and set the default directories.
Models can be ignored using the --ignore (-I) option Models can be ignored using the --ignore (-I) option
php artisan ide-helper:models --ignore="Post,User" ```bash
php artisan ide-helper:models --ignore="Post,User"
```
Note: With namespaces, wrap your model name in " signs: `php artisan ide-helper:models "API\User"`, or escape the slashes (`Api\\User`) Note: With namespaces, wrap your model name in " signs: `php artisan ide-helper:models "API\User"`, or escape the slashes (`Api\\User`)