Symfony : Attempted to load class - classnotfoundexception

I have install setasign/fpdi on my Symfony, I create a class for generate a PDF :
class MerchPDF extends \FPDI {.... }
and I have this error :
Attempted to load class "FPDI" from the global namespace.
Did you forget a "use" statement?
on local, no problem.
on production, there is this error ... and all files are equals.
Are you an idea ?
Thanks

please have you already try to remove both TCPDF (if it is installed too) and FPDI from the classmap of the composer.json. Then add both: "tecnick.com/tcpdf": "dev-master", "setasign/fpdi": "1.4.2(here the version)", To the "require" part of the composer.json ?

If you require setasign/fpdi as a composer dependency, the base Fpdi class is not available in the global namespace, but in setasign\Fpdi namespace. So your class should start like this:
use setasign\Fpdi\Fpdi;
class MerchPDF extends Fpdi {
...
}
Not sure why it works locally, probably you have installed Fpdi by other means (i.e. not via composer) so it's available as a class in the global namespace.

Related

After Register in config/app.php ServiceProvider Class not found in laravel 9

I'm trying to develop my first package but I already struggle trying to do so.
I've followed 2 tutorials and done everything exactly as described however I'm getting:
Class "Dkul\Admin\AdminServiceProvider" not found.
I also check my config/app.php path are rights, and add composer, json in my custom package with the same namespace but getting not found error and In console give something like
In ProviderRepository.php line 208: Class "Dkul\Admin\AdminServiceProvider" not found.
file structure
custompackage
Dkul
Admin/src/AdminServiceProvider
Main Composer.json
"Dkul\Admin\":"custompackage/Dkul/Admin/src"
Config/app.php
Dkul\Admin\AdminServiceProvider::class
In Laravel composer.json, autoload section you have set path without top folder "app". Please try:
"autoload": {
"psr-4": {
...,
"Dkul\\Admin\\": "app/custompackage/Dkul/Admin/src"
}
},

Facing problem while trying to insert data in database, LARAVEL

I am getting this error "Class 'App\Models\Student' not found".
Please check my codes:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Student;
class StudentController extends Controller
{
public function data(){
$stud = new Student;
$stud->name = 'Mona Lisa';
$stud->rollnumber = '001';
$stud->save();
}
}
Your error is most likely in the namespace declaration of the Student model.
check in your class file App\Models\Student.php that the namespace is correct.
namespace App\Models;
then try to run in the console:
composer dump-autoload
Change this line:
use App\Models\Student;
to:
use App\Student;
Your error suggests that class is not loaded into the controller. I am guessing from the issue that you have created a separate directory for models if you have then you need to update your composer file to include new class paths for model classes. locate autoload in you composer.json file and add an entery in classmap array as shown below
"autoload": {
"classmap": [
"database",
"app/models"
]
}
then on command line navigate to your project directory and run the following command:
composer dump-autoload
and if you didn't create new models directory then just run
composer dump-autoload
Make sure your namespace of student model
use App\Models\Student If your model is in App\Models directory
use App\Student if your model is in app directory
Finally run composer dump-autoload
check your namespace of student model
use App\Models\Student If your model is in use App\Models directory
use App\Student if your model is in app directory
then go to command line and run composer dump-autoload

Class 'Socialite' not found [duplicate]

