@prophp7

Страница 1282 из 1387
Alexandr
05.09.2018
09:31:05
эм, чё?)
Ну раз уж писать абстрактный метод,то почему бы и свойство не сделать абстрактным? Допустим оно обязано быть в дочернем классе

abstract public $name;

Alexandr
05.09.2018
09:31:32
Google
Maksim
05.09.2018
09:31:39
Не знаю?
хуйню)

Sergey
05.09.2018
09:34:56
Ну раз уж писать абстрактный метод,то почему бы и свойство не сделать абстрактным? Допустим оно обязано быть в дочернем классе
это корень проблемы с наследованием и то почему экстендить классы можно только если ты пройдешь тест на понимание предмета.

а теста этого нет - следовательно - не юзай наследование классов. Просто. Пока не резберешься

Maksim
05.09.2018
09:35:59
просто абстрактные классы разбирают на примерах в стиле клетка -> животное -> человек клетка -> животное -> пёсик

Sergey
05.09.2018
09:36:03
пока не придет осознание что же блядь все таки значит abstract something.

Maksim
05.09.2018
09:37:11
Sergey
05.09.2018
09:37:14
ну и опять же - вводя такие вот иерархии типов типа "животное -> человек" ты вступаешь на скользкую дорожку филовоский дискуссий на тему что такое жизнь и от кого наследоваться археям, вирусам и т.д

и че делать с грибами

типа от многоклеточных наследовать? получается более чем бесоплезная абстракция

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

Maksim
05.09.2018
09:38:42
или ещё 1 мега популярный пример: пользователь -> модератор -> админ. тоже в топе

Sergey
05.09.2018
09:38:45
для этого достаточно просто функций

Google
Sergey
05.09.2018
09:38:48
без классов.

Maksim
05.09.2018
09:39:32
...я так как-то сделал и потом страдал
все через это проходили так или иначе. Вопрос лишь в том, кто и какой урок вынес) кому-то заебись, раз учат по таким принципам.

Артур Евгеньевич
05.09.2018
09:59:45
иногда это удобно. Погугли почему в java добавили реализацию методов у интерфейсов - хороший пример такого кейса
в каком плане удобно?) В том же плане что порой удобно дернуть из сервис локатора?)

Артур Евгеньевич
05.09.2018
10:04:22
ок ща почитаю

про локатор это был пример того как какое-нибдуь гавнецо может быть удобным

Sergey
05.09.2018
10:05:56
ок ща почитаю
спойлер - это больше про обратную совместимость API

F01134H
05.09.2018
12:04:40
штат, очевидно

(а вообще, state - состояние)

Ihor
05.09.2018
12:05:16
класс не имеет состояния

:)

вот почему возник вопрос

Maksim
05.09.2018
12:05:41
класс не имеет состояния
"описание стейта класса". Ты там чё буковки знакомые грепаешь?)

F01134H
05.09.2018
12:05:53
класс не имеет состояния
а там разве речь о состоянии класса?

Sergey
05.09.2018
12:08:01
класс не имеет состояния
шах и мат, я не прав, LSP не нужно

Dmitry
05.09.2018
12:08:40
шах и мат, я не прав, LSP не нужно
Ееееее, наконец-то надобность в SOLID'e отпала

F01134H
05.09.2018
12:08:47
?

Google
F01134H
05.09.2018
12:14:26
об описании состояния
а описание состояния === состояние?

Sergey
05.09.2018
12:14:38
да но просто доебаться решил

забейте

Dmitry
05.09.2018
12:14:51
F01134H
05.09.2018
12:15:08
Спасибо за подсказку

Maksim
05.09.2018
12:16:10
Ай, Моська! знать она сильна...)

Ihor
05.09.2018
12:26:46
да но просто доебаться решил
нет, я внимаю опыту других ) Одно сообщения из десяти по делу, остальные "а давайте начнём подъёбывать"...

Sergey
05.09.2018
12:27:31
нет, я внимаю опыту других ) Одно сообщения из десяти по делу, остальные "а давайте начнём подъёбывать"...
стэйт - это то что меняется. у класса между прочим тоже стэйт может быть (статический), но мы не о нем

Maksim
05.09.2018
12:27:31
эм, нет) прозвучало всё, как упрёк, мол Сергей днище сраное

Sergey
05.09.2018
12:27:45
ну так я днище сраное, я этого не отрицаю)

Sergey
05.09.2018
12:27:54
пойду дашьше говнокодить на баше

Maksim
05.09.2018
12:28:02
Sergey
05.09.2018
12:29:57
если стэйт не меняется - он не стэйт, он набор значений. константы (пусть и в переменных, ты понял суть)

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

