Autor |
Nachricht |
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Sa 18.06.2011 23:41
Titel [php] include() innerhalb klassen |
|
|
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?
thx!
Zuletzt bearbeitet von fuchsbau am Sa 18.06.2011 23:44, insgesamt 1-mal bearbeitet
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
|
|
|
|
Anzeige
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Sa 18.06.2011 23:51
Titel
|
|
|
weil ich großteils html includen will, keine klassen
Zuletzt bearbeitet von fuchsbau am Sa 18.06.2011 23:53, insgesamt 3-mal bearbeitet
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Sa 18.06.2011 23:58
Titel
|
|
|
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
Zuletzt bearbeitet von Pixelpole am So 19.06.2011 00:01, insgesamt 1-mal bearbeitet
|
|
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst So 19.06.2011 00:02
Titel
|
|
|
stimmt. kommt mir nur irgendwie unsauber vor... aber cool, das löst erstmal mein problem danke auch weil so spät noch so schnell
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst So 19.06.2011 00:04
Titel
|
|
|
PHP ist ne dreckige Sprache, da darf man auch mal schmutzig sein
|
|
|
|
|
pantonine
Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
|
Verfasst So 19.06.2011 00:20
Titel
|
|
|
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
|
|
|
|
|
|
|
|
Ä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
|
|