[ArrayPager]

Dieser Bereich dient dazu, eure Tricks und Erweiterungen vorzustellen, damit diese auch andere Anwender nutzen können. // This area can be used to publish your tricks and extensions to the APF to be used by other developers.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [ArrayPager]

Beitrag von dr.e. » 01.04.2011, 08:35:54

Gerne. Für sowas lohnt sich der kurze Blick in den Quellcode des betreffenden Service immer.
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [ArrayPager]

Beitrag von Megger » 01.04.2011, 13:58:34

Der ArrayPagerManagerFabric muss nicht per getAndInitServiceObject initialisiert werden. Das Problem ist die init-Methode vom ArrayPagerManager (der wird ja per getAndInitServiceObject bezogen), das auslesen der Config ist fehlerhaft und so sind nur die Standardeinträge vorhanden.
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ArrayPager]

Beitrag von dave » 01.04.2011, 17:53:51

Megger hat geschrieben:Der ArrayPagerManagerFabric muss nicht per getAndInitServiceObject initialisiert werden. Das Problem ist die init-Methode vom ArrayPagerManager (der wird ja per getAndInitServiceObject bezogen), das auslesen der Config ist fehlerhaft und so sind nur die Standardeinträge vorhanden.
Jup, das kann ich so bestätigen. Scahde, ich dachte, es wäre doch so einfach ;) ...

ArrayPagerManager.php:

Code: Alles auswählen

    public function init ($stringParameter) {
         // initialize the config
         $config = $this->getConfiguration ('extensions::arraypager',
                 'arraypager.ini'
         );
         
         // remap configuration
         $configParams = array();
         foreach($config->getValueNames() as $name) { //<------------ getValueNames() macht Probleme!
            $configParams[$name] = $config->getValue($name);
         }
         
         $arrayParameter = array(
             'Pager.ParameterPage' => 'page',
             'Pager.ParameterEntries' => 'entries',
             'Pager.Entries' => 10,
             'Pager.EntriesPossible' => '5|10|15'
         );

         $this->__PagerConfig = array_merge ($arrayParameter,$configParams);

         if (isset ($this->__PagerConfig['Pager.EntriesChangeable']) === TRUE
                 AND $this->__PagerConfig['Pager.EntriesChangeable']         ==  'true'
         ) {
            $this->__PagerConfig['Pager.EntriesChangeable'] = TRUE;
         }
         else {
            $this->__PagerConfig['Pager.EntriesChangeable'] = FALSE;
         }

         $this->__PagerConfig['Pager.Entries'] = intval ($this->__PagerConfig['Pager.Entries']);
      }
 
Und wie Megger sagte, sind später die beiden Werte, die ich benötige, nicht Standard-mässig vorbelegt. Ich füge die dort mal per Hand ein ...

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [ArrayPager]

Beitrag von Megger » 01.04.2011, 18:01:53

Code: Alles auswählen

foreach($config->getValueNames() as $name) { //<------------ getValueNames() macht Probleme!
            $configParams[$name] = $config->getValue($name);
         }
ersetzen durch

Code: Alles auswählen

$section = $config->getSection($initParam);
      if($section===null) {
          throw new Exception('[ArrayPagerManager::init()] No section
              with name "'.$initParam.'" in arraypager.ini');
      } else {
          foreach($section->getValueNames() as $name) {
              $configParams[$name] = $section->getValue($name);
          }
      }
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ArrayPager]

Beitrag von dave » 01.04.2011, 18:13:34

Jup, passt! Es war noch ein kleiner Fehler drin. Als Variable nicht $initParam sondern $stringParameter. Herzlichen Dank!

@ Christian: Wie siehts mit einer Aktualisierung fürs 1.14 aus? Wäre ja schon gut, wenn die mitgelieferten Extensions fehlerfrei liefen ;)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [ArrayPager]

Beitrag von Megger » 01.04.2011, 18:29:57

Also bei mir ist es $initParam (habe Version 1.14 gestern oder vorgestern ausgecheckt)
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ArrayPager]

Beitrag von dave » 01.04.2011, 18:34:35

Ok, dann scheint es zwischendrin geändert worden zu sein. Meine APF-Version ist noch recht "alt". Ich ziehe nicht ständig die aktuellen Ressourcen, das ist mir teilweise zu unheimlich. Da warte ich auf das offizielle 1.14 Release und kümmere mich dann drum.

