I am trying to write some custom helper functions for my Laravel 9 app using the advice given in the second answer (written by heisian) to this question. I think I've imitated everything faithfully but when I try to use the new function, intelephense says "Undefined type 'Helper'.
Here is my Helper.php (stored in app/Helpers/Helper.php):
<?php
namespace App\Helpers;
class Helper {
public static function hello() {
return "Hello!";
}
}
?>
Here is the only section I changed in config/app.php:
'aliases' => Facade::defaultAliases()->merge([
// 'ExampleClass' => App\Example\ExampleClass::class,
'Helper' => App\Helpers\Helper::class
])->toArray(),
Here is the part of my code where I actually use the new hello() function:
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Helper;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Listing>
*/
class ListingFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
$this->faker = \Faker\Factory::create();
/* Choose a single job title at random from the collection of job titles. */
// $titlesCollection = collect(['Junior Laravel Developer', 'Intermediate Laravel Developer', 'Senior Laravel Developer', 'Laravel Project Leader']);
// $randomTitleString = $titlesCollection->random();
$randomTitleString = Helper::hello();
Intelephense highlights the final line of this excerpt by putting a red squiggly line under Helper. I can make the error go away by changing:
use Helper;
to
use app\Helpers\Helper;
However, if I then try to execute php artisan migrate:refresh --seed I get a different error. However, the refresh/seed WORKS with use Helper;
despite the error and the hello() function does exactly what I've told it to do. (I should mention that I have done the composer dump-autoload
on my terminal as per the instructions in the linked question.)
Ultimately, the only real problem here is that Intelephense doesn't recognize the Helper class for what it is. Short of uninstalling Intelephense from my copy of VS Code, is there anything I can do to make it recognize that Helper is a legitimate class?