本文整理汇总了PHP中Silex\Application::protect方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::protect方法的具体用法?PHP Application::protect怎么用?PHP Application::protect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Silex\Application
的用法示例。
在下文中一共展示了Application::protect方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: register
public function register(Application $app)
{
$app['csv.exporter.config'] = $app->share(function () {
$config = new ExporterConfig();
return $config->setDelimiter(";")->setEnclosure('"')->setEscape("\\")->setToCharset('UTF-8')->setFromCharset('UTF-8');
});
$app['csv.exporter'] = $app->share(function ($app) {
return new Exporter($app['csv.exporter.config']);
});
$app['csv.lexer.config'] = $app->share(function ($app) {
$lexer = new LexerConfig();
$lexer->setDelimiter(';')->setEnclosure('"')->setEscape("\\")->setToCharset('UTF-8')->setFromCharset('UTF-8');
return $lexer;
});
$app['csv.lexer'] = $app->share(function ($app) {
return new Lexer($app['csv.lexer.config']);
});
$app['csv.interpreter'] = $app->share(function ($app) {
return new Interpreter();
});
$app['csv.response'] = $app->protect(function ($callback) use($app) {
// set headers to fix ie issues
$response = new StreamedResponse($callback, 200, ['Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT', 'Last-Modified' => gmdate('D, d M Y H:i:s') . ' GMT', 'Cache-Control' => 'no-store, no-cache, must-revalidate', 'Cache-Control' => 'post-check=0, pre-check=0', 'Pragma' => 'no-cache', 'Content-Type' => 'text/csv', 'Cache-Control' => 'max-age=3600, must-revalidate', 'Content-Disposition' => 'max-age=3600, must-revalidate']);
$response->headers->set('Content-Disposition', $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'export.csv'));
});
}
示例2: register
/**
* {@inheritdoc}
*/
public function register(Application $app)
{
// Load defaults
foreach ($this->settings as $key => $value) {
$key = 'captcha.' . $key;
if (!isset($app[$key])) {
$app[$key] = $value;
}
}
// Instance of builder
$app['captcha.builder'] = $app->share(function (Application $app) {
return new CaptchaBuilder($app['captcha.phrase'], $app['captcha.phrase_builder']);
});
// Checks captcha
$app['captcha.test'] = $app->protect(function ($phrase) use($app) {
/** @var $builder CaptchaBuilder */
$builder = $app['captcha.builder'];
/** @var $session Session */
$session = $app['session'];
$builder->setPhrase($session->get($app['captcha.session_key']));
return $builder->testPhrase($phrase);
});
// Returns absolute URL to the image
$app['captcha.image_url'] = $app->protect(function () use($app) {
/** @var $urlGenerator UrlGenerator */
$urlGenerator = $app['url_generator'];
return $urlGenerator->generate($app['captcha.route_name'], array(), UrlGenerator::ABSOLUTE_URL);
});
}
示例3: register
function register(Application $app)
{
$this->app = $app;
$this->log = $app['monolog'];
$this->session = $app['session'];
$this->url_generator = $app['url_generator'];
$app['jira.request_token_url'] = $this->getAbsoluteURL('request_token');
$app['jira.authorization_url'] = $this->getAbsoluteURL('authorization');
$app['jira.access_token_url'] = $this->getAbsoluteURL('access_token');
$app['jira.oauth.client'] = $app->share(function () use($app) {
if (is_null($this->session->get('oauth'))) {
$this->log->addError('Jira OAuth client is not initialized correctly.' . 'Please create valid credentials first.');
throw new \Exception('Jira OAuth client is not initialized');
}
$app['jira.token'] = $this->session->get('oauth');
$oauth = $this->getOAuth();
return $this->getClient($oauth);
});
$app['jira.oauth.temp_credentials'] = $app->protect(function ($redirect = null) {
return $this->requestTempCredentials($redirect);
});
$app['jira.oauth.auth_credentials'] = $app->protect(function ($redirect = null) {
return $this->requestAuthCredentials($redirect);
});
$app['jira.oauth.auth_url'] = $app->share(function () {
return $this->makeAuthUrl();
});
$app['jira.default_redirect'] = $app->share(function () {
return $this->url_generator->generate($this->config['route_name.default_redirect']);
});
$app['jira.controller.provider'] = $app->share(function () {
return new JiraOAuthControllerProvider();
});
}
示例4: register
public function register(Application $app)
{
$config = $this->config;
$app['user'] = null;
$app['devture_user.roles'] = $config['roles'];
$app['devture_user.db'] = $app->share(function ($app) use($config) {
return $app[$config['database_service_id']];
});
if ($config['database_type'] === 'relational') {
$app['devture_user.repository'] = $app->share(function ($app) {
return new Repository\Relational\UserRepository($app['devture_user.db']);
});
} else {
if ($config['database_type'] === 'mongodb') {
$app['devture_user.repository'] = $app->share(function ($app) {
return new Repository\MongoDB\UserRepository($app['devture_user.db']);
});
} else {
throw new \InvalidArgumentException('Unrecognized database type: ' . $config['database_type']);
}
}
$app['devture_user.password_encoder'] = $app->share(function ($app) use($config) {
return new Helper\PasswordEncoder($config['blowfish_cost']);
});
$app['devture_user.auth_helper'] = $app->share(function ($app) use($config) {
return new Helper\AuthHelper($app['devture_user.repository'], $app['devture_user.password_encoder'], $config['password_token_salt']);
});
$app['devture_user.login_manager'] = $app->share(function ($app) use($config) {
return new Helper\LoginManager($app['devture_user.auth_helper'], $config['cookie_signing_secret'], $config['cookie_path']);
});
$app['devture_user.access_control'] = $app->share(function ($app) {
return new AccessControl\AccessControl($app);
});
$app['devture_user.validator'] = function ($app) {
return new Validator\UserValidator($app['devture_user.repository'], $app['devture_user.roles']);
};
$app['devture_user.form_binder'] = function ($app) {
$binder = new Form\FormBinder($app['devture_user.validator'], $app['devture_user.password_encoder']);
$binder->setCsrfProtection($app['devture_framework.csrf_token_manager'], 'user');
return $binder;
};
$app['devture_user.listener.user_from_request_initializer'] = $app->protect(function (Request $request) use($app) {
$app['user'] = $app['devture_user.login_manager']->createUserFromRequest($request);
});
$app['devture_user.listener.csrf_token_manager_salter'] = $app->protect(function (Request $request) use($app) {
if ($app['user'] instanceof Model\User) {
$app['devture_framework.csrf_token_manager']->setSalt($app['user']->getUsername());
}
});
$app['devture_user.listener.conditional_session_extender'] = $app->protect(function (Request $request, Response $response) use($app) {
if ($app['user'] instanceof Model\User) {
$app['devture_user.login_manager']->extendSessionIfNeeded($app['user'], $request, $response);
}
});
$app['devture_user.twig.user_extension'] = $app->share(function ($app) {
return new Twig\UserExtension($app['devture_user.access_control'], $app);
});
$this->registerConsoleServices($app);
$this->registerControllerServices($app);
}
示例5: register
/**
* Registers services on the given app.
*
* This method should only be used to configure services and parameters.
* It should not get services.
*
* @param Application $app
*/
public function register(Application $app)
{
/**
* Add closures for getting all the Codebender URLs we need to know.
*/
$app['codebender'] = $app->protect(function ($uri) {
return sprintf('%s/%s', $this->codebender_url, ltrim($uri, '/'));
});
$app['codebender.builder'] = $app->protect(function () use($app) {
return $this->builder_url;
});
/**
* Add closures for performing requests against Codebender URLs.
*/
$app['codebender.get'] = $app->protect(function ($url) use($app) {
$client = new Client();
$response = $client->get($url);
return $response->getBody();
});
$app['codebender.post'] = $app->protect(function ($url, $json) use($app) {
$client = new Client();
$response = $client->post($url, ['body' => $json]);
return $response->getBody();
});
}
示例6: register
/**
* {@inheritDoc}
*/
public function register(Application $app)
{
$keyLoader = $this->keyLoader;
$app['security.authentication_listener.factory.hmac'] = $app->protect(function ($name, $options) use($app) {
if (!isset($app['security.authentication_provider.' . $name . '.hmac'])) {
$app['security.authentication_provider.' . $name . '.hmac'] = $app['security.authentication_provider.hmac._proto']($name, $options);
}
if (!isset($app['security.authentication_listener.' . $name . '.hmac'])) {
$app['security.authentication_listener.' . $name . '.hmac'] = $app['security.authentication_listener.hmac._proto']($name, $options);
}
if (!isset($app['security.entry_point.' . $name . '.hmac'])) {
$app['security.entry_point.' . $name . '.hmac'] = $app['security.entry_point.hmac._proto']($name, $options);
}
return ['security.authentication_provider.' . $name . '.hmac', 'security.authentication_listener.' . $name . '.hmac', 'security.entry_point.' . $name . '.hmac', 'pre_auth'];
});
$app['security.hmac.response_listener'] = $app->share(function () {
return new HmacResponseListener();
});
$app['security.authentication_provider.hmac._proto'] = $app->protect(function ($name, $options) use($app, $keyLoader) {
return $app->share(function () use($keyLoader) {
return new HmacAuthenticationProvider(new RequestAuthenticator($keyLoader));
});
});
$app['security.authentication_listener.hmac._proto'] = $app->protect(function ($name, $options) use($app) {
return $app->share(function () use($app, $name) {
return new HmacAuthenticationListener($app['security.token_storage'], $app['security.authentication_manager'], $app['security.entry_point.' . $name . '.hmac']);
});
});
$app['security.entry_point.hmac._proto'] = $app->protect(function ($name, $options) use($app) {
return new HmacAuthenticationEntryPoint();
});
}
示例7: register
/**
* @param Application $app
*/
public function register(Application $app)
{
// define the authentication listener object
$app['security.authentication_listener.wordpress._proto'] = $app->protect(function ($providerKey, $options) use($app) {
return $app->share(function () use($app, $providerKey, $options) {
return new Security\WordpressListener($app['security'], $app['security.authentication_manager'], $options['document_root'], $app['php.wordpress36.bootstrap'], $app['logger']);
});
});
// define the authentication provider object
$app['security.authentication_provider.wordpress._proto'] = $app->protect(function ($name) use($app) {
return $app->share(function () use($app, $name) {
return new Security\WordpressAuthenticationProvider();
});
});
$type = 'wordpress';
$entryPoint = null;
$app['security.authentication_listener.factory.' . $type] = $app->protect(function ($name, $options) use($type, $app, $entryPoint) {
if ($entryPoint && !isset($app['security.entry_point.' . $name . '.' . $entryPoint])) {
$app['security.entry_point.' . $name . '.' . $entryPoint] = $app['security.entry_point.' . $entryPoint . '._proto']($name, $options);
}
if (!isset($app['security.authentication_listener.' . $name . '.' . $type])) {
$app['security.authentication_listener.' . $name . '.' . $type] = $app['security.authentication_listener.' . $type . '._proto']($name, $options);
}
$provider = 'wordpress';
if (!isset($app['security.authentication_provider.' . $name . '.' . $provider])) {
$app['security.authentication_provider.' . $name . '.' . $provider] = $app['security.authentication_provider.' . $type . '._proto']($name);
}
return array('security.authentication_provider.' . $name . '.' . $provider, 'security.authentication_listener.' . $name . '.' . $type, $entryPoint ? 'security.entry_point.' . $name . '.' . $entryPoint : null, 'pre_auth');
});
}
示例8: register
/**
* Registers services on the given app.
*
* This method should only be used to configure services and parameters.
* It should not get services.
*/
public function register(Application $app)
{
$app['security.jwt_retrieval.authorization_bearer.strategy'] = $app->share(function () {
return new AuthorizationBearerStrategy();
});
$app['security.jwt_retrieval.query_parameter.strategy'] = $app->share(function () {
return new QueryParameterStrategy();
});
$app['security.jwt_retrieval.chain.strategy'] = $app->share(function () use($app) {
return new ChainStrategy([$app['security.jwt_retrieval.authorization_bearer.strategy'], $app['security.jwt_retrieval.query_parameter.strategy']]);
});
$app['security.entry_point.jwt._proto'] = $app->protect(function () use($app) {
return $app->share(function () {
return new JWTAuthenticationEntryPoint();
});
});
$app['security.authentication_listener.factory.jwt'] = $app->protect(function ($name, $options) use($app) {
$app['security.authentication_provider.' . $name . '.jwt'] = $app->share(function () use($app, $options) {
$encoder = new JWTEncoder($options['secret_key'], reset($options['allowed_algorithms']));
$decoder = new JWTDecoder($options['secret_key'], $options['allowed_algorithms']);
$converter = new SecurityUserConverter();
$userBuilder = new JWTUserBuilder($decoder, $encoder, $converter);
return new JWTAuthenticationProvider($userBuilder);
});
$app['security.authentication_listener.' . $name . '.jwt'] = $app->share(function () use($app, $name, $options) {
$strategyName = isset($options['retrieval_strategy']) ? $options['retrieval_strategy'] : 'authorization_bearer';
return new JWTListener($app['security.token_storage'], $app['security.authentication_manager'], $app['security.jwt_retrieval.' . $strategyName . '.strategy']);
});
$app['security.entry_point.' . $name . '.jwt'] = $app['security.entry_point.jwt._proto']($name, $options);
return array('security.authentication_provider.' . $name . '.jwt', 'security.authentication_listener.' . $name . '.jwt', 'security.entry_point.' . $name . '.jwt', 'pre_auth');
});
}
示例9: register
public function register(Application $app)
{
$app['app.usuarios.insert'] = $app->protect(function ($data) {
return $this->insert($data);
});
$app['app.usuarios.find'] = $app->protect(function ($data) {
return $this->find($data);
});
}
示例10: register
public function register(Application $app)
{
$app['logger.class'] = '\\Dafiti\\Silex\\Log\\Logger';
$app['logger.create'] = $app->protect(function ($name, $level = 'debug', array $handlers = [], array $processors = []) use($app) {
$logger = new $app['logger.class']($name);
$level = $logger->translateLevel($level);
if (empty($handlers)) {
$stream = sprintf('%s/%s.log', $app['logger.log_folder'], $name);
$handlers = [new StreamHandler($stream, $level, $app['logger.bubble'], $app['logger.permission'])];
}
foreach ($handlers as $handler) {
$logger->pushHandler($handler);
}
foreach ($processors as $processor) {
$logger->pushProcessor($processor);
}
$app['logger.manager']->add($logger);
return $logger;
});
$app['logger.handler'] = $app->protect(new Factory\Handler());
$app['logger.processor'] = $app->protect(new Factory\Processor());
$app['logger.factory'] = $app->protect(function (array $loggers) use($app) {
if (empty($loggers)) {
throw new \InvalidArgumentException('Empty value is not allowed for loggers');
}
foreach ($loggers as $name => $values) {
$level = 'debug';
$handlers = [];
$processors = [];
if (isset($values['level'])) {
$level = $values['level'];
}
if (!isset($values['handlers'])) {
$values['handlers'] = [];
}
if (!isset($values['processors'])) {
$values['processors'] = [];
}
foreach ($values['handlers'] as $handler) {
if (!isset($handler['level'])) {
$handler['level'] = $level;
}
$handlers[] = $app['logger.handler']($handler);
}
foreach ($values['processors'] as $processor) {
$processors[] = $app['logger.processor']($processor);
}
$app['logger.create']($name, $level, $handlers, $processors);
}
});
$app['logger.manager'] = $app->share(function () {
return new Log\Collection();
});
$app['logger.bubble'] = true;
$app['logger.permission'] = null;
$app['logger.log_folder'] = null;
}
示例11: testWithLoader
public function testWithLoader()
{
$this->app['env.loader'] = $this->app->protect(function () {
return $_SERVER;
});
$this->app->register(new EnvironmentProvider());
$this->app->boot();
$this->assertEquals($_SERVER, $this->app['env']->getVars());
}
示例12: register
/**
* (non-PHPdoc)
* @see \Silex\ServiceProviderInterface::register()
* @param Application $app
*/
public function register(Application $app)
{
$service = $this;
$app[static::GENERATE] = $app->protect(function (string $password) use($service) {
return $service->generate($password, $this->config['cost']);
});
$app[static::VERIFY] = $app->protect(function (string $password, string $hash) use($service) {
return $service->verify($password, $hash);
});
}
示例13: register
/**
* (non-PHPdoc)
* @see \Silex\ServiceProviderInterface::register()
* @param Application $app
*/
public function register(Application $app)
{
Driver::config($this->config);
$service = $this;
$app[static::UPLOADER] = $app->protect(function (UploadedFile $file) use($service) {
return $service->createFromFile($file);
});
$app[static::IMPORTER] = $app->protect(function (string $url) use($service) {
return $service->createFromUrl($url);
});
}
示例14: register
public function register(Application $app)
{
$app[self::AUTH_VALIDATE_CREDENTIALS] = $app->protect(function ($user, $pass) {
return $this->validateCredentials($user, $pass);
});
$app[self::AUTH_VALIDATE_TOKEN] = $app->protect(function ($token) {
return $this->validateToken($token);
});
$app[self::AUTH_NEW_TOKEN] = $app->protect(function ($user) {
return $this->getNewTokenForUser($user);
});
}
示例15: register
public function register(Application $app)
{
$app['asset.packages'] = $app->share(function ($app) {
$defaultPackage = new Package($app['asset.version_strategy']('view'));
$packages = new Packages($defaultPackage);
$packages->addPackage('bolt', $app['asset.package_factory']('view'));
$packages->addPackage('extensions', new PathPackage('', $app['asset.version_strategy']('web'), $app['asset.context']));
$packages->addPackage('files', $app['asset.package_factory']('files'));
$packages->addPackage('theme', $app['asset.package_factory']('theme'));
return $packages;
});
$app['asset.package_factory'] = $app->protect(function ($name) use($app) {
return new PathPackage($app['resources']->getUrl($name), $app['asset.version_strategy']($name), $app['asset.context']);
});
$app['asset.version_strategy'] = $app->protect(function ($name) use($app) {
return new Asset\BoltVersionStrategy($app['filesystem']->getFilesystem($name), $app['asset.salt']);
});
$app['asset.context'] = $app->share(function () use($app) {
return new RequestStackContext($app['request_stack']);
});
$app['asset.salt.factory'] = function () use($app) {
return $app['randomgenerator']->generateString(10);
};
$app['asset.salt'] = $app->share(function ($app) {
$file = $app['filesystem']->getFile('cache://.assetsalt');
try {
$salt = $file->read();
} catch (FileNotFoundException $e) {
$salt = $app['asset.salt.factory'];
$file->put($salt);
}
return $salt;
});
$app['asset.injector'] = $app->share(function () {
$snippets = new Asset\Injector();
return $snippets;
});
$app['asset.queue.file'] = $app->share(function ($app) {
$queue = new Asset\File\Queue($app['asset.injector'], $app['asset.packages']);
return $queue;
});
$app['asset.queue.snippet'] = $app->share(function ($app) {
$queue = new Asset\Snippet\Queue($app['asset.injector'], $app['cache'], $app['config'], $app['resources']);
return $queue;
});
$app['asset.queue.widget'] = $app->share(function ($app) {
$queue = new Asset\Widget\Queue($app['asset.injector'], $app['cache'], $app['render']);
return $queue;
});
$app['asset.queues'] = $app->share(function ($app) {
return [$app['asset.queue.file'], $app['asset.queue.snippet'], $app['asset.queue.widget']];
});
}