set() public method

Sets a helper.
public set ( Symfony\Component\Templating\Helper\HelperInterface $helper, string $alias = null )
$helper Symfony\Component\Templating\Helper\HelperInterface The helper instance
$alias string An alias
 public function initPlugin()
 {
     $this->app[$this->getPluginName()] = function ($app) {
         $paths = $app->config('templating.paths') ?: [$app['dir.root'] . '/module/' . $app['app.module'] . '/template/%name%'];
         $basePath = $app->config('templating.basePath') ?: $app->request()->getBasePath() . '/assets';
         $loader = new FilesystemLoader($paths);
         $engine = new PhpEngine(new TemplateNameParser(), $loader);
         $engine->addGlobal('app', $app);
         $engine->set(new SlotsHelper());
         $engine->set(new AssetsHelper($basePath));
         $app->event()->emit('plugin.templating.after', [$app, $engine]);
         return $engine;
     };
 }
Ejemplo n.º 2
0
 /**
  * @param type $template Le template à afficher
  * @param array Les options à transmettre à la vue pour les utiliser
  * @return Response
  */
 protected function render($template, array $options = array())
 {
     $loader = new FilesystemLoader(__DIR__ . '/../view/%name%');
     $templating = new PhpEngine(new TemplateNameParser(), $loader);
     $templating->set(new SlotsHelper());
     $templating->set(new AssetsHelper('/'));
     $templating->set(new RouterHelper(new UrlGenerator($this->routes, $this->requestContext)));
     $templating->addGlobal('request', $this->request);
     //Marche bien
     $templating->addGlobal('session', $this->request->getSession());
     $templating->addGlobal('user', $this->request->getSession() ? $this->request->getSession()->get('user') : null);
     $response = Response::create($templating->render($template, $options));
     return $response;
 }
Ejemplo n.º 3
0
 protected function render($name, array $args = array(), $status = '200')
 {
     $loader = new FilesystemLoader(__DIR__ . '/../../../../src/Resources/views/%name%');
     $templating = new PhpEngine(new TemplateNameParser(), $loader);
     $templating->set(new SlotsHelper());
     return new Response($templating->render($name, $args), $status);
 }
