@prophp7

Страница 205 из 1387
Timur
22.01.2017
14:03:54
Лучше вообще не пытайся этим пользоваться, хуже потом будет.

Виталий
22.01.2017
14:04:17
Timur
22.01.2017
14:04:34
В Yii2, ты ведь его пользуешь, его вообще выпилят скоро.

Dmitriy
22.01.2017
14:04:49
Они это говорят уже 3 год

Google
Dmitriy
22.01.2017
14:05:16
Но все еще мы видим припиленный jquery

Timur
22.01.2017
14:05:26
https://github.com/yiisoft/yii2-maskedinput Уже начали по чуть-чуть шевелиться.

Dmitriy
22.01.2017
14:05:26
и этот плагин.

Виталий
22.01.2017
14:05:34
Ну, пока не выпилили то пользуемся. Переделывать проект тлько потому что это антипаттерн ни кто не будет ?

Timur
22.01.2017
14:05:59
Виталий
22.01.2017
14:06:06
кстати, а как будет установка зависимостей?

Timur
22.01.2017
14:06:07
Уже в 2.0.

кстати, а как будет установка зависимостей?
Самый лучший способ — это как сейчас делают в бандлах Symfony. Просто кладут CSS/JS-файлики в бандл, а там ты уже дальше сам решаешь, как их в своём проекте использовать: можешь Webpack, можешь Browserify, можешь Gulp/Grunt и так далее. Backend фреймворк ведь не должен знать о том, что и как ты с ассетами делаешь. По логике вещей. Так что пускай Yii 2.1 расширения тоже кладут эти файлики в директорию с расширением, а мы, программисты конечные, уже дальше определимся сами. Может в проекте все ассеты и всё фронтендовое вообще yarn'ом/npm'ом подтягивается и управляется? Тогда эти файлики вообще мёртвый груз.

Или даже пускай Yii 2.1 расширения создадут аналоги в npm. Ещё круче.

Чтобы прямо из npm/yarn и ставить их себе в проект.

А то, что сейчас в Yii 2.0... Там надо нехило так напильником поработать, чтобы это можно было паковать при помощи Webpack или Browserify. Не очень приятно обходить AssetManager ихний.

Виталий
22.01.2017
14:11:20
Да, не радужно все. Ну а вообще виден свет в конце тунеля о выпиливании зависимостей?

Dmitriy
22.01.2017
14:11:40
да виден

Google
Timur
22.01.2017
14:11:45
Ну ветка уже есть.

Хорошо в Symfony выпилили тоже Assetic.

Кому надо поставит.

Виталий
22.01.2017
14:16:39
так в 2.1 тоже выпилят ассет менеджер?

или только установку фронт зависимостей через композер?

Timur
22.01.2017
14:20:21
Не-не, там не так будет. В самом основном репозитории не будет ничего из bower-asset или npm-asset в require-секции в файле composer.json. Вот пример будущего расширения: https://github.com/yiisoft/yii2-maskedinput/blob/master/composer.json#L22 Они все части фреймворка, которые используют bower-asset/npm-asset выносят в такие расширения и делают их опциональными. То есть если кому-то нравятся они, то да, пожалуйста, юзай чувак. ? А если не нравятся, то и не ставь их, потому что это уже не будут жёсткие зависимости в основном репозитории/пакете Yii 2.1.

Если кому-то нравится fxp composer asset plugin*

Роман
22.01.2017
14:23:29
А для класса логирования, например, разве не подходит синглтон?

Его нужно вызывать из любого места. И сколько угодно раз.

И он нужен именно глобально.

Sergey
22.01.2017
14:25:08
А для класса логирования, например, разве не подходит синглтон?
сингелтон не для управления зависимостями

Timur
22.01.2017
14:25:19
Лучше инжектить как опциональную зависимость в сеттер.

Логгер твой.

Роман
22.01.2017
14:25:32
Aleh
22.01.2017
14:25:37
> сеттер

Sergey
22.01.2017
14:25:46
зависимость, это когда тебе что-то нужно. В твоем случае тебе нужен логгер

Timur
22.01.2017
14:26:07
> сеттер
Ну, не в сеттер, а в класс. =) Но идея верная была высказана.

Роман
22.01.2017
14:26:54
У меня просто статический (да, да) класс. Logger::write("Message", 3). Т.е. сообщение и уровень ошибки.

А как "правильно" организовать это?

Google
Sergey
22.01.2017
14:27:17
$logger->write

вот так правильно

Timur
22.01.2017
14:27:35
У меня просто статический (да, да) класс. Logger::write("Message", 3). Т.е. сообщение и уровень ошибки.
Как передаёшь контекст в статический метод write? Чтобы разделять отправку сообщений логгера в зависимости от контекста в разные места.

Sergey
22.01.2017
14:27:36
и $logger пробрасывать куда-нибудь в конструкторы, юзать декораторы

Роман
22.01.2017
14:27:54
Ну это не суть важно я думаю. Я понимаю что некоторые тут не любят статику.

Роман
22.01.2017
14:28:04
Т.е. мне в каждую функцию закидывать $logger?

Я про это.

Sergey
22.01.2017
14:28:20
Т.е. мне в каждую функцию закидывать $logger?
в каждый объект. Или ты под WP пишешь?

Timur
22.01.2017
14:28:26
Роман
22.01.2017
14:28:28
Я про общие случаи.

