PHP code example of jeyroik / kb-plan
1. Go to this page and download the library: Download jeyroik/kb-plan 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/ */
jeyroik / kb-plan example snippets
/**
* @var $planRepo extas\interfaces\plans\IPlanRepository
*/
$plan = $planRepo->one([IPlan::FIELD__ID => 'demo.plan']);
$plan->addProgress(['items_count' => 20])
class MyPlanProgress extends PlanProgress
{
protected $planRepo = 'my\extas\plans\Repository';
}
class MyPlan extends Plan
{
protected $planProgressRepo = 'my\extas\plans\progress\Repository';
/**
* @return string
*/
protected function getPlanSubject()
{
return 'my.plan';
}
/**
* @param array $data
*
* @return IPlanProgress
*/
protected function getPlanProgress($data)
{
return new MyPlanProgress($data);
}
}
class MyPlanFact extends PlanFact
{
protected $planRepo = 'my\extas\plans\Repository';
protected $factRepo = 'my\extas\plans\facts\Repository';
}
class MyPluginFact extends PlanPluginProgressAddToFact
{
protected $factRepo = 'my\extas\plans\facts\Repository';
/**
* @override_it
*
* @return string
*/
protected function getPlanFactSubject()
{
return 'my.plan.fact';
}
/**
* @override_it
*
* @param $factData
*
* @return IPlanFact
*/
protected function getPlanFact($factData)
{
return new MyPlanFact($factData);
}
}
class CountPagesPlugin extends Plugin
{
public function __invoke(&$fact, $progress)
{
$factPages = $fact->getParameter('pages_count', null);
$progressPages = $progress->getParameter('page_count', [
'name' => 'pages_count',
'value' => 0
]);
if (!$factPages) {
$factPages = $progressPages;
} else {
$factPages->setValue($factPages->getValue() + $progressPages->getValue());
}
$fact->setParameter('pages_count', $factPages);
$fact->setParameter('book', $progress->getParameter('book'));
}
}
/**
* @var $planRepo my\extas\plans\Repository
*/
$plan = $planRepo->one([IPlan::FIELD__ID => 'my.plan.some.id']);
if ($plan) {
$plan->addProgress([
'pages_count' => 20,
'book' => 'jeyroik/kb-plan/README.md'
]);
}