i think the AbstractPluginManager had a seconds argument that is passed to
the constructor.
On Jan 10, 2014 7:57 PM, "Philip G" <guice...@gmail.com> wrote:

> As pointed out earlier by our lord and savior Matthew O'Phinney, Zend\Di is
> becoming less desired component in favor of ServiceManager.
>
> Works for me. I agree SM is much easier to use, except in one instance. So
> I turn to the community to help me resolve this one instance:
>
> > How do I get a ServiceManager object with __constructor() parameters?
>
> My dilemma: I'm building a super-small application with very limited
> requirements that is dependent on PDO.
>
> However, PDO requires constructor parameters. How do I create a PDO loader
> that can 1) be cached by PHP5.5 opcode 2) doesn't require a bunch of other
> classes and 3) can be loaded only at the time I need to make a PDO call.
> (speed of application is #1 requirement)
>
> $sm->get('PDO'); doesn't work since I can't pass in construction
> parameters.
> $sm->get('Db'); won't work either, since construction parameters exist
> within the same file the closure would be included:
>
> ```
> app.config.php = [
>   'sm' => array(
>         "factories" => array(
>             'Db' => function ($sm) {
>                 (PS: Are these cached now? I recall some caching issues
> with embedded closures)
>                 // $sm->get('Config');  is invalid; not using
> Zend\Application that would inject this.
>                 //return new PDO(); // No way to get construct parameters
> below...
>             },
>         )
>     ),
> // ....
>     "db" => [
>         "dsn" =>
>
> 'cassandra:host=127.0.0.1;port=9160,host=127.0.0.2;port=9162;version=3.0.0;dbname=test',
>         "username" => null,
>         "password" => null,
>     ],
> ];
> ```
>
> For Di, I could pass in the parameters: $di->get('PDO', $cfg['db']);
> This isn't possible for SM. This little functionality would make a world of
> difference.
>
> ---
> Philip
> g...@gpcentre.net
> http://www.gpcentre.net/
>

Reply via email to