本文整理汇总了PHP中Route::accept方法的典型用法代码示例。如果您正苦于以下问题:PHP Route::accept方法的具体用法?PHP Route::accept怎么用?PHP Route::accept使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Route
的用法示例。
在下文中一共展示了Route::accept方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testRouteMethodPlugins
public function testRouteMethodPlugins()
{
$r = new Route('/test/', '\\Pex\\HttpTest\\View');
$this->assertTrue($r->accept('/test/decor'));
$fn = $r->match('GET', '/test/decor', $parameters);
$this->assertEquals([new \Pex\HttpTest\View(), 'decor'], $fn->getCallable());
$dummyPlugin = function ($name, $args) {
return [$name, $args];
};
$this->assertEquals([['decor', ['foo', 'bar']], ['view', ['abc.php']]], $fn->buildPlugins(['view' => $dummyPlugin, 'decor' => $dummyPlugin]));
}
示例2: function
<?php
Route::accept($config->manager->slug . '/plugin/' . File::B(__DIR__) . '/update', function () use($config, $speak) {
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
unset($request['token']);
$request['twitter_site'] = trim(Text::parse($request['twitter_site'], '->array_key'), '_');
$request['twitter_creator'] = trim(Text::parse($request['twitter_creator'], '->array_key'), '_');
File::serialize($request)->saveTo(__DIR__ . DS . 'states' . DS . 'config.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->plugin));
Guardian::kick(File::D($config->url_current));
}
});
示例3: function
/**
* Home Page
* ---------
*
* [1]. /
*
*/
Route::accept('/', function () use($config, $excludes) {
Session::kill('search.query');
Session::kill('search.results');
$s = Get::articles();
if ($articles = Mecha::eat($s)->chunk(1, $config->index->per_page)->vomit()) {
$articles = Mecha::walk($articles, function ($path) use($excludes) {
return Get::article($path, $excludes);
});
} else {
$articles = false;
}
Filter::add('pager:url', function ($url) {
return Filter::apply('index:url', $url);
});
Config::set(array('articles' => $articles, 'pagination' => Navigator::extract($s, 1, $config->index->per_page, $config->index->slug)));
Shield::attach('page-home');
}, 110);
/**
* Route Hook: after
* -----------------
*/
Weapon::fire('routes_after');
/**
* Do Routing
示例4: function
<?php
/**
* Shortcode Manager
* -----------------
*/
Route::accept($config->manager->slug . '/shortcode', function () use($config, $speak) {
if (!Guardian::happy(1)) {
Shield::abort();
}
$shortcodes = Get::state_shortcode(null, array(), false);
$G = array('data' => $shortcodes);
Config::set(array('page_title' => $speak->shortcodes . $config->title_separator . $config->manager->title, 'cargo' => 'cargo.shortcode.php'));
if ($request = Request::post()) {
$request = Filter::apply('request:__shortcode', $request);
Guardian::checkToken($request['token']);
$data = array();
for ($i = 0, $keys = $request['key'], $count = count($keys); $i < $count; ++$i) {
if (trim($keys[$i]) !== "") {
$data[$keys[$i]] = $request['value'][$i];
}
}
$P = array('data' => $data);
File::serialize($data)->saveTo(STATE . DS . 'shortcode.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->shortcode));
Weapon::fire('on_shortcode_update', array($G, $P));
Guardian::kick($config->url_current);
}
Shield::lot(array('segment' => 'shortcode', 'files' => Mecha::O($shortcodes)))->attach('manager');
});
示例5: function
<?php
// The `__launch.php` file will be included only in the backend
Route::accept($config->manager->slug . '/plugin/' . File::B(__DIR__) . '/update', function () use($config, $speak) {
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
// [2]
File::write('test!')->saveTo(__DIR__ . DS . 'states' . DS . 'config.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->plugin));
// [3]
Guardian::kick(File::D($config->url_current));
// [4]
}
});
示例6: function
<?php
Route::accept($config->manager->slug . '/snippet', function () use($config, $speak) {
// Add `.htaccess` file to prevent direct access
$htaccess = ASSET . DS . '__snippet' . DS . '.htaccess';
if (!File::exist($htaccess)) {
File::write('deny from all')->saveTo($htaccess, 0600);
}
Config::set(array('page_title' => $speak->snippets . $config->title_separator . $config->manager->title, 'cargo' => __DIR__ . DS . 'cargo.snippet.php'));
Shield::lot(array('segment' => 'snippet'))->attach('manager');
});
Route::post($config->manager->slug . '/snippet/ignite', function () use($config, $speak) {
$request = Request::post();
$id = time();
Guardian::checkToken($request['token']);
if (trim($request['name']) === "") {
$request['name'] = $id . '.txt';
// empty file name
}
$_path = Text::parse(sprintf($request['name'], $id), '->safe_path_name');
$e = File::E($_path, false);
if ($e !== 'txt' && $e !== 'php') {
$e = 'txt';
$_path .= '.txt';
}
$_path_ = File::path($_path);
$file = ASSET . DS . '__snippet' . DS . $e . DS . $_path;
if (File::exist($file)) {
// file already exists
Notify::error(Config::speak('notify_file_exist', '<code>' . $_path_ . '</code>'));
}
示例7: function
<?php
/**
* Menu Manager
* ------------
*/
Route::accept($config->manager->slug . '/menu', function () use($config, $speak) {
if (Guardian::get('status') !== 'pilot') {
Shield::abort();
}
$menus = Get::state_menu();
Config::set(array('page_title' => $speak->menus . $config->title_separator . $config->manager->title, 'cargo' => DECK . DS . 'workers' . DS . 'cargo.menu.php'));
$G = array('data' => array('content' => $menus));
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
// Check for invalid input
if (preg_match('#(^|\\n)(\\t| {1,3})(?:[^ ])#', $request['content'])) {
Notify::error($speak->notify_invalid_indent_character);
Guardian::memorize($request);
}
$P = array('data' => $request);
if (!Notify::errors()) {
File::write($request['content'])->saveTo(STATE . DS . 'menu.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->menu));
Weapon::fire('on_menu_update', array($G, $P));
Guardian::kick($config->url_current);
}
}
Shield::lot(array('segment' => 'menu', 'the_content' => $menus))->attach('manager', false);
});
示例8: function
<?php
Route::accept($config->manager->slug . '/plugin/' . File::B(__DIR__) . '/update', function () use($config, $speak) {
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
File::write($request['content'])->saveTo(__DIR__ . DS . 'workers' . DS . '404.php');
Notify::success(Config::speak('notify_success_updated', $speak->plugin));
Guardian::kick(File::D($config->url_current));
}
});
示例9: define
<?php
define('PRIVATE_POST_SALT', 'VGF1ZmlrIE51cnJvaG1hbg==' . date('Y-m-d'));
// should be valid for 1 day
Route::accept(File::B(__DIR__) . '/do:access', function () use($config, $speak) {
if ($request = Request::post()) {
Guardian::checkToken($request['token'], $request['kick']);
if (!isset($request['_'])) {
Notify::error($speak->plugin_private_post->error);
}
// your answer can't contains a `:` because `:` is the separator
// if the `:` is very important for the answer, then you must
// replace all `:` character(s) in the password field with `:`
$request['access'] = str_replace(':', ':', $request['access']);
$access = md5($request['access'] . PRIVATE_POST_SALT);
if ((string) $request['_'] === (string) $access) {
Session::set('is_allow_post_access', $access);
Guardian::kick($request['kick']);
}
Notify::error($speak->plugin_private_post->error);
Guardian::kick($request['kick']);
}
Shield::abort();
});
function do_private_post($content, $results)
{
global $config, $speak;
$results = Mecha::O($results);
$results = $config->is->post ? Get::postHeader($results->path, POST . DS . $config->page_type, '/', $config->page_type . ':') : false;
if ($results === false) {
return $speak->plugin_private_post->description;
示例10: function
<?php
/**
* Plugin Updater
* --------------
*/
Route::accept($config->manager->slug . '/plugin/' . File::B(__DIR__) . '/update', function () use($config, $speak) {
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
unset($request['token']);
// Remove token from request array
$results = array();
foreach (explode("\n", $request['content']) as $path) {
$s = explode(' ~', $path, 2);
if (trim($path) !== "" && trim($s[0]) !== "") {
$results[trim($s[0])] = isset($s[1]) && trim($s[1]) !== "" ? (double) trim($s[1]) : true;
}
}
unset($request['content']);
// Remove content from request array
$request['path'] = $results;
File::serialize($request)->saveTo(__DIR__ . DS . 'states' . DS . 'config.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->plugin));
Guardian::kick(File::D($config->url_current));
}
});
/**
* Cache Killer
* ------------
*/
function do_remove_cache()
{
示例11: function
if ($mode === 'eject') {
// Rename `launch.php` to `pending.php` or `__launch.php` to `__pending.php`
File::open(PLUGIN . DS . $slug . DS . 'launch.php')->renameTo('pending.php');
File::open(PLUGIN . DS . $slug . DS . '__launch.php')->renameTo('__pending.php');
}
Guardian::kick($config->manager->slug . '/plugin/' . $page_current);
});
/**
* Plugin Killer
* -------------
*/
Route::accept($config->manager->slug . '/plugin/kill/id:(:any)', function ($slug = "") use($config, $speak) {
if (!Guardian::happy(1) || !($plugin = Plugin::exist($slug))) {
Shield::abort();
}
$info = Plugin::info($slug, true);
$info['slug'] = $slug;
Config::set(array('page_title' => $speak->deleting . ': ' . $info['title'] . $config->title_separator . $config->manager->title, 'page' => $info, 'cargo' => 'kill.plugin.php'));
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
$P = array('data' => array('id' => $slug));
Weapon::fire(array('on_plugin_update', 'on_plugin_destruct', 'on_plugin_' . md5($slug) . '_update', 'on_plugin_' . md5($slug) . '_destruct'), array($P, $P));
File::open($plugin)->delete();
// delete later ...
Notify::success(Config::speak('notify_success_deleted', $speak->plugin));
Guardian::kick($config->manager->slug . '/plugin');
} else {
Notify::warning(Config::speak('notify_confirm_delete_', '<strong>' . $info['title'] . '</strong>'));
}
Shield::lot(array('segment' => 'plugin'))->attach('manager');
});
示例12: function
});
/**
* Page Killer
* -----------
*/
Route::accept($config->manager->slug . '/page/kill/id:(:num)', function ($id = "") use($config, $speak) {
if (!($page = Get::page($id, array('comments')))) {
Shield::abort();
}
if (Guardian::get('status') !== 'pilot' && Guardian::get('author') !== $page->author) {
Shield::abort();
}
Config::set(array('page_title' => $speak->deleting . ': ' . $page->title . $config->title_separator . $config->manager->title, 'page' => $page, 'cargo' => DECK . DS . 'workers' . DS . 'kill.page.php'));
$G = array('data' => Mecha::A($page));
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
File::open($page->path)->delete();
$task_connect = $page;
$P = array('data' => $request);
include DECK . DS . 'workers' . DS . 'task.field.3.php';
include DECK . DS . 'workers' . DS . 'task.custom.3.php';
Notify::success(Config::speak('notify_success_deleted', $page->title));
Weapon::fire('on_page_update', array($G, $G));
Weapon::fire('on_page_destruct', array($G, $G));
Guardian::kick($config->manager->slug . '/page');
} else {
Notify::warning(Config::speak('notify_confirm_delete_', '<strong>' . $page->title . '</strong>'));
Notify::warning(Config::speak('notify_confirm_delete_page', strtolower($speak->page)));
}
Shield::lot('segment', 'page')->attach('manager', false);
});
示例13: function
Weapon::add('thumbnail_before', 'do_thumbnail_http_header', 1);
Route::accept('t/(:num)/(:all)', function ($size = 0, $path = "") {
$path = Filter::colon('thumbnail:path', ASSET . DS . File::path($path));
$G = array('data' => array('path' => $path, 'lot' => func_get_args()));
if (!($path = File::exist($path))) {
HTTP::status(404);
exit;
}
Weapon::fire('thumbnail_before', array($G, $G));
Image::take($path)->resize($size)->draw();
}, 12);
Route::accept('t/(:num)/(:num)/(:all)', function ($width = 0, $height = 0, $path = "") {
$path = Filter::colon('thumbnail:path', ASSET . DS . File::path($path));
$G = array('data' => array('path' => $path, 'lot' => func_get_args()));
if (!($path = File::exist($path))) {
HTTP::status(404);
exit;
}
Weapon::fire('thumbnail_before', array($G, $G));
Image::take($path)->crop($width, $height)->draw();
}, 11);
Route::accept('t/(:num)/(:num)/(:num)/(:num)/(:all)', function ($x = 0, $y = 0, $width = 0, $height = 0, $path = "") {
$path = Filter::colon('thumbnail:path', ASSET . DS . File::path($path));
$G = array('data' => array('path' => $path, 'lot' => func_get_args()));
if (!($path = File::exist($path))) {
HTTP::status(404);
exit;
}
Weapon::fire('thumbnail_before', array($G, $G));
Image::take($path)->crop($x, $y, $width, $height)->draw();
}, 10);
示例14: function
<?php
/**
* Plugin Updater
* --------------
*/
Route::accept($config->manager->slug . '/plugin/' . File::B(__DIR__) . '/update', function () use($config, $speak) {
if ($request = Request::post()) {
Guardian::checkToken($request['token']);
$state = PLUGIN . DS . File::B(__DIR__) . DS . 'states' . DS;
File::write(trim($request['abbr']))->saveTo($state . 'abbr.txt', 0600);
File::write(trim($request['url']))->saveTo($state . 'url.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->plugin));
Guardian::kick(File::D($config->url_current));
}
});
示例15: array
$new_config['shield'] = $path === 'attach' ? $slug : 'normal';
File::serialize($new_config)->saveTo(STATE . DS . 'config.txt', 0600);
$G = array('data' => array('id' => $slug, 'action' => $path));
Notify::success(Config::speak('notify_success_updated', $speak->shield));
foreach (glob(LOG . DS . 'asset.*.log', GLOB_NOSORT) as $asset_cache) {
File::open($asset_cache)->delete();
}
Guardian::kick($config->manager->slug . '/shield/' . $slug);
});
/**
* Shield Updater (Base)
* ---------------------
*/
if ($route = Route::is($config->manager->slug . '/shield/(:any)/update')) {
Weapon::add('routes_before', function () use($config, $speak, $route) {
if (!Route::accepted($route['path'])) {
Route::accept($route['path'], function () use($config, $speak, $route) {
if ($request = Request::post()) {
$s = $route['lot'][0];
$request = Filter::apply('request:__shield', $request, $s);
Guardian::checkToken($request['token']);
unset($request['token']);
// remove token from request array
File::serialize($request)->saveTo(SHIELD . DS . $s . DS . 'states' . DS . 'config.txt', 0600);
Notify::success(Config::speak('notify_success_updated', $speak->shield));
Guardian::kick(File::D($config->url_current));
}
});
}
}, 1);
}