Ejemplo n.º 4
0
$app->register(new FormServiceProvider());
$app->register(new CsrfServiceProvider());
$app->register(new Silex\Provider\SessionServiceProvider());
$app->register(new TwigServiceProvider(), array('twig.path' => __DIR__ . '/../web/templates', 'twig.class.path' => __DIR__ . '/../vendor/twig/lib'));
$app['templating.engines'] = function () {
    return array('twig', 'php');
};
$app['templating.loader'] = function () {
    return new FilesystemLoader(__DIR__ . '/../web/templates/%name%');
};
$app['templating.template_name_parser'] = function () {
    return new TemplateNameParser();
};
$app['templating.engine.php'] = function () use($app) {
    $engine = new PhpEngine($app['templating.template_name_parser'], $app['templating.loader']);
    $engine->set(new SlotsHelper());
    return $engine;
};
$app['templating.engine.twig'] = function () use($app) {
    return new TwigEngine($app['twig'], $app['templating.template_name_parser']);
};
$app['templating'] = function () use($app) {
    $engines = array();
    foreach ($app['templating.engines'] as $i => $engine) {
        if (is_string($engine)) {
            $engines[$i] = $app[sprintf('templating.engine.%s', $engine)];
        }
    }
    return new DelegatingEngine($engines);
};
$app->register(new DoctrineServiceProvider(), array('db.options' => array('dbname' => 'silex', 'user' => 'silex', 'password' => 'silex')));
 static function setup($app)
 {
     // Set debug setting
     $app['debug'] = $app['config']['debug'];
     // Setup logging
     $app->register(new \Silex\Provider\MonologServiceProvider(), array('monolog.logfile' => $app['root_path'] . '/app/logs/AppName.log', 'monolog.level' => $app['debug'] ? \Monolog\Logger::DEBUG : \Monolog\Logger::NOTICE, 'monolog.name' => 'AppName'));
     // Setup sessions
     $app->register(new SessionServiceProvider());
     // Setup PHP Activerecord DB connection
     if (strncasecmp(PHP_OS, 'WIN', 3) == 0) {
         // Windows
         // I couldn't get an absolute path to work on windows. Using relative.
         $path = 'sqlite://windows(../app/db/db.sqlite)';
     } else {
         // Unix-like
         $path = 'sqlite://unix(' . $app['root_path'] . '/app/db/db.sqlite)';
     }
     $app['activerecord.cfg'] = \ActiveRecord\Config::instance();
     $app['activerecord.cfg']->set_connections(array('prod' => $path));
     \ActiveRecord\Config::initialize(function ($cfg) {
         $cfg->set_default_connection('prod');
     });
     // Setup symfony php template views
     $app['view'] = $app->share(function ($app) {
         $loader = new FilesystemLoader($app['root_path'] . '/app/template/%name%');
         $templating = new PhpEngine(new TemplateNameParser(), $loader);
         // Initialise the slots helper
         $templating->set(new SlotsHelper());
         return $templating;
     });
     // Setup basic app authentication
     $app->register(new \Silex\Provider\SecurityServiceProvider());
     $app->register(new \Silex\Provider\RememberMeServiceProvider());
     $app['security.firewalls'] = array('login' => array('pattern' => '^/login$', 'anonymous' => true), 'create_password' => array('pattern' => '^/create_password', 'users' => $app->share(function () use($app) {
         return new \AppName\Security\UserProvider();
     }), 'anonymous' => true), 'main' => array('form' => array('login_path' => '/login', 'check_path' => '/login_check'), 'logout' => array('logout_path' => '/logout'), 'pattern' => '^/', 'users' => $app->share(function () use($app) {
         return new \AppName\Security\UserProvider();
     }), 'remember_me' => array('key' => 'j34krjh23lk4jh23lktc3ktjh', 'name' => 'AppName', 'always_remember_me' => true)));
     // Conveinience function to get username
     $app['current_username'] = $app->share(function ($app) {
         $token = $app['security']->getToken();
         // Return username, if available
         if (null !== $token) {
             $user = $token->getUser();
             return $user->getUsername();
         } else {
             return 'anon';
         }
     });
     // Need to boot app here due to security bundle needing to be initialized before being used.
     //		$app->boot();
     // Setup custom logging processor. Sets username and IP for every log message
     //		$app['monolog']->pushProcessor(array(new \AppName\Monolog\LogProcessor($app['security']), 'logProcessor'));
     /**
      * Accept JSON Requests
      */
     $app->before(function (Request $request) {
         if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
             $data = json_decode($request->getContent(), true);
             $request->request->replace(is_array($data) ? $data : array());
         }
     });
     /**
      * Error handler. Return a JSON object with error info
      */
     // $app->error(function(\Exception $e) use ($app){
     // 	// Let this type of exception pass through, it will prompt for authentication.
     // 	if($e instanceof \Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException)
     // 		return;
     // 	// Let 404 errors go through
     // 	if($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
     // 		return;
     // 	$return = array('message' => $e->getMessage());
     // 	$return['class'] = get_class($e);
     // 	if($app['debug']){
     // 		$return['trace'] = $e->getTrace();
     // 		$return['file'] = $e->getFile();
     // 		$return['line'] = $e->getLine();
     // 		$return['code'] = $e->getCode();
     // 	}
     // 	return $app->json($return, 500);
     // }, 0);
     // Debug controllers
     if ($app['debug']) {
         $app->get('/make_error/', function (Request $request) use($app) {
             throw new Exception('Test exception');
             return '';
         });
     }
     return $app;
 }
Ejemplo n.º 6
0
 * @package Gksoft
 * @author  Galina Kozyreva <*****@*****.**>
 */
use Symfony\Component\Templating\PhpEngine;
use Symfony\Component\Templating\TemplateNameParser;
use Symfony\Component\Templating\Loader\FilesystemLoader;
use Symfony\Component\Templating\Helper\SlotsHelper;
use Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper;
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
$app->register(new Silex\Provider\DoctrineServiceProvider(), array('db.options' => $app['config']['db']));
$app->register(new Silex\Provider\SessionServiceProvider());
/* Представление */
$app['templating.engine.php'] = $app->share(function () use($app) {
    $phpEngine = new PhpEngine(new TemplateNameParser(), new FilesystemLoader(__DIR__ . '/../templates/%name%'));
    /* Хелперы представления */
    $phpEngine->set(new SlotsHelper());
    $inlineFragmentRenderer = new \Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer($app);
    $requestStack = new \Symfony\Component\HttpFoundation\RequestStack();
    $requestStack->push($app['request']);
    $fragmentHandler = new \Symfony\Component\HttpKernel\Fragment\FragmentHandler(array($inlineFragmentRenderer), $app['debug'], $requestStack);
    $phpEngine->set(new ActionsHelper($fragmentHandler));
    return $phpEngine;
});
/* Модели */
$app['models.products'] = $app->share(function () use($app) {
    return new Gksoft\Models\Catalog($app['db']);
});
$app['models.users'] = $app->share(function () use($app) {
    return new Gksoft\Models\Users($app['db']);
});
/* Контроллеры */