How to get Symfony session variable in model?

前端 未结 2 1572
忘掉有多难
忘掉有多难 2021-01-07 11:07

How can I pass session variable in symfony model without using sfContext::getInstance()?

2条回答
  •  悲哀的现实
    2021-01-07 11:18

    The recommended way is called dependency injection, and works like this: you create a setUser() method in your model file, that saves the given parameter to a private property:

    class Foo {
      private $_user;
    
      public function setUser(myUser $user) {
        $this->_user = $user;
      }
    
      // ... later:
    
      public function save(Doctrine_Connection $conn = null) {
        // use $this->_user to whatever you need
      }
    }
    

    This looks clumsy, because it is. But without you answering the question what are you trying to do? I cannot give an alternative.

    Recommended articles:

    • What is Dependency Injection? - a post series on Fabien Potencier's blog
    • Dependency Injection - the design patter in detail on wikipedia

提交回复
热议问题