小编dbr*_*ann的帖子

会话在Silex\App中不起作用

无论出于何种原因,Sessions不能在我的Silex-app中运行.我在php.ini中设置了error_reporting,E_ALL | E_STRICT并显示和记录错误.没什么好看的.但由于某种原因,没有创建会话且没有文件/project-root/tmp/sessions/(当使用默认的session.save_path时也没有).切换到PdoSessionStorage,以排除文件系统的读/写权限问题,也没有带来任何结果.我也试过之间切换$app['session'],$request->getSession()$app['request']->getSession()无济于事.

我不知道在哪里寻找问题......

这是我写的一个非常简单的测试应用程序(use省略了节省空间).基本上这个测试显示了我在实际应用中尝试实现的功能.我想在会话中存储一个数组.在$app->before()我检查,如果该值设置,然后将它传递给树枝被显示,例如,登录信息:You are logged in as {{ user.name }}:

$app = new Application;
$app['debug'] = true;
$app->register(new SessionServiceProvider, array(
    'session.storage.save_path' => dirname(__DIR__) . '/tmp/sessions'
));
$app->register(new TwigServiceProvider, array(
    'twig.path' => __DIR__ . '/views'
));

$app->before(function (Request $request) use ($app) {
//    if ($app['debug'] == true) {
//        $request->getSession()->set('test', array('key' => 'value'));
//    }
    if ($request->hasPreviousSession() && $request->getSession()->has('test')) {
        $test = $request->getSession()->get('test'); …
Run Code Online (Sandbox Code Playgroud)

php session silex

13
推荐指数
1
解决办法
9522
查看次数

扩展类时的构造函数注入

这个问题与Symfony 2没有严格的关系,但是当我使用Symfony 2组件并且稍后可能使用Symfony\Component\DependencyInjection\Container作为DI-Container时,它可能是相关的.

我目前正在使用Symfony 2中的组件构建一个小型库,例如HttpFoundation,Validator,Yaml.我的域服务都扩展了一个基本的AbstractService,只提供了Doctrine\ORM\EntityManager和Symfony\Component\Validator\Validator,它们通过构造函数注入,如下所示:

abstract class AbstractService
{
    protected $em;

    protected $validator;

    /**
     * @param Doctrine\ORM\EntityManager $em
     * @param Symfony\Component\Validator\Validator $validator
     */
    public function __construct(EntityManager $em, Validator $validator)
    {
        $this->em = $em;
        $this->validator = $validator;
    }
}
Run Code Online (Sandbox Code Playgroud)

扩展此AbstractService的Service类现在可能需要注入其他组件,例如Symfony\Component\HttpFoundation\Session.从我这样做:

class MyService extends AbstractService
{
    /**
     * @var Symfony\Component\HttpFoundation\Session
     */
    protected $session;

    /**
     * @param Symfony\Component\HttpFoundation\Session $session
     * @param Doctrine\ORM\EntityManager $em
     * @param Symfony\Component\Validator\Validator $validator
     */
    public function __construct(Session $session, EntityManager $em, Validator $validator)
    {
        parent::__construct($em, $validator);
        $this->session = $session;
    } …
Run Code Online (Sandbox Code Playgroud)

php oop dependency-injection symfony

8
推荐指数
1
解决办法
3138
查看次数

Composer不从本地存储库获取依赖项

我试图添加一个本地项目A作为项目B的依赖项.使用git daemon我能够获取项目A作为依赖项,但require无法识别在项目A中的composer.json中定义的依赖项.我错过了什么?

项目A:

{
    "name": "project/a",
    "require": {
        "monolog/monolog": "dev-master"
    }
}
Run Code Online (Sandbox Code Playgroud)

项目B:

"repositories": [
    {
        "type": "vcs",
        "url": "git://localhost/home/user/project-a"
    }
],
"require": {
    "project/a": "dev-master"
}
Run Code Online (Sandbox Code Playgroud)

结果(在项目B中):

vendor/
  project/a
Run Code Online (Sandbox Code Playgroud)

预期:

vendor/
  project/a
  monolog/monolog
Run Code Online (Sandbox Code Playgroud)

php composer-php

5
推荐指数
1
解决办法
2601
查看次数

标签 统计

php ×3

composer-php ×1

dependency-injection ×1

oop ×1

session ×1

silex ×1

symfony ×1