• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Request statt View-Helper-Ausgabe

Hab mich an das kleine Tutorial gehalten (Creating a simple view helper in Zend Framework 2 ).
Nun hab ich das Problem das wenn ich in meinem view-script meine deklarierte Variable (heist bbcode) mit
PHP:
echo $this->bbcode('irgendeintext');
es mir nicht den erwarteten geparsten String ausgibt sondern den kompletten Request.
PHP:
namespace Profile\View\Helper;

use Decoda\Decoda;
use Zend\Http\Request;
use Zend\View\Helper\AbstractHelper;

class Bbcode extends AbstractHelper
{
    protected $request;

    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    public function __invoke()
    {
        $bbcode = new Decoda($this->request);
        return $bbcode->parse();
    }
}
Das ist der Quelltext meiner ViewHelper-Klasse.

Edit says: Hat sich erledigt. Es geht :)
 
Zuletzt bearbeitet:

Kaiuwe

Super-Moderator
PHP:
use Decoda\Decoda;
use Zend\Http\Request;
use Zend\View\Helper\AbstractHelper;

class Bbcode extends AbstractHelper
{
    protected $request;

    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    public function __invoke()
    {
        $bbcode = new Decoda($this->request);
        return $bbcode->parse();
    }
}
Ich bin komplett verwirrt! Wozu wird ein „HTTP-Request“ beim Parsen von einer Markup-Sprache benötigt?
 
Habs als invokable in einer Modul.config.php drinnen ud geht einwandfrei. Warum das mit Request
geacht wurde keine Ahnung hatte mich komplett daran gehalten wie es im Tut war.
Hatte mich auch gewundert wieso das so gemacht wurde. Machte ja keinen wirklichen Sinn.
Und aus dem ViewHelper hab ich den Constructor entfernt. Wird nicht benötigt.
 

Kaiuwe

Super-Moderator
Habs als invokable in einer Modul.config.php drinnen ud geht einwandfrei. Warum das mit Request
geacht wurde keine Ahnung hatte mich komplett daran gehalten wie es im Tut war.
Hatte mich auch gewundert wieso das so gemacht wurde. Machte ja keinen wirklichen Sinn.
In dem Tutorial stimmt alles und um eine URL auszugeben, ist es schon ganz richtig das Request-Objekt zu verwenden. Warum du es aber, für deinen Anwendungsfalls, übernommen hast, ist ein Rätsel. ;)
 
Zuletzt bearbeitet:

Kaiuwe

Super-Moderator
So,
der ganze Spaß ist nun als Git-Repo und per Composer verfügbar.
Zu finden unter https://github.com/darkmatus/zf2-bbcodeintegration
Danke!

Ich würde aber noch, nur der Vollständigkeit wegen, in der Modul-Klasse die Interfaces „Zend\ModuleManager\Feature\AutoloaderProviderInterface“ und „Zend\ModuleManager\Feature\ConfigProviderInterface“ implementieren. So ist es auch für Einsteiger ersichtlich, woher die Methodennamen kommen.

Hast du dein Modul auch auf http://modules.zendframework.com bekannt gemacht?
 
Zuletzt bearbeitet:

Kaiuwe

Super-Moderator
Werd es direkt mal dort mit rein setzen.
Die Seite braucht zwar noch etliches an Funktionalität, aber wenn Inhalt kommt, dann entsteht auch Zugzwang bei der Weiterentwicklung der Seite.

In wie fern meinste das die implementiert werden sollen.
hab die Implements vorhin erst raus genommen :D
Die gehören aber dort rein, ansonsten frag sich doch jeder Einsteiger, sind das selbstdefinierte Methoden, soll ich erraten welche Methoden verwendet werden, …
 
Zuletzt bearbeitet:
Werds beim einen der nächsten commits wieder mit rein nehmen.
Werd abererstmal an den Smilys bauen. Irgendwie wills den Pfad nicht fressen.
Das problem ist das die Emoticons im Verzeichnis vom Decoda liegen und ich nicht
in den Pfad komme. Zumindest steh ich mal wieder aufm Schlauch.
 
Okay implements sind wieder drinnen.
aber hast du eine idee wie ich am besten auf den
emoticonspfad komme? Irgendwie werden die nciht angezeigt. Der Pfad stimmt
und lässt sich im Browser bei mir lokal auch öffnen. Nur scheint das Framework den Zugriff nicht zuzulassen.
Irgendwie müsste es ja möglich sein dem zu sagen das er im images Ordner des public Verzeichnisses suchen soll.
Nur wenn ich mit zB.
Code:
ROOT_PATH.'/public/images/emoticons/'
den Pfad angebe sagt mir FireBug das
der pfad falsch ist. Ein Dump um den erzeugten Pfad zu bekommen und diesen manuell aufrufen funktioniert allerdings
Einwandfrei und im erzeugten Sourcecode ist es auch valid html.
 
Das Problem ist das es, egal auf welche Art, den pfad nicht akzeptiert.
FireBug sagt immer das er nicht geladen werden konnte.

Edit: Fehler gefunden :) Pfadangabe war falsch. Ist aber in der Quelltextansicht nicht aufgefallen.
Ein Blick in die Konsole von FireBug hat die lösung gebracht.
 
Zuletzt bearbeitet:
Oben