• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Issue with BaseController and inheritance

#1
I have a problem with the BaseController and inheritance .

I am using Sub-Folders to organize my controllers. The controllers inherit from the BaseController is:


PHP Code:
<?php namespace App\Controllers;
use 
CodeIgniter\Controller;
class 
BaseController extends Controller
{ ... } 

<?
php namespace App\Controllers\Subfolder;
use 
App\Controllers\BaseController;
class 
MyController extends BaseController 
{ ... } 


The controller MyController has accesses to a protected function of the BaseController with:

PHP Code:
$this->baseControllerFunction(); 

In this function I use get_filenames from the filesystem-helper:

PHP Code:
$myCss get_filenames(FCPATH .'assets/css/'); 


So far this works. But the project is very complex and consists of several modules. So I want to add BaseControllers to each Sub-Folder, which inherit from the "global" BaseController.


PHP Code:
<?php namespace App\Controllers;
use 
CodeIgniter\Controller;
class 
BaseController extends Controller
{ ... }

<?
php namespace App\Controllers\Subfolder;
use 
App\Controllers\BaseController;
class 
SubfolderBaseController extends BaseController
{ ... }

<?
php namespace App\Controllers\Subfolder;
class 
MyController extends SubfolderBaseController 
{ ... } 


Now I get an error with the call:

PHP Code:
$this->baseControllerFunction(); 


Error-Message: Call to undefined function App\Controllers\get_filenames()

Why is the get_filenames function no longer available? The BaseController loads the helper for the filesystem with:


PHP Code:
protected $helpers = ['filesystem']; 


By inheritance the helper should be available in all subclases. So it is known to me from other object-oriented programming languages.

Thank you for your Support and Help!
Tom
Reply


Messages In This Thread
Issue with BaseController and inheritance - by SirTom - 07-29-2019, 03:35 AM

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2019 MyBB Group.