コード例 #1
0
/**
 * Create a dependency injection container function.
 *
 * @return the dependency injection container function
 */
function dependency_injection_container() : callable
{
    $container = sequence(decorate(container(), function (array $args) use(&$container) {
        if (is_callable($definition = $args[1] ?? null) && !($args[2] ?? false)) {
            $args[1] = call_once(set_args($definition, $container));
        }
        return $args;
    }), conditionally(is_callable, call_user_func, pass_through));
    return $container;
}
コード例 #2
0
ファイル: CacheRoute.php プロジェクト: v3u3i87/upadd
 /**
  * 判断是否更新缓存文件
  * @return bool
  * @throws UpaddException
  */
 public function is_up_file()
 {
     if (!file_exists($this->file) || filemtime($this->file) < filemtime($this->routeFile)) {
         $data = sequence($this->routeFile, true);
         if (!file_put_contents($this->file, $data)) {
             throw new UpaddException('路由缓存失败' . $this->file, 404);
         }
         return false;
     } else {
         return true;
     }
 }
コード例 #3
0
ファイル: funcy.php プロジェクト: Burgestrand/Funcy
function test_sequence()
{
    $a = function ($x) {
        return $x . 'a';
    };
    $b = function ($x) {
        return $x . 'b';
    };
    $c = function ($x) {
        return $x . 'c';
    };
    $fn = sequence($a, $b, $c);
    return is_identical($fn('d'), 'dabc');
}
コード例 #4
0
require 'vendor/autoload.php';
require 'utils.php';
echo 'The all method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result = Enumerable::from($sequence)->all(Criteria::gte(0)->and(Criteria::lte(10)));
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- all(Criteria::gte(0)->and(Criteria::lte(10)))? ' . boolToString($result) . PHP_EOL;
/*#########################################################################*/
echo 'The any method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result1 = Enumerable::from($sequence)->any(Criteria::eq(5));
$result2 = Enumerable::from($sequence)->any(Criteria::eq(11));
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- any(Criteria::eq(5))? ' . boolToString($result1) . PHP_EOL;
echo '- any(Criteria::eq(11))? ' . boolToString($result2) . PHP_EOL;
/*#########################################################################*/
echo 'The atLeast method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result1 = Enumerable::from($sequence)->atLeast(5, Criteria::gte(2)->and(Criteria::lte(6)));
$result2 = Enumerable::from($sequence)->atLeast(2, Criteria::eq(5));
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- atLeast(5, Criteria::gte(2)->and(Criteria::lte(6)))? ' . boolToString($result1) . PHP_EOL;
echo '- atLeast(2, Criteria::eq(5))? ' . boolToString($result2) . PHP_EOL;
/*#########################################################################*/
echo 'The contains method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result1 = Enumerable::from($sequence)->contains(5);
$result2 = Enumerable::from($sequence)->contains(10);
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- contains(5)? ' . boolToString($result1) . PHP_EOL;
echo '- contains(10)? ' . boolToString($result2) . PHP_EOL;
コード例 #5
0
function basic_review()
{
    return sequence(lesson(name('lesson 1'), filename('bolt_sample_lesson.php?n=1')), lesson(name('lesson 2'), filename('bolt_sample_lesson.php?n=2')));
}
コード例 #6
0
ファイル: tags.php プロジェクト: ConversionWorks/ExplainGTM
function getGeneralDetails($tag, $typeString = '', $whatItDoes = '')
{
    global $tagLibrary, $tagTypes, $container, $usedTriggers, $trigLibrary, $trigTypes, $untriggeredTags, $userIdUsed, $legacyTags, $folderArray, $usedUdvs, $udvUsage;
    $technicalDetails = '';
    $rawHTML = getParam($tag, 'html');
    $deets = '<table class="table table-bordered table-striped">';
    $deets = $deets . '<tr><th>Name</th><td>' . $tag['name'] . '</td></tr>';
    $deets = $deets . '<tr><th>Type</th><td>' . $typeString . '</td></tr>';
    $deets = $deets . '<tr><th>What it does</th>';
    if ($whatItDoes === '') {
        if ($rawHTML !== '') {
            $containsScript = strpos($rawHTML, '<script') > -1 ? 'contains JavaScript' : 'contains HTML';
            $deets = $deets . '<td>This tag ' . $containsScript . '. Being a custom tag, you need to make sure this is carefully reviewed by your developers.<br />';
            $deets = $deets . '<textarea class="form-control" rows="10" cols="60" disabled="disabled">' . $rawHTML . '</textarea></td></tr>';
            if (getParam($tag, 'supportDocumentWrite') === 'true') {
                $deets = $deets . '<tr><th></th><td>This tag supports document.write.</td></tr>';
            }
        }
        if (getParam($tag, 'trackType') !== '') {
            $deets = $deets . humanDetails(getParam($tag, 'trackType'), $tag);
        }
        if (getParam($tag, 'enableEcommerce') === 'true') {
            $deets = $deets . '<br />This tag uses Enhanced Ecommerce tracking features.<br />';
            if (getParam($tag, 'useEcommerceDataLayer') === 'true') {
                $deets = $deets . 'The Data Layer is used to record the Enhanced Ecommerce data (<b>Technical!</b>)<br />';
            } else {
                if (getParamTemplate($tag, 'ecommerceMacroData') !== '' && array_key_exists('value', getParamTemplate($tag, 'ecommerceMacroData'))) {
                    $deets = $deets . variablise(getParamTemplate($tag, 'ecommerceMacroData')['value'], $tag, true) . ' is used to record the Enhanced Ecommerce data (<b>Technical!</b>)<br />';
                }
            }
            $deets = $deets . '</td></tr>';
        } else {
            $deets = $deets . '</tr>';
        }
        if (getParam($tag, 'trackingId') !== '') {
            $deets = $deets . '<tr><th>The GA property ID is</th><td>' . translateToHuman(getParam($tag, 'trackingId'), $tag, true) . '</td></tr>';
        }
    } else {
        $deets = $deets . $whatItDoes;
    }
    $deets = $deets . '<tr><th>When it does it</th>';
    /******************************************************************************
       Firing triggers
       ******************************************************************************/
    if (array_key_exists('firingTriggerId', $tag) && count($tag['firingTriggerId']) > 0) {
        $triggerFound = false;
        $triggerLink = '';
        $firingTrigArray = [];
        if (count($tag['firingTriggerId']) > 1) {
            $triggerLink = '<td>This tag is fired by the following triggers:<ul>';
            foreach ($tag['firingTriggerId'] as $tagFiringKey => $tagFiringVal) {
                if (!array_search($tag['firingTriggerId'][$tagFiringKey], $usedTriggers)) {
                    array_push($usedTriggers, $tag['firingTriggerId'][$tagFiringKey]);
                }
                $triggerFound = false;
                foreach ($trigTypes as $trigTypeKey => $trigTypeVal) {
                    foreach ($trigLibrary[$trigTypeVal] as $trigKey => $trigVal) {
                        if ($tag['firingTriggerId'][$tagFiringKey] === $trigLibrary[$trigTypeVal][$trigKey]['triggerId']) {
                            $triggerLink = $triggerLink . buildTriggerLink($tag['firingTriggerId'][$tagFiringKey], '<li>', '</li> ', $trigLibrary, $trigTypes);
                            $triggerFound = true;
                        }
                    }
                }
                if ($triggerFound === false) {
                    $triggerLink = $triggerLink . '<li>Built-in <span title="This tag will fire on literally ALL PAGES!" style="background-color: #CCC"><b>All Pages</b></span> trigger.</li>';
                }
            }
            $deets = $deets . $triggerLink . '</ul></td></tr>';
        } else {
            if (!array_search($tag['firingTriggerId'][0], $usedTriggers)) {
                array_push($usedTriggers, $tag['firingTriggerId'][0]);
            }
            $triggerLink = buildTriggerLink($tag['firingTriggerId'][0], '<td>This tag is fired by the ', ' trigger. </td></tr>', $trigLibrary, $trigTypes);
            if ($triggerLink === '') {
                $deets = $deets . '<td>This tag is fired by the built-in <span title="This tag will fire on literally ALL PAGES!" style="background-color: #CCC"><b>All Pages</b></span> trigger.</td></tr>';
            } else {
                $deets = $deets . $triggerLink;
            }
        }
    } else {
        $deets = $deets . '<td>This tag <i>appears</i> to have <span title="This tag will NOT fire." style="background-color: #CCC"><b>no firing triggers</b></span>.</td></tr>';
        array_push($untriggeredTags, $tag);
    }
    /******************************************************************************
       Blocking triggers
       ******************************************************************************/
    if (array_key_exists('blockingTriggerId', $tag) && count($tag['blockingTriggerId']) > 0) {
        $deets = $deets . '<tr><th>When it is <b>stopped</b> from doing it</th>';
        $triggerFound = false;
        $blockingTrigArray = [];
        if (count($tag['blockingTriggerId']) > 1) {
            $triggerLink = '<td>This tag is blocked by the following triggers.<ul>';
            foreach ($tag['blockingTriggerId'] as $blockingTrigKey => $blockingTrigVal) {
                $triggerFound = false;
                foreach ($trigTypes as $trigTypeKey => $trigTypeVal) {
                    foreach ($trigLibrary[$trigTypeVal] as $trigKey => $trigVal) {
                        if ($tag['blockingTriggerId'][$blockingTrigKey] === $trigLibrary[$trigTypeVal][$trigKey]['triggerId']) {
                            $triggerLink = $triggerLink . buildTriggerLink($tag['blockingTriggerId'][$blockingTrigKey], '<li>', '</li> ');
                            $triggerFound = true;
                        }
                    }
                }
                if ($triggerFound === false) {
                    $triggerLink = $triggerLink . '<li>Built-in <span title="This tag will be blocked on literally ALL PAGES!" style="background-color: #CCC"><b>All Pages</b></span> trigger.</li>';
                }
            }
            $deets = $deets . $triggerLink . '</ul></td></tr>';
        } else {
            $triggerLink = buildTriggerLink($tag['blockingTriggerId'][0], '<td>This tag is <b>BLOCKED</b> by the ', ' trigger. </td></tr>', $trigLibrary, $trigTypes);
            if ($triggerLink === '') {
                $deets = $deets . '<td>This tag is <b>BLOCKED</b> by the built-in <span title="This tag be blocked on literally ALL PAGES!" style="background-color: #CCC"><b>All Pages</b></span> trigger.</td></tr>';
            } else {
                $deets = $deets . $triggerLink;
            }
        }
    }
    if (array_key_exists('scheduleStartMs', $tag)) {
        $deets = $deets . '<tr><th>Custom firing schedule start</th><td>The tag will only be live from ' . date('Y-m-d H:i:s', (int) $tag['scheduleStartMs'] / 1000);
        $nowDate = new DateTime();
        $startDate = new DateTime();
        $startDate->setTimestamp((int) $tag['scheduleStartMs'] / 1000);
        $interval = date_diff($nowDate, $startDate);
        if ($interval->invert === 1) {
            $deets = $deets . ' - this tag went live ' . $interval->format('%a days ago') . '.</td><tr>';
        }
        if ($interval->invert === 0) {
            $deets = $deets . ' - this will go live in ' . $interval->format('%a days') . '.</td><tr>';
        }
    }
    if (array_key_exists('scheduleEndMs', $tag)) {
        $deets = $deets . '<tr><th>Custom firing schedule end</th><td>The tag will only be live before ' . date('Y-m-d H:i:s', (int) $tag['scheduleEndMs'] / 1000);
        $nowDate = new DateTime();
        $endDate = new DateTime();
        $endDate->setTimestamp((int) $tag['scheduleEndMs'] / 1000);
        $interval = date_diff($nowDate, $endDate);
        if ($interval->invert === 1) {
            $deets = $deets . ' - this tag ended ' . $interval->format('%a days ago') . '. </td><tr>';
        }
        if ($interval->invert === 0) {
            $deets = $deets . ' - this tag will end in ' . $interval->format('%a days') . '.</td><tr>';
        }
    }
    /******************************************************************************
       Sequencing
       ******************************************************************************/
    $deets = $deets . sequence($tag);
    /******************************************************************************
       Firing priority
       ******************************************************************************/
    $deets = $deets . priority($tag);
    /******************************************************************************
       Firing Options
       ******************************************************************************/
    $humanFiringOption = array_key_exists('tagFiringOption', $tag) ? translateToHuman($tag['tagFiringOption'], $tag) : false;
    if ($humanFiringOption !== false) {
        $deets = $deets . '<tr><th></th><td>' . $humanFiringOption . '</td></tr>';
    }
    /******************************************************************************
       Published containers
       ******************************************************************************/
    if ($tag['liveOnly'] === 'true') {
        $deets = $deets . '<tr><th></th><td>This tag will only fire in published containers</td></tr>';
    }
    $deets = $deets . '<tr><th>Where it lives</th>';
    if (array_key_exists('parentFolderId', $tag)) {
        $deets = $deets . '<td>' . folderisation($tag['parentFolderId'], 'tag') . '</td></tr>';
    } else {
        $deets = $deets . '<td>' . folderisation(null, 'tag') . '</td></tr>';
    }
    if ($rawHTML !== '') {
        $varRefs = getVarRefs($rawHTML, $tag);
        if ($varRefs !== '') {
            $technicalDetails = $technicalDetails . 'Variables referenced in this tag:<br />' . $varRefs;
        }
    }
    /******************************************************************************
       Fields to Set (UA only)
       ******************************************************************************/
    $technicalDetails = $technicalDetails . fieldsToSet($tag);
    /******************************************************************************
       Custom Dimensions
       ******************************************************************************/
    $technicalDetails = $technicalDetails . dimensions($tag);
    /******************************************************************************
       Custom Metrics
       ******************************************************************************/
    $technicalDetails = $technicalDetails . metrics($tag);
    /******************************************************************************
       Custom Variables
       ******************************************************************************/
    $technicalDetails = $technicalDetails . cvars($tag);
    /******************************************************************************
       Mop up gnarly details
       ******************************************************************************/
    $technicalDetails = $technicalDetails . getGnarlyDetails($tag);
    if ($technicalDetails !== '') {
        $deets = $deets . '<tr><th></th><td>' . $technicalDetails . '</td></tr>';
    }
    $deets = $deets . '</table><br />';
    return $deets;
}
コード例 #7
0
ファイル: set-example.php プロジェクト: cubiche/cubiche
require 'vendor/autoload.php';
require 'utils.php';
echo 'The distinct method example.' . PHP_EOL;
$sequence = sequence(15, 0, 5);
$distinct = Enumerable::from($sequence)->distinct();
echo '- The original sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- The distinct sequence: ' . sequenceToString($distinct) . PHP_EOL;
/*#########################################################################*/
echo 'The except method example.' . PHP_EOL;
$first = sequence(15, 0, 5);
$second = sequence(5, 2, 4);
$except = Enumerable::from($first)->except($second);
echo '- The first sequence: ' . sequenceToString($first) . PHP_EOL;
echo '- The second sequence: ' . sequenceToString($second) . PHP_EOL;
echo '- The except sequence: ' . sequenceToString($except) . PHP_EOL;
/*#########################################################################*/
echo 'The intersect method example.' . PHP_EOL;
$first = sequence(15, 0, 5);
$second = sequence(5, 2, 4);
$intersect = Enumerable::from($first)->intersect($second);
echo '- The first sequence: ' . sequenceToString($first) . PHP_EOL;
echo '- The second sequence: ' . sequenceToString($second) . PHP_EOL;
echo '- The intersect sequence: ' . sequenceToString($intersect) . PHP_EOL;
/*#########################################################################*/
echo 'The union method example.' . PHP_EOL;
$first = sequence(10, 0, 5);
$second = sequence(10, 4, 8);
$union = Enumerable::from($first)->union($second);
echo '- The first sequence: ' . sequenceToString($first) . PHP_EOL;
echo '- The second sequence: ' . sequenceToString($second) . PHP_EOL;
echo '- The union sequence: ' . sequenceToString($union) . PHP_EOL;
コード例 #8
0
ファイル: web_helper.php プロジェクト: guitarpoet/clips-tool
function render_jsx($jsx, $id = null)
{
    if (!$id) {
        $id = 'jsx-' . sequence('jsx');
    }
    $content = "\n\t\t\t" . implode("\n\t\t\t", array_map(function ($item) {
        return trim($item);
    }, explode("\n", trim($jsx))));
    context('jsx_script', "React.render({$content}\n\t\t\t, document.getElementById('{$id}'));", true);
    return $id;
}