Magento2 Error – Class Not Found in classReader.php Line 34

class-not-foundcronerrormagento2setup-di-compile

Just got a problem while compiling:

Compilation was started.
Area configuration aggregation… 5/9 [=======>—–] 55% 1 min 326.0 MiB
In ClassReader.php line 45:

Impossible to process constructor argument Parameter #0 [ Warsaw
\Weather\Model\WeatherDataDBDetails $weatherDataDBDetails ] of Warsaw\Weath
er\Model\CronPostDb class

In ClassReader.php line 34:

Class Warsaw\Weather\Model\WeatherDataDBDetails does not exist

setup:di:compile

I made myself sure if my code (classes name etc.) is write correctly.

    <?php
namespace Warsaw\Weather\Console;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Warsaw\Weather\Model\CronPostDb;
class UpdateWeather extends Command
{
    private CronPostDb $cronPostDb;

    public function __construct(CronPostDb $cronPostDb)
    {

        $this->cronPostDb = $cronPostDb;
        parent::__construct();
    }

    protected function configure()
    {
        $this->setName('example:sayhello');
        $this->setDescription('Demo command line');

        parent::configure();
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $this->cronPostDb->updateWeather();
    }
}

Another file is :

<?php
declare(strict_types=1);

namespace Warsaw\Weather\Model;

use Warsaw\Weather\Model\WeatherDataDBDetails;


class CronPostDb
{
    private WeatherDataDBDetails $weatherDataDBDetails;

    public function __construct(WeatherDataDBDetails $weatherDataDBDetails)
    {
        $this->weatherDataDBDetails = $weatherDataDBDetails;

    }

    public function updateWeather()
    {
        $this->weatherDataDBDetails->setCity('name');
        $this->weatherDataDBDetails->setTemperature(25);
        $this->weatherDataDBDetails->save();
    }
}

Best Answer

Okay, I figured it out! So the issue was with name of the class "WeatherDataDBDetails" Magento 2 does not recognize 3 capital letters "DBD"