я пытаюсь развернуть свой проект laravel через кузницу и digitalocean. И хотя он отлично работает в моей локальной среде разработки, мне трудно запустить пакет laravel-websockets.
Итак, хотя мой «CruiseCrontroller» отлично работает локально, каким-то образом в процессе производства я получаю следующую ошибку.
[2020-12-22 15:42:00] production.ERROR: Class 'App\Events\newRoom' not found {"exception":"[object] (Error(code: 0): Class 'App\\Events\newRoom' not found at /home/forge/default/app/Http/Controllers/CruiseController.php:49)
это упомянутая строка в CruiseController:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Events\newRoom;
use App\Events\RoomStatusUpdate;
use App\Room;
use App\Sailor;
use Carbon\Carbon;
class CruiseController extends Controller
{
public function newRoom(Request $request){
...
event(new NewRoom($room->channel_id));
}
...
Я гуглил и искал через stackoverflow в течение 2 часов и надеюсь, что кто-то здесь может указать мне правильное направление. Спасибо
также имейте в виду, что вы импортировали newRoom
, но затем вызвали new NewRoom
, которого не существует
Будьте последовательны в наименовании и использовании регистра... У вас есть App\Events\RoomStatusUpdate
, что является правильным падежом, но также и App\Events\newRoom
, что является неправильным падежом. Это должно быть NewRoom
, на которое вы правильно ссылаетесь ниже. Это повсюду :Р
Регистр важен в файловых системах, чувствительных к регистру. Вы импортируете следующий класс:
use App\Events\newRoom;
в то время как вы должны импортировать
use App\Events\NewRoom;
Автозагрузчик пытается найти файл newRoom.php
и не может этого сделать, потому что файл с таким именем не существует.
Вы правы насчет использования case. Но изменение его не устраняет ошибку...
В этом случае посмотрите, есть ли у вас NewRoom.php
файл и внутри вы объявили NewRoom
класс.
Передислоцировано и работает сейчас. На самом деле, если есть другая ошибка, но это другой случай... Спасибо за помощь!
как выглядит
newRoom
? Кроме того, судя по имени класса, он может нарушать PSR-4/0, что не позволит добавить его в автозагрузчик в композиторе 2.