Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-10 Diskussionsfäden Marc Willmann
Am 09.03.15 17:55, schrieb Christian Leicht:
 Muss dann für jedes Feld einer Datenbankabfrage ein Modul Eintrag
 erstellt werden?
 
 Ich rufe ja aus meiner Extension heraus die fe_users Datenbank auf und
 möchte auf die Felder zugreifen. Leider kommt im Controller nichts an.
 
 Im Repository:
 public function showFeuser($userid){
 
 $query = $this-createQuery();
 $query-statement(SELECT * FROM fe_users WHERE uid =
 '.$userid.');
 
 return $query-execute();
 }

Im Repository nichts um im Controller

$this-wwlfeuserfilesRepository-findByUid($uid)

ist doch viel einfacher? ;-)

und lass _grundsätzlich_ die SQL-Statements im Repo (die braucht man nur
für Ausnahmefälle) und verwende stattdessen die Extbase-Methoden.

 Im Controller:
 $wwlfeuserfiles =
 $this-wwlfeuserfilesRepository-showFeuser($user['uid']);
 
 
 Und $wwlfeuserfiles ist bis auf uid und pid leer.
 
 Christian
 
 
 
 
 
 
 
 Am 09.03.2015 um 16:23 schrieb Stephan Schuler:
 Hallo zusammen.
 
 
 Meine Vermutungen wären (mit absteigender Wahrscheinlichkeit):
 * Das Model ist falsch oder nicht annotiert.
 * Die Properties des Models haben (namentlich) nichts mit den Columns
 der Tabelle zu tun.
 * Der Cache ist nicht hinreichend gecleared.
 * Vielleicht gibt es gar kein passendes Model. Wobei ich dann erwarten
 würde dass überhaupt nichts geht, der PropertyMapper wird ja
 hoffentlich nicht auf eine StdClass zurückfallen und das
 AbstractDomainObject ist nicht umsonst abstract.
 
 Dass die Fehlerbeschreibung an Fluid und kann es auch auflisten
 beinhaltet zeigt mir: Die notwendigen Werkzeuge werden nicht genutzt.
 
 Sieh bitte zu dass du einen Debugger ans Laufen bekommst. Verwende
 eine IDE die mit xdebug klar kommt, dazu einen Webserver der xdebug
 verwendet und dann setz einen Breakpoint in die Zeile des
 $this-view-assign().
 
 Das hätte nämlich auch schon heute Mittag offengelegt, dass das
 Repository ganz banal nicht in die Klasse injected wurde.
 
 Natürlich *kann* man jetzt auch mit dem f:debug()-ViewHelper
 hantieren. Das macht aber keinen Spaß. Zumal Du ja eigentlich
 überhaupt kein Fluid debuggen möchtest, Fluid geht ja offensichtlich.
 
 
 Pro-Tip:
 Das was du gerade als Statement treibst geht übrigens schöner,
 einfacher und erfordert nicht mal eine zusätzliche Methode im Repository.
 
 Das QueryResultInterface schreibt getFirst() vor, und das
 Generic/QueryResult ist so schlau, einen bestehenden Query durch ein
 setLimit(1) zu erweitern.
 
 https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_repository.html#a73a1b0348919b6755e4f69dcc70eba64
 
 
 https://typo3.org/api/typo3cms/interface_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_query_result_interface.html#acac359f9ae56b80c7979f4a4feb736e5
 
 
 https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_generic_1_1_query_result.html#acac359f9ae56b80c7979f4a4feb736e5
 
 https://typo3.org/api/typo3cms/_query_result_8php_source.html#l00098
 
 
 Gruß,
 
 
 
 Stephan Schuler
 Web-Entwickler | netlogix Media
 
 Telefon: +49 (911) 539909 - 0
 E-Mail: stephan.schu...@netlogix.de
 Web: media.netlogix.de
 
 
 
 
 netlogix GmbH  Co. KG
 IT-Services | IT-Training | Media
 Neuwieder Straße 10 | 90411 Nürnberg
 Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
 E-Mail: i...@netlogix.de | Web: http://www.netlogix.de
 
 netlogix GmbH  Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA
 13338)
 Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB
 20634)
 Umsatzsteuer-Identifikationsnummer: DE 233472254
 Geschäftsführer: Stefan Buchta, Matthias Schmidt
 
 
 
 -Ursprüngliche Nachricht-
 Von: typo3-german-boun...@lists.typo3.org
 [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Georg Ringer
 Gesendet: Montag, 9. März 2015 14:30
 An: typo3-german@lists.typo3.org
 Betreff: Re: [TYPO3-german] Extbase macht mich verrückt
 
 Am 2015-03-09 um 13:59 schrieb Marc Willmann:
 teilweise. Das @inject ist z.B. wichtig. Google nach Dependency
 Injection. Einmal verstanden willst Du nie wieder ohne DI
 programmieren.
 
 ich empfehle das @inject wegzulassen und injectmethoden zu verwenden
 da die einiges schneller sind!
 
 lg georg
 ___
 TYPO3-german mailing list
 TYPO3-german@lists.typo3.org
 http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
 
 ___
 TYPO3-german mailing list
 TYPO3-german@lists.typo3.org
 http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

 ___
 TYPO3-german mailing list
 TYPO3-german@lists.typo3.org
 http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-- 
Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Seelandstr. 14-16
D-23569 Lübeck

TYPO3 Certified Integrator
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http

Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Christian Leicht

Der Wahnsinn,

spielen die Kommentarzeilen jetzt auch eine Rolle?


Dann muss ich in \WWL\WwlFeuserfiles\Domain\Repository\WwlFeuserRepository

WwlFeuserRepository Groß schreiben? oder klein?
Die Datei unter Classes/Domain/Repository heißt aber 
WwlfeuserfilesRepository.php


Muss das der selbe Name sein wie in den Kommentaren?


Christian



Am 09.03.2015 um 11:53 schrieb Marc Willmann:

Hallo Christian,

ich gebe Georg dahingehend Recht, dass es Dir offenkundig noch an den
Grundlagen des MVC-Programmierens fehlt. Aber wir haben ja alle mal
angefangen. :-)



 public function showFeuser(){

 $query = $this-createQuery();
 $query-statement(SELECT * FROM fe_users LIMIT 1);
 return $query-execute();
 }


