Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Нашел возможный баг движка


Recommended Posts

Все началось с того, что я разбирался с нововведениями версии OC 2.3 загрузки модели из лоадера....

Пример "бага":

файл конроллера:

class ControllerTest extends Controller {
	public function index() {
		$this->load->model('test');
		
		echo '<pre>';
		echo 'model_test1->method1 = ' . $this->model_test1->test1() . PHP_EOL;

		$this->load->model('test2');
		
		echo 'model_test2->method2 = ' . $this->model_test2->test2() . PHP_EOL;
		echo 'model_test1->method2 = ' . $this->model_test1->test2(). PHP_EOL;
	}
}

фйлы моделей test1 и test2

 

class ModelTest1 extends Model {
	function test1 () {
		$this->v = 'test1_1';
		return $this->v;
	}
	
	function test2 () {
		return $this->v;
	}
}
class ModelTest2 extends Model {
	function test1 () {
		return $this->v;
	}
	
	function test2 () {
		$this->v = 'test2_2';
		return  $this->v;
	}
}

Результат

Цитата

model_test1->method1 = test1_1

model_test2->method2 = test2_2

model_test1->method2 = test2_2

 

Да я знаю что никто впринципе не будет присваивать незадекларированным свойствам какие-то значения и что такого совпадения в обычной работе OC врядли возможно , но факт есть факт и подгрузка модели вроде осталось такой же и в 3 версии. 

Змінено користувачем rodigy
Надіслати
Поділитися на інших сайтах


по 3ке сюда тож можно отписаться
https://opencartforum.com/topic/83948-opencart-3000/?page=4

 

Надіслати
Поділитися на інших сайтах


24 минуты назад, rodigy сказал:

AWARO, да  это не общие вопросы, а больше с кодом связанно, ошибки/баги и т.п.

там обсуждают как раз все косяки
ещё и тут тож
https://opencartforum.com/topic/78038-3000-ili-chto-nas-zhdet/?page=14

 

Надіслати
Поділитися на інших сайтах


8 часов назад, rodigy сказал:

Все началось с того, что я разбирался с нововведениями версии OC 2.3 загрузки модели из лоадера....

Пример "бага":

файл конроллера:


class ControllerTest extends Controller {
	public function index() {
		$this->load->model('test');
		
		echo '<pre>';
		echo 'model_test1->method1 = ' . $this->model_test1->test1() . PHP_EOL;

		$this->load->model('test2');
		
		echo 'model_test2->method2 = ' . $this->model_test2->test2() . PHP_EOL;
		echo 'model_test1->method2 = ' . $this->model_test1->test2(). PHP_EOL;
	}
}

фйлы моделей test1 и test2

 


class ModelTest1 extends Model {
	function test1 () {
		$this->v = 'test1_1';
		return $this->v;
	}
	
	function test2 () {
		return $this->v;
	}
}

class ModelTest2 extends Model {
	function test1 () {
		return $this->v;
	}
	
	function test2 () {
		$this->v = 'test2_2';
		return  $this->v;
	}
}

Результат

 

Да я знаю что никто впринципе не будет присваивать незадекларированным свойствам какие-то значения и что такого совпадения в обычной работе OC врядли возможно , но факт есть факт и подгрузка модели вроде осталось такой же и в 3 версии. 

 

Встречал когда использовались незадекларированные свойства  и наступал на эти чужие г... грабли
Но это скажем так, можно конечно называть overload, но это  ошибка, говнокод
Писал авторам - исправляли.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.