| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

08-07-2009, 13:26
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
Zugriff auf externe Funktion
Hallo Leute =)
ich bräuchte mal dringend eure Hilfe in PHP. Ich habe eine Klassendatei gehabt in der einige Funktionen und die Main
drin stand. Jetzt wollte ich aus dieser Klasse jeweils zwei erstellen. Das heißt.. zwei Funktionen der alten
Klasse sollen aus dieser herausgenommen werden und in die neue Klasse eingefügt werden.
Trotzdem soll die Main nachwievor auf diese Funktionen zugreifen können. In meiner alten klasse habe ich
die Funktionen einfach mit: $this -> callWebservice($post['gpnummer'], $ignoreClosed).... aufgerufen..
Jetzt stehen diese Funktionen aber extern in einer neuen klasse(neue datei), wodurch ein zugriff mit diesem Befehl nicht möglich ist.(Anmerkung: die dateien liegen im selben Verzeichnis!)
Jetzt habe ich mit require_once die neue Klasse eingebunden, was auch zu funktionieren scheint... Das Problem ist
halt jetzt nur, wie ich in der Main den Zugriff auf die neue Klasse herstelle (Funktionsaufruf).
Wäre echt toll von euch, wenn mir einer dabei helfen könnte!!
Vielen Dank schoneinmal im vorraus!
LG
|

08-07-2009, 13:30
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Mach dich doch mal über Klassenvererbung schlau.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

08-07-2009, 14:06
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
.
mmmhh das habe ich schon die ganze Zeit gemacht, aber ich verstehe es
trotzdem irgendwie nicht so 100%ig :/... Jetzt dachte ich, dass ihr mir vielleicht sagen könnt wie ich auf externe Funktionen zugreifen kann.. Die Klasse habe ich ja schon mit require eingebunden... Aber was muss ich jetzt machen?
LG
|

08-07-2009, 14:10
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Entweder erweitert die eine Klasse die andere, oder du musst eine Klasse in der anderen Instanzieren um darauf zugreifen zu können. Dazu müsste man erst mal wissen was du dir da gebastelt hast.
Code?
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

08-07-2009, 14:24
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
.
mit dem code kann ich dir gerade leider nicht dienen, da ich von unterwegs aus frage... aber ich kann dir sagen wie. Die zweite Klasse ist nur ein Teil der ersten Hauptklasse (in der auch die Main ist). Das heißt, aus der zweiten Klasse werden nur die Funktionen in der Main benutzt. Somit muss halt irgendwie die Main wissen, wo die Funktion liegt.. Dazu habe ich ersteinmal mit require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php'); die zweite Klasse (class.cw_adn.php) eingebunden... aber wenn ich jetzt in der Main sage
$this -> callWebservice($username,$ignoreClosed); funktioniert das natürlich nicht so einfach!..
Aber wie greife ich jetzt darauf zu?
LG
|

08-07-2009, 14:27
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Typo3 ist ein gaaanz anderes Blatt 
Da musst du schon etwas genauer werden.
Normaler weise kannst du mit
PHP-Code:
class foo extends bar { // usw }
Innerhalb der Klasse Foo auf die Methoden von Bar zugreifen. (Kurz gesagt)
Du kannst ebenfalls eine Klasse in einer anderen Instanzieren.
PHP-Code:
class foo { private $class function __construct() { $this->class = new AndereKlasse; }
public function blah() { $this->class->methodeDerAnderenKlasse(); } }
Ich verstehe aber den ersten Satz nicht. Dringend Hilfe und dann bist du nicht in der Lage Code zu liefern ?
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Geändert von hhcm (08-07-2009 um 14:31 Uhr)
|

08-07-2009, 14:32
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
.
mmhh jaa tut mir Leid 
alsoo:
Es gibt zwei Klassen(zwei extra Dateien im selben Verzeichnis):
1.Klasse mit der Main (Hauptklasse)
2.Klasse mit den Funktionen
Die Main der 1. Klasse greift auf die Funktionen der 2. zu und führt sie aus.
In der ersten Klasse steht auch: require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php');
zum einbinden der 2.Klasse.
class.cw_adn.php ist die 2.Klasse mit den Funktionen die ausgeführt werden sollen.
Hoffe es ist jetzt etwas verständlicher
LG
|

08-07-2009, 14:36
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Öh.. Ich denke mein Edit und dein Post haben sich überschnitten.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

08-07-2009, 14:42
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
.
aso 
gut danke!
Ich werde es mal so versuchen!
LG
|

08-07-2009, 15:02
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
.
habe jetzt unten noch mein Quelltextausszug, der hoffentlich das Problem erklärt..
LG
Geändert von RaisedFist (08-07-2009 um 15:48 Uhr)
|

08-07-2009, 15:47
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
Quelltext
soo hier ist mein Quelltextbeispiel:
PHP-Code:
require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php'); class tx_ilcbuglist_pi1 extends tslib_pibase {
var $prefixId = 'tx_ilcbuglist_pi1'; // Same as class name var $scriptRelPath = 'pi1/class.tx_ilcbuglist_pi1.php'; // Path to this script relative to the extension dir. var $extKey = 'ilc_buglist'; // The extension key. var $pi_checkCHash = true;
var $content = null;
function main($content, $conf) { $TYPO3_CONF_VARS['EXT']['noEdit'] = 0; $this->conf = $conf; $this->pi_setPiVarDefaults(); $this->pi_loadLL(); $post = t3lib_div::_POST(); $get = t3lib_div::_GET();
//check if user is logged in if ($username != '') { //back button pushed if (isset($post['backButton'])) { $content = $this -> displayElements('back', 10); }//next button pushed elseif (isset($post['nextButton'])) { $this -> callWebservice($username,$ignoreClosed); //Hier soll die Funktion aufgerufen werden( diese steht in der zweiten Klasse!) } } }
Der Code ist hier nicht vollständig aufgelistet... aber man müsste eigentlich sehen, wo mein Problem ist
LG
RaisedFist
|

08-07-2009, 15:51
|
|
RaisedFist
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 10
|
|
Zitat:
Zitat von RaisedFist
soo hier ist mein Quelltextbeispiel:
PHP-Code:
require_once(t3lib_extMgm::extPath('ilc_buglist').'pi1/class.cw_adn.php'); class tx_ilcbuglist_pi1 extends tslib_pibase {
var $prefixId = 'tx_ilcbuglist_pi1'; // Same as class name var $scriptRelPath = 'pi1/class.tx_ilcbuglist_pi1.php'; // Path to this script relative to the extension dir. var $extKey = 'ilc_buglist'; // The extension key. var $pi_checkCHash = true;
var $content = null;
function main($content, $conf) { $TYPO3_CONF_VARS['EXT']['noEdit'] = 0; $this->conf = $conf; $this->pi_setPiVarDefaults(); $this->pi_loadLL(); $post = t3lib_div::_POST(); $get = t3lib_div::_GET();
//check if user is logged in if ($username != '') { //back button pushed if (isset($post['backButton'])) { $content = $this -> displayElements('back', 10); }//next button pushed elseif (isset($post['nextButton'])) { $this -> callWebservice($username,$ignoreClosed); //Hier soll die Funktion aufgerufen werden( diese steht in der zweiten Klasse!) } } }
Der Code ist hier nicht vollständig aufgelistet... aber man müsste eigentlich sehen, wo mein Problem ist
LG
RaisedFist
|
An der Stelle $this -> callWebservice($username,$ignoreClosed); muss jetzt ein anderer Befehl, der auf die Funktion zugreift, da this ja hier nicht geht!
Das war halt meine Frage.
LG
Raised Fist
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|