mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 09:50 Benutzername: Passwort: Auto-Login

Thema: [php] include() innerhalb klassen vom 18.06.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] include() innerhalb klassen
Autor Nachricht
fuchsbau
Threadersteller

Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht: Männlich
Verfasst Sa 18.06.2011 23:41
Titel

[php] include() innerhalb klassen

Antworten mit Zitat Zum Seitenanfang

ich versuche mit einer klasse das including einer anwendung zu regeln, würde aber gern die klasse nicht nur den including-pfad zurückgeben lassen, sondern auch das including an sich durchführen lassen...

wenn ich innerhalb der methoden include() bringe, includen diese den code ja aber innerhalb der methoden, was ich natürlich so nicht will.

gibt es eine php-funktion ähnlich return, die keinen wert, sondern eben einen funktionsaufruf zurückliefert?
oder eine andere möglichkeit?

versteht mich jemand? Lächel
thx!


Zuletzt bearbeitet von fuchsbau am Sa 18.06.2011 23:44, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Sa 18.06.2011 23:49
Titel

Antworten mit Zitat Zum Seitenanfang

Wieso nutzt du nicht die Autoloading Mechanismen die PHP von Haus aus mitbringt?

http://php.net/manual/de/language.oop5.autoload.php
http://php.net/manual/de/function.spl-autoload-register.php
  View user's profile Private Nachricht senden
Anzeige
Anzeige
fuchsbau
Threadersteller

Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht: Männlich
Verfasst Sa 18.06.2011 23:51
Titel

Antworten mit Zitat Zum Seitenanfang

weil ich großteils html includen will, keine klassen Au weia!

Zuletzt bearbeitet von fuchsbau am Sa 18.06.2011 23:53, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Sa 18.06.2011 23:58
Titel

Antworten mit Zitat Zum Seitenanfang

Ahh, ich glaube ich verstehe was du meinst. Normalerweise sollte da doch bereits sowas helfen:

Code:

function includingFunction()
{
    //irgendwelcher irgendas Code

    includeMyFile("irgendeine Datei");
}

function includeMyFile($file)
{
    return include($file);
}


Dann wären die Variablen deiner Mehtode nicht mehr im Scope der inkludierten Datei.

Aber ganz ehrlich. Bau dir dann doch ein Mini Template System in PHP. Hier mal ein rudimentärer Fliegenschiss den ich manchmal nutze:

Code:

<?php

class PHPTemplate implements Response {
   protected $_data;
   protected $_parent = null;
   protected $_layout;
   protected $_template;
   
   public $_render_layout = false;
   public $_display = true;
   
   public function __construct($data = array())
   {
      $this->_data = $data;
   }
   
   public function setLayout($layout)
   {
      $this->_layout = $layout;
      $this->_render_layout = true;
   }

        public function disableLayout()
        {
            $this->_render_layout = false;
            $this->_layout = null;
        }

   public function setParent(PHPTemplate $ref)
   {
      $this->_parent = $ref;
   }
   
   public function display($template)
   {
      $this->_template = $template;
      if ($this->_render_layout == true) {
         require ($this->_layout);
      }
      else {
         $this->content();
      }
   }
   
   protected function content()
   {
      require $this->_template;
   }
   
   public function __get($key)
   {
      if (isset($this->_data[$key])) {
         return $this->_data[$key];
      }
      else if (!is_null($this->_parent)) {
         return $this->_parent->__get($key);
      }
      else {
         throw new Exception("$key doesn't exist");
      }
   }
   
   public function __isset($key)
   {
      if (isset($this->_data[$key])) {
         return true;
      }
      else if (!is_null($this->_parent)) {
         return $this->_parent->__isset($key);   
      }
      else {
         return false;
      }
   }
   
   public function __unset($key)
   {
      if (isset($this->_data[$key])) {
         unset($this->_data[$key]);
      }
      else if (!is_null($this->_parent)) {
         $this->_parent->__unset($key);
      }
      else {
         throw new Exception("$key doesn't exist");
      }
   }
   
   public function __set($key, $value)
   {
      $this->_data[$key] = $value;   
   }
   
   public function partial($file, $data = array())
   {
      $template = new PHPTemplate($data);
      $template->setParent($this);
      $template->display($file);
   }
}


Sorgt auch für passenden Scope das Teil.

Falls ich dich richtig verstanden hab Ooops


Zuletzt bearbeitet von Pixelpole am So 19.06.2011 00:01, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
fuchsbau
Threadersteller

Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht: Männlich
Verfasst So 19.06.2011 00:02
Titel

Antworten mit Zitat Zum Seitenanfang

stimmt. kommt mir nur irgendwie unsauber vor... aber cool, das löst erstmal mein problem Lächel danke auch weil so spät noch so schnell Lächel
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst So 19.06.2011 00:04
Titel

Antworten mit Zitat Zum Seitenanfang

PHP ist ne dreckige Sprache, da darf man auch mal schmutzig sein Grins
  View user's profile Private Nachricht senden
pantonine

Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
Verfasst So 19.06.2011 00:20
Titel

Antworten mit Zitat Zum Seitenanfang

Es gibt _keine_ Möglichkeit, die Übernahme des Scopes wie in include in einer Funktion oder Methode nachzubilden. Es gibt nur die Möglichkeit, im gegebenen Scope Variablen zu deklarieren:

Parameter
global/GLOBALS
extract
Objektproperties

Zitat:
PHP ist ne dreckige Sprache
Jede Gurke ist nur so sauber wie das Wasser, mit dem sie gegossen wird. Wer dreckig programmiert, bekommt auch dreckige Ergebnisse.

Zuletzt bearbeitet von pantonine am So 19.06.2011 00:21, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen CSS: links in klassen definieren -pseudoklassen in klassen?
PHP: include in einer include-datei aufrufen? [GELÖST]
AS 3 und Klassen
Klassen in PHP
PHP: CSS Klassen zuweisen
klassen verbinden
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.