im Repository. das $query-statement() gewinnt keine Eleganzpreise,
dürfte aber funktionieren.


einen Datensatz anzeigen lassen.
Mich bringt das ganze Controller Repository Module Zeugs noch um den
Verstand. Warum hat man das jetzt so umständlich auf verschiedene
Dateien verteilt?


Das geht jetzt wirklich in die MVC-Grundlagen; nur so viel: bei größeren
Projekten ist das deutlich übersichtlicher.


Die Funktion showFeuser() habe ich in der Repository abgelegt.

Aber wo rufe ich denn die Funktion jetzt auf?


Wenn ich im Controller nun

 public function listAction() {
 $wwlfeuser = $this-WwlfeuserRepository-showFeuser();

 $this-view-assign('wwlfeuser', $wwlfeuser);
 }


verwende, dann bekomme ich nur diese Fehlermeldung:

Fatal error: Call to a member function showFeuser() on a non-object in
/home/httpd/xxx/xxx/typo3conf/ext/wwl_feuserfiles/Classes/Controller/WwlfeuserfilesController.php
on line 50


PHP meckert, dass Du showFeuser() aufrusft, ohne ein passendes Objekt zu
haben. Dein Fehler liegt also bei $this-WwlfeuserRepository (welches
vermutlich in Deinem Controller nicht existiert). Füg also in Deiner
Controllerklasse sowas wie


 /**
 * wwlfeuserRepository
 *
 * @var \VENDOR\EXTNAME\Domain\Repository\WwlFeuserRepository
 * @inject
 */
protected $wwlfeuserRepository = NULL;

(bitte auch Groß-Kleinschreibung beachten und VENDOR/EXTNAME natürlich
anpassen) und änder in Deinem Code

$this-WwlfeuserRepository  in $this-wwlfeuserRepository

dann könnte das schon besser aussehen. :-)

Marc



___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Christian Leicht
Ich glaube ja nicht das es an MVC oder OOP liegt sondern auch an 
Namespaces. Das alles zusammen ist mir noch so undurchsichtig


Christian

Am 09.03.2015 um 12:37 schrieb Georg Ringer:

Hallo,

Am 2015-03-09 um 11:45 schrieb Office | Artkon. Ganz EINFACH Internet.:

Ich glaube nicht, dass diese Antwort zur Lösung des Problems geführt hat.


nun ist die Frage was das Ziel ist, und ein Verständnis entwickelt man
(ich zumindest nicht), nicht wenn man wieder ein paar Zeilen irgendwo
hin kopiert.

Es gibt zB
http://www.amazon.de/TYPO3-Extbase-Moderne-Extension-Entwicklung-Fluid/dp/3955390705/ref=sr_1_1?ie=UTF8qid=1425900990sr=8-1keywords=lobacher+typo3


aber ich kann das nicht empfehlen weil ich es nicht kenne und auch das
Vorwissen nicht kenne.

Georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Christian Leicht
Das komische daran ist jetzt nur das ich im Controller ein Array bekomme 
das an $wwlfeuserfiles übergeben wird.


$wwlfeuserfiles = $this-wwlfeuserfilesRepository-showFeuser();

Soweit so gut.

Aber es enthält zwar die Anzahl an Datensätzen aus der Datenbankabfrage 
(SELECT * FROM fe_users), aber nicht alle Felder.


Ich übergebe es dann per
$this-view-assign('wwlfeuserfiles', $wwlfeuserfiles);

an Fluid und kann es auch auflisten:


table  class=tx_wwlfeuserfiles 

f:for each={wwlfeuserfiles} as=wwlfeuserfile
tr
tdTest: {wwlfeuserfile.uid}/td

/tr
/f:for
/table


Aber nur uid und pid haben einen Inhalt. Alle anderen Felder der Tabelle 
fe_users sind leer (In der MySQL ist natürlich Inhalt vorhanden).


Christian



Am 09.03.2015 um 13:59 schrieb Marc Willmann:

Hallo Christian,

Am 09.03.15 13:54, schrieb Christian Leicht:

Der Wahnsinn,

spielen die Kommentarzeilen jetzt auch eine Rolle?


teilweise. Das @inject ist z.B. wichtig. Google nach Dependency
Injection. Einmal verstanden willst Du nie wieder ohne DI programmieren.


Dann muss ich in \WWL\WwlFeuserfiles\Domain\Repository\WwlFeuserRepository

WwlFeuserRepository Groß schreiben? oder klein?
Die Datei unter Classes/Domain/Repository heißt aber
WwlfeuserfilesRepository.php


Klassennamen UpperCamelCase
Methodennamen lowerCamelCase
Variablen lowerCamelCase

lesbarer Code erleichtert vieles, dazu gehören auch ein paar
Konventionen, die nicht notwendigerweise technisch bedingt sind.
Allerdings gilt bei Extbase Convention over Configuration, insofern noch
ein wichtiger Grund, sich an Bewährtes zu halten.

Marc



Muss das der selbe Name sein wie in den Kommentaren?


Christian



Am 09.03.2015 um 11:53 schrieb Marc Willmann:

Hallo Christian,

ich gebe Georg dahingehend Recht, dass es Dir offenkundig noch an den
Grundlagen des MVC-Programmierens fehlt. Aber wir haben ja alle mal
angefangen. :-)



  public function showFeuser(){

  $query = $this-createQuery();
  $query-statement(SELECT * FROM fe_users LIMIT 1);
  return $query-execute();
  }


im Repository. das $query-statement() gewinnt keine Eleganzpreise,
dürfte aber funktionieren.


einen Datensatz anzeigen lassen.
Mich bringt das ganze Controller Repository Module Zeugs noch um den
Verstand. Warum hat man das jetzt so umständlich auf verschiedene
Dateien verteilt?


Das geht jetzt wirklich in die MVC-Grundlagen; nur so viel: bei größeren
Projekten ist das deutlich übersichtlicher.


Die Funktion showFeuser() habe ich in der Repository abgelegt.

Aber wo rufe ich denn die Funktion jetzt auf?


Wenn ich im Controller nun

  public function listAction() {
  $wwlfeuser = $this-WwlfeuserRepository-showFeuser();

  $this-view-assign('wwlfeuser', $wwlfeuser);
  }


verwende, dann bekomme ich nur diese Fehlermeldung:

Fatal error: Call to a member function showFeuser() on a non-object in
/home/httpd/xxx/xxx/typo3conf/ext/wwl_feuserfiles/Classes/Controller/WwlfeuserfilesController.php

on line 50


PHP meckert, dass Du showFeuser() aufrusft, ohne ein passendes Objekt zu
haben. Dein Fehler liegt also bei $this-WwlfeuserRepository (welches
vermutlich in Deinem Controller nicht existiert). Füg also in Deiner
Controllerklasse sowas wie


  /**
  * wwlfeuserRepository
  *
  * @var \VENDOR\EXTNAME\Domain\Repository\WwlFeuserRepository
  * @inject
  */
 protected $wwlfeuserRepository = NULL;

(bitte auch Groß-Kleinschreibung beachten und VENDOR/EXTNAME natürlich
anpassen) und änder in Deinem Code

$this-WwlfeuserRepository  in $this-wwlfeuserRepository

dann könnte das schon besser aussehen. :-)

Marc



___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german




___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Marc Willmann
Hallo Christian,

Am 09.03.15 13:54, schrieb Christian Leicht:
 Der Wahnsinn,
 
 spielen die Kommentarzeilen jetzt auch eine Rolle?

teilweise. Das @inject ist z.B. wichtig. Google nach Dependency
Injection. Einmal verstanden willst Du nie wieder ohne DI programmieren.

 Dann muss ich in \WWL\WwlFeuserfiles\Domain\Repository\WwlFeuserRepository
 
 WwlFeuserRepository Groß schreiben? oder klein?
 Die Datei unter Classes/Domain/Repository heißt aber
 WwlfeuserfilesRepository.php

Klassennamen UpperCamelCase
Methodennamen lowerCamelCase
Variablen lowerCamelCase

lesbarer Code erleichtert vieles, dazu gehören auch ein paar
Konventionen, die nicht notwendigerweise technisch bedingt sind.
Allerdings gilt bei Extbase Convention over Configuration, insofern noch
ein wichtiger Grund, sich an Bewährtes zu halten.

Marc


 Muss das der selbe Name sein wie in den Kommentaren?
 
 
 Christian
 
 
 
 Am 09.03.2015 um 11:53 schrieb Marc Willmann:
 Hallo Christian,

 ich gebe Georg dahingehend Recht, dass es Dir offenkundig noch an den
 Grundlagen des MVC-Programmierens fehlt. Aber wir haben ja alle mal
 angefangen. :-)


  public function showFeuser(){

  $query = $this-createQuery();
  $query-statement(SELECT * FROM fe_users LIMIT 1);
  return $query-execute();
  }

 im Repository. das $query-statement() gewinnt keine Eleganzpreise,
 dürfte aber funktionieren.

 einen Datensatz anzeigen lassen.
 Mich bringt das ganze Controller Repository Module Zeugs noch um den
 Verstand. Warum hat man das jetzt so umständlich auf verschiedene
 Dateien verteilt?

 Das geht jetzt wirklich in die MVC-Grundlagen; nur so viel: bei größeren
 Projekten ist das deutlich übersichtlicher.

 Die Funktion showFeuser() habe ich in der Repository abgelegt.

 Aber wo rufe ich denn die Funktion jetzt auf?


 Wenn ich im Controller nun

  public function listAction() {
  $wwlfeuser = $this-WwlfeuserRepository-showFeuser();

  $this-view-assign('wwlfeuser', $wwlfeuser);
  }


 verwende, dann bekomme ich nur diese Fehlermeldung:

 Fatal error: Call to a member function showFeuser() on a non-object in
 /home/httpd/xxx/xxx/typo3conf/ext/wwl_feuserfiles/Classes/Controller/WwlfeuserfilesController.php

 on line 50

 PHP meckert, dass Du showFeuser() aufrusft, ohne ein passendes Objekt zu
 haben. Dein Fehler liegt also bei $this-WwlfeuserRepository (welches
 vermutlich in Deinem Controller nicht existiert). Füg also in Deiner
 Controllerklasse sowas wie


  /**
  * wwlfeuserRepository
  *
  * @var \VENDOR\EXTNAME\Domain\Repository\WwlFeuserRepository
  * @inject
  */
 protected $wwlfeuserRepository = NULL;

 (bitte auch Groß-Kleinschreibung beachten und VENDOR/EXTNAME natürlich
 anpassen) und änder in Deinem Code

 $this-WwlfeuserRepository  in $this-wwlfeuserRepository

 dann könnte das schon besser aussehen. :-)

 Marc


 ___
 TYPO3-german mailing list
 TYPO3-german@lists.typo3.org
 http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


-- 
Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Seelandstr. 14-16
D-23569 Lübeck

TYPO3 Certified Integrator
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Georg Ringer

Am 2015-03-09 um 13:59 schrieb Marc Willmann:

teilweise. Das @inject ist z.B. wichtig. Google nach Dependency
Injection. Einmal verstanden willst Du nie wieder ohne DI programmieren.


ich empfehle das @inject wegzulassen und injectmethoden zu verwenden da 
die einiges schneller sind!


lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Stephan Schuler
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hallo zusammen.


Meine Vermutungen wären (mit absteigender Wahrscheinlichkeit):
* Das Model ist falsch oder nicht annotiert.
* Die Properties des Models haben (namentlich) nichts mit den Columns der 
Tabelle zu tun.
* Der Cache ist nicht hinreichend gecleared.
* Vielleicht gibt es gar kein passendes Model. Wobei ich dann erwarten würde 
dass überhaupt nichts geht, der PropertyMapper wird ja hoffentlich nicht auf 
eine StdClass zurückfallen und das AbstractDomainObject ist nicht umsonst 
abstract.

Dass die Fehlerbeschreibung an Fluid und kann es auch auflisten beinhaltet 
zeigt mir: Die notwendigen Werkzeuge werden nicht genutzt.

Sieh bitte zu dass du einen Debugger ans Laufen bekommst. Verwende eine IDE die 
mit xdebug klar kommt, dazu einen Webserver der xdebug verwendet und dann setz 
einen Breakpoint in die Zeile des $this-view-assign().

Das hätte nämlich auch schon heute Mittag offengelegt, dass das Repository ganz 
banal nicht in die Klasse injected wurde.

Natürlich *kann* man jetzt auch mit dem f:debug()-ViewHelper hantieren. Das 
macht aber keinen Spaß. Zumal Du ja eigentlich überhaupt kein Fluid debuggen 
möchtest, Fluid geht ja offensichtlich.


Pro-Tip:
Das was du gerade als Statement treibst geht übrigens schöner, einfacher und 
erfordert nicht mal eine zusätzliche Methode im Repository.

Das QueryResultInterface schreibt getFirst() vor, und das Generic/QueryResult 
ist so schlau, einen bestehenden Query durch ein setLimit(1) zu erweitern.

https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_repository.html#a73a1b0348919b6755e4f69dcc70eba64

https://typo3.org/api/typo3cms/interface_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_query_result_interface.html#acac359f9ae56b80c7979f4a4feb736e5

https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_generic_1_1_query_result.html#acac359f9ae56b80c7979f4a4feb736e5
https://typo3.org/api/typo3cms/_query_result_8php_source.html#l00098


Gruß,



Stephan Schuler
Web-Entwickler | netlogix Media

Telefon: +49 (911) 539909 - 0
E-Mail: stephan.schu...@netlogix.de
Web: media.netlogix.de




netlogix GmbH  Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: i...@netlogix.de | Web: http://www.netlogix.de

netlogix GmbH  Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



- -Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Georg Ringer
Gesendet: Montag, 9. März 2015 14:30
An: typo3-german@lists.typo3.org
Betreff: Re: [TYPO3-german] Extbase macht mich verrückt

Am 2015-03-09 um 13:59 schrieb Marc Willmann:
 teilweise. Das @inject ist z.B. wichtig. Google nach Dependency
 Injection. Einmal verstanden willst Du nie wieder ohne DI programmieren.

ich empfehle das @inject wegzulassen und injectmethoden zu verwenden da die 
einiges schneller sind!

lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-BEGIN PGP SIGNATURE-
Version: PGP Universal 3.3.2 (Build 15704)
Charset: utf-8

wpUDBQFU/brcpp0IwsibV8MBCKAyBAChj7qoOOshAFtVPfOxWdWLzsfz/hwiCdwg
NPggGtXZMxVvKTfVD8YMKdTdRS+/SxNng5uwb90/SwD9gsq74mUm1jRnEpdz3pJE
xnlyK3S1pfrkpo3x38obaWNi29o0Sti+zVgwDelEstyYavioGoSKuuEBKyFgtGZK
BIlWMK0njg==
=1V4E
-END PGP SIGNATURE-
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Office | Artkon. Ganz EINFACH Internet.
Hallo Georg,

vielen Dank für die Rückmeldung, das ist mal ein Hinweis. Ein Kunde hat mich 
mal nach Literatur zu dem Thema gefragt.
Natürlich habe ich auch schon in Amazonien gesucht. Und Du hast recht, ohne 
konkrete Vorgaben ist eine Empfehlung schwierig.
Ich werde das mal mit ihm besprechen und Deinen Link weiterleiten.

Greets,

Arthur

-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Georg Ringer
Gesendet: Montag, 09. März 2015 12:38
An: typo3-german@lists.typo3.org
Betreff: Re: [TYPO3-german] Extbase macht mich verrückt

Hallo,

Am 2015-03-09 um 11:45 schrieb Office | Artkon. Ganz EINFACH Internet.:
 Ich glaube nicht, dass diese Antwort zur Lösung des Problems geführt hat.

nun ist die Frage was das Ziel ist, und ein Verständnis entwickelt man (ich 
zumindest nicht), nicht wenn man wieder ein paar Zeilen irgendwo hin kopiert.

Es gibt zB
http://www.amazon.de/TYPO3-Extbase-Moderne-Extension-Entwicklung-Fluid/dp/3955390705/ref=sr_1_1?ie=UTF8qid=1425900990sr=8-1keywords=lobacher+typo3

aber ich kann das nicht empfehlen weil ich es nicht kenne und auch das 
Vorwissen nicht kenne.

Georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Christian Leicht
Muss dann für jedes Feld einer Datenbankabfrage ein Modul Eintrag 
erstellt werden?


Ich rufe ja aus meiner Extension heraus die fe_users Datenbank auf und 
möchte auf die Felder zugreifen. Leider kommt im Controller nichts an.


Im Repository:
public function showFeuser($userid){

$query = $this-createQuery();
$query-statement(SELECT * FROM fe_users WHERE uid = 
'.$userid.');

return $query-execute();
}


Im Controller:
$wwlfeuserfiles = $this-wwlfeuserfilesRepository-showFeuser($user['uid']);


Und $wwlfeuserfiles ist bis auf uid und pid leer.

Christian







Am 09.03.2015 um 16:23 schrieb Stephan Schuler:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hallo zusammen.


Meine Vermutungen wären (mit absteigender Wahrscheinlichkeit):
* Das Model ist falsch oder nicht annotiert.
* Die Properties des Models haben (namentlich) nichts mit den Columns der 
Tabelle zu tun.
* Der Cache ist nicht hinreichend gecleared.
* Vielleicht gibt es gar kein passendes Model. Wobei ich dann erwarten würde 
dass überhaupt nichts geht, der PropertyMapper wird ja hoffentlich nicht auf 
eine StdClass zurückfallen und das AbstractDomainObject ist nicht umsonst 
abstract.

Dass die Fehlerbeschreibung an Fluid und kann es auch auflisten beinhaltet 
zeigt mir: Die notwendigen Werkzeuge werden nicht genutzt.

Sieh bitte zu dass du einen Debugger ans Laufen bekommst. Verwende eine IDE die mit xdebug klar 
kommt, dazu einen Webserver der xdebug verwendet und dann setz einen Breakpoint in die Zeile 
des $this-view-assign().

Das hätte nämlich auch schon heute Mittag offengelegt, dass das Repository ganz 
banal nicht in die Klasse injected wurde.

