Я хочу добавить переменную, к которой могут обращаться все функции в плагине, но я получаю сообщение об ошибке «Неопределенная переменная». Вот мой плагин:
component
mixin="Controller"
{
public any function init() {
this.version = "1.0";
return this;
}
public void function rememberMe(string secretKey="rm_#application.applicationName#") {
this.secretKey = arguments.secretKey;
}
public void function setCookie(required string identifier) {
// Create a cookie with the identifier and encrypt it using this.secretKey
// this.secretKey is not available, though, and an error is thrown
writeDump(this.secretKey); abort;
}
}
Я вызываю плагин из своего контроллера Sessions.cfc:
component
extends="Controller"
{
public void function init() {
// Call the plugin and provide a secret key
rememberMe("mySecretKey");
}
public void function remember() {
// Call the plugin function that creates a cookie / I snipped some code
setCookie(user.id);
}
}
Когда я выгружаю
this.secretKey
внутри плагина, я получаю переменную неопределенную ошибку. Ошибка говорит мне, чтоthis.secretKey
недоступен в контроллере Sessions.cfc. Но я не делаю дамп из Sessions.cfc, я делаю дамп из CFC плагина, как видите. Почему?Как я могу ограничить
this.secretKey
в своем плагине, чтобы к нему можно было получить доступ с помощью setCookie()? До сих порvariables
иthis
терпели неудачу, добавляю ли я определения в функцию, псевдоконструктор или init(). На всякий случай я добавилvariables.wheels.class.rememberME
, но безрезультатно.
Вот ошибка:
Component [controllers.Sessions] has no acessible Member with name [secretKey]