Browse Source

Update backwards compat alias generation.

Generate aliases in the new files. This allows us to resolve issues
where typehints result in fatal errors by ensuring that aliases exist
when the new class is used. The old class location forces the new
location to load which ensures that both names resolve to the same state
(class + alias loaded).

Unfortunately this requires relaxing the PSR1 side-effect rules as the
`@codingStandardsIgnoreStart` tags did not work.
Mark Story 9 years ago
parent
commit
946478e7a1

+ 0 - 2
composer.json

@@ -42,8 +42,6 @@
             "src/Core/functions.php",
             "src/Collection/functions.php",
             "src/I18n/functions.php",
-            "src/Database/backwards_compat.php",
-            "src/Http/backwards_compat.php",
             "src/Utility/bootstrap.php"
         ]
     },

+ 6 - 1
phpcs.xml.dist

@@ -1,4 +1,9 @@
 <?xml version="1.0"?>
 <ruleset name="CakePHP Core">
-    <rule ref="./vendor/cakephp/cakephp-codesniffer/CakePHP/ruleset.xml"/>
+ <rule ref="./vendor/cakephp/cakephp-codesniffer/CakePHP/ruleset.xml"/>
+
+ <!-- Necessary for class aliases used for backwards compat -->
+ <rule ref="PSR1.Files.SideEffects.FoundWithSymbols">
+  <severity>0</severity>
+ </rule>
 </ruleset>

+ 2 - 2
src/Database/Schema/Table.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earlier 3.x versions.
-class_alias('Cake\Database\Schema\TableSchema', 'Cake\Database\Schema\Table');
+// @deprecated Load new class and alias
+class_exists('Cake\Database\Schema\TableSchema');

+ 3 - 0
src/Database/Schema/TableSchema.php

@@ -879,3 +879,6 @@ class TableSchema
         return $dialect->dropConstraintSql($this);
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Database\Schema\TableSchema', 'Cake\Database\Schema\Table');

+ 0 - 3
src/Database/backwards_compat.php

@@ -1,3 +0,0 @@
-<?php
-// Ensure backwards compat aliases exists.
-class_exists('Cake\Database\Schema\Table');

+ 2 - 0
src/Http/Client.php

@@ -549,3 +549,5 @@ class Client
         return new $class($this, $options);
     }
 }
+// @deprecated Backwards compatibility with earler 3.x versions.
+class_alias('Cake\Http\Client', 'Cake\Network\Http\Client');

+ 3 - 0
src/Http/Client/Adapter/Stream.php

@@ -320,3 +320,6 @@ class Stream
         return array_merge($this->_contextOptions, $this->_sslContextOptions);
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Adapter\Stream', 'Cake\Network\Http\Adapter\Stream');

+ 3 - 0
src/Http/Client/Auth/Basic.php

@@ -72,3 +72,6 @@ class Basic
         return 'Basic ' . base64_encode($user . ':' . $pass);
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Auth\Basic', 'Cake\Network\Http\Auth\Basic');

+ 3 - 0
src/Http/Client/Auth/Digest.php

@@ -142,3 +142,6 @@ class Digest
         return $authHeader;
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Auth\Digest', 'Cake\Network\Http\Auth\Digest');

+ 3 - 0
src/Http/Client/Auth/Oauth.php

@@ -350,3 +350,6 @@ class Oauth
         );
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Auth\Oauth', 'Cake\Network\Http\Auth\Oauth');

+ 3 - 0
src/Http/Client/CookieCollection.php

@@ -117,3 +117,6 @@ class CookieCollection
         return array_values($this->_cookies);
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\CookieCollection', 'Cake\Network\Http\CookieCollection');

+ 3 - 0
src/Http/Client/FormData.php

@@ -268,3 +268,6 @@ class FormData implements Countable
         return http_build_query($data);
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\FormData', 'Cake\Network\Http\FormData');

+ 3 - 0
src/Http/Client/FormDataPart.php

@@ -221,3 +221,6 @@ class FormDataPart
         return $out;
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\FormDataPart', 'Cake\Network\Http\FormData\Part');

+ 3 - 0
src/Http/Client/Message.php

@@ -171,3 +171,6 @@ class Message
         return $this;
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Message', 'Cake\Network\Http\Message');

+ 3 - 0
src/Http/Client/Request.php

@@ -254,3 +254,6 @@ class Request extends Message implements RequestInterface
         return $this;
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Request', 'Cake\Network\Http\Request');

+ 3 - 0
src/Http/Client/Response.php

@@ -601,3 +601,6 @@ class Response extends Message implements ResponseInterface
         return isset($this->{$key});
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Client\Response', 'Cake\Network\Http\Response');

+ 3 - 0
src/Http/Response.php

@@ -2439,3 +2439,6 @@ class Response implements ResponseInterface
         ];
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\Response', 'Cake\Network\Response');

+ 3 - 0
src/Http/ServerRequest.php

@@ -2132,3 +2132,6 @@ class ServerRequest implements ArrayAccess, ServerRequestInterface
         unset($this->params[$name]);
     }
 }
+
+// @deprecated Add backwards compat alias.
+class_alias('Cake\Http\ServerRequest', 'Cake\Network\Request');

+ 0 - 4
src/Http/backwards_compat.php

@@ -1,4 +0,0 @@
-<?php
-// Ensure backwards compat aliases exists.
-class_exists('Cake\Network\Request');
-class_exists('Cake\Network\Response');

+ 2 - 2
src/Network/Http/Adapter/Stream.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Adapter\Stream', 'Cake\Network\Http\Adapter\Stream');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Adapter\Stream');

+ 2 - 2
src/Network/Http/Auth/Basic.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Auth\Basic', 'Cake\Network\Http\Auth\Basic');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Auth\Basic');

+ 2 - 2
src/Network/Http/Auth/Digest.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Auth\Digest', 'Cake\Network\Http\Auth\Digest');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Auth\Digest');

+ 2 - 2
src/Network/Http/Auth/Oauth.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Auth\Oauth', 'Cake\Network\Http\Auth\Oauth');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Auth\Oauth');

+ 2 - 2
src/Network/Http/Client.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client', 'Cake\Network\Http\Client');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client');

+ 2 - 2
src/Network/Http/CookieCollection.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\CookieCollection', 'Cake\Network\Http\CookieCollection');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\CookieCollection');

+ 2 - 2
src/Network/Http/FormData.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\FormData', 'Cake\Network\Http\FormData');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\FormData');

+ 2 - 1
src/Network/Http/FormData/Part.php

@@ -1,2 +1,3 @@
 <?php
-class_alias('Cake\Http\Client\FormDataPart', 'Cake\Network\Http\FormData\Part');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\FormDataPart');

+ 2 - 2
src/Network/Http/Message.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Message', 'Cake\Network\Http\Message');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Message');

+ 2 - 2
src/Network/Http/Request.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Request', 'Cake\Network\Http\Request');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Request');

+ 2 - 2
src/Network/Http/Response.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Client\Response', 'Cake\Network\Http\Response');
+// @deprecated Load new class and alias.
+class_exists('Cake\Http\Client\Response');

+ 2 - 2
src/Network/Request.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\ServerRequest', 'Cake\Network\Request');
+// @deprecated Load new class and alias
+class_exists('Cake\Http\ServerRequest');

+ 2 - 2
src/Network/Response.php

@@ -1,3 +1,3 @@
 <?php
-// @deprecated Backwards compatibility with earler 3.x versions.
-class_alias('Cake\Http\Response', 'Cake\Network\Response');
+// @deprecated Load new class and alias
+class_exists('Cake\Http\Response');