[1.17] Refactoring/Umbenennung Tag-Klassen

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

[1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 16.12.2012, 18:12:14

Hallo zusammen,

ich wollte kurz darüber informieren, dass ich gerade am Thema "Refactoring/Umbenennung Tag-Klassen" aus der Roadmap arbeite.

Aus diesem Task haben sich bereits eine Reihe an Änderungen (es kommen noch einige dazu) ergeben, die unter http://wiki.adventure-php-framework.org ... 6_auf_1.17 zusammengefasst sind.

Fragen/Anregungen zu diesem Task immer gerne. :)
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von jwlighting » 16.12.2012, 19:51:12

Hallo Christian,

arbeitest du alle Taglibs durch, auch die im Tools / Extension / Modules Namespace - oder sollen wir von uns beigetragene taglibs selbst umbauen.

Ich überlege außerdem gerade, ob ein Skript, welches alle nötigen Ersetzungen automatisch vornimmt, sinnvoll und machbar ist.
Wo kommen die Änderungen denn überall vor? Habe ich was vergessen?
  • Klassendeklaration
  • Als vererbende Klasse in einer Klassendeklaration
  • Als Service Name
  • Bei direkter Instanzierung mit new
  • In *:addtaglib-Tags
LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 17.12.2012, 00:42:10

Hallo Jan,

ich gehe alle Klassen im SVN durch, also inkl. der extensions. Anschließend dokumentiere ich die Umbenennung im Wiki und ziehe die Doku nach. Danke für dein Angebot, ich denke jedoch, dass ich den Großteil dank IDE schon erschlagen habe. :)
Ich überlege außerdem gerade, ob ein Skript, welches alle nötigen Ersetzungen automatisch vornimmt, sinnvoll und machbar ist.
Ein Skript könnte man für das Release schon vorbereiten, allerdings sind viele Umbenennungen intern versteckt (z.B. bei den Formularfeldern) und du kommst damit erst garnicht in Berührung.
Viele Grüße,
Christian

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 19.12.2012, 18:36:11

Hallo zusammen,

ich bin wieder einen Schritt weiter gekommen und habe neben dem reinen Renaming auch noch Aufwäumarbeiten durchgeführt.

Bei den extensions kann ich einige Arbeiten selbst durchführen, bei einigen Themen brauche ich jedoch eure Hilfe. Diese sind:
  • htmllist
  • apfelsms
  • news
  • postbox
Die Extensions
  • arraypager
  • form
  • forwardmessage
  • htmlheader
kann ich selbst migrieren, da ich die extensions teilweise mitentwickelt habe.

Wer kann sich den o.g. Bereichen annehmen?
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von jwlighting » 19.12.2012, 21:12:05

Hallo Christian,

das APFelSMS brauchst du kaum zu migrieren. Die beiliegenden Taglibs habe ich alle schon nach dem neuen Verfahren angelegt.

Einzig Zeile 7 in extensions::apfelsms::pres::taglibs::SMSImportDesignTaglib.php ist betroffen:

Alt:

Code: Alles auswählen

class SMSImportDesignTaglib extends core_taglib_importdesign {
 
Neu:

Code: Alles auswählen

class SMSImportDesignTaglib extends ImportTemplateTag {
 
Ich habe das bei mir lokal schon vorgenommen. Baust du es ins SVN ein?

Wenn ich die Taglibs alle noch umbenennen soll, sodass sie ebenfalls auf *Tag statt *Taglib enden, kann ich das gerne machen und dir dann meinen Stand hier hochladen.

LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 19.12.2012, 23:11:17

Hi Jan,

das hat meine IDE schon erledigt. :) Wenn du auch ein Renaming durchführen möchtest, immer gerne. Zwingend ist das jedoch nicht notwendig, da du schon die neue Form des <core:addtaglib />-Tags nutzt (explizite Angabe der Tag-Klasse) und damit ist das APFelSMS auch schon unter 1.17 lauffähig.

Die Umbennenung von base_controller nach BaseDocumentController habe ich auch schon erledigt. Das müsste ggf. noch in der Doku angepasst werden.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von jwlighting » 20.12.2012, 12:51:36

Dank dir.
Ich denke ich werde das Renaming auch durchführen, ist ja schnell gemacht.

Dann ist auch alles einheitlich ;)

LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von Coach83 » 20.12.2012, 15:46:00

Kurze Frage: Ich hab mir die 1.17er Version aus dem svn gezogen - vorher ging ein $form->setPlaceHolder() warum jetzt nicht mehr?

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 21.12.2012, 10:01:06

Hallo Coach,

