PHP code example of autorealm / faddle

1. Go to this page and download the library: Download autorealm/faddle 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/ */

    

autorealm / faddle example snippets




new Faddle\App();

$app->router->get('/hello/{name:str}', function ($name) {
    return 'Hello, ' . $name;
});

$app->run();

ini_set('allow_url_it', '64M'); //内存限制,可以根据服务器内存进行相应配置。
ini_set('short_open_tag', true); //使用短标签,打开它写模板更方便
ini_set('output_buffering', true); //使用输出缓存,默认也是打开的,姑且在开一下。

date_default_timezone_set('PRC'); //时区为中国

if (defined('DEBUG') && DEBUG) {
    @set_time_limit(90);
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
} else {
    ini_set('display_errors', 0);
}



defined('APP_PATH') or define('APP_PATH', '/path/to/app');

defined('WEB_ROOT') or define('WEB_ROOT', $_SERVER['DOCUMENT_ROOT']);
defined('DS') or define('DS', DIRECTORY_SEPARATOR);

set_

$view_config = array(
        'suffix' => ['.view.php', '.faddle.php'], //模板文件后缀名(需要带上点号)
        'template_path' => WEB_ROOT . DS . 'templates', //模板文件夹位置(不能使用相对位置)
        'engine' => 'faddle', //模板引擎名称(这里无需变动)
        'static_cache' => false, //是否开启静态缓存(开启后将缓存经解析的静态内容)
        'storage_path' => 'views', //静态缓存输出路径(不能使用相对位置)
        'storage_expires' => 3600, //静态缓存过期时间(秒)
        'cache' => false, //是否开启动态缓存
        'cache_path' => 'views', //动态缓存路径(或作为 cache_driver 的 key 前缀)
        'cache_driver' => null, //缓存驱动器对象(未指定则使用文件缓存)
        'cache_expires' => 7200, //动态缓存过期时间(秒)
    );

$app->on('error', function($err) use ($app) {
    if (! $err) return;
    if ($err instanceof \Exception or $err instanceof \Error) {
        $log = $err->getMessage() ."\n";
        $log .= '@file: ' . $err->getFile() . ' #' . $err->getLine() . '';
        write_log($log, get_class($err), LOGS_DIR, 'error-');
        if (DEBUG) echo \Faddle\Middleware\PrettyExceptions::renderBody($err);
    } else {
        write_log(print_r($err, true), get_class($err), LOGS_DIR, 'error-');
        if (DEBUG) var_dump($err);
    }
});

set_exception_handler(function($e) {
    // handle the $e
});

$app = new Faddle\App(
    realpath(__DIR__.'/../'),
    false
);

$app->g('is_mobile', \Faddle\Common\Util\HttpUtils::is_mobile());
// 直接使用 $app->is_mobile; 即返回 boolean 值表示客户端是否是使用移动设备。
$app->logger = call_user_func(function() {
    $log_file = LOGS_DIR . '/app-debug.log';
    $new_log_name = LOGS_DIR . '/app-debug-' . date('Ymd', strtotime('-1 day')) . '.log';
    if (file_exists($log_file)) {
        $log_time = filemtime($log_file);
        if (date('d') != date('d', $log_time)) {
            rename($log_file, $new_log_name);
        }
    }
    return Faddle\Common\SimpleLogger::Filelog($log_file);
});
// 记录日志使用 $app->logger->debug('this is logger output.');


$app->register('init_view', function() use ($app) {
    static $view;
    if (isset($view)) return $view;
    $_config = r');
$app->register('render', function($tpl, $data=array()) use ($app) {
    $view = $app->init_view();
    $app->event->fire('before_render', $view);
    return $view->show($tpl, $data);
});

$app->share(function($app) {
    {
    if (file_exists(SERVES_PATH . '/routes.php')) {
        load(SERVES_PATH . '/serves.json');
    }
});

$app->on('present', function($data) use ($app) {
        if (is_object($data)) $data = get_object_vars($data);
        $result = array(
            'result' => $data
            );
        
        $resp = array(
            'version' => '2.0'
        );
        $resp = array_merge($resp, $result);
        //header('Content-Type: application/json');
        
        return json_encode($resp, JSON_UNESCAPED_UNICODE);
    });

$router = $app->router;
$router->get('/post/{:int}', 'BlogController@post');