Laravel: Генерация свойств phpDoc для ваших моделей Eloquent

Привет, ребята,

Мы все знаем, что Laravel’s Eloquent использует магические методы PHP (__get & __set) для колонок, аксессоров, отношений,… и многого другого.

Когда происходит разработка, нам трудно понять, какие «свойства» мы можем использовать для конкретной модели Eloquent. Мы должны помнить имена столбцов, имена отношений… Это большая боль, IKR?

Альтернатива, которую мы получили — это использование блока phpDoc и добавление свойств, например:

/**
* @property-read int $id // column
* @property string $name // column
* @property-read Country|null $country // relationship
* ...
*/
class User extends Model
{
Войти в полноэкранный режим Выйти из полноэкранного режима

Этот способ очень удобен для IDE (например, PHPStorm) и значительно повышает производительность.

Но делать работу вручную не так весело, не так ли? Так что вот он я, с генератором EloquentDocs.

Repo: https://github.com/sethsandaru/eloquent-docs

Установка

Просто нажмите здесь для установки, только для разработчиков:

composer require sethphat/eloquent-docs --dev
Войти в полноэкранный режим Выйти из полноэкранного режима

Laravel auto-discovery будет автоматически делать волшебство 😉.

Использование

Просмотр свойств вашей модели

php artisan eloquent:phpdoc AppModelsUser
Войти в полноэкранный режим Выйти из полноэкранного режима

Это покажет все свойства (столбцы, отношения, …) для предварительного просмотра перед выполнением записи

Запись свойств в модель

php artisan eloquent:phpdoc AppModelsUser --write
Войти в полноэкранный режим Выйти из полноэкранного режима

Запись блока phpDoc в вашу модель (перезапись, если в вашей модели уже есть блок phpDoc).

По желанию, используйте короткие имена классов

php artisan eloquent:phpdoc AppModelsUser --short-class
Войти в полноэкранный режим Выйти из полноэкранного режима

От * @property-read AppModelsCountry|null $country к * @property-read Country|null $country

Следующие цели

  • Возможность сканировать целые папки и заменять блоки phpDoc автоматически.
  • Добавить больше вспомогательных методов для моделей Eloquent.

Спасибо, ребята, удачной и продуктивной работы с Laravel!

Оцените статью
devanswers.ru
Добавить комментарий