Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktionen auslagern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mafra
    hat ein Thema erstellt Funktionen auslagern.

    Funktionen auslagern

    ich habe mir folgendes gedacht,das ich einige Funktionen in eine extra Datei auslagern kann. Jedoch scheine ich da nen Denkfehler zu haben. auf jedenfall bekomm ich nen Pharse Error.

    also ich hole die Datei function.inc.php wie folgt in die index.php

    PHP-Code:
    include './include/function.inc.php'
    Inhalt der Datei:

    PHP-Code:
    <?php 
    // Include Funktionen
    function header()
    {
    include 
    './templates/'.$template.'/header.php';
    {

    function 
    sidebar()
    {
    include 
    './templates/'.$template.'/sidebar.php';
    {
     
    function 
    content()
    {
    include 
    './templates/'.$template.'/content.php';
    {
     
    function 
    footer()
    {
    include 
    './templates/'.$template.'/footer.php';
    {
    ?>
    Fehler:
    Parse error: syntax error, unexpected $end in /opt/lampp/htdocs/dev-web/portal/include/function.inc.php on line 22

    Line 22 entspricht ?>

    Bestimmt wieder nen Anfängerfehler.

    Dank euch schon mal!

    Mafra

  • mafra
    antwortet
    RE

    Zitat von agrajag Beitrag anzeigen
    Als Parameter:
    Code:
    function foo($bar){
    echo $bar;
    }
    foo('Hello World');
    globale Variable: PHP: Geltungsbereich von Variablen - Manual
    Danke dir erst mal ich habe das mit

    PHP-Code:
    global $template
    gelöstö. Obwohl ich beide Varianten recht unflexibel finde. Aber ich kann mir vorstellen das dass Sicherheitsrelevate Gründe hat das meine "System"Variablen in Funktionen nicht funktionieren (welch ein Wortspiel)

    Danke dir auf jeden Fall erst mal! Läuft super!

    MfG
    Mafra

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Als Parameter:
    Code:
    function foo($bar){
    echo $bar;
    }
    foo('Hello World');
    globale Variable: PHP: Geltungsbereich von Variablen - Manual

    Einen Kommentar schreiben:


  • mafra
    antwortet
    Zitat von agrajag Beitrag anzeigen
    Was willst du mir jetzt damit sagen?.
    So wie es da steht. Du hast mich überrascht das du es auf Anhieb gesehen hast was ich mir als Vorbild nehme. Zeugt von Kompetenz. Ein Lob sozusagen.

    Zitat von agrajag Beitrag anzeigen
    Schalte mal error_reproting auf E_ALL (einfach error_reporting(E_ALL); ganz oben ins Script) und du wirst sehen, dass du einen Hinweis bekommst: $template ist nicht definiert.
    Stimmt habe ich schon gemerkt, da ich die Variable durch den Template Ordner Ersetzt habe. Und siehe das das Template war zu sehen.

    Zitat von agrajag Beitrag anzeigen
    Du musst sie wie gesagt entweder per global in den Scope der Funktion übernehmen (globale Variable) oder einfach als Parameter übergeben....
    Wie muss ich das genau machen?


    Danke dir!

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Zitat von mafra Beitrag anzeigen
    Nen Profi *lol*
    Was willst du mir jetzt damit sagen?

    Ja genau. Ich baue Templates für Wordpress und mir gefällt die Template Engine von Wordpress ganz gut.
    Ich hab bisher erst 2 mal mit Wordpress-Templates zu tun gehabt, aber stimmt: Es ist eigentlich ganz angenehm handhabbar bei wordpress.

    Die Variable Template wird in der config.inc.php definiert und eine Zeile vorher includet.
    Das wird trotzdem nicht funktionieren wenn du die Funktionenen so wie oben verwendest.

    Schalte mal error_reproting auf E_ALL (einfach error_reporting(E_ALL); ganz oben ins Script) und du wirst sehen, dass du einen Hinweis bekommst: $template ist nicht definiert.

    Du musst sie wie gesagt entweder per global in den Scope der Funktion übernehmen (globale Variable) oder einfach als Parameter übergeben....

    Einen Kommentar schreiben:


  • mafra
    antwortet
    Zitat von agrajag Beitrag anzeigen
    Ich find's jetzt nicht sonderlich sinnvoll das so zu machen... Aber im Grunde spricht auch nichts dagegen. Wordpress handelt das glaube ich in ihren Templates ganz ähnlich....
    Nen Profi *lol* Ja genau. Ich baue Templates für Wordpress und mir gefällt die Template Engine von Wordpress ganz gut.

    Die Variable Template wird in der config.inc.php definiert und eine Zeile vorher includet.

    Also die index.php sieht so aus.

    PHP-Code:
    <?php

    // Konfigurations Datei
    include './include/config.inc.php';

    // Verbindung zur Datenbank
    include './include/dbConnect.inc.php';

    // Funktionen 
    include './include/function.inc.php';

    // Template Integration
    include './templates/'.$template.'/index.php';

    ?>

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Zitat von mafra Beitrag anzeigen
    So jetzt bekomm ich netterweise wieder nen Fehler. Also ich habe meinen äußerst dummen Fehler behoben. Leider ohne Erfolg.

    Fatal error: Cannot redeclare header() in /opt/lampp/htdocs/dev-web/portal/include/function.inc.php on line 6
    Das hab ich vorher wohl übersehen....

    header() ist schon eine PHP-interne Funktion und existiert damit schon. Du kannst also keine Funktion erstellen die header() heißt.

    Einen Kommentar schreiben:


  • mafra
    antwortet
    RE

    So jetzt bekomm ich netterweise wieder nen Fehler. Also ich habe meinen äußerst dummen Fehler behoben. Leider ohne Erfolg.

    Fatal error: Cannot redeclare header() in /opt/lampp/htdocs/dev-web/portal/include/function.inc.php on line 6

    I
    ch danke euch schon mal für euer Geduld.

    MfG
    Mafra

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    So wie du es machst wird es nicht funktionieren:
    $template ist nicht definiert. Du müsstest es entweder per global $template in der Funktion bekannt machen oder als Parameter übergeben....
    Wobei letzteres klar zu bevorzugen ist.

    Ich find's jetzt nicht sonderlich sinnvoll das so zu machen... Aber im Grunde spricht auch nichts dagegen. Wordpress handelt das glaube ich in ihren Templates ganz ähnlich....

    Einen Kommentar schreiben:


  • mafra
    antwortet
    Stimmt du hast recht, *aufdemkopfschlag* man soll sich halt nicht ablenken lassen. Ähm ist es überhaupt sinnvoll das so zu machen oder gibt es da elegantere Lösungen?

    *gut das es euch gibt*

    Danke

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Ich sag's mal so: Es gibt nicht nur die öffnende Klammer "{" sondern auch die schließende "}"...

    Einen Kommentar schreiben:

Lädt...
X