Sergey
22.01.2017
14:28:30
или - декорация/AOP

Timur
22.01.2017
14:28:31
И не делает то, что нужно.

Роман
22.01.2017
14:29:15
Я и функционально и ООП могу писать же. Иногда мне тут советуют делать простую функцию вместо класса, а иногда говорят что нужны только классы. Я вас не пойму. ?

Sergey
22.01.2017
14:29:34
Andrii
22.01.2017
14:29:43
@fes0r а у вас тут есть мемы?

Роман
22.01.2017
14:29:56
Вот допустим есть функции, как туда $logger прокидывать? Мне как раз кажется статический класс и есть решение.

Aleh
22.01.2017
14:30:25
как зависимость, аргументом если у тебя карирование какое

или как зависимость в конструктор класса

Google
Sergey
22.01.2017
14:30:39
+

Роман
22.01.2017
14:30:58
Мы же говорим про класс-логгер?

Aleh
22.01.2017
14:31:05
мы про пользователя говорим

Роман
22.01.2017
14:31:07
Тогда я вас вообще не понимаю. ?

Sergey
22.01.2017
14:31:11
Мы же говорим про класс-логгер?
а потом ты начал говорить про функции какие-то

Timur
22.01.2017
14:31:26
Я и функционально и ООП могу писать же. Иногда мне тут советуют делать простую функцию вместо класса, а иногда говорят что нужны только классы. Я вас не пойму. ?
Как бы ты реализовал следуюущую задачу при помощи твоего статического метода для логгинга? Для классов A, B и C отправлять логи на мыло. Для классов C, D и E отправлять логи в Sentry. Для классов D, E и F отправлять логи в файлы. При помощи Dependency Injection решается очень просто, в твоём случае же надо городить кучу кода в статическом методе и в самих классах, которые их будут использовать. Вот тебе наглядный пример, почему это не работает.

Кучу непонятного кода.

Admin
ERROR: S client not available

Sergey
22.01.2017
14:32:07
Вот.
пользователь - имеется в виду тот код, который пользуется твоим логгером

Aleh
22.01.2017
14:32:52
Тогда я вас вообще не понимаю. ?
https://gist.github.com/mkusher/c2fb335d5252b6302f630db7c758d77e

Timur
22.01.2017
14:34:51
@lokin_roman, посмотри как в Symfony 3.* это делается. Да даже можно просто почитать про Pimple. Тебе и самому приятно будет потом так писать, а ещё приятнее читать этот код. ?

Роман
22.01.2017
14:34:53
Вообще не увидел преимущества перед Logger::log('start'). Если мы знаем что в каждом классе и каждой функции будем использовать логгер, то какой смысл огороды с конструкторами.

Aleh
22.01.2017
14:35:12
выше @resurtm описал зачем

Роман
22.01.2017
14:35:34
Благодарю за ответы. Буду думать. ?

Sergey
22.01.2017
14:37:01
Aleh
22.01.2017
14:37:12
)))

Dmitriy
22.01.2017
14:37:18
?

Роман
22.01.2017
14:37:23
не будешь)
Почему ты так думаешь?

Google
Sergey
22.01.2017
14:38:39
Почему ты так думаешь?
ну потому что @resurtm тебе по сути привел причину почему твой способ не работает.

Timur
22.01.2017
14:38:55
Реально, Dependency Injection Container очень упрощает жизнь программиста. Штука для понимания простая, а упрощает жизнь порядочно. Yii2 и даже тут отстаёт сильно. Они всё ещё до сих пор продолжают использовать Service Locator, что по сути и является тоже самое, что и использовать статические методы в классах (а по сути просто глобальные функции). И это несмотря на то, что Service Container они завезли во фреймворк очень давно.

Роман
22.01.2017
14:38:56
У меня уже есть готовый класс, я бы не стал задавать вопросов, если бы мне не была интересна более лучшая реализация. Хотя пока меня всё устраивает. Но разберусь с примером Тимура и там видно будет.

Sergey
22.01.2017
14:38:56
и в случае с логами без разделения контекстов логи будут приносить пользу не очень долго

и не надо велосипедов

он должен тупо писать в лог

со статикой это невозможно

Роман
22.01.2017
14:40:24
у тебя вообще есть monolog
Я просто хочу разобарться в построении этого всего а не пользоваться готовыми штуками. На каждую задачу свои фрэймворки тянуть не хочется.

Timur
22.01.2017
14:40:56
И прикручивать это ко всему, что умеет PSR-3.

Sergey
22.01.2017
14:41:24
Я не разделяю мнение что реимплементация фреймворков приносит хоть какую-то пользу в плане обучения

Sergey
22.01.2017
14:42:24
> Для классов A, B и C отправлять логи на мыло. Для классов C, D и E отправлять логи в Sentry. Для классов D, E и F отправлять логи в файлы.

вот куда слать логи - это пусть логгер как-то решает сам

Роман
22.01.2017
14:43:23
Так это само собой. А у монолога не так разве? $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

Я другого варианта не предлагаю.

Sergey
22.01.2017
14:43:36
Ну, раз человек желает, то пускай потренируется. ?
ну то есть все зависит от того чему хочет научиться человек. Работать с файловой системой - ну тут логгеры можно пописать...

Так это само собой. А у монолога не так разве? $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
но ты это будешь делать не там где будешь его юзать а на этапе построения приложения

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