2016-09-02 2 views
1

Я разрабатывал пользовательский пакет для Laravel 5.2, и теперь я нахожусь в точке, где я реализую аутентификацию.Auth Routes/Views in Laravel Package?

Я попытался добавить папку Auth в свой каталог ресурсов/представлений, а также контроллеры, необходимые в моем каталоге пакетов с соответствующими пространствами имен. Он попадает в контроллеры, но не видит представление, поскольку он возвращает ошибку, говорящую, что [auth.login] не найден.

Я попытался добавить свойство overides к AuthController как таковой:

protected $loginView = 'packagename::auth.login'; 
protected $registerView = 'packagename::register.form'; 
protected $linkRequestView = 'packagename::link.request.view'; 
protected $resetView = 'packagename::reset.view'; 

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

Какова наилучшая практика/правильный способ настройки представлений Auth, маршрутов и т. Д. В пакете Laravel, чтобы он мог иметь свою собственную область администрирования?

ответ

1

Существует много стратегий, и это зависит от того, что (и насколько велико) приложение. Я могу привести пример именования.

Views: {package-name}::{area}.{module}-{submodule?}.{action} 
Routes: {package-name}.{area}.{module}-{submodule?}.{action} 
Config: {package-name}.{area}.{rest-of-config-key} 

Поясню:

  1. {package-name} - вы всегда должны ставить перед, что вы будете знать, каждый раз, что пакет имеет вид/путь/конфиг от.

  2. {area} - для exampla может быть: admin и user и front или restricted и open. Он будет описывать уровень доступа пользователя (например, фронт не нужен зарегистрированный пользователь). Эта часть хороша, особенно для создания групп маршрутов, и она фильтрует (но также и для согласования каждого элемента системы).

  3. {module} и {submodule} - будет рассказывать вам, какие бизнес-логики, вы в

  4. {action}. - это просто имя действия контроллера

Так вот у вас есть же примеры выше:

route('mypostpackage.admin.post.index') 
route('mypostpackage.admin.post-comment.edit', [$id]) 

view('mypostpackage::admin.post.show') // in package: views/admin/post/index.blade.php 
view('authpackage::restricted.user-address.edit') 

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

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

+0

Спасибо! Я реализовал следующую структуру внутри своего пакета, и он был очень чистым. –