Salve a tutti!! Sono un ragazzo di 20 e ad ottobre mi appresto ad iniziare il secondo anno di università (faccio matematica!). Ieri mi sono messo di impegno per studiare il php e mi sono accorto che è molto molto simile al c++ (al primo anno ho dato un esame di c++ e direi che è anche andato piuttosto bene). Dopo aver seguito la guida base che ho trovato su html ho iniziato la guida pratica... mi sono però un po' spaventato perchè alla prima lezione (che era un contatore di click, in teoria una cosa facilina...) non capivo nulla...
Vi posto qua il codice, qualcuno avrebbe voglia di spiegarmelo un pochino? Cioè anche a grandi linee sempre se avete voglia, giusto capire i passaggi più importanti!!
grazie mille!!
la guida è a questo link http://php.html.it/guide/lezione/269...ersonalizzato/
<?php
interface DataProvider
{
public function storeVisits($visits);
public function readVisits();
}
class FileDataProvider implements DataProvider
{
const FILE_PATH = 'counter.txt';
private $fp;
public function __construct()
{
if(!file_exists(FileDataProvider::FILE_PATH))
{
$fp = fopen(FileDataProvider::FILE_PATH, 'w+');
fwrite($fp, '0');
fclose($fp);
}
$this->fp = fopen(FileDataProvider::FILE_PATH, 'r+');
}
public function readVisits()
{
return intval(file_get_contents(FileDataProvider::FILE_PA TH));
}
public function storeVisits($visits)
{
ftruncate($this->fp, 0);
fseek($this->fp, 0);
fwrite($this->fp, strval($visits));
}
public function __destruct()
{
fclose($this->fp);
}
}
class SimpleCounter
{
private $provider;
public $visits;
public function __construct(DataProvider $provider)
{
$this->provider = $provider;
$this->visits = $this->provider->readVisits();
if($this->isValid())
{
$this->provider->storeVisits(++$this->visits);
}
}
protected function isValid()
{
return true;
}
}
?>
poi per farlo funzionare:
<?php
require_once 'lib/counter.php';
$counter = new SimpleCounter(new FileDataProvider);
echo "Questa pagina è stata visitata ".$counter->visits." volte";
?>