
Sergey
17.07.2018
10:57:13
в 7,3 запилили предкомпиляцию всего что можно вычислить в компайл тайме
то есть всякие 3 * 12 * 4 + устранение мертвого кода
перепилили GC

Google

Sergey
17.07.2018
10:58:06
ну короч там много чего тестить надо)

Maksim
17.07.2018
10:58:16
уговорил)

Sergey
17.07.2018
10:58:51
у них же во всю подготовка к впиливанию JIT. вот в 7.3 они в opcache добавили CFG оптимизации и это типа теперь они готовы к JIT

Maksim
17.07.2018
10:59:15
ну мне на jit в целом насрать, а вот на проперти - не очень)

Sergey
17.07.2018
11:16:03
а если еще и с libuv - ух разгуляешься)

Maksim
17.07.2018
11:18:12

Alexander
17.07.2018
11:18:52

Denis
17.07.2018
11:19:20

Maksim
17.07.2018
11:19:20

Sergey
17.07.2018
11:19:37
но это еще год-полтора ждать

Maksim
17.07.2018
11:19:59

Google

Alexander
17.07.2018
11:20:07
год-полтора это кажется не долго
хорошо будет, если за год-полтора появится

Maksim
17.07.2018
11:20:34
от того, что я возьму встроенный луп и заюзаю доктрину, толку будет, примерно, нихера)

Sergey
17.07.2018
11:20:37
если они сделают это из коробки то будет много проще

Alexander
17.07.2018
11:22:59
пока получается какой-то заколдованный круг
пока асинхронности из коробки нет, не появится толпа желающих ей пользоваться, пока нет толпы желающих, впиливать в коробку её никто не будет

Maksim
17.07.2018
11:23:55
ну, так и есть

Sergey
17.07.2018
11:24:22
если даже зив говорит что надо - это в лесу что-то сдохло
ну то есть вполне можно ожидать что в 8.0 будет упор на долгоживущий пых

Maksim
17.07.2018
11:25:27

Alexander
17.07.2018
11:25:43
ну так-то он с 7.0 уже может долго жить
таких адовых проблем с памятью как в 5 ветке уже не встречается

Denis
17.07.2018
11:26:04

Maksim
17.07.2018
11:26:05
с некоторой долей танцев он и в 5 жил

Alexander
17.07.2018
11:26:32
ну я например не заморачивался с танцами, просто поставил 7
мне почему-то показалось, что время дороже перехода на 7

Aleksey
17.07.2018
12:23:11
Ребят, если есть кто с opencart 2.3.x. хорошо разбирается, напишите в ЛС плиз

Alexandr
17.07.2018
22:13:11
Всем привет,интересует вопрос,можно ли отследить пользователя на какой он странице на данный момент находится,и если он не зареган и в сессии его нету,то возвращать его постоянно скажем на страницу логина.
Чтобы не писать в каждом файле if(isset($_SESSION['id'])){
header(Location: страница на которой он типа находится.пхп)die
}
А сократить это одной функцией глобальной в Контроллере и постоянно выкидывать его если он не находится в сессии,а если находится,то не давать ему зайти в логин или регистрацию и выкидывать его на профиль/админку.

Google

Sergey
17.07.2018
22:13:47

Alexandr
17.07.2018
22:13:58

Sergey
17.07.2018
22:14:09
а может стоит организовать одну точку входа в приложение там, может быть какой-нибудь фреймворк маленький, что бы мидлвары умел

Alexandr
17.07.2018
22:15:22

Sergey
17.07.2018
22:15:42
так себе у тебя ООП

Bohdan
17.07.2018
22:15:45
https://symfony.com/doc/current/create_framework/index.html

Sergey
17.07.2018
22:16:15

Bohdan
17.07.2018
22:16:27

Alexandr
17.07.2018
22:16:43

Sergey
17.07.2018
22:17:02

Sergey
17.07.2018
22:17:15
ну то есть ты к ООП не с того конца подошел
вот у тебя сейчас есть возможность познакомиться с "чистой" композицией и агрегацией, адаптерами и т.д

Alexandr
17.07.2018
22:17:35

Sergey
17.07.2018
22:17:49
ты пишешь процедурщину с классами

Alexandr
17.07.2018
22:18:20

Bohdan
17.07.2018
22:18:26

Google

Sergey
17.07.2018
22:18:28
На симфони?
нет, не ну как, можешь взять какой-нибудь http kernel или что-то под psr-7, сделать свою реализацию мидлваров и контроллеров

Bohdan
17.07.2018
22:18:37

Sergey
17.07.2018
22:18:47
или сам не знаешь)
суть в том что все современные php фреймворки по сути одно и то же предлагают просто с чуть разным интерфейсом
а так - одно и то же, принцип один.

Alexandr
17.07.2018
22:20:11
ну я думаю что ты не так объяснял
Я им говорю,так мне не проблема поработать на чистом ООП как симфони,ларавель,вот там я смогу вам помочь,они ну тогда держи задание.сделай мини блог НА ООП ПХП без фреймворка,есть две недели.

