Ik ben redelijk nieuw in PHP en vroeg me af hoe ik deze code zou kunnen verbeteren. Ik weet dat het niet perfect is, maar elke opbouwende kritiek wordt aangemoedigd als ik probeer mezelf te verbeteren in PHP. Al het mogelijke is dat als je antwoordt met een manier om het te verbeteren, je het antwoord een beetje uitbreidt en laat me weten waarom het beter is, zodat ik het volledige beeld van de verbetering kan krijgen.
public function displayArticle(){
//Check to see if we are getting the home page
if($_GET['page'] == 'home'){
//Display the results formatted
$content = "";
$content .= "<div class=\"igpPost-Divider\"></div>";
$content .= "";
$content .= "Did last week’s MLG Spring Championship leave you thirsting for more eSports? Then DreamHack Summer 2012 has you covered. With well-attended tournaments for StarCraft 2, League of Legends, and Dota 2, DreamHack should keep you busy throughout the weekend and into the work-week. It starts tomorrow at 11 AM Eastern, and continues through Monday, with the StarCraft 2 Grand Final scheduled for 5:15 PM Eastern.
";
$content .= "";
$content .= "";
}
//If it is not the home page and it is a single article
if($_GET['article']){
//Display the article formatted
}
}
Ook is dit duidelijk niet een volledig script maar als je het bekijkt lijkt het veel te veel voor PHP. Ik heb een paar tutorials gelezen en ik denk dat ze me de verkeerde kant op hebben gestuurd door correct te zijn en goede PHP te gebruiken.
Update: ik heb de code doorgenomen en geprobeerd een deel ervan te herzien, zodat het een meer beschrijvend overzicht gaf:
$sql = "SELECT * FROM articles LIMIT $number";
$stmt = $pdo->query($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch()){
//Display the results formatted
$content = "";
$content .= "<div class=\"igpPost-Divider\"></div>";
$content .= "";
$content .= "";
$content .= "<div class=\"igpPost-AuthTime\">Posted By: " . $row['author'] . " at " . formatDateTime($row['datetime']) . "</div>";
$content .= "<div class=\"igpPost-AuthTime\">Tags: ";
$content .= "<div class=\"igpPost-Img\">
</div>";
$content .= "";
$content .= "" . $row['content'] . "
";
$content .= "";
$content .= "";
echo $content;
}
This is what im going for, im basically trying to separate the html from the PHP but insert the dynamic content in the places it needs to be. This is all within a class.