Этот пример поддерживает общую невидимость, а также только NotifyIcon в Системном лотке и никаких щелчках и многое другое.
Больше здесь: http://code.msdn.microsoft.com/TheNotifyIconExample
Идея состоит в том, что ваш Bootstrap читает файл конфигурации, и вы объявляете записи конфигурации для описания адаптера базы данных, который хотите создать:
[bootstrap]
resources.db.adapter = Pdo_Mysql
resources.db.params.dbname = "mydatabase"
resources.db.params.username = "webuser"
resources.db.params.password = "XXXX"
resources.db.isDefaultTableAdapter = true
Если вы используете ключи конфигурации, следуя правильному соглашению, это автоматически сигнализирует базовому классу Bootstrap о необходимости создать и инициализировать объект Zend_Application_Resource_Db
и сохранить его в реестре ресурсов начальной загрузки .
Позже в вашем контроллере вы можете получить доступ к реестру ресурсов. примечание: Я отредактировал этот код после дополнительного тестирования.
class SomeController extends Zend_Controller_Action
{
public function init()
{
$bootstrap = $this->getInvokeArg("bootstrap");
if ($bootstrap->hasPluginResource("db")) {
$dbResource = $bootstrap->getPluginResource("db");
$db = $dbResource->getDbAdapter();
}
}
}
В качестве альтернативы вы можете написать собственный метод инициализации в своем классе Bootstrap, чтобы сохранить объект в Zend_Registry по умолчанию:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDb()
{
if ($this->hasPluginResource("db")) {
$dbResource = $this->getPluginResource("db");
$db = $dbResource->getDbAdapter();
Zend_Registry::set("db", $db);
}
}
}
Теперь вы можете получить доступ к своему объекту db за один шаг, а не за три:
class SomeController extends Zend_Controller_Action
{
public function init()
{
$db = Zend_Registry::get("db");
}
}
Лично я бы использовал второй метод, потому что тогда мне нужно получить доступ к реестру ресурсов только один раз, в моем начальной загрузке. В первом примере мне пришлось бы скопировать один и тот же блок кода на все мои контроллеры.