[ Index ] |
PHP Cross Reference of phpBB-3.3.14-deutsch |
[Summary view] [Print] [Text view]
1 --- 2 title: Upgrade 3 --- 4 5 This is a list of backwards compatibility (BC) breaks introduced in ProxyManager: 6 7 # 2.0.0 8 9 * PHP `~7.0` is now required to use ProxyManager 10 * HHVM compatibility is not guaranteed, as HHVM is not yet PHP 7 compliant 11 * All classes and interfaces now use [strict scalar type hints](http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration). 12 If you extended or implemented anything from the `ProxyManager\` namespace, you probably need to change 13 that code to adapt it to the new signature. 14 * All classes and interfaces now use [return type declarations](http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration). 15 If you extended or implemented anything from the `ProxyManager\` namespace, you probably need to change 16 that code to adapt it to the new signature. 17 * ProxyManager will no longer write proxies to disk by default: 18 the [`EvaluatingGeneratorStrategy`](src/GeneratorStrategy/EvaluatingGeneratorStrategy.php) is used instead. 19 If you still want ProxyManager to write files to disk, please refer to the [tuning for production docs](docs/tuning-for-production.md) 20 * Ghost objects were entirely rewritten, for better support and improved performance. Lazy-loading is not 21 triggered by public API access, but by property access (private and public). While this is not really a BC 22 break, you are encouraged to check your applications if you rely on [ghost objects](docs/lazy-loading-ghost-object.md). 23 * If ProxyManager can't find a proxy, it will now automatically attempt to auto-generate it, regardless of 24 the settings passed to it. 25 * `ProxyManager\Configuration#setAutoGenerateProxies()` was removed. Please look for calls to this method and 26 remove them. 27 * Private properties are now also correctly handled by ProxyManager: accessing proxy state via friend classes 28 (protected or private scope) does not require any particular workarounds anymore. 29 * `ProxyManager\Version::VERSION` was removed. Please use `ProxyManager\Version::getVersion()` instead. 30 * PHP 4 style constructors are no longer supported 31 32 # 1.0.0 33 34 `1.0.0` is be fully compatible with `0.5.0`. 35 36 # 0.5.0 37 38 * The Generated Hydrator has been removed - it is now available as a separate project 39 at [Ocramius/GeneratedHydrator](https://github.com/Ocramius/GeneratedHydrator) [#65](https://github.com/Ocramius/ProxyManager/pull/65) 40 * When having a `public function __get($name)` defined (by-val) and public properties, it won't be possible to get public 41 properties by-ref while initializing the object. Either drop `__get()` or implement 42 a by-ref `& __get()` [#126](https://github.com/Ocramius/ProxyManager/pull/126) 43 * Proxies are now being always auto-generated if they could not be autoloaded by a factory. The methods 44 [`ProxyManager\Configuration#setAutoGenerateProxies()`](https://github.com/Ocramius/ProxyManager/blob/0.5.0-BETA2/src/ProxyManager/Configuration.php#L67) 45 and [`ProxyManager\Configuration#doesAutoGenerateProxies()`](https://github.com/Ocramius/ProxyManager/blob/0.5.0-BETA2/src/ProxyManager/Configuration.php#L75) 46 are now no-op and deprecated, and will be removed in the next minor 47 version [#87](https://github.com/Ocramius/ProxyManager/pull/87) [#90](https://github.com/Ocramius/ProxyManager/pull/90) 48 * Proxy public properties defaults are now set before initialization [#116](https://github.com/Ocramius/ProxyManager/pull/116) [#122](https://github.com/Ocramius/ProxyManager/pull/122) 49 50 # 0.4.0 51 52 * An optional parameter `$options` was introduced 53 in [`ProxyManager\Inflector\ClassNameInflectorInterface#getProxyClassName($className, array $options = array())`](https://github.com/Ocramius/ProxyManager/blob/master/src/ProxyManager/Inflector/ClassNameInflectorInterface.php) 54 parametrize the generated class name as of [#10](https://github.com/Ocramius/ProxyManager/pull/10) 55 and [#59](https://github.com/Ocramius/ProxyManager/pull/59) 56 * Generated hydrators no longer have constructor arguments. Any required reflection instantiation is now dealt with 57 in the hydrator internally as of [#63](https://github.com/Ocramius/ProxyManager/pull/63) 58 59 # 0.3.4 60 61 * Interface names are also supported for proxy generation as of [#40](https://github.com/Ocramius/ProxyManager/pull/40) 62 63 # 0.3.3 64 65 * [Generated hydrators](https://github.com/Ocramius/ProxyManager/tree/master/docs/generated-hydrator.md) were introduced 66 67 # 0.3.2 68 69 * An additional (optional) [by-ref parameter was added](https://github.com/Ocramius/ProxyManager/pull/31) 70 to the lazy loading proxies' initializer to allow unsetting the initializer with less overhead. 71 72 # 0.3.0 73 74 * Dependency to [jms/cg](https://github.com/schmittjoh/cg-library) removed 75 * Moved code generation logic to [`Zend\Code`](https://github.com/zendframework/zf2) 76 * Added method [`ProxyManager\Inflector\ClassNameInflectorInterface#isProxyClassName($className)`](https://github.com/Ocramius/ProxyManager/blob/master/src/ProxyManager/Inflector/ClassNameInflectorInterface.php) 77 * The constructor of [`ProxyManager\Autoloader\Autoloader`](https://github.com/Ocramius/ProxyManager/blob/master/src/ProxyManager/Autoloader/Autoloader.php) 78 changed from `__construct(\ProxyManager\FileLocator\FileLocatorInterface $fileLocator)` to 79 `__construct(\ProxyManager\FileLocator\FileLocatorInterface $fileLocator, \ProxyManager\Inflector\ClassNameInflectorInterface $classNameInflector)` 80 * Classes implementing `CG\Core\GeneratorStrategyInterface` now implement 81 [`ProxyManager\GeneratorStrategy\GeneratorStrategyInterface`](https://github.com/Ocramius/ProxyManager/blob/master/src/ProxyManager/GeneratorStrategy/GeneratorStrategyInterface.php) 82 instead 83 * All code generation logic has been replaced - If you wrote any logic based on `ProxyManager\ProxyGenerator`, you will 84 have to rewrite it 85 86 # 0.2.0 87 88 * The signature of initializers to be used with proxies implementing 89 [`ProxyManager\Proxy\LazyLoadingInterface`](https://github.com/Ocramius/ProxyManager/blob/master/src/ProxyManager/Proxy/LazyLoadingInterface.php) 90 changed from: 91 92 ```php 93 $initializer = function ($proxy, & $wrappedObject, $method, $parameters) {}; 94 ``` 95 96 to 97 98 ```php 99 $initializer = function (& $wrappedObject, $proxy, $method, $parameters) {}; 100 ``` 101 102 Only the order of parameters passed to the closures has been changed.
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |