
f4rt~
05.09.2018
16:22:24

Артур Евгеньевич
05.09.2018
16:22:39
кляты москали виноваты

Maksim
05.09.2018
16:23:37

Alexander
05.09.2018
16:25:59

Google

Alexander
05.09.2018
16:26:26
смысл моей работы, например, решать задачи бизнеса, и уменьшать количество ограничений для бизнеса
расширять возможности

Maksim
05.09.2018
16:26:50
Хорошо, что ты так думаешь.
Простые исполнители тоже нужны.

Bohdan
05.09.2018
16:28:33

Maksim
05.09.2018
16:30:06

Alexander
05.09.2018
16:31:00

Maksim
05.09.2018
16:31:22

Alexander
05.09.2018
16:31:28

Maksim
05.09.2018
16:31:47
Еслм в сервис чет докидывается во время его жизни, то авторы - фанаты мадженты и пишут бложики. Там в целом насрать.
В частности же, влияя таким образом на поведение, можно натворить столько дерьма, что не разгребешь. Зато конструктор чистым будет, бгг.

Alexander
05.09.2018
16:34:47

Google

Maksim
05.09.2018
16:34:57

Alexander
05.09.2018
16:35:06
например

f4rt~
05.09.2018
16:36:01
а как следствие падение докеров там всяких

Alexander
05.09.2018
16:36:41

Maksim
05.09.2018
16:37:54
Хотя, гибкость же) можно, например, половинку сообщенек залогировать одним логгером, а потом новый запихнуть, с другими хэндлерами. Как удобно ;)
Короче бесполезный разговор. Кто-то пишет ограничения, думает об ответственности и архитектуре, а кто-то просто хуячит как попало. Оба варианта рабочие.

Alexander
05.09.2018
16:40:19
ну насчет как попало тоже спорно) опциональное говно в конструкторе это по мне так еще большее говно чем зависимость от контейнера)

Maksim
05.09.2018
16:42:57
Это пройдет со временем. или нет
Разговор, к слову, о том же. Сегодня в соседнем чатике
норм практика, но большинство похапэшников будут смотреть на тебя как на еритика
Забавно, он как в воду глядел :)

Alexander
05.09.2018
16:51:30
большинство похапешников вот такое считают верхом мастерства...
public function __call($name, $arguments)
{
if (strpos($name, 'get') !== false) {
$method = self::GET_METHOD;
} elseif (strpos($name, 'post') !== false) {
$method = self::POST_METHOD;
}
//Cut post or get prefix.
$name = StringHelper::strReplaceFirst(strtolower($method), '', $name);
return $this->sendRequest(StringHelper::camelToSnakeCase($name), $arguments[0] ?? [], $method);
}
так что хз...

Maksim
05.09.2018
16:57:28
Не хуже мутабельных сервисов)

Alexander
05.09.2018
16:58:23
а кто про мутабельные сервисы говорил? я что-то пропустил

Maksim
05.09.2018
17:00:09
Что-то явно пррпустил ;)

Dmitry
05.09.2018
18:55:52
а есть построение ast для mysql sql на php?
кроме общих типа hoa/compiler, т.е. что-то такое заточенное

Shmaltorhbooks
05.09.2018
19:00:06
doctrine/lexer не подойдёт?
Или как он там называется

Google

Sergey
05.09.2018
19:24:13
Готовая грамматика точно есть
https://github.com/greenlion/PHP-SQL-Parser

Dmitry
05.09.2018
19:28:28
о спасибо

knopkod4v
05.09.2018
19:33:11
блин, пришёл с работы - почитал вас, вспомнил трейт с доступом к любому содержимому контейнера через __get по всему проекту, отсутствие шаблонизатора (пхп - шаблонизатор!), шорт таги, велосипеды с роутингом, AR с паблик свойствами. И что-то не припоминаю, чтобы хоть раз видел, чтобы инстанс класса передавался в конструктор другого класса (не, ну может не всё ещё потеряно, может я просто пока не нашёл...)
Прямо разные миры. Иногда я думаю, что вы ненастоящие =\


Shmaltorhbooks
05.09.2018
19:46:00
блин, пришёл с работы - почитал вас, вспомнил трейт с доступом к любому содержимому контейнера через __get по всему проекту, отсутствие шаблонизатора (пхп - шаблонизатор!), шорт таги, велосипеды с роутингом, AR с паблик свойствами. И что-то не припоминаю, чтобы хоть раз видел, чтобы инстанс класса передавался в конструктор другого класса (не, ну может не всё ещё потеряно, может я просто пока не нашёл...)
Прямо разные миры. Иногда я думаю, что вы ненастоящие =\
Зато у тебя есть классы))

