@laravel_pro

Страница 170 из 2014
B?N
15.11.2016
06:25:13
есть trait, допустим Confirmable, в нем есть функция confirm(), есть несколько классов, родителем которых является общий абстрактный класс. в некоторых классах надо добавлять этот trait, а в некоторых не надо. сам метод confirm - публичный и будет вызыватся из вне. Вопрос такой: как правильно определить использует ли класс этот трейт и потом вызвать функцию эту или нет? class_uses - знаю, но она скорее для автозагрузки подходит чем для этого... может есть что то вроде instanceof только для trait-ов ?

Sergey
15.11.2016
06:25:40
создай интерфейс

наследуй классы использующие трейт интерфейсом и проверяй через instanceof

или вообще просто тайпхинтинг сделать на этот интерфейс и ничего не проверять - пусть падает если в него что-то не то передали. В данном случае нужно проверять не реализацию (используемый трейт), а определение (по интерфейсу). Это называется инкапсуляцией

Google
Sergey
15.11.2016
06:27:28
Если не путаю термин

B?N
15.11.2016
06:28:35
http://php.net/manual/en/function.method-exists.php

может так? )

Sergey
15.11.2016
06:28:49
метод эксист - это не ООП подход :)

можешь так, но что будет, если у тебя будут 2 класса с одинаковым методом confirm(), но использующиеся в соверщенно разных местах?

код запутается и выполнит это. а вот упадет что или не упадет и насколько серьезно - это уже дело случая

B?N
15.11.2016
06:31:09
суть в том что снаружи у меня код будет типа такой if (есть_трейт) { $obj->confirm() } сейчас у меня просто $obj->confirm() и без трейтов, просто вставил заглушку функции во все классы, но такой подход мне вообще не нравится))

Sergey
15.11.2016
06:32:31
interface ConfirmableInterface { public funciton confirm(); } class A implements ConfirmableInterface { use ConfirmableTrait; // мы можем использовать любой другой трейт или реализовать функцию самому } class B { public function confirm() {}; } function test(ConfirmableInterface $c) { $c = $c->confirm(); // мы точно знае что в этом месте класс делает что нам надо, за это отвечает ConfirmableInterface } test(new A()); // Заработает test(new B()); // Упадет, так как мы передали не то что нам надо, но с методом confirm

Тебе надо продумывать это место не отталкиваясь от реализации (трейта), а от определения функций (интерфейса). Это сокрытие и есть постулат ООП

один из них

B?N
15.11.2016
06:34:27
Супер!

теперь все понял, спасибо за пример

Sergey
15.11.2016
06:35:34
?

Google
Константин
15.11.2016
06:43:38
Приветствую, коллеги подскажите, как получить URL, по которому переходил пользователь, до того момента как его поймал фильтр авторизации? Redirect::intended() передает уже сформированный html, а если задача получить именно путь изначального перехода строкой, то как быть?

Dmitriy
15.11.2016
17:23:04
Centralised Logging System for Laravel in an ElasticStack https://www.youtube.com/watch?v=2DL1c9k67og

Слайды https://github.com/mewm/laravel-elastic-stack-cls-docker

Wolf
15.11.2016
17:48:29
Привет всем. Кто-то делал карусель рулетку на js?

F01134H
15.11.2016
17:51:55
Привет, а ты умеешь читать?

вдруг заметишь, что это чат не по js

D'
15.11.2016
17:54:24
вдруг заметишь, что это чат не по js
ларавел - это же js плаин для реакта, который на ангуляр сделан

F01134H
15.11.2016
17:55:04
Ой, сорян, перепутал

O2B3K
15.11.2016
19:44:25
kto polzuyetsya phpstorm 2016.2

Golib
15.11.2016
19:53:39
Текстовый Редактор ))

B?N
15.11.2016
19:57:09
PhpStorm 2016.2.1 Build #PS-162.1889.1, built on August 23, 2016 Licensed to Bon Jovi Subscription is active until February 25, 2017 JRE: 1.8.0_76-release-b216 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Wolf
15.11.2016
20:48:15
вдруг заметишь, что это чат не по js
Забавно. Я был уверен, что написал в канал по js) Сорян)

JT
15.11.2016
20:49:54
подскажите для Лары 5.3 какой-нить красивый генератор документации? надо на route + Controller

Алексей
15.11.2016
21:09:12
Читаемый код, лучше любой доки

JT
15.11.2016
21:11:30
да код-то читаемый

но хотелось бы на АПИ сгенерить красивый док

Алексей
15.11.2016
21:12:28
Swagerwell только приходит на ум

Дока хорошая но изначально трудно вникнуть )

Алексей
15.11.2016
22:14:19
Инфиум поди кинешь?)

