[dev] how to repair the conf object?

Sebastian Birnbach birnbacs at gmail.com
Tue May 28 07:19:55 UTC 2019


This is very true and I will be happy to contribute.

In present case, this will not be necessary as the Horde wiki already links
to Michael's rather nice article about the API:
https://theupstairsroom.com/65 (I realized this only now, of course)

  Sebastian





Am Di., 28. Mai 2019 um 07:38 Uhr schrieb Ralf Lang <lang at b1-systems.de>:

> Hi Sebastian,
>
> I'd really appreciate if we make a habit of dumping all such "stumbling
> stone" items into the developer wiki as others may benefit (or we keep
> them from running away frustrated).
>
>
>
> Am 27.05.19 um 16:28 schrieb Sebastian Birnbach:
> > Thanks Michael and Ralf, you got me back on track.
> >
> > For the record:
> >
> > global $registry;
> > try{
> > $params = array();
> > $tasks = $registry->tasks->listTasks($params); // variant 1
> > $tasks = $registry->call('tasks/listTasks', $params); // variant 2
> > } catch (Exception $e) {
> > echo _("access to tasks denied\n");
> > }
> >
> >
> >
> > Am Mo., 27. Mai 2019 um 15:59 Uhr schrieb Michael J Rubinsky <
> > mrubinsk at horde.org>:
> >
> >> Quoting Sebastian Birnbach <birnbacs at gmail.com>:
> >>
> >>> Maybe I was using the incorrect approach to use the nag api.
> >>>
> >>> Everything is fine if I do:
> >>>
> >>> global $registry;
> >>> try{
> >>> $tasks = $registry->tasks->listTasks();
> >>> } catch (Exception $e) {
> >>> echo _("tasks access denied");
> >>> }
> >>> print_r($tasks);
> >>>
> >>> Is this the way to do it?
> >> Exactly.
> >>
> >>
> >>> And the other one was just ... BS?
> >>>
> >>> Am Mo., 27. Mai 2019 um 12:15 Uhr schrieb Sebastian Birnbach <
> >>> birnbacs at gmail.com>:
> >>>
> >>>>
> >>>> Am Sa., 25. Mai 2019 um 18:37 Uhr schrieb Michael J Rubinsky <
> >>>> mrubinsk at horde.org>:
> >>>>
> >>>>> [...]
> >>>>>
> >>>>> And this is the conf.xml of you own application, correct? I.e.
> >>>>> /horde/dossierstorage/conf/conf.xml?
> >>>>>
> >>>> My application is called abakus, the xml file is
> >>>> horde/abakus/config/conf.xml
> >>>> Other applications do not use their name in conf.xml so I don't either
> >>>>
> >>>>
> >>>>>
> >>>>>
> >>>>> It sounds to me like there is some error in how you are initializing
> >>>>> your application within horde and the application's context is
> leaking
> >>>>> out to other applications.
> >>>>
> >>>>
> >>>>> Did you create a registry entry for your
> >>>>> application?
> >>>>
> >>>> I did create file horde/config/registry.d/abakus.php with content
> >>>>
> >>>> <?php
> >>>>
> >>>> $this->applications['abakus'] = array('name' => _("Abakus")
> >>>>
> >>>> );
> >>>>
> >>>>
> >>>> Is there more to it?
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> Are you calling Horde_Registry::appInit() at the
> >>>>> beginning of each of your application's requests?
> >>>>>
> >>>> I do. Here is the api.php file I use for testing:
> >>>>
> >>>> <?php
> >>>>
> >>>> require_once __DIR__ . '/lib/Application.php';
> >>>> Horde_Registry::appInit('abakus');
> >>>> $page_output->header(array('title' => _("Nag API Test")));
> >>>>
> >>>> echo "<h3>Testing Nag API</h3>";
> >>>> echo "<pre>\n";
> >>>>
> >>>> echo "dossierstorage driver is " .
> >>>> $GLOBALS['conf']['dossierstorage']['driver'] . "\n";
> >>>>
> >>>> $nag = new Nag_Api();
> >>>> $tasks = $nag->listTasks();
> >>>> print_r($tasks);
> >>>>
> >>>> echo "</pre>\n";
> >>>> $page_output->footer();
> >>>>
> >>>> exit;
> >>>>
> >>>>
> >>>>> Normally, when you load an application, as part of the init process,
> >>>>> your application is pushed onto the registry stack and it's conf.php
> >>>>> values are merged with the horde(base) application's conf.php values.
> >>>>> There should be no other entries in $conf other than the horde/base
> >>>>> application and the currently scoped application.
> >>>>>
> >>>> I see. In api.php:
> >>>> * if I do an Horde_Registry::appInit('abakus'); the calling page
> >>>> (api.php) sees the abakus configuration but nag is unhappy
> >>>> * if I do an Horde_Registry::appInit('nag'); nag is happy but the
> >> calling
> >>>> page sees no abakus configuration
> >>>> * if I do both, whichever statement comes fist gets precedence.
> >>>>
> >>>> So, as you said, only one app is active at a time and an inactive
> app's
> >>>> configuration is not accessible.
> >>>>
> >>>> It surprises me that I need to appInit('nag') to use its API though.
> >>>> How do I work with my own application then?
> >>>>
> >>>>
> >>>>
> >>> --
> >>> dev mailing list
> >>> Frequently Asked Questions: http://wiki.horde.org/FAQ
> >>> To unsubscribe, mail: dev-unsubscribe at lists.horde.org
> >>
> >>
> >> --
> >> mike
> >> The Horde Project
> >> http://www.horde.org
> >> https://www.facebook.com/hordeproject
> >> https://www.twitter.com/hordeproject
> >> --
> >> dev mailing list
> >> Frequently Asked Questions: http://wiki.horde.org/FAQ
> >> To unsubscribe, mail: dev-unsubscribe at lists.horde.org
> >>
> --
> Ralf Lang
> Linux Consultant / Developer
> Tel.: +49-170-6381563
> Mail: lang at b1-systems.de
> B1 Systems GmbH
> Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
> GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
>
>


More information about the dev mailing list