Не удается найти компонент из оператора cfinvoke - PullRequest
1 голос
/ 24 июня 2019

Мне передали какой-то код ColdFusion из-за того, что кто-то покинул компанию, и мне было поручено вести эту работу. Проблема в том, что последний раз, когда я просматривал код ColdFusion, около 10 лет назад, я полностью потерян и начинаю с нуля.

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

<cfinvoke component="_admin_tools_kms" method="listKMSUsers" returnVariable="getKMSUsers">
    <cfinvokeargument name="argFullAccount" value="1" />
</cfinvoke>

Я знаю, что это возвращает список пользователей системы, но я не могу найти точный код, выполняющий этот вызов. Должно ли это имя компонента "_admin_tools_kms" быть именем файла cfm где-нибудь или это может быть просто ссылочное имя, созданное каким-либо образом?

1 Ответ

3 голосов
/ 25 июня 2019

Давайте разберем это:

<cfinvoke 
    component="someComponent" 
    method="someFunction" 
    returnVariable="someVariable">
    <cfinvokeargument name="someArgument" value="foo" />
</cfinvoke>

Атрибут component является либо именем файла с расширением .cfc, либо переменной, содержащей экземпляр этого компонента.Если бы это была переменная, на нее ссылались бы как #someComponent#.

Если там просто значение, то есть вероятность, что в той же папке находится файл с именем someComponent.cfc.

Если там есть значение, разделенное точками, например cfc.services.someComponent,

  • , найдите в корневом веб-каталоге папку с именем /cfc/, которая содержит другую папку /services/ вгде вы найдете файл someComponent.cfc.
  • . Если вы не видите эту папку, найдите отображение ColdFusion в корневом файле Application.cfc, которое создает псевдоним cfc и сопоставляет его спапки, которые вы хотите.
  • и если ЭТОГО там нет, то проверьте на своем веб-сервере псевдонимы папок или сопоставления, чтобы увидеть, что, черт возьми, сделал какой-то психопат, чтобы скрыть, где этот код существует.

НО, я предпочитаюделать простой текстовый поиск по методу, указанному вместо компонента.Эта функция может существовать в другом компоненте или файле, чем тот, на который ссылается.

Поскольку CFC может расширять другой CFC, может существовать parentComponent.cfc, который расширяет someComponent, который фактически содержит рассматриваемый метод.Хуже того, файл someComponent.cfc может содержать другие файлы, в которых содержится метод.Единственным недостатком является то, что функция названа так: create.

...