Ausserdem weiss ich einfach nicht, wie das mit dem "auschecken" ist. Das ist doch auch dieses SVN, aber das übersteigt meinen Horizont im moment ;).

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [ArrayPager]

Beitrag von Megger » 01.04.2011, 19:18:09

Wenn ich es für ein Projekt brauche, dann lade ich es mir so runter
http://adventurephpfra.svn.sourceforge. ... php5/1.14/ und dann unten auf Download GNU tarball

Aber wenn es jetzt bei dir funktioniert, dann ist doch alles super. Werde später die 1.14 Version fixen

@Christian:
Ist das ok so mit der Exception? Oder sollte man in der init Methode keine Exception werfen?
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [ArrayPager]

Beitrag von dr.e. » 01.04.2011, 19:47:54

Hallo Tobi,

danke für die Analyse, ich hatte geistig völlig ignoriert, dass der PagerManager über eine Factory bezogen wird. :oops: Nachdem ich jetzt mal wirklich 5Min Ruhe hatte, hab ich mir den Fehler angesehen und deine Analyse ist absolut korrekt - der Fix ebenso. Ich habe diesen direkt eingebaut, die Exception noch ein bischen aufgehübscht und die restlichen trigger_error() auch durch Exceptions ersetzt.
Oder sollte man in der init Methode keine Exception werfen?
Na da erst recht. In der Entwicklung sollte immer "die early and hard" gelten, sprich solche grundlegenden Fehler müssen sofort zum Abbruch führen. Ohne Config ist das relativ Spass-befreit. :)

@dave: sofern du noch nicht die Version 1.13 nutzt würde ich an deiner Stelle dringend updaten. Das neue ArrayPager-Paket kannst du hier herunterladen.
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ArrayPager]

Beitrag von dave » 01.04.2011, 20:00:02

dr.e. hat geschrieben:@dave: sofern du noch nicht die Version 1.13 nutzt würde ich an deiner Stelle dringend updaten. Das neue ArrayPager-Paket kannst du hier herunterladen.
Doch doch, die 1.13 nutze ich schon. Nur eben die halb gfertige 1.14 noch nicht ;). Und ich weiss auch schon, warum ich mich bisher davor gescheut habe:
Call to undefined method ArrayPagerManagerFabric::getAndInitServiceObject()
Bisher habe ich es immer so gemacht:

Code: Alles auswählen

__getAndInitServiceObject() 
Habe erstmal alles wieder auf __xx umgeschrieben. Das kann ja ein Spass werden zum 1.14 :D

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [ArrayPager]

Beitrag von dr.e. » 01.04.2011, 20:15:02

Ach mist, das hatte ich vergessen. In 1.14 wurde das refactored und funktioniert bei einem konsistenten Stand von 1.14 auch richtig. Wenn du natürlich 1.14er Pakete in 1.13 verwendest, gibt's exakt den Fehler. Ich schlage vor, du fügst einfach noch zwei Unterstriche hinzu, dann klappts. Und Ehrenwort: 1.14 wird gut (ist es auch jetzt schon, hab das auf der Webseite schon im Einsatz), es ist aber trotzdem noch irgendwas zwischen alpha und beta. :)
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ArrayPager]

Beitrag von dave » 01.04.2011, 20:21:22

Klaro, das APF ist jetzt schon Spitze! Deswegen nutze ich es ja auch! ;)

Die Unterstriche sind schon drin ... war ja nicht das Thema. Könnte nur beim Umstellen von 1.13 auf 1.14 etwas mehr Arbeit werden.

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [ArrayPager]

Beitrag von Megger » 01.04.2011, 20:23:02

Mit dem Migrations Wiki Artikel und Search&Replace war das bei mir nicht das Thema, hat nicht viel Zeit gekostet und läuft stabil. Außerdem sind Bugs schnell gefixt
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ArrayPager]

Beitrag von dave » 01.04.2011, 20:27:04

Ok, das klingt ja dann gar nicht so schlecht. Bin am überlegen, jetzt schonmal ein erstes Update zu machen oder wirklich bis zum Release zu warten.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [ArrayPager]

Beitrag von dr.e. » 01.04.2011, 21:11:07

Soweit ich das im Überblick habe, sind die größten Anpassungen schon durch (Front-Controller, Filter, GORM). Hinzu kommen jetzt nur noch "Kleinigkeiten". Und wenn's nicht klappt, ist wie Tobi schon sagt, der Bug schnell gefixt.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste