@phpclubru

Страница 480 из 956
Dmitry
20.02.2018
12:41:17
ну вот теперь знаешь ;)

Pavel
20.02.2018
12:41:18
Теперь, да

Спасибо

Dmitry
20.02.2018
12:41:26
еще вариант, у некоторых фреймворков можно запускать текст в транзакции

Google
Dmitry
20.02.2018
12:41:46
например, кодигнайтер умеет в тестах для симфони с доктриной это делать

после окончания текста транзакция откатывается и база возвращается в исходное состояние

но в общем это не исключает того, что для автотестов должна быть отдельная база

Pavel
20.02.2018
12:45:44
но в общем это не исключает того, что для автотестов должна быть отдельная база
При каждом запуске тестов должна подниматься новая база, а в конце удаляться или одного раза достаточно?

Dmitry
20.02.2018
12:47:40
схема один раз... ну и миграции не забывать накатывать а фикстуры, они вообще на каждый тест обычно накатываются и потом удаляются ну... классически... а дальше уже идут попытки ускорить это дело, в т.ч. при помощи транзакций

Pavel
20.02.2018
12:50:43
Понятно

Alexander
20.02.2018
13:26:05
Кто нибудь распаковывал архивы arj в пхп?

Alexandr
20.02.2018
13:29:03
Кто нибудь распаковывал архивы arj в пхп?
В прошлом веке распаковывали да..

Alexander
20.02.2018
13:30:02
В прошлом веке распаковывали да..
Как поступали в прошлом веке? Кроме как через внешние архиваторы не нашёл способов

Andrei
20.02.2018
13:30:27
а по другому врятли

Иван
20.02.2018
13:39:30
Кто нибудь распаковывал архивы arj в пхп?
мб это решение может подойти https://github.com/raulfraile/distill

Кто нибудь распаковывал архивы arj в пхп?
там и про arj есть https://github.com/raulfraile/distill/blob/master/src/Format/Simple/Arj.php

Alexander
20.02.2018
13:40:28
мб это решение может подойти https://github.com/raulfraile/distill
Я его находил, arj он не умеет распаковывать

Google
Alexander
20.02.2018
13:41:02
Иван
20.02.2018
13:41:32
Только определение что это arj )))
значит не дописали class)

Xardas
20.02.2018
14:55:16
Коллеги, доброго времени! Столкнулся с непонятной ситуацией. На PHP пишу мало, сейчас стоит задача проверки прав доступа по протоколу OAuth2. Сервер поднят, тип токена - bearer, по коду. С OAuth2 разобрался, но проблема с сессиями. Логику проверки построил так: в самом начале скрипта вызываю функцию из подключенного самописного модуля, где проверяю, есть ли в URL (GET) или в POST поле code, возвращенное сервером OAuth2 после успешной аутентификации. Если нет - переадресация на форму аутентификации с редирект_ури на исходный скрипт. Если code есть, запрашиваю access_token, затем запрашиваю данные пользователя через API на сервере. Данные есть в общем. Сохраняю их в $_SESSION, тужа же пишу время time() последней активности (примерно как рекомендуют тут: https://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes). Затем по полученным от сервера данным еще проверяю, есть ли права и возвращаю из функции некий признак успешной или неуспешной авторизации (пользователь опознан, но отказано в доступе). В вызвавшем скрипте порядок - приходит этот признак. Вывожу print_r'ом данные из $_SESSION. Все хорошо. Но при обновлении страницы (в т.ч. убирании из URL лишнего), вижу, что access_token меняется от вызова к вызову. Проследил, и прихожу к выводу, что сессия каждый раз пересоздается, хотя в коде поставил проверку if (!isset($_SESSION['last_activity']) || time()-$_SESSION['last_activity'] > $activity_timeout), и только если выполняется (нет сессии или просрочена), пересоздаю ее. Есть ли какие-то мысли? Версия PHP - 5.5.3. Настройки стандартные - время жизни - 24 минуты, стоит задействование куки в механизме сессии, стоит параметр использовать только куки (без засвечивания в URL идентификатора). setcookie явным образом не вызываю, насколько понял из документации, куки с именем PHPSESSID и ее идентификатором крепится автоматически к первому ответу сервера. session_start() вызвать не забыл. Если трудно на словах, могу прикрепить тестовый код, только pastebin никогда не пользовался. Готов ответить, как что сделано на каком этапе. Буду благодарен за оперативную помощь, к 22 числу нужно еще и встроить OAuth2-проверку в существующий legacy (oldschool-oldstyle) php-код =)

ADD: Фреймворков готовых на этом проекте не использовали, код старый очень и писал его не я.

Andrei
20.02.2018
15:03:07
используется буферизация вывода? ob_...

Xardas
20.02.2018
15:10:15
output_buffering = 4096 Как будто бы стоит, если эта настройка о ней. Не вникал, честно, во все тонкости работы PHP. Слишком мало использовал. Не пишу почти.

Aleksey
20.02.2018
16:22:50
Ребят всем привет, может кто подсказать по данному вопросу: https://toster.ru/questionversion?question_id=507481

Adel
20.02.2018
16:32:44
да много есть вариантов. через сессию - вполне себе.

еще бы от копипаста избавить код. но это такое...

Xardas
20.02.2018
16:38:13
По своему вопросу разобрался. Надо было разделить условие проверки существования сессии - вначале есть ли вообще некая переменная, затем уже проверять время жизни и в случае чего пересоздавать. Заработало как часы. Дело было как обычно в спешке и неаккуратности.

Grigori
20.02.2018
16:41:05
как будто все знают, что такое UTM-метки

Женя
20.02.2018
16:57:04
из очевидного — вместо $_SESSION[$utm_source] -> $_SESSION['utm_source']

ну и переменную $data заполнял и в итоге не использовал

Xardas
20.02.2018
16:58:47
Не знаю, что такое UTM, но вот не факт, что такую замену стоит делать, не зная задумки автора.

Женя
20.02.2018
16:58:50
да и вообще зачем тут $_SESSION если просто из гета берёшь

Не знаю, что такое UTM, но вот не факт, что такую замену стоит делать, не зная задумки автора.
UTM это по сути _GET или _POST или не важно какие параметры с префиксом utm_

Xardas
20.02.2018
17:01:37
Я к чему. Никто же не запрещает в качестве идентификаторов переменных в $_SESSION использовать что-то посложнее простых слов. Или я заблуждаюсь и есть ограничения? Хотя лучше буду молчать.

Да, сморозил. Не посмотрел, как заполняется $_SESSION.

Женя
20.02.2018
17:07:50
Ребят всем привет, может кто подсказать по данному вопросу: https://toster.ru/questionversion?question_id=507481
глядя на код в ссылке, нужно из того что приходит в гет сделать урл и средиректить куда-то с теми-же параметрами

Google
Женя
20.02.2018
17:10:00
<?php $args_str = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); header("Location:http://link?{$args_str}"); exit();

Grigori
20.02.2018
17:46:00
кто юзал https://pecl.php.net/package/swoole ?

события, корутины, каналы, асинк, потоки

Pavel
20.02.2018
17:47:49
Кажется тут кто то юзал

Максим

Aleksey
21.02.2018
00:05:02
глядя на код в ссылке, нужно из того что приходит в гет сделать урл и средиректить куда-то с теми-же параметрами
Написал же, что отлавливать в редиректе можно только, спасибо всем кто отозвался

Yoskaldyr
21.02.2018
02:10:05
@grikdotnet Если будешь использовать в продакшене, то потом отпишись о результатах. А то судя по докам очень интересная вещь, давно хотел перенести на нее с ноды небольшие демоны, но смущает что пилят китайцы :(

Grigori
21.02.2018
06:39:37
по тестам она быстрее ноды

она дает структуры данных в памяти

Vladimir
21.02.2018
12:35:26
ребят, а подскажите такой вопрос! Хочу выбрать из базы по фильтру продукты, но вывести их нужно с постраницчной навигацией. для того чтобы правильно работала навигация мне нужно знать сколько всего продуктов попадает под фильтр, но вывести только 20.

решение нашел двумя запросами к базе

один дл яполучения количества элементов, второй для вывода нужных

Vladimir
21.02.2018
12:36:20
может есть какое-то более красивое решение?

Dmitry
21.02.2018
12:36:43
это, конечно, сейчас будет очень сложно, что я спрошу... и не понятно... но уверен, что тебе нужно вывести номер последней страницы в пагинаторе? ;)

Pavel
21.02.2018
12:36:44
Нет.

Vladimir
21.02.2018
12:38:32
Нет.
спасибо. тогда сначала count а потом limit offset

Dmitry
21.02.2018
12:45:59
вопрос в том, кому нужная последняя страница... обычно оказывается, что она нужна дизайнеру, ибо он копипастщик, программисту ибо дизайнер нарисовал... и изредка руководству ибо хрен знает почему, просто вштырило... а пользователю.... а кого он волнует ;)

Adel
21.02.2018
12:47:02
вот именно :)

нужна только следующая. или предыдущая

Google
Dmitry
21.02.2018
12:47:46
ну несколько следующих... есть патерн проскакивания, когда пользователь видит, что явно то, что ему нужно не на следующей странице

Vladimir
21.02.2018
12:48:13
я для себя пишу систему, и иногда мне нужно знать сколько элементов у меня попадает под фильтр

Dmitry
21.02.2018
12:48:33
ну если нужно знать, то каунт, конечно