их ни в коде явно не выразить, тестить тестами сложнее, про статический анализ можно почти забыть (нельзя изменения стэйта типами описать как правило), короч много мороки

Ihor
05.09.2018
12:31:38
эм, нет) прозвучало всё, как упрёк, мол Сергей днище сраное
нет, но ассоциативный ряд меня удивил... Мне вот интересно, почему protected совйства и методы - плохо и протеворячат LSP )

Sergey
05.09.2018
12:31:42
и если ты еще и стреляешь себе в ногу делая этот стэйт protected что бы там как-нибудь оно само - то прям фу фу фу

Google
Sergey
05.09.2018
12:32:16
нет, но ассоциативный ряд меня удивил... Мне вот интересно, почему protected совйства и методы - плохо и протеворячат LSP )
не противоречат. просто 90% что ты нарушишь LSP (нет единого источника правды. невозможно проконтролировать соблюдение инвариантов)

и я это упоминал выше

Ihor
05.09.2018
12:32:42
может есть статья с реальным примером?

вдруг кто-то блог ведет, или видео есть

Sergey
05.09.2018
12:33:04
просто в случае людей которые задают вопросы "а почему нельзя делать abstract protected $x" то 100% что они слова инвариант не знают. не то чтот там LSP соблюдать

может есть статья с реальным примером?
реальным примером чего? у тебя есть класс с пропертей $x и есть инвариант что $x > 0; И ты наследуешься и сэтишь туда $x = -1 // потому что могу;

Admin
ERROR: S client not available

F01134H
05.09.2018
13:19:02
Ребзи, как жсоню дампануть так, что бы в несколько строк было

Maksim
05.09.2018
13:20:07
var_export(json_decode('json'));

F01134H
05.09.2018
13:22:41
мне именно жсон

хотя пох, парсилку какую-нибудь найду

Maksim
05.09.2018
13:26:22
мне именно жсон
var_export('json') что ты получить-то хочешь в итоге?)

F01134H
05.09.2018
13:26:38
Maksim
05.09.2018
13:27:54
жсон строку с переносами D:
на в лоб: echo \json_encode(\json_decode('твой корявый json'), \JSON_PRETTY_PRINT);

Артур Евгеньевич
05.09.2018
13:28:23
щас он еще какое нить условие придумает чтобы не засчитать решение твое))

Maksim
05.09.2018
13:29:00
щас он еще какое нить условие придумает чтобы не засчитать решение твое))
да судя по вопросам за последнее время он там статью пишет на тему "какой пхп плохой, смотрите какую хуиту на нём можно делать")

F01134H
05.09.2018
13:29:09
не, я прост доку пишу

Google
F01134H
05.09.2018
13:29:35
для сервиса, который еще не существует

Maksim
05.09.2018
13:30:09
https://andb.name/tools/json-pretty-print

в гугле лярд сайтов, которые отформатируют твой json

F01134H
05.09.2018
13:31:27
Мне удобнее массивчик нахуячить, чем жсон строку)

что бы оно автоматом все сделало

Maksim
05.09.2018
13:31:49
ну тогда флаг \JSON_PRETTY_PRINT те в плечи

F01134H
05.09.2018
13:31:57
ну дк его и взял

Ihor
05.09.2018
13:32:13
для сервиса, который еще не существует
Клиенты к БД тоже умеют офрматировать (те же стандартные от jet brains)

если нужно просто посмотреть

Maksim
05.09.2018
13:32:54
так-то и пхпсторм умеет) но это надо упороться, файлик *.json ему создать...) в гугле проще)

Ihor
05.09.2018
13:34:29
если выделить ячейку в БД (реляционная) Alt+Enter, Ctrl+Alt+L

можно без файлика обойтись

А так то онлайн сервисы спасают

Alexander
05.09.2018
14:59:51
Ну еще есть плагин для шторма, можно им развернуть

Сергей З.
05.09.2018
15:48:10
геттеры\сеттеры в абстрактом классе - путь в макдональдс
Почему? Если в том же абстрактном есть куда сетить. Типа какой-нить setDbConnection уже плохо? Почему?

Maksim
05.09.2018
15:49:17
Почему? Если в том же абстрактном есть куда сетить. Типа какой-нить setDbConnection уже плохо? Почему?
это не плохо, за это надо увольнять к херам и отправлять мыть сартиры.

Сергей З.
05.09.2018
15:50:21
это не плохо, за это надо увольнять к херам и отправлять мыть сартиры.
Я хочу знать за что меня туда направят, если что))

Maksim
05.09.2018
15:51:12
Я хочу знать за что меня туда направят, если что))
попробуй накидать варианты того, что может случиться в описанном тобой сценарии. Какие есть подводные камни?

Страница 1282 из 1387