1. Go to this page and download the library: Download simplon/doi library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
simplon / doi example snippets
// Doi instance with database handler
$doi = new \Simplon\Doi\Doi(
new \Sample\Handler\SampleDatabaseHandler()
);
// connecor is an identifier for your internal reference
$connector = 'NL'; // max. 6 chars
// data connected to this doi
$data = [
'email' => '[email protected]',
'firstName' => 'Tom',
'lastName' => 'Berger',
];
// create entry in database
$doiDataVo = $doi->create($connector, $data); // 56,800,235,584 possible tokens
// THE FOLLOWING PART MUST FIT YOUR EMAIL SOLUTION
// SIMPLON\DOI DOES NOT OFFER ANY SOLUTION TO THIS
// build callback url
$callbackUrl = 'https://yourapp.com?token=' . $doiDataVo->getToken();
// email and your message
$userEmail = $doiDataVo->getContentDataArray()['email]);
$text = 'Dear user, please confirm by clicking on the following link: ' . $callbackUrl;
$email = new MyEmailSolution();
$email->send($userEmail, $text);
// Doi instance with database handler
$doi = new \Simplon\Doi\Doi(
new \Sample\Handler\SampleDatabaseHandler()
);
// get token from GET param
$token = $_GET['token']; // Pqb2UgtHG0MgIDgI
// validate
$doiDataVo = $doi->validate($token); // throws DoiException or returns DoiDataVo
// do whatever needs to be done
// ...
// ...
// close + invalidate token
$doi->complete($doiDataVo);
// validation has to be within a given time frame
$doiDataVo = $doi->validate($token, 2); // has to be within 2 hours; default: 24 hours
// figure how much time is left until token expires
$doiDataVo->getTimeOutLeft(); // returns amount in seconds
$doiDataVo->getTimeOutLeft(2); // run against time limit of 2 hours
// is token timed out?
$doiDataVo->isTimedOut(); // returns true/false
$doiDataVo->isTimedOut(2); // run against time limit of 2 hours
// is this token still usable? takes time and state of token into account
$doiDataVo->isUsable(); // true if state is 0 and not timed out
$doiDataVo->isUsable(2); // run against time limit of 2 hours
class SampleDatabaseHandler implements DoiDatabaseInterface
{
/**
* @var string
*/
private $databaseName = 'testing';
/**
* @var string
*/
private $tableName = 'simplon_doi';
/**
* @return resource
*/
private $dbh;
/**
* @param DoiDataVoInterface $doiDataVo
*
* @return bool
*/
public function save(DoiDataVoInterface $doiDataVo)
{
// write data to database
}
/**
* @param $token
*
* @return bool|(DoiDataVo
*/
public function fetch($token)
{
// fetch data from database
}
/**
* @param DoiDataVoInterface $doiDataVo
*
* @return bool
*/
public function update(DoiDataVoInterface $doiDataVo)
{
// update data on existing entry
}
/**
* @return resource
*/
private function getDbh()
{
if ($this->dbh === null)
{
$this->dbh = mysql_connect('localhost', 'rootuser', 'rootuser');
mysql_query('use ' . $this->databaseName, $this->dbh);
}
return $this->dbh;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.