das liegt daran, dass ich beim Refactoring einen Fehler begangen habe, den ich gestern Abend wieder ausbügeln musste. :roll: Konkret habe ich den Form-Tag von den Form-Control-Tags getrennt, da diese Vererbungshierarchie nicht sauber war. Dabei ist natürlich auch die setPlaceHolder() aus der Form verschwunden. Ich überlege dabei ohnehin, ob ich nicht die setPlaceHolder()-Methode noch eine Ebene höher ziehe. Mal sehen...

Update mal deine SVN-Quellen, dann sollte es wieder funktionieren.

@Jan: danke für's Refactoring. Als Basis für deine Arbeit kannst du dir die Quellen aus dem SVN ziehen.
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von Coach83 » 21.12.2012, 10:26:44

Ahso :-)
Na dann mal danke für die schnelle Abhilfe.
Ich bin jetzt mal 3 Wochen in Kur. Fallls ich dort kein Internet habe: frohe Weihnachten und nen guten Rutsch an Alle.

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 21.12.2012, 11:51:18

Wünsche ich dir auch! Gute Erholung!
Viele Grüße,
Christian

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 22.12.2012, 01:46:23

Hallo zusammen,

ich habe die Migrationsdokumentation eben auf einen übersichtlichen Stand gebracht: http://wiki.adventure-php-framework.org ... 6_auf_1.17

Ich fahre in den nächsten Tagen nun mit dem Herzstück des APF fort (z.B. $this->__Content -> $this->content). Die Dokumentation dazu ziehe ich parallel nach.
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von TipTop » 22.12.2012, 10:56:55

ich habe die Migrationsdokumentation eben auf einen übersichtlichen Stand gebracht: http://wiki.adventure-php-framework.org ... 6_auf_1.17
Sehr schön! :)
Ich fahre in den nächsten Tagen nun mit dem Herzstück des APF fort (z.B. $this->__Content -> $this->content). Die Dokumentation dazu ziehe ich parallel nach.
Die http-Komponente, an der ich in letzter Zeit arbeite, beinhaltet keine statische Funktionen mehr, um den Wert von Request-Parametern zu erhalten. Für eine sinvolle Verwendug dieser Request-Klasse wären Änderungen in Page & Document notwendig - könntest Du diese bei deinem Refactoring gleich mit einplanen?
Hatte an folgendes gedacht:

Code: Alles auswählen

class Page
{
   public function loadDesign($namespace, $design) {

      $this->document = new Document();
      
      // property injection
      $request = new APF[BS]tools[BS]http[BS]Request::createFromSuperglobals();
      $this->document->request = $request; 
   }
}
 

Code: Alles auswählen

class Document extends APFObject {
    
    protected $request;

     // ...

    protected function __extractTagLibTags() {    
        // ... 
        $object = new $class();    // Zeile 466
        $object->request = $this->request;
       // ...
    }

    public function transform() {
        $docCon = new $this->__DocumentController;
        $docCon->request = $this->request;
    }
}
 
Hier mal ein Beispiel der aktuellen Request-API:

Code: Alles auswählen

class MyDocumentController extends base_controller {
    
    public function transformContent() {
        if ($this->request->isMethod(Request::METHOD_POST)) {
            if (isset($this->request->query->id)) { //  __isset()
                unset($this->request->post->myLoginForm->UserName); // __unset()
            }
        }
        $postParams = clone $this->request->post; // supports deep cloning
        if (isset($this->request->headers->Content_Type)) {
            unset($this->request->headers->User_Agent);
        }
    }

} 

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 24.12.2012, 01:28:03

Hi,
[..]könntest Du diese bei deinem Refactoring gleich mit einplanen?
Das würde ich gerne zunächst diskutieren. Warum? Der Ansatz ist mir ehrlich gesagt zu sehr bei JAVA abgeschaut.

PHP hat mit seinen $_REQUEST/$_SERVER-Superglobals bereits einen für die Sprache üblichen Container für derartige Inhalte. Ich sehe keinen Sinn darin, dass ein Framework - unabhängig vom APF - dafür ein weiteres Konstrukt einführt. Für die konkrete Entwicklung kannst du - bezogen auf dein Beispiel - die genannten Superglobals befragen, für Unit-Tests im Setup einfach die gewünschten Werte einfüllen.
Viele Grüße,
Christian

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

Re: [1.17] Refactoring/Umbenennung Tag-Klassen

Beitrag von dr.e. » 02.01.2013, 20:40:50

Hallo zusammen,

meine beiden Tasks unter http://wiki.adventure-php-framework.org ... rsion_1.17 sind nun abgeschlossen. Die Dokumentation der Migration auf die neue Version ist unter http://wiki.adventure-php-framework.org ... 6_auf_1.17 im Wiki beschrieben.

@TipTip: wie gehen wir mit den Http-Tools für 1.17 weiter um?
Viele Grüße,
Christian

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast