OOP und Traits

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • OOP und Traits

    Hallo zusammen

    ich bin eben von jemandem auf Traits aufmerksam gemacht worden. Hat da jemand schon Erfahrungen mit gesammelt und wenn ja, wie sind die?

    Sieht auf den ersten Blick ganz interesant aus, aber ich frag mal lieber, bevor ich mich damit auseinandersetze.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

  • #2
    Sind interessant!
    Und lustige Dinge kann man damit basteln....

    Ich kann mal was zeigen, was ich woanders schon mal gepostet habe:

    ---Schnipp---
    Was mir schon lange in PHP fehlt, ist so eine Art "Property" Schlüsselwort. Also eine Objekteigenschaft, welche protected ist, und automatisch public Getter und Setter bekommt.

    Jetzt geht sowas
    Aber das sieht dann fürchterlich aus!

    Die Datei propertytest.php:
    PHP-Code:
    class test
    {
      use \\
    Property\\Width;

    Das \Property\Width wird dynamisch erzeugt.
    Einschub:
    > use PropertyWidth;
    > Braucht natürlich Backslashes. die macht das Forum in den PHP Code Bereichen allerdings kaputt
    > use \Property\Width;


    Und zwar so:
    PHP-Code:
    <?php
    error_reporting
    (-1);
    ini_set('display_errors'TRUE);




    class 
    PropertyBuilder
    {
      public function 
    __construct()
      {
       
    spl_autoload_register(array($this,"build"));
      }

      public function 
    build($class)
      {
          
    $class    trim($class,"\\");
          
    $property explode("\\",$class);
          if(
    $property[0] === 'Property')
          {
            if(isset(
    $property[1]))
            {
              
    $var    lcfirst($property[1]);
              
    $Var    ucfirst($property[1]);
              
    $trait  'namespace Property ;
                            trait %2$s
                            {
                              protected $%1$s = null;
                              
                              public function set%2$s($value)
                              {
                                $this->%1$s = $value;
                              }
                            
                              public function get%2$s()
                              {
                                return  $this->%1$s;
                              }
                            }'
    ;
              
              
    $trait  sprintf($trait,$var,$Var);
              eval(
    $trait);
            }
          }
      }        
    }

    new 
    PropertyBuilder;
      
    include 
    './propertytest.php';  
      
    $t = new test;
    $t->setWidth(400);  
    echo 
    $t->getWidth();
    Damit ist dem Wahnsinn Tür und Tor geöffnet.
    ---Schnapp-----

    Dafür habe ich damals Mäcker bekommen, und gleich bestimmt wieder
    Zuletzt geändert von combie; 24.06.2013, 19:51.
    Wir werden alle sterben

    Kommentar


    • #3
      Du sollstest Dein Abendbrot mal auf harte Drogen hin untersuchen lassen. Da war definitiv irgendwas drin






      scnr

      Kommentar

      Lädt...
      X