Fork Clansuite on GitHub

Internet Relay Chat - Logs for #koch
Collected by k-logbot on chat.freenode.net

IRC Log for Mittwoch, 13. Juni 2012

  1. 1: [0:01] -jubii2.dk.quakenet.org- on 3 ca 1(4) ft 20(20) tr
  2. 2: [0:01] * cslogbot (~PircBot@server.jakoch.de) has joined #clansuite
  3. 3: [0:01] * Topic is 'All open WPM-XM issues are cash rewarded bounties! https://github.com/jakoch/WPN-XM/issues Contact me for the working and payment procedure!'
  4. 4: [0:01] * Set by jakoch on Wed May 30 15:42:11 CEST 2012
  5. 5: [0:08] <jakoch> ok, trac wieder on
  6. 6: [0:10] <Rikku`on> gz
  7. 7: [0:16] <jakoch> so ich bin raus, n8i
  8. 8: [0:16] <Rikku`on> gn8
  9. 9: [0:24] * Rikku`on (~Daniel@31.16.179.253) Quit (Read error: EOF from client)
  10. 10: [10:16] * Rikku`on (~Daniel@31.16.179.253) has joined #clansuite
  11. 11: [10:16] <Rikku`on> o/
  12. 12: [15:52] <Rikku`on> so ruhig hier heute ?!?!?
  13. 13: [15:53] <jakoch> working
  14. 14: [15:53] <Rikku`on> ahhh
  15. 15: [16:02] <Rikku`on> ich kann nicht so wirklich den unterschied zwischen dem zf2 "ServiceManager" und "DI" erkennen, und warum die den SM priorisieren/fokosieren
  16. 16: [16:02] <Rikku`on> sind das unterschiedliche pattern, die ich nicht (er)kenne
  17. 17: [16:14] <jakoch> servicemanager.. hmm, h�rt sich nach ner kombination von registry und locator pattern an
  18. 18: [16:14] <jakoch> dann kann man den di in den servicemanager stopfen und ihn von �berall holen, alles andere dann auch
  19. 19: [16:16] <Rikku`on> ich höre nämlcih immer wieder bei dem in chan, das man für (dinge) lieber den SM anstatt den DI nehmen soll, weil angeblich auch schneller
  20. 20: [16:16] <Rikku`on> ich google mal bissl nach registry und locator pattern
  21. 21: [16:17] <Rikku`on> zweiteres hab ich auch schon mal irgendwo in der zf2 doku überflogen :D
  22. 22: [16:17] <jakoch> $serviceManager->set(service) .. dann muss service irgendwo anders instanziert werden
  23. 23: [16:18] <jakoch> wenn man das kurz davor macht, dann besteht eine direkte abh�ngigkeit nur an dieser stelle und danach hat man innerhalb durch den servicemanager sowas wie ne globale var (das is vorteil/nachteil vom registry pattern)
  24. 24: [16:19] <Rikku`on> http://i.imgur.com/Pt7zG.png
  25. 25: [16:19] <jakoch> ja, da wird der servicemanager mit factory methods bef�llt, die f�r die instanzierung sorgen
  26. 26: [16:19] <Rikku`on> so werden die services gesetzt
  27. 27: [16:20] <Rikku`on> ok
  28. 28: [16:20] <jakoch> sm->get(adminuser), dann muss der sm intern die factory nehmen, dann adminuser ranholen, instanzieren, als class var setzen und zur�ckgeben
  29. 29: [16:20] <jakoch> jeder weitere get hat dann nur noch die r�ckgabe von class var zur folge, ist ja schon innerhalb des servicemanagers
  30. 30: [16:21] <Rikku`on> und wenn adminuser jetzt dependencys hat
  31. 31: [16:21] <Rikku`on> ?
  32. 32: [16:21] <Rikku`on> kümmert sich den der di drum oder der sm selber?
  33. 33: [16:22] <jakoch> dann m�sste sich der sm k�mmern
  34. 34: [16:22] <jakoch> siehe dein beispiel: factories, userform.. da besteht ne dependency zu UserInputFilter
  35. 35: [16:23] <jakoch> das is auch das unsch�ne daran
  36. 36: [16:24] <jakoch> setter injection im bereich der configuration
  37. 37: [16:24] <Rikku`on> die factorie UserForm braucht UserInputFilter, und das wieder rum ist ein invokable
  38. 38: [16:24] <jakoch> automatisch aufgel�st wird das nicht, das macht nur ein di
  39. 39: [16:25] <jakoch> der geht dann die class durch und erkennt per reflection was gebraucht wird
  40. 40: [16:26] <jakoch> den reflection part kann man auch rauslassen, wenn man genau wei� welche abh�ngigkeiten bestehen, dann reicht ein config array das die abh�ngigkeiten beschreibt, die instanzierung macht er dann alleine
  41. 41: [16:26] <Rikku`on> ahhh, deswegen ist der so langsam, wegen den reflection? und der sm weiß wahrscheinlich was er aufrufen weil ich gegen interfaces programmiere?
  42. 42: [16:29] <Rikku`on> puh ist das kompliziert, muss mir gleich mal nen stift und zettel rausholen und das aufmalen :D
  43. 43: [16:31] <Rikku`on> aber wenn ich jetzt eine klasse habe die ich als service registriere, diese aber von anderen objekten abhängt, kann der SM das nicht managen
  44. 44: [16:31] <Rikku`on> http://packages.zendframework.com/docs/latest/manual/en/zend.service-manager.html
  45. 45: [16:32] <Rikku`on> weil irgendwie kann ich ihm nicht sagen welche anderen objekte er instanzieren soll
  46. 46: [16:32] <Rikku`on> also da müßte denn doch der DI her, wenn ich objekt abhängigkeiten habe
  47. 47: [16:32] <jakoch> dann musst dort im sm ne factory anlegen, welche deine objekte holt
  48. 48: [16:33] <Rikku`on> ahhh...
  49. 49: [16:33] <jakoch> sowas wie return serviceManager->factoryForYourObjectsAtoD("classB");
  50. 50: [16:33] <jakoch> kurz dann sowas wie sm->get("classB") und die factory is private
  51. 51: [16:33] <jakoch> und wird �ber die config gesetzt
  52. 52: [16:34] <Rikku`on> okok ... es klart langsam auf
  53. 53: [16:34] <jakoch> ums kurz zu machen: das pattern nennt sich service locator und sollte auch so bezeichnet werden
  54. 54: [16:34] <jakoch> aber ich bin nich Zend^^
  55. 55: [16:35] <jakoch> au�erdem ist die bindung des DI in den ServiceLocator recht problematisch, weil dann der DI quasi-global wird
  56. 56: [16:35] <Rikku`on> oops: erster satz: The ServiceManager is a Service Locator implementation.
  57. 57: [16:36] <jakoch> registry is immer ersatz f�r globals
  58. 58: [16:36] <Rikku`on> hab ich überlesen
  59. 59: [16:37] <jakoch> wie immer bei zend augenwischerei: registry + factories �ber ne config + di reingesetzt (global violation) und als einfach verkauft
  60. 60: [16:38] <jakoch> fr�her gabs �ber sowas ellenlange diskussionen: registry vermeiden, keine globals, globals ersatz.. da war die h�lle los
  61. 61: [16:39] <Rikku`on> hehe... aber so langsam bekomme ich ein Bild davon
  62. 62: [16:41] <jakoch> au�erdem: config ellenlang
  63. 63: [16:42] <jakoch> aber mal was anderes: Zend\Mvc\Controller\Plugin\FlashMessenger
  64. 64: [16:43] <jakoch> d.h. flashmessenger ist ein controller plugin und muss irgendwie erkannt und geladen werden
  65. 65: [16:43] <Rikku`on> config array ist nur als beispiel
  66. 66: [16:43] <jakoch> $flashmessage = $this->plugin("flashmessage"); ? holt mir mein plugin?
  67. 67: [16:43] <Rikku`on> geht auch als klasse
  68. 68: [16:43] <Rikku`on> http://i.imgur.com/Tr5GW.png
  69. 69: [16:44] <Rikku`on> den punkt habe ich mir noch nicht angesehen
  70. 70: [16:44] <jakoch> jau, hardcoded is mehr nach meinem geschmack
  71. 71: [16:46] <jakoch> wobei, wenn sie nen di haben, dann k�nnte man mit einer config arbeiten
  72. 72: [16:46] <jakoch> die sowohl sm und di benutzen
  73. 73: [16:46] <jakoch> der di k�nnte die generieren
  74. 74: [16:46] <jakoch> haben die sowas?
  75. 75: [16:47] <Rikku`on> im controller: http://i.imgur.com/Im0i3.png
  76. 76: [16:47] <Rikku`on> zum flashmessenger
  77. 77: [16:47] <jakoch> jo, hab ich auch so
  78. 78: [16:47] <jakoch> :)
  79. 79: [16:49] <Rikku`on> mußte mal hier gucken
  80. 80: [16:49] <Rikku`on> http://packages.zendframework.com/docs/latest/manual/en/zend.di.html
  81. 81: [16:49] <Rikku`on> ich glaub der erstell eine class map oder so
  82. 82: [16:49] <Rikku`on> aber ob das mit dem sm zusammen läuft hab ch echt null plan
  83. 83: [16:51] <jakoch> achso: ein unterschied zwischen di und sm ist auch noch der: das objekt das instanziert wird untersucht und die abh�ngigkeiten reingegeben. beim sm kann man die config auch in das zu instanzierende objekt legen und dann nach dem laden per statischer methode die dependency-config rausholen um es zu instanzieren :)
  84. 84: [16:52] <Rikku`on> den satz hab ich grad drei mal gelesen, ich lass mir den nochmal auf der zunge zergehen
  85. 85: [16:53] <jakoch> include file.php (beinhaltet classA)
  86. 86: [16:53] <jakoch> deps = classA::getDependencies()
  87. 87: [16:53] <jakoch> instantiate all deps
  88. 88: [16:53] <jakoch> $objectA = new classA(dep1, dep2, dep3);
  89. 89: [16:54] <jakoch> die config wird einfach in das zu instanzierende objekt verschoben
  90. 90: [16:54] <Rikku`on> ah, ok
  91. 91: [16:55] <jakoch> beim di entf�llt die reflection, beim sm die notwendigkeit au�en eine config zu f�hren
  92. 92: [16:57] <Rikku`on> gotcha
  93. 93: [20:03] * jakoch http://johnmacfarlane.net/pandoc/ http://www.niso.org/workrooms/daisy/Z39-86-2005.html
  94. 94: [22:50] <Rikku`on> Schlaaaaaaaaaaaaaaaand !!!! :D
  95. 95: [23:13] <jakoch> :)
  96. 96: [23:13] <jakoch> h��???
  97. 97: [23:13] <jakoch> was is denn das f�r ein pull request? https://github.com/ayoub395/Clansuite/commit/fb0bc58a2414a40c7bfe2459689e46f3b29e6801
  98. 98: [23:17] <Rikku`on> dont know
  99. 99: [23:18] <Rikku`on> sieht komisch aus
  100. 100: [23:23] <jakoch> aber er verweist sch�n auf easyphp^^
  101. 101: [23:23] <jakoch> da kann ich dann gleich mal 2-3 config screens rippen
  102. 102: [23:23] <jakoch> http://www.easyphp.org/images_easyphp/menu.gif
  103. 103: [23:24] <jakoch> versteh nich wie das mit F-Tasten im tray gehn soll
  104. 104: [23:24] <jakoch> macht das sinn f�r dich?
  105. 105: [23:35] <CIA-1> clansuite: New SVN Commit: Revision #[6404] by vain
  106. 106: [23:35] <CIA-1> clansuite: File(s): clansuite/website-clansuite.com/documentation/index.php
  107. 107: [23:35] <CIA-1> clansuite: Comment: removed phpdoc from docu page
  108. 108: [23:35] <CIA-1> clansuite: View (delayed): http://trac.clansuite.com/changeset/6404
  109. 109: [23:40] <Rikku`on> würd ja nur funktionieren wenn man aufm Desktop ist
  110. 110: [23:40] <Rikku`on> ich glaub da haben die keine funktion
  111. 111: [23:40] <Rikku`on> oh
  112. 112: [23:41] <Rikku`on> F5 ist aufm desktop auch reload
  113. 113: [23:41] <jakoch> hrhr
  114. 114: [23:41] <Rikku`on> macht für mich kein sinn
  115. 115: [23:41] <Rikku`on> :D
  116. 116: [23:42] <jakoch> ich werds auch nich einbauen..
  117. 117: [23:42] <jakoch> configuration von easyphp sieht aber ganz gut aus
  118. 118: [23:44] <Rikku`on> „When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.“
  119. 119: [23:44] <Rikku`on> benutzt du duck-typing?
  120. 120: [23:44] <Rikku`on> wenn man interfaces hat, macht das doch überhaupt kein sinn, oder?
  121. 121: [23:45] <jakoch> hatten wir vorhin schonmal ganz kurz: ein sp�teres objekt, mit einer festen methode selfDependencies() und nem interface selfDependencies() :)
  122. 122: [23:45] <Rikku`on> ich prüf doch lieber $obj instanceof Duck
  123. 123: [23:46] <Rikku`on> hm... da muss ich mal drüber nachdenken :D
  124. 124: [23:46] <jakoch> wenn die methode vorhanden ist, kannst du auf bestimmte eigenschaften schlie�en
  125. 125: [23:47] <Rikku`on> ok, das macht sinn
  126. 126: [23:48] <jakoch> aber bei php ist das schwierig
  127. 127: [23:48] <jakoch> reflection/introspection verbraucht zuviel power
  128. 128: [23:49] <Rikku`on> jo
  129. 129: [23:50] <jakoch> wenn magibts auch mit configurationscontainern
  130. 130: [23:50] <jakoch> boah.. was schreib ich :)
  131. 131: [23:51] <Rikku`on> ^^
  132. 132: [23:51] <jakoch> config(ini_reader, config_file) und dann get aufrufen, obwohl config nichts vom reader implementiert und nur ne facade auf das ini_reader obj is
  133. 133: [23:53] <Rikku`on> w00t, das lass ich mir morgen früh noch mal auf der zunge zergehen, ich sollte mich für solche themen nicht nachts um zwölf begeistern
  134. 134: [23:54] <Rikku`on> aufnahmefähogkeit == null
  135. 135: [23:54] <Rikku`on> *fähigkeit
  136. 136: [23:54] <jakoch> hier tippf�higkeit === 0
  137. 137: [23:54] <Rikku`on> wollts grad sagen :D
  138. 138: [23:54] <jakoch> der compiler is auch �berfordert
  139. 139: [23:55] <jakoch> http://en.wikipedia.org/wiki/C_Sharp_4.0#Dynamic_member_lookup
  140. 140: [23:56] <Rikku`on> aber trotzdem, hab mal nochmal den dreh gefunden, werde das morgen mal mit dem beispiel von heute nachmitta im kopf mergen
  141. 141: [23:57] <jakoch> irgendwie wird duck-typing auch immer auf den ersten seiten in den php-oop b�chern erkl�rt, mit v�geln.. andere haben die autofabrik mit unterschiedlichen modellen^^
  142. 142: [23:59] <Rikku`on> hm... das habe ich noch nie gesehen, immer nur mit interfaces

Links of Mittwoch, 13. Juni 2012

1) http://en.wikipedia.org/wiki/C_Sharp_4.0#Dynamic_member_lookup
2) http://trac.clansuite.com/changeset/6404
3) http://www.easyphp.org/images_easyphp/menu.gif
4) https://github.com/ayoub395/Clansuite/commit/fb0bc58a2414a40c7bfe2459689e46f3b29e6801
5) http://johnmacfarlane.net/pandoc/
6) http://www.niso.org/workrooms/daisy/Z39-86-2005.html
7) http://packages.zendframework.com/docs/latest/manual/en/zend.di.html
8) http://i.imgur.com/Im0i3.png
9) http://i.imgur.com/Tr5GW.png
10) http://packages.zendframework.com/docs/latest/manual/en/zend.service-manager.html
11) http://i.imgur.com/Pt7zG.png
12) https://github.com/jakoch/WPN-XM/issues

These logs were automatically created by k-logbot on chat.freenode.net using the Clansuite IRC LogBot. Find the project at Github.