Laravel 4: как бы вы интегрировали определяемые пользователем шаблоны?

#javascript #php #css #laravel-4

#javascript #php #css #laravel-4

Вопрос:

Я создаю приложение в Laravel 4. Это приложение должно быть доступно клиенту. По сути, владелец приложения должен иметь возможность создавать свой собственный шаблон / стиль / макет для своей версии и загружать его (в идеале в zip). Не могли бы вы предложить какие-либо идеи / рекомендации / советы по созданию функциональности, где это возможно?

Где я должен найти шаблоны? Вы бы использовали папку app / views или создали бы доступную для записи папку в общей папке?

Любые идеи или предложения или даже ссылки на учебное пособие будут оценены.

Ответ №1:

В двух словах, способ, которым это обрабатывается в Laravel, заключается в использовании каскадных представлений и пространства имен представлений. Создать пространство имен легко, просто выберите имя и добавьте пути, по которым вы хотите его искать, в порядке приоритета.

 View::addNamespace('template', ['path/to/public/views', 'path/to/app/views']);
 

Теперь при использовании View::make вы можете указать префикс своего пространства имен, и сначала он будет искать в path/to/public/views, если представления там нет, он будет искать в path/to/app/views. Это очень удобно, когда вы хотите предоставить своего рода базовый шаблон и просто позволить им предоставлять свои собственные шаблоны, которые перезаписывают базовый.

Вот как вы ссылаетесь на представления с пространством имен.

 return View::make('template::example.view');