knopkod4v
05.09.2018
19:47:30

Dmitriy
05.09.2018
20:41:28
gg wp

Сергей З.
06.09.2018
03:30:21

Артур Евгеньевич
06.09.2018
06:19:45

Maksim
06.09.2018
06:24:32

Сергей З.
06.09.2018
06:25:18
Чат?
Канал симфони какой? В котором вы уже это все обсуждали

Maksim
06.09.2018
06:27:21
@symfony_php

Сергей З.
06.09.2018
06:27:23
Да
Такс. Хочу прояснить. Паблик сервисы пишут дровосеки, выходит не есть хорошо регать в контейнер сервис. Надо прокидывать его прям в конструктор(инжектить)?

Артур Евгеньевич
06.09.2018
06:34:06

Сергей З.
06.09.2018
06:35:10
Верно
А если этому сервису тоже зависимости нужны, у которых тоже зависимости, все это руками инжектить чтоли?

Артур Евгеньевич
06.09.2018
06:35:30
Для этого есть такая штука как Di контейнер
Помогает в конфигах декларативно управлять зависимостями

Google

Сергей З.
06.09.2018
06:39:54

Maksim
06.09.2018
06:42:05
Забвыть про $container->get

Александр
06.09.2018
08:29:07

Sergey
06.09.2018
11:39:59
а уже написали, не достролил

Dmitry
06.09.2018
11:45:23
А мне вот интересен 1 коммент на статью https://web-techno.net/anemic-domain-model/ Где грань между анемичной и богатой моделью

Sergey
06.09.2018
11:52:11
баланс между "объект делает все" и "объект раздает свое нутро всем"

Admin
ERROR: S client not available

Sergey
06.09.2018
11:53:07
по факту анемичная модель - это буквально объект без поведения - данные и геттеры с сеттерами
минимальный контроль за прекондишенами, никакого контроля за инвариантами

Dmitry
06.09.2018
11:53:43
@fesor, но ведь в данном случае пример, приведенной в статье слишком прост. Как правильно заметили в комменте, что если нужно что-то хранить, не будет же это делать объект доменной модели.

Sergey
06.09.2018
12:01:29
хз я не читал эту статью
и да все намного сложнее на самом деле

Maksim
06.09.2018
12:06:39
оба варианта в целом жизнеспособны.

Ivan
06.09.2018
14:42:54
Привет всем. Есть большой CSV файл со смешанными line endings. Подскажите как лучше пофиксить его? не руками

Александр
06.09.2018
14:45:19

Ivan
06.09.2018
14:45:51
не подскажете, как?

Александр
06.09.2018
14:47:28
не подскажете, как?
а в чем конкретно проблема? в лоб решение я как-то так представляю: есть массив из ending'ов твоих, которые уже есть в файле. Пробегаешься по файлу и заменяешь на тот который нужен тебе. Но это навскидку, как файл хоть выглядит?

Ivan
06.09.2018
14:48:05
CSV файл большого размера, хотелось бы не грузить в память целиком

Google

Александр
06.09.2018
14:48:20
используй генераторы

Ivan
06.09.2018
14:48:31
freadcsv не подходит,т.к. line endings разные
то есть конец строки не определить

Александр
06.09.2018
14:50:14
попробуй читать побайтово

Ivan
06.09.2018
14:50:31
а если мультибайтный символ?

Александр
06.09.2018
14:51:26
а там вообще окончания строк нету?

Ivan
06.09.2018
14:51:44
есть, часть CR часть LF

Maksim
06.09.2018
14:52:29
yield from file('file.csv')

Ivan
06.09.2018
14:53:48
file неправильно прочитает
да и file не генератор возвращает

Maksim
06.09.2018
14:54:59
с чего вдруг ему неправильно прочитать?)

Ivan
06.09.2018
14:55:06
разные line endings

Maksim
06.09.2018
14:55:07
и что за наброс за генератор?)

Александр
06.09.2018
14:55:30

Ivan
06.09.2018
14:57:09

Maksim
06.09.2018
14:57:35
научить заменой пользоваться?)

Александр
06.09.2018
14:58:28
ну пройдись по строкам и проверяй дополнительно на перенос

Maksim
06.09.2018
14:58:41
да привести всё к одному, проблема в чём?)

Ivan
06.09.2018
14:59:33
файл большой
не хочу всё читать в память

Maksim
06.09.2018
14:59:47
не читай, в чём проблема?