Hallo zusammen,
wie kann ich das verstehen?
url – [Auth classes] Use same method from session object.
LG - derJu
Frage zur Url Upgrade
Frage zur Url Upgrade
Contenido 4.8.20 | Contenido 4.9.12
Re: Frage zur Url Upgrade
Ja, ist für wahr etwas spartanisch gehalten die Info im "Code Analyzer".
Also Auth/Contenido_Auth::url wurde in 4.9 überarbeitet, so das keine Methode "url" mehr im AUTH-Objekt vorhanden ist.
Da die ehemalige "URL-Methode" keinen Parameter benötigte, aber die cSession->url() einen Parameter benötigt, ist das etwas verwirrend.
An folgendem Beispiel kannst du sehen, wie du es ersetzen kannst. Natürlich musst du immer sehen, in welchem Context die Methode genutzt wird, denn der CodeAnalyzer schlägt auch irrtümlich bei sehr vielen anderen "url()"-Methoden im Sourcecode an, die nicht ersetzt werden müssten.
Zu achten ist darauf, dass das session-Objekt in dem Kontext existiert. Eigentlich sollte es von Contenido als $sess geladen werden.
Arbeitet man in einer Funktion, müsste dies ggf. mit _code]global $sess;[/code] Zugriff auf den Global-Scope gewährt werden, das Objekt als Parameter an in die Funktion übergeben, oder via neu instantiiert werden.
Der an "url" zu übergebende Parameter ist eine URL. Zuvor wurde im "alten" auth-Objekt die "PHP_SELF" schon in das Objekt gespeichert, weshalb es nicht nötig war, diese anzugeben, wenn es die aktuelle URL ist. Nun ist es aber notwendig, und man kann dazu auf die in 4.9.x verfügbare $selfURL zugreifen (war zuvor cSession::self_url)
Also Auth/Contenido_Auth::url wurde in 4.9 überarbeitet, so das keine Methode "url" mehr im AUTH-Objekt vorhanden ist.
Da die ehemalige "URL-Methode" keinen Parameter benötigte, aber die cSession->url() einen Parameter benötigt, ist das etwas verwirrend.
An folgendem Beispiel kannst du sehen, wie du es ersetzen kannst. Natürlich musst du immer sehen, in welchem Context die Methode genutzt wird, denn der CodeAnalyzer schlägt auch irrtümlich bei sehr vielen anderen "url()"-Methoden im Sourcecode an, die nicht ersetzt werden müssten.
Code: Alles auswählen
$PHP_SELF = $auth->url()."&";
Code: Alles auswählen
$PHP_SELF = $sess->url($selfURL);
Arbeitet man in einer Funktion, müsste dies ggf. mit _code]global $sess;[/code] Zugriff auf den Global-Scope gewährt werden, das Objekt als Parameter an in die Funktion übergeben, oder via
Code: Alles auswählen
$sess = new cSession();
Der an "url" zu übergebende Parameter ist eine URL. Zuvor wurde im "alten" auth-Objekt die "PHP_SELF" schon in das Objekt gespeichert, weshalb es nicht nötig war, diese anzugeben, wenn es die aktuelle URL ist. Nun ist es aber notwendig, und man kann dazu auf die in 4.9.x verfügbare $selfURL zugreifen (war zuvor cSession::self_url)
Could I help you... you can help me... buy me a coffee ☕. (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Frage zur Url Upgrade
Servus,
Auch die Session-ID kann man entsprechend abfragen, wobei ich persönlich auf dafür eine entsprechende Methode, anstelle eines direkten Zugriffs auf eine Klassenvariable, bevorzugt hätte.
Auch für viele andere Objekte oder globale Variable hält die cRegistry entsprechende Zugriffs-Methoden vor. Einfach mal in die Doku schauen.
Gruß aus Franken
Ortwin
Bitte keine global-Definitionen oder ähnliches. CONTENIDO 4.9 hat eine Registry-Klasse, die genau für solche Fälle vorhanden ist. Mit Hilfe dieser Klasse kann man dann auch ganz einfach das aktuelle Session-Objekt bekommen.rethus hat geschrieben: ↑Mo 27. Nov 2017, 15:05Arbeitet man in einer Funktion, müsste dies ggf. mit _code]global $sess;[/code] Zugriff auf den Global-Scope gewährt werden, das Objekt als Parameter an in die Funktion übergeben, oder vianeu instantiiert werden.Code: Alles auswählen
$sess = new cSession();
Code: Alles auswählen
$sess = cRegistry::getSession();
Code: Alles auswählen
$sessId = cRegistry::getSession()->id;
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog