SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.10.2012, 15:38:04
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 50
Beiträge: 11
klassen in klassen einbinden

Hallo,

ich habe eine einfach grunsätzliche Frage. Besteht in PHP die Möglichkeit Klassen in Klassen ohne Vererbung einzubinden?

Also anstatt z.B.:

PHP-Code:
class {
...
code
}
class 
extends class a{


also folgendes wobei mir die mögliche Syntax natürlich völlig unklar ist:
PHP-Code:
class b{
public 
a=class a;

Ist sowas in PHP irgendwie möglich? habe schon in einigen Bücher gestöbert aber nichts gefunden jedoch meint meine Dozentin das geht und ich soll das so machen. :S ...ich vermute aber die spinnt :(

oder geht es in etwa so:
PHP-Code:
class b{
public 
ist_ein_objekt_aus_einer_anderen_klasse


Geändert von SanPedro (18.10.2012 um 15:44:57 Uhr) Grund: noch was angefügt
Mit Zitat antworten
  #2  
Alt 18.10.2012, 16:04:55
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: klassen in klassen einbinden

Du kannst das im Constructor erledigen.
Oder per Setter.
Mit Zitat antworten
  #3  
Alt 18.10.2012, 16:44:59
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 50
Beiträge: 11
AW: klassen in klassen einbinden

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Du kannst das im Constructor erledigen.
Oder per Setter.
in etwa so?:
PHP-Code:
require adressen.inc.php //ausgedacht für die Klasse Adresse.
class Person {
private 
$vorname;
private 
$nachname;
public 
$Dies_ist_ein_objekt_aus_Class_Adresse;

public Function 
setDies_ist_ein_objekt_aus_Class_Adresse($strasse,$hausnummer){
$adresse=new Adresse($strasse,$hausnummer// also ein Objekt innerhalb der Klasse Person, der Klasse Adresse erstellen?
 
}

Also kann ich ein Objekt aus einer anderen Klassen in meiner Klasse erstellen? Und wäre das vom herangehen richtig, macht man das so?
Mit Zitat antworten
  #4  
Alt 18.10.2012, 17:19:24
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: klassen in klassen einbinden

Was du da abbilden möchtest, ist eine "Abhängigkeit" zweier Objekte.
Das Problem ist ein Dauerbrenner.

Von daher bist du nicht der Erste damit.
Versuchs mal mit Google:"Dependency Injection Design Pattern"
Mit Zitat antworten
  #5  
Alt 18.10.2012, 23:27:25
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: klassen in klassen einbinden

Zitat:
Zitat von SanPedro Beitrag anzeigen
macht man das so?
Nein, weil die Variable $adresse zum lokalen Variablenscope der Methode zählen wurde und weg wäre, wenn die Methode beendet wird.

PHP-Code:
class {
  private 
$foo;

  public function 
__construct(){
    
$this->foo 'bar';
  }
  public function 
__get($name){
    return 
$this->foo;
  }
}

class 
{

  protected static 
$fremde_klasse null;

  public function 
__construct(){
    
self::$fremde_klasse = new A;
  }

  function 
geht_fremd(){
    echo 
self::$fremde_klasse->foo;
  }

So oder so ähnlich...
Mit Zitat antworten
  #6  
Alt 18.10.2012, 23:48:00
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: klassen in klassen einbinden

@meikel
Ich halte static für böse.
Zumindest für so böse, dass man seinen Einsatz minimieren sollte.
Auch sind viele verteilte new bedenklich. Sie schaffen feste Abhängigkeiten, wo sie nicht sein müssen.

Hier mal dein Beispiel auf "Construktor Injection" umgemodelt.

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

{
  private 
$foo "";

  public function 
__construct()
  {
    
$this->foo 'bar';
  }
  
  public function 
__get($name)
  {
    return 
$this->foo;
  }
}

class 

{

  private 
$fremde_klasse null;

  public function 
__construct(A $fremde_klasse)
  {
    
$this->fremde_klasse $fremde_klasse;
  }

  function 
geht_fremd()
  {
    echo 
$this->fremde_klasse->foo;
  }


$obj = new B(new A);
$obj->geht_fremd();
Mit Zitat antworten
  #7  
Alt 19.10.2012, 00:49:41
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 50
Beiträge: 11
AW: klassen in klassen einbinden

Danke, ihr habt mir sehr geholfen :)
Mit Zitat antworten
  #8  
Alt 19.10.2012, 10:31:29
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: klassen in klassen einbinden

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
@meikel
Ich halte static für böse.
Zumindest für so böse, dass man seinen Einsatz minimieren sollte.
Das Static Attribut ist in dem speziellen Falle nicht zwingend.

Zitat:
Auch sind viele verteilte new bedenklich. Sie schaffen feste Abhängigkeiten, wo sie nicht sein müssen.
Ich arbeite grundsätzlich nach folgendem Schema:
die "instance" Klasse Marke Eigenbau - liefert die Instanz auf die gewünschte Klasse. Bei Bedarf includiert die Klasse das erforderliche Script (SPL autoload), führt das new aus, speichert die Instanz (für andere Wünsche) in einem Array und liefert die Instanz als return Wert. Für geregelte Verhältnisse sorgen auto_prepend_file und auto_append_file.
PHP-Code:
$new = new instance;
...
$abc $new->klasse_a;
...
$def $new->klasse_b;
...
$xyz $new->klasse_a
Zitat:
Hier mal dein Beispiel auf "Construktor Injection" umgemodelt.
Korrekt. Und Du hast sogar das Anwendungsbeispiel getippert, was ich Depp vajessen hatte. Wir zwei sollten ne Firma gründen:
"Handbuchvorlesedienst GbR DLH & MK"
<ggg>
Mit Zitat antworten
  #9  
Alt 19.10.2012, 12:53:01
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: klassen in klassen einbinden

Danke für die Blumen!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
In einer Klasse auf andere Klassen zugreifen ghost120 PHP Entwicklung und Softwaredesign 7 06.03.2010 23:06:27
Klassen einbinden... Zip PHP für Fortgeschrittene und Experten 2 22.10.2006 21:25:40
verebung in klassen waoo PHP für Fortgeschrittene und Experten 3 02.03.2005 16:09:07
Problem beim Einbinden von C++ Klassen in PHP4 Finger PHP für Fortgeschrittene und Experten 0 11.02.2005 12:00:25
Was sind eigendlich Klassen? mad-boy PHP für Fortgeschrittene und Experten 4 16.12.2002 19:07:16


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:05:35 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt