tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
18
ZUGRIFFE
586
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Hallo Froum,

    seit einen halben Jahr beschäftige ich mich mit der Objektorienterter Programmierung in PHP 5.3.

    Dazu habe ich mir das Buch "PHP 5.3 & MySql 5.1 von Galileo Computing" besorgt, und bin da auf generelle Fragen gestoßen.

    In dem Buch wird eine art Grundgerüst genaut, wo mann dann das Grundgerüsst mit Klassen beliebig erweitern kann/soll.

    Dort gibt es die Klasse HTML die public static Methoden besitzt.
    doch die Klasse Blog zubeispiel hat keine statische Methoden Mehr.. Man muss dann Objekte Instazieren.
    Da stellt sich mir die erste Frage.

    Wann sollte man Objekte erstellen, und wann sollte man auf statische Methoden zugreifen wie HTML:: printHead();



    Dann werden die im Buch beschriben Methoden als Funktionen erstellt die ein String als Rückgabewert haben.
    so stzt man dann in der PHP Seite beispiel index.php "echo HTML:: printBody();".

    Oder Es gibt den Ansatz, dass man auf Rückgabe verzecihtet und dann einfach mit echos in der Methode Arbeitet.
    Besipiel in der Index Datei würde es so ausehn einfach HTML:: printBody();

    Ich finde beide Ansatze Ärgerlich und Anstrengend da man den HTML Code dann mühleselig generiert Beispiel so:
    Code :
    1
    
    echo '<body>'."\n;

    bzw.

    Code :
    1
    
    $output.='<body>'."\n;

    Ist es da nicht sinnvoller die PHP Struktur zu unterbrechen und einfach HTML-Code einzugeben?

    Wie händelt ihr das?

    Und dann hätte ich ncoh eine Andere Frage

    Wie Arbeitet ihr um ein Template zu erstellen? Was sind automatisierte Module?

    Ich hoffe ihr könnt mir da ein wenig Helfen. Leider wird in den Buch nicht so auf Vererbung gesetzt was ja wirklich ein Merkmal der OOP ist. Aber ich finde es so auch einfacher...
    Also mit der Konzeptionellen Art des professionellen Webcodens.. Zum Glück hat mich dieses Buch auf die Javascript Libary jQery gebracht, wo ich noch in einem Anderen Kontext lernen muss.. Danke An den Mod Maik an dieser Stelle..
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Auch wenn ich es eigentlich nicht vor hatte, so muss ich dich auch darauf verweisen, dass es beim objektorientierten Programmieren auch Klassen gibt, die sowohl statische als auch nichtstatische Methoden enthalten. Beispielsweise bei Singletons (Objekte, die man nur einmal instanziieren kann und man danach immer auf die gleiche Instanz zugreift) erstellt man über eine statische Methode das Objekt, weil man bewusst den Konstruktor als private gekennzeichnet hat.
    Man kann also den großen Unterschied zwischen statischen und nichtstatischen Methoden darin erkennen, dass statische Methoden direkt aufgerufen werden können, nichtstatische Methoden werden letztendlich direkt auf das Objekt angewendet, von dem aus man die Methode aufruft. Was weiterhin ein Unterschied ist, ist, dass man in statischen Methoden die klasseninterne Variable $this nicht verwenden kann, sondern nur self, was man aber auch in nichtstatischen Methoden aufruften kann. Somit kann man in $this Werte festlegen, die objektspezifisch sind, in self kann man objektübergreifende Werte festlegen.

    Zu dem Templates: die meisten lösen das Problem damit, dass sie in den Templates kryptischen Code einfügen, denn sie dann später in PHP durch den entsprechenden Wert ersetzen. Das ist, wie ich meine, aber doch auf eine gewisse Art absurd, da man an dieser Stelle doch gleich die Variable einfügen kann, die den entsprechenden Wert enthält.

    Zum Vergleich:
    - so wie es viele handhaben:
    PHP-Code:
    <h1>{$headline}</h1
    - wie ich es handhabe:
    PHP-Code:
    <h1><?php echo $headline?></h1>
    Geändert von einfach nur crack (01.05.10 um 16:44 Uhr)
    mita1982 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Ich muss ehrlich zugeben, dass ich nicht so viel verstanden habe...

    also fügst Du dynamische inhalte in statische html tags ein? und generierst nicht den Code wie ich es mache echo"<tag>"; bzw. $string.="<tag>";

    gibt es einen nachteil.. wenn man die tags rein in html schreibt?

    Ihc finde so kannman den html Markup dann viel besser formatieren..
     

  4. #4
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Also ich arbeite auch hauptsächlich mit Templates, da ich das Generieren von HTML-Quelltext in PHP bescheuert finde. Es gibt einige Sachen, da muss man es so handhaben, aber in den meisten Fällen belastet es nur die Leistung und die beeinflusst die Geschwindigkeit in der die Seite geladen wird. Also sollte man doch eher versuchen PHP von HTML zu trennen. Kurzum: ich schließe mich deiner Meinung an.
    mita1982 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  5. #5
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Also ist sowas hier eine Art Template?

    Und es geht auf den richrigen Weg

    PHP-Code:
    <?php
      session_start
    ();
      require_once(
    'classes/settings.php');
      require_once(
    'classes/DBConnection.php');
      require_once(
    'classes/HTML.php');
    //CAPTCHA prüfung
      
    require_once('securimage/securimage.php');
      
    $securimage = new Securimage();

      if (isset(
    $_POST['send']) && 
        isset(
    $_POST['name']) && 
        isset(
    $_POST['email']) && 
        isset(
    $_POST['message']) &&
        isset(
    $_POST['subject']))
    {     
        if (
    $securimage->check($_POST['captcha_code']) == false
        {
             
    // the code was incorrect
             // handle the error accordingly with your other error checking

             // or you can do something really basic like this
            
    echo '<script language="javascript">alert("The code you entered was incorrect.");</script>';
        }
        else
        {
            
    $sender $_POST['email'];
            
    $empfaenger "info@vrc-racing.com";
            
    $betreff $_POST['subject'];
            
            
    $mailtext 
            
    '<html>
                <head>
                      <title>'
    .$betreff.'</title>
                </head>
                <body>
                      <p>Name: '
    .$_POST["name"].'</p>
                      <p>E-Mail: '
    .$_POST["email"].'</p> 
                    <p>'
    .$_POST["message"].'</p>
                  </body>
            </html>'
    ;

    // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
    $header  'MIME-Version: 1.0' "\r\n";
    $header .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

    // zusätzliche Header
    $header .= 'To:<'.$empfaenger.'>' "\r\n";
    $header .= 'From: '.$_POST["name"].' <'.$_POST["email"].'>' "\r\n";
    $header .= 'Cc: bener1hannover@hotmail.com' "\r\n";
    $header .= 'Bcc: mista1982@googlemail.com' "\r\n";
            
             
            
            
    mail($empfaenger$betreff$mailtext$header);
            echo 
    '<script language="javascript">alert("Thank you! \n \n The email was send sucsefully!"); location.href = "/test/index.php"; </script>';
             exit;
        }    
    }
      
      
      
    //--------------------
          
    HTML::printHead();
    ?>      
    <?      
         HTML
    ::printBody();

    ?>
    <div id="contact">
            <h1><?= $_SESSION['language']=='Kontakt' 'Contact Us' ?></h1>
            <br />
            <form method="post" action="#">
            <p><?= $_SESSION['language']=='Ihr Name*' 'Your Name*' ?></p>
            <p><input type="text" class="inputtext" id="idName" name="name" onblur="validateName();" value="<? if (isset($_POST['send']) && isset($_POST['name'])) echo $_POST['name'];?>" />
            <img class="failimg" id="failname" src="http://www.tutorials.de/forum/images/empty.png" alt="empty"  /></p>
            <p><?= $_SESSION['language']=='Ihre E-Mail* (wird nicht ver&ouml;ffentlicht)' 'Your E-mail* (will not be published) ' ?></p>
            <p><input type="text" class="inputtext" id="email" name="email" onblur="validateEmail();" value="<? if (isset($_POST['send']) && isset($_POST['email'])) echo $_POST['email'];?>" />
            <img class="failimg" id="failmail" src="http://www.tutorials.de/forum/images/empty.png" alt="empty" /></p>
            <p><?= $_SESSION['language']=='Betreff' 'Subject' ?></p>
            <p><input type="text" class="inputtext" name="subject" value="<? if (isset($_POST['send']) && isset($_POST['subject'])) echo $_POST['subject'];?>" /></p>
            <p><?= $_SESSION['language']=='Ihre Nachricht' 'Your Message' ?></p>
            <p><textarea rows="10" id="idMessage" name="message" onblur="validateMessage();" cols="40"><? if (isset($_POST['send']) && isset($_POST['message'])) echo $_POST['message'];?></textarea></p>
            <p><img class="failimg" id="failmessage" src="http://www.tutorials.de/forum/images/empty.png" alt="empty" /></p>
            <div id="captcha_rahmen">
            <p><?= $_SESSION['language']=='Spamschutz*' 'Seccurity image*' ?></p>
            <p><img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" /></p><a href="#" style="float:left;" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false"><img class="refresh" src="securimage/images/refresh.gif" alt="refresh" /></a>
            <p style="float:left;"><?= $_SESSION['language']=='Bitte den Code eingeben ' 'Enter the code ' ?></p><p style="float:left;"><input class="captcha" type="text" name="captcha_code" size="10" maxlength="6" /></p>
            </div>
            <table style="width:630px; margin-top:10px; margin-right:15px; margin-bottom:15px">
                <tr>
                    <td><p><input id="btn_email" type="submit" name="send" value="<?= $_SESSION['language']=='Nachricht senden' 'Send message' ?>" ></input></p></td><td class="caputure_pflichtfelder"><p><?= $_SESSION['language']=='*Pflichtfelder' '*Required fields' ?></p></td>
                </tr>
            </table>
        </form>
    </div>
    <?php     
      HTML
    ::printFoot();
    ?>
     

  6. #6
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Wenn du dein Skript noch etwas aufräumst, dann sieht das Ganze doch schon recht nett aus. Kann leider nicht mehr dazu sagen, da ich nicht weiß, was die einzelnen Objekte tätigen und wie sie aufgebaut sind.
    mita1982 bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  7. #7
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Inwieweit meinst Du das mit den "Aufräumen"?

    und die Objekte? naja es gibt ja nur Statische methoden, der HTML Klasse.. Dort wird in printHead() der Anfang von head und Grundgerüst geschrieben sowie die ganzen Scripte und Stylesheats geladen...

    die Methode printBody die gesammten Divs bis zum content.. und printfoot() schließt einige Divs das Body und Html Tag..

    Jetzt stellt mich die Frage, wie ich die einzelnen HTML Methoden handhaben soll.. also mit Rückgabe eines Strings? in der Methode Selber mit echo ausgeben oder wie ich meine :

    PHP-Code:
    public static function printBody(){
    ?>
       <body>
         <div id="container">
            <div id="content">
    <?
    }
    Das Beispiel Obne ist natürlich vereinfacht..

    Kurz eine OffTopic Frage: Mit welcher IDE kann man php Produkiv debuggen? Also den code den man geändert hat auf ein webserver laden und gleich debuggen?
    Eclipse PDT? Nebeans PHP?
     

  8. #8
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Ich habe früher mit Dreamweaver gearbeitet, aber seit dem ich auf Mac umgestiegen bin nutze ich Xcode (das ist nicht explizit für PHP gedacht, aber funktioniert) und lade meine Daten mit Cyperduck hoch, wenn nötig. Ansonsten läuft das alles über meinen localhost.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  9. #9
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    verscuhe grade mit netbeans zu debuggen auf localhost aber irgendwie kommt immer ne meldung, dass xdebug nicht konfiguriert ist oder so.. naja anderes thema.. ich möchte dich nochmal bitten, meine oben erwähnte Frage zu beantworten ob man quasi in den Methoden php mit
    ?>
    abrricht und HTML Markup schreibe und gegebenfals mit <?= phpcode ?> einsetze und dann wieder die methode mit <? } abzuschließen?
     

  10. #10
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Ich weiß nicht, ob das möglich ist. Aber ich weiß, dass man HTML-Seiten mit include, include_once, require und require_once innerhalb von Methoden einladen kann und diese dann als Ausgabe an den Browser verstanden werden, könntest du es einfach mal probieren. Wäre mal interessant zu erfahren, ob das möglich ist.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  11. #11
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    habe jetzt ein ganz anderes Problem:

    Ich habe den xdebugger ind netbeans und php 5.3.1 zum laufen gebracuht, jedoch ist php jetzt viel pingeliger:

    PHP-Code:
    <? ?>
    wird nicht interpretiert.. sondern nur noch
    PHP-Code:
    <?php ?>
    Ok das kann man ja schnell ändern aber das
    PHP-Code:
    <?= ?>
    funktioniert nicht mehr.. wurde es ersezt?

    Oder sollte ich zurück auf php 5.3.0?
     

  12. #12
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Die einzig wirklich richtige Schreibweise ist
    PHP-Code:
    <?php ?>
    Alle anderen, ob nun das Kurztag <? oder das ASP-Tag <% sind Ueberbleibsel aus einer Zeit vor den Pyramiden und sollten vermieden werden, da sie bereits jetzt nur noch optional unterstuetzt werden und ueber kurz oder lang auch aus PHP rausfliegen werden.

    Entsprechend, wenn Dein Code noch andere Tags als <?php nutzt, dann solltest Du an dem Ende arbeiten, und nicht der PHP-Konfiguration.
    mita1982 bedankt sich. 
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  13. #13
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Ok

    Dass heißt jetzt, dass das

    PHP-Code:
    <=? $string ?> 
    nicht mehr geht und ich es mit
    PHP-Code:
    <?php echo $string ?>
    ersetzen muss?

    wie ersetze ich dann dieses if konstrukt?

    PHP-Code:
    <?= $_SESSION['language']=='Kontakt' 'Contact Us' ?>
    das geht so nicht:
    PHP-Code:
    <?php  $_SESSION['language']==? echo 'Kontakt' : echo 'Contact Us' ?>
    wie ist es richtig?
     

  14. #14
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    PHP-Code:
    <?php echo $_SESSION['language']=='Kontakt' 'Contact Us'?>
    mita1982 bedankt sich. 
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  15. #15
    mita1982 mita1982 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    114
    Zitat Zitat von einfach nur crack Beitrag anzeigen
    Ich weiß nicht, ob das möglich ist. Aber ich weiß, dass man HTML-Seiten mit include, include_once, require und require_once innerhalb von Methoden einladen kann und diese dann als Ausgabe an den Browser verstanden werden, könntest du es einfach mal probieren. Wäre mal interessant zu erfahren, ob das möglich ist.
    Also ich habe in der Methode printHead() ein requiere_once('HTML/head.html');

    es geht mit reinem HTML und PHP Dateien. Vieleicht hilft es ja jemanden...
     

Ähnliche Themen

  1. Allgemeine Fragen
    Von selle1 im Forum Hosting & Webserver
    Antworten: 8
    Letzter Beitrag: 17.05.07, 22:00
  2. Allgemeine Fragen zur DLL
    Von Black_Deal im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 29.10.04, 12:58
  3. 2 allgemeine Fragen
    Von bobbey im Forum 3D Studio Max
    Antworten: 8
    Letzter Beitrag: 27.08.04, 11:30
  4. asp,3 allgemeine fragen
    Von Drischmaeh im Forum ASP
    Antworten: 8
    Letzter Beitrag: 16.08.04, 13:46
  5. Allgemeine DTP-Fragen
    Von Emslaender im Forum Desktop Publishing (DTP)
    Antworten: 12
    Letzter Beitrag: 03.03.04, 23:04

Stichworte