1. Go to this page and download the library: Download dbstudios/analyst 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/ */
dbstudios / analyst example snippets
class MyController {
public function isAllowed(User $user, $slug) {
return Experiment::create('user-allowed')
->setContext([
'user' => $user, // context ignores keys, however it's helpful to use keys to "flag" what each variable means
'slug' => $slug,
])
->control(function(User $user, $slug) {
return $user->isAdmin() || $user->getPermissions()->contains('view.page.' . $slug);
})
->candidate(function(User $user, $slug) {
return $user->getPermissionProvider()->isAccessAllowed($slug);
})
->run();
}
}
class MyExperiment extends Experiment {
private $db;
private $stmt;
public function __construct(PDO $db, $name = 'experiment') {
parent::__construct($name);
$this->db = $db;
$this->stmt = $db->prepare('insert into experiment_results (name, timestamp, behavior, is_control,
execution_time, result) values(:experiment, UTC_TIMESTAMP(), :behavior, :control, :duration, :result)');
$this->stmt->bindValue(':experiment', $name);
}
public function publish(Result $result) {
$behaviors = $result->getCandidates();
array_unshift($candidates, $result->getControl());
$this->db->beginTransaction();
foreach ($behaviors as $behavior) {
$this->stmt->bindValue(':behavior', $behavior->getName());
$this->stmt->bindValue(':control', $behavior === $result->getControl(), PDO::PARAM_BOOL);
$this->stmt->bindValue(':duration', $behavior->getDuration());
$this->stmt->bindValue(':result', serialize($behavior->getResult());
$this->stmt->execute();
}
$this->db->commit();
}
public static function create($db, $name = 'experiment') {
return new MyExperiment($db, $name);
}
}
class MyController {
public function isAllowed(User $user, $slug) {
return MyExperiment::create($this->getConnection(), 'user-allowed')
// set up context, control, and candidate...
->run();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.