Sergey
17.07.2018
22:20:15
примитивно:
app(
yourMiddleware(
router([
'pattern1' => function ($request) {},
'pattern2' => function ($request) {},
])
)
)
твоя проблема что у тебя есть только контроллеры в голове.

Admin
ERROR: S client not available

Sergey
17.07.2018
22:21:13
и скорее всего еще вью и модель))

Alexandr
17.07.2018
22:21:22

Sergey
17.07.2018
22:22:16
короч, если тебе в голову приходит что-то "глобальное" - бей себя по рукам и читай мантру о функциональной композиции
ты всегда можешь один объект в другой завернуть, и в третьий, а четвертый на основе запроса будет тебе выбирать следующий объект (роутер называется)

Alexandr
17.07.2018
22:22:53
и скорее всего еще вью и модель))
Да да,есть папка вью и есть класс модель и класс контроллер хехе,но чем больше пишу я это задание,тем больше мне кажется,что я пишу тот же самый мини блог,который писал на процедурщине
Только с классами

Sergey
17.07.2018
22:23:29
для начала - забудь про MVC. просто забудь.

Alexandr
17.07.2018
22:24:14

Google

Sergey
17.07.2018
22:24:29

Alexandr
17.07.2018
22:24:43


Sergey
17.07.2018
22:28:02
думай о separation of conserns. для этого надо выбрать зоны ответственности.
Вот у тебя есть http - нужна прослойка которая скроет работы с оной (мидлвары, контроллеры, читать паттерн Адаптер). То есть какой-то объект запроса, какой-то объект ответа, которые внутри инкапсулирует работу с сессией, куками и т.д. И какой-то объект который принимает на вход запрос и возвращает респонс. Далее думаешь о том как это соотносится с твоей текущей задачей.
Далее тебе надо на основе данных запроса что-то вернуть. Пилишь роутер. Простой. типа мэпа регулярка -> функция. Ну или имя класса и метода. Главное что бы за вызов контроллера отвечала отдельная штука. Опять же было бы неплохо что бы это все было просто еще одним мидлваром который у тебя родился на предыдущем этапе.
Вот у тебя есть формирование html-ки например - шаблонизатор нужен, пишется на коленке быстро, только не забудь сделать автоэкранирование вывода. делаешь отдельно его, можно юзать в контроллерах.
Есть логика приложения, в блоге ее мало конечно, но она иногда бывает. Делаем table gateway + может быть какие-то классы управляющие сверху.
главное понимать что ООП это не про классы а про разделение ответственности. Что там "объект" это не такая уж и маленькая штука. Что зависимости надо прятать, и не размазывать их


Alexandr
17.07.2018
22:30:02
думай о separation of conserns. для этого надо выбрать зоны ответственности.
Вот у тебя есть http - нужна прослойка которая скроет работы с оной (мидлвары, контроллеры, читать паттерн Адаптер). То есть какой-то объект запроса, какой-то объект ответа, которые внутри инкапсулирует работу с сессией, куками и т.д. И какой-то объект который принимает на вход запрос и возвращает респонс. Далее думаешь о том как это соотносится с твоей текущей задачей.
Далее тебе надо на основе данных запроса что-то вернуть. Пилишь роутер. Простой. типа мэпа регулярка -> функция. Ну или имя класса и метода. Главное что бы за вызов контроллера отвечала отдельная штука. Опять же было бы неплохо что бы это все было просто еще одним мидлваром который у тебя родился на предыдущем этапе.
Вот у тебя есть формирование html-ки например - шаблонизатор нужен, пишется на коленке быстро, только не забудь сделать автоэкранирование вывода. делаешь отдельно его, можно юзать в контроллерах.
Есть логика приложения, в блоге ее мало конечно, но она иногда бывает. Делаем table gateway + может быть какие-то классы управляющие сверху.
О господи,да я же затрахаюсь с этим,ну их нахер,на симфони сделаю?


Sergey
17.07.2018
22:30:11
объекты как компьютеры в сети, которые могут обменитьвася сообщениями, имеют свою приватную память и стэйт свой ни с кем не шарят (только сообщения)
но как хочешь)
скорее всего завалишь тестовое в таком случае)
ну и да - какой-нибудь symfony/http-foundation я не думаю что тебе запретили юзать)

Alexandr
17.07.2018
22:31:47

Sergey
17.07.2018
22:32:17

Artem
17.07.2018
22:32:49

Sergey
17.07.2018
22:33:10
симфони никак с ООП не помогает. с ООП помогают задачки уровне "вот у тебя есть 4 лифта в 20-ти этажном здании которые ходят на определенной скорости, и люди рандомно вызывают. и надо сделать так что бы максимально эффективно лифты катались))
где ты можешь объектами попробовать модель выразить, без всей этой херни с базами данных и http
что бы не смазывать восприятие всякими бложиками и куками

Artem
17.07.2018
22:34:11

Alexandr
17.07.2018
22:34:24

Sergey
17.07.2018
22:35:02
обычно что-то со старых проектов придумываю просто что бы небыло баз данных и прочей инфраструктуры

Artem
17.07.2018
22:36:27
ну вообще у меня ещё с прошлой работы остались. Там вот тарифы были разные, это по-моему должно подойти