Vladimir
21.02.2018
12:48:35
да и просто для общего развития очень даже полезная инфа, особенно для моего уровня програмирования

Dmitry
21.02.2018
12:48:52
если в постгресе, то можно еще эксплейн для приблизительной оценки

Pavel
21.02.2018
12:52:49
Какое-то плохое упрощение, которое ведет к снижению информированности и контроля пользователем системы

Dmitry
21.02.2018
12:53:21
решил пойти в банк крупный работать? ;)

Admin
ERROR: S client not available

Dmitry
21.02.2018
12:53:30
тренируешься в формулировках, я погляжу

Pavel
21.02.2018
12:53:35
> ибо он копипастщик, Это не копипаст а фундаментальная надежность

У меня например дико бомбит от современных скролльных пагинаторов, когда следующие 10 элементов подгружаются при прокрутке страницы до низа

Как такой дебилизм мог кто-то придумать да еще сделать это популярным, для меня загадка.

Dmitry
21.02.2018
12:54:48
потому что копипаста,паш ;) сделать умно могут не многие...

ну т.е. тебе не нравится такая прокрутка в фейсбуке и вконтакте? ;)

Pavel
21.02.2018
12:55:50
Не нравится конечно. Всегд хочу видеть внизу пагинатор с первой и последней страницей.

Ну если там не миллионы страниц конечно, тогда может и стоит что-то придумать

Dmitry
21.02.2018
12:56:18
а зачем?

Xardas
21.02.2018
12:56:39
Еще и странички в памяти разрастаются. А вот ленту новостей своих в ВК я боюсь даже представить.

Dmitry
21.02.2018
12:56:49
врочем, я помню, ты и комуналку в сбербанк ходишь оплачивать, я помню ;) ну ретрограды всегда остаются ;)

Pavel
21.02.2018
12:56:51
Мне некомфортно когда я не могу определить адрес конкретного элмента

Google
Dmitry
21.02.2018
12:57:21
Pavel
21.02.2018
12:58:17
Допустим мне надо пойти и прочитать пост который был в ленте год назад. Есои есть пагинатор, я могу перейти на страницу 123 условно, а оттуда уже пропрыгать влево или вправо. Как без этого жить? Проскролливать все 123 страницы и подгрузить весь контент?

Dmitry
21.02.2018
12:58:57
а) перейти по прямой ссылке на пост, б) воспользоваться поиском ;)

Pavel
21.02.2018
12:59:40
Это не варианты. Ссылки никто никогда не помнит, да и ключевые слова тоже. Поиск как правило хреново реализован.

Dmitry
21.02.2018
12:59:41
с) листать пару тысяч страниц назад, ибо за год пост явно не на одну - две страницы уехал ;)

Dmitry
21.02.2018
13:00:25
и никакой пагинатор тебе не даст возможность перейти на 123-ю страницу

Pavel
21.02.2018
13:00:28
с) листать пару тысяч страниц назад, ибо за год пост явно не на одну - две страницы уехал ;)
Вот, это когда можно перелистнуть. Но иногда программисты слишком инновационные и не делают такой возможности.

Pavel
21.02.2018
13:00:54
и никакой пагинатор тебе не даст возможность перейти на 123-ю страницу
Нормальные пагинаторы дают. У них около-логарифмическая формула рассчета.

На нем например идут странцы 1,2,3,...100...499,500

По ним можно быстро прыгать

Dmitry
21.02.2018
13:01:47
сделай поле ввода для номера страницы ;) и все

Pavel
21.02.2018
13:03:01
Что-бы не придумать, лишь бы нормальный классический пагинатор не использовать ?

Dmitry
21.02.2018
13:03:11
но это бесполезная инфа... и споришь ты просто машинально, я уверен... случаев, когда ты листал страницы сотнями назад, что бы найти пост нужный тебе...я уверен, в твоей практике, ну может один раз случился... от безысходности ;)

Pavel
21.02.2018
13:03:40
Для фильтров тоже полезно показывать количество страниц, так хотя бы понятно сколько их нашлось.

Dmitry
21.02.2018
13:04:15
Что-бы не придумать, лишь бы нормальный классический пагинатор не использовать ?
что бы не придумать, лишь бы тяжеленный count не использоваь... ну да, стык технологий и юзабилити

Pavel
21.02.2018
13:04:17
но это бесполезная инфа... и споришь ты просто машинально, я уверен... случаев, когда ты листал страницы сотнями назад, что бы найти пост нужный тебе...я уверен, в твоей практике, ну может один раз случился... от безысходности ;)
Я именно что спорю, потому что сам много обдумывал этот вопрос. Да, это нужно редко, но зато когда нужно, то отсутствие такой возможности доставляет боль.

Страница 480 из 956