2015-03-14 5 views
3

Просто попробуйте Laravel события и наблюдатели в первый раз.Где хранить наблюдатели модели (события) в Ларавеле 5

http://laravel.com/docs/5.0/eloquent#model-observers

Я вижу в некоторых старых проводок около Laravel 4 хорошее место, чтобы хранить их просто в app/models/observers. Однако в Laravel 5, поскольку структура папок немного изменилась, мне интересно, где хорошее место для их хранения?

Должен ли я хранить их в папке Events?

+0

Я определяю их в том же классе модели, что и подкласс, потому что один и тот же наблюдатель не будет загружен разными моделями. – astroanu

ответ

3

Это один из тех вопросов, которые могут иметь неправильный ответ, но несколько правильных ответов. Я бы предположил, что мы немного перейдем к основам.

Я считаю, что структура папок веб-приложения должна быть интуитивной. Кто-то, смотрящий на код в первый раз, должен очень быстро понять, что найти. Итак, вот что я хотел бы предложить.

Поскольку у Laravel 5 есть модели в папке app, вы можете указать их в папку Models. Затем ваш код модели будет размещен по адресу app/Models. Аналогичным образом, вы можете оставить своих наблюдателей на модели app/Models/Observers и пропустить их соответствующим образом.

Вы также можете сохранить их в папке Events или в отдельной папке Observers в папке app, но, как я уже сказал, вышеуказанное более интуитивное.

+0

Подкатегории под ** приложением ** должны быть заглавные, так как Laravel использует [стандарт автоматической загрузки PSR-4] (http://www.php-fig.org/psr/psr-4/). –

+0

@MartinBean Спасибо. Я обновил свой ответ. –

1

Вы можете хранить их там, где захотите. Laravel не накладывает структуру каталогов для уникальной логики вашего приложения.

Я не бы хранить их в приложения/События каталог, хотя, как они предназначены для классов событий. Более подходящее место может быть что-то вроде приложение/наблюдателей или приложения/модели/наблюдателей если вы хотите сохранить некоторое знакомство с Laravel 4.

0

Я определяю их в одной и той же модели класса файла, так как тот же наблюдатель не будут загружаться различными моделями (большую часть времени).

Хотя, если ваши наблюдатели делятся разными моделями, сделайте отдельную папку в папке приложения и добавьте ее в автозагрузку композитора и определите там классы наблюдателей.

Смежные вопросы