Допустим, у меня есть следующий компонент с именем База :
<cfcomponent output="false">
<cffunction name="init" access="public" returntype="Any" output="false">
<cfset variables.metadata = getmetadata(this)>
<cfreturn this>
</cffunction>
<cffunction name="getmeta" access="public" returntype="Any" output="false">
<cfreturn variables.metadata>
</cffunction>
</cfcomponent>
и я хочу расширить базу в другом компоненте с именем Admin :
<cfcomponent output="false" extends="Base">
</cfcomponent>
Теперь в моем приложении, если я делаю следующее при создании объекта:
<cfset obj = createobject("component", "Admin").init()>
<cfdump var="#obj.getmeta()#">
Метаданные, которые я получаю, сообщают мне, что имя компонента Admin и расширяет мой Base компонент. Это все хорошо, но я не хочу явно вызывать метод init () при создании объекта.
Было бы неплохо, если бы я мог сделать что-то подобное в моем Base компоненте:
<cfcomponent output="false">
<cfset init()>
<cffunction name="init" access="public" returntype="Any" output="false">
<cfset variables.metadata = getmetadata(this)>
<cfreturn this>
</cffunction>
<cffunction name="getmeta" access="public" returntype="Any" output="false">
<cfreturn variables.metadata>
</cffunction>
</cfcomponent>
Однако затем метаданные, возвращаемые методом getmeta (), сообщают мне, что имя компонента равно Base , хотя оно все еще расширяется. Есть мысли о том, как этого добиться?