сократить пространства имен Coldfusion для компонентов - PullRequest
0 голосов
/ 26 июля 2011

Я делаю объектно-ориентированное приложение в Coldfusion, и поэтому я действительно разбил код.поэтому у меня очень длинные пространства имен для моих компонентов;например:

folder1.folder2.plugin1.datatypes.Object

Я, кажется, повторяю много вещей, но в то же время, некоторые из этих вещей действуют как «модули»,под этим я подразумеваю, что «folder2» в примере действительно содержит, из-за отсутствия лучшего термина, «автономные» компоненты / приложения (думайте о них как о плагинах).поэтому, помимо того, что они называют ресурсы других плагинов, они действуют самостоятельно.но из-за структуры папок мне все равно приходится называть их все как folder1.folder2 .... и т. д.

так что давайте предположим, что "folder1.folder2."может измениться по прихоти.(этого не произойдет, но поскольку «plugin1» определит автономный компонент, его не волнует, что содержит «folder1» или «folder2», если они вообще существуют).

, когда я пишу кодв плагине, в любом случае, я могу сократить строку пространства имен;есть ли такая вещь, как «относительное» пространство имен, как и использование относительных ссылок href?

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

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Вы можете использовать сопоставления ColdFusion, в частности сопоставления для отдельных приложений, в Application.cfc.

Вы можете сделать это в Application.cfc

<cfset this.mappings["/com"] = expandPath("folder1/folder2/plugin1") />

Вы можете ссылаться на компоненты, используя com.datatypes.object.

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

0 голосов
/ 27 июля 2011

Звучит так, как будто вы захотите рассмотреть внедрение зависимостей, например, WireBox.Это позволит вам иметь один файл конфигурации с полными путями и позволит вам использовать псевдоним для получения ваших моделей.На самом деле, вы даже можете иметь места сканирования проводных коробок, поэтому вам не нужно перечислять каждый созданный вами объект.

WireBox был извлечен из потрясающей среды ColdBox.Он доступен независимо от среды ColdBox и должен быть несколько простым для внедрения в ваше приложение.

Существует полезная группа Google для ColdOx (и связанных с ней блоков), записанные собрания по подключению ColdBox и другие виды обучения, доступные для WireBox.

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

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