Natürlich *kann* man jetzt auch mit dem f:debug()-ViewHelper hantieren. Das 
macht aber keinen Spaß. Zumal Du ja eigentlich überhaupt kein Fluid debuggen möchtest, 
Fluid geht ja offensichtlich.


Pro-Tip:
Das was du gerade als Statement treibst geht übrigens schöner, einfacher und 
erfordert nicht mal eine zusätzliche Methode im Repository.

Das QueryResultInterface schreibt getFirst() vor, und das Generic/QueryResult ist so 
schlau, einen bestehenden Query durch ein setLimit(1) zu erweitern.

https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_repository.html#a73a1b0348919b6755e4f69dcc70eba64

https://typo3.org/api/typo3cms/interface_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_query_result_interface.html#acac359f9ae56b80c7979f4a4feb736e5

https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_generic_1_1_query_result.html#acac359f9ae56b80c7979f4a4feb736e5
https://typo3.org/api/typo3cms/_query_result_8php_source.html#l00098


Gruß,



Stephan Schuler
Web-Entwickler | netlogix Media

Telefon: +49 (911) 539909 - 0
E-Mail: stephan.schu...@netlogix.de
Web: media.netlogix.de




netlogix GmbH  Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: i...@netlogix.de | Web: http://www.netlogix.de

netlogix GmbH  Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



- -Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Georg Ringer
Gesendet: Montag, 9. März 2015 14:30
An: typo3-german@lists.typo3.org
Betreff: Re: [TYPO3-german] Extbase macht mich verrückt

Am 2015-03-09 um 13:59 schrieb Marc Willmann:

teilweise. Das @inject ist z.B. wichtig. Google nach Dependency
Injection. Einmal verstanden willst Du nie wieder ohne DI programmieren.


ich empfehle das @inject wegzulassen und injectmethoden zu verwenden da die 
einiges schneller sind!

lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-BEGIN PGP SIGNATURE-
Version: PGP Universal 3.3.2 (Build 15704)
Charset: utf-8

wpUDBQFU/brcpp0IwsibV8MBCKAyBAChj7qoOOshAFtVPfOxWdWLzsfz/hwiCdwg
NPggGtXZMxVvKTfVD8YMKdTdRS+/SxNng5uwb90/SwD9gsq74mUm1jRnEpdz3pJE
xnlyK3S1pfrkpo3x38obaWNi29o0Sti+zVgwDelEstyYavioGoSKuuEBKyFgtGZK
BIlWMK0njg==
=1V4E
-END PGP SIGNATURE-
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Georg Ringer

Hallo,

ganz ehrlich, welche Antwort willst du nun haben?

Das ist in jedem OOP so dass man das nach Funktion auftrennt.

Leg dir doch ein Extbase-Buch zu?!

lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Office | Artkon. Ganz EINFACH Internet.
Ich glaube nicht, dass diese Antwort zur Lösung des Problems geführt hat.

Greets,

Arthur

-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Georg Ringer
Gesendet: Montag, 09. März 2015 11:35
An: typo3-german@lists.typo3.org
Betreff: Re: [TYPO3-german] Extbase macht mich verrückt

Hallo,

ganz ehrlich, welche Antwort willst du nun haben?

Das ist in jedem OOP so dass man das nach Funktion auftrennt.

Leg dir doch ein Extbase-Buch zu?!

lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Christian Leicht
Ja, Geaorg, ich verstehe ja das OOP die Zukunft ist und für große 
Projekte viele Vorteile bringt.


Aber wenn man mal nur was kleines hat, wie eine einfachste Extension, 
dann ist der Aufwand schon sehr groß.


Christian

Am 09.03.2015 um 11:35 schrieb Georg Ringer:

Hallo,

ganz ehrlich, welche Antwort willst du nun haben?

Das ist in jedem OOP so dass man das nach Funktion auftrennt.

Leg dir doch ein Extbase-Buch zu?!

lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Office | Artkon. Ganz EINFACH Internet.
BTW, welches Buch kannst Du für Einsteiger empfehlen?

Greets,

Arthur

-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Georg Ringer
Gesendet: Montag, 09. März 2015 11:35
An: typo3-german@lists.typo3.org
Betreff: Re: [TYPO3-german] Extbase macht mich verrückt

Hallo,

ganz ehrlich, welche Antwort willst du nun haben?

Das ist in jedem OOP so dass man das nach Funktion auftrennt.

Leg dir doch ein Extbase-Buch zu?!

lg georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Marc Willmann
Hallo Christian,

ich gebe Georg dahingehend Recht, dass es Dir offenkundig noch an den
Grundlagen des MVC-Programmierens fehlt. Aber wir haben ja alle mal
angefangen. :-)

 
 public function showFeuser(){
 
 $query = $this-createQuery();
 $query-statement(SELECT * FROM fe_users LIMIT 1);
 return $query-execute();
 }

im Repository. das $query-statement() gewinnt keine Eleganzpreise,
dürfte aber funktionieren.

 einen Datensatz anzeigen lassen.
 Mich bringt das ganze Controller Repository Module Zeugs noch um den
 Verstand. Warum hat man das jetzt so umständlich auf verschiedene
 Dateien verteilt?

Das geht jetzt wirklich in die MVC-Grundlagen; nur so viel: bei größeren
Projekten ist das deutlich übersichtlicher.

 Die Funktion showFeuser() habe ich in der Repository abgelegt.
 
 Aber wo rufe ich denn die Funktion jetzt auf?
 
 
 Wenn ich im Controller nun
 
 public function listAction() {
 $wwlfeuser = $this-WwlfeuserRepository-showFeuser();

 $this-view-assign('wwlfeuser', $wwlfeuser);
 }
 
 
 verwende, dann bekomme ich nur diese Fehlermeldung:
 
 Fatal error: Call to a member function showFeuser() on a non-object in
 /home/httpd/xxx/xxx/typo3conf/ext/wwl_feuserfiles/Classes/Controller/WwlfeuserfilesController.php
 on line 50

PHP meckert, dass Du showFeuser() aufrusft, ohne ein passendes Objekt zu
haben. Dein Fehler liegt also bei $this-WwlfeuserRepository (welches
vermutlich in Deinem Controller nicht existiert). Füg also in Deiner
Controllerklasse sowas wie


 /**
 * wwlfeuserRepository
 *
 * @var \VENDOR\EXTNAME\Domain\Repository\WwlFeuserRepository
 * @inject
 */
protected $wwlfeuserRepository = NULL;

(bitte auch Groß-Kleinschreibung beachten und VENDOR/EXTNAME natürlich
anpassen) und änder in Deinem Code

$this-WwlfeuserRepository  in $this-wwlfeuserRepository

dann könnte das schon besser aussehen. :-)

Marc


-- 
Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Seelandstr. 14-16
D-23569 Lübeck

TYPO3 Certified Integrator
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

[TYPO3-german] Extbase macht mich verrückt

2015-03-09 Diskussionsfäden Christian Leicht
Hallo, ich versuche schon einige Zeit eine Extension zu erstellen 
mittels der ich ein FE PlugIn erzeuge um einen Datensatz der FE_Users 
Tabelle anzuzeigen.


Das ist aber nicht so einfach.
Dazu habe ich im Kickstarter ein leeres Projekt angelegt und will jetzt über

public function showFeuser(){

$query = $this-createQuery();
$query-statement(SELECT * FROM fe_users LIMIT 1);
return $query-execute();
}


einen Datensatz anzeigen lassen.
Mich bringt das ganze Controller Repository Module Zeugs noch um den 
Verstand. Warum hat man das jetzt so umständlich auf verschiedene 
Dateien verteilt?


Die Funktion showFeuser() habe ich in der Repository abgelegt.

Aber wo rufe ich denn die Funktion jetzt auf?


Wenn ich im Controller nun

public function listAction() {
$wwlfeuser = $this-WwlfeuserRepository-showFeuser();

$this-view-assign('wwlfeuser', $wwlfeuser);
}


verwende, dann bekomme ich nur diese Fehlermeldung:

Fatal error: Call to a member function showFeuser() on a non-object in 
/home/httpd/xxx/xxx/typo3conf/ext/wwl_feuserfiles/Classes/Controller/WwlfeuserfilesController.php 
on line 50


Christian
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german