Andrey
А как в phpstorm называется фича, которая автоматом создает вот такие комментарии? https://www.dropbox.com/s/qo2epdlxwk85gln/2017-11-29_17-12-04.png?dl=0
Вроде phpdoc называется. Создаются просто: вводишь /** перед переменной/методом/функцией/классом и т.п., и жмякаешь enter.
Andrey
Alt+ins -> phpdoc blocks
Может быть. У меня они вышеупомянутым способом создаются.
Daniil 👾
У меня очередной гениальный вопрос. Уверен, что всё просто, но понять логику не могу вторую неделю. Создал я файл в App\Magic\SoapService.php со следующим содержимым: <?php namespace App\Magic; class SoapService { public function getClient($wsdl) { $client = new \SoapClient($wsdl); return $client; } } В AppServiceProvider.php прописал: ... use Illuminate\Support\ServiceProvider; ... public function boot() { $this->app->bind('SoapService', \App\Magic\SoapService::class); } В HomeController.php пишу: <?php namespace App\Http\Controllers; use App\Magic\SoapService; use Illuminate\Http\Request; class HomeController extends Controller { protected $wsdl; public function __construct($wsdl) { $this->wsdl = $wsdl; } public function index() { dd($this->SoapService->getClient('http://some-url-to-wsdl')); } } И получаю ошибку Unresolvable dependency resolving [Parameter #0 [ <required> $wsdl ]] in class App\Http\Controllers\HomeController Курю мануалы, но не могу понять где ошибка
Daniil 👾
dd($this->SoapService->getClient('http://url'));
Daniil 👾
строка
Daniil 👾
или оно не так работает?
Maksim (Ellrion)
в конструкторе контроллера
Daniil 👾
то есть значение $wsdl мне надо определить заранее?
Maksim (Ellrion)
ну просто задай себе вопрос. как контейнер поймет что туда ложить? так же у тебя $this->SoapService тут ты вызываешь, но где оно заполняется?
Daniil 👾
я так полагал, что то что в скобках у $this->SoapService->getClient('') и есть тот параметр, что я хочу обработать
Maksim (Ellrion)
ты базовые принципы ООП в php не понимаешь? как создаются объекты, что такое методы, поля?
Daniil 👾
да. Я не могу понять конкретно способ реализации всего этого в laravel
Maksim (Ellrion)
нет ты не в ларе это не понимаешь судя по всему а именно вообще базово. стоит сначало разобраться с этим
Maksim (Ellrion)
причем тут та строка из метода контроллера и конструктор контроллера?
Daniil 👾
я уже ни в чем не уверен. Документация по теме "сервис-контейнеры" и "провайдеры" написана, кажется, для senior и то понимается лишь с годами)
Daniil 👾
смотрю на примеры и хоть убей, не вижу разницы в коде у них и у меня
Daniil 👾
но в примерах - вроде работает)
Maksim (Ellrion)
Сервис: class SomeConcreteSoapService { protected $wsdl; protected $client; public function __construct($wsdl) { $this->wsdl = $wsdl; } public function getClient() { if (null === $this->client) { $this->client = new \SoapClient($this->wsdl); } return $this->client; } } Провайдер (не в буте а в регистре): //in Provider public function register() { $this->app->bind(\App\Magic\SomeConcreteSoapService::class, function ($app) { return new \App\Magic\SomeConcreteSoapService($app->config['services.some_concrete.wsdl']); }); } Контроллер: class HomeController extends Controller { public function index(SomeConcreteSoapService $soap) { $soap->getClient(); } }
Daniil 👾
спасибо, кажется я понял, где допустил ошибку. Хотя теперь возникают вопросы, а всё ли в порядке в самой документации, с их примерами
Maksim (Ellrion)
уверен что всё впорядке. ты просто не догоняешь)
Daniil 👾
наверное. Теория - это одно. А практика - совсем другое)
Эмин
Просто вы относитесь к системе как к чему то магическому)
Эмин
следует залезть в исходники и понять каким образом контейнер собирает для вас зависимости
Эмин
там пару методов то
Illia
✋
Эмин
✋
🖐
Ар
🖐🏿
Daniil 👾
фух, вроде более менее понял принципы сервис-контейнеров. По крайней мере работает так, как задумано)
Daniil 👾
спасибо @ellrion
Maksim (Ellrion)
Maksim (Ellrion)
кто пользуется подключением к базам в шторме. кто знает нафига появилась в 2017.3 новая папка и как ее убрать http://joxi.ru/gmvQY4cxbnWNra
Illia
что внутри файлов?
Maksim (Ellrion)
это не файлы. это тупо список
Эмин
у меня ничего не появилось
Maksim (Ellrion)
у меня ничего не появилось
а ты сделай синхронайз (стрелки по кругу)
Эмин
действительно приехало...
Эмин
такое ощущение что это список кодировок которые поддерживает база
Maksim (Ellrion)
дак это оно и есть. вопрос не в том что это. вопрос в том нафига оно появилось и главное как убрать
Pavel
сверни и не разворачивай
Maksim (Ellrion)
совет пять балов, а я то думал как мне быть)
Pavel
ну если это единственная проблема, которая тебя беспокоит, то у тебя все хорошо)
Pavel
ну серьезно, это же фича. Она не навязчива.
Maksim (Ellrion)
она какраз навязчива. раньше я сразу попадал в схеммы теперь это папка
Maksim (Ellrion)
нет понятно что это фигня. но мб оно как то отрубается. ибо смысла фичи 0
Nikita
Всем привет. Пытаюсь к проекту на Laravel прикрутить React.JS – https://www.npmjs.com/package/laravel-mix-react – сделал как указано в статье, но при запуске nmp install dev получаю ошибку, что: TypeError: Mix.initialize is not a function at Object.<anonymous> ({project_dir}/node_modules/laravel-mix-react/setup/webpack.config.js:18:5) #react #laravel-mix-react Может помочь кто, люди добрые? Полная переустановка зависимостей не помогла :(
Nikita
Спасибо, в соседнем чатике тоже пресеты посоветовали. Только они с 5.5, а у меня 5.4. Вопрос откладывается – попробую обновить лару, а потом вернусь.
Arthur'); DROP TABLE Users;--
привет. шарит кто в relations? а то накопилось костылей и говнокода типа: MentorFollower::create([ 'mentor_id' => $mentor->id, 'user_id' => $user->id ]); у меня есть модели: user id mentor id mentor follower id | mentor_id | user_id какой relation нужен для $user->mentor и $mentor->followers? (у каждого юзера может быть только один ментор) для второго я юзаю так, но я получаю НЕ модель пользователей public function followers() { return $this->hasMany(MentorFollower::class); }
Dmitry
что в этой моделе?
Antonio
нет понятно что это фигня. но мб оно как то отрубается. ибо смысла фичи 0
я пока не обновился, но посмотри в настройках соединения, может там что-то поменялось? там например есть параметр отвечающий за подругзку этих данных при каждом коннекте
Arthur'); DROP TABLE Users;--
а что такое вообще MentorFollower ?
список фоловеров ментора
Dmitry
список фоловеров ментора
т.е. это просто связующая таблица?
Arthur'); DROP TABLE Users;--
всё что есть в ней, я написал
Arthur'); DROP TABLE Users;--
да
Arthur'); DROP TABLE Users;--
mentor тоже user, просто не каждый
Dmitry
да
тогда зачем ты ее как модель выносил? Это же просто связь многие ко многим
Arthur'); DROP TABLE Users;--
ооой
Arthur'); DROP TABLE Users;--
что-то да
Arthur'); DROP TABLE Users;--
забыл
Arthur'); DROP TABLE Users;--
Dmitry $mentor->followers public function followers() { return $this->belongsToMany(User::class, 'mentor_follower'); }
Arthur'); DROP TABLE Users;--
и $user->mentor
Arthur'); DROP TABLE Users;--
как с помощью модных save/attach/create зафоловить ментора?
Arthur'); DROP TABLE Users;--
$mentor->followers()->save($user);
Arthur'); DROP TABLE Users;--
$mentor->followers()->save($user);
а если наоборот? $user->mentor()->attach ?
Dmitry
getMentorAttribute не надо
Arthur'); DROP TABLE Users;--
getMentorAttribute не надо
дело в том что пользователь может фоловить только одного ментора
Dmitry
а если наоборот? $user->mentor()->attach ?
Mentor и User это у тебя разные сущности?
Arthur'); DROP TABLE Users;--
разные
Vladimir
тогда и pivot в принципе не нужен
Dmitry
разные
связь Пользователь - Ментор - 1 ко многим
Dmitry
User hasOne Mentor
Dmitry
Mentor hasMany Users
Arthur'); DROP TABLE Users;--
ой, что-то да, я нагрузил больше чем нужно
Arthur'); DROP TABLE Users;--
🙈
Dmitry
точнее тут наверное User hasOne Mentor -> User belongsTo Mentor
Arthur'); DROP TABLE Users;--
да