Développement d'une boutique en PHP

MEGASTORE
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 15:11

Bonjour à tous, je viens vous demander votre aide, je viens de passer 2 h pour faire ma page de fonctions en PHP
<?php

Class ClassStore
{
	public $items = Array();
	
	public function GetItemList()
	{
		return $this->items;
	}
	
	public function ItemQuantity($item)
	{
		$i = 0;
		
		foreach ($this->items as $key => $value)
		{
			if ($value == $item)
			{
				$i++;
			}
		}
		
		return $i;
	}
	
	public function Amount()
	{
		$amount = 0;
		
		foreach ($this->items as $item => $price)
		{
			$amount += $price;
		}
		
		return $amount;
	}
	
	public function AddToCart($item, $price)
	{
		$this->items[$item] = $price;
	}
	
	public function RemoveToCart($item)
	{
		unset($this->items[$item]);
	}
	
	public function CreateTicket()
	{
		global $core;

			$ticket = "ticket-";
			$ticket .= $core->Hash(rand(30,150));
			
			return $ticket;
	}
	
	public function GetUserMoney($username)
	{
		global $users;
		
		if ($users->IsNameTaken($username))
		{
			mysql_result(dbquery("SELECT money FROM user_store"), 0);
		}
	}
	
	public function HaveEnoughMoney($username)
	{
		global $users;
		
		if ($users->IsNameTaken($username))
		{
			if ($this->GetUserMoney($username) >= $this->Amount())
			{
				return true;
			}
			
			return false;
		}
	}
	
	public function SubtractMoney($username, $value)
	{
		global $users;
		
		if ($users->IsNameTaken($username))
		{
			$value = $this->GetUserMoney($username) - $value;
			
			dbquery("UPDATE user_infos SET money = '" . $value . "' WHERE username = '" . filter($username) . "'");
		}
	}
	
	public function BuyItems($username)
	{
		global $users;
		
		if ($users->IsNameTaken($username))
		{
			if ($this->HaveEnoughMoney($username))
			{
				$this->SubtractMoney($username, $this->Amount());
				dbquery("INSERT INTO user_ticket (ticket) VALUES ('" . $this->CreateTicket(); . "')");
				
				return true;
			}
			
			return false;
		}
	}
}

?>
Je voudrais vous demander si j'ai fait des erreurs de codes ou autres, j'utilise notepad ++

MEGASTORE
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 15:19

J'ai fait une fonction supplémentaire
public function EmptyCart()
	{
		foreach ($this->items as $item => $price)
		{
			$this->RemoveToCart($item);
		}
	}

ViPHP
ViPHP | 2577 Messages

13 avr. 2012, 15:23

$this->items = array(); me semble plus simple.

MEGASTORE
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 15:26

Merci du conseil, je n'ai pas fait d'autres erreurs sinon ou code trop compliqué ?

ViPHP
ViPHP | 2577 Messages

13 avr. 2012, 15:39

Je ne suis pas un expert de la programmation objet, mais il me semble que tu devrais faire plusieurs objets en regroupant des choses qui forment un tout cohérent. Par exemple faire un objet produit, un objet personne (ou client), un objet panier...

Autrement, comme je te l'ai dit dans un autre post, pour la méthode ItemQuantity tu ne peux avoir que 0 ou 1 comme résultat.