* * @todo ******************** bump version 0.1.0-beta * * ------------------------- future enhancements * * @todo add scrubbing control to now playing page * @todo desktop pc layout * */ use PHPMPDClient\MPD; // @todo remove this line // clear the template cache array_map("unlink", glob(Config::get('app.template-cache-path') . "*.rtpl.php")); // instantiate the router class // $klein = new \Klein\Klein(); // load the artist routes require_once 'routes/artist.php'; // load the album routes require_once 'routes/album.php'; // load the genre routes require_once 'routes/genre.php'; // load the song routes require_once 'routes/song.php'; // load the playlist routes require_once 'routes/playlist.php'; // load the "now playing" routes require_once 'routes/now-playing.php'; $klein->respond('GET', '/show-tables', function () { Kint::dump(Database::query("SELECT name FROM sqlite_master WHERE type='table';")); });
<?php // Подключение библиотек require_once "vendor-php/autoload.php"; $router = new \Klein\Klein(); // перенаправление по url с помощью виртуального "роутера" $templater = Templater::getInstance(); // привязка шаблонизатора к этому роутеру $config = (include_once 'config/config.php'); // подключение файла конфигурации // Перенаправление на страницы по ссылкам $router->respond('GET', '/?', function () use($templater, $config) { $data = array(); $data['config'] = $config; // импорт настроек из файла конфигурации $data['sitename'] = 'Здоровый образ жизни'; $data['pagename'] = 'Главная страница'; $data['title'] = $data['pagename'] . ' | ' . $data['sitename']; $data['current'] = 'index'; // название текущей страницы, чтобы переключать классы в пунктах меню // Получение данных из БД с помощью библиотеки Idiorm // Подключение к БД ORM::configure(array('connection_string' => 'mysql:host=' . $config['database']['host'] . ';dbname=' . $config['database']['dbname'], 'username' => $config['database']['user'], 'password' => $config['database']['password'])); // Сбор значений таблицы $newsItems = ORM::for_table('news')->find_many(); $data['newsitems'] = $newsItems; return $templater->display('_pages/index', $data); }); $router->respond('GET', '/areas/?', function () use($templater, $config) { $data = array(); $data['config'] = $config;
<?php session_start(); require_once __DIR__ . '/vendor/autoload.php'; /** * Routes of the apps. * Handle all routes of the apps in (app/controllers/routes.php). * @var Klein */ $route = new Klein\Klein(); require_once 'app/controllers/routes.php'; $route->dispatch();
<?php // load the autoloader require_once 'vendor/autoload.php'; require_once 'bootstrap.php'; // get the arguments from the command line $args = $argv; // remove the first element (which is the script name) array_shift($args); // load the list of commands $commands = Config::get('cli.commands'); // build the request // here I'm "tricking" the routing system into routing a non-HTTP request $request = new \Klein\Request(array(), array(), array(), array('REQUEST_URI' => '/' . implode('/', $args))); // instantiate the Klein router $klein = new \Klein\Klein(); // now add the commands to the router foreach ($commands as $value => $method) { // set up a responder // This responder will handle any URI of the form /$value/x/y/z/.... and // will pass any arguments to the specified method. $klein->respond('GET', "/{$value}/[*]?", function ($request, $response) use($method) { // get the arguments $args = array(); if ($request->uri()) { // explode the arguments $args = explode('/', $request->uri()); // remove any empty values $args = array_values(array_filter($args)); // remove the first element (which is the command) array_shift($args);
<?php require_once 'vendor/autoload.php'; require_once './inc/Bootstrap.php'; require_once './lib/Model/queries.php'; Bootstrap::start(); // FIXME: apis use PDO in some case which requires a different connection // object than the one instantiated by Database::obtain. require_once 'lib/Model/PDOConnection.php'; PDOConnection::connectINIT(); $db = Database::obtain(INIT::$DB_SERVER, INIT::$DB_USER, INIT::$DB_PASS, INIT::$DB_DATABASE); $db->connect(); Log::$uniqID = uniqid(); $klein = new \Klein\Klein(); // This is unreleased APIs. I'm no longer fond of the [i:id_job] in the path, // so before releasing change it use a querystring. // $klein->respond('GET', '/api/v2/jobs/[i:id_job]/revision-data', function () { $reflect = new ReflectionClass('API_V2_JobRevisionData'); $instance = $reflect->newInstanceArgs(func_get_args()); $instance->respond('revisionData'); }); $klein->respond('GET', '/api/v2/jobs/[i:id_job]/revision-data/segments', function () { $reflect = new ReflectionClass('API_V2_JobRevisionData'); $instance = $reflect->newInstanceArgs(func_get_args()); $instance->respond('segments'); }); $klein->respond('GET', '/api/v2/project-completion-status/[i:id_project]', function () { $reflect = new ReflectionClass('API_V2_ProjectCompletionStatus'); $instance = $reflect->newInstanceArgs(func_get_args()); $instance->respond('status');
<?php $klein = new \Klein\Klein(); $klein->respond('GET', '/', function () { return 'Hello World!'; }); $klein->dispatch();
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes.php"; $klein = new \Klein\Klein(); $klein->respond("/?", function ($request, $response, $service) { $response->header("X-PJAX-URL", $request->pathname()); disableCache($response); $data = array('pageTitle' => 'OpenCTF Test Page', 'viewName' => "test", "path" => $request->pathname(), "current" => "test"); if ($request->headers()['X-PJAX']) { $service->layout('views/pjax-wrapper.phtml'); } else { $service->layout('views/layout-wrapper.phtml'); } $service->render('views/' . $data['viewName'] . '.phtml', $data); }); $klein->respond("/login/?", function ($request, $response, $service) { $response->header("X-PJAX-URL", $request->pathname()); disableCache($response); $data = array('pageTitle' => 'OpenCTF Test Page', 'viewName' => "login", "path" => $request->pathname(), "current" => "login"); if ($request->headers()['X-PJAX']) { $service->layout('views/pjax-wrapper.phtml'); } else { $service->layout('views/layout-wrapper.phtml'); } $service->render('views/' . $data['viewName'] . '.phtml', $data); }); $klein->respond("/register/[verify-email|team-pick:extra]?/?", function ($request, $response, $service) { $response->header("X-PJAX-URL", $request->pathname()); disableCache($response); if ($request->extra == "team-pick") { $teamPick = true;
<?php $router = new \Klein\Klein(); // Главная страница $router->respond('GET', '/', function () { $controller = new Controller_Main(); return $controller->action_index(); }); // Страница каталога $router->respond(array('GET', 'POST'), '/products/?', function ($request, $response) { $controller = new Controller_Products(); $messages = ['success_message' => '', 'error_message' => '']; $action = $request->action; switch ($action) { case 'new': if (!empty($_POST['title'])) { $messages = $controller->addCategory($request->title); } else { $messages['error_message'] = 'Укажите имя категории'; } break; case 'edit': if (!empty($_POST['title'])) { $messages = $controller->editCategory($request->id, $request->title); } else { $messages['error_message'] = 'Укажите имя категории'; } break; case 'delete': $messages = $controller->deleteCategory($request->id); break;
/** * Старт приложения * * @return null * * @version 11.11.2016 * @author Дмитрий Щербаков <*****@*****.**> */ public function start() { // // ,, // mm mm db // MM MM // ,pP"Ybd .gP"Ya mmMMmm mmMMmm `7MM `7MMpMMMb. .P"Ybmmm ,pP"Ybd // 8I `" ,M' Yb MM MM MM MM MM :MI I8 8I `" // `YMMMa. 8M"""""" MM MM MM MM MM WmmmP" `YMMMa. // L. I8 YM. , MM MM MM MM MM 8M L. I8 // M9mmmP' `Mbmmd' `Mbmo `Mbmo.JMML..JMML JMML.YMMMMMb M9mmmP' // 6' dP // Ybmmmd' // Устанавливаем часовой пояс по Гринвичу date_default_timezone_set('UTC'); // Где будут хранится php сессии (в файлах или в БД) if (Settings::PHP_SESSION === 'DB') { $session = new \Zebra_Session(mysqli_connect(Settings::DB_HOST, Settings::DB_USER, Settings::DB_PASSWORD, Settings::DB_DATABASE, Settings::DB_PORT), 'AVuVqYR6uwgEuhV79tln0tlKk'); } else { session_start(); } // Включим страницу с ошибками, если включен режим DEBUG if (Settings::DEBUG === true) { $whoops = new \Whoops\Run(); $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler()); $whoops->register(); } // Настраиваем соединение с БД \ORM::configure(['connection_string' => 'mysql:host=' . Settings::DB_HOST . ';port=' . Settings::DB_PORT . ';dbname=' . Settings::DB_DATABASE, 'username' => Settings::DB_USER, 'password' => Settings::DB_PASSWORD, 'logging' => Settings::DEBUG, 'driver_options' => [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']]); // Инициализируем CSRF-токен $csrf = new \DimNS\SimpleCSRF(); $this->csrf_token = $csrf->getToken(); // Определим корневую папку, если переменная не пустая if (Settings::PATH_SHORT_ROOT != '/') { $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen(Settings::PATH_SHORT_ROOT)); } // Инициируем роутер $klein = new \Klein\Klein(); // // // `7MM"""Yb. `7MMF' // MM `Yb. MM // MM `Mb MM // MM MM MM // MM ,MP MM // MM ,dP' MM // .JMMmmmdP' .JMML. // // // Создаем DI $klein->respond(function ($request, $response, $service, $di) use($csrf) { // Регистрируем доступ к настройкам $di->register('cfg', function () { return new \MFLPHP\Configs\Config(); }); // Регистрируем доступ к управлению пользователем $di->register('auth', function () { $dbh = new \PDO('mysql:host=' . Settings::DB_HOST . ';port=' . Settings::DB_PORT . ';dbname=' . Settings::DB_DATABASE, Settings::DB_USER, Settings::DB_PASSWORD, [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']); return new \PHPAuth\Auth($dbh, new \PHPAuth\Config($dbh, 'phpauth_config'), 'ru_RU'); }); // Регистрируем доступ к информации о пользователе $di->register('userinfo', function () use($di) { if ($di->auth->isLogged()) { $user_id = $di->auth->getSessionUID($di->auth->getSessionHash()); $user_info = \ORM::for_table('users')->join('users_info', array('users.id', '=', 'users_info.uid'))->where_equal('id', $user_id)->find_one(); if (is_object($user_info)) { return $user_info; } } return false; }); // Регистрируем доступ к PHPMailer $di->register('phpmailer', function () use($di) { $phpmailer = new \PHPMailer(); $phpmailer->setLanguage('ru', $di->cfg->abs_root_path . 'vendor/phpmailer/phpmailer/language/'); $phpmailer->IsHTML(true); $phpmailer->CharSet = 'windows-1251'; $phpmailer->From = $di->auth->config->site_email; $phpmailer->FromName = iconv('utf-8', 'windows-1251', $di->auth->config->site_name); if ('1' == $di->auth->config->smtp) { $phpmailer->IsSMTP(); $phpmailer->SMTPDebug = 0; $phpmailer->SMTPAuth = true; $phpmailer->SMTPSecure = $di->auth->config->smtp_security; $phpmailer->Host = $di->auth->config->smtp_host; $phpmailer->Port = $di->auth->config->smtp_port; $phpmailer->Username = $di->auth->config->smtp_username; $phpmailer->Password = $di->auth->config->smtp_password; } return $phpmailer; }); // Регистрируем доступ к отправке почты $di->register('mail', function () use($di) { return new \MFLPHP\Helpers\EmailSender($di); }); // Регистрируем доступ к логгеру Monolog $di->register('log', function () use($di) { $log = new \Monolog\Logger('MainLog'); $log->pushHandler(new \Monolog\Handler\StreamHandler($di->cfg->abs_root_path . 'errors.log', \Monolog\Logger::WARNING)); return $log; }); // Регистрируем доступ к проверке CSRF-токена $di->register('csrf', function () use($csrf) { return $csrf; }); $views_path = $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app/Views/'; $service->layout($views_path . 'layout-default.php'); $service->csrf_token = $this->csrf_token; $service->path = Settings::PATH_SHORT_ROOT; $service->app_root_path = $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app'; }); // // // mm // MM // `7Mb,od8 ,pW"Wq.`7MM `7MM mmMMmm .gP"Ya ,pP"Ybd // MM' "'6W' `Wb MM MM MM ,M' Yb 8I `" // MM 8M M8 MM MM MM 8M"""""" `YMMMa. // MM YA. ,A9 MM MM MM YM. , L. I8 // .JMML. `Ybmd9' `Mbod"YML. `Mbmo`Mbmmd' M9mmmP' // // require_once $_SERVER['DOCUMENT_ROOT'] . Settings::PATH_SHORT_ROOT . 'app/Routes.php'; // // // // // `7Mb,od8 `7MM `7MM `7MMpMMMb. // MM' "' MM MM MM MM // MM MM MM MM MM // MM MM MM MM MM // .JMML. `Mbod"YML..JMML JMML. // // $klein->dispatch(); }
<?php require_once __DIR__ . '/../vendor/autoload.php'; // Templating engine $loader = new Twig_Loader_Filesystem('../templates/'); $twig = new Twig_Environment($loader); //Router $klein = new \Klein\Klein(); $klein->respond('GET', '/', function () { global $twig; return $twig->render('index.html', array('name' => 'nemanjan00')); }); $klein->respond('GET', '/app/[*]', function () { global $twig; return $twig->render('index.html', array('name' => 'nemanjan00')); }); // Handle errors $klein->onHttpError(function ($code, $router) { switch ($code) { case 404: $router->response()->body('Y U so lost?!'); break; case 405: $router->response()->body('You can\'t do that!'); break; default: $router->response()->body('Oh no, a bad error happened that caused a ' . $code); } }); $klein->dispatch();
<?php use Klein\Request; use Klein\Response; use Klein\ServiceProvider; use App\Controllers\MainController; $app = new \Klein\Klein(); $app->get('/', function () { return 'Active directory tool'; }); $app->get('/newUpdate', function (Request $req, Response $resp, ServiceProvider $service, $app) { $service->render('../views/views/updateFields.phtml', []); }); $app->post('/update', function (Request $req, Response $resp, ServiceProvider $service, $app) { $params = $req->paramsPost()->all(); echo $params['adFields']; //$service->render('../views/views/updateFields.phtml', []); }); $app->post('/updReport', function (Request $req, Response $resp, ServiceProvider $service, $app) { $mainController = new MainController(); $service->render('../views/views/updateReport.phtml', ['fromAD' => $mainController->getUpdateReport($req)]); /* $params = $req->paramsPost()->all(); echo $params['adFields']; echo '<br>'; echo $params['newVal']; echo '<br>'; echo $params['excludeEmpty']; aa(); */ });
<?php require_once 'vendor/autoload.php'; $klein = new Klein\Klein(); date_default_timezone_set('Europe/Dublin'); $klein->respond(function ($request, $response, $service) { $service->layout('layouts/base.php'); }); $klein->respond('/api/popular/destinationProfits', function () { $f = new \AriesAir\Finance(); return $f->getDestinationProfits(); }); $klein->respond('/api/popular/averageTicketPrice', function () { $f = new \AriesAir\Finance(); return $f->getAverageTicketPrice(); }); $klein->respond('/api/popular/averageMonthlyTicketPrice', function () { $f = new \AriesAir\Finance(); return $f->getAverageMonthlyTicketPrice(); }); $klein->respond('/api/popular/averageYearlyTicketCompare', function () { $f = new \AriesAir\Finance(); return $f->getAverageYearlyTicketCompare(); }); $klein->respond('/api/ratings', function () { $cs = new \AriesAir\CustomerService(); return $cs->customerRatings(); }); $klein->respond('/api/aoi', function () { $cs = new \AriesAir\CustomerService(); return $cs->customerSuggestions();
define('BASE_DIR', dirname(__FILE__)); define('BASE_URL', 'http://' . $_SERVER['HTTP_HOST'] . str_replace('/index.php', '', $_SERVER['PHP_SELF'])); include_once 'vendor/autoload.php'; if (ENVIRONMENT != 'production') { /** * ROUTING */ $base = dirname($_SERVER['PHP_SELF']); // Update request when we have a subdirectory if (ltrim($base, '/')) { $base = str_replace(' ', '%20', $base); $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen($base)); } } // Dispatch as always $klein = new \Klein\Klein(); /** * Default controller & method */ $klein->respond('/', function () { //forward to home/index $controller = new Krikke\SlackEvent\Controller\Home(); $controller->index(); }); /** * Fetch custom controller & method * * http://symfony.com/doc/current/components/routing/introduction.html (dynamische controller) */ $klein->respond('/[:controller]/[:method]?/[:action]?/[:value]?/?', function ($request) { $class = '\\Krikke\\SlackEvent\\Controller\\' . ucfirst($request->controller);
<?php $pattern = ROOT . DS . 'app' . DS . 'models' . DS . '*.php'; $models = array(); foreach (glob($pattern) as $file) { $class = basename($file, '.php'); if ($class != 'Model') { array_push($models, $class); } } $klein = new \Klein\Klein(); // This is where RESTful routes are mapped by Klein foreach ($models as $model) { $modelName = strtolower($model); $mainUrl = '/' . $modelName; $resourceUrl = '/' . $modelName . '/' . '[:id]'; $controllerName = $model . 'Controller'; $controller = new $controllerName(); if ($model::$get_all_enabled) { $klein->respond('get', $mainUrl, function ($request) use($controller) { $controller->getAll(); }); } if ($model::$get_enabled) { $klein->respond('get', $resourceUrl, function ($request) use($controller) { $controller->get($request->id); }); } if ($model::$create_enabled) { $klein->respond('post', $mainUrl, function ($request) use($controller) { $postParams = json_decode(file_get_contents('php://input'));
<?php ///////////// //SETTINGS // ///////////// const CONTACT_EMAIL = '*****@*****.**'; const UPLOAD_DIR = 'uploads/'; const UPLOAD_ALLOWED_EXTENSIONS = 'doc docx pdf xml jpg jpeg png gif txt rtf'; const UPLOAD_MAX_FILESIZE = 25000000; ////////// //SETUP // ////////// require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/class/loader.php'; require_once __DIR__ . '/data.php'; $klein = new \Klein\Klein(); $klein->app()->renderer = new MustacheTemplateRenderer('templates', 'templates/partials', ['page' => 'templates/partials/pages']); $routes = $klein->app()->routeData = json_decode(file_get_contents('routes.json'), true); $klein->app()->prg = new FormPersister(); $klein->app()->mailer = Swift_Mailer::newInstance(Swift_SendmailTransport::newInstance()); $klein->app()->moddates = ['css' => filemtime('css/main.css'), 'js' => filemtime('js/main.js')]; $klein->app()->data = $data; $klein->app()->production = !!apache_getenv('PRODUCTION'); ///////////////// //BASIC ROUTES // ///////////////// $klein->respond('GET', '/', function ($req, $resp, $service, $app) { $routeData = $app->routeData; $routeData['about']['active'] = true; return $app->renderer->render('about', ['routes' => $routeData, 'moddates' => $app->moddates, 'production' => $app->production, 'data' => $app->data]); });
<?php /** * Created by Svyatoslav Svitlychnyi. * Date: 21.07.2015 * Time: 11:34 */ require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/models/Records.php'; $klein = new \Klein\Klein(); //$app = new \Models\Records(); // lazy services $klein->respond(function ($request, $response, $service, $app) { $app->register('db', function () { try { $connection = new PDO("mysql:host=localhost;dbname=kievdevel_zam", 'kievdevel_zam', 'zaq12wsx'); } catch (PDOException $exception) { echo "Connection error: " . $exception->getMessage(); } return $connection; }); // todo: register validators }); // index $klein->respond('GET', '/', function ($request, $response, $service, $app) { /**@var \PDO $db PDO Object */ $db = $app->db; $query = "SELECT * FROM notes"; $stmt = $db->prepare($query); $stmt->execute(); $num = $stmt->rowCount();
<?php require_once __DIR__ . '/vendor/autoload.php'; $router = new \Klein\Klein(); require_once $_SERVER['DOCUMENT_ROOT'] . '/routes/home/home.router.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/routes/account/account.router.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/routes/download/download.router.php'; $router->dispatch(); /* */
<?php use Klein\Request; use Klein\Response; use Klein\ServiceProvider; $klein = new \Klein\Klein(); require_once 'default_controller.php'; $klein->get('/', function (Request $request, Response $response, ServiceProvider $service, $app) { $error = ''; $messages = $service->flashes('error'); if (isset($messages[0])) { $error = $messages[0]; } return $app->view->render('login.html', ['error' => $error]); }); $klein->get('/auth', function (Request $request, Response $response, $service, $app) { return $response->redirect('/'); }); $klein->post('/auth', function (Request $request, Response $response, $service, $app) { $access = $app->auth->loginValidator($request); if (!$access) { $service->flash('Wrong username and/or password.', 'error'); return $response->redirect('/'); } else { $importedReport = getenv('REPORT_NAME'); if (file_exists(ROOT . '/storage/' . $importedReport)) { $report = $importedReport; } else { $report = false; } return $app->view->render($access . '.html', ['report' => $report, 'user' => getenv('USERNAME'), 'admin' => getenv('ADMIN-USERNAME')]);
Debugger::enable(Debugger::DEVELOPMENT, SRC_DIR . '/logs'); } else { Debugger::enable(Debugger::DETECT, SRC_DIR . '/logs'); } Debugger::$strictMode = true; /* * MySQL PDO Connection Engine */ ORM::configure(array('connection_string' => 'mysql:host=' . Config::config('mysql')->host . ';port=' . Config::config('mysql')->port . ';dbname=' . Config::config('mysql')->database, 'username' => Config::config('mysql')->username, 'password' => Config::config('mysql')->password, 'driver_options' => array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC), 'logging' => true, 'logger' => function ($query, $time) { DatabaseManager::logQuery($query, $time); }, 'caching' => true, 'caching_auto_clear' => true)); /* * Initalize Global core */ $core = new stdClass(); $klein = new \Klein\Klein(); $core->auth = new Authentication(); $core->user = new User(); $core->server = new Server(); $core->email = new Email(); $core->log = new Log(); $core->daemon = new Daemon(); $core->files = new Files(); $core->twig = new Twig_Environment(new Twig_Loader_Filesystem(APP_DIR . 'views/')); $core->language = new Language(); $core->permissions = new Permissions($core->server->getData('id')); /* * Twig Setup */ $core->twig->addGlobal('l', $core->language); // @TODO Change this to addGlobal('language', $core->language) to allow access as {{ language.render('template') }}
<?php /** * Created by IntelliJ IDEA. * User: david * Date: 10/9/15 * Time: 8:31 PM */ $klein = new \Klein\Klein(); $klein->respond('GET', '/', function ($request, $response, $service, $app) { $service->render("view/main.php"); }); $klein->respond('POST', '/create_from_jsonpost/', function ($request, $response, $service, $app) { $c = new Creator(); $c->createFromJson(file_get_contents('php://input')); global $errors; $errors = array_merge_recursive($errors, $c->getErrors()); if (empty($errors)) { $c->flush(); } else { return json_encode($errors); } }); $klein->respond('POST', '/create/', function ($request, $response, $service, $app) { $c = new Creator(); $c->createFromJson($_POST["data"]); global $errors; $errors = array_merge_recursive($errors, $c->getErrors()); if (empty($errors)) { $c->flush(); } else {
session_start(); require 'config.php'; require PATH_ROOT . '/lib/class_page.php'; require PATH_ROOT . '/lib/class_login.php'; require PATH_ROOT . '/lib/class_imetos.php'; require PATH_ROOT . '/lib/class_station.php'; require PATH_ROOT . '/lib/class_sensor.php'; require PATH_ROOT . '/lib/class_config.php'; require PATH_ROOT . '/lib/class_ftp.php'; require PATH_ROOT . '/lib/class_users.php'; require PATH_ROOT . '/lib/class_reports.php'; require PATH_ROOT . '/lib/class_log.php'; // require PATH_ROOT . '/lib/functions_standard.php'; require_once PATH_ROOT . '/lib/vendor/autoload.php'; $router = new \Klein\Klein(); Page::header(); // API Klein https://github.com/klein/klein.php/wiki/Api //controllers /* $router->with('/users', function () use ($router) { $router->respond('GET', '/?', function ($request, $response) { // listado de todos los usuarios $_POST['action']='listUsers'; }); $router->respond('GET', '/[:userid]', function ($request, $response) { // Muestra solo un usuario $_POST['action']='listUser'; if(isset($request->userid)) $_POST['userid']=$request->userid; });
<?php $route = new \Klein\Klein(); $config = new config(); $backend = $config->system->evany->backend; define('BACKEND', $backend); $route->respond(function ($request, $response, $service, $app) { $app->register('isUser', function () { $render = new render(); $config = new config(); if (!isset($_SESSION['user'])) { $render->render("admin.notice", ["system" => $config->system]); die; } }); }); //Error $route->onHttpError(function ($code, $router) { /* * HttpError doesn't have access to * vars outside of here. */ $render = new render(); $config = new config(); $build = new page(); $pages = new db("pages"); $request = $_SERVER['REQUEST_URI']; $found = false; foreach ($pages->all() as $page) { $component = array_keys($page)[0]; if ($page["endpoint"] != "/") {
// Enable verbose debug output ini_set('display_errors', 'On'); error_reporting(E_ALL | E_STRICT); // Include libraries require_once __DIR__ . '/config.php'; require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/rb.php'; // Update request when app is installed in a subdirectory $base = dirname($_SERVER['PHP_SELF']); $trimmedBase = ltrim($base, '/'); // If we're not at the root of the server (Windows and Un*x), alter request if ($trimmedBase !== '\\' && $trimmedBase !== '') { $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen($base)); } // Init Klein router $klein = new Klein\Klein(); // Init Twig template engine $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader); // Add global URL $twig->addGlobal('baseURL', BASE_URL); // Initialise database. init(); //================================================================================ // Index page. //================================================================================ $klein->respond('GET', '/', function () use($twig) { $blogs = R::findAll('blog', 'ORDER BY id DESC LIMIT 5'); displayPage('index.twig', array('posts' => $blogs)); }); //================================================================================
<?php require 'vendor/autoload.php'; require 'lib/Httpstatuses/Httpstatuses.php'; $klein = new \Klein\Klein(); $httpstatuses = new \Httpstatuses\httpstatuses(); $klein->respond('GET', '/', function ($request, $response, $service) use($httpstatuses) { $class_list = $httpstatuses->statuses(); $service->render('views/index.php', array("class_list" => $class_list)); }); $klein->respond('GET', '/[i:id]', function ($request, $response, $service) use($httpstatuses) { $status_code = $request->param('id'); $code = $httpstatuses->status($status_code); if (!$code) { $service->render('views/404.php'); } $service->render('views/status_code.php', $code); }); $klein->respond('GET', '404', function ($request, $response, $service) { $service->render('views/404.php'); }); $klein->dispatch();
<?php require_once __DIR__ . '/include/php/autoload.php'; require_once __DIR__ . '/api/v1/init.php'; $klein = new \Klein\Klein(); $klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'], function () { return "<h2>Welcome to the Cloud Compiler API</h2><p>Check out the documentation for the API <a href='docs/'>here</a></p>"; }); $klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'docs/', function () { return file_get_contents(__DIR__ . '/docs/index.html'); }); $klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/languages[/]?', function ($request, $response) { $responseData = \API\Languages\Response(); $response->code($responseData['code']); $response->json($responseData['body']); }); $klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/languages/template/[i:id][/]?', function ($request, $response) { $responseData = \API\Languages\Template\Response($request->id); $response->code($responseData['code']); $response->json($responseData['body']); }); $klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/languages/sample/[i:id][/]?', function ($request, $response) { $responseData = \API\Languages\Sample\Response($request->id); $response->code($responseData['code']); $response->json($responseData['body']); }); $klein->respond(array('GET', 'POST'), $GLOBALS['config']['serverRoot'] . 'api/maintain[/]?', function ($request, $response) { $responseData = \API\Maintain\Response(); $response->code($responseData['code']); $response->json($responseData['body']); });
<?php date_default_timezone_set('UTC'); chdir('..'); require_once 'vendor/autoload.php'; require_once 'helpers/mods.php'; require_once 'data/config.php'; $klein = new \Klein\Klein(); /* * Attach the layout to the site and generate/check for cached mod list data. * TODO: incl. manual settings for no longer supported */ $klein->respond(function ($request, $response, $service, $app) use($klein) { $klein->onError(function ($klein, $err_msg) { $klein->service()->flash($err_msg); if ($err_msg === 'robot') { //TODO: Log and blacklist spambot IPs } if ($err_msg === 'submission') { $klein->response()->redirect('/submit/incomplete'); } if ($err_msg !== 'api' && $err_msg !== 'submission') { $klein->service()->back(); } }); $modlist_mtime = filemtime('data/modlist.json'); $modlist_fsize = filesize('data/modlist.json'); $modlist_cache = "data/cache/{$modlist_mtime}-{$modlist_fsize}.json"; if (!file_exists($modlist_cache)) { //Clear cache folder $obsolete = glob('data/cache/*');
<?php /* A note to programmers - for comments don't use // and use only star-slash ones */ require_once __DIR__ . "/load.php"; /* This is not needed if Open is in site's document root, but needed if Open is in a sub folder --------------------- // Make the request URL relative to the base URL of Lobby installation. http://localhost/open will be changed to "/" and http://open.local to "/" $lobbyBase = str_replace($_SERVER['DOCUMENT_ROOT'], "", $docRoot); $_SERVER['REQUEST_URI'] = str_replace($lobbyBase, "", $_SERVER['REQUEST_URI']); * ------------------- */ require_once "{$docRoot}/inc/vendor/autoload.php"; $router = new \Klein\Klein(); function makeSource($loc) { global $OP, $docRoot, $LS, $who; global $_P, $uname, $uimg; // Extra Vars $_SERVER['REDIRECT_PAGE'] = "/{$loc}"; include docRoot . "/source/{$loc}.php"; } function idPage($file, $request) { if (is_numeric($request->id)) { $_GET['id'] = $request->id; } $GLOBALS['itsMyPage'] = true; makeSource("{$file}"); } /* The default 404 pages */ $router->respond('*', function ($request, $response) use($OP) {
<?php if (!defined('MAIN')) { die('No way!'); } $klein = new \Klein\Klein(); $klein->respond(function ($request, $response, $service) { $service->hashTag = getenv('HASHTAG'); $service->siteName = getenv('SITENAME'); $service->production = getenv('PRODUCTION'); $service->siteURL = getenv('SITE_URL'); $service->templatePath = 'templates/' . getenv('TEMPLATE') . '/'; $service->layout($service->templatePath . 'layouts/default.php'); }); //Index page $klein->respond('GET', '/', function ($request, $response, $service) { $time = time(); $items = ORM::for_table('photos')->where_gt('created_time', $time - 86400)->where('banned', 0)->order_by_desc('likes')->limit(10)->find_many(); $service->items = $items; $service->code = 'index'; $service->render($service->templatePath . 'views/best.php'); }); //Topweek page $klein->respond('GET', '/topweek', function ($request, $response, $service) { $time = time(); $items = ORM::for_table('photos')->where_gt('created_time', $time - 86400 * 7)->where('banned', 0)->order_by_desc('likes')->limit(10)->find_many(); $service->code = 'topweek'; $service->items = $items; $service->render($service->templatePath . 'views/best.php'); }); //Best-ever page
$bodyData = json_decode($bodyDataStr, true); $_POST = array_merge($_POST, $bodyData); if ($method === 'POST') { $_POST = array_merge($_POST, $bodyData); } elseif ($method === 'GET') { $_GET = array_merge($_GET, $bodyData); } } /*$rememberMeCookie = null; if (!isset($_COOKIE['rememberme']) && empty($_COOKIE['rememberme'])){ if (isset($_POST['REMEMBERMECOOKIE'])) $_COOKIE['rememberme'] = $_POST['REMEMBERMECOOKIE']; else if (isset($_GET['REMEMBERMECOOKIE'])) $_COOKIE['rememberme'] = $_GET['REMEMBERMECOOKIE']; }*/ require_once __DIR__ . '/../libs/router/autoload.php'; require_once __DIR__ . '/../libs/medoo-db/medoo.min.php'; require_once __DIR__ . '/../libs/medoo-db/db.php'; require_once 'load-user-system.php'; require_once 'load-models.php'; global $klein; //$klein = new \Klein\Klein(); define('APP_PATH', '/server'); $klein = new \Klein\Klein(); $request = \Klein\Request::createFromGlobals(); // Grab the server-passed "REQUEST_URI" $uri = $request->server()->get('REQUEST_URI'); // Set the request URI to a modified one (without the "subdirectory") in it $request->server()->set('REQUEST_URI', substr($uri, strlen(APP_PATH))); require_once __DIR__ . '/../routes.php'; $klein->dispatch($request);
//throwUnauth()); } else { if (!verifyHash($_GET['hash'])) { //throwUnauth()); } } function respond($result) { return json_encode($result); } function verifyAuth($response) { if (!Session::isValid($response)) { throwUnauth(); } } $klein = new \Klein\Klein(); $requestType = array("POST", "GET"); $klein->respond($requestType, '/', function () { sleep(1); $result = array("status" => "incorrect", "time" => time()); return json_encode($result); }); $klein->onHttpError(function ($code, $router) { if ($code >= 400 && $code < 500) { $router->response()->body(throwErrorCode($code)); } elseif ($code >= 500 && $code <= 599) { $router->response()->body(throwErrorCode($code)); } }); $klein->dispatch();