Ik dacht dat de superglobal $GLOBALS verreweg het beste alternatief was?
Het gebruiken van global overal bovenaan je methods vind ik namelijk zelf heel slordig lijken.
Posts by Fold
-
-
Ik weet al wat je denkt. Ik combineer Zweinsveld nu eenmaal met TPL magic, dus nee, ik heb niet meer classen waar geen gebruik wordt gemaakt van een TPL engine.
-
N?g meer? Wil je heel Zweinsveld meteen?
Ik gebruik final en private omdat de class geen child classes nodig heeft en omdat bepaalde methods alleen maar in de class zelf aangeroepen hoeven worden. Duh! :p
Darsstar edit: goede antwoord wat betreft private: de final en private combi is logisch (final en protected niet)
Fold edit: Ik gebruik ook helemaal geen final en protected ^o)
-
PHP
Toon Meer<?php if(!defined("USER_IN")) { header("Location: ../../index.php"); die; } final class Shop { private $productTypes; private $productTypeWords; public function __construct() { $this->productTypes = array("book", "defence", "attack", "quest", "food", "quidditch", "special"); $this->productTypeWords = array("Boek", "Bescherming", "Wapen", "Queeste", "Voedsel", "Zwerkbal", "Overige"); } private function stockList($shop) { $stock = gotosql("query", "SELECT * FROM stock WHERE shop = '" . $shop . "'")->fetchAll(PDO::FETCH_ASSOC); $GLOBALS['tpl']->define("STOCK", "categories/subcategories/general/tables/diagonalley_stocklist.tpl"); $stocklist = false; foreach($stock as $shop) { $product = gotosql("query", "SELECT name, description, price, attack, defence, type, heal, level FROM products WHERE id = '" . $shop['product'] . "'")->fetch(PDO::FETCH_ASSOC); $product['type'] = str_replace($this->productTypes, $this->productTypeWords, $product['type']); $GLOBALS['tpl']->assign("{PRODUCT_NAME}", htmlspecialchars($product['name'])); $GLOBALS['tpl']->assign("{STOCK}", $shop['stock_current']); $GLOBALS['tpl']->assign("{PRODUCT_DESC}", htmlspecialchars($product['description'])); $GLOBALS['tpl']->assign("{PRICE}", currency_show($product['price'])); $GLOBALS['tpl']->assign("{ATTACK}", $product['attack']); $GLOBALS['tpl']->assign("{DEFENCE}", $product['defence']); $GLOBALS['tpl']->assign("{TYPE}", $product['type']); $GLOBALS['tpl']->assign("{HEALING}", $product['heal']); $GLOBALS['tpl']->assign("{LEVEL}", $product['level']); $GLOBALS['tpl']->assign("{PRODUCT_ID}", $shop['id']); $stocklist .= "\r\n" . $GLOBALS['tpl']->parse("STOCK"); } return $stocklist; } private function getShopProperties($shop) { return gotosql("query", "SELECT * FROM shops WHERE id = '" . $shop . "'")->fetch(PDO::FETCH_ASSOC); } private function verifyBuy($product) { if(empty($_POST['number']) || !ctype_digit($_POST['number']) || floor($_POST['number']) != $_POST['number'] || $_POST['number'] < 0) { throw new Exception("Er is geen geldig aantal opgegeven."); } if($product['price'] * $_POST['number'] > $GLOBALS['profile']['money']) { throw new Exception("Je hebt niet genoeg geld voor deze aankoop!"); } if($product['stock'] - $_POST['number'] < 0) { throw new Exception("Zo veel heeft de winkel niet meer op voorraad!"); } if($product['level'] > $GLOBALS['profile']['level']) { throw new Exception("Je moet minstens level " . $product['level'] . " zijn voor deze aanschaf!"); } } public function buy($product, $shop) { $product = gotosql("query", "SELECT products.id, products.price, products.level, products.type, products.special_effect, stock.stock_current AS stock FROM products JOIN stock ON (stock.product = products.id) WHERE stock.id = '" . $product . "' AND stock.shop = '" . $shop . "'")->fetch(PDO::FETCH_ASSOC); try { $this->verifyBuy($product); if($product['type'] == "special") eval($product['special_effect']); else { gotosql("query", str_repeat("INSERT INTO items (product, owner) VALUES('" . $product['id'] . "', '" . $GLOBALS['profile']['id'] . "');", $_POST['number'])); } gotosql("exec", "UPDATE users SET money = money - '" . ($product['price'] * $_POST['number']) . "' WHERE id = '" . $GLOBALS['profile']['id'] . "'"); gotosql("exec", "UPDATE stock SET stock_current = stock_current - '" . $_POST['number'] . "' WHERE id = '" . $shop . "'"); $GLOBALS['tpl']->assign("{MONEY}", currency_show($GLOBALS['profile']['money'] - $product['price'] * $_POST['number'], false)); $GLOBALS['tpl']->assign("{MESSAGE}", '{MESSAGE="Je hebt het product gekocht. Het heeft je ' . currency_show($product['price'] * $_POST['number'], false) . ' gekost!"}'); } catch(Exception $e) { $GLOBALS['tpl']->assign("{MESSAGE}", '{ERROR="' . $e->getmessage() . '"}'); } } public function getShops() { return gotosql("query", "SELECT * FROM shops")->fetchAll(PDO::FETCH_ASSOC); } public function shopTable($shops) { $GLOBALS['tpl']->define("SHOP", "categories/subcategories/general/tables/diagonalley.tpl"); $diagonalley = false; foreach($shops as $shop) { $GLOBALS['tpl']->assign("{IMAGE}", $shop['image']); $GLOBALS['tpl']->assign("{NAME}", htmlspecialchars($shop['name'])); $GLOBALS['tpl']->assign("{SHOPID}", $shop['id']); $GLOBALS['tpl']->assign("{DESC}", htmlspecialchars($shop['description'])); $diagonalley .= "\r\n" . $GLOBALS['tpl']->parse("SHOP"); } return $diagonalley; } public function visitShop($shop) { $shop = $this->getShopProperties($shop); if($shop) { $GLOBALS['tpl']->define("SHOPS", "categories/diagonalley/shop.tpl"); $GLOBALS['tpl']->assign("{SHOP_NAME}", htmlspecialchars($shop['name'])); $GLOBALS['tpl']->assign("{SHOP_DESCRIPTION}", htmlspecialchars($shop['description'])); $GLOBALS['tpl']->assign("{SHOP_PRODUCTS}", $this->stockList($shop['id'])); return $GLOBALS['tpl']->parse("SHOPS"); } else return false; } }
Voor het project is hij nog niet af, maar het is immers een voorbeeld.
Darsstar edit: die construct is een beetje zinloos
PHPprivate $productTypes = array("book", "defence", "attack", "quest", "food", "quidditch", "special"); private $productTypeWords = array("Boek", "Bescherming", "Wapen", "Queeste", "Voedsel", "Zwerkbal", "Overige");
bespaard wat regels :pFold edit:
Ik ga sowieso nog een constructor nodig hebben! -
LET OP: Oorspronkelijk hier geplaatst!
Titel van de werkzaamheden:
Jonge, ervaren webdeveloper!
Soort werkzaamheden:
programmering, scripten.
Omschrijving van de werkzaamheden:
Het ontwikkelen van web / browser based applicaties met behulp van PHP & MySQL.
Budget voor dit project:
xx | xxx
Deadline:
NVT
BTW-nummer verplicht:
ja | nee
Voorbeelden:
http://richardsnijders.com/scripts (meest relevante script)
Bijlagen:
NVT
Alle overige informatie:
Ik ben bereid vrijwel alle ideeën te realiseren voor een lage 10 euro per uur.
Ik werk het liefst objectgeörienteerd, maar mocht dat niet van toepassing zijn, is dat geen probleem. Ik heb zelf weinig ervaring met frameworks, al dan een klein beetje van Kohana.
Mijn leeftijd is 16 jaar.
Ik ben eventueel bereid buitenshuis te werken in Groningen en omstreken, maar ik verricht mijn werkzaamheden bij voorkeur thuis uit.
Indien een contract mogelijk is, graag! -
Je kunt gewoon elke website beginnen die je maar wilt, zolang je je maar aan de wet houdt. Die layout die jij wilde jatten mag dus niet, en maakt het dus illegaal!
-
James Bond
The Lord of the Rings
Harry Potter
Mr. Bean's holliday
Blade
Pirates of the Caribbean
The Ring -
Nog even wat bestanden door de lucht schieten en ik ga naar bed. Gaap, lijkt wel eeuwen te duren... Left 4 Dead, here I come! Maar eerst een potje snurken.
Nieuwe reactie samengevoegd met originele reactie op 15.11.09 01:46:33:
PATS! Hebbes! Ik ben weg hier! -
Laresh, staak verdorie je nutteloze, kleinerende opmerkingen eens! Je hebt hier 4 keer gereageerd waarvan slechts 1 nuttig en respectvol was!
-
-
-
Als je niks aangepast hebt, hebben de kaboutertjes dat gedaan. Dit is een goed voorbeeld van een slecht gescript programma, dus bijna alles wat er gebeurt, wordt in hetzelfde bestand aangeroepen. Er moet iets veranderd zijn als het niet werkt!
-
Welke source gebruikte je ook alweer?
-
-
Citaat
© 2008 - 2009 Game-projecten: banditie.org
^ Die copyrights.Hoera. Je hebt het gevonden. Nu kun je het toch aanpassen?!
-
Download Criminolz gewoon opnieuw en pleur het onaangepaste bank script er in.
-
Om eerlijk te zijn vind ik Call of Duty helemaal niet zo leuk! Een andere COD-like game zoals Savage: The battle for Newerth, een middeleeuwse variant (met vrij retro graphics) vind ik wel vet. Het is een combi tussen een RTS en FPS game. Verder ben ik een beetje het Prince of Persia, Assassin's Creed type. Left 4 Dead lijkt me ook een super vet spel. Ben hem nu aan het downloaden!
-
-
-
Bewerkt
1. Je mag niet spammen!!!!!!!!!!!
2. Spammen is niet efficiënt, want mensen díe komen zijn binnen 10 minuten weg. Ik heb er ervaring mee, want zo laag ben ik zelf ook ooit geweest.
3. Degene die zegt dat die je website uit de lucht wil halen is waarschijnlijk van plan contact op te nemen met je hosting provider.
4. Het is mogelijk dat je hosting provider ze gelijk geeft en je eraf kickt
5. Je bent strafbaar. (Niet goed gelezen. Als jouw leden spammen ben je niet strafbaar.)
6. Waarom gebruikte ik niet eerder Google chrome? Nog een leuke feature ontdekt :p
Wat je tegen spammende leden kunt doen:
Probeer te achterhalen wie het is en vraag ze ermee te stoppen, als dat niet gebeurt, ban je ze gewoon.