OXID als Framwork einbinden (version 4)

servus,

jetzt habe ich lange gesucht aber leider nicht das richtige gefunden, daher versuche ich hier mal mein glück, vielleicht kann jemand helfen ?

es ist ja möglich, das oxid framework in sein eigenes script einzubinden, damit ich interne funktionen von oxid benutzen kann. ich habe allerdings nur beispiele/ansätze für ältere versionen gefunden. vielleicht weiss jemand, wie ich dies für die aktuelle version 4 aufbauen muss ?!?

was ich bisher gefunden habe:

http://www.oxid-esales.com/forum/showthread.php?t=3896#post22982
http://tomas.liubinas.com/oxid-framework-init/en/

nur hier geht es um ältere versionen…
ich habe auch versucht an hand der index.php mir die richtigen zeilen
rauszusuchen, aber leider komme ich hier nicht weiter.

danke+grüsse,
micha

Der Code aus Link nr 2 ist OK für aktuelle Versionen. Woran hapert es?

[QUOTE=leofonic;46548]Der Code aus Link nr 2 ist OK für aktuelle Versionen. Woran hapert es?[/QUOTE]

naja, wenn dem so wäre, hätte ich gar kein posting gemacht ,) vielleicht wäre zu erwähnen, dass ich hier mit der EE arbeite, vielleicht muss ich es nochmal mit der CE testen. mit der EE bekomme ich auf jeden fall mit folgendem code:


//change this
$sOxidConfigDir = "/home/oxid/source";
 
function getShopBasePath()
{
    global $sOxidConfigDir;
    return $sOxidConfigDir . "/";
}

echo "bla1";

require_once(getShopBasePath(). "/core/oxfunctions.php");

echo "bla2";

require_once(getShopBasePath() ."/core/adodblite/adodb.inc.php");

echo "bla3";
 
//now you can fully use the framework e.g.:
$oArticle = oxNew("oxarticle");

var_dump($oArticle);

folgenden output:

bla1
Warning: Cannot modify header information - headers already sent by

lasse ich mein “bla1” mal weg, bekomme ich GAR KEINEN OUTPUT, nichts.

und deswegen weiss ich nicht, wo das problem liegen könnte.
ich kann php auch nicht “interactively” (-a) starten, weil sonst das autoload nicht mehr geht ;(

denke ich muss es nochmal mit der CE testen…

lg

Bei mir (CE 4.4.4) gibt dein Code alles aus inkl. Artikelobjekt.

ok, dann ist es entweder ein CE/EE abhängiges problem oder es hat was mit meiner kiste zu tun, ich werde das mal gleich testen… danke auf jeden fall für das feedback, ich werde meine erfahrung nochmal posten :wink:

Das liegt an dem “echo”. Da vom OXID Header setzt werden. Und die stehe im Konflikt mit “echo” (http://php.net/manual/de/function.header.php).
Sammel alle “echo”'s in einer Variable und gib sie am Ende deines Scripts aus. Somit vermeidest du erstmal die HEADER-Fehler!

Und das da nix kommt, ist klar! Da das OXID-Framework ansprechbar ist, aber nirgendwo aufgerufen wird ala “viewer”.


Auszug aus index.php

//Starting the shop
$oShopControl = oxNew('oxShopControl');

startProfile('start');
$oShopControl->start();
stopProfile('start');

Gruß

[QUOTE=LarsH;46572]Das liegt an dem “echo”. Da vom OXID Header setzt werden. Und die stehe im Konflikt mit “echo” (http://php.net/manual/de/function.header.php).
Sammel alle “echo”'s in einer Variable und gib sie am Ende deines Scripts aus. Somit vermeidest du erstmal die HEADER-Fehler!
[/QUOTE]
Wenn ein Headerfehler wegen der Ausgabe der Echos entsteht, sollte aber mindestens das Echo noch ausgegeben werden.

[QUOTE=LarsH;46572]
Und das da nix kommt, ist klar! Da das OXID-Framework ansprechbar ist, aber nirgendwo aufgerufen wird ala “viewer”.
[/QUOTE]
Dafür ist ja das var_dump im Script.

also ich glaube wir wissen alle, wieso ein header fehler kommt, das ist auch kein fehler sondern nur ein warning und ich denke wir müssen niemanden hier erklären, wieso das passiert… wer länger als eine woche php programmiert weiss das auch… kopfschüttel… darum gings auch gar nicht, ich wollte nur zeigen, was überhaupt ausgespuckt wird…

ende vom lied: ich habe das jetzt mit der CE probiert und siehe da, es geht… schade, ich dachte dass es mit der EE genauso einfach ist… wieder was gelernt :wink:

dennoch darf sich jemand, der sich hier angesprochen fühlt, gerne dazu äussern, wie das mit der EE funktioniert, wenn er es weiss :wink:

@leofonic: danke :wink:

Wollte nur höflich sein :slight_smile: