Что такое автозагрузка в composer.json и как мы можем использовать это в laravel?

Я только начинаю работать с Laravel, хотите создать собственный класс и хотите вызывать этот класс в каждом контроллере. Для этого я создаю Customer класс в app/Library/ папка.

Когда я попытался автоматически загрузить эту библиотеку через композитор, json выдает ошибку:

Не удалось найти классы внутри «App / Library / Customer», которые не являются ни файлом, ни папкой.

Как мы можем использовать класс автозагрузки в контроллерах?

Customer.php

<?php
namespace App\Library;
use App\Model\User;
class Customer
{
public function login($user_name,$password){
$data = User::where('email', $user_name)
->where('password', $password)
->first();
return $data->id';
}
}

Раздел автозагрузки Composer.json

{
"autoload": {
"classmap": [
"database",
"app/Library/Customer"],
"psr-4": {
"App\\": "app/"},
"files" : [
"app/Helper/helper.php"]
}
}

-1

Решение

Я думаю, вы не понимаете, для чего нужна автозагрузка композитора. Вы используете это для включения библиотек и их зависимостей, а не для классов, которые вы создали в своем приложении.

Лучше всего, когда вы создаете контроллер add в классе, который вы хотите использовать, например:

<?php
use App\Library\Customer;

Вы должны будете поместить это в каждый контроллер.

0

Другие решения

Вы должны удалить его из группы классов и просто добавить правильное пространство имен и класс. Вы можете увидеть все стандарты PSR-4 здесь: http://www.php-fig.org/psr/psr-4/

Допустим, у вас есть структура папок, как это:

app
-> Library
-> Customer.php // namespace App\Library; class Customer{}
-> Model
-> User.php // namespace App\Model; class User{}

И все файлы должны автоматически загружаться, если вы используете правильное пространство имен и имена классов.

Кстати, вы должны использовать вместо этого Auth фасад: https://laravel.com/docs/5.4/authentication

0

Там нет необходимости classmap как уже psr-4 автозагрузка на месте. Вы должны понять, как это работает. тогда вы можете просто импортировать ваши классы, используя use Ключевое слово, как это

<?php

use App\Library\Customer;

Для получения дополнительной информации читайте PSR-4: автозагрузчик и возьми это Руководство

0