1. Go to this page and download the library: Download romanzipp/laravel-model-doc library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
romanzipp / laravel-model-doc example snippets
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class MyModel extends Model
{
protected $table = 'models'; // 1. Add the corresponding table name
public function teams(): HasMany // 2. Add relation methods return types
{
return $this->hasMany(Team::class);
}
public function getNameAttribute(): string // 3. Add accessor methods return types
{
return ucfirst($this->name);
}
}
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* @property string $id
* @property string $title
* @property string $pretty_title
* @property string|null $icon
* @property int $order
* @property bool $enabled
* @property array $children
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
*
* @property \Illuminate\Database\Eloquent\Collection|\App\Models\Team[] $teams
* @property int|null $teams_count
*
* @method static \Illuminate\Database\Eloquent\Builder whereTeamName(string $name)
*
* @method static \Database\Factoies\MyUserFactory<self> factory($count = null, $state = [])
*/
class MyUser extends Model
{
use HasFactory;
protected $table = 'users';
protected $casts = [
'children' => 'array',
];
public function teams(): HasMany
{
return $this->hasMany(Team::class);
}
public function scopeWhereTeamName(Builder $builder, string $name)
{
$builder->where('name', $name);
}
public function getPrettyTitleAttribute(): string
{
return ucfirst($this->title);
}
protected static function newFactory()
{
return new \Database\Factoies\MyUserFactory();
}
}
use Illuminate\Support\ServiceProvider;
use romanzipp\ModelDoc\Services\DocumentationGenerator;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
DocumentationGenerator::usePath(fn () => base_path('app/Models'));
}
}