Code Duplication    Length = 34-35 lines in 2 locations

lib/Doctrine/ODM/MongoDB/Proxy/ProxyFactory.php 2 locations

@@ 107-141 (lines=35) @@
104
        ReflectionProperty $reflectionId
105
    ) {
106
        if ($classMetadata->getReflectionClass()->hasMethod('__wakeup')) {
107
            return function (BaseProxy $proxy) use ($documentPersister, $reflectionId) {
108
                $proxy->__setInitializer(null);
109
                $proxy->__setCloner(null);
110
111
                if ($proxy->__isInitialized()) {
112
                    return;
113
                }
114
115
                $properties = $proxy->__getLazyProperties();
116
117
                foreach ($properties as $propertyName => $property) {
118
                    if (isset($proxy->$propertyName)) {
119
                        continue;
120
                    }
121
122
                    $proxy->$propertyName = $properties[$propertyName];
123
                }
124
125
                $proxy->__setInitialized(true);
126
                $proxy->__wakeup();
127
128
                $id = $reflectionId->getValue($proxy);
129
130
                if ($documentPersister->load(['_id' => $id], $proxy) === null) {
131
                    if (! $this->lifecycleEventManager->documentNotFound($proxy, $id)) {
132
                        throw DocumentNotFoundException::documentNotFound(get_class($proxy), $id);
133
                    }
134
                }
135
136
                if (! ($proxy instanceof NotifyPropertyChanged)) {
137
                    return;
138
                }
139
140
                $proxy->addPropertyChangedListener($this->uow);
141
            };
142
        }
143
144
        return function (BaseProxy $proxy) use ($documentPersister, $reflectionId) {
@@ 144-177 (lines=34) @@
141
            };
142
        }
143
144
        return function (BaseProxy $proxy) use ($documentPersister, $reflectionId) {
145
            $proxy->__setInitializer(null);
146
            $proxy->__setCloner(null);
147
148
            if ($proxy->__isInitialized()) {
149
                return;
150
            }
151
152
            $properties = $proxy->__getLazyProperties();
153
154
            foreach ($properties as $propertyName => $property) {
155
                if (isset($proxy->$propertyName)) {
156
                    continue;
157
                }
158
159
                $proxy->$propertyName = $properties[$propertyName];
160
            }
161
162
            $proxy->__setInitialized(true);
163
164
            $id = $reflectionId->getValue($proxy);
165
166
            if ($documentPersister->load(['_id' => $id], $proxy) === null) {
167
                if (! $this->lifecycleEventManager->documentNotFound($proxy, $id)) {
168
                    throw DocumentNotFoundException::documentNotFound(get_class($proxy), $id);
169
                }
170
            }
171
172
            if (! ($proxy instanceof NotifyPropertyChanged)) {
173
                return;
174
            }
175
176
            $proxy->addPropertyChangedListener($this->uow);
177
        };
178
    }
179
180
    /**