Google
Alexander
15.11.2016
22:14:28
нет

https://github.com/dingo/blueprint

если юзаешь dingo api в качестве api

B?N
15.11.2016
22:22:15
В ларе есть какая-то встроенная функция которая будет вызывать исключение если переданное значение не является истиной ? типа assert но для продакшена

D'
15.11.2016
22:22:51
оО

Dmitriy
15.11.2016
22:25:01
чет я не понял

B?N
15.11.2016
22:26:18
в общем задача такая , надо провалидировать данные входные (приходят они не через Request) внутри одного процесса надо генерить исключение если утверждение является ложью то есть по сути можно сделать типа так if ($a === false) throw new Exception('А =! true'); но хочется как то красивее сделать. есть мысли?

D'
15.11.2016
22:26:53
ну сделай валидатор

и валидируй

Quiss
16.11.2016
06:26:18
Bon ты же в Валидатор первым аргументом передаешь значения, вторым условия, третим текст ошибок, если требуется

что мешает использовать? :)

Меня зовут
16.11.2016
09:26:00
и валидируй
Привет, у тeбя нет случайно списка городов израиля в xml?

D'
16.11.2016
09:26:13
csv

Меня зовут
16.11.2016
09:26:41
csv
а города на русском?

D'
16.11.2016
09:27:03
на иврите

Меня зовут
16.11.2016
09:27:13
печаль(

D'
16.11.2016
09:27:27
из втентакле спарси на русском

Вот кстати xml https://data.gov.il/dataset/d2581732-eca4-4988-b986-df8e791a1d60/resource/4bc8ec43-08dd-4dc3-a6ab-bd52e137fb8c/download/rechovot20161101.xml

JT
16.11.2016
09:36:00
есть вопрос, делаю из Лары return response()->json([ 'state' => false ]); и получаю это в Андроид приложении, но JSONObject не хочет принимать false без кавычек вопрос: как можно объяснить Ларе брать в кавычки Boolean ?

Google
Алексей
16.11.2016
09:37:22
state = $state? 'true' : 'false'; ?

JT
16.11.2016
09:44:04
щас получаю: { "state": false, "msg": "password mismatch" } а надо чтобы стало: { "state": "false", "msg": "password mismatch" }

D'
16.11.2016
09:44:31
ну епт

так и передавай 'state' => "false"

JT
16.11.2016
09:46:27
спасибо!

но это ж костыльно :)

хотя и креативно :)

D'
16.11.2016
09:47:08
это очевидно

Admin
ERROR: S client not available

D'
16.11.2016
09:47:14
можешь сделать красиво

свой APIResponse, который будет true/false в стринг переделывать

JT
16.11.2016
09:50:22
а теперь таже проблема, но с null

блин

это ж не кошерно

D'
16.11.2016
09:50:41
100% в твоем JsonOBject проблема

выкинь его

JT
16.11.2016
09:50:52
не могу - он в Ведроиде :)

D'
16.11.2016
09:50:53
или научи понимать нормальный жсон

JT
16.11.2016
09:51:07
отож, я ж вижу что это валидный json

а хавать он не хочет

Google
Евгений
16.11.2016
11:42:42
можно как то отвалидировать значение boolean or date_format:H:i ?

Sergey
16.11.2016
12:00:46
в одном параметре может быть или бул или дата?

(;¬_¬)
16.11.2016
12:01:17
ну видимо да, а почему нет?

Sergey
16.11.2016
12:01:57
Плохо

проблем от этого делать. Если булеан означает отсутствие даты, то null его сделать

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

а nullable, в целом, привычное поведение

Sergey
16.11.2016
12:04:48
С радостью :) и еще половине встроенных функций PHP

Roman ?
16.11.2016
12:06:48
почему они до сих пор не переделали в ооп стиле все?

мне кажется там еще какие то причины есть, кроме недостатка времени

там же мусорка сейчас просто

Sergey
16.11.2016
12:08:09
Я разговаривал с одним из разработчиков в этом году на кодфесте в новосибирске, в общем, все фразы, "что мешает переделать нормально" сводились к тому, что обратная совместимость

и типа все привыкли, мы менять не можем

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

Roman ?
16.11.2016
12:08:50
ничего не мешает оставить старое на месте

Sergey
16.11.2016
12:08:55
ответ - нет, сломает обратную совместимость

ничего не мешает оставить старое на месте
Ответ, какая-нибудь библиотека это заюзает и всё сломается

Второй по популярности ответ мне нравился больше. "Это есть внутри в PHP, но такого функционала нет. Вы можете написать модуль"

И на вопрос, "как мне получить список импортов для модуля через рефлексию и планируется ли такое, очень нужно" я получил ответ: Никак, не планируется, это никому не нужно

Страница 170 из 2014