Play Framework: Как изменить игровые пакеты по умолчанию? - PullRequest
33 голосов
/ 27 января 2011

Мне было просто интересно, можно ли поменять пакеты по умолчанию на Play.Например: я хочу изменить пакет "controllers" на "com.test.controllers".Я не знаю, имеет ли это какой-то смысл, но я просто хочу знать, как, если это возможно.Я не нашел ничего связанного с этим на сайте игры.

Ответы [ 4 ]

20 голосов
/ 03 апреля 2012

Согласно текущей Play 2.0 документации, теперь это возможно:

Обратите внимание, что в Play 2.0 соглашения об именах пакетов контроллеров, моделей и представлений теперь являются именно этим и могут быть изменены при необходимости (например, добавление префикса в com.yourcompany).

Это хорошо работает для пустого приложения Play, однако есть некоторые подробности, которые следует принять во внимание:

  1. Импорт пользовательских пространств имен в шаблоны представлений будет работать для любых типов, кроме тех, которые объявлены в первой строке шаблона, которые являются аргументами для функции scala render , сгенерированной из представления , Наш обходной путь - добавить полное имя пакета в объявления типов в первой строке шаблонов представления.
  2. Для каждого пространства имен, определенного в файле маршрутов (например, пользовательский пакет и пакет по умолчанию для маршрута Assets), Play 2.0 создает соответствующий исходный файл маршрутов в том же пространстве имен, поэтому вам нужно позаботиться о том, чтобы адрес был правильным когда например делает перенаправление.
13 голосов
/ 27 января 2011

Из руководства :

Класс контроллера должен быть определен в контроллеры пакет и должны быть подклассом play.mvc.Controller .

Вы можете добавить пакет Java до Имя класса контроллера, если оно не определяется непосредственно под контроллерами пакет. контроллер пакет само по себе неявно, так что вам не нужно указать это.

Это означает, что вы не можете изменить свой пакет controllers на com.test.controllers (потому что корневой пакет должен быть controllers), но вы можете изменить на controllers.com.test.

5 голосов
/ 27 января 2011

Обновлено, чтобы сделать различия между play1 и 2 ясными.

Для Play 1.x это невозможно.

Нет, все контроллеры должны быть в пакете или субпакете контроллеров. Если вы хотите сохранить структуру пакета com.test, вы можете сделать controllers.com.test

Для получения дополнительной информации, см. Эту тему.

Для Play2.x это возможно.

Итак, простой ответ ... это зависит от того, какую версию Play вы используете.

1 голос
/ 27 января 2011

Здесь обсуждается .

Также в FAQ есть это

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