mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/11103] Use scope: prototype
This lets us clean up the mess that was in load_object(), but requires scope: prototype to be added to the service definitions for all types or methods! PHPBB3-11103
This commit is contained in:
parent
357a4facf6
commit
84284a9cce
3 changed files with 19 additions and 20 deletions
|
@ -15,6 +15,7 @@ services:
|
|||
|
||||
notification.type.approve_post:
|
||||
class: phpbb_notification_type_approve_post
|
||||
scope: prototype # scope MUST be prototype for this to work! # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -31,6 +32,7 @@ services:
|
|||
|
||||
notification.type.approve_topic:
|
||||
class: phpbb_notification_type_approve_topic
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -47,6 +49,7 @@ services:
|
|||
|
||||
notification.type.bookmark:
|
||||
class: phpbb_notification_type_bookmark
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -63,6 +66,7 @@ services:
|
|||
|
||||
notification.type.disapprove_post:
|
||||
class: phpbb_notification_type_disapprove_post
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -79,6 +83,7 @@ services:
|
|||
|
||||
notification.type.disapprove_topic:
|
||||
class: phpbb_notification_type_disapprove_topic
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -95,6 +100,7 @@ services:
|
|||
|
||||
notification.type.pm:
|
||||
class: phpbb_notification_type_pm
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -111,6 +117,7 @@ services:
|
|||
|
||||
notification.type.post:
|
||||
class: phpbb_notification_type_post
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -127,6 +134,7 @@ services:
|
|||
|
||||
notification.type.post_in_queue:
|
||||
class: phpbb_notification_type_post_in_queue
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -143,6 +151,7 @@ services:
|
|||
|
||||
notification.type.quote:
|
||||
class: phpbb_notification_type_quote
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -159,6 +168,7 @@ services:
|
|||
|
||||
notification.type.report_pm:
|
||||
class: phpbb_notification_type_report_pm
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -175,6 +185,7 @@ services:
|
|||
|
||||
notification.type.report_pm_closed:
|
||||
class: phpbb_notification_type_report_pm_closed
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -191,6 +202,7 @@ services:
|
|||
|
||||
notification.type.report_post:
|
||||
class: phpbb_notification_type_report_post
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -207,6 +219,7 @@ services:
|
|||
|
||||
notification.type.report_post_closed:
|
||||
class: phpbb_notification_type_report_post
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -223,6 +236,7 @@ services:
|
|||
|
||||
notification.type.topic:
|
||||
class: phpbb_notification_type_topic
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -239,6 +253,7 @@ services:
|
|||
|
||||
notification.type.topic_in_queue:
|
||||
class: phpbb_notification_type_topic_in_queue
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -255,6 +270,7 @@ services:
|
|||
|
||||
notification.method.email:
|
||||
class: phpbb_notification_method_email
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
@ -269,6 +285,7 @@ services:
|
|||
|
||||
notification.method.jabber:
|
||||
class: phpbb_notification_method_jabber
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
arguments:
|
||||
- @user_loader
|
||||
- @dbal.conn
|
||||
|
|
|
@ -779,24 +779,6 @@ class phpbb_notification_manager
|
|||
*/
|
||||
protected function load_object($object_name)
|
||||
{
|
||||
// Here we cannot just use ContainerBuilder->get(name)
|
||||
// The reason for this is because get handles services
|
||||
// which are initialized once and shared. Here we need
|
||||
// separate new objects because we pass around objects
|
||||
// that store row data in each object, which would lead
|
||||
// to over-writing of data if we used get()
|
||||
|
||||
$parameterBag = $this->phpbb_container->getParameterBag();
|
||||
$definition = $this->phpbb_container->getDefinition($object_name);
|
||||
$arguments = $this->phpbb_container->resolveServices(
|
||||
$parameterBag->unescapeValue($parameterBag->resolveValue($definition->getArguments()))
|
||||
);
|
||||
$r = new \ReflectionClass($parameterBag->resolveValue($definition->getClass()));
|
||||
|
||||
$object = null === $r->getConstructor() ? $r->newInstance() : $r->newInstanceArgs($arguments);
|
||||
|
||||
$object->set_notification_manager($this);
|
||||
|
||||
return $object;
|
||||
return $this->phpbb_container->get($object_name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ class phpbb_notification_test extends phpbb_database_test_case
|
|||
'allow_forum_notify' => true,
|
||||
));
|
||||
$this->user = new phpbb_mock_user();
|
||||
$this->user_loader = new phpbb_user_loader($this->db, 'phpbb_users');
|
||||
$this->user_loader = new phpbb_user_loader($this->db, $phpbb_root_path, $phpEx, 'phpbb_users');
|
||||
$this->auth = new phpbb_mock_notifications_auth();
|
||||
$this->cache = new phpbb_mock_cache();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue