Mam następujące dwa pliki i chciałby drugi przedłużyć pierwszy:Rozszerzanie application.cfc w podkatalogu
- Wwwroot \ Site \ application.cfc
- wwwroot \ site \ Application \ dir. cfc
Jednak, gdy idę do deklarowania komponentu dla drugiego pliku, nie jestem pewien, co umieścić w atrybucie extends. Moim problemem jest to, że kilka stron dev (ze wspólnym repozytorium SVN) są zjechania tę samą instancję ColdFusion, więc nie można po prostu utworzyć odwzorowanie w admin CF tak:
<cfcomponent extends="site.application">
jednak ColdFusion nie lubi:
<cfcomponent extends="..application">
ani żadnego dynamicznego wprowadzania podobnego:
<cfcomponent extends="#expandpath('..').#application">
Tworzenie odwzorowania wykonawczego (like here) również nie wydaje się możliwe. Utworzenie go w bazowym pliku application.cfc jest bezużyteczne, ponieważ kod ten nie został jeszcze wykonany przed deklaracją dziedziczącego cfc; i nie mogę utworzyć mapowania przed zdefiniowaniem składnika dziedziczącego, ponieważ nie ma jeszcze aplikacji, do której można by dołączyć.
Czy istnieje sposób, w jaki mogę odwołać się do katalogu nadrzędnego, aby zrealizować moje rozszerzenia?
Edytuj, aby wyjaśnić: Rozwiązanie ApplicationProxy nie działa z powodu pogrubionego tekstu powyżej. W tej chwili, po obejściu tego problemu, po prostu nie sprawdzamy \ dir \ application.cfc w SVN, aby każdy programista mógł zachować wersję, która rozszerza jego własny program root.cfc. Oczywiście nie jest to idealne.
Czy to nie zakłada, że katalog główny witryny jest katalogiem głównym? Wydaje się, że nie działa dla mnie. – Soldarnal
Soldernal, jeśli katalog główny witryny nie jest katalogiem głównym, konieczne będzie mapowanie do katalogu głównego witryny. Jeśli twoja nazwa odwzorowania jest foo, to rozszerzasz "foo.application". –
Wygląda na to, że po raz kolejny napotkałem mój pierwotny problem. Jeśli utworzę mapowanie dla foo na \ devsite1 \, to \ devsite2 \ dir \ application.cfc rozszerzy \ devsite1 \ application.cfc – Soldarnal