-
2023-01-01 01:32:28+00:00
та же хрень, терминалом к однокласснику в институт лазил, чтобы что-то там накракозябрить
-
2023-01-01 00:53:21+00:00
с новым годом все)
-
2023-01-03 17:20:46+00:00
дык я не об этом
прочти мой ответ ещё раз )
-
2023-01-03 17:14:14+00:00
Там вопрос не в том был ))) внимательно глянь
-
2023-01-03 17:10:32+00:00
так то не ответ
Я свое мнение высказал
можно создать голосование и тем самым помочь определиться человеку
-
2023-01-03 17:08:22+00:00
брат, прости за наезд, пусть в том году каки останутся, но твой последний ответ не ответ на вопрос, выше же ответили )))
-
2023-01-03 16:59:37+00:00
мне доктрина лучше
-
2023-01-03 13:47:55+00:00
понял, спс
-
2023-01-03 13:35:41+00:00
Это ORM
-
2023-01-03 13:24:37+00:00
Подскажите пожалуйста Doctrine это ORM как ReadBeanPHP или больше фреймворк?
-
2023-01-03 12:17:37+00:00
https://t.me/wordpress_ru здесь точно кто-то шарит )
-
2023-01-03 11:30:42+00:00
Ребятки, кто в вордпрессе шарит, хелпаните плез. Плагин в базу записи сохраняет, мне перед сохранением нужно их чуть модифицировать прямо в коде) Как найти в файликах плагина функцию записи в базу, либо может какой-то хук есть в ВП, который срабатывает перед записью, вообще хз не шарю в вп) Спасибо!!))
-
2023-01-03 10:45:11+00:00
Кракозябры - это была самая распространенная проблема 😂, когда все сервера были по дефолту на вестерн-1252
-
2023-01-04 22:26:44+00:00
Лови вордпрессеров 😁
-
2023-01-04 21:23:16+00:00
В первую очередь надо смотреть документацию или исходный код плагина. В хороших плагинах всегда есть свои хуки удобные. А если в плагин в бд сохраняет какую-то нативную сущность (например пост в таблицу %wp_%posts), то тут можно и хуками ядра ВП обойтись при случае (для простов их вон сколько — https://wp-kama.ru/function/wp_insert_post (в начале блок "Хуки из функции") )
-
2023-01-04 20:33:09+00:00
Та конечно хуки есть https://wp-kama.ru/ здесь посмотри, не справишься пиши
-
2023-01-05 22:24:32+00:00
..ь, прекоммит хуки писал, чтобы хер в репу криво оформленный код не попадал
-
2023-01-05 22:23:07+00:00
на своих мелких проектах всегда гоняю phpcs, Миш, там, по хожк, насрано
-
2023-01-05 22:21:58+00:00
они там даже psr-2 не блюдут, насколько вижу
-
2023-01-05 22:19:46+00:00
не читал переписку, но если они psr-12 не блюдут, на@@й такой фреймвёк
-
2023-01-05 22:17:23+00:00
гы
-
2023-01-05 22:17:22+00:00
Ну как современный... тыкнул первый попавшийся файл в репе Yii2 - тайпхинтов нет, psr не соблюдается :)
-
2023-01-05 22:16:46+00:00
йюй не стемай, любой современный фрвёк самодомьпьосен
-
2023-01-05 22:16:26+00:00
Это тройка самая частая
-
2023-01-05 22:14:16+00:00
Yii2 тоже говорят современный )
-
2023-01-05 22:10:20+00:00
По ооп я ещё зелень и днище
-
2023-01-05 22:09:37+00:00
Народ, смотрю на hh. Ru , там говно вакансии стали чаще, ну типа много старых контор и забривают и все ко го то ищут. Липа от хх ру или кидалы поточные? Замечали? Кто где смотрит вакансии?
-
2023-01-05 22:09:17+00:00
Я бы не сказал что сложнее. Просто у нее архитектурные подходы как по мне - более правильные
-
2023-01-05 22:08:46+00:00
Ну это сейчас единственые два актуальных фреймворка. Остальные либо устаревшие, либо малопопулярные, либо документации вменяемой нет, либо сообщество маленькое
-
2023-01-05 22:08:01+00:00
) она наверно сложнее ?
-
2023-01-05 22:07:30+00:00
Чаще всего Лара и симфони вижу требуются в проекты
-
2023-01-05 22:07:09+00:00
потому что на симфони можно написать лару :)
-
2023-01-05 22:06:57+00:00
Почему?
-
2023-01-05 22:05:55+00:00
Учи симфони :)
-
2023-01-05 22:05:37+00:00
Я ее изучаю, скоро ещё одной говно Ларой больше будет)
-
2023-01-05 22:05:34+00:00
Кста, не встречал кто какого канала\бота с черным списком всяких кидал в телеге, ну так, между делом?
-
2023-01-05 22:04:52+00:00
Чаще всего у конторы без денег нет опыта работы со сложными услугами типа сайт, нет денег, а кидал чаще всего больше всего.
-
2023-01-05 22:04:22+00:00
Я бы даже сказал на ларе наплодить еще проще.... Я ее так поверхностно потрогал, посмотрел код, который люди на ларе пишут.... Это конечно да
-
2023-01-05 22:04:20+00:00
У нас прям официально принято решить задачу максимально быстро, как именно, никого не волнует. Говнокод допустим, с закладыванием в техдолг на ревью
-
2023-01-05 22:03:33+00:00
Я ещё зелёный, но я чаще говнокод пишу чтоб быстрее задачу выполнить. Далее я что то могу дописать слегка переписать
-
2023-01-05 22:03:24+00:00
Ну вот тоже да, нюансики тут да там. В прочем и на условной ларе говнокода наплодить тоже много ума не надо
-
2023-01-05 22:02:53+00:00
Нет ничего постояннее временного
-
2023-01-05 22:02:50+00:00
ну тут конечно нюансы. Особенно для клиента, когда кроме штата этой студии в накоженном никто разбираться не рискнет за приемлемые деньги
-
2023-01-05 22:02:30+00:00
Потому говнокод вечен)
-
2023-01-05 22:02:09+00:00
Тоже верно
-
2023-01-05 22:01:45+00:00
Тебе зло, а конторы будут зависеть от студии, пока не накопят на что то среднее
-
2023-01-05 22:01:27+00:00
Хочешь почитать преобразование 1.000.000.000.000.000 в 1.0tt, на if\elseif строк на 200?
-
2023-01-05 22:00:47+00:00
Ну если делают "упаковку продуктов" на самописах без поддержки, это очевидно зло.
Если на поддержке, то в целом ок, штат студии сам писал этот код и понимает что, где, куда
-
2023-01-05 22:00:32+00:00
За деньги все умеют)
-
2023-01-05 22:00:00+00:00
за деньги любой код читаю, блин
-
2023-01-05 21:58:43+00:00
ну... кому хуже а кому и лучше
-
2023-01-05 21:58:39+00:00
Чаще всего любой чужой код всегда фи)
-
2023-01-05 21:57:11+00:00
лара не предел, остальное согласен, хотя, когда надо нагонокодить, говнокожу в пух и прах
-
2023-01-05 21:54:40+00:00
Есть конторки которые пилят свои подобия на процедуре, что еще хуже, пусть и быстрее
-
2023-01-05 21:53:51+00:00
На нем делаю говносборки всякие seo студии и продают разное типы сайтов коробочного варианта по прайсу. Ну нет у мелких контор нужды в ларе!
-
2023-01-05 21:52:23+00:00
можно подумать, что это поделие сейчас живо
-
2023-01-05 21:48:27+00:00
В 10 году там бд разваливалась от f5 зажатой в браузере на убунте)))
-
2023-01-05 21:44:44+00:00
ужос какой!
-
2023-01-05 21:38:03+00:00
Лучшая
Подруга
🤷♂
-
2023-01-05 21:27:04+00:00
за "лучший по@@@тель" мну самого пнут
-
2023-01-05 21:24:57+00:00
what does mean "Лп"?
-
2023-01-05 17:08:53+00:00
Возможно
-
2023-01-05 17:08:45+00:00
уровень "потребителей"
-
2023-01-05 17:05:36+00:00
Ну тут я уже не знаю, что мешает авторам ВП сделать так же 🤷♂️
-
2023-01-05 17:04:44+00:00
легко переводится с совместимости — пишешь новое API, старое за год-два-три перестаёшь развивать/поддерживать, пусть болтается для совместимости, но на заскорузлое в форумах не отвечаешь )))
-
2023-01-05 00:24:34+00:00
Это особенности долголетия и бремя бексовместимости 🤷♂ или типа того
-
2023-01-05 00:23:35+00:00
пару раз смотрел их "архитектуру", стало плохо, чтобы никого не оскорблять, блд
-
2023-01-06 18:36:27+00:00
да норм, так делают :)
-
2023-01-06 18:31:54+00:00
Ну хз возможны странные приколы в странных местах, как то странно все это выглядит 🤔
-
2023-01-06 18:31:23+00:00
А, то есть ты гоняешь трафик по http, просто в fastcgi притворяешься как будто это был ssl
-
2023-01-06 18:24:16+00:00
сработало без
-
2023-01-06 18:18:59+00:00
Значит у тебя уже есть сертификат в nginx
-
2023-01-06 18:14:02+00:00
а вообще traefik у меня локально стоит, и рулит на докер контейнеры, где у свои версии php nodejs и пр , свел проблему куча портов до доменых имен типа site.local
-
2023-01-06 18:12:36+00:00
я решил проблему добавив в nginx - без доп сертификата в nginx
fastcgi_param REQUEST_SCHEME https;
fastcgi_param HTTPS on;
-
2023-01-06 17:32:54+00:00
что странно, ибо у меня такое ощущение, что его развитие застопорилось в опен сорсе, все весомые фичи появляются в плюсе
-
2023-01-06 17:31:50+00:00
Из мира ингресс контроллеров как раз nginx один из многих, в то время как в мире веб серверов он можно сказать мировой стандарт де факто.
-
2023-01-06 17:30:58+00:00
Впрочем я его особо защищать не собираюсь, ну прокси и прокси, есть в нем какие-то фишки, есть недостатки, может кому то хорошо зайдет по требованиям
-
2023-01-06 17:30:03+00:00
traefik достаточно известный и обкатанный в мире кубера, он вроде даже по умолчанию используется как контроллер вместо nginx
-
2023-01-06 17:28:07+00:00
80% веса в выборе технологии для среднего бизнеса, где простой уже дорогой, имеет значение ее известность и обкатанность и число людей работавших с ней, причем большие корпорации тут не в счет, если ты не в такой же сидишь ;)
-
2023-01-06 17:19:45+00:00
Добрый вечер, как по parent_id получить дочерние категория или продукт
-
2023-01-06 17:16:17+00:00
Ну кто знает, если бы вы заюзали traefik или еще чего - может быть стало бы еще в 10 раз прекраснее
-
2023-01-06 17:13:55+00:00
а в остальном прекрасно nginx работал
-
2023-01-06 17:13:23+00:00
в общем у нас реально проблема была с tcp потоками, там как не крути - дисконннет будет... пришлось снимать их с ингресса (вообще непонятно зачем их туда засунули)
ну вебсокет рваться будет, да... ну никто и не обещал там вечное соединение
-
2023-01-06 17:10:41+00:00
это про то, как получить zd при рестарте самих подов nginx -а
для релоада конфига с апстримами рестарт не нужен
но так да, при изменении точек входа редеплой происходит, но опять же эта статья про то, что "замените терм на квит и поставьте слип 5"... ну статья 2020 года, возможно уже давно поправили деплоймент для nginx
-
2023-01-06 17:05:02+00:00
В любом случае - если эти скрипты написал кто-то другой, и стандартизовал в виде оператора, то это уже проще и стабильнее чем свои велосипедные скрипты писать
-
2023-01-06 17:04:45+00:00
ну если совсем без потери коннекта - поднимаешь новую версию во втором сервисе, меняешь конфиг, релоадишь, ждешь ухода трафика с первого в ноль, гасишь
-
2023-01-06 17:04:07+00:00
А он точно это умеет? Я в исходниках его не копался, но вот нашел статью https://medium.com/codecademy-engineering/kubernetes-nginx-and-zero-downtime-in-production-2c910c6a5ed8
в которой говорится что ничего такого он не умеет, а дальше 10 экранов цирка и конфигов чтобы научился
-
2023-01-06 16:59:08+00:00
не надо ничего запихивать, давно есть оператор
ты все же не путай, оператор и куча lua в конфиге - это только чтобы собрать состояние с кубера и построить конфиг, но это любому балансировщику нужно, как иначе,
а релоад конфига делайт самый обычный nginx и без даунтайма
-
2023-01-06 16:36:48+00:00
Я вот пробовал настроить ZD в docker-compose (без swarm)и это уже какая-то нетривиальная задача, в интернете во всех статьях цирк с конями и скриптингом
-
2023-01-06 16:35:13+00:00
Если nginx запихнуть в ингресс контроллер и поднять в кубере, то конечно ZD деплоймент будет, но вот это не будет заслугой nginx ;)
-
2023-01-06 16:33:11+00:00
ну не, от зеро даунтайма до сервис меша как от луны до марса :) мы вот до полноценного меша так и не дошли, хотели истио пробовать, но закончили в итоге просто маршрутами на внутренем nginx ингрессе
-
2023-01-06 16:29:07+00:00
В общем-то то же самое я и сказал, только другими словами )
-
2023-01-06 16:25:59+00:00
да прекрасно он живет в кубере, когда его используют для тех целей, для которых он предназначен - ингресс
как минимум как вход внешний
и далеко не всем нужен сервис меш
-
2023-01-06 16:15:28+00:00
Для простых случаев да, но простой случай в кубере уже звучит как оксюморон.
А если надо кучу микросервисов менеджить, observability, service mesh, дискавери, метрики, то он не так уж хорош.
-
2023-01-06 16:09:23+00:00
а для хоум пейдж на контейнерах и компоусе есть вариант вообще без релоада на бакапном апстриме
-
2023-01-06 16:05:47+00:00
nginx ингресс для кубера весьма популярен
-
2023-01-06 16:02:58+00:00
эм... nginx прекрасно релоадит конфиги без простоя
-
2023-01-06 15:52:37+00:00
По старинке если через симлинки и reload то может быть, но в докере уже проблемы
-
2023-01-06 15:51:15+00:00
ну c nginx все прекрасно зеротайм, чего ты
-
2023-01-06 15:47:22+00:00
Ну во-первых, а кто говорил за всех? Ты спросил как может быть и зачем это нужно, я объяснил.
Во-вторых, проблема деплоя встает вот уже прям сразу как начинаешь разрабатывать приложение и выкатываешь его на тестовый стенд. Да, может там не сразу требуется zero-downtime деплой, но если уже есть готовые инструменты и разработчик умеет ими пользоваться то лучше сразу все настроить и забыть про эти вопросы на первые N кварталов
-
2023-01-06 13:00:58+00:00
в плюсах тока
-
2023-01-06 12:48:36+00:00
всё у вас энтерпайз )))
Павел, не у всех так
-
2023-01-06 12:45:37+00:00
Ну там они пилят какой-то nginx unit, но все уже юзают гошные инструменты
-
2023-01-06 12:41:26+00:00
я не админ, но вроде же nginx умеет в динамику, там даже апишка есть для управления и можно курлом бомбить.
-
2023-01-06 12:22:18+00:00
Точнее у кубера есть уже готовые "операторы", вместо скриптов программируешь на yml конфигах
-
2023-01-06 12:20:58+00:00
Или просто берёшь traefik и в мануалах любой кейс описан
-
2023-01-06 12:20:39+00:00
Ну, это надо отдельного программиста скриптов брать... )
-
2023-01-06 12:12:53+00:00
И что, скриптами не разрулить?
-
2023-01-06 12:07:32+00:00
Да это даже для банального zero-downtime или blue/green деплоя нужно, поднял контейнер с новой версией приложения и надо как-то балансеру сказать что надо теперь в другой контейнер запросы отсылать
-
2023-01-06 11:53:13+00:00
И все это без участия человека
-
2023-01-06 11:52:24+00:00
Ну чтобы добавить нод в обработчик например. Смотришь если нагрузка на пхп-фпм воркеры начинает превышать 70%, берёшь ещё поднимаешь 50 виртуалок, у каждой свой IP, и засылаешь в траефик запрос что надо проксировать трафик ещё на дополнительные виртуалки
-
2023-01-06 11:40:33+00:00
Павел, а зачем динамически переконфигурировать? хай-лоаду это только вредит, не вижу области применения (
-
2023-01-06 11:16:13+00:00
Traefik и торчит, например. У нжинкса все нормально со скоростью, но он не умеет динамически переконфигурировать конфигурацию, что очень плохо для всяких облаков и куберов
-
2023-01-06 11:10:11+00:00
интересно стало, что там наружу торчать может, китайский веб-сервер, который шустрее инжинкса?
-
2023-01-06 09:06:14+00:00
Да
-
2023-01-06 08:56:58+00:00
получается нужно изменить в traefik 80->443 и в nginx прописать ssl?
-
2023-01-06 08:49:29+00:00
Ну тогда везде где входит ssl трафик - надо сертификат прописывать. В nginx можно самоподписанный
-
2023-01-06 08:48:35+00:00
Да, можно, но проект завязан на сокеты и есть где прописан https жестко и не изменить, там и нода, зоопарк получается, хотел все привести к ssl
-
2023-01-06 08:45:12+00:00
А зачем тебе после траефика https? Можно везде http использовать, если nginx не торчит наружу
-
2023-01-06 07:52:26+00:00
Привет, кто знает, если я через traefik перенаправляю ssl, на nginx тоже нужно сертификат загружать? сейчас nginx слушает 80 и работает https, но php-fpm соответственно определяет как http:80, а нужно 443
-
2023-01-08 22:37:57+00:00
Ребят это вы не далеко видите, вас инопланетяне имеют в пищу а вы цвета картинок в пласмассках рассматриваете 😁
-
2023-01-08 21:41:21+00:00
Завтра спать буду)
-
2023-01-08 21:40:49+00:00
Хз, я неделю уже делаю один сайт, осталось пару дней)
-
2023-01-08 20:58:33+00:00
работать в режиме путешествий тяжело весьма
видимо следующую работу буду в офисе искать, ну или гибрид
-
2023-01-08 20:55:03+00:00
ну два года в таком режиме не каждый осилит :о)
-
2023-01-08 20:50:52+00:00
правда я последние два года работал как другие в отпуске :)
-
2023-01-08 20:50:07+00:00
уволился и решил устроить отпуск
-
2023-01-08 20:42:44+00:00
в отпуске?
-
2023-01-08 20:11:07+00:00
мне не надо на работу
-
2023-01-08 20:04:12+00:00
Гороскоп на завтра для всех знаков зодиака:
Овен: Завтра на работу
Телец: Завтра на работу
Близнецы: Завтра на работу
Рак: Завтра на работу
Лев: Завтра на работу
Дева: Завтра на работу
Весы: Завтра на работу
Скорпион: Завтра на работу
Стрелец: Завтра на работу
Козерог: Завтра на работу
Водолей: Завтра на работу
Рыбы: Завтра на работу
-
2023-01-08 19:15:03+00:00
Ты что, скрипач, дальтоник? Зелёное от синего отличить не можешь?
-
2023-01-08 19:13:13+00:00
https://en.m.wikipedia.org/wiki/Red_pill_and_blue_pill
-
2023-01-08 19:12:15+00:00
Красную или зелёную ?
-
2023-01-08 19:07:28+00:00
да зачем =) вот в ноде сделаешь npm install и всё, а тут какой-то композер или пекл, сложно очень.
и установщик у пхп под виндой некрасивый =)
-
2023-01-08 17:45:05+00:00
или просто подготовить архив с пхп с нужными расширениями, в чем проблема
-
2023-01-08 17:39:18+00:00
докер
-
2023-01-08 17:34:04+00:00
ну вот просто стоит задача например:
У людей Windows сервера, на них DayZ сервера (это сервера игры DayZ)
Там постоянно нужно автоматизированно что-то менять (в файлах игры)
Для этого взял какой-то отечественный shttp, поставил туда пыху, всё как надо, бахнул скрипт под каждого админа таких серверов. Написал мануал как установить эту штуку, что нужно сделать, что скачать и доустановить, если вдруг чего какая ошибка
И когда смотришь на свой проект в ноде, который батником запустить плёвым можно и оставить в фоне...
А единственной проблемой виндузятников может быть только отсутствие NodeJS в системе, что исправляется банальнейшим UI-дружественным установщиком NodeJS
-
2023-01-08 17:31:31+00:00
Ты наступил в бактерию и теперь она тебя пожирает. Скоро твоя node_modules будет занимать 97% диска
-
2023-01-08 17:31:08+00:00
ну таки да, нода для тебя хороший вариант
-
2023-01-08 16:39:40+00:00
Ну это просто потому что там нужен был Discord бот и Gamedig пакет
Этот вес будет зависеть от пакетов, которые нужны в том или ином приложении
-
2023-01-08 16:39:04+00:00
Вопрос странный))
Ну есть другой скрипт, там 22.
-
2023-01-08 16:38:24+00:00
3.5 мб
-
2023-01-08 16:37:54+00:00
Сколько весит node_modules?
-
2023-01-08 16:34:54+00:00
Я вчера игрался с NodeJS и мне понравилось
Сервер запустил за 2 секунды, быстро пакеты какие надо загрузил и прочие приятности
-
2023-01-08 16:06:24+00:00
Кончилась вся еда, В погребе ром иссяк
-
2023-01-08 15:53:58+00:00
что случилось?)
-
2023-01-08 15:20:12+00:00
Кажется я теряю веру в PHP
-
2023-01-12 21:35:12+00:00
о, Ася раздуплила, как симки заказывать
-
2023-01-12 17:44:07+00:00
лучший, спасибо
-
2023-01-12 17:43:47+00:00
abstract class BaseService
{
//общая логика для всех услуг
}
class ServiceOne extends BaseService {
//индивуальная логика услуги1
}
class ServiceTwo extends BaseService {
//индивуальная логика услуги2
}
-
2023-01-12 17:40:52+00:00
тоесть создавать экземпляры да? в одном базовом
-
2023-01-12 17:36:47+00:00
если у этих услуг есть что то общее, то надо создать какую то базовую услугу, которая будет содержать это общее, а от этой базовой услуги отнаследовать услуга1, услуга2 и тд, которые будет расширать базовую услугу своими индивидуальными особенностями
-
2023-01-12 17:32:55+00:00
подскажите,
вообщем, я хочу на сайте сделать раздел слуг, с категориями, более того, услуги могут быть трех типов,например "услуга1" и "услуга2" и "услуга3". Но эти три типа могут отличаться информационной структуре, например в услугах "услуга1" может быть блок с какими то преимуществами а в услуге типа "дизайн" могут быть другие блоки
как мне поступить, создать 3 разные модели, где каждая из которых будет иметь свою собственную структуру данных и методы
создать базовый класс услуг, который будет содержать общую логику для всех типов услуг, и наследовать его в каждой из моделей типа услуг. В своей логике контроллера где можно использовать эти модели для обработки запросов и отображения данных в зависимости от типа услуги.
-
2023-01-12 17:24:09+00:00
ну и описание composer.json почитай, он про твой fpm ничего знать не должен )
-
2023-01-12 17:21:35+00:00
Это не сюда, а в композер :)
-
2023-01-12 17:20:27+00:00
лана, 8.1 fpm
-
2023-01-12 17:14:32+00:00
версию похапэ добавить не забудь
-
2023-01-12 17:12:04+00:00
Реально, TDD называется, дорого на этапе разработки, зато потом сильно удешевляет ловлю багов
-
2023-01-12 17:07:49+00:00
стоит, но там специальными маркерами можно исключать то, что не стоит покрывать
-
2023-01-12 16:57:45+00:00
или у них свой был laravel mix
-
2023-01-12 16:57:15+00:00
да, я знаю. До 9 имел ввиду)
-
2023-01-12 16:56:48+00:00
лара 9 через Vite идет подключение и компилится все в assets/build
-
2023-01-12 16:54:41+00:00
а в ларе получается используется symfony/asset ? или у них свой, ну путь к css и js там вроде через {{ assets }}
-
2023-01-12 16:47:31+00:00
https://php-di.org/doc/understanding-di.html
-
2023-01-12 16:47:19+00:00
Стэтхэм
-
2023-01-12 16:46:24+00:00
ну роутинг я бы не зач то не осилил, поэтому использовал библиотеку
-
2023-01-12 16:44:57+00:00
Раз уж разобрался с твигом и композером, рекомендую и сервис-контейнер покурить
-
2023-01-12 16:44:49+00:00
если что мой композер джейсон
{
"require": {
"symfony/yaml": "^5.1",
"twig/twig": "^3.0",
"nikic/fast-route": "^1.3"
},
"require-dev": {
"phpmd/phpmd": "@stable",
"phpunit/phpunit": "^9.0",
"squizlabs/php_codesniffer": "3.5.*"
},
"autoload": {
"psr-4": {
"App\\Acme\\": "src/",
"App\\Model\\": "src/model/",
"App\\Controller\\": "src/controllers/"
}
},
"autoload-dev": {
"psr-4": {
"AppTest\\Acme\\": "test/",
"App\\Model\\": "src/models/",
"App\\Controller\\": "src/controllers/"
}
},
"minimum-stability": "stable",
"prefer-stable": true
}
-
2023-01-12 16:44:02+00:00
Только Павел не про докер-контейнер речь ведет. А про сервис-контейнер
-
2023-01-12 16:42:33+00:00
просто учусь и все, ну все в докер контейнере
-
2023-01-12 16:42:02+00:00
я с нуля пишу
-
2023-01-12 16:27:48+00:00
Ну и в любом случае лишний слой абстракций тут только в плюс
-
2023-01-12 16:27:35+00:00
Если нет контейнера, надо его добавить и он будет :)
-
2023-01-12 16:27:15+00:00
неизвестно на чем он пишет, может у него нет контейнера
-
2023-01-12 16:26:29+00:00
Зачем создавать обертки, есть же контейнер
-
2023-01-12 16:16:16+00:00
спасибо
-
2023-01-12 16:15:41+00:00
перейдешь завтра с твига не блейд - не надо будет переписывать половину приложухи, а достаточно будет поправить объект-обертку
-
2023-01-12 16:15:00+00:00
Это хорошее решение.
-
2023-01-12 16:13:44+00:00
Это уже как тебе угодно. Можно сделать абстрактный контроллер, где будет инициализироваться шаблонизатор, а остальные контроллеры будут от этого абстрактного наследоваться.
Или можешь сделать объект-синглтон
-
2023-01-12 16:13:06+00:00
а как насчет создать свой класс-обертку для Twig, который будет инкапсулировать в себе все настройки и методы для работы с Twig,
-
2023-01-12 16:12:27+00:00
но ведь тогда каждый раз нужно его будет инициализировать
-
2023-01-12 16:11:59+00:00
По правильному по паттерну MVC - в контроллере как раз. Контроллер управляет отображениями
-
2023-01-12 16:10:52+00:00
поясните, инициализировать шаблонизатор нужно же в index.php в котором все настройки, в том числе и роутинга а не в контроллере
-
2023-01-12 13:10:45+00:00
Ну не, так нереально.
-
2023-01-12 13:02:07+00:00
для началу научиться писать их до кода
-
2023-01-12 13:01:03+00:00
Как познать дзен?
-
2023-01-12 12:10:32+00:00
ну у меня с ходу 72% покрытия выдало. Я просто думал это мало...
-
2023-01-12 12:09:20+00:00
У меня тоже не юнит, у меня функциональщина. Ну вот тут и выяснилось, что мои тесты в отдаленные уголки приложения не всегда заходят и не во все условия заворачивают. И вот в муках - то ли убить энное количество времени, доводя цифру покрытия до максимума, то ли забить болт и занятся чем нибудь более полезным - приложение работает, основной функционал покрыт - уже неплохо
-
2023-01-12 12:06:43+00:00
я бы вообще отменил такой параметр как покрытие тестами. оно бесполезное и даже вредное
-
2023-01-12 12:06:22+00:00
у меня тысячи тестов и я не знаю покрытие кода тестами… они у меня еще не юнит совсем, так что както смысла мало
-
2023-01-12 12:05:22+00:00
ты не познал дзен тестов. познавший дзен пишет тесты вместе с кодом и не думает о покрытии.
-
2023-01-12 12:05:21+00:00
все зависит от проекта, если постоянно меняется то и 10-20% обычно достаточно, если оно честное на юнитах.
если проект меняется не часто и им пользуются другие, то желательно 60-80.
-
2023-01-12 12:01:36+00:00
нет, писать тесты ради проверки работоспособности приложения. Но есть такие уголки приложения, куда тесты просто так не заглядывают
-
2023-01-12 12:01:06+00:00
Писать тесты ради тестов такое себе удовольствие
-
2023-01-12 12:00:01+00:00
Товарищи, вопрос такой. Снова упоролся в юнитесты, посмотрел покрытие своего кода тестами. Тесты писал раньше, а покрытие как то не проверял. Так вот, возник вопрос. А стоит ли добиваться 100% покрытия кода?
-
2023-01-12 04:32:20+00:00
что-то мешает почистить и попробовать, или вообще с виртуалки (у которой всё состояние стряхнуть всегда можно) глянуть?
-
2023-01-12 04:18:22+00:00
А может нужно куки почистить или локал сторейдж?
-
2023-01-11 20:43:30+00:00
Значит только через инкогнито и последующим отзывом токена. Не фиг с чужих компов логинется - пусть учатся пользоваться интернетами :)
-
2023-01-11 20:43:16+00:00
А, сорри, это и есть узбекский. Не пойму на основании чего он его выбирает.
-
2023-01-11 20:41:40+00:00
Нет никакой галочки. Ещё и язык непонятный выбирается. Это с российского айпишника. До этого заходил из Грузии, так был Узбекский язык. WTF?
-
2023-01-11 20:32:45+00:00
Примерно как на почтовых сайтах "чужой компьютер"
-
2023-01-11 20:31:20+00:00
Мне казалось там есть галочка : сессионный вход. Типа одноразовый
-
2023-01-11 20:31:06+00:00
Да я гуглил. Ничего не гуглится. Только логин гуглится, а логаут нет.
-
2023-01-11 20:30:41+00:00
Хрен знает. Надо гуглить
-
2023-01-11 20:29:40+00:00
Я раньше думал, что при авторизации через Telegram на сайте используется та же авторизация, что и на web.telegram.org, но оказалось они разные и живут отдельно.
-
2023-01-11 20:29:07+00:00
Ну, а если уже нет, то что делать?
-
2023-01-11 20:28:57+00:00
Он должен использовать режим инкогнито :)
-
2023-01-11 20:27:56+00:00
А что по идее должен делать пользователь, если он зашёл через телеграм на чужом компьютере и ему нужно как-то выйти? Или если кто-то ранее вошёл, и нужно войти под собой? Ну, кроме как чистить куки и использовать режим инкогнито. Я просто пытаюсь представить с точки зрения обычного пользователя.
-
2023-01-11 20:26:46+00:00
Десктоп версия, думаю, сама использует эту схему для предоставления доступа к сервису :)
-
2023-01-11 20:26:00+00:00
Ага, нашёл в телефонной версии в настройках Privacy and Security. До этого искал в Desktop версии, и там нет этого.
-
2023-01-11 20:25:50+00:00
Вы можете попробовать изменить набор доступов, тогда телега по идеи должно запросить у пользователя доп разрешения
-
2023-01-11 20:23:00+00:00
Потому что токен доступа получен и больше действий от клиента не требуется. Вам нужно отменить выданный токен
-
2023-01-11 20:22:49+00:00
На сайте пока нет никакого логина, в смысле я пока просто получаю URL и проверяю, что хэш-сумма сходится. Кук пока не создаю.
-
2023-01-11 20:21:43+00:00
Если доступ уже был предоставлен, то повторный запрос автоматом подтверждается. Чтоб этого избежать клиент должен разлогинется на сайте или отощвать доступ в настройках телеги
-
2023-01-11 20:21:38+00:00
Так сессии пользователя и нет пока. Я пока лишь получаю ответ в виде редиректа на data-auth-url, в котором через GET-параметры передаются данные авторизованного пользователя. Просто после того, как я эту процедуру прошёл один раз — он теперь ничего не спрашивает и всё автоматом проходит. Мне для тестирования надо бы как-то отменить данное ранее разрешение. Плюс я ставлю себя на место пользователя: а что ему делать, если надо войти под кем-то другим?
-
2023-01-11 20:20:06+00:00
Автоматом не должно. Всегда появляется окно с подтверждением предоставить доступ. Если клиент авторизован в нескольких аккаунтах там можно выбрать какой использовать.
-
2023-01-11 20:17:57+00:00
Вы хотите разлогинеть меня из моего телеграма? 😂
-
2023-01-11 20:12:18+00:00
Это он на своей стороне грохнет и предложит пользователю заново войти, а там сразу автоматом под текущей учеткой авторизуется. Наверное пользователю надо убрать авторизацию в браузере или отменить ее для конкретного сайта
-
2023-01-11 20:09:03+00:00
Удаляй сессию пользователя.
-
2023-01-11 20:03:25+00:00
Подскажите по Telegram OAuth. С авторизацией всё понятно. Вставил JS-код на сайт — появилась кнопка. При её нажатии открывается popup окно, и если пользователь не авторизован в Telegram в браузере, то там появляется диалог с авторизацией по номеру телефона и предоставлению доступа такому-то сайту. А если пользователь уже авторизован и доступ предоставил, то это окно тут же закрывается и авторизация происходит мгновенно.
Вопрос: Как отменить ранее предоставленное разрешение? Как войти под другим Telegram аккаунтом? То есть как сделать Log out?
-
2023-01-11 20:00:23+00:00
это хорошо когда ты знаешь что брать. а не когда по ходу начинает вылазить что мускула нет, курла нет, гд нет и т.д.
если начинаешь то лучше брать нормальный готовый набор под фреймворк, а не страдать и учиться на своих ошибках
-
2023-01-11 19:29:20+00:00
Если не ошибаюсь, то именно в этом вот зоопарке "залуп" и кроется львиная доля всей прелести докера.
Когда ты берешь только то, что тебе нужно в конкретном экземпляре приложения\сервиса
-
2023-01-11 19:22:30+00:00
я просто не понял какое отношение это имеет к var_dump
-
2023-01-11 19:21:46+00:00
от перемены мест слагаемых сумма не меняется)
-
2023-01-11 19:21:18+00:00
ну или xamp
-
2023-01-11 19:21:01+00:00
lamp из серии var_dump
-
2023-01-11 19:20:02+00:00
наверное даже было бы правильным поставить себе какой нибудь lamp и мозг себе не трахать. Но зато я получил интересный опыт
-
2023-01-11 19:18:50+00:00
для меня это не принципиально. Может в будущем будет иметь значение и я буду дрочить это, но сейчас мне просто нужно научиться пхп, для этого я и хотел собрать контейнер, а по итогу столкнулся с тем, что если подключать в docker-compose официальный образ пхп, то в нем нет модулей, то есть все равно надо писать dockerfile с кучей залуп что бы банально запустить контейнер с нужым тебе зоопарком
-
2023-01-11 19:13:17+00:00
надо собирать слои на busybox и с нормальными конфигами
-
2023-01-11 19:12:18+00:00
как правило это залупа) вот у меня сейчас какой-то пакет стоит на работе, там 512 оперативы на скрипт выделено.......
-
2023-01-11 19:07:32+00:00
не в чем) выбрал то что более менее нравиться
-
2023-01-11 18:56:47+00:00
а в чем затуп?)
-
2023-01-11 18:31:40+00:00
говорю же, по докеру не отдупляю, либо канал поищи, либо тут верные вопросы задавать
-
2023-01-11 18:28:31+00:00
нашел это
https://github.com/nanoninja/docker-nginx-php-mysql#install-prerequisites
-
2023-01-11 18:22:51+00:00
getcomposer.org
-
2023-01-11 18:21:55+00:00
ну композером по пакету тяни, йопта
-
2023-01-11 17:28:07+00:00
просто да не просто. Мне нужно для пхп проекта, что бы самое необходимо было, а в лародок там куча всего хз что выбрать
-
2023-01-11 16:52:01+00:00
возьми просто готовый набор, вроду laradock или sail
-
2023-01-11 16:13:00+00:00
ну я в 8.2 не щупал пока ещё это, но если мне на уровне php дадут эту херню сдвинуть, было бы интересно, один член, если даёшь наследоваться от класса — пиши геттеры, а не ридонли пропертя, ебобо
-
2023-01-11 16:12:22+00:00
Connection failed: could not find driver
-
2023-01-11 16:10:50+00:00
Не говно, а киллерфича. Теперь геттеры в ДТО не нужны, а это ж просто охеренно сокращает время
-
2023-01-11 16:10:00+00:00
ридонли говно даже там, на чём пишут похапэ
https://t.me/phpclubru/156170
-
2023-01-11 16:08:37+00:00
я просто хз уже как на 7 версии жить. Без енамов, матча, ридонли, вот этого всего
-
2023-01-11 16:08:34+00:00
в ногу со временем было на 5.6 сидеть во времена выхода наиболее говёнеёшего 7-го
-
2023-01-11 16:07:39+00:00
Шоб в ногу со временем
-
2023-01-11 16:07:26+00:00
таки-накуй он нужОн тада? ))))))
-
2023-01-11 16:07:06+00:00
Да там изменений по сравнению с 8,1 кот наплакал, думаю дыр тоже не особо
-
2023-01-11 16:06:36+00:00
да вы с 8.2 совсем что ли? релиз месячный, там дыр ещё наловят
-
2023-01-11 16:05:50+00:00
и ставь не седьмую версию, а как минимум 8.1, а то и 8.2, она уже зарелизилась
-
2023-01-11 16:04:56+00:00
чем больше - тем лучше :)
-
2023-01-11 16:04:39+00:00
привет тут докер, я конкретно запутался какие ставить модули php, потому как никогда пхп не ставил
-
2023-01-11 16:04:11+00:00
RUN docker-php-ext-install pdo_pgsql
RUN docker-php-ext-install pdo_mysql
ну и тд
-
2023-01-11 16:03:55+00:00
Павел, сунь комрада в доку по докеру, если не сложно
грешен, почти не баловался в него, потому с гугла могу не совсем то найти
-
2023-01-11 16:02:11+00:00
понял
-
2023-01-11 16:01:55+00:00
pdo с конкретным драйвером надо
-
2023-01-11 16:01:47+00:00
pdo_mysql отдельно ставится, pdo это общий модуль
-
2023-01-11 16:01:29+00:00
ну я написал
echo extension_loaded('pdo') ? 'yes':'no';
пишет yes
-
2023-01-11 16:01:29+00:00
Надо типа такого
RUN docker-php-ext-install pdo pdo_mysql
-
2023-01-11 16:01:03+00:00
только sqlite
-
2023-01-11 15:59:28+00:00
это говорит что он не включен верно?
-
2023-01-11 15:50:47+00:00
А вообще да, ставь PDO
-
2023-01-11 15:50:38+00:00
В интернетах пишут что надо еще выполнить docker-php-ext-enable
-
2023-01-11 15:44:55+00:00
это кажется, но это решение кучи геморроя
-
2023-01-11 15:44:22+00:00
может
-
2023-01-11 15:44:16+00:00
да просто для меня PDO кажется сложнее)
-
2023-01-11 15:43:50+00:00
mysqli_* зачем тебе вообще, используй PDO, сомневаюсь, что тебе нужны будут в ближайшее время хитровытраханные особенности мускуля
-
2023-01-11 15:42:44+00:00
а может недостаточно установить расширение а еще нужно его включить в php.ini....
-
2023-01-11 15:42:16+00:00
да
-
2023-01-11 15:41:59+00:00
ошибка Call to undefined function mysqli_connect() говорит о том что не установлен модуль mysqli, верно?
-
2023-01-11 15:40:20+00:00
не шарю в докере, звиняй
-
2023-01-11 15:40:19+00:00
я имею виду версию и расширения
-
2023-01-11 15:39:49+00:00
этого ведь достаточно должно быть?
FROM php:7.4-fpm
RUN docker-php-ext-install mysqli
-
2023-01-11 15:38:13+00:00
расширения всегда доставить можно
-
2023-01-11 15:37:28+00:00
через докер не подскажу, чутка переформулируй вопрос и перезадай, + ОС укажи, могут быть свои тонкости
-
2023-01-11 15:36:54+00:00
И ещё заметил что он изначально ставиться без модулей типа mysqli
-
2023-01-11 15:36:25+00:00
Веб-сервера мало имеют отношения к тому, что под ними крутится
-
2023-01-11 15:36:15+00:00
Что то не могу понять, пытаюсь через докер установить, думал достаточно просто указать версию
-
2023-01-11 15:35:28+00:00
можно
-
2023-01-11 15:33:11+00:00
Подскажите, есть ли возможность установить php 8 без Apache
-
2023-01-11 14:09:01+00:00
значит тот, кто ставил задачу, клал с большим прибором на юзеров сервиса, вот и всё
-
2023-01-11 13:47:04+00:00
И если отвечать на вопрос человека, что под этим требованием понимать, то валидация на клиенте не про это
-
2023-01-11 13:46:04+00:00
Разговор шёл про конкретное требование к задаче:
"Все проверки должны быть выполнены на стороне сервера (должно корректно работать с отключённым js)"
-
2023-01-11 13:03:26+00:00
за такое по почкам бьют, проверки обязаны быть и на клиенте, и на сервере
-
2023-01-11 09:16:00+00:00
Да суть то в том, что уже сказали, валидация должна быть на беке.
Проблема вкл\выкл js на клиенте - не проблема, формы просто адресуешь туда же куда и ajax'ы и идешь дальше
-
2023-01-11 09:15:11+00:00
ну проверка обязательна
как сабмитить форму
-
2023-01-11 09:14:18+00:00
Госпади развели.
Пилишь форму, по дефолту отправляешь данные в ajax, если js выключен у формы должен быть action="", method="" и т.д. атрибуты, что бы форма точно так же ушла туда же, вот и всё!
-
2023-01-11 09:13:28+00:00
Ну раз такая пьянка, посоветуйте пожалуйста валидатор
я тут накидал чутка
что ещё добавить?
"require": {
"twig/twig": "~2.0",
"predis/predis": "^1.1",
"sonata-project/google-authenticator": "^2.3",
"symfony/http-client": "^5.2",
"nyholm/psr7": "^1.3"
},
-
2023-01-11 09:12:12+00:00
Как раз это и имел ввиду
-
2023-01-11 09:11:48+00:00
на сервере не такую же, а нормальную. Это на фронте можно только проверить что длина строки норм, что емейл отдаленно похож на существующий емейл и тд. На сервере надо делать нормальные проверки, чтобы какие нибудь говно не уехало дольше валидатора
-
2023-01-11 09:11:41+00:00
Обычное дело, как по мне
-
2023-01-11 09:10:56+00:00
треш получается!?.
нужно подумать ещё...
-
2023-01-11 09:10:54+00:00
Используй ajax тогда. Тебе неважно, будет ли работать сайт без JS. Тебе важно, будут ли данные валидироваться в итоге
-
2023-01-11 09:10:18+00:00
на ум приходит тупо форма и method='POST'
будет работать без JS и обработка на сервере
но без AJAX не красиво это (
-
2023-01-11 09:09:58+00:00
На JS (перед отправкой запроса формой или ajax) и на сервере точно такую же
-
2023-01-11 09:09:26+00:00
Просто делай две проверки
-
2023-01-11 09:09:08+00:00
не не
это нужно сделать сайт, но вот с таким (выше) условием
-
2023-01-11 09:08:23+00:00
Ну и без js шли на сервер. Например постманом
-
2023-01-11 09:06:57+00:00
Ну а если выключить?
-
2023-01-11 09:06:36+00:00
НО! При включенном JS
-
2023-01-11 09:06:27+00:00
ааааааа
вон как!
-
2023-01-11 09:06:03+00:00
конечно!
-
2023-01-11 09:05:55+00:00
это понятно
ajax'ом могу слать на сервер?
-
2023-01-11 09:05:31+00:00
"Все проверки должны быть выполнены на стороне сервера (должно корректно работать с отключённым js)"
*Корректно работать, в смысле что если не будет JS валидации, то всё равно всё будет гладко в плане валидации. А не про то, что приложение будет работать
-
2023-01-11 09:05:15+00:00
ajax/fetch - это уже JS нужен )
если отключить в браузере, то будет работать?
-
2023-01-11 09:04:58+00:00
допустим, есть поле на странице с названием email
На сервере вы получаете это поле через $_POST['email'] - так вот и проверяйте эту перменную... например, если она пустая, или меньше 5 знаком или не попадает под регексп почтового адреса - выкидываете ошибку
-
2023-01-11 09:04:36+00:00
Пост/гет запросы, ajax/fetch
-
2023-01-11 09:04:07+00:00
это я понимаю
как их туда загнать?
-
2023-01-11 09:03:27+00:00
вам просто нужно те данные, которые вы отправляете на сервер, валидировать на СТОРОНЕ СЕРВЕРА...
-
2023-01-11 09:03:25+00:00
Смысл в том, чтобы не делать валидацию данных на JS
-
2023-01-11 09:02:27+00:00
AJAX относится сюда?
JS (ajax) шлёт на сервер и на сервере обработка
если JS отключить, то не будет работать
Получается нужно без AJAX ? Тупо form и method='POST' ? )
-
2023-01-11 09:02:16+00:00
В чём проблема в понимании вопроса?
-
2023-01-11 09:01:10+00:00
Парни, как вы понимаете следующий текст?
"Все проверки должны быть выполнены на стороне сервера (должно корректно работать с отключённым js)"
-
2023-01-11 00:30:26+00:00
Ща триггер чисто словил от фамилии
-
2023-01-10 11:52:08+00:00
всех с наступающим старым новым кодом!
-
2023-01-10 08:04:09+00:00
да, сейчас не отвечает, вчера еще работал
-
2023-01-10 07:20:54+00:00
не, на днях открывался
-
2023-01-10 07:19:20+00:00
На org там уже с месяц наверное такое
-
2023-01-10 07:18:46+00:00
да мне клаудфлэр, примотанный к рутрэкеру сказал, что не смог к хосту прицепиться
-
2023-01-10 07:18:04+00:00
тоже лежит, хоть через браузерный "впн", хоть через goodbyedpi
-
2023-01-10 07:17:17+00:00
плагин в хроме для него есть доступен официально)
-
2023-01-10 07:16:30+00:00
не у кого. на rutracker.net заходи - это зеркало
-
2023-01-10 07:02:53+00:00
пардон за оффтоп, рутрэкер жив у кого?
-
2023-01-10 06:34:49+00:00
Докер нужен для того чтобы разворачивать у себя конфигурацию проекта, очень близкую к продакшену. А также уметь эту конфигурацию зафиксировать в виде комитов, и разворачивать её на любом сервере
-
2023-01-10 03:42:19+00:00
очередной отлучённый от поисковых систем?
-
2023-01-09 20:19:09+00:00
ты прям совсем ничего не знаешь… шторм нужен чтобы там код писать. а не поднимать чтото там…
-
2023-01-09 20:18:42+00:00
если php mysql nginx тоже самое могу поднять в phpstorm
-
2023-01-09 20:18:09+00:00
подробнее плиз))) про докер)))
-
2023-01-09 20:17:33+00:00
в пхп встроенный сервер есть. без шторма. а зачем докер - если не знаешь, то он и не нужен)
-
2023-01-09 20:16:40+00:00
понять не могу скачал phpstorm в нем уже есть встроенный локальный сервер
тогда зачем мне докер вообще?)))
-
2023-01-09 19:38:49+00:00
и какого то хуя у меня установился curent
-
2023-01-09 19:22:11+00:00
понял, потому что RouteCollection переименовали
-
2023-01-09 19:09:17+00:00
у меня подключен
require_once DIR . '/vendor/autoload.php';
-
2023-01-09 19:05:09+00:00
я установил route league через композер, проверил путь autoload но все равно выходит ошибка
Fatal error: Uncaught Error: Class "League\Route\RouteCollection" not found in /var/www/html/index.php:8 Stack trace: #0 {main} thrown in /var/www/html/index.php on line 8
-
2023-01-09 18:45:06+00:00
а зенд диктатор обязально нужен?
-
2023-01-09 18:29:44+00:00
ну главное что бы трип нормальны был
-
2023-01-09 18:28:32+00:00
С легаси хорошо торкает
-
2023-01-09 18:27:50+00:00
легаси конечно
-
2023-01-09 18:27:46+00:00
балин весь экран сделал
-
2023-01-09 18:26:43+00:00
а какой лучше заюзать что бы торкнуло?
-
2023-01-09 16:26:06+00:00
там в секундах (у тебя 50 минут получалось), я б минуты 3-5 поставил
-
2023-01-09 16:23:09+00:00
ставил птичку и 3000
не помогло
-
2023-01-09 16:22:05+00:00
не юзал, глянь настройки sftp, умеет ли оно автоматом реконнект делать, чтобы как раз не терять соединение
-
2023-01-09 16:17:38+00:00
Парни, почему шторм теряет соединение? Приходится перезапускать его.
-
2023-01-09 13:00:43+00:00
Ахах
-
2023-01-09 12:57:27+00:00
И чот там на канале какой-то криптоскам
-
2023-01-09 12:55:29+00:00
Скам-работодатели?
-
2023-01-09 12:36:09+00:00
Пасиб
-
2023-01-09 12:35:00+00:00
по оформлению кода https://github.com/MiklyxoMaklai/rus-PSR/blob/master/accepted/psr-12.md рекомендую соблюдать
-
2023-01-09 12:34:25+00:00
ваше условие проверки всегда вернет true или false .... зачем писать лишние IF
-
2023-01-09 12:33:32+00:00
во-вторых, сократить функцию можно аналогичным образом, как я вам выше привел в одном операторе return
-
2023-01-09 12:32:29+00:00
А во вторых?)
-
2023-01-09 12:30:08+00:00
понял
-
2023-01-09 12:29:18+00:00
и правильно ли то что я вывожу все функции отдельно
-
2023-01-09 12:29:15+00:00
во первых, старайтесь придерживаться правильного стиля именования...начинайте все функции называть с маленькой буквы.... isAdmin isAuth и.д.
-
2023-01-09 12:28:23+00:00
а как эту функцию красиво описать?
function IsAdmin()
{
if (checkAuth() && $_SERVER['REQUEST_URI'] != '/login.php') {
return true;
}
return false;
}
-
2023-01-09 12:25:41+00:00
нет)
-
2023-01-09 12:24:43+00:00
век живи — век учись, можно ещё backtrace вначале файла functions.php было попечатать и вычислить, откуда его заинклюдили больше одного раза
-
2023-01-09 12:23:02+00:00
да точно теперь буду знать. Спасибо
-
2023-01-09 12:19:43+00:00
да, и такое может быть, только хотел написать👍
-
2023-01-09 12:19:12+00:00
ну здесь да, действительно, идет только 1 раз объявление функции login, но значит где-то еще в файлах, которые подключаются к проекту есть функция с аналогичным названием. Может вы какую-то стороннюю библиотеку подключаете?
-
2023-01-09 12:19:12+00:00
да просто два раза functions.php цепляется, полагаю, require_once ".../functions.php"; надо юзать, а там по коду какие-нить include/require без _once стоят
-
2023-01-09 12:15:44+00:00
или скиньте часть кода файла functions.php .... такое ощущение, что именно там косяк какой-то
-
2023-01-09 12:15:43+00:00
нет не движок, это я для тренировки делаю простую админку)
function login($username, $password)
{
$conn = getConnection();
$sql = "SELECT * FROM users WHERE login = '" . $username . "' AND password = '" . hash('sha256', $password) . "'";
$result = mysqli_query($conn, $sql);
return mysqli_num_rows($result) > 0;
}
function checkAuth()
{
return isset($_SESSION['user']);
}
// функция для сохранения данных пользователя в сессию
function saveUser($username)
{
$_SESSION['user'] = $username;
}
// функция для получения данных пользователя из сессии
function getUser()
{
return $_SESSION['user'];
}
// функция IsAdmin возвращает true если chekAuth возвращает true
function IsAdmin()
{
if (checkAuth() && $_SERVER['REQUEST_URI'] != '/login.php') {
return true;
}
return false;
}
function Maintance($data)
{
if ($_SERVER['REQUEST_URI'] != '/login.php' && !checkauth() && $data['status'] == 0) {
// делаем редирект на страницу авторизации
header('Location: ' . $data['page']);
$message = $data['message'];
echo $message;
exit;
}
}
function checkEmail($email)
{
$conn = getConnection();
$sql = "SELECT * FROM users WHERE email = '" . $email . "'";
$result = mysqli_query($conn, $sql);
return array("status" => mysqli_num_rows($result) > 0 ? "ok" : "error");
}
// создаем функцию logaut
function logout()
{
session_destroy();
header('Location: /login.php');
}
?>
вот файл functions.php
-
2023-01-09 12:14:18+00:00
ну вот.... первичное определение функции login у вас идет в файле functions.php , но где-то в коде у вас еще есть такая же объявленная функция. У вас там что, "движок" какой-то или самописная система? Сделайте тупо поиск по файлам проекта и напишите в строке поиска function login - найдутся все файлы, где есть объявление этой функции.
-
2023-01-09 12:11:49+00:00
Fatal error: Cannot redeclare login() (previously declared in /var/www/html/functions.php:4) in /var/www/html/functions.php on line 4
-
2023-01-09 12:08:23+00:00
Fatal error: Cannot redeclare - а скиньте ПОЛНУЮ СТРОКУ текста с ошибкой. Там по любому должна быть указана функция, которая переопределяется.
-
2023-01-09 12:07:22+00:00
но по коду пока не понятно, где у вас происходит переопределение функции
-
2023-01-09 12:06:56+00:00
ну да согласен
-
2023-01-09 12:05:51+00:00
Зачем так много пишите?
function checkAuth()
{
if (!isset($_SESSION['user'])) {
return false;
}
return true;
}
достаточно заменить на
function checkAuth()
{
return isset($_SESSION['user']);
}
-
2023-01-09 12:04:42+00:00
извини, кровь глазами идёт, не могу читать такой код
-
2023-01-09 12:04:30+00:00
не орем. Просто подсказываем как сделать правильно
-
2023-01-09 12:04:10+00:00
ну да )
-
2023-01-09 12:04:08+00:00
да я новчек хуле вы орете
-
2023-01-09 12:03:52+00:00
вторая в общем то такая же
-
2023-01-09 12:02:25+00:00
очень понравилась третья, в которой вместо
return isset($_SESSION['user']);
пакость какая-то ))
-
2023-01-09 12:01:51+00:00
1 на странице проверяю, авторизован пользователь или нет, 2. делал для того что бы непоказывался блок на странице login.php (ну это так)
3. проверяю в функции checkAuth есть ли пользователь в сессии
-
2023-01-09 11:59:44+00:00
1. if (IsAdmin()) {
include_once('parts/admin-bar.php');
}
2.
function IsAdmin()
{
if (checkAuth() && $_SERVER['REQUEST_URI'] != '/login.php') {
return true;
}
return false;
}
3.
function checkAuth()
{
if (!isset($_SESSION['user'])) {
return false;
}
return true;
}
-
2023-01-09 11:59:25+00:00
сейчас бы вообще в статику запихал и композеровским автолоадом цеплял, несколько лет ф-ций в рабочем коде не писал
-
2023-01-09 11:57:38+00:00
у меня есть header.php в нем вызывается функция login .... покажите участок кода, где она вызывается
-
2023-01-09 11:56:48+00:00
у меня есть header.php в нем вызывается функция login, если функция логин возвращает true я хочу показывать блок. Но в этом блоке я хочу дополнительно вызывать getuser и выводить о нем информацию. Выходит эта ошибка. Хотя функция login существует в единственном экземпляре в functions.php
-
2023-01-09 11:55:16+00:00
проверьте ваш functions.php внимательно. Быть может вы вместо вызова функции 2 раза ее создаете там?
-
2023-01-09 11:54:40+00:00
ну значит вы в файле functions.php. 2 раза создали одну и ту же функцию
-
2023-01-09 11:53:12+00:00
и ваш IF тут не спасение... Представьте, у вас есть файл А с функцией login и файл В с такой же функцией, ну, это условно... где вы подключаете два этих файла и пытаетесь вызвать функцию login - какую из них вызывать?
-
2023-01-09 11:52:46+00:00
у меня функция объявлена только в одном файле functions.php
-
2023-01-09 11:51:41+00:00
да всякое бывает, видел и два одноименных класса, описываемые в файле в разных ветках if-а (((
-
2023-01-09 11:51:25+00:00
не потому вы вызываете, а потому что у вас данная функция с одним и тем же именем в разных файлах.... Ключевое слово "redeclare"
-
2023-01-09 11:50:30+00:00
ну если только так...
-
2023-01-09 11:50:26+00:00
у меня ошибка Fatal error: Cannot redeclare, потому что функцию login я получается вызываю несколько раз как я понял
-
2023-01-09 11:50:14+00:00
ну может конечно он пакет пилит. где надо дать возможность переехать функцию
-
2023-01-09 11:49:56+00:00
Вы чисто логически подумайте, как такое может вообще быть? Т.е. вы где-то вызываете функцию, которой может не быть? Что за бред?
-
2023-01-09 11:49:17+00:00
Так раньше делали для поддержания совместимости в РНР с разными версиями
-
2023-01-09 11:48:00+00:00
👀
-
2023-01-09 11:46:50+00:00
всем салам! а правильным ли будет оборачивать функции таким образом :
if (!function_exists('login')) {
function login() {
// реализация функции
}
}
if (!function_exists('logout')) {
function logout() {
// реализация функции
}
}
if (!function_exists('checkPermissions')) {
function checkPermissions() {
// реализация функции
}
}
-
2023-01-13 22:49:02+00:00
Да) спасибо
-
2023-01-13 22:11:37+00:00
На велике ездить умеешь?
Как-то же научился. Тут тоже самое
-
2023-01-13 22:11:06+00:00
Чем больше читаешь и пробуешь, тем меньше будет эта "неуверенность"
-
2023-01-13 21:45:11+00:00
У меня такой вопрос господа, я оч неуверенно чувствую себя в пхп, это ведь сильно будет тормозить в развитии в ООП?
-
2023-01-13 21:43:58+00:00
Я сделалъ но заебался
-
2023-01-13 19:01:32+00:00
а public выглядит так, а еще js надо
-
2023-01-13 18:59:30+00:00
Ну да
-
2023-01-13 18:58:45+00:00
а рабочий css нах-ся в app/css
-
2023-01-13 18:58:13+00:00
а ведь можно сделать так, что у меня node делает style.min.css и кидает его в public/css
-
2023-01-13 18:53:52+00:00
не подскажу, я от девопсовых дел далек, но то что css в папке src/views/css как по мне - не очень. Все что торчит наружу - должно быть в папке public
-
2023-01-13 18:53:42+00:00
в src только если там scss какой-нибудь, который потом собирается в css
-
2023-01-13 18:53:18+00:00
папку css можно прямо в public кидать, и алиаса не нужно никакого
-
2023-01-13 18:52:57+00:00
ну так по идее теперь все работает
-
2023-01-13 18:51:41+00:00
не подскажешь, а правильно это. У меня папку public nginx считает точкой входа index.php, а но я столкнулся с проблемой что css не подлючались, так как по дефолту nginx считал папку public главной и кароче просто в конфиг добавил
location /css/ {
alias /var/www/html/app/src/views/css/;
}
вот теперь думаю, а у меня не возникнет потом проблем?
-
2023-01-13 18:13:13+00:00
колонки типа, которые дорогие
-
2023-01-13 18:12:43+00:00
ну я вообще то про другие мониторы)
-
2023-01-13 18:12:09+00:00
три. У меня сейчас два, чувствую себя ущербным :)
-
2023-01-13 18:11:36+00:00
Чтобы заниматься разработкой нужен тоже монитор 50 дюймов
-
2023-01-13 18:10:17+00:00
Зацените кстати, в стиле future garage
-
2023-01-13 18:09:22+00:00
не не, нормально. И фиксер, и псалм. Ты на верном пути.
-
2023-01-13 18:09:05+00:00
денег много надо, мониторы там
-
2023-01-13 18:08:22+00:00
я когда увлекался мне и про музыку так же говорили. Но потом я понял что мой комп не тянет нихера и нужно много памяти для музыки. И вообще что бы заниматься музыкой надо аудиокарту
-
2023-01-13 18:02:54+00:00
симфони не монстр ☹️
-
2023-01-13 18:02:23+00:00
Наоборот фласк проще он ближе к ларавел и рор. А джанго монстр типа нашего симфони.
-
2023-01-13 18:02:12+00:00
Как в пых многопоточность из коробки завезут - так вымрут
-
2023-01-13 18:01:39+00:00
Я вообще не понимаю как веб проекты на питоне не вымрут эволюционно
-
2023-01-13 18:01:30+00:00
Сейчас этот питонщик сидит без работы. Вроде начал изучать джс
-
2023-01-13 17:59:47+00:00
ну к примеру джанго по сравнению с ларой вообще как небо и земля, а фласк слишком сложный как по мне
-
2023-01-13 17:58:55+00:00
Питон это такое, особенно после пхп :) В предыдущей компании где я работал пхпшного тимлида поставили ревьюить код за питонщиком :) Он себе фейспалмами все лицо разбил
-
2023-01-13 17:57:28+00:00
в целом у меня были представления как примерно работает композе, единственное я не знал про autoload, насчт мвс тоже слышал. Я вообще работал дизайнером и в компании этой разрабатывали CRM, я занимался тем, что нашел питонщика и он делал бек, вот тогда мне он говорил что питон тру, но меня больше тянуло в пхп
-
2023-01-13 17:57:01+00:00
Форкни к себе это расширение и допили
-
2023-01-13 17:54:30+00:00
нормально. Для новичка - я бы даже сказал отлично
-
2023-01-13 17:54:09+00:00
ну как сказать свободно...
-
2023-01-13 17:52:58+00:00
Не ну так что у парня прогресс. Он неделю назад делал шаблонизатор, подставляя переменные html, а сейчас свободно оперирует композером и твигом. Через неделю он научится dependency injection, еще через пару - дойдет до доктрины. Я бы сказал что чел на правильном пути
-
2023-01-13 17:50:17+00:00
а вот линк на css
-
2023-01-13 17:48:26+00:00
подскажите, не могу понять, почему у меня ссылка на css идет на public/views/css
namespace App\Controller;
define('VIEW_DIR', __DIR__.'/../views');
class TwigWrapper
{
protected $twig;
public function __construct()
{
$loader = new \Twig\Loader\FilesystemLoader(VIEW_DIR);
$this->twig = new \Twig\Environment($loader);
$this->twig->addGlobal('assets', 'app/views');
}
public function render($template, $data = [])
{
echo $this->twig->render($template, $data);
}
}
?>
-
2023-01-13 17:34:33+00:00
Всем хорошего дня! Особенно пользователям Yii2! Подскажите пожалуйста хорошее расширение для хранения изображений. Подробнее:
https://github.com/CostaRico/yii2-images
Есть модуль для загрузки и организации хранения изображений в Yii2, сто лет его использую. Его основной плюс что изображения ПРИВЯЗЫВАЮТСЯ К МОДЕЛЯМ, автоматически. Есть галерея изображений модели (например страницы блога), есть главное изображение.
У расширения есть 2 проблемы:
1) Расширение подзабросили. Там не исправляют баг. В итоге я всегда после установки последние годы вношу правку, чтобы оно нормально работало. При обновлении через композер это слетает.
2) Мне не хватает функционала. Мне нужно чтобы к модели было привязано ещё один ВИД изображения. Не главная + галерея второостепенных (как щас). А аватарка + главная + галерея второстепенных. Вообще на всякий пожарный, я бы модернизирвоал эту приложуху, чтобы у каждого изображения был ИНДЕКС, обозначающий ТИП. То есть я мог сделать неограниченное количество НАЗНАЧЕНИЙ изображений для модели.
Например - картинка для аватарки, главная картинка галереи,вариант главной большего размера, ещё какого-то назначения картинка. Все хранятся и заменяются под определенным своим индексом.
Есть какое-то готовое хорошее расширение в Yii2, также хранящие изображения с привязкой к модели, но с большей структурированностью?
-
2023-01-13 17:22:27+00:00
Ну, блин, тут никто не застрахован
-
2023-01-13 17:19:14+00:00
Книги, работа с гуглением и главное - меня учили
-
2023-01-13 17:18:50+00:00
Из этого следует лишь то, что они не изучали SQL. А не то что они не копались сами с велосипедами.
Я тоже как-то собеседовал чувака под 50 лет который не знал толком как устроен HTTP запрос, хотя думаю он в своей жизни много всего попробовал
-
2023-01-13 17:17:41+00:00
Имхо, самый адекватный варик книжки+практика в виде первых великов, а вот чуть позже уже можно и симфони, и ларавель и что угодно. Потому как если нет понимания низкоуровневого кодинга, человек часто остается на уровне "ну там ORM за меня все сделает", перестает думать головой
-
2023-01-13 17:17:38+00:00
Для того чтобы разобрпть в скл запросах ты собственную бд написал или все же в начале прочитал документацию?
-
2023-01-13 17:14:07+00:00
Я нигде не говорил писать свои велики до посинения попы на стуле)
-
2023-01-13 17:13:34+00:00
Да, потом они приходят ко мне на собесы и на низкоуровневом SQL не могут даже пары слов связать. И да, перегибать не надо
-
2023-01-13 17:12:32+00:00
Мне что-то кажется что чуваки которые 5-6 лет изучают симфони и готовые фреймворки будут ничуть не хуже чем чуваки которые 5-6 лет изучают фреймворки а до этого 5 лет писали свои велосипеды
-
2023-01-13 17:12:24+00:00
Это все равно что учиться боксу без ошибок по видеоурокам не выходя на ринг
-
2023-01-13 17:11:22+00:00
Смешно читать про "написать правильно", если человек до этого вообще не писал
-
2023-01-13 17:10:42+00:00
Потом человек пришел сюда и ему сказали, что надо это класть выше уровнем. Наставник конечно бы быстрее надавал по рукам, но это не отменяет пути своих ошибок
-
2023-01-13 17:10:36+00:00
100500 ошибок научат тебя только как сделать следующую 100501.
А один раз написав правильно, ты уже будешь писать правильно и в зависимости от ситуации оптимизировать решения под требования.
-
2023-01-13 17:09:26+00:00
И что ты поймёшь? Вот человек засунул шаблоны в папку публикации и что это дало ему в плане понимания.
-
2023-01-13 17:08:26+00:00
В идеале конечно иметь наставника, или пойти куда-то работать "за еду", чтобы показали как надо
-
2023-01-13 17:07:51+00:00
Осваивать надо чужой код, когда есть с чем сравнивать (со своим), иначе все принимается за чистую монету и начинается чехарда с синглтонами, и прочим (смотря на какой чужой код человек попадает впервые)
-
2023-01-13 17:04:57+00:00
Лучше сразу освоить чужой код, потом пробовать повторить и это даст понимание архитектуры.
-
2023-01-13 17:04:52+00:00
Хз, я кодить начал до симфони)
-
2023-01-13 17:04:21+00:00
тем более, я прежде что то делать прошу CHATGPT рассказать мне про какие то особенности и чеклист
-
2023-01-13 17:04:17+00:00
гостевую с авторизацией напиши, для начала)
-
2023-01-13 17:04:10+00:00
Да все пробовали свои подходы ещё в эпоху дофреймворков, а потом просто выкинули это все и пошли читать доку симфони )
-
2023-01-13 17:03:30+00:00
тем более я не собираюсь что то делать из ряда, смотрите я изобрел что то. Это просто тренажер не более
-
2023-01-13 17:02:38+00:00
Попробовал свой подход, один, второй, третий, ... сотый, подсмотрел у кого-то что-то и, может быть, напишешь что-то стоящее
-
2023-01-13 17:02:11+00:00
почему, есть же какие то общие принципы у всех фреймворков, роутеры, шаблонизаторы, mvc, просто у лары есть свои плюшки типа артизан и т.д. Ну я так поверхностно
-
2023-01-13 17:02:00+00:00
Глупости не говори))
-
2023-01-13 17:01:57+00:00
А учиться тогда как?!
-
2023-01-13 17:01:47+00:00
и не надо, надо написать попробовать свое
-
2023-01-13 17:01:40+00:00
Например собирая свои велосипеды ты никогда не изобретешь доктрину, dql и unit of work
-
2023-01-13 17:00:58+00:00
а в эпоху composer и кучи пакетов - можно соединять воедино то, что больше нравится, не городить все с нуля
-
2023-01-13 17:00:54+00:00
Я тоже про это читал но честно говоря сомнительно это. Сам никогда не догадаешься до высоких технологий которые щас используются 😳
-
2023-01-13 16:59:07+00:00
Именно так
-
2023-01-13 16:59:07+00:00
Главное чтобы когда критиковать его будут - автор хоть на 50% прислушивался...
-
2023-01-13 16:58:57+00:00
да, я где то прочитал что новичкам нужно писать велосипед что бы научиться
-
2023-01-13 16:57:36+00:00
Время написать свой велосипед
-
2023-01-13 16:57:22+00:00
Без фреймворка ты даже принципы не сформулируешь, т.к. их нигде нет
-
2023-01-13 16:56:45+00:00
а что мешает понять принципы глядя на фреймворк..
-
2023-01-13 16:53:04+00:00
ну я буду изучать лару, просто на данный момент я не хочу затачивать себя под конкретный фреймворк, а понять принципы по которым они работают
-
2023-01-13 16:49:35+00:00
Как по мне так это только трата времени. 15 лет назад все говнякали кто в лес кто по дрова, никто массово не додумывался до роутинга, единой точки входа и т.д.
Блуждать по этим архитектурным дебрям можно полжизни, уж лучше сразу изучить 2-3 фреймворка и понять как правильно
-
2023-01-13 16:44:51+00:00
Чувак так то правильным путем идет. С азов так сказать. А говтовые фреймворки - это от обратного....
-
2023-01-13 16:43:24+00:00
Да возьми поизучай готовые фреймворки
-
2023-01-13 16:35:43+00:00
спасибо, буду знать. Очень рад что вы откликнулись
-
2023-01-13 16:00:30+00:00
Почему шаблон в публике? Смысл публикации как раз в том, чтобы там не было кода кроме точки входа, он находился выше
-
2023-01-13 15:47:25+00:00
Поясните, а обязательно создавать класс view? Если я использую шаблонизатор типа twig и у меня структура проекта, типа app и public, в app контроллеры и модели а фронт находится в public. В тоже время есть обёртка твига и она рендерит в контроллере страницу шаблона в public
-
2023-01-14 20:04:01+00:00
может потому что я вызываю контроллер в index.php
-
2023-01-14 20:01:39+00:00
при успешной авторизации я хотел бы засунуть пользователя в сессию, логически я я хотел ее вызвать перед этим, но что то пошло не так
-
2023-01-14 19:58:53+00:00
но прикол в том, что почему то она подчеркивается в контроллере
-
2023-01-14 19:57:33+00:00
ну вообще по логике нет, только на странице авторизации и контроллера админки и главной
-
2023-01-14 19:55:48+00:00
А тебе сессия всегда нужна?
-
2023-01-14 19:55:13+00:00
подскажите, а session_start(); обьявлять лучше в index.php или в контроллере каждый раз?
-
2023-01-14 15:47:40+00:00
Форма отправляет данные на rout, контроллер цепляется так де на rout
-
2023-01-14 15:43:44+00:00
Ого. не знал. Пропустил как-то такую возможность
-
2023-01-14 15:26:34+00:00
Я просто думал сразу на контроллер можно посылать дачные
-
2023-01-14 15:23:30+00:00
Поясните, для отправки формы с авторизацией мне нужно создать обработчик в public что бы отправлял данные контроллеру?
-
2023-01-14 15:16:29+00:00
Спасибо
-
2023-01-14 14:34:26+00:00
Дык
src="(.*?)"
-
2023-01-14 14:29:23+00:00
Вытянуть куда?
-
2023-01-14 14:03:50+00:00
Привет, есть большой текст, в нём есть строка