mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Starting to write a new App::import() that keeps where possible the backwards compatibility
This commit is contained in:
parent
90b01b7ec3
commit
e6b253ec0f
3 changed files with 40 additions and 34 deletions
|
@ -52,18 +52,18 @@ class App {
|
|||
* @var array
|
||||
*/
|
||||
public static $types = array(
|
||||
'class' => array('suffix' => '.php', 'extends' => null, 'core' => true),
|
||||
'file' => array('suffix' => '.php', 'extends' => null, 'core' => true),
|
||||
'model' => array('suffix' => '.php', 'extends' => 'AppModel', 'core' => false),
|
||||
'behavior' => array('suffix' => '.php', 'extends' => 'ModelBehavior', 'core' => true),
|
||||
'controller' => array('suffix' => '_controller.php', 'extends' => 'AppController', 'core' => true),
|
||||
'component' => array('suffix' => '.php', 'extends' => null, 'core' => true),
|
||||
'lib' => array('suffix' => '.php', 'extends' => null, 'core' => true),
|
||||
'view' => array('suffix' => '.php', 'extends' => null, 'core' => true),
|
||||
'helper' => array('suffix' => '.php', 'extends' => 'AppHelper', 'core' => true),
|
||||
'vendor' => array('suffix' => '', 'extends' => null, 'core' => true),
|
||||
'shell' => array('suffix' => '.php', 'extends' => 'Shell', 'core' => true),
|
||||
'plugin' => array('suffix' => '', 'extends' => null, 'core' => true)
|
||||
'class' => array('extends' => null, 'core' => true),
|
||||
'file' => array('extends' => null, 'core' => true),
|
||||
'model' => array('extends' => 'AppModel', 'core' => false),
|
||||
'behavior' => array('extends' => 'ModelBehavior', 'core' => true),
|
||||
'controller' => array('suffix' => 'Controller', 'extends' => 'AppController', 'core' => true),
|
||||
'component' => array('suffix' => 'Component', 'extends' => null, 'core' => true),
|
||||
'lib' => array('extends' => null, 'core' => true),
|
||||
'view' => array('suffix' => 'View', 'extends' => null, 'core' => true),
|
||||
'helper' => array('suffix' => 'Helper', 'extends' => 'AppHelper', 'core' => true),
|
||||
'vendor' => array('extends' => null, 'core' => true),
|
||||
'shell' => array('suffix' => 'Shell', 'extends' => 'Shell', 'core' => true),
|
||||
'plugin' => array('extends' => null, 'core' => true)
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -525,11 +525,28 @@ class App {
|
|||
extract($parent, EXTR_OVERWRITE);
|
||||
}
|
||||
|
||||
if ($name === null && $file === null) {
|
||||
$name = $type;
|
||||
$type = 'Core';
|
||||
} elseif ($name === null) {
|
||||
$type = 'File';
|
||||
if ($name == null && $file == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$originalType = $type = strtolower($type);
|
||||
$specialPackage = in_array($type, array('core', 'file', 'vendor'));
|
||||
if (!$specialPackage && isset(self::$legacy[$type . 's'])) {
|
||||
$type = self::$legacy[$type . 's'];
|
||||
}
|
||||
|
||||
if (!$specialPackage) {
|
||||
list($plugin, $name) = pluginSplit($name, true);
|
||||
|
||||
if ($type == 'Console/Command' && $name == 'Shell') {
|
||||
$type = 'Console';
|
||||
} else if (isset(self::$types[$originalType]['suffix'])) {
|
||||
$suffix = self::$types[$originalType]['suffix'];
|
||||
$name .= ($suffix == $name) ? '' : $suffix;
|
||||
}
|
||||
|
||||
App::uses(Inflector::camelize($name), $plugin . $type);
|
||||
return (bool) self::load($name);
|
||||
}
|
||||
|
||||
if (is_array($name)) {
|
||||
|
|
|
@ -85,7 +85,8 @@ class CakeTestRunner extends PHPUnit_TextUI_TestRunner {
|
|||
}
|
||||
throw new RuntimeException(__('Could not find fixture manager %s.', $arguments['fixtureManager']));
|
||||
}
|
||||
if (App::import('Lib', 'test_suite/AppFixtureManager')) {
|
||||
App::uses('AppFixtureManager', 'TestSuite');
|
||||
if (class_exists('AppFixtureManager')) {
|
||||
return new AppFixtureManager();
|
||||
}
|
||||
return new CakeFixtureManager();
|
||||
|
|
|
@ -352,9 +352,6 @@ class AppImportTest extends CakeTestCase {
|
|||
* @return void
|
||||
*/
|
||||
function testClassLoading() {
|
||||
$file = App::import();
|
||||
$this->assertTrue($file);
|
||||
|
||||
$file = App::import('Model', 'Model', false);
|
||||
$this->assertTrue($file);
|
||||
$this->assertTrue(class_exists('Model'));
|
||||
|
@ -363,15 +360,15 @@ class AppImportTest extends CakeTestCase {
|
|||
$this->assertTrue($file);
|
||||
$this->assertTrue(class_exists('Controller'));
|
||||
|
||||
$file = App::import('Component', 'Component', false);
|
||||
$file = App::import('Component', 'Auth', false);
|
||||
$this->assertTrue($file);
|
||||
$this->assertTrue(class_exists('Component'));
|
||||
$this->assertTrue(class_exists('AuthComponent'));
|
||||
|
||||
$file = App::import('Shell', 'Shell', false);
|
||||
$this->assertTrue($file);
|
||||
$this->assertTrue(class_exists('Shell'));
|
||||
|
||||
$file = App::import('Lib', 'config/PhpReader');
|
||||
$file = App::import('Configure', 'PhpReader');
|
||||
$this->assertTrue($file);
|
||||
$this->assertTrue(class_exists('PhpReader'));
|
||||
|
||||
|
@ -383,23 +380,14 @@ class AppImportTest extends CakeTestCase {
|
|||
$this->assertTrue(class_exists('AppModel'));
|
||||
|
||||
$file = App::import('WrongType', null, true, array(), '');
|
||||
$this->assertTrue($file);
|
||||
$this->assertFalse($file);
|
||||
|
||||
$file = App::import('Model', 'NonExistingPlugin.NonExistingModel', false);
|
||||
$this->assertFalse($file);
|
||||
|
||||
$file = App::import('Core', 'NonExistingPlugin.NonExistingModel', false);
|
||||
$this->assertFalse($file);
|
||||
|
||||
$file = App::import('Model', array('NonExistingPlugin.NonExistingModel'), false);
|
||||
$this->assertFalse($file);
|
||||
|
||||
$file = App::import('Core', array('NonExistingPlugin.NonExistingModel'), false);
|
||||
$this->assertFalse($file);
|
||||
|
||||
$file = App::import('Core', array('NonExistingPlugin.NonExistingModel.AnotherChild'), false);
|
||||
$this->assertFalse($file);
|
||||
|
||||
if (!class_exists('AppController')) {
|
||||
$classes = array_flip(get_declared_classes());
|
||||
|
||||
|
|
Loading…
Reference in a new issue