Sven Rautenberg: was bringt Hack mit Collections und Closures?

Beitrag lesen

Moin!

Weißt Du denn, warum Facebook da seinen ganzen Code auf Hack umstellt?

Nein, und ich würde bestreiten wollen, dass die das großflächig "einfach so" tun. Wenn, dann im Rahmen einer Migrationsstrategie, die an gewissen Hotspots mittels Hack noch Performance rauskitzeln kann.

"Collections provide a clean, type-safe alternative to PHP arrays. We designed them specifically to work well with static typing and generics. The Collections API offers many classic higher-order functions such as map() and filter() to facilitate functional programming styles.

Eine der typischen Anwendungen für PHP-Arrays ist, mehr als ein Object desselben Typs zu enthalten. Es liegt auf der Hand, hier Typsicherheit zugunsten von Performance zu implementieren.

Lambda expressions give a concise syntax for creating closures. While PHP has closures, it requires the programmer to explicitly name the variables they need to use from enclosing scopes. With Hack's lambda expressions, we automatically infer these uses, saving you needless work. Lambda expressions make it more convenient to take full advantage of the Collections API."

Convenience.

Da werden ja die "Collections" als Erweitrung von Arrays hervorgehoben, um mit Funktionen wie map() und filter() funktionalen Programmierstil zu erleichtern. Das muss doch irgend eine größere Rolle dann intern bei denen spielen, oder?

Vermutlich gibts viel zu mappen und zu filtern bei Facebook.

Was so relevant an Closures in PHP ist, weiß ich auch immer noch nicht. Ich dachte immer, private Klassen-Variablen würden den selben Zweck erfüllen und dieses Variablen-Einschließen wäre insbesondere wichtig wenn Codes auf verschiedenen Quellen zusammengeführt werden, was ja bei Javascript regelmäßig der Fall ist, nicht aber bei PHP.

Closures erlauben Funktionsdefinitionen, die noch nicht ausgeführt werden, aber im Kontext der Definition ablaufen. Sowas kriegt man mit privaten Klassenvariablen nicht hin.

- Sven Rautenberg

0 51

"5 Strengths of PHP"

tami
  • zur info
  1. 0
    hotti
    1. 0
      M.
      1. 0
        hotti
        1. 0
          tami
        2. 0
          M.
        3. 0
          Sven Rautenberg
          1. 0
            hotti
            1. 0
              M.
              1. 0
                hotti
                1. 0
                  M.
                  1. 0
                    Whouzuo
                  2. 0
                    hotti
                    1. 0
                      M.
            2. 0
              Der Martin
              1. 0
                M.
            3. 0

              Unser Wiki als Online-Fassung

              1UnitedPower
              • selfhtml-wiki
              1. 0

                Unser Wiki als Offline-Fassung

                Matthias Apsel
  2. 2
    1UnitedPower
    1. 3
      Klawischnigg
    2. 0
      tami
      1. 1
        molily
        1. 0
          tami
          1. 0
            1UnitedPower
            1. 0

              mathematische Menge vs. Datenstruktur Menge

              Matthias Apsel
              1. 0

                physikalische Menge vs. mathematische Menge

                1UnitedPower
                1. 0
                  Matthias Apsel
            2. 0
              tami
              1. 0
                Whouzuo
                1. 0
                  tami
                  1. 0
                    Whouzuo
              2. 0
                1UnitedPower
            3. 0
              molily
            4. 0
              Sven Rautenberg
              1. 0
                Whouzuo
                1. 1
                  Sven Rautenberg
                  1. 0
                    Whouzuo
              2. 0
                1UnitedPower
                1. 0
                  Der Martin
                  1. 0
                    1UnitedPower
                    1. 0
                      Der Martin
                2. 0

                  Ein Wort für funktionale Programmierung

                  1UnitedPower
                  1. 0

                    Ein Wort für funktionale Programmierung - Ramda und Currying

                    tami
                    1. 0

                      Ein Wort für funktionale Programmierung - Ramda is curried

                      tami
      2. 0
        Sven Rautenberg
        1. 0

          was bringt Hack mit Collections und Closures?

          tami
          1. 0
            tami Linksetzer
            1. 0

              Hack-like Collections in anderen Frameworks?

              tami
          2. 0
            Sven Rautenberg
            1. 0

              Beispiel für Closures in PHP (was mit privaten Vars nicht geht)

              tami
    3. 0
      Texter mit x