@Fesor чем же они так мерзки? По мне очень интересное решение, которое делает более удобной работу с IoC Container, более лаконичным и понятным код. В тестах проблем особых не добавляют.
Может все это и не так кошерно, особенно с точки зрения Symfony – но я считаю что компонент решают свою задачу, в первую очередь применительно к небольшим проектам, которые нужно писать быстро, а именно это и требуется от библиотеки, а не какие-то абстрактные паттерны в вакууме. В более длительных и больших проектах, я возможно, и избежал бы использования фасадов в Laravel, тем более сделать это совсем не трудно, и код бы выглядел практически как в том же Symfony2.
@Fesor я уже почти год не встречался со Славой Симфони, но по ощущениям от Лары – тут есть все, что у Симфони, и при этом гораздо быстрее вникаешь в фреймворк, очень просто и понятно все организовано. После симфони пересаживаться особо приятно.
@kaasius откуда такие замеры?
у меня на 5.4 получается parse_ini_file с 1000 параметров порядка 0,001 s
explode 1000 строк - порядка 0,0015 s
разницы на порядок получить никак немогу
@kaasius да ладно, парсинг explode('.', $str) сожрет все время?
Смешно же. Далее идет такой же доступ по спрасенному массиву к инкапсулированному внутрь класса кофигураций array или ArrayAccess.
Мне нравится такой вариант, т.к. имхо проще отслеживать доступ к той или иной настройке в коде по конструкции "configNs.configParam"
нежели "["configNs"]["ConfigParam"]". Ну и как-то аккуратней код смотрится, когда лишняя работа с массивами спрятана внутрь служебного класса. Но это уже субъективно, конечно.
@AloneCoder спасибо, да опечатался.
Но я говорю не про "Asia/Tokyo"
а именно про 'Etc/GMT+9' - по сути они должны одно значение выдавать, но выдают разные
Ну curl, как минимум, можно запустить с той же машины, где работает злополучный клиент. И это точно покажет доступность вашего url с той машины.
Если через curl запрос виден в логах, а через клиент нет, вероятнее всего ошибка у банка.
Плюс запросы браузера немного отличаются от "голых" POST запросов (иногда и в этом может быть проблема).
Вообще у меня похожая проблема была с процессингом Qiwi, долго пытал их ТП, в итоге они починили свое ПО)
@Richard_Ferlow в принципе можно, такую критичную информацию обновлять дополнительно. К примеру, хранить время последнего обновления записи и при поиске, если время последнего обновления не удовлетворяет критерию актуальности (например, больше 1 часа) запрашивать через API обновление этих записей.
как мне кажется, лучше будет кэшировать не в момент пользовательских запросов, а отдельным скриптом, запускаемым в cron. который делает несколько исчерпывающих уникальных выборок, которые позволят закэшировать все необходимые записи
@rshashkov я делал свою реализацию обработки json не для ускорения, а для поддержки windows-1251. Так что там особо интересного ничего, по скорости работы она ужасная))
На строках да, такая реализация проигрывает нативной.
Но по опыту применение array_intersect чаще для числовых массивов (по крайней мере в моей практике, раза в 4)
@ayrat33 да, примерно так и есть. Существует немало готовых решений и сервисов, которые позволяют отслеживать результаты.
Но лично у меня опыта работы с ними нет (порекомендовать ничего не могу), я всегда использую собственную реализацию на своих сайтах и кастомизированные отчеты Google Analytics для отслеживания результатов.
@ayrat33 то, что вы думаете, не всегда может в итоге работать так как вы думаете. А сплит-тест внедренных изменений даст достаточно достоверный результат.
Равняться на конкурентов тоже не всегда правильно, очень многие в сайтах допускают одни и те же ошибки (к сожалению, квалифицированных интернет-маркетологов не так много).
В любом случае нужно опираться на какие-то измеряемые данные: конверсия, достижения целей.
Для определения целесообразности изменений можно рассчитать выгоду от внедрения изменений (на основе предполагаемого изменения таких показателей) и сравнить эту выгоду с затратами на доработки. Так можно как минимум, расставить приоритеты на ближайшие доработки
'/getfile.php?file=' + encodeURIComponent(file) нужно делать
ну и в первую очередь, добейтесь, чтобы при вызове /getfile.php?file=имяфайла
отдавалось его содержимое