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

Наследования для собственного контроллера


Recommended Posts

Подскажите как работает наследование в Opencart 3. моя структура файлов:
image.png.8133513f7a0fb3621e1fe19823f70c55.png

Я хочу чтобы set_filter_body  наследовался от set_filter так же как set_filter наследуется от контроллера.

image.png.de343248bea4420291f0bc93ab67c664.png
image.png.50971a260d5260266b69ae467e1f1edb.png


Но без явного подключения

require_once(DIR_APPLICATION . 'controller/ocpinka/set_filter.php'); 

я получаю ошибку

Fatal error: Uncaught Error: Class 'ControllerOcpinkaSetFilter' not found in C:\OpenServer\domains\site.ua\catalog\controller\ocpinka\set_filter_body.php:3 Stack trace: #0 C:\OpenServer\domains\sitestorage\modification\system\engine\action.php(69): include_once() #1 C:\OpenServer\domains\site.ua\catalog\controller\startup\router.php(25): Action->execute() #2 C:\OpenServer\domains\sitestorage\modification\system\engine\action.php(79): ControllerStartupRouter->index() #3 C:\OpenServer\domains\site.ua\system\engine\router.php(67): Action->execute() #4 C:\OpenServer\domains\site.ua\system\engine\router.php(56): Router->execute() #5 C:\OpenServer\domains\site.ua\system\framework.php(169): Router->dispatch() #6 C:\OpenServer\domains\site.ua\system\startup.php(104): require_once('C:\\OpenServer\\d...') #7 C:\OpenServer\domains\site.ua\index.php(21): start() #8 {main} thrown in C:\OpenServer\domains\site.ua\catalog\controller\ocpinka\set_filter_body.php on line 3


Нужно дополнительно что-то настраивать, или использовать require_once это нормально?

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


require_once(DIR_APPLICATION . 'controller/ocpinka/set_filter.php');

Ну а як по іншому ))) Як побачить система клас контролера без завантаження його
В engine/action.php усі контролери теж завантажуються

 

$file  = DIR_APPLICATION . 'controller/' . $this->route . '.php';	
		$class = 'Controller' . preg_replace('/[^a-zA-Z0-9]/', '', $this->route);
		
		// Initialize the class
		if (is_file($file)) {
			include_once($file);
		
			$controller = new $class($registry);

 

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

В 19.02.2024 в 16:11, markimax сказав:
require_once(DIR_APPLICATION . 'controller/ocpinka/set_filter.php');

Ну а як по іншому ))) Як побачить система клас контролера без завантаження його
В engine/action.php усі контролери теж завантажуються

 

$file  = DIR_APPLICATION . 'controller/' . $this->route . '.php';	
		$class = 'Controller' . preg_replace('/[^a-zA-Z0-9]/', '', $this->route);
		
		// Initialize the class
		if (is_file($file)) {
			include_once($file);
		
			$controller = new $class($registry);

 

Я думав що система автоматично їх шукає та підключає

 

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


В 19.02.2024 в 19:39, KylunSergOC сказав:

Я думав що система автоматично їх шукає та підключає

 

Як технічно ви це собі представляли? ;)
Все рівно треба ж файл з класом завантажити "якось", щоб його "система побачила"

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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