Home » Php » php – Call to undefined method JController::getInstance()

php – Call to undefined method JController::getInstance()

Posted by: admin July 12, 2020 Leave a comment


i seem to have tried everything. I am trying to learn how to create a new component and currently my folder structure looks like this (please note that the component does install).

This is a picture of my folder structure:

enter image description here

Ive closed some of it because i found it irelevant but please if you need to see whats inside of them please let me know.

as i stated above the component does install without problems. however when i try to access it i get the following error:

Fatal error: Call to undefined method JController::getInstance() in /home/marcrasm/public_html/Joomla/administrator/components/com_helloworld/helloworld.php on line 13

Now the file it is refering to is this one:

defined('_JEXEC') or die ('Restricted access');


$doc = JFactory::getDocument();

// gets the instance of the controller
// Get an instance of the controller prefixed by HelloWorld
$controller = JController::getInstance('HelloWorld');

// Perform the Request task
$input = JFactory::getApplication()->input;

// Redirect if set by the controller

I know it can be hard to tell but does anyone know what the problem might be?

How to&Answers:

Please check Joomla version

In 3.X

   $controller  = JControllerLegacy::getInstance('HelloWorld');

In 2.X

   $controller = JController::getInstance('HelloWorld');


You don’t say what version you are on but you probably want JControllerLegacy for J3 unless you are building with the new MVC. JController does not have a getInstance() Method but JControllerLegacy does see github.com/joomla/joomla-cms/blob/master/libraries/joomla/controller


The error message says that the JController does not have the static method getInstance().