コード例 #1
0
ファイル: JSON.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description: 
 * @package Codeine
 * @version 8.x
 * @date 13.08.11
 * @time 22:37
 */
setFn('Open', function ($Call) {
    return jd(file_get_contents(F::findFile($Call['Filename'])), true);
});
setFn('Read', function ($Call) {
    if (isset($Call['Where']['ID'])) {
        return $Call['Link'][$Call['Where']['ID']];
    } else {
        return $Call['Link'];
    }
});
setFn('Write', function ($Call) {
});
setFn('Close', function ($Call) {
    return true;
});
コード例 #2
0
ファイル: Asset.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description  
 * @package Codeine
 * @version 8.x
 */
setFn('Get', function ($Call) {
    $Call['HTTP']['Headers']['Access-Control-Allow-Origin:'] = '*';
    // FIXME
    $Call['Output']['Content'] = F::findFile('/Assets/' . strtr($Call['Asset'], '.', DS) . DS . $Call['Scope'] . DS . $Call['ID'] . '.' . $Call['Extension']);
    return $Call;
});
コード例 #3
0
ファイル: File.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description: 
 * @package Codeine
 * @version 8.x
 * @date 13.08.11
 * @time 22:37
 */
setFn('Open', function ($Call) {
    return file(F::findFile($Call['Filename']));
});
setFn('Read', function ($Call) {
    if (isset($Call['Where']['ID'])) {
        return $Call['Link'][$Call['Where']['ID']];
    } else {
        return $Call['Link'];
    }
});
setFn('Write', function ($Call) {
    if (isset($Call['Where']['ID'])) {
        $Call['Link'][$Call['Where']['ID']] = implode(PHP_EOL, $Call['Data']);
    } else {
        $Call['Link'] = implode(PHP_EOL, $Call['Data']);
    }
    if ($Call['Link'] === null) {
        return unlink($Call['Filename']);
    } else {
        return file_put_contents(Root . $Call['Filename'], $Call['Link']);
    }
コード例 #4
0
ファイル: FileSystem.php プロジェクト: trickyplan/codeine
            }
        }
    }
    return null;
});
setFn('Filename', function ($Call) {
    $Call = F::Hook('beforeFileSystemOperation', $Call);
    return DS . array_pop($Call['Where']['ID']);
});
setFn('Exist', function ($Call) {
    $Call = F::Hook('beforeFileSystemOperation', $Call);
    if (empty($Call['Where']['ID'])) {
        $Call['Result'] = false;
    } else {
        foreach ($Call['Where']['ID'] as $ID) {
            $Filename = F::findFile($Call['Link'] . DS . $ID);
            $Call['Result'] = F::file_exists($Filename);
        }
    }
    $Call = F::Hook('afterFileSystemOperation', $Call);
    return $Call['Result'];
});
setFn('Status', function ($Call) {
    $Call = F::Hook('beforeFileSystemOperation', $Call);
    $ic = 0;
    $Directory = new RecursiveDirectoryIterator(Root . '/' . $Call['Path']);
    $Iterator = new RecursiveIteratorIterator($Directory);
    $Regex = new RegexIterator($Iterator, '/' . $Call['Prefix'] . '(.+)' . $Call['Postfix'] . '$/i', RecursiveRegexIterator::GET_MATCH);
    foreach ($Regex as $File) {
        $ic++;
    }
コード例 #5
0
ファイル: Test.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description  
 * @package Codeine
 * @version 8.x
 */
setFn('Run', function ($Call) {
    $Test = jd(file_get_contents(F::findFile('Tests/' . $Call['Test']['Name'] . '.json')));
    $Call['Test']['Report'] = [];
    $Call['Test']['Name'] = str_replace('.json', '', $Call['Test']['Name']);
    $Call['Test']['Name'] = strtr($Call['Test']['Name'], '/', '.');
    if (isset($Test) && isset($Test['Suites'])) {
        F::Log('Test *' . $Call['Test']['Name'] . '* loaded', LOG_INFO);
        foreach ($Test['Suites'] as $SuiteName => $Suite) {
            foreach ($Suite as $CaseName => $Call['Case']) {
                $Call['Case']['Result']['Actual'] = F::Live($Call['Case']['Run'], $Call);
                if (isset($Call['Case']['Output']['Content'])) {
                    $Call['Case']['Result']['Actual'] = print_r($Call['Return']['Output']['Content'], true);
                }
                foreach ($Call['Case']['Assert'] as $Assert => $Call['Checker']) {
                    $TestTime = microtime(true);
                    // FIXME
                    $Call['Decision'] = F::Run('Test.Assert.' . $Assert, 'Do', $Call);
                    $TestTime = microtime(true) - $TestTime;
                }
                if (isset($Call['Case']['Result Key'])) {
                    $Call['Case']['Result']['Actual'] = F::Dot($Call['Case']['Result']['Actual'], $Call['Case']['Result Key']);
                }
                $Call['Test']['Report'][$Call['Test']['Name'] . $SuiteName . $CaseName] = [$Call['Test']['Name'], $SuiteName, $CaseName, '<pre>' . j($Call['Case']['Result']['Actual']) . '</pre>', round($TestTime, 5) * 1000, '_Class' => $Call['Decision'] ? 'success' : 'danger'];
コード例 #6
0
ファイル: OldDirectory.php プロジェクト: trickyplan/codeine
    } else {
        return null;
    }
});
setFn('Exist', function ($Call) {
    if (!isset($Call['Scope'])) {
        $Call['Scope'] = 'Default';
    } else {
        if (is_array($Call['Scope'])) {
            $Call['Scope'] = implode(DS, $Call['Scope']);
        }
    }
    $Postfix = isset($Call['Postfix']) ? $Call['Postfix'] : '';
    $Prefix = isset($Call['Prefix']) ? $Call['Prefix'] : '';
    if (!empty($Call['Where']['ID'])) {
        $Filename = F::findFile($Call['Link'] . '/' . $Call['Scope'] . '/' . $Prefix . $Call['Where']['ID'] . $Postfix);
        return F::file_exists($Filename);
    } else {
        return false;
    }
});
setFn('Status', function ($Call) {
    if (!isset($Call['Scope'])) {
        $Call['Scope'] = 'Default';
    } else {
        if (is_array($Call['Scope'])) {
            $Call['Scope'] = implode(DS, $Call['Scope']);
        }
    }
    $Postfix = isset($Call['Postfix']) ? $Call['Postfix'] : '';
    $Prefix = isset($Call['Prefix']) ? $Call['Prefix'] : '';
コード例 #7
0
ファイル: FlagByIP.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description  
 * @package Codeine
 * @version 8.x
 */
setFn('Get', function ($Call) {
    $Country = strtolower(F::Run('System.GeoIP', 'Country', $Call));
    $Flag = F::findFile('Assets/Country/img/flags/' . $Country . '.png');
    if ($Flag) {
    } else {
        $Flag = F::findFile('/Assets/Country/img/flags/un.png');
    }
    $Call['Output']['Content'] = $Flag;
    return $Call;
});
コード例 #8
0
ファイル: LESS.php プロジェクト: trickyplan/codeine
/* Codeine
 * @author bergstein@trickyplan.com
 * @description  
 * @package Codeine
 * @version 8.x
 */
setFn('Check', function ($Call) {
    list($Asset, $ID) = F::Run('View', 'Asset.Route', ['Value' => $Call['CSS Name']]);
    $LESS = F::Run('IO', 'Execute', ['Execute' => 'Exist', 'Storage' => 'LESS', 'Scope' => [$Asset, 'less'], 'Where' => $ID]);
    if ($LESS === null) {
        F::Log('LESS *not found* ' . Root . '/Assets/' . $Asset . '/less/' . $ID . '.less', LOG_DEBUG, 'Developer');
    } else {
        $LESSVersion = F::Run('IO', 'Execute', ['Execute' => 'Version', 'Storage' => 'LESS', 'Scope' => [$Asset, 'less'], 'Where' => $ID]);
        $CSSVersion = F::Run('IO', 'Execute', ['Execute' => 'Version', 'Storage' => 'CSS', 'Scope' => [$Asset, 'css'], 'Where' => $ID]);
        if ($LESSVersion > $CSSVersion or isset($Call['HTTP']['Request']['Headers']['Pragma']) && $Call['HTTP']['Request']['Headers']['Pragma'] == 'no-cache') {
            // FIXME! Temporary decision.
            if ($LessPath = F::findFile('/Assets/' . $Asset . '/less/' . $ID . '.less')) {
                $Command = 'lessc ' . $LessPath;
                // $Command = 'lessc --clean-css ' .Root.'/Assets/'.$Asset.'/less/'.$ID.'.less > '.Root.'/Assets/'.$Asset.'/css/'.$ID.'.min.css';
                // shell_exec($Command);
                F::Log('LESS *processed* ' . Root . '/Assets/' . $Asset . '/less/' . $ID . '.less', LOG_INFO, 'Developer');
                F::Log($Command, LOG_INFO, 'Developer');
                $Call['CSS']['Styles'][$Call['CSS Name']] = shell_exec($Command);
            }
        } else {
            F::Log('LESS *skipped* ' . Root . '/Assets/' . $Asset . '/css/' . $ID . '.css', LOG_INFO, 'Developer');
        }
    }
    return $Call;
});
コード例 #9
0
ファイル: Download.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description  
 * @package Codeine
 * @version 8.x
 */
setFn('Before', function ($Call) {
    $Call['Where'] = F::Live($Call['Where']);
    $Call['Data'] = F::Run('Entity', 'Read', $Call, ['One' => true, 'Limit' => ['From' => 0, 'To' => 1]]);
    return $Call;
});
setFn('Do', function ($Call) {
    $Call['Output']['Content'] = F::findFile('Data/' . $Call['Entity'] . '/File/' . $Call['Data']['File']);
    return $Call;
});
コード例 #10
0
ファイル: Verbal.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description Date() engine 
 * @package Codeine
 * @version 8.x
 */
setFn('Format', function ($Call) {
    $Values = file(F::findFile('Assets/Formats/Date/Verbal/Locale/ru/values.csv'));
    $H = date('H', $Call['Value']);
    $M = date('m', $Call['Value']);
    $IX = $H * 60 + $M;
    if (isset($Values[$IX])) {
        $Variants = explode(',', $Values[$IX]);
        return mb_strtolower($Variants[array_rand($Variants)]);
    } else {
        return null;
    }
});
コード例 #11
0
ファイル: Beacon.php プロジェクト: trickyplan/codeine
<?php

/* Codeine
 * @author bergstein@trickyplan.com
 * @description  
 * @package Codeine
 * @version 8.x
 */
setFn('Do', function ($Call) {
    $Call['Output']['Content'] = F::findFile($Call['Project']['Beacon']['URL']);
    return $Call;
});