This question already has answers here:
Laravel Class Socialite not found
(9 answers)
Closed 5 years ago.
I am using Socialite package in my app. I followed all the instructions from the official github page. I am using Laravel 5.4.27. When I try to run the app, I get "Class 'Socialite' not found"error. What do I need to do??
I have also added use Socialite;, Laravel\Socialite\SocialiteServiceProvider::class, and 'Socialite' => Laravel\Socialite\Facades\Socialite::class, and I am using version 3 of socialite.
Here's the controller:
<?php
namespace App\Http\Controllers\Auth;
use Socialite;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class SocialLoginController extends Controller {
public function redirectToProvider($service, Request $request) {
return Socialite::driver($service)->redirect();
}
public function handleProviderCallback($service, Request $request) {
}
}
What do I do?
Try composer dump-autoload
composer install installs the vendor packages according to composer.lock (or creates composer.lock if not present),
composer update always regenerates composer.lock and installs the lastest versions of available packages based on composer.json
composer dump-autoload won’t download a thing. It just regenerates the list of all classes that need to be included in the project (autoload_classmap.php). Ideal for when you have a new class inside your project.
Ideally, you execute composer dump-autoload -o , for a faster load of your webpages. The only reason it is not default, is because it takes a bit longer to generate (but is only slightly noticable)
EDIT:
Also clear the config cache:
php artisan config:clear
If all this stuff do not help, try this answer (find in old stack questions like "socialite not found"):
https://stackoverflow.com/a/28451747/7155723
Hope it will help you :)

Laravel 4.2 , Model (eloquent) my own class not found

I have this weird error ... I apparently cannot use any of my model class in my project..
Ad_category model
class Ad_category extends Eloquent {
protected $table = 'ad_category';
protected $fillable = array('*');
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
}
calling this
$ad_cat=Ad_category::find(1);
error
`Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR)
Class 'Ad_category' not found `
PHP frameworks use a system called "autoloading" to automatically include or require in the correct class definition file when you want to use a class. Autoloading in Laravel 4.2 is in a bit of a transitional spot, which means there's multiple answers to your question.
By default, Laravel 4.2 will look for a class named Ad_category in one of the following four locations.
app/commands/Ad/category.php
app/controllers/Ad/category.php
app/models/Ad/category.php
app/database/seeds/Ad/category.php
That is, Laravel's autoloader will automatically convert Ad_category into the file path Ad/category.php, and then check each configured autoload path for that file. You can configure the base autoloader paths in
#File: app/start/global.php
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
));
Laravel 4.2 also uses composer based autoloading. Specifically, is uses a very aggressive form of composer autoloading called classmap autoloading. If you look in your composer.json file, you'll see a section like this
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
When you manually run the command
$ composer dumpautoload
Composer will go through every folder in the above section and look for PHP class files. If it finds one, it adds it to the classmap in vendor/composer/autoload_classes.php. Composer also runs this command automatically during updates.
So, what this means is, if you've defined Ad_category in a different location than Laravel expects to find it, you may be able to get away with running
$ composer dumpautoload
and Laravel will use Composer's autoloader to find your class.

phpunit cannot find Class, PHP Fatal error

I get phpunit and install it as this link using the simplest way for test purposes.
I just download the phpunit.phar file, chmod & rename & move to /usr/local/bin Then, I run phpunit --version, its ok.
PHPUnit 3.7.27 by Sebastian Bergmann
I write a simple test
public function testSomething(){
$this -> assertTrue(true)
}
Then I go into the source file folder, phpunit --colors Test
It works. So, I decide write a complex demo.
My project folder structure is like this.
Project Name
--> app
--> api
--> tests
Now I write a simple class in app/api/FlyApi.php
<?php
class FlyApi {
public function makeFly(){
//do something else
}
}
Then I write another test class for FlyApi.php
<?php
class FlyApiTest extends PHPUnit_Framework_TestCase {
public function testFly(){
//new a FlyApi
$flyApi = new FlyApi();
//do something
}
}
At this line $flyApi = new FlyApi() I got the error.
PHP Fatal error: Class 'FlyApi' not found in /home/kevin/Workspace/fly/app/api/FlyApi.php on line 23
Yes, this line $flyApi = new FlyApi()
You didn't load the definition of your FlyApi class.
This solution is Laravel specific:
You should be extending TestCase rather than PHPUnit_Framework_TestCase.
Try adding your /api/ folder into your ClassLoader at app\start\global.php.
You will find this section:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
...
app_path().'/api/
));
Are you using Laravel's phpunit.xml file? It includes Laravel's (and Composer's) autoload.php file which lets you use all your autoloaded classes within it.
Finally, what's the whole error? It should (hopefully) tell you what class it's trying to load (which will give you clues if the namespace is wrong or something).

Resources