«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
PHP Thread #125 /php/ Аноним 2021/08/08 08:58:17  №2120804 1
PHP.png (2, 460x460)
460x460
Предыдущий тред: >>2062494 (OP)
Оформляйте код аккуратно.

Учебник - https://codedokode.github.io/phpbook
ОП-паста - https://pastebin.com/gzQ8bGm0

Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.

PHP developer roadmap - https://miro.com/app/board/o9J_lbUUBBQ=
Карта знаний - https://docs.google.com/spreadsheets/d/1KvoibcMHrRxck9mV6UPGHZ9ysnAFEIGddo3OuJTrx1k
Аноним 2021/08/08 10:23:51  №2120907 2
16242126383200.png (94, 245x246)
246x245
Пиздец конечно не каноничный перекат
оп хуй
Аноним 2021/08/08 10:33:07  №2120915 3
Что у вас за мода в утонувших тредах сидеть, кстати?
Или из всех похапешников только один умеет перекатывать треды?
Ответы: >>2121850
Аноним 2021/08/08 11:42:47  №2120983 4
На всякий случай продублирую вопрос в новом треде:
Подскажите, зачем использовать reverse proxy в связке Nginx + Apache, почему одного Nginx не достаточно, он же может обрабатывать и статику и работать с php-fpm? Скорость работы с динамическим контентом у Nginx и Apache сопоставимая, в чем преимущества одновременного использования обоих серверов?
Ответы: >>2124145
Аноним 2021/08/08 12:51:32  №2121054 5
Плохой перекат. Как было в старом треде: заходишь в тред и в ОП-посте видишь ответы на часто задаваемые вопросы.

А сейчас: заходишь в тред и надо делать лишний клик, идти на какой-то сторонний сайт, на котором текст написан плохо читаемым моноширинным большим шрифтом.

Причем половина человек никуда не бует переходить и будет задавать платиновые вопросы в очередной раз.

В чем смысл? Ты сделал неудобно читателям треда. Это глупость - выносить шапку треда с часто задаваемыми вопросами на посторонний сайт.

Объясните, какой смысл выносить шапку на посторонний сайт. Чем это удобнее?
Ответы: >>2121067
Аноним 2021/08/08 13:04:04  №2121067 6
>>2121054
Но там все устаревшее и обновлялось, в лучшем случае, в 2018-ом последний раз. Зачем оно вообще нужно? Пусть хотя бы в виде пасты на пастбине будет.
Ответы: >>2121098
Аноним 2021/08/08 13:50:15  №2121098 7
>>2121067
Большая часть пыхи - легаси.
Ответы: >>2121170 >>2170317 >>2170335
Аноним 2021/08/08 15:27:14  №2121170 8
>>2121098
Этот факт не отменяет того что в РФ он очень популярен.
Аноним 2021/08/08 17:28:08  №2121290 9
>>2120804 (OP)
Осваиваю mvc, добавляю роутинг по гайду и на любом кастомном путе отличном от '/' получаю 403
Заклонил чужой пример, запустил и там тоже самое
Пользуюсь опенсервером, на xampp тоже самое
Я так понимаю нужно хтацесс писать для апача? Без него никак? в хостс смотрел, там мой домен стоит возле локального айпи как и должно быть
Ответы: >>2121291 >>2170315
Аноним 2021/08/08 17:29:51  №2121291 10
image.png (14, 844x336)
336x844
Аноним 2021/08/08 19:58:08  №2121399 11
собираюсь вкатиться в 28. работаю контент-менеджером. в основном 1с битрикс. размещаю статьи. зп 60. джун в нашей конторе получает 80. думаю за 3 месяца обучиться и перекатиться внутри компании.
как думаете, есть шансы? или в 28 лет уже не особо пойму что-то?
Ответы: >>2121422
Аноним 2021/08/08 20:28:02  №2121422 12
>>2121399
Я хуею как вы так планируете за один месяц, за два, за три, если ты нихуя понятия не имеешь, что там и сколько учить?
Ответы: >>2121474
Аноним 2021/08/08 21:11:43  №2121474 13
>>2121422
ну я так-то базу знаю. круд приложуху на голой пыхе могу написать и mysql, да и в вебе я уже давно шароёблюсь. думаю, 3 месяца на изучение голой пыхи и 1-2 месяца битрикса/ларавельки хватит (у нас как и битриксоиды требуются, так и ларавельщики)
Ответы: >>2121851
Аноним 2021/08/09 09:42:36  №2121850 14
>>2120915
>Что у вас за мода в утонувших тредах сидеть, кстати?
Это профессиональная потребность сидеть на легаси
Аноним 2021/08/09 09:44:33  №2121851 15
>>2121474
Надеюсь, ты не будешь портить себе и коллегам жизнь и выберешь из двух зол меньшее лару
Ответы: >>2122047
Аноним 2021/08/09 11:23:36  №2122047 16
>>2121851
на битриксе в рашке больше работы в разы. думал как-нибудь вообще в будущем перекатиться чекбоксы новые пилить в админке, да свистоперделки всякие за 120к в месяц. такой суммы мне хватит
Ответы: >>2122143 >>2122526
Аноним 2021/08/09 12:34:15  №2122143 17
>>2122047
Где ты у битрикса такие зп видел?
120к - зп мидла, который умеет в симфе или ларе работать
Ответы: >>2122422
Аноним 2021/08/09 15:47:20  №2122422 18
>>2122143
бля, ну давай не будем обсуждать зп.
есть компании, которые готовы платить бабки, есть те, кто нихуя не платит.
я ГОД НАЗАД работал тестером в компании, где джун получал 65-85к. Спустя полгода работы ВСЕХ джунов повышали до +50р в час. Через полгода ещё так.
На текущем месте у нас обычный разраб получает от 60 до 120. Миддлы от 120к.
Причём джун должен уметь:
- брать верстку и насаживать на битрикс;
- уметь в битрикс или лару, или вп (что угодно);

а дальше кто насколько продаст себя. Приходят челы, которые думают, что со старта им никто 80к платить не будит и просят 50к. Им и платят 50к. А приходят челы, которые по сути слабо прогают, но они просят 85-90к и знаешь, им платят.
Дело всё в том, насколько ты наглый, изъебистый и насколько можешь подлизать лиду или миддлу хотя бы в случае чего.
Молчунов. жестких ебаторов битры у нас нет. Все чего-то знают, а чего-то не знают и мы все обмениваемся опытом.
Просто кто-то попросил n рублей, а кто-то попросил n+30k рублей. Вот и вся разница на рынке труда.
Аноним 2021/08/09 17:11:06  №2122526 19
>>2122047
Поверь человеку который нырнул в это говно, ты будешь невостребованным нигде специалистом, PHP разработчик и Битрикс разработчик это такая же разница как автослесарь и слесарь сантехник. Я 6 месяцев работал в такой параше и перекатился на рельсы, то что у нас делал тимлид и помидоры 5ти летнем стажем и всем остальным это казалось мега сложным, то я делал в первые дни своей работы. Весь твой опыт будет нерелевантный, а с опытом ты будешь все глубже утопать в этой хуйне, ты не будешь уметь базовых вещей (работать с БД, докеры, хуекеры, всякие редисы, рабиты), не знать всяких паттернов, тот же MVC в Битриксе извращённый, это реально была пропасть у меня. Из плюсов скажу что я научился быстро верстать и накидывать на коленке лапшу на жиквери. хотя сейчас пилю микросервисы и фронт не вижу А в остальном у меня голова была занята особенностями работы с этой какашкой и полный инфоблок головного мозга. А сколько часов ты проведешь в поиске нужного файла, это не передать на словах, особенно шаблонов, кстати в одном из этих шаблонов в резалт_модифаер.пхп может оказаться вызов какой-нибудь ЦАйблокЭлемент::ГетПроперти в цикле который генерирует десятки запросов с джойнами при каждом вызове, вот и ебись ищи чего там тормозит и почему страница с товарами делает пару тысяч запросов при выключенном кэше, потому что спустя пару часов после его очистки там снова хуйзнает сколько гигов и место кончается. А если тебе достанется проект после говно студии, да и ещё на "готовом" решении, ещё и со свистелками, то это будет полный пиздец и какая нибудь задача поменяй картинку и передвинь этот блок может превратиться в недельную еблю. Когда я уволился, то удалил со своего ноута 300 гигов и там были проекты с которым я работал ежедневно.
Ответы: >>2122528 >>2122730 >>2122851
Аноним 2021/08/09 17:13:25  №2122528 20
>>2122526
Да забей на битриксошизика, пусть в своем болоте тонет
Аноним 2021/08/09 19:14:58  №2122730 21
>>2122526

Справедливости ради, проблема с функцией, делающей тяжелые запросы из шаблона, легко отлавливается профайлером - там на графике потребления памяти, потребления CPU или графике числа запросов будет явно видный пик.
Аноним 2021/08/09 20:02:36  №2122809 22
Используя C# я написал парсер изображений с одного сайта и хочу его перетащить в веб. У меня есть сайт на WordPress.
Как можно реализовать функционал, чтобы пользователь заходил на сайт, вбивал ссылку с изображением, эта ссылка поступала бы в мой парсер и затем изображение из парсера отправлялось бы пользователю? Парсер работает под виндой
Ответы: >>2122907
Аноним 2021/08/09 20:27:24  №2122851 23
>>2122526
Я знал, что в битриксе пиздец, но не знал, что настолько. Спасибо, прислушаюсь. В любом случае хотел пойти по такому пути:
голая пыха + sql, mysql и postgre. Потом yii2/symphony/laravel. Выбрал лару, потому что большинство говорят, что она лучше. Потом уже хотел изучить битрикс и работать в нем, но видимо, всё-таки прислушаюсь к тебе
Ответы: >>2182434
Аноним 2021/08/09 21:23:42  №2122907 24
>>2122809
Пили апишку на стороне Шарпа, пользователь заходит на сайт, сайт случиться к апи на C# там запускается парсер и отдает результат сайту, сайт отдает результат пользователю
Ответы: >>2122959
Аноним 2021/08/10 01:19:23  №2122959 25
Аноним 2021/08/10 12:02:14  №2123475 26
Почему в ларавеле чтобы подключится к базе надо менять данные одновременно и в конфиге и в env? Это же тупо, ни?

Как в ларавеле добавить элементы в вьуху через контролер?
Ну и вообще динамично добавлять.
Ответы: >>2124041
Аноним 2021/08/10 17:35:48  №2123838 27
Как сделать хороший ГСЧ ?
Ответы: >>2124036 >>2124117
Аноним 2021/08/10 21:10:04  №2124036 28
>>2123838

Что ты подразумеваешь под "хорошим"? Какие известные генераторы ты уже рассмотрел и почему отверг?

Генераторы случайных чисел это математика, и довольно хардкорная. Например, простой генератор на основе сдвигов и XOR опирается на поля Галуа, где можно голову сломать, пытаясь разобраться. И это относительно простой генератор.
Аноним 2021/08/10 21:15:40  №2124041 29
>>2123475

В конфиге ты настраиваешь общую конфигурацию, которая не зависит от окружения (одинаковая на машинах всех разработчиков и в продакшене). В частности, ты указываешь, что параметры соединения с БД не фиксированные, а их надо брать из env-файла.

То есть, конфиг у всех общий. И ты не можешь туда прописать пароль от своей базы, так как у твоего коллеги будет другой пароль.

А в env ты выносишь параметры, которые либо разные в разных окружениях, либо которые хочется свободно менять. env файл у каждого разработчика и на продакшене свой, и они могут его менять как хотят, не мешая другим.

Ответы: >>2125732
Аноним 2021/08/11 00:44:08  №2124117 30
Аноним 2021/08/11 05:46:05  №2124145 31
Аноним 2021/08/12 13:43:14  №2125732 32
>>2124041
Хороший ответ, чаю.

Аноним 2021/08/12 16:07:35  №2125888 33
А какое там правильно решение в задачке на кредит айпада? Просто там даже ответы не даны.

https://ideone.com/rlxbLa
Ответы: >>2125896 >>2132034
Аноним 2021/08/12 16:15:45  №2125896 34
>>2125888
Ой, по идее в paymentTotal надо же ещё и взносы/комиссии включать.
Аноним 2021/08/13 09:53:27  №2126540 35
Как пыхыпы знает в какой части получать ответ?
Вот ты создаешь запрос, отправляешь, скрип останавливается и ждет ответа(ограниченное кол-во времени)
В ответ возвращается заголовок, типа от того-то, туда-то.
Вот что есть этот туда-то? То бишь в заголовке написано отправить на рут(url) MyController. А как этот контролер знает что данные заголовка надо кидануть в определенную часть скрипта, а не начать обрабатывать запрос с самого начала скрипта?
Ответы: >>2126779
Аноним 2021/08/13 12:27:36  №2126779 36
>>2126540

Извини, но я не очень понял, о какой ситуации идет речь: браузер отправляет HTTP-запрос на сервер, где работает PHP-скрипт, или PHP-скрипт отправляет запрос на другой сервер? Или речь (судя по слову контроллер) о каком-то фреймворке? Опиши подробнее, что за ситуация. Используется ли фреймворк или самописный код и кто кому отправляет запрос.

Если ты из скрипта отправляешь HTTP-запрос на другой сервер, то никакие контроллеры не вызываются. Ты просто отправляешь запрос и скрипт останавливается до получения ответа. После получения ответа он продолжает свою работу с того места, где остановился:

// эта строчка отправляет HTTP-запрос и скрипт останавливается до получения ответа
$result = curl_exec($ch);
Ответы: >>2126973
Аноним 2021/08/13 13:53:40  №2126844 37
Привет, аноны-знатоки. Подскажите пожалуйста, может быть кто сталкивался: гугл требует все изображения хранить в современных форматах. То-есть надо их преобразовывать либо в webp, либо в jp2. А то и в оба сразу. Так вот, сам вопрос: стандартная php библиотека GD может эти форматы создавать/преобразовывать из jpeg? Я нашел команды типа imageWebp, то-есть создавать вебп она вроде как может. Но не могу найти аналогичную команду для формата jpg2000. Есть что-то вроде imagejp2? Гугл предлагает только сторонние программы для конвертирования. А нужно именно кодовое решение. Спасибо.
Аноним 2021/08/13 14:29:04  №2126875 38
можно ли сделать передачу данных из одного куска кода в другие в зависимости от ситуации?
Ответы: >>2126884 >>2126923
Аноним 2021/08/13 14:43:47  №2126884 39
>>2126875
Как это? Передачу переменной в пределах одного php файла? Да, если переменная условно-глобальная, то ее будут видеть все функции. Просто суй ее в них.
Использовать переменную, созданную в одном файле, в другом файле? Зачем так делать? Это не очень правильно. Она должна использоваться там, где создалась.
Передавать данные из, например, формы отправки сообщения, и передавать их в скрипт обработки этих данных? Да, можно. В форме указываешь урл скрипта/сам скрипт. И через массиве $_GET или $_POST передаешь.
Обращаться к определенным глобальным переменным/сущностям в современных движках? Да, можно. В yii2 или laravel для вот этой страницы уже есть некий набор стандартных переменных с полезной информацией. Например, текущий урл, имя сервера и прочие штуки. Тебе их не надо самому создавать, они есть.
Ответы: >>2126898
Аноним 2021/08/13 15:00:38  №2126898 40
>>2126884
>Использовать переменную, созданную в одном файле, в другом файле?
Ответы: >>2126912 >>2126961
Аноним 2021/08/13 15:21:08  №2126912 41
>>2126898
Если у тебя два голых файла, то тебе надо указать в одном ссылку на другой через require_once или require

То-есть в одном файле создаешь переменную.
Затем в другом файле пишешь require_once("первый файл")
И теперь все переменные из первого файла доступны во втором после строчки с require_once

Но в движках используют use с namespace обычно, плюс автолоады с композерами
Ответы: >>2126921
Аноним 2021/08/13 15:36:38  №2126921 42
>>2126912
намспейс это описание пути к файлу с классом?
Ответы: >>2126927 >>2126966
Аноним 2021/08/13 15:43:52  №2126923 43
Ответы: >>2126925
Аноним 2021/08/13 15:45:13  №2126925 44
Ответы: >>2126930
Аноним 2021/08/13 15:47:14  №2126927 45
Ответы: >>2126966
Аноним 2021/08/13 15:50:06  №2126930 46
Ответы: >>2126931
Аноним 2021/08/13 15:51:26  №2126931 47
>>2126930
я даже не знаю что это
Аноним 2021/08/13 16:14:45  №2126961 48
>>2126898

Обычно код пишут в функциях. И ты вызываешь функцию и передаешь ей нужные переменные. А не пишешь стены кода без разделения на функции.
Аноним 2021/08/13 16:18:31  №2126966 49
>>2126921

Нет, неправильно. Это не путь (хотя он может частично с ним совпадать). Неймспейс это начальная часть длинного имени класса.

То есть, если полное имя класса \Zend\Db\Error, то короткое имя класса это Error, а неймспейс это \Zend\Db.

Зачем это нужно, можно прочитать в уроке про неймспейсы: https://github.com/codedokode/pasta/blob/master/php/autoload.md

>>2126927

Зачем ты сбиваешь человека? Неймспейс это не путь к классу, а префикс длинного имени класса, который может совпадать с путем к классу. А может и не совпадать.
Ответы: >>2126980 >>2126995
Аноним 2021/08/13 16:25:34  №2126973 50
>>2126779
PHP отправляет через curl, в процессе исполнения скрипта, ждет ответа.

Фреймворк пусть будет ларавел\симфони, но это не особо важно, у них под капотом таже пыха с адресом скрипта.

>останавливает
И как это происходит? Изнутри если? Как он знает с какого места продолжить исполнение?
Ответы: >>2127727
Аноним 2021/08/13 16:30:55  №2126980 51
>>2126966
>Неймспейс это не путь к классу, а префикс длинного имени класса, который может совпадать с путем к классу. А может и не совпадать.
Да, ты прав. Но по правилам хорошего тона неймспейс должен совпадать с путем к классу. Зачем изначально прививать человеку "неприличные" практики?
Ответы: >>2126988 >>2127764
Аноним 2021/08/13 16:36:35  №2126988 52
>>2126980
Так его же попускать будут на таких вопросах. Пусть знает, как оно внутри устроено
Ответы: >>2126998
Аноним 2021/08/13 16:42:35  №2126995 53
>>2126966
так это типа организация файлов,когда их много?
Ответы: >>2127764
Аноним 2021/08/13 16:51:23  №2126998 54
>>2126988
>Так его же попускать будут на таких вопросах.
Современные среды разработки сами за тебя пишут неймспейсы. Программисту об этом не надо думать. Ему за "а я знаю как оно внутри устроено" не доплатят. Ну разве что перед друзьями похвалиться.
Ответы: >>2127012 >>2127778
Аноним 2021/08/13 16:59:57  №2127012 55
>>2126998
Только собеседующий задаст вопрос и не получив ответ, сделает отметку, что перед ними макака, которую можно попустить по зп
Ответы: >>2127035
Аноним 2021/08/13 17:17:43  №2127035 56
>>2127012
>перед ними макака, которую можно попустить по зп
Новичку в любом случае не дадут высокую зарплату. Если есть шанс попасть в хорошую контору, где работают профессионалы, за еду - это уже праздник. Кроме того от конторы зависит. Да, ты прав, есть такие, что будут и метод пузырька спрашивать, и неймспейсы каноничные, менять две переменные без помощи третьей и прочие олимпийские задачи - то есть все, что в реальности не очень-то и используется/автоматизировано. А потом будут зарплату урезать за то, что скобочку у класса переносишь/не переносишь. Но это скорее неадекваты, и оттуда надо убегать.
А есть конторы, которые не дадут большую зарплату, но где нужны люди чтобы работать вот прямо сейчас. Им как-то не до мелочных придирок.
Ответы: >>2127610
Аноним 2021/08/14 11:01:39  №2127586 57
Жесть аноны помохите плиз, а то я кукохой поеду.
Я всегда был не в ладах с реактом сам по себе, а тут понадобилось в ларавел запихнуть.
И это ппц, чтобы я не читал и не пробовал у меня ничего не работает.
А сегодня я вообще потерял важный файл с жс скриптом потому что laravel.mix, ебучий вебпак(ссука как же я ненавижу вебпак и еблю с зависимостями фронетнда) просто потер его.

Я делал:
Установил ларавел/ui. Установил реакт, нпм, все зависимости разрешились. перегрузились, ошибок нет. Делаю npx mix watch.

В блейде у меня <script src="/js/app.js"></script>. //реакт
Также <script src="/js/main.js"></script> //мой кастомный скрипт

Делаю import ReactDOM from 'react-dom', затем ReactDOM.render() в main.js - пишет не может использовать вне модуля

Я и в package.json type='module' делал, и в блейде script type='module' делал, и в webpack.mix.js писал mix.js(...main.js) . Когда делаешь все это то это походу костыли и появляется следующая ошибка типа пропишите путь, хотя
предполагаю такого не должно быть вообще когда делаешь импорт реакта
Я просто не понимаю как эта херовина должна работать, может кто объяснить.

А то что файл потерял это в 10 раз обиднее, сука ненавижу вебпак.
Ответы: >>2127612 >>2127769
Аноним 2021/08/14 11:26:22  №2127610 58
>>2127035
Ну да, тут еще зависит от того, на какой грейд мы собеседуемся.
Для джуна ценнее получить оффер на любую сумму и достаточно набрать какой-то минимум по очкам, чтобы получить оффер.
К мидл+ критерии жестче
Аноним 2021/08/14 11:29:24  №2127612 59
>>2127586
Ты херней занимаешься, пытаясь совместить блейд с реактом.
От ларавеля реакту нужна только апишка, из которой он будет фетчить данные.
Никакие ларавел миксы не нужны, т.к. они жестко привязывают фронт к беку.
В идеале у тебя два отдельных приложения, живущих своей жизнью: апи на ларавел и спа на реакте
Ответы: >>2127658 >>2127778
Аноним 2021/08/14 11:44:30  №2127633 60
Аноны, есть ли внятный гайд по настройке рабочего окружения для вкатуна? Уже четвертый день ковыряюсь, сегодня виртуалбокс отказался монтировать общую с виндой папку в убунту, хз что дальше делать.
Ответы: >>2127652 >>2127835
Аноним 2021/08/14 12:03:23  №2127652 61
>>2127633
>хз что дальше делать.
Накатить убунту в дуалбут и не ебаться с виртуалками
Ответы: >>2127835
Аноним 2021/08/14 12:10:48  №2127658 62
>>2127612
1)Не раз уже слышу абреввиатуру СПА. Что она значит? Как расшифровывается?
S - service, A-apllication, по логике

2)Спасибо, я понял конечно, но у меня бомбит что все гайды и официальные документации заставляют тебя использовать определенные технологии, а они на самом деле не работают и не нужны, а ты сидишь и ковыряешь в этом гумне часами. Класс.
Я бы все таки хотел понять, просто понять как оно на самом деле должно было работать. Микс контролирует сборку, вебпак и прочая. Все зависимости докачиваются, пакетики встроенные.
Сказано просто добавить script src. Больше ничего не сказано.
Очевидно по логике js-а ты кидаешь import-ы. И раз написано что микс добавил, и все смотрит - какого лешего мой срипт не видит реакт?
Что я делаю не так?

ПС фронтенд приложения куда принято кидать в проекте, в /public?
Ответы: >>2127667 >>2127677
Аноним 2021/08/14 12:18:27  №2127667 63
>>2127658
сингл пейдж апликейшн, загружается эта сингл пейдж и работает на клиенте, на бэке только апи для отправки-приема данных.
Аноним 2021/08/14 12:24:13  №2127677 64
>>2127658
single page application

Так нужно базу веба знать, а не бросаться грызть гайды, тогда и фундаментальное понимание будет как работает та или иная технология и как их вместе собрать.
А то получается идем по гайду, шаг вправо-влево и наши полномочия всё. Или гайд устарел - тоже пук.

>ПС фронтенд приложения куда принято кидать в проекте, в /public?
В идеале это отдельная репа, которая находится вне репы твоего бекенда.
Как это примерно работает:
Ты вбиваешь урл spa.hui, тебе грузится само spa, которое представляет собой грубо говоря хтмл, жс, цсс, т.е. статика.
Где-то отдельно крутиться бекенд апи, урл которого знает твой спа.
Если спа нужно получить/сохранить данные, он будет обращаться к бекенду. Роутинг происходит на уровне спа.

Наглядный пример - приложение погоды.
Есть некий внешний апи (не твой) weather.com, у которого ты можешь запросить текущую погоду, температуру, влажность, осадки и т.д.
Ты пишешь жс приложение, которое получает от апи погоду и выводит юзеру в браузер.
Ответы: >>2127691 >>2127710
Аноним 2021/08/14 12:34:08  №2127691 65
>>2127677

Классическое приложение: отправляешь запрос на сервер, получаешь страницу с ответом.

Типичное SPA приложение: отправляешь запрос на сервер, получаешь заглушку со спиннером. Ждешь, пока загрузится пара мегабайт яваскрипта, потом ждешь пока она скачает пару мегабайт джейсона с бекенда и только потом, может быть, увидишь результат.

Хотя SPA не обязаны быть медленными, на практике почему-то SPA долго грузятся. То есть, я бы хотел увидеть сразу данные, а не смотреть на заглушку.

Примеры: Сбербанк-онлайн - есть заглушка, загрузка медленная. Твиттер - есть заглушка, загрузка медленная. Ютуб - есть заглушка, загрузка медленная. В твиттере с ютубом работают разработчики мирового класса и все равно тормозит. А у обычного разработчика результат будет в 10 раз хуже.
Ответы: >>2127710
Аноним 2021/08/14 12:45:18  №2127710 66
>>2127677
Да я и спрашиваю поэтому как это работает под капотом, никто не знает.
В свое время, года назад, пытался во фронт, задание тестовое на работку я конечно сделал, но все равно не понял нафига оно нужно(это другой вопрос и тема, срачи вечные, достаточно осказано). Сам факт что я задавал на 3 разных форумах(двач в том числе) про зависимости, пакетирование, ведь это гумно просто так не работает.
В итоге люди сами ничего не знают, просто говорят использовать установщик из коробки - он у меня в общем-то и заработал. А вебпак и лярд других завсимостей я проклинаю по сей день, но люди говорят это норма, щито поделать.

Да, я понял, спасибо, обычное апи, я с такими работаю. Просто у меня проблема с бест практис, я каждый чих выдрочился спрашивать. Типа папка, там фронт, там бек. Я просто не отразил сразу что я не буду прописывать руты вручную. Короче, посмотрю.

>>2127691
Лярд зависимостей. Не нравится мне все это.
Ответы: >>2127720 >>2127778
Аноним 2021/08/14 12:50:41  №2127720 67
>>2127710
>Да я и спрашиваю поэтому как это работает под капотом, никто не знает.
За всех то не говори

>Просто у меня проблема с бест практис, я каждый чих выдрочился спрашивать. Типа папка, там фронт, там бек
Так ты должен сам на эти вопросы себе отвечать.
Как работает моё приложение?
Как связаны бекенд с фронтендом?
Как запрос идет через бек?
и т.д.

>Лярд зависимостей. Не нравится мне все это.
У тебя и на беке будет лярд зависимостей. Загляни в composer.json (ларавеля к примеру) на досуге. У него свои зависимости, у тех зависимостей - свои т.д.

Без зависимостей мы не получим достаточно большую скорость выкатки фич на прод
Ответы: >>2127733
Аноним 2021/08/14 12:54:52  №2127727 68
>>2126973

Программа это последовательность команд, которые идут друг за другом и выполняются строго по очереди. Когда ты запускаешь PHP-скрипт, то PHP компилирует (преобразует) его в последовательность команд и затем выполняет эти команды. То есть у тебя в программе могут быть сложные циклы, if, функции, но в итоге все это превращается в последовательность простых команд идущих друг за другом.

У каждой команды есть адрес (номер). И есть счетчик команд, он хранит номер текущей выполняющейся команды. Счетчик увеличивается после выполнения каждой команды.

Команды выполняются строго по очереди. Допустим, программа выглядит так:

1) отправить запрос на http://example.com/page.html
2) сохранить ответ в переменную $x
3) вывести $x на экран

В этом случае сначала выполняется команда 1. Она отправляет запрос и ждет ответа. Пока она ждет, ничего не происходит и никакие другие команды не выполняются. Когда ответ приходит, начинает выполняться команда 2.

Как это работает на более низком уровне. Программа сама не может пересылать данные по сети. Этим занимается только операционная система (ОС). Программа, используя "системные вызовы", просит операционную систему сделать ту или иную сетевую операцию. При этом, пока операция выполняется, программа "стоит на месте" и ничего не делает.

Вот, например, как выглядит отправка запроса к http://example.com на более низком уровне:

1) сформировать HTTP-запрос, собрав вместе все нужные заголовки
2) попросить ОС установить соединение с сервером example.com
3) попросить ОС передать HTTP-запрос на сервер example.com
4) попросить ОС принять данные от сервера
5) разобрать пришедший ответ и извлечь из него нужные данные (заголовки, тело ответа и тд)

Операции 2, 3 и 4 "блокирующие" - то есть, пока они выполняются, программа ничего не делает. Как только операция выполнится, программа продолжает работу.

Как это работает на еще более низком уровне: у каждой команды в программе есть адрес (номер), и есть "счетчик команд", он хранит номер текущей выполняемой команды. Когда завершается выполнение операции и управление возвращается программе, она продолжает выполнение с того номера, который записан в счетчике команд.

> Как он знает с какого места продолжить исполнение?

Номер команды, на которой остановилось выполнение, записан в счетчике команд.
Аноним 2021/08/14 12:57:40  №2127733 69
>>2127720
>за всех
Ну я говорю за всех кто мне встречался, очевидно.

>сам отвечать
Я бы рад)))) Но как только я делаю самодеятельность какую-ту, мне начинают вонять что ну тип у нас не совсем так, не сяк. Мне уже похуй что-то там думать, я просто напрямую спрашиваю - как это у вас делается.
Еще я понял что если ты сделаешь как тебе виднеется лучше или как люди говорят в интернете - то потом придется переделывать, а я понял что это лютый треш и лучше до такого не доводить.

>беке
Так на беке зависимости остаются на беке, юзеру только определенная инфа приходит. А фронт приложухи полноценные кидает для разверстки.
Ответы: >>2127784
Аноним 2021/08/14 13:19:28  №2127764 70
>>2126980

Я хочу сконцентрировать внимание на том, что неймспейс это не путь к файлу. А лишь часть полного имени класса. Неправильно думать, что use это аналог require из древних скриптов.

>>2126995

Это организация классов, когда их много. До неймспейсов люди давали классам длинные имена и получалось что-то вроде

Zend_Db_Table_Row

Почему имена классов длинные?

- в начале указывается имя фреймворка или библиотеки, чтобы в разных библиотеках не было классов с одинаковым именем. Иначе ты не сможешь в одной программе подключить две библиотеки.
- в середине указываются имена, которые позволяют группировать классы в модули (фреймворк Zend, модуль Db, подмодуль Table, класс Row)

То есть, длинные имена неизбежны. Неймспейсы позволяют упростить код. До неймспейсов ты писал:

$x = new Zend_Db_Table_Row();

С неймспейсами ты пишешь:

use Zend\Db\Table\Row;
$x = new Row();

И, чтобы было проще, путь к файлу выбирают, чтобы он совпадал с полным именем класса.

Ответы: >>2128109
Аноним 2021/08/14 13:24:58  №2127769 71
>>2127586

Тебе правильно написали - надо сначала изучить, как работает laravel.mix и вебпак. И тогда не придется с ним бороться.

Также, тебе надо изучить, как работает импорт модулей в JS.

Ну например, если ты пишешь import ... from 'react-dom', то это значит, что у тебя рядом с main.js должен лежать react-dom.js. Потому что react-dom это имя файла. А у тебя его нет, потому и не работает.

Потому обычно код с импортами обрабатывают вебпаком, который удаляет импорты и вставляет вместо них содержимое запрошенного файла.

Ты не хочешь изучать технологии, а хочешь тыкаться наугад. Вот и результат, что ничего не работает.
Ответы: >>2127788
Аноним 2021/08/14 13:34:41  №2127778 72
>>2127612

Вообще, идея с "фетчить данные" плохая. Если ты взялся за SPA, то логично сразу в страницу заложить все нужные ему данные, чтобы он не делал кучу аякс-запросов при запуске.

>>2126998

> Программисту об этом не надо думать

Ты пишешь ерунду. Если программист не разбирается в неймспейсах, он не сможет их правильно использовать и на выходе может быть будет и синтаксически корректный, но нечитаемый код. IDE может исправить синтаксис за тебя, но она не может сделать твой код правильным.

Программист должен понимать каждый символ в коде, который он пишет.

>>2127710

> В итоге люди сами ничего не знают
Либо ты плохо сформулировал вопрос, либо ты его спрашивал в треде, где сидят одни неучи, которые считают, что "программисту не надо думать".

Даже если никто не может ответить на твой вопрос, что тебе мешает прочесть целиком документацию по вебпаку? Если ответа в документации нет, можно прочесть целиком исходный код вебпака и найти ответ там. Было бы желание.


Ответы: >>2127803
Аноним 2021/08/14 13:48:33  №2127784 73
>>2127733
Ценность разраба в том, что он делал 1 вариант, понял его плюсы/минусы, делал 2 вариант, там свои плюсы минусы. Из этого складывается умение разраба для задачи Х подобрать оптимальное решение Y учитывая все трейдоффы.
Не бойся делать и ошибаться, так ты получишь опыт и вырастешь как спец.
Только не надо участвовать в холиварах и поисках единственно верного решения - таких просто не существует. Пусть холиварщики холиварят, а нам надо фичи выкатывать.

>А фронт приложухи полноценные кидает для разверстки.
Оно приходит юзеру в виде единого сжатого жс файлика, который кладется в кеш.
Аноним 2021/08/14 13:53:14  №2127788 74
>>2127769
Так я и пытаюсь. Прыгаю по докам микса вверх-вниз ничего кстати по теме, все что написано там работает, а по факту реакта ета . И по вопросам.

>содержимое
Так я про это и говорю, микс не видит. И если говорить о том как оно все работает, то скрипт приложения идет до моего скрипта.

>Хочешься тыкаться
Я не хочу. Я прочитал, не сработало, я сделал предположения на основе того как это может работать изнутри, тоже не работает. Че я еще могу сделать-то.
Мне вот сказали просто забить и делать проще\практичнее. Ну ты мне сейчас сказал что знаешь что импорты относятся к файлам.
В общем, пока что ни на йоту не приблизился к еще большему понимаю чем уже есть. Даже сейчас опять попробовал пару фишек и понял что я уже это все делал. Когда не работают самые логичные варианты ты переходишь к менее логичным. Боль.
Ответы: >>2127794 >>2132032
Аноним 2021/08/14 13:59:48  №2127794 75
>>2127788
>Че я еще могу сделать-то.
1. Залезть под капот той технологии, в которой не разбираешься
2. Задать вопрос на стаковерфлоу
Ответы: >>2127807
Аноним 2021/08/14 14:10:42  №2127803 76
>>2127778
>фетчить данные плохо
Блин, а я так надеялся что это топовый вариант. Говоришь, костылик?

>что тебе мешает
У человека опыта нет, без практики информация просто не усвоится.
Это как вкатыш пошел учить реакт по гуидам, ему надо сделать просто хелловорд. Просто хелловорд чтобы начать разбираться в штуке, а потом уже как дорога заведет. А вместо чтобы просто потыкать-попробовать нужно ли ему это, его отправляю в пешее эротическое читать непонятно что, бабели какие-то, жсксы. В итоге пришел делать одно, делаешь абсолютно другое - диссонанс.
Немудрено что многие не осиливают.
Да и в принципе это логично. ты делаешь небольшой функционал, он работает, ты доволен что он работает, у тебя есть то, о чего можно отталкиваться, ты начинаешь углубляться, понимая как это работает. А без позитивного опыта ты обречен делать ложные выводы или не делать их вообще, не зная за что зацепиться.

Аноним 2021/08/14 14:15:18  №2127807 77
>>2127794
Я наверное совсем пропащий и обдвачевался, но мне казалось на дваче лучше получить ответ, и быстрее и качественней получится, все таки обитель 3000ккк наносек.
Типа если на стаке не гуглится в первых двух запросах вопросик, то как бы все совсем плохо и нет смысла даже пытаться самому задавать.
Аноним 2021/08/14 14:46:36  №2127835 78
>>2127633
>>2127652
Короче, накатил вагрант - там спокойно прокинулась общая папка, хз как это работает.
Аноним 2021/08/14 14:51:24  №2127839 79
Vagrant-это виртуалка с линуксом,но в этот линукс можно залазить из винды?
Ответы: >>2127883
Аноним 2021/08/14 15:52:51  №2127870 80
А че вагрант сам качает юбунту?
Ответы: >>2127883
Аноним 2021/08/14 16:11:26  №2127883 81
>>2127839
>>2127870
Это хуйня для легкого управления виртуалбоксом или другой вм, всё это можно сделать и вручную.
Но сейчас не особо актуально, потому что докер намного пижже.
Ответы: >>2127893
Аноним 2021/08/14 16:22:15  №2127893 82
>>2127883
а в докере я тоже могу работать с линуксом,апачем,пхп,но допустим смотреть что натворил в мозилле из винды,прост из виртуалки у меня все тупит
Ответы: >>2127910
Аноним 2021/08/14 16:40:57  №2127910 83
Аноним 2021/08/14 16:49:04  №2127927 84
Как писать в ООП стиле?
Допустим регистрация на сайте
Ответы: >>2128001 >>2132017
Аноним 2021/08/14 17:40:00  №2128001 85
>>2127927
Используй классы и функции
Ответы: >>2128011 >>2128030
Аноним 2021/08/14 17:43:36  №2128011 86
>>2128001
те в файле будет класс sign_up а в нем метод с пдо и конструктором с входящими данными?
Аноним 2021/08/14 17:56:57  №2128030 87
>>2128001
Как классы и функции помогут писать ООП код?
Что помешает обернуть процедурную лапшу в класс и назвать это ООП?
Ответы: >>2128106
Аноним 2021/08/14 19:20:19  №2128106 88
Аноним 2021/08/14 19:22:38  №2128109 89
>>2127764
>Я хочу сконцентрировать внимание на том, что неймспейс это не путь к файлу
Твое объяснение только запутает новичка. По правилам хорошего тона там пишется путь. Если новичок будет писать вместо пути набор рандомных символов/папок - это ему не поможет. Поэтому не совсем корректная фраза "там пишется путь" полезней для него, чем твоя пространная демагогия, которая в конечном счете все равно сведется к "там желательно писать путь".
Сейчас ты находишься в довольно затруднительном положении. У тебя достаточно знаний, чтобы помогать новичкам, но все свои силы ты тратишь на то, чтобы придираться к словам и указывать на чужие несущественные ошибки. Это вполне обычно для программистской среды, потому что каждый хороший программист - токсичный самовлюбленный ребенок, который пытается самоутвердиться за чужой счет. Поэтому не забывай, зачем ты здесь. Самолюбование останавливает твое развитие и не помогает другим.
Ответы: >>2131994
Аноним 2021/08/15 13:22:36  №2128636 90
Какие примерно вопросы ожидать на собесе на мидла? Смотрю видосы про собесы - там либо задачи уровня обойди массив/напиши сортировку пузырьком либо уберабстрактные сеньорские попизделки.
Ответы: >>2128642 >>2128647
Аноним 2021/08/15 13:35:10  №2128642 91
>>2128636
Пройди собеседование да посмотри.
Ответы: >>2128647
Аноним 2021/08/15 13:47:02  №2128647 92
>>2128636
Любые. Даже стажеру могут задать сеньорскую хуиту, это нормально.
Про это будет означать что либо смотрят на твою эрудицию и реакцию, либо сама фирма ебанашки. Одно из двух.
Гадать нет смысла.

>>2128642
Двачую. Нахуй на дваче еще спрашивать. Пришел, поговорили, узнали, приняли-отложили-забили. Тебя поход на собес ничему не обязывает.
Аноним 2021/08/16 14:53:08  №2129765 93
Что обычно подразумевают в вакансиях под "опытом интеграции сторонних сервисов"? Уметь запросик газзлом послать или че?
Ответы: >>2131994
Аноним 2021/08/17 11:54:54  №2130597 94
screen.jpg (161, 616x712)
712x616
Кликал на все подряд но не запустился терминал sql, что я делаю не так?
Ответы: >>2130605 >>2131978
Аноним 2021/08/17 12:02:19  №2130605 95
Ответы: >>2130729
Аноним 2021/08/17 12:28:05  №2130638 96
Как отправить сообщение юзеру?
Укаазать его ади и имя в БД?
Аноним 2021/08/17 13:34:17  №2130729 97
Ответы: >>2130735
Аноним 2021/08/17 13:36:55  №2130735 98
>>2130729
Откуда вы лезете такие беспомощные?
mysql -u hui -p
и вводишь пароль свой.
Ответы: >>2130743 >>2130993
Аноним 2021/08/17 13:47:33  №2130743 99
1629208049353.jpg (426, 900x900)
900x900
>>2130735
Он сейчас спросит, куда это вводить.
Аноним 2021/08/17 16:58:30  №2130993 100
Ответы: >>2131690
Аноним 2021/08/17 17:32:12  №2131049 101
»2130597
»2130729
>Ampps

Перейди на localhost/phpmyadmin и не еби мозги
Аноним 2021/08/17 19:00:36  №2131115 102
Как кликом кнопки на фронте запустить процесс на сервере?
Ответы: >>2131285 >>2131989
Аноним 2021/08/18 00:10:13  №2131285 103
>>2131115
Отправить запрос, который запустит процесс.
Ответы: >>2131328
Аноним 2021/08/18 05:12:30  №2131328 104
Аноним 2021/08/18 10:50:01  №2131690 105
>>2130993
зачем ты сюда лезешь, если настолько не ориентируешься даже просто в использовании компьютера?
Аноним 2021/08/18 10:58:45  №2131705 106
image.png (379, 387x394)
394x387
Норм курс или хуйня?
Ответы: >>2131716 >>2131836 >>2139445
Аноним 2021/08/18 11:07:16  №2131716 107
>>2131705
Если делают ебучие картинки с коробочками то сразу хуйня.
Аноним 2021/08/18 12:39:54  №2131836 108
>>2131705
Смотря для чего.
Если учиться писать веб приложения, то хуйня
Ответы: >>2131870
Аноним 2021/08/18 12:53:40  №2131870 109
>>2131836
Как будто пыха нужна еще для чего-то лол
Ответы: >>2131876
Аноним 2021/08/18 12:57:34  №2131876 110
>>2131870
Может ему нужно, чтобы дядя-инфцыган пересказал содержимое php.net
Ответы: >>2132041
Аноним 2021/08/18 14:29:38  №2131978 111
>>2130597

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

Консоль это такое черное окно куда ты вводишь команды и компьютер их выполняет. Чтобы узнать, как ей пользоваться, прочти короткий урок https://github.com/codedokode/pasta/blob/master/soft/cli.md

Сначала тебе надо открыть консоль. Это удобнее всего сделать, если открыть папку на твоем скриншоте и ввести в адресную строку cmd и нажать Enter. Тогда консоль откроется с уже выбранной папкой. Если запускать ее другим способом, то тогда придется вручную перейти в папку с mysql.

Появится черное окно с мелкими буквами. Настрой более удобный размер шрифта. Затем набери mysql и должен либо запустится клиент mysql, либо вывестись сообщение об ошибке. Если все ок, то ты можешь набирать запрос к базе данных и тебе будет выведен его результат.
Ответы: >>2131996 >>2132388
Аноним 2021/08/18 14:37:11  №2131989 112
>>2131115

Тебе надо добавить на страницу яваскрипт-код. Этот код должен ждать события нажатия кнопки, и при нажатии кнопки отправлять аякс-запрос, например на URL /start-process.php

При отправке аякс-запроса не забудь сделать индикатор прогресса (крутящийся диск или что-нибудь такое). Не забудь, что запрос может завершиться ошибкой, в этом случае надо ее вывести на экран и дать возможность пользователю отправить запрос повторно.

Если ты ориентируешься только на самые современные браузеры, то для отправки запроса можно использовать функцию fetch(). Если хочешь поддерживать любой браузер за последние лет 15, то используй объект XMLHttpRequest.

Тогда при нажатии кнопки отправится запрос на сервер и сервер запустит скрипт start-process.php. А этот скрипт уже может делать что угодно.
Ответы: >>2132388
Аноним 2021/08/18 14:39:16  №2131994 113
>>2129765

Думаю, требуется именно опыт интеграции какого-то сервиса. Например: сервис приема платежей, сервис геокодирования, служба доставки итд.

>>2128109

Я думаю, что это не придирка к словам. Если неймспейс не является путем к файлу, то надо так и писать, а не пытаться "упрощать", скрывая важные детали. Люди не такие глупые и прекрасно все поймут, если им объяснять и если они хотят понять.
Аноним 2021/08/18 14:39:19  №2131996 114
>>2131978
> ввести в адресную строку cmd и нажать Enter
Хуя лойфхок. Я всегда делол через шифт+правая кнопка.
Аноним 2021/08/18 14:58:59  №2132017 115
>>2127927

В программировании часто встречается такое, что есть какие-то "сущности", у которых есть свойства и с которыми можно делать какие-то действия. Например, в магазине есть сущность "товар", у нее свойства: цена, вес, скидка, наличие. И есть действия: поменять цену, добавить скидку, снять с продажи, выставить в продажу, посчитать прибыльность.

Для удобной работы с такими сущностями и придуманы объекты. Ты сначала создаешь класс, описывая, какие есть у сущности свойства (поля) и действия (методы). А потом создаешь объекты этого класса.

Например, если ты хочешь добавить в магазине новый товар, ты создаешь объект класса Товар. Затем вызываешь у него методы задатьНазвание, задатьЦену, и заполняешь все его свойства. Затем ты обращаешься к объекту СохранятельТоваров и с его помощью сохраняешь товар в базу данных.

А когда тебе надо вывести информацию о товаре, ты с помощью СохранятеляТоваров загружаешь объект товара из БД, и вызывая его методы вроде узнатьЦену, узнатьНазвание выводишь информацию о нем на странице.

Но классы годятся не только для представления сущностей. Можно создавать объекты, у которых нет каких-то особых свойства, а есть только действия. Например: РегистраторПользователей. У него нет свойств, а есть только метод "создать нового пользователя".

Думаю, ты уже видишь, как ООП можно использовать для регистрации пользователей. Мы можем создать такие классы:

- Пользователь (User) со свойствами: email, хеш пароля, дата регистрации, имя итд. И методами: задать Email, узнать Email, задать пароль, проверить пароль итд.
- СохранятельПользователей (UserTableGateway) - это класс, который умеет сохранять объекты пользователя в БД или извлекать из нее. У него будут методы вроде вставитьПользователяВБазу, обновитьПользователяВБазе, найтиПользователяПоEmail.
- ВалидаторПользователя (UserValidator) - это класс, который получает данные из формы регистрации пользователя и проверяет их на правильность: что все поля заполнены, что email похож на настоящий email итд.

Заметь, что мы не пихаем все в один класс, а для каждой задачи используем отдельный класс. У каждого класса своя зона ответственности.

В принципе, это достаточный минимум, но можно при желании добавить еще другие классы. Например, класс ДанныеФормыРегистрации, объект которого хранит данные, которые введены в форму. В некоторых фреймворках Форма и ПолеФормы тоже сделаны в виде объектов (то есть, форма регистрации это объект и каждое поле в ней тоже объект).

Если ты плохо знаешь ООП, я советую тебе начать с учебника из шапки, в нем есть глава про ООП, а в ней задача про ООО Вектор. Ее надо решить, чтобы освоиться с ООП.

Далее я тебе советую посмотреть задачу про студентов из шапки. К ней есть подробные комментарии, и она научит тебя, как использовать ООП для работы с формами регистрации, базой данных: https://github.com/codedokode/pasta/blob/master/student-list.md

Если тебе лень делать задачу, и ты все схватываешь на лету, то может быть тебе достаточно будет прочесть комментарии к задаче. И пользуясь ими, ты можешь попробовать сделать ООП-регистрацию самостоятельно. Можешь выложить код на гитхаб, я как-нибудь гляну и дам замечания.

Ответы: >>2132168 >>2132168 >>2132388
Аноним 2021/08/18 15:10:34  №2132032 116
>>2127788

При использовании вебпака ты пишешь свой код, затем вебпак склеивает твой код с файлами, который ты импортируешь и получившуюся сборку ты уже подключаешь на странице.

А ты пытаешься без вебпака напрямую подключить реакт. Он на такое, по видимому, не рассчитан.

Тебе надо разобраться и с вебпаком, и с миксом. И писать код так, как они требуют, и располагать его там, где требуется.
Ответы: >>2132203
Аноним 2021/08/18 15:12:22  №2132034 117
>>2125888

Решение верное. Там в одном из банков как раз должно получаться 61268.
Аноним 2021/08/18 15:18:55  №2132041 118
>>2131876
Да я его спиздить хотел с торрента, не считай меня совсем за дауна.
Ответы: >>2132756
Аноним 2021/08/18 15:55:09  №2132079 119
> Schema::create('flights', function (Blueprint $table) {
что такое блюпринт?
Ответы: >>2132123
Аноним 2021/08/18 16:53:38  №2132123 120
Аноним 2021/08/18 17:08:18  №2132134 121
700[1].jpg (121, 700x700)
700x700
Есть какая-нибудь книга с паттернами проектирования на пыхе?
Ответы: >>2132137
Аноним 2021/08/18 17:16:38  №2132137 122
Аноним 2021/08/18 17:48:20  №2132160 123
Как адекватно работать с MySQL через JS? Я имею в виду, как получать данные из базы в JS и обратно (без Node.js)? Совсем запутался нахуй, помогите устаканить в голове.

Есть данные в БД, как до них достучаться и, скажем, засунуть их в квиз? Квиз написан на JS, и я хочу при вводе данных в поля в WordPress передавать вопросы в вопросник JS. Я сделал так - непосредственно на странице сайта, которую я натягиваю на WP, объявил переменную в JS и засунул в нее переменную php, которая содержит массив данных полей. Получилась строка. Строку я превратил в массив и далее вычленил элементы уже в вопросник. Но сука, я чувствую, что так не должно быть. То, как я это сделал, это блять неправильно и вообще неадекватно.

Думаю что есть вариант через fetch, но как через него достучаться до БД?

Подскажите плз нормальный человеческий способ, как в реальной практике происходит взаимодействие JS с базой данных (скажем, на WP).

Ответы: >>2132239 >>2133308
Аноним 2021/08/18 18:04:52  №2132168 124
>>2132017
>>2132017
>Пользователь (User) со свойствами: email, хеш пароля, дата регистрации, имя итд. И методами: задать Email, узнать Email, задать пароль, проверить пароль итд.
- СохранятельПользователей (UserTableGateway) - это класс, который умеет сохранять объекты пользователя в БД или извлекать из нее. У него будут методы вроде вставитьПользователяВБазу, обновитьПользователяВБазе, найтиПользователяПоEmail.
Я так понимаю класс Save это отдельный файл и тут нужны будут намспейсы и use ?
Ответы: >>2132243
Аноним 2021/08/18 18:31:44  №2132203 125
>>2132032
>без вебпака подключть реакт
Почему без вебпака? У меня микс должен работать вместо вебпака, микс автоматически использует вебпак, он создан для упрощения работы с вебпаком, подразумевается там ручками ничего не надо настраивать - надо делать все через микс.
Аноним 2021/08/18 19:14:07  №2132239 126
>>2132160

Давай разобьем вопрос на несколько частей:

1) как передать в JS начальные данные при загрузке страницы. Тут правильным способом будет получить эти данные в PHP при загрузке страницы, преобразовать их в JSON и явно передать в нужную функцию:

<script>
initQuiz(<?= json_encode($data); ?>);
</script>

Плюс такого подхода в том, что нам не надо делать лишние аякс-запросы и мучать пользователя ожиданием - данные уже встроены в страницу и мгновенно могут быть использованы скриптом. Также этот подход очень явный - если ты наткнулся на этот код, ты можешь в IDE в один клик перейти к функции initQuiz() и увидеть, что дальше делается с данными.

Минус тут может быть только в том случае, если данных очень много, и они почти никогда не используются. В этой ситуации ты заставляешь пользователя грузить не нужные ему данные.

Иногда этот подход не подходит, так как у нас скрипт загружается асинхронно и функцию initQuiz мы вызвать не можем (так как скрипт еще не загрузился). В таком случае мы можем создать внутри страницы "остров" с JSON-данными. Скрипт при загрузке находит в теле страницы этот остров и берет данные из него:

<script id="quizData" type="application/json">
<?= json_encode($data); ?>
</script>

Обрати внимание на атрибут type: он говорит, что это не яваскрипт, а JSON и браузер не будет пытаться его выполнить.

Этот подход, на мой взгляд, менее явный, так как при просмотре кода неочевидно, для кого предназначен этот остров и как найти скрипт, который его использует, если у тебя тысячи скриптов. IDE тут не поможет.

2) Как в процессе работы скрипта получать или отправлять данные без перезагрузки страницы? Тут нужны аякс-запросы. Ты отправляешь запрос на сервер, а там PHP-скрипт его обрабатывает как нужно. Логично отправлять данные на сервер как данные формы, а принимать с сервера ответ в формате JSON.

То есть, тебе нужно иметь скрипт на сервере, который положит или достанет данные из БД. Помни про безопасность: хакер может прислать твоему скрипту что угодно. Не доверяй приходящим данным, а тщательно проверяй каждый элемент на соответствие разрешенным значениям.

WordPress тут вообще не при чем. Я не думаю, что в нем есть что-то для таких сценариев работы. Это просто движок для блогов, а не универсальный фреймворк.

Ответы: >>2132388 >>2132968
Аноним 2021/08/18 19:17:46  №2132243 127
>>2132168

Почитай рекомендации оформления кода PSR-1 и PSR-12 (PSR-1 есть на русском языке). В них записано, что каждый класс помещается в отдельный файл, и кроме класса в этом файле не должно быть ничего постороннего. Имя файла должно соответствовать имени класса с точностью до регистра букв.

Почитай рекомендации и следуй им.

Что касается неймспейсов - выбор за тобой. Если у тебя весь проект состоит из 5 файлов, ты можешь просто сложить их в одну папку и не использовать неймспейсы. Если проект больше, то стоит добавлять подпапки и неймспейсы.
Ответы: >>2132388
Аноним 2021/08/19 00:17:45  №2132388 128
>>2131978
>>2131989
>>2132017
>>2132239
>>2132243

Анончик, я хоть и мимо проходил, но хочу сказать тебе спасибо за такие развёрнутые ответы, они очень контрастируют с ответами-смехуёчками других ананасов. Множество тебе чаёв!
Аноним 2021/08/19 01:45:25  №2132409 129
Ответы: >>2132961 >>2132967 >>2133566
Аноним 2021/08/19 09:10:28  №2132756 130
>>2132041
Ну попробуй, скачай, посмотри пару лекций. Скажешь потом, насколько информативно.
Аноним 2021/08/19 12:40:15  №2132961 131
>>2132409
Да, но посмотрев на го я понял что пхп возможно и не такое говно
Ответы: >>2133042
Аноним 2021/08/19 12:42:50  №2132967 132
>>2132409

Да, но попробовав Перл, понял что пхп ниче так.
Ответы: >>2132974
Аноним 2021/08/19 12:43:31  №2132968 133
>>2132239

Спасибо. Да, фетчи когда я изучал, то создавал php файл, который как бы выступает мостом между JS и базой данных.

По поводу варианта получать данные сначала в PHP и потом их преобразовывать я тоже понял, но не понял только вот чего: что значит "php скрипт на стороне сервера"? Вот у меня есть на локалхосте условный php-файл. А на реальном сервере при переносе он точно так же и хранится? То есть мне нужен тупо php-файл обработчик?
Ответы: >>2133643
Аноним 2021/08/19 12:47:08  №2132974 134
>>2132967
Изначально пхп это перл для даунов, но потом его покусала жаба и понеслось.
Аноним 2021/08/19 13:38:23  №2133042 135
Аноним 2021/08/19 17:12:18  №2133308 136
>>2132160
А чем нода тебе не угодила?
Ставь пакет и вуаля
Аноним 2021/08/19 20:51:24  №2133566 137
Ответы: >>2134447
Аноним 2021/08/19 23:26:32  №2133643 138
>>2132968

Тебе в любом случае нужен код на стороне сервера. Ты не можешь из JS кода из браузера напрямую залезть в базу данных MySQL - и это хорошо, так как иначе любой желающий мог бы в нее залезть.

Сервер - это то, откуда браузер скачивает страницу сайта. Если ты поднял вордпресс на локалхосте, то сервер это твой компьютер.

"Код на стороне сервера" значит php-скрипт или, например, приложение на Node.JS.

Я написал, что в MySQL нельзя залезть JS-скриптом из браузера. Но есть базы данных, в которые залезть можно из браузера без использования PHP-кода. Это severless базы данных вроде FireBase. Но она может быть платной, и документация к ней на английском и разобраться в ней может быть непросто.
Ответы: >>2133917 >>2133997 >>2134314
Аноним 2021/08/20 09:57:06  №2133917 139
>>2133643
Как обеспечивается безопасность при работе с субд из браузера пользователя? Что мешает считать всю базу, или стереть её?
Ответы: >>2133998 >>2134831
Аноним 2021/08/20 10:47:18  №2133997 140
>>2133643

Немного другой вопрос был. Код на стороне сервера - в смысле, это просто php_файл? То есть вот на сервере у меня файлы сайта, и среди них есть файл обработчик.php, который занимается обработкой запросов из JS. Правильно понял?
Ответы: >>2134103 >>2134831
Аноним 2021/08/20 10:47:24  №2133998 141
>>2133917
Работа с данными осуществляется не на уровне браузера, а через серверный слой приложения (в нашем случае это РНР), в котором реализована логика всех запросов, доступных пользователю.
Ответы: >>2134314
Аноним 2021/08/20 12:00:22  №2134103 142
>>2133997
>Код на стороне сервера - в смысле, это просто php_файл?
В простейшем случае это может быть 1 пхп файл + сервер, который обрабатывает поступающие запросы и перенаправляет к пхп файлу
Аноним 2021/08/20 12:41:54  №2134146 143
Как вам 8.1 версия?
Итс революшн,Джонни!?
Ответы: >>2152742
Аноним 2021/08/20 14:56:41  №2134314 144
>>2133998
>>2133643
> Но есть базы данных, в которые залезть можно из браузера без использования PHP-кода.
Аноним 2021/08/20 16:56:32  №2134447 145
>>2133566
Повторяю, что не говно?!
Ответы: >>2148165
Почему Почему 2021/08/20 17:39:56  №2134484 146
Почему (int)(float)PHP_INT_MAX; минусуется в --9223372036854775808 ?
Ответы: >>2134546 >>2134831
Аноним 2021/08/20 18:25:22  №2134546 147
Аноним 2021/08/20 23:33:53  №2134831 148
>>2133997

Да, это файл-обработчик.

>>2133917

Там можно настроить права доступа к каждой таблице. Например: юзер может только добавлять или просматривать комменты и не может удалять их.

>>2134484

Это сочетание особенности float с особенностью представления отрицательных чисел в int.

float - это приблизительный тип. В 64-битном PHP float сохраняет только 15-16 значащих цифр числа и порядок. То есть, он хранит число в виде M * 2 N (где M и N целые). Ты можешь убедиться, попробовав сделать var_dump(1000000000000000000000123.0) - "123" на конце потеряется, так как PHP сохраняет только первые 15-16 цифр. И PHP выведет 1e24 - то есть, 1 * 1024. Последние цифры потерялись.

Если хочешь узнать подробнее, погугли IEEE754. Этот стандарт описывает, как числа с плавающей запятой преобразуются в двоичный вид.

Когда ты преобразуешь PHP_INT_MAX в float, точности не хватает, чтобы сохранить все цифры числа и последние цифры округляются в большую сторону. Попробуй сдампить var_dump(PHP_INT_MAX) и var_dump((float)PHP_INT_MAX); и сравнить числа. Ты увидишь различие из-за округления.

Округление происходит в большую сторону и число становится больше PHP_INT_MAX.

Когда ты пытаешься преобразовать это число обратно в int, возникает проблема: число больше, чем максимальное положительное значение int и преобразовать в int его невозможно. Правильно, конечно, было бы выдавать ошибку в таком случае, но PHP все равно его преобразует, при этом получается отрицательное число.

Ты можешь сдампить var_dump((int)1e19); и увидеть отрицательное число.

Но почему при переполнении int получается отрицательное число? Это особенность хранения int в компьютере. Рассмотрим ячейку памяти размером в 1 байт. В ней можно сохранить число от 0 до 255. Если мы хотим хранить в ней еще и отрицательные числа, то мы должны придумать какой-то способ, как их закодировать. Можно, например, договориться так: числа от 0 до 127 обозначают сами себя, а числа от 128 до 255 обозначают -128 ... -1 соответственно. Это называется "дополнительный код" (дополнение до 2).

Почему придумали именно такую систему? Потому что с ней компьютеру просто и удобно складывать и вычитать положительные и отрицательные числа. Человеку такое представление не очень удобно, но он потерпит.

Теперь если мы в такую ячейку попытаемся записать слишком большое число, например число 129, то при чтении оно будет воспринято как -127, так как мы ранее договорились, что числа > 128 обозначают отрицательные числа.

Вот примерно то же самое происходит при преобразовании в int. Число слишком большое и оно попадает в область, которая представляет отрицательные значения.

Почитать подробнее про дополнительный код: https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4


Аноним 2021/08/21 09:22:27  №2135003 149
Swoole стабильная либа?
Ответы: >>2135009
Аноним 2021/08/21 09:25:15  №2135009 150
Ответы: >>2135011
Аноним 2021/08/21 09:28:16  №2135011 151
Ответы: >>2135014
Аноним 2021/08/21 09:30:12  №2135014 152
>>2135011
За ноду миску лиса не дают и кошачий жена нет.
Ответы: >>2135016 >>2135019
Аноним 2021/08/21 09:31:45  №2135016 153
Аноним 2021/08/21 09:35:55  №2135019 154
>>2135014
А если серьезно то бери и совмещай голанг с пхп если потребность есть. А не рассматривай всякие ультрамаргинальные говны типа свуле или реакт пхп. Нода для фулстеков обслуживающих экономных кабанчиков с малыми или средними проектами.
Аноним 2021/08/21 11:51:36  №2135174 155
image.png (22, 1057x123)
123x1057
image.png (27, 1058x169)
169x1058
Умоляю, расшифруйте что это значит. То что нужно опускать закрывающие теги если в файле только пхп это понятно. Но о каких http-загаловках после подключения к ответу сервера идет речь? Что за буферизацию и "конце частей ответа, сгенерированного подключаемыми файлами. "
Ответы: >>2135177 >>2135792
Аноним 2021/08/21 11:55:20  №2135177 156
>>2135174
Если у тебя начался вывод, то уже нельзя делать header, потому что пошло тело ответа.
Про буферизацию хуй знает.
Аноним 2021/08/21 19:10:20  №2135679 157
image.png (1641, 1024x1313)
1313x1024
Норм книга для вката в пыху?
Ответы: >>2135794
Аноним 2021/08/21 21:35:45  №2135792 158
>>2135174

Если ты не знаешь, что такое HTTP-заголовки, то тебе надо подучить протокол HTTP и лучше понимать, как браузер взаимодействует с сервером, на котором запускается PHP скрипт. Прочти, например, этот урок: https://github.com/codedokode/pasta/blob/master/network/http.md

Когда ты генерируешь страницу и отдаешь ее в браузер, ты можешь перед ней добавить HTTP-заголовки. Заголовки нужны, чтобы сообщить браузеру о типе ответа или например чтобы ставить куки, или чтобы отдать содержимое не как страницу, а как файл для скачивания.

Когда твой PHP-скрипт генерирует ответ, то он сначала должен выдать HTTP-заголовки, если они нужны, а только потом выводить HTML-код страницы. Если ты вывел хоть один символ, то заголовки выдавать уже поздно.

Допустим, ты инклюдишь файл с таким содержанием:

<?php код ?> тут несколько пробелов

Все, что находится за пределами тегов, PHP выводит как есть.

При подключении такого файла PHP выведет эти несколько пробелов. И значит ты не можешь уже отдавать заголовки.

Если ты не пользуешься заголовками, то тебе это не очень важно, но лучше сразу приучиться не ставить закрывающий тег.

----

Буферизация - это режим в PHP, когда выводимые через echo или другим способом данные не отправляются в браузер, а перехватываются и сохраняются в переменную. И ты с ними можешь делать что угодно. Например, ты можешь таким образом вырезать из HTML-кода лишние пробелы, чтобы уменьшить размер страницы.


В примечании написано, что если ты используешь буферизацию то эти лишние пробелы попадут в захваченный контент и могут как-то помешать тебе.
Аноним 2021/08/21 21:38:20  №2135794 159
>>2135679

Такие книги пышут устаревшим процедурным кодом без ООП, полным уязвимостей. Там тебя не научат ни ООП, ни современным фреймворкам.

Если ты хочешь, то учи по книге, но потом возьми нашу задачу про студентов из ОП-поста и по ней научись современным подходам.
Ответы: >>2135799 >>2136775
Аноним 2021/08/21 21:58:05  №2135799 160
>>2135794
понял, спасибо за совет
Аноним 2021/08/22 15:12:38  №2136705 161
6.jpg (15, 760x70)
70x760
Ответы: >>2136744
Аноним 2021/08/22 15:39:38  №2136744 162
>>2136705
Ты откуда такой вылез?
Ответы: >>2136748
Аноним 2021/08/22 15:45:46  №2136748 163
Ответы: >>2136753 >>2136754 >>2137092
Аноним 2021/08/22 15:54:41  №2136753 164
>>2136748
Это какая-то дохуя передовая фича, на этом сайте видимо напиздели, что там 8.
Но я бы лучше не делал ничего по этому видосу, там всё очень плохо.
Аноним 2021/08/22 15:55:18  №2136754 165
>>2136748
Именованные аргументы только с 8 версии
Аноним 2021/08/22 16:17:53  №2136775 166
>>2135794
А откуда он научится современным подходам?
Ответы: >>2136853
Аноним 2021/08/22 17:23:52  №2136853 167
Ответы: >>2136855
Аноним 2021/08/22 17:25:28  №2136855 168
>>2136853
Ив каком месте в мануале 2010 года современные подходы?
Ответы: >>2137002 >>2137093
Аноним 2021/08/22 19:51:06  №2136996 169
как учить пыху? дохуя книг и видосов. щас уже 8 версия есть, а книги только 7, если русские брать.
англ пока что подтягиваю, не пойму многого из ен книги.
можете что-нибудь из ру сегмента покидать, уважьте, пожалуйста
Ответы: >>2137003
Аноним 2021/08/22 19:59:25  №2137002 170
>>2136855
хрен его знает, ООП оъесняют, паттерны показывают, что да как. ДУмаю тут более менее современные данные
Аноним 2021/08/22 20:01:23  №2137003 171
>>2136996
шапка есть, а там паста. Можешь еще и http://phpbook.ga/ сюда зайти
Там и книги рекомендуют
Ответы: >>2137009
Аноним 2021/08/22 20:05:34  №2137009 172
>>2137003
да, по шапке уже взял инфу. больше хочется, наверно, сделать упор на какой-то пет-проект на голой пыхе и мускл.
Через полгодика в ларавельку сунуться и там уже развиваться.
Не подскажешь ещё, в 25 лет не поздно это делать? Сейчас как вообще смотрят на возраст у вкатунов на пыхе?
Ответы: >>2137013 >>2137060 >>2137062
Аноним 2021/08/22 20:08:37  №2137013 173
>>2137009
Поздно. Делай подтяжку лица, фейковый паспорт, может тогда повезет прорваться.
Аноним 2021/08/22 21:37:00  №2137060 174
>>2137009
должно быть пофиг на этой
Аноним 2021/08/22 21:41:03  №2137062 175
>>2137009
Максимум на голом пхп с мускулом можешь сделать примитивную гостевую книгу чтобы тупо посмотреть как Коннект к бд сделать и примитивные инсерты / селекты / делиты запилить + немного хтмл и формочки ну ещё можешь ажакс на том же джейквери посмотреть - для начала его за глаза хватит. Это задача на пару вечеров / неделю.
Ты заебешься орм и mvc велосипедить. Запутаешься через пару недель в своем же коде и просто потеряешь время.
Пхп без фреймворков нахуй не всрался если это конечно не консольный скрипт.
Так что сразу учи ларавель.
Ответы: >>2137064
Аноним 2021/08/22 21:46:18  №2137064 176
>>2137062
Спасибо за совет. Я просто не до конца правильно выразился. Я хочу для начала голую пыху нормально знать. Циклы, условия, ооп базово. (я это итак знаю, просто надо вспомнить именно синтаксис пхп, в вузе всё-таки пилил круд-приложения на пыхе и мускл).
Просто привык делать всё от самого начала. Это как смотреть сериал. Смотрел 5 лет назад сериал 4 сезона. А сейчас уже их 10. Я не буду продолжать с пятого. Я буду с первого смотреть заново, т.к. всё забыл.
Также и тут. Базовый синтаксис знаю, но без углублений. Думаю месяц хотя бы на пхп и мускл потратить и дальше наверно в ларавельку.
Ответы: >>2137095
Аноним 2021/08/22 21:49:11  №2137066 177
N
Аноним 2021/08/22 23:29:53  №2137092 178
>>2136748

По твоей ссылке человек подставляет переменные прямо в SQL-запрос и создает SQL-инъекцию. Чтобы не совершать таких ошибок, прочти наш урок про SQL-инъекции: https://github.com/codedokode/pasta/blob/master/security/sql-injection.md

При выводе он не экранирует данные, что создает угрозу XSS. Прочти еще и этот урок: https://github.com/codedokode/pasta/blob/master/security/xss.md

SQL-код он пишет прямо в шаблоне.

Если тебя интересует создание CRUD без фреймворков, используя ООП и современные подходы, прочти комментарии к задаче про студентов: https://github.com/codedokode/pasta/blob/master/student-list.md Это тот же самый CRUD по сути.

У нас, конечно, не веселые видео, а скучный текстовый формат, но он поможет тебе вправить мозги на место после таких уроков.
Аноним 2021/08/22 23:31:26  №2137093 179
>>2136855

В нашей задаче про студентов объясняются и правила работы с формами, и ООП-модели, и паттерны вроде DI или TableDataGateway. Вполне современно, знакомит человека с паттернами, которые используются во фреймворках, или чего-то еще не хватает?
Ответы: >>2138152
Аноним 2021/08/22 23:34:16  №2137095 180
>>2137064

Ты правильно рассуждаешь. Если ты с нулевыми знаниями возьмешься за фреймворк, ты просто утонешь в его сложности. Фреймворк это абстракция на абстракции. Для изучения основ ООП я тебе советую учебник из шапки, в нем глава ООП, в ней задача Вектор. Для освоения CRUD я тебе советую задачу про студентов из шапки, к ней идут подробные комментарии. При этом ты можешь параллельно читать любые другие уроки и учебники.

После студентов можно браться за фреймворки.
Ответы: >>2137236
Аноним 2021/08/23 07:44:11  №2137236 181
>>2137095
Спасибо большое за советы.
Аноним 2021/08/23 08:47:03  №2137306 182
>>2120804 (OP)
Мне кажется, или карта знаний для джуна в шапке сильно раздута?
Аноним 2021/08/23 12:08:00  №2137570 183
Есть кто без опыта, но уже выучил верстку, JS и пыху? Есть задания для вас. Плачу немного, но зато будет для вас на чем потренироваться и подзаработать во время обучения. Тг @phpjswork
Аноним 2021/08/23 16:41:35  №2138002 184
Аноны, как в ларавеле css подрубить? href="/resources/css/app.css" нихуя не работает. Запущено через пхп артизан серв как http://127.0.0.1:8000/
Ответы: >>2138012
Аноним 2021/08/23 16:54:21  №2138012 185
>>2138002

В ларавеле публичная папка называется public и файлы за ее пределами недоступны. Так что твой CSS надо класть туда.

Ты также можешь использовать https://laravel.com/docs/8.x/mix который скомпилирует и опубликует файлы из других папок в public.
Ответы: >>2138017
Аноним 2021/08/23 16:59:03  №2138017 186
>>2138012
Понял, спасибо. Я просто увидел, когда вьюшки создавал, что в папке resources есть папка css, и с какого-то хрена решил, что оно должно там храниться лол.
Аноним 2021/08/23 19:35:26  №2138152 187
>>2137093
Как делать пост и гет с точки зрения безопасности и для продакшана
Ответы: >>2138535 >>2138587
Аноним 2021/08/24 09:24:34  №2138535 188
>>2138152
Для гета делаешь гет, для поста делаешь пост. Ochen продакшенно, very безопасно
Ответы: >>2138570
Аноним 2021/08/24 09:46:36  №2138570 189
>>2138535
И таких комментарий почти под каждым видео на тему авторизации и отправки форм
Ответы: >>2138583 >>2138586
Аноним 2021/08/24 09:54:30  №2138583 190
>>2138570

На мой взгляд, это неправильный подход. Я такое видел не только в видео на Ютубе, но и в книгах: автор ради упрощения не объясняет про безопасность, и выкладывает код с уязвимостями. И между строк где-нибудь добавляет "не забудьте проверять данные в реальном коде". Понятно, что человек просто пропустит это замечание и приучиться писать неправильный код.

Я не обхожу тему безопасности. Например, в нашей задаче про студентов даются ссылки на уроки про XSS/CSRF/SQl-инъекции. В примерах кода работы с БД я использую плейсхолдеры. В уроке про шаблонизаторы я использую экранирование.

Потому я вам советую после уроков с ютуба делать нашу задачу про студентов и внимательно прочесть все замечания к ней. Тогда вы научитесь писать нормально.
Аноним 2021/08/24 09:56:51  №2138586 191
>>2138570
Обычно так показывают веб часть core php, которым на практике никто не пользуется, а сидят на фреймворках, в которых это учтено.
Нахуя это делать и смотреть - другой вопрос.
Ответы: >>2138589
Аноним 2021/08/24 09:57:39  №2138587 192
>>2138152

У меня есть уроки по самым распространенным уязвимостям. Там объясняется, как от них можно защититься. Прочти их все:

Как хранить пароли: https://github.com/codedokode/pasta/blob/master/security/password-hashing.md
SQL-инъекция: https://github.com/codedokode/pasta/blob/master/security/sql-injection.md
Уязвимость XSRF: https://github.com/codedokode/pasta/blob/master/security/xsrf.md
Уязвимость XSS: https://github.com/codedokode/pasta/blob/master/security/xss.md

Если после прочтения будут вопросы, спрашивай.
Ответы: >>2141196
Аноним 2021/08/24 09:58:34  №2138589 193
>>2138586

Это неправильный подход. Нельзя в качестве примера давать код с уязвимостями.
Ответы: >>2138593
Аноним 2021/08/24 10:01:11  №2138593 194
>>2138589
Возможно. В прниципе, для тех же иньекций это просто решается.
А обвешивать какой-то учебный пример обработкой ошибок и прочей хуйней в десять раз больше самого примера тоже как-то уныло.
Аноним 2021/08/24 16:09:04  №2138974 195
Аноны, сейчас вот модно на крупных сайтах всякие страницы редиректы типа https://youtube.com/redirect или https://vk.com/away.php

Хочу сделать такую же типа site.ru/redirect.php и с помощью гет параметров передавать в него ссылку куда направлять человека, и у меня ВСТАЛ вопрос, а что должно быть в файле redirect.php чтобы всё по красоте, я так понимаю это заголовки типа
header('X-Robots-Tag: noindex, nofollow');
header('Location: http://2ch.hk');
И всё? Мне надо чтобы поисковики на это шишкой не встали и чтобы чего лишнего наружу не передать, по хорошему бы ещё рефер удалить, помню раньше были такие сайты типа удаляют рефер и прочую хуйню когда переходишь по ссылке через их редирект, подскажите а как правильно собрать redirect.php, чё туда необходимо
Ответы: >>2139470
Аноним 2021/08/24 17:41:40  №2139076 196
А зачем нужны CSP заголовки? Ну то есть понятно, что они не дадут злоумышленнику эксплойтить xss, если он на сайте есть. Но не логичнее же бороться с причной, а не последствием? Использовать их против кликджекинга тоже как-то сомнительно, ведь для этого есть X-Frame-Options
Ответы: >>2139716
Аноним 2021/08/24 21:08:17  №2139274 197
аноны, есть длинная ссылка которая прячется за bit точка ly, как заставить php перейти по сокращённой ссылке, получить длинную и получить из неё домен?
Ответы: >>2139279
Аноним 2021/08/24 21:19:18  №2139279 198
>>2139274
Берешь курл, делаешь гет или хед, а потом извлекаешь заголовок location.
Ответы: >>2139298
Аноним 2021/08/24 22:41:46  №2139298 199
>>2139279
курл сам по 10050 редиректов перейдёт до конечного домена?
Ответы: >>2139300
Аноним 2021/08/24 22:59:03  №2139300 200
>>2139298
Там обычно один редирект. Но можно включить followlocation, тогда пойдет сколько угодно.
Аноним 2021/08/25 07:22:11  №2139445 201
>>2131705
смотри Игоря Борисова, он есть на нонейме вроде. Там курс по 5.6 пыхе, но базу вроде не плохо подает да и шутейки есть.
Ответы: >>2141715
Аноним 2021/08/25 07:40:41  №2139470 202
>>2138974
Бамп

Суть: хочу чтобы ссылки на внешние сайты были вида site.ru/redirect.php?to=2ch.hk

Что должно быть в файле redirect.php помимо кода редиректа header Location аноны?

Чтобы всё было как положено и не было подозрительно или плохо для поисковиков
Аноним 2021/08/25 11:36:12  №2139716 203
>>2139076

В идеальном мире все пишут идеальный код без единой ошибки. В реальном мире у нас сайт из сотен тысяч строк кода, написанный людьми, которые давно уволились. И CSP позволяет повысить его уровень защищенности без перечитывания этих сотен тысяч строк кода. Разве это плохо?

Правда, если на сайте есть инлайновые скрипты, нам придется разрешить unsafe-eval, что ослабляет защиту.

CSP повышает стоимость нахождения уязвимости. Условно, без CSP уязвимость можно найти за X времени, а с CSP ее найти труднее и надо 10X времени. Соответственно, поиск уязвимости становится менее привлекательным для хакера и он пойдет лучше атаковать сайт без CSP.
Аноним 2021/08/26 13:27:50  №2140882 204
Приобрел домен phpclub.tech и настроил SSL, теперь регистратором является не безымянная компания, а domains.google;
Ответы: >>2143774
Аноним 2021/08/26 17:44:26  №2141196 205
PDd7BwSdPo8.jpg (111, 630x878)
878x630
>>2138587
Хорошо, спасибочки
Аноним 2021/08/27 11:58:13  №2141715 206
>>2139445
Надеюсь хотя бы он не говорит в конце что так делать нельзя как он показал?
Аноним 2021/08/27 18:05:39  №2142092 207
PHP может быть и не самый плохой язык (Перл на порядки хуже, поверьте мне, работавшему с легаси на нем), но он явно не предназначен как ЯП общего назначения. Ибо он задизайнен для разработки веб-страниц (о чем говорит его template like синтаксис, суперглобальные переменные $_GET, $_POST, функции для изменения глобального состояния http-ответа и пр.) и по-канону работать должен как cgi-скрипты, вызываемые веб-сервером. То что его пытаются натянуть на классические приложения и сервисы - ето не более чем попытка кабанов сдешевить на разработке (в ту же топку другие веб-технологии а-ля JavaScript фреймворки для разработки GUI). Ведь гораздо дешевле обойдется пхп-шник который на Нотепад++ что-то рабочее наваяет за месяц, чем C++ Qt, Java Spring разработчики какие-нибудь за 4 месяца. И пофиг что сайты по продаже носков и GUI приложения типа CRM, сервисы по обработке платежей - совершенно разные по архитектурной сложности, нагрузке. В итоге получаем зачастую кривой кусок г..на, который в цикле делает по 100 запросов в SQL базу, из-за чего юзер ждет отклика от формы отправки заявки какой-нибудь 5 секунд при недиалапном интернете. А потом и вовсе 502-ая всплывает по нескольку раз. Щас правда часть бизнес-логики, не критичную к сесурити, переносят на фронтенд, но и там зачастую тот же не айс со 100 запросами к сервисам в секунду и пр.

А всё зачастую потому, что не очень шаристые в IT кабаны думают что веб каким-то магическим образом ускорит разработку программы в несколько раз ("ты вон какой форум за месяц можешь заебенить, давай также заебенишь CRM нам?"). Платформы разные да но архитектура системы остается одной и той же (если не разносить ее части по эмбеду, конечно).

Отсюда и дроч на всякие MVC, роутинги внутри приложения, монструозные фреймворки в мире PHP.
Аноним 2021/08/27 18:17:18  №2142100 208
>>2142092
Что хотел сказать - нихуя не ясно.
Фреймворки используют, потому что искаробочный веб сразу превращает всё в легаси, каковым он и является. Это хуйня из 90-х, подходы изменились за прошедшее время.
Аноним 2021/08/27 19:00:48  №2142165 209
>>2142092
Да да да. Пхп говно. Все в этом треде это хорошо знают.
Аноним 2021/08/27 22:48:31  №2142369 210
Аноним 2021/08/29 12:09:59  №2143774 211
>>2140882

О, отлично, что архив заработал.
Аноним 2021/08/29 12:17:14  №2143788 212
Как грамотно исп связку пхп и хтмл?
Допустим простая админ панель
Через реквер вставляем внешний код который читает БД или пилим функцию чтения и там как то прикручиваем хтмл,но опять же в хтмл как то надо вывести данные
Ответы: >>2144122
Аноним 2021/08/29 13:00:01  №2143836 213
>>2142092

Не, ну если нужно чтобы приложение было доступно со многих устройств (а пилить одно и то же под разные платформы дорого) то веб хороша как платформа. А вот приложение которое заточено только под десктоп, но работающее под вебом- это тупо попытка сэкономить на разработке, не понимая в чем именно экономия по времени у веба.
Аноним 2021/08/29 18:31:58  №2144122 214
Аноним 2021/08/30 12:21:44  №2144715 215
Здрасте, я тут ньюфаг, с вопросом. Сколько времени вам потребовалось чтобы вкатиться?
Ответы: >>2144719
Аноним 2021/08/30 12:22:53  №2144719 216
>>2144715
Вопрос отменяется, я прочитал оп-пасту
Аноним 2021/08/30 22:59:04  №2145343 217
>>2142092
>не очень шаристые в IT кабаны думают что веб каким-то магическим образом ускорит разработку программы в несколько раз ("ты вон какой форум за месяц можешь заебенить, давай также заебенишь CRM нам?"). Платформы разные да но архитектура системы

Бизнес думает проектом: его надо сделать и вписаться в ресурсы. Плохое качество может получаться из-за низкой квалификации веб-макак. В то же время, множество проектов на РНР успели выросли до глобальных, финансово успешны и устойчивы, понемногу оптимизируют код.
Ответы: >>2146174 >>2148305
Аноним 2021/08/31 20:05:34  №2146174 218
>>2145343
>В то же время, множество проектов на РНР успели выросли до глобальных, финансово успешны и устойчивы, понемногу оптимизируют код.
Привет, а можно пару примеров таких проектов (и на чем именно они написаны)?
Ответы: >>2146320
Аноним 2021/09/01 00:07:22  №2146320 219
Plxs9j3Fpg.jpg (249, 1080x1188)
1188x1080
>>2146174
Привет, не буду заморачиваться и отбирать, отвечу тем что на ум пришло (на чем именно -- ты в треде РНР):
facebook
wikipedia
vkontakte
badoo
tumblr
dostavista.global
tilda.cc

в РФ это (помимо прочего) все крупные e-commerce: Lenta, Magnit, Leroy Merlen, MTS, etc.

Да нет смысла даже перечислять, до сих пор 80% веба это PHP

Охуенный язык для быстрого старта бизнеса, чтобы потом, уже при деньгах, звдротствовать и байтоёбить.

пикрандом.
Аноним 2021/09/01 12:07:04  №2146875 220
Объясните, плиз, почему ларавель не читает регулярное выражение в роуте:

Route::get('#/[a-z]+-to-[a-z]+#', function () {
return view('welcome');
});


Вроде на сайтах по проверке регурярок все правильно, но не работает. Где я проебался?(
Аноним 2021/09/01 19:14:44  №2147401 221
>>2146320
Бро. Нет смысла отвечать на такие посты, ибо некоторые не понимают что пхп это всего лишь инструмент, у которого свои минусы и плюсы.
Ответы: >>2148235
Аноним 2021/09/01 19:53:05  №2147467 222
>>2146320
>facebook
>vkontakte
Там под капотом уже далеко не простой пхп, свои интерпритаторы, ВК даже в опенсорс его выкладывали там была штука которая компилировала пхп в код C++ и тот уже компилировали для прода осталось прихуярить монитор
>badoo
Эти затейники ещё те, мало того что хайлоад, так ещё на пхп написали нейронку, которую блюрит дикпики в личных сообщениях сколько же они хуев увидели при разработке
>Magnit, Leroy Merlen, MTS
Смотри вакансии, там пыхи давно уже нет, более того МТС давно уже отказался от магазинов на битриксе, у них раньше много чего на нём крутолось. А у магнита вроде всегда питоноджависты были.
Ответы: >>2148164 >>2149660
Аноним 2021/09/02 07:58:18  №2147744 223
Почему блядский блейд не вставляет нормально переменную в титул через @section('title', '{{$variable}}.')? Выводит <?php echo... итд.
Аноним 2021/09/02 15:22:26  №2148164 224
Аноним 2021/09/02 15:23:15  №2148165 225
Аноним 2021/09/02 17:04:36  №2148234 226
>>2146320
>на чем именно

Я имел в виду фреймворк. Не все ведь эти проекты написаны на чистом пхп.

Ответы: >>2149662
Аноним 2021/09/02 17:05:51  №2148235 227
>>2147401
Я спрашивал абсолютно без сарказма.
Аноним 2021/09/02 18:20:59  №2148305 228
>>2145343
>Плохое качество может получаться из-за низкой квалификации веб-макак.

А зачем их тогда бизнес нанимает? Правильно, чтобы сдешевить. Те же джава-разработчики выйдут дороже.
Ответы: >>2148313
Аноним 2021/09/02 18:25:23  №2148313 229
>>2148305

Главная проблема не в "веб-макаках" а в жадности кабанчиков, которые целятся не на те технологии, когда хотят запилить "сурьезный софт", для чего пхп плохо подходит изначально, ибо заточен под сайты.
Ответы: >>2149663
Аноним 2021/09/03 12:44:36  №2149039 230
Что не так с этой IDE ?
Ответы: >>2149052 >>2149054 >>2149174
Аноним 2021/09/03 12:58:46  №2149052 231
>>2149039
Это не Notepad++ и даже не VSCode, че ты хотел, эклипса?
Аноним 2021/09/03 12:59:26  №2149054 232
>>2149039
Ты её недооцениваешь, она за милую душу все 4+ гига оперативы сожрёт.
Аноним 2021/09/03 14:50:59  №2149174 233
>>2149039
Она на жабе крутиться и жрет всю оперативку, я пока 16 гигов не воткнул такая же хуйня была
Аноним 2021/09/04 06:50:50  №2149660 234
15099532413180.webm (6427, 1280x720)
720x1280
>>2147467
>Смотри вакансии
чо мне там смотреть, все эти компании сейчас сами звонят мне и коллегам и хотят PHP-разрабов

>более того МТС давно уже
https://shop.mts.ru/bitrix/admin/

Короче, цена твоей экспертизы для меня оказалась крайне невысока.
Ответы: >>2150100
Аноним 2021/09/04 06:55:18  №2149662 235
>>2148234
Все эти проекты были написаны на чистом пхп.
Ответы: >>2150372
Аноним 2021/09/04 06:56:24  №2149663 236
Аноним 2021/09/04 14:39:21  №2150083 237
Как вообще в ларавеле в роутере разбираются параметры url, те что после знака вопросика и равны чему-то "/div1/div2?param1=10&param2=20"? Гугл молчит, или оно не предусмотрено вообще ларавелем и нужно все сделать так чтобы все через слеши было в виде опциональных параметров? "/div1/div2/{param1?}/{val1?}/{param2?}/{val2?}"
Ответы: >>2150087
Аноним 2021/09/04 14:47:53  №2150087 238
>>2150083
Это query string, он кладется в объект Request, не считай квери стринг частью адреса полноценной, роутеру чисто похуй на нее. Достать из реквеста надо конкретный нужный параметр в контроллере через $request->get('param'), $request->query(тут самое правильное), Input::get и т.д
Ответы: >>2150107
Аноним 2021/09/04 15:09:23  №2150100 239
>>2149660
Там от магазина вэбморда только осталась, остальное все что у них было переписали давно, где-то на Хабре комментировали. Похожая ситуация у Эльдорадо.
Аноним 2021/09/04 15:16:57  №2150107 240
>>2150087
От души душевно в душу. И почему в гугле это не выдается, наверное потому что я искал типа "laravel route url parameters", а не query string.
Аноним 2021/09/04 15:18:24  №2150108 241
t
Аноним 2021/09/04 21:34:14  №2150372 242
>>2149662
Серьёзно, все на чистом пхп?
Или ты имеешь в виду это: фреймворки написаны на чистом пхп, а значит и проекты, написанные на фреймворке, тоже написаны на чистом пхп?
Ответы: >>2150709
Аноним 2021/09/05 10:12:36  №2150607 243
Аноны, такой вопрос. Есть таблица данных, в ней два столбца. Для примера пусть будет название растения и описание растения. Но в эту таблицу пользователи приложения ничего не будут добавлять, только извлекать. То есть админ сайта что добивит, то и будет. Будет ли зашкваром, если вместо таблицы в СУБД я сделаю просто пхп/жс объект?
Ответы: >>2150644 >>2151150
Аноним 2021/09/05 11:27:56  №2150644 244
>>2150607
Сто записей тебе в память влезут, а вот 10к - уже не влезут, че делать будешь?
Ответы: >>2154863
Аноним 2021/09/05 13:11:54  №2150709 245
>>2150372
Серьёзно, на чистом PHP.

И это удивительно только для пориджей, а в то время было так: открываешь редактор и начинаешь писать, с первой строки до последней.
Ответы: >>2150720
Аноним 2021/09/05 13:26:05  №2150720 246
>>2150709
>И это удивительно только для пориджей

Да что сразу поридж-то, уже и спросить нельзя, чего ругаешься
Ответы: >>2151106
Аноним 2021/09/05 19:52:51  №2151106 247
16174184305511.png (1462, 1280x1004)
1004x1280
>>2150720
Ну а откуда у тебя в голове предположение, что в приложении всенепременно должен быть некий фреймворк?

Фреймворки тащат с собой overhead, фактор black box, уязвимости и необходимость отслеживания зависимостей и обновлений.

В то время как приложения без них работают годами вообще без вмешательства человека. Но вот "фактор автобуса" в них зашкаливает, основная проблема в этом.
Ответы: >>2151108
Аноним 2021/09/05 20:01:36  №2151108 248
>>2151106
Во фреймворках уязвимости детектируются толпой лемингов. В самописной хуйне их вообще никто не учитывает. Это где блекбокс то? В самописной хуйне для новичка. Обновление в самописной хуйне вообще непосильная задача, а во фреймворках даже гайды есть как обновиться.
Ответы: >>2151109 >>2151110 >>2151113
Аноним 2021/09/05 20:06:23  №2151109 249
>>2151108
>толпой
Вот именно, поэтому как только в паблик выходит новая уязвимость, боты-сканеры тут же массово хакают все вордпрессы и прочие ларавелы, пиздят данные и расставляют майнеры. Первый день в интернете, что ли?

>никто не учитывает
не суди по себе

Ответы: >>2151115
Аноним 2021/09/05 20:06:35  №2151110 250
>>2151108
И во фреймворка компоненты отточены временем и вниманием многих участников, багрепортами, а в самописной системе все существует по принципу и так сойдет.
Аноним 2021/09/05 20:09:19  №2151113 251
>>2151108
А, ты чел который никогда не ошибается?
Ответы: >>2151115
Аноним 2021/09/05 20:09:57  №2151115 252
Ответы: >>2151119
Аноним 2021/09/05 20:13:11  №2151119 253
>>2151115
Нет, конечно, таких не существует. Только при чём здесь это?
Аноним 2021/09/05 20:34:06  №2151131 254
16229621218091.mp4 (485, 640x640)
640x640
Учу пхп уже 2 недели с целью вката.

Это ошибка или хороший выбор? По сравнению с жс тем же. Реальный вопрос, я не тролль.
Ответы: >>2151134 >>2151135
Аноним 2021/09/05 20:41:26  №2151134 255
>>2151131
Хуево то что для вкатуна чисто пхпэшную работу найти очень трудно. Поэтому совет: если тебя заставляют одновременно несколько обязанностей разных профессий выполнять, делай одно очень хорошо, а на другое забей и делай плохо. Так победим!
Ответы: >>2151142
Аноним 2021/09/05 20:43:25  №2151135 256
>>2151131
Смотря сколько у тебя времени и какая цель.

Для обучения не самый лучший, прощает очень много ошибок и подходит только для веба.

Для работы на веб-фрилансе -- хороший, позволяет делать вещи очень быстро, и вакансий полно.
Ответы: >>2151416
Аноним 2021/09/05 20:49:31  №2151142 257
>>2151134
Я так понимаю, помимо пхп нужно обязательно знать html, css, js (хотя бы на начальном уровне), sql?
Ответы: >>2151147
Аноним 2021/09/05 20:59:00  №2151147 258
>>2151142
Учи пхп и sql И не только запросы. А вообще грамотное представление о СУБД нужно иметь. Чтоб прямо на собесе молодцом. А на всякие вопросы знаешь ксс хтмл, говори да немного знаю, делал... И в первую очередь ищи работу где нет намека на фулстачество. Это, конечно, советы, если ты программист, а не мамкин фрилансер.
Аноним 2021/09/05 21:09:02  №2151150 259
>>2150607

Если данных немного и если тебя устраивает необходимость их вручную обновлять, то можно хранить в виде массива или массива объектов.
Аноним 2021/09/06 09:21:51  №2151416 260
>>2151135
>Смотря сколько у тебя времени и какая цель.
Проект есть в планах. Для сайтов с большим функционалом и посещением пхп подойдёт или лучше выбрать другой язык?

мимо другой тоже вкатывающийся анон
Ответы: >>2151757
Аноним 2021/09/06 14:14:39  №2151691 261
Аноним 2021/09/06 14:28:50  №2151709 262
Добрый день ребята. У меня наметился один вопрос. В общем волею судьбы меня занесло на госпредприятие, где я два года разгребал легаси на пхп и допиливал функционал. Так получилось, что в гос. шаражках не очень много платят, а пошуршав hh в своем городе я нашел какие-то оверзадротские галлеры, которые при устройстве требуют дохера и много и ПХП не в каждой из этих айтишных галер есть. Так вот сам вопрос: как поступать, чтобы не умереть с голоду и не сгнить в госпараше? Есть ли тут аноны, которые совершили переход с пхп в какие-нибудь другие стэки? Трудно ли было?
Ответы: >>2151758 >>2151822 >>2151825
Аноним 2021/09/06 15:09:25  №2151757 263
>>2151416
>>2146320
Тебе этих примеров недостаточно?

Я бы ещё добавил в список почти все таксопарки типа Ситимобил. Всё начиналось с монолита на РНР, и это хорошо.
Аноним 2021/09/06 15:10:31  №2151758 264
>>2151709
слуш, ну если ты у себя в деревне вакансии на РНР не нашёл, то земля тебе пухом, братишка
Ответы: >>2151840
Аноним 2021/09/06 16:09:54  №2151822 265
>>2151709
>Есть ли тут аноны, которые совершили переход с пхп в какие-нибудь другие стэки?
Я на рельсы съебал после ларавеля и битрикса по сути тот же MVC фреймворк, всё +/- одинаково, только в рельсах много чего автоматом делается, кроме пары моментов разобрался почти сходу. А вот сам Руби дофига чего умеет и обладает более сахарным синтаксисом, с ним сложнее, как увидел в проекте так и охуел, но потихоньку через месяц освоился. На собеседник никто не дрочил, так за жизнь попиздели, вообще в рельсах рабочих рук не хватает в отличии от пхп и питона тут нет очереди из вкатунов.
Ответы: >>2151839 >>2152348 >>2152683
Аноним 2021/09/06 16:11:47  №2151825 266
>>2151709
Если ты шаришь за PHP и SQL, то вкатывайся в веб-уязвимости и зарабатывай на Bug Bounty.
Ответы: >>2151844
Аноним 2021/09/06 16:28:11  №2151839 267
>>2151822
Рельсы заинтересовали кстати. Коллега по работе получила оффер из ДС на удаленку как раз с Руби связанном. Почитал что ей написали, по сути расписали как тестовое сделать, около недели делать если прикинуть. А ты, анон, как вышел на такую работку? ХХ?
Ответы: >>2151923
Аноним 2021/09/06 16:29:03  №2151840 268
>>2151758
В деревне вакансий много, денег мало дают за это.
Аноним 2021/09/06 16:33:33  №2151844 269
>>2151825
Какая-то хардкорная тема, плюс нестабильная в плане дохода.
Ответы: >>2151877
Аноним 2021/09/06 18:07:34  №2151872 270
Зачем усложняют пхп?
Ответы: >>2151928
Аноним 2021/09/06 18:21:29  №2151877 271
Аноним 2021/09/06 19:27:42  №2151923 272
>>2151839
В телеге вакансию нашел и постучался хрюше
Аноним 2021/09/06 19:40:51  №2151928 273
>>2151872
Его исправляют от даунского изначального состояния, оставляя совместимость с даунизмом.
Аноним 2021/09/06 19:46:30  №2151932 274
Как побороть ощущение неполноценности по сравнению со всякими c#-боярами? Ничего не могу поделать с чем-то вроде эффекта самозванца, который вызван постоянной критикой php, снисходительным отношением к нему.
Ответы: >>2151934 >>2151964
Аноним 2021/09/06 19:53:37  №2151934 275
>>2151932
Это примерно одного уровня языки, обслуживающие разные направления.
Шаурмячники снисходительно относятся к нашей шашлычной.
Ответы: >>2151953
Аноним 2021/09/06 20:23:36  №2151953 276
>>2151934

Как им это объяснить? Они ведь так не думают.
Ответы: >>2151954
Аноним 2021/09/06 20:24:58  №2151954 277
>>2151953
Расстегиваешь ширинку ...
Ответы: >>2151958
Аноним 2021/09/06 20:27:23  №2151958 278
Аноним 2021/09/06 20:39:21  №2151964 279
16257603377760.png (767, 680x769)
769x680
>>2151932
Относительно языков -- по сути, так и есть, C# гораздо быстрее и подходит для широкого круга задач. Единственный плюс РНР -- адовая скорость разработки в вебе (да и то, фреймворки рано или поздно всех уравняют).

Но, справедливости ради, вкатывальщики сосут за копейки на любых языках, и в итоге всех рассудит только рыночек и итоговые банковские счета.
Аноним 2021/09/07 11:53:21  №2152293 280
Объясните в двух словах, зачем нужны такие фреймворки как Laravel и Symfony
Ответы: >>2152310 >>2152426
Аноним 2021/09/07 12:06:51  №2152310 281
>>2152293
> в двух словах
Нахуй
Идешь
Ответы: >>2152319
Аноним 2021/09/07 12:11:12  №2152319 282
Аноним 2021/09/07 12:31:31  №2152348 283
>>2151822
>вообще в рельсах рабочих рук не хватает
Так это ж везде так, разве нет?
Ответы: >>2152421
Аноним 2021/09/07 13:36:30  №2152421 284
>>2152348
Есть места где особенно рук не особенно не хватает
Ответы: >>2152422 >>2152433
Аноним 2021/09/07 13:37:03  №2152422 285
>>2152421
> не особенно не хватает
особенно не хватает быстрофикс
Аноним 2021/09/07 13:38:46  №2152426 286
>>2152293
> в двух словах
Чтобы меньше руками писать, плюс фреймворк дает порядок все лежит на своем месте и вокруг фреймворков обычно есть целая инфраструктура с кучей полезных библиотек
Аноним 2021/09/07 13:45:44  №2152433 287
>>2152421
А в чем это выражается?
Аноним 2021/09/07 19:27:15  №2152683 288
>>2151822
Ларавель вдохновлён рельсами
Аноним 2021/09/07 21:43:14  №2152742 289
>>2134146
>Как вам 8.1 версия?
>Итс революшн,Джонни!?

Пока что больновато - многие пакеты еще не поддерживают его, в частности, ramsey/uuid и prophecy, прибитый пока что к phpunit.

Революшен (вернее сказать - ренессанс) начался уже некоторое время назад, еще до восьмерки. То, что основная масса макак сдриснула в какой-то момент на питон и голанг, имело неожиданный эффект: кристаллизовалась довольно продвинутая тусовка людей, способных двигать язык вперед. В итоге язык имеет реальный шанс порвать со своим лоховским прошлым. Он уже не совершит ошибок джавы, он впитывает лучшее из современных языков. Но это уже не будет тот хиленький язычок для вкатунов, который мы помним, и этакой интерпретируемой джявой он тоже не станет.

Атрибуты, файберы, паттерн-матчинг; гибкая модель типов, сочетающая жесткость, когда надо, и гибкость, когда надо. Асинхронность - и, кто знает, может, мы скоро увидим эвент-луп, подобный гошному. Станет ли гадкий утенок прекрасным лебедем?

Время покажет.
Ответы: >>2152893 >>2152895 >>2153410
Аноним 2021/09/08 08:10:34  №2152893 290
>>2152742
>Он уже не совершит ошибок джавы, он впитывает лучшее из современных языков.
Впитывает из джавы?
Ответы: >>2153293
Аноним 2021/09/08 08:21:16  №2152895 291
04.jpg (54, 800x450)
450x800
>>2152742
PHP становится мировой валютой ...
Аноним 2021/09/08 17:29:17  №2153293 292
>>2152893
>Впитывает из джавы?
Вот синтаксис атрибутов из раста впитал, кек. У джавы основной дефект дизайна - это nullable-типы, причем, насколько я помню, сделать тип non-nullable нельзя. Похапе от этого свободен изначально.
Аноним 2021/09/08 21:40:49  №2153410 293
>>2152742
>Он уже не совершит ошибок джавы
>Добавлены атрибуты
Литерали жуем трижды пережеванное говно
Аноним 2021/09/08 23:05:02  №2153439 294
Изучая MVC встал вопрос, как реализовывать классы для роботы с БД и роутером? Видел разные реализации, в одних объекты таких классов не создаются и просто вызываются статические методы, в других же создается объект и вызывают его методы. Разница не так велика, однако что лучше в данных случаях? И в подобных ситуациях, когда у какого-то объекта есть всего один экземпляр(типо того же роутера или бд), как поступать?
Ответы: >>2154190
Аноним 2021/09/09 18:14:49  №2154092 295
Как вам cakephp,оно вообще живое на про де?
Ответы: >>2154107
Аноним 2021/09/09 18:42:05  №2154107 296
>>2154092
В 2021 есть три php фреймворка: симфони, ларавель и в рашке немного легаси Yii2. В 99% случаев эти три. Нахуя при таких раскладах что-то еще непонятно.
Аноним 2021/09/09 22:06:28  №2154190 297
>>2153439

Статические методы в таких случаях это плохо, почему, я объясняю в уроке по DI: https://github.com/codedokode/pasta/blob/master/arch/di.md

Если кратко:

- статические свойства "отравляют" код и вынуждают делать его весь в таком стиле. Например, ты сделал класс для работы с БД на статических методах. А ему нужно где-то брать конфиг, получается придется и класс конфига сделать на статических методах
- при использовании статических методов нельзя создать 2 объекта с немного разными настройками. Например, нельзя создать 2 объекта для работы с двумя БД. Или два соединения с одной БД. Это мешает при тестировании. В тестах мы хотим создать объект, попользоваться им и выкинуть, чтобы после этого не осталось никаких следов. У тебя же после теста в классе остается состояние в статических полях и оно может повлиять на другие тесты.
- при использовании статических методов нельзя заменять зависимости. Например, нельзя сделать второй класс работы с БД и подсунуть его вместо основного, так как в коде жестко прописано его имя. Это мешает делать подмену в тестах, а также при использовании сторонних библиотек. Нельзя заменить роутер на другой (например, с функциями отладки).
- вместо того, чтобы получать настройки через конструктор, класс со статическими методами сам их откуда-то берет. Это делает код менее логичным и понятным.

То, что в твоем случае тебе нужен лишь один экземпляр класса - это не повод использовать статические методы или синглтоны. Нужен один экземпляр - создай его с помощью new и используй.
Ответы: >>2154242
Аноним 2021/09/09 22:29:19  №2154195 298
123.jpg (9, 600x114)
114x600
Когда уже в этом ебаном пиэйчпи сделают установщик, третий раз прописываю его в patch, и отдельно пробовал и точки с запятыми ставил а это говно вне не найдено. Хоть на линукс перекатывайся ради авто установки из терминала
Ответы: >>2154419 >>2154451
Аноним 2021/09/09 22:59:29  №2154199 299
Вы меня извините, но я Вас не читал. Это Ваш язык нормальный вариант для того, чтобы свалить с завода? Заебался, ни с какими физтеховскими и вышкинскими программистами конкурировать не хочу. Так хочу без особых амбиций получать чуть больше чем на заводике. У меня сейчас на заводике, в зависимости от выработки зп от 40 до 60 штук.

Я так понимаю этот ваш пхп это именно для разработки внешнего вида сайта. Макака короче. Я так понял все рекламируют питон, но он для крутейших парней которые внутренности разрабатывают, там машинным обучением занимаются и всякой другой мутной темой.
Ответы: >>2154217 >>2154219
Аноним 2021/09/10 02:54:37  №2154217 300
>>2154199
Нет, неправильно понимаешь
Аноним 2021/09/10 03:28:14  №2154219 301
ларавел.jpeg (52, 849x290)
290x849
>>2154199
В двух словах - работы на PHP много, но она почти вся низкооплачиваемая. Бывают редкие исключения. Очень много индусов. Ниша ларавела и фреймворков вусмерть забита индусами. На релокейт в Европу с PHP тоже рассчитывать особо не стоит.
Ответы: >>2155986
Аноним 2021/09/10 05:51:47  №2154242 302
>>2154190
>Нужен один экземпляр - создай его с помощью new и используй.

Все это конечно заебись на бумаге. Но в случае конекшена к базе именно что НЕЛЬЗЯ давать возможность создать несколько коннекшенов. И это именно что повод использовать синглтоны и статические методы.
Ответы: >>2154250 >>2154451
Аноним 2021/09/10 06:10:22  №2154250 303
>>2154242
>И это именно что повод использовать синглтоны и статические методы.
Всегда спрашиваю про область применимости синглтонов на собесах и как только слышу подобное - собес провален.
Ответы: >>2154260
Аноним 2021/09/10 06:34:57  №2154260 304
>>2154250
Нихуя ты жесткий. Ну такому жесткому в самый раз бегать с порванной сракой и считать инстансы коннекшенов к базе когда они закончились. Попутно еще вытирать с лица струю мочи от дба, которому ты сказал что тебе нужно только 50.
Ответы: >>2154822
Аноним 2021/09/10 11:35:15  №2154419 305
>>2154195
Ну попробуй в path прописать
Аноним 2021/09/10 12:39:32  №2154451 306
>>2154195

Во-первых, изменение PATH через настройки компьютера требует перезагрузки, чтобы настройки применились.

Во-вторых, проверь, действительно ли PATH поменялся, командой

echo % %PATH% % (без пробелов между процентами)

>>2154242

Иногда нужен отдельный коннект. Бывает, что баз несколько, например slave/master.

Чтобы не было возможности сделать несколько коннектов, используют DI контейнер и берут соединение из него, а не создают каждый раз вручную с помощью new.

Ответы: >>2154611
Аноним 2021/09/10 15:13:41  №2154583 307
Магазины на пыхе чаще в облако закидывают или на хостинг?
Аноним 2021/09/10 16:00:19  №2154611 308
>>2154451
>используют DI контейнер и берут соединение из него, а не создают каждый раз вручную с помощью new
>Нужен один экземпляр - создай его с помощью new и используй.

Мне поебать че там кто берет или не берет. Какие-то гарантии можно получить только если физически невозможно проебать в никуда коннект. Вас кукаретиков за километр видать. Вы просто не понимаете насколько "некрасивый код" мелкая хуйня в сравнении с отвалом базы.
Аноним 2021/09/10 19:28:18  №2154762 309
Когда уже офиц документацию перепилят и сделают как в 2021 а не середины 00?
Ответы: >>2154768
Аноним 2021/09/10 19:33:08  №2154768 310
>>2154762
Это легаси-защита от смузихлебов.
Заходит такой на сайт и падает в корчах.
Ответы: >>2154771
Аноним 2021/09/10 19:42:12  №2154771 311
>>2154768
Причем тут смузихлеб,доки реально надо переделать
Аноним 2021/09/10 20:34:17  №2154787 312
govno.jpg (31, 614x172)
172x614
Через сколько десятилетий завезут поддержку кириллицы?
Ответы: >>2154789 >>2154826
Аноним 2021/09/10 20:36:51  №2154789 313
>>2154787
Давно уж завезли в пхп6, перекатывайся.
Ответы: >>2154795
Аноним 2021/09/10 20:54:00  №2154795 314
>>2154789
У меня восьмерка, пробовал и через mb_substr b utf-8 прописывать, и через регулярки
Аноним 2021/09/10 22:10:26  №2154822 315
>>2154260
>бегать с порванной сракой и считать инстансы коннекшенов к базе когда они закончились
Сразу видно дурачка, не умеющего в инъекцию зависимостей. Бегать с порванной сракой будешь ты, когда у тебя случится шардинг, кек.
Аноним 2021/09/10 22:13:21  №2154826 316
>>2154787
>Через сколько десятилетий завезут поддержку кириллицы?
А что не так с юникодом? Не помню, когда в последний раз испыьывал с ним проблемы.
Ответы: >>2154830
Аноним 2021/09/10 22:29:14  №2154830 317
>>2154826
Он у меня не работает
Ответы: >>2154834 >>2154838
Аноним 2021/09/10 23:10:38  №2154834 318
Ответы: >>2154837
Аноним 2021/09/10 23:17:38  №2154837 319
Ответы: >>2154839
Аноним 2021/09/10 23:18:58  №2154838 320
>>2154830
>Он у меня не работает
Ну что тут сказать, видимо, ты уникум. Чему там работать-то, епта? Показывай код.
Аноним 2021/09/10 23:23:08  №2154839 321
>>2154837
И что ты тут нап показывпешь, отсутствие $_POST при запуске кода в песочнице? Минималистичный пример покажи, чтоб скармливаешь строку mb_* функции, а она плюется.
Ответы: >>2154845
Аноним 2021/09/11 00:37:13  №2154845 322
Ответы: >>2154850
Аноним 2021/09/11 01:04:44  №2154850 323
>>2154845
Ну всё, смирись значит. Не положено тебе.
Оставь многобайтные кодировки людям, а сам иди дальше.
Ты даже документацию на русском языке осилить не можешь.
Не твоё это.
Ответы: >>2155161
Аноним 2021/09/11 06:02:28  №2154863 324
>>2150644
Возьму пики точены...
Аноним 2021/09/11 13:36:15  №2155161 325
>>2154850
Да понял уже что надо было просто включить расширение php_mbstring.dll в ini, вообще у меня следующий вопрос - какого хуя нужна ручками править расширение у ini файла а потом так же ручками все туда писать? Нельзя сразу сделать все юзерфрендли?
Ответы: >>2171121
Аноним 2021/09/12 03:28:23  №2155631 326
Выше кто-то писал что будешь не востребованным на пыхе и т.д.. Вот пожалуйста, пример из жизни, знакомого: 1-й скрин его стек технлоогий, второй чем и как он шел к тому, что ща зарабатывает миллионы рублей в месяц.. Так что вот вам мотивации шоль немного.
Ответы: >>2155861 >>2155948
Аноним 2021/09/12 11:42:15  №2155861 327
>>2155631
>Лэндинги на пыхе
>Андроид разработка
>Блабла стратап бигдада
>Разработка it инфраструктуры

Я не спорю он может быть охуенным программистом. Пробился и добился, респект.
Только причем тут пхп ебаный? Какая нахуй связь между пхп и миллионами в месяц?
Там у него еще CSS написано. Хули не рассказываешь как доверстаться до миллионов в месяц? Пиздец просто, выбирай кароч норм язык с перспективами, вместо пхп параши, и вперед. Охуенно замотивировал.
Аноним 2021/09/12 13:24:25  №2155924 328
Что думаете насчёт актуальности php? Сейчас на этом языке стоит большинство сайтов, но будет ли так дальше? Есть ли у php сильные конкуренты?
Ответы: >>2155993 >>2156212 >>2156986
Аноним 2021/09/12 13:51:41  №2155948 329
>>2155631
Очередной Славик-затычка в каждой производственной дырке? Таких в пхп много, ибо пхп выбирают для экономии на штате
Ответы: >>2157218
Аноним 2021/09/12 15:02:32  №2155986 330
>>2154219
upwork помойка уже как 10 лет не актуальный ресурс поиска работы , для старту переезда в Восточную европу вполне хватит фуллстека (Польша, Чехия ,Германия etc )
Аноним 2021/09/12 15:21:12  №2155993 331
>>2155924
Присоединяюсь к вопросу анона! Для каких задач нужна пыха? Я понимаю в каких случаях стоит выбрать джаву/котлин, в каких питон, а в каких, допустим, раст.
Руководствуясь чем можно выбрать пыху, кроме аргумента хорошего аргумента, который очень часто решает что мы тут, бля, знаем пыху, поэтому будем на пыхе. Ммм?
не вброс, реально задался этим вопросом, а тут анончик в треде уже его озвучил
Аноним 2021/09/12 20:34:05  №2156212 332
>>2155924
>Есть ли у php сильные конкуренты?

Питон не смог. Успех голанга в основном держится на хайпе по микросервисам, а он уже проходит потихоньку; у голанга большие проблемы с выразительностью, бизнес-логику на нем писать трудновато. Но и сам похапе меняется быстро, сложно скащать, успеет ли удержать трон. Его проблема - в немодности; общественное мнение все еще вспоминает вордпрессы и битриксы при слове похапе.
Ответы: >>2156434 >>2156496 >>2157219
Аноним 2021/09/13 09:16:59  №2156434 333
>>2156212
>на хайпе по микросервисам, а он уже проходит потихоньку
В твоих фантазиях разве что. Вообще микросервисы конкуренты не пыхе, а крупным проектам на джаве/шарпе. Пыха находится в нише быстрых однопоточных решений не нацеленных на хайлоад. Вместе с джангой, рельсами и нодойжс.
Ответы: >>2156451
Аноним 2021/09/13 09:37:09  №2156451 334
>>2156434
Хуйлоадом хвастаться - это все равно как хвастаться что ты байтоеб на заводе, а не ленивая веб макака 300kk/sec. Просто узкая специфика.
Аноним 2021/09/13 11:38:37  №2156496 335
В каком редакторе вы пишете код? inb4 блокнот. Мне бы что-то простенькое, но с подсветкой и всеми необходимыми фичами.
Алсо я через openserver создал папку домена, чтобы открывался именно сайт, а не содержимое типа как в ftp, нужно именно index.php иметь всегда в корневике, верно?
>>2156212
Я слышал про битрикс вроде как дополнение к php, что с ним не так? Вордпресс это вроде совсем другая вещь.
Ответы: >>2156774 >>2156886
Аноним 2021/09/13 15:54:27  №2156774 336
>>2156496
Битрикс - кривая отечественная разработка, состряпанная студентами нулевых.
Ответы: >>2156814
Аноним 2021/09/13 16:41:44  №2156814 337
>>2156774
Я кстати ошибся, это аналогичные продукты, а ты даже не поправил. Вроде как 2/3 сайтов используют КМС, а вы как, разработчики здешние?
Аноним 2021/09/13 17:50:01  №2156886 338
>>2156496
>но с подсветкой и всеми необходимыми фичами
Поробуй vscode
Ответы: >>2157410
Аноним 2021/09/13 18:57:41  №2156986 339
>>2155924
>Есть ли у php сильные конкуренты?
В плане говномакакинга в стиле взял mega_govno_cms_beta_2.1.14.zip и любой васян распаковал эту хуйню на хостинге, за пару тысяч натянул верстку и ты уже можешь публиковать новости на официальном сайте ООО "Кирпичнозаводский металлургический комбинат" с формой обратной связи и схемой проезда в ебеня промзоны. И подобные простые сайты визитколендосы на дешевых хостингах, тут конкурентов нет.
Есть чуть посерьезнее всякие магазины на битриксах и подобных цмс, тут тоже конкуренции особо нет, есть всякие cms на других языках, на тех же рельсах и джанге куча cms, но они не взлетели поскольку требуют большей квалификации и уже не разместить на говнохостинге.

А вот то что уже уровнем выше, то там во всю подпирают с разных сторон, MVC фреймворки Yii, Laravel подпирают Django, Rails и куча всякой хуйни на Node.js. Взять Symphony то там те же конкуренты, в некоторых тырпрайзных случаях уже .net и spring.

Микросервисы тоже много на чем пишут go для быстродействия , js для асинхронности, на рельсах удобно общаться между сервисам есть гемы spyke и her, да и крудить удобно, на джанге удобно круды писать есть djangorestframework, плюс у питона куча библиотек на все случаи жизни, на flask и sinatra можно быстро на коленке накидать апишку и будет быстрее чем в ларавелевском люмене. Некоторые умудряются сервисы на спринге это делать, но там отдельная история.
Ответы: >>2157048
Аноним 2021/09/13 19:37:35  №2157048 340
>>2156986
Что значит накидать апишку?
Ответы: >>2157057 >>2157068 >>2157071
Аноним 2021/09/13 19:42:32  №2157057 341
>>2157048
Значит грязно, не задумываясь об архитектуре наделать post get эндпоинтов.
Аноним 2021/09/13 19:51:24  №2157068 342
>>2157048
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
nvm install --lts
mkdir mycoolapp
cd mycoolapp
npm install express
vim app.js

let express = require('express');
let app = express();

app.get('/hello', function(req, res) {
res.json({hello: "world"});
});

app.listen(3000, () => {
console.log(`App started listening on a port 3000`)
})

node app.js
Ответы: >>2157075
Аноним 2021/09/13 19:53:27  №2157071 343
>>2157048
Допустим нужно быстро сделать примитивный микросервис с парой эндпоинтов и крудом, где не нужна архитектура или какое нибудь временное решение чтобы проверить гипотезу. Вместо того чтобы поднимать рельсы или джангу берешь микрофреймворки хуяк хуяк, на фронте тоже хуяк хуяк и готово, получили прототип.
Аноним 2021/09/13 19:57:43  №2157075 344
>>2157068
>vim app.js
Ой, тут новичок зайдет в капкан, лучше nano советовать)
Аноним 2021/09/14 02:57:11  №2157218 345
>>2155948
ну и? лучше быть затычкой за пару миллионов в месяц
Аноним 2021/09/14 02:58:57  №2157219 346
>>2156212
проблема в отсутствии асинхронности и многопоточности из коробки, и довольно низкими показателями скорости
Ответы: >>2157287 >>2158011 >>2158636
Аноним 2021/09/14 07:49:50  №2157287 347
>>2157219
>проблема в отсутствии асинхронности и многопоточности из коробки
Ох, это прям боль была на одном проекте надо было постучать к 5 разным партнерам и получить цены, немного математики и отдать пользователю, из-за того что нет асинхронных запросов то нужно либо ждать и отваливаться по таймауту, либо что-то делать. В итоге на фронте наколхозили выкрутились. уже хотели микросервис на ноде делать
Ответы: >>2157290
Аноним 2021/09/14 08:01:37  №2157290 348
>>2157287
В guzzle же есть асинхронщина.
Да и тот же multicurl довольно просто нахуевертить.
Аноним 2021/09/14 10:59:05  №2157410 349
>>2156886
Спасибо. У меня правда php не установлен как таковой, он в составе open server портативной, можно ли как-то их "подружить" с vscode?
Ответы: >>2157415
Аноним 2021/09/14 11:02:59  №2157415 350
>>2157410
У вскода поддержка пхп как у блокнота - там нечего интегрировать.
Ответы: >>2157421 >>2157469
Аноним 2021/09/14 11:07:35  №2157421 351
>>2157415
А, ладно. Но выглядит клево все равно.
Аноним 2021/09/14 12:21:52  №2157469 352
>>2157415
Я как-то дебагер подключал, уже забыл как делал, сейчас продуктами жидбрейнса пользуюсь
Аноним 2021/09/14 21:54:26  №2158011 353
>>2157219
>проблема в отсутствии асинхронности
Тут поможет Amp.

> и многопоточности из коробки
С этим хуже, но в целом мультипроцессные сервисы неплохо работают на том же Amp.

> и довольно низкими показателями скорости
Похапе - один из самых быстрых интерпретируемых языков, если не самый. Я не так давно для одной задачки писал прототипы простенькой числодробилки на пыхе, голанге и расте. Голанг оказался шустрее всех, но однопоточный пых отставал от него всего на один порядок (а ведь можно было еще и многопоточность наколдовать, но было некогда).
Аноним 2021/09/15 17:51:55  №2158636 354
Аноним 2021/09/17 10:58:34  №2159811 355
Страница генерится от входящих данных.
Отправляю с этой страницы ажаксом реквест с пост информацией.
Пыхыпы должен вернуть новосгенерированную страницу такого же типа с новыми данными.

Но она не возвращается. точнее не обновляется в браузере!
Логами проверил - генерация данных идет вполне себе корректно.
Создаю new \DOMDocument("1.0", "ISO-8859-15"), навешиваю на него измененные данные, возвращаю назад, но остается старая страница. Не понимаю почему, все же логично делаю.
Ответы: >>2159836 >>2171121
Аноним 2021/09/17 11:38:01  №2159836 356
>>2159811
Хмм эта проблема со всеми редиректами, не важно какие данные.
Упрощу вопрос - отправляешь ажас запрос, пыхыпы возвращает страницу, как ее получить и отобразить? location.reload() перезагружает только текущую страницу
Ответы: >>2160111 >>2160162
Аноним 2021/09/17 16:32:42  №2160111 357
>>2159836
>Создаю new \DOMDocument("1.0", "ISO-8859-15")
Тут непонятно, что ты нахуевертил.

А в plain PHP, просто:
<?php
if ($_POST) {
echo 'blablabla <pre>' . print_r($_POST, true) . '</pre>';
// ну и тут делаешь что хочешь
}
Ответы: >>2160157
Аноним 2021/09/17 17:13:17  №2160157 358
Ответы: >>2160161
Аноним 2021/09/17 17:15:16  №2160161 359
>>2160157
У меня вопросов нет, программирую на РНР с 2004 и работаю на США-штую корпу.

Так что, потрудись сформулировать, иначе мне просто неинтересно.
Ответы: >>2160179
Аноним 2021/09/17 17:17:41  №2160162 360
>>2159836
>AJAX
Значение знаешь?
>пыхыпы возвращает страницу, как ее получить и отобразить
Ну например, просто прихуячь результат через element.innerHTML
Ответы: >>2160179
Аноним 2021/09/17 17:41:52  №2160179 361
>>2160161
>я я я да я вы говно
Классека.
Работай дальше, нах пишешь раз неинтересно

>>2160162
>значение
Намек на то. что я возвращаю целую страницу, а не кусок? Да, просто я тестирую сейчас как это все работает вообще, потом поменяю как именно надо.

>просто прихуячь
Через document.documentElement получилось! Спасибо.
Однако у меня вопрос остался.
Нормальная ли это практика и почему у меня просто возвраты страниц, редиректы, из обработчика реквеста ажакса, не работают?
Ответы: >>2160198 >>2160236
Аноним 2021/09/17 18:16:31  №2160198 362
>>2160179
я же показал тебе путь, неблагодарная скотина
Ответы: >>2160208
Аноним 2021/09/17 18:27:51  №2160208 363
>>2160198
Представил как ты вскидываешь голову с запястьем на лбу.
Аноним 2021/09/17 18:41:57  №2160236 364
>>2160179
>Нормальная ли это практика и почему у меня просто возвраты страниц, редиректы, из обработчика реквеста ажакса, не работают?
Ты какое-то говно делаешь. Если ты редиректишь аякс запрос, то именно он и будет редиректится (чекни в девтулз, у тебя по итогу будет два запроса), если хочешь через жс это делать то можешь попробовать window.location.href = URL, а сам юрл хоть плейн текстом отправлять. Через innerHTML менять всю страницу такая себе идея, потому что у тебя все обработчики в жсе отвалятся, и нужно будет заново их биндить, у тебя ломается история в браузере, нужно руками обновлять урл, делать обработку back, хранить где-то предыдущую страницу, вешать на неё обработчики если юзер нажал на back, короче делать всё то, что браузер делает за тебя, идея говно по дефолту.
Ответы: >>2160293
Аноним 2021/09/17 19:25:18  №2160293 365
>>2160236
Я не хочу это делать через жс, жс просто отправляет данные на серв что нужна страница с такими-то данными.
Страница у меня собирается скриптово, по кускам.
Мне нужно после запроса ажакса получить эту страницу.

Вот человек вводит рут - рут кидает на обработчик - обработчик отправляет вьюху - вот как это обычно работает.
Я же отправляю запрос ажаксом - запрос в обработчик - обрабочик отправляет вьюху - вот последний пункт тут у меня не работает. (классическим способом) И мне очень интересно узнать, почему именно этот способ не работает?



Ответы: >>2160307
Аноним 2021/09/17 19:44:38  №2160307 366
>>2160293
>почему именно этот способ не работает?
А чего ты решил что он должен работать? Браузер должен магическим способом понять что хтмл в аяксе это новая разметка страницы? Это уже твоя задача обрабатывать эти кейсы.

>Страница у меня собирается скриптово, по кускам.
У тебя куски хтмла приходят? Нужно брать строку ответа из аякса и руками маунтить (можно просто через innerHTML у элементов контейнеров для этого хмтла).

>Я же отправляю запрос ажаксом - запрос в обработчик - обрабочик отправляет вьюху - вот последний пункт тут у меня не работает.
Если у тебя в обработчике страница приходит полностью (с <html></html> и этим всем), то сделай просто ссылку на эту страницу, зачем это через жс делать я не сильно понял, и как я уже говорил у тебя это просто не получится.
Ответы: >>2160337
Аноним 2021/09/17 19:49:02  №2160311 367
Сам js'ер, но бэк будет на пыхе помогать друг делать.
Не будет ли проблем в однопоточном режиме, если страница сразу 2 гет-запроса со скриптов отправит?
Какие вообще подводные связываться с вами?
До этого только запускал тестовые серваки на ноде всякие.
Ответы: >>2160313 >>2160314 >>2160326
Аноним 2021/09/17 19:52:13  №2160313 368
>>2160311
PHP ничем не отличается от любого другого серверного языка.

Ваша цель -- договориться о понятном и однозначном протоколе передачи данных. Хотите потратить время -- GraphQL; хотите быстро и чтоб работало -- как можно более простой REST API.
Ответы: >>2160314
Аноним 2021/09/17 19:54:31  №2160314 369
16273244431140.jpg (57, 720x960)
960x720
>>2160313
>>2160311
Тут непонятно, что вы напердолите.

Ваша задача -- либо объединить два запроса в один, либо запрограммировать их нужную последовательность и обработку.
Ответы: >>2160323
Аноним 2021/09/17 20:03:06  №2160323 370
>>2160314
Хм, ну наверняка тогда придется делать один запрос.
Задача стоит в, прежде всего, чтобы работало.
Сначала вообще передачу не осилили, надеюсь, из-за CORS.
Когда в последний раз заглянул в гит то увидел вместо страниц кучу php-файлов и вообще не понял что происходит.
Ответы: >>2160328
Аноним 2021/09/17 20:06:27  №2160326 371
>>2160311
>Не будет ли проблем в однопоточном режиме, если страница сразу 2 гет-запроса со скриптов отправит?
Не будет, самих процессов может быть много, не парься
Аноним 2021/09/17 20:09:01  №2160328 372
TGuSjRBS6E.jpg (64, 494x662)
662x494
>>2160323
Ну а причём тут git.
Вам нужен некое общее тестовое окружение, на котором ты будешь отрабатывать свои запросы.

Например, бекенд предоставляет тебе инструкцию по развёртыванию его приложения (например, в docker-контейнерах), вы договариваетесь о способе обработки статики (например, твои скрипты должны собираться в public-папке в его ФС), и так продвигаетесь от релиза к релизу.

Или проще, по-олдскульному -- он деплоит на некую тестовую площадку, а ты работаешь со своими скриптами там же.
Аноним 2021/09/17 20:15:07  №2160335 373
>куски приходят
Не-не, я просто упоминаю кастомность страницы чтобы объяснить что
это не просто левая страничка на которую можно было бы легко перенаправить в руте. И мало ли, я даже думал, что из-за кастомного создания страницы я мог бы теоретически что-то делать не так с тонкими настройками, метатегами, и браузер просто не читал бы страницу, потому что считал бы что описание у нее одно, хоть содержание разное, поэтому можно и не обновлять - вы бы такое тоже могли бы упомянуть, но сейчас я знаю что не в этом точно причина.
Ну и я думал что вообще отправляю что-то сломанное - тоже отмел этот вариант сразу же.
Просто вот пытался сказать что есть html страница, ее надо вернуть.

>страница полностю
Нет, приходят данные разные просто, потом это все доминошкой обрабатывается и создается новое.

>с чего решил
Я просто видел примеры как люди возвращали страницы(не пыхыпы, но логика таже), я и подумал что реквесты делаются не с ожиданием конкретных данных, типа я отправляю тебе строку, а ты мне число и не смей больше ничего отправлять кроме числа, то бишь запрос от клиента идет, а что обратно будет это серв решает.
И вот серв решил вернуть страницу, какая проблема ее скушать, ведь с рутами же все работает нормально? Ты видишь тот же штмл формат, видишь теги, в чем проблема?

ПС спасибо
Ответы: >>2160337 >>2160345
Аноним 2021/09/17 20:15:25  №2160337 374
Аноним 2021/09/17 20:24:50  №2160345 375
>>2160335
У тебя шиза (это нормально).

Постарайся сделать раза в 3 более простые и работающие приложения.

А уже потом, когда поймёшь принцип, начинай внедрять более сложные уровни абстракции.
Ответы: >>2160420
Аноним 2021/09/17 20:31:20  №2160349 376
Аноним 2021/09/17 23:32:07  №2160420 377
>>2160345
>двач у меня не растет бицуха, тягаю 3-12 8кг гантелями, может на гриф перейти?
>старайся делать зарядку, разминать мышцы, спорт полезен
>???
Ответы: >>2160421
Аноним 2021/09/17 23:36:52  №2160421 378
>>2160420
сделай хоть что-нибудь работающее, потом выёбывайся
Ответы: >>2160423
Аноним 2021/09/17 23:50:34  №2160423 379
>>2160421
Работаю над твоей мамкой на данный момент.
Аноним 2021/09/18 06:03:58  №2160458 380
А не устарел учебник из шапки?
Ответы: >>2160463
Аноним 2021/09/18 06:19:34  №2160463 381
>>2160458
Устарел, как и сам пи эйч пи.
Ответы: >>2160480 >>2160527
Аноним 2021/09/18 06:50:18  №2160480 382
16309052783170.jpg (62, 450x335)
335x450
>>2160463
Устарел, зато работает в джва раза быстрее, всякого новомодного говна, вроде питона и имеет понятный и вменяемый синтаксис
Ответы: >>2160484
Аноним 2021/09/18 07:03:21  №2160484 383
image.png (36, 409x409)
409x409
image.png (44, 504x434)
434x504
>>2160480
> новомодного говна, вроде питона
Съеби, новомодное говно.
Ответы: >>2160487
Аноним 2021/09/18 07:07:16  №2160487 384
16308972308870s.jpg (6, 200x132)
132x200
>>2160484
сыночка-корзиночка нашел к чему докопаться, по другим вопросам возражений нет?
Ответы: >>2160490
Аноним 2021/09/18 07:12:48  №2160490 385
>>2160487
Проще искать до чего не докопаться, вся стандартная либа это говно говна, которое тащат для совместимости.
https://www.php.net/manual/en/ref.strings.php
https://www.php.net/manual/en/ref.array.php
В итого залезут в капсулу фреймворка и сидят в этом болоте.
С жс было что-то подобное, но это важный язык и за него серьезно взялись большие дядьки и пилят.
Аноним 2021/09/18 08:12:35  №2160527 386
>>2160463
А что тогда для backend учить?
Ответы: >>2160533
Аноним 2021/09/18 08:27:22  №2160533 387
Ответы: >>2160545
Аноним 2021/09/18 08:55:40  №2160545 388
>>2160533
Заявок на фрилансе больше именно по ним?
Ответы: >>2160549
Аноним 2021/09/18 09:09:50  №2160549 389
>>2160545
Это не для фриланса, но самые популярные языки для бэкенда.
Ответы: >>2160550
Аноним 2021/09/18 09:17:21  №2160550 390
>>2160549
Я искал как раз для фриланса, а не постоянной работы.
Ответы: >>2160552
Аноним 2021/09/18 09:22:12  №2160552 391
>>2160550
Хрен его тогда знает. Пыху учи. Правда не знаю, сможешь ли ты попасть на фриланс, миновав опыт в офисе.
Аноним 2021/09/18 10:27:23  №2160586 392
image.png (549, 600x600)
600x600
>>2120804 (OP)
В моей мухосрани появилась вакансия "PHP Программист", платят 30к на руки:

"Младший программист.Базовые знания HTML CSS Javascript.Базовые знания PHP.Базовые знания SQL и построение простых запросов (Select,Update,Delete, Insert). "

Все знаю, кроме пыхи. Так вот, что подразумевают под "Базовые знания PHP" в такой вакансии? Какой проект по быстренькому заделать чтоб хотя бы позвали на собесед и заскочить уже кабанчиком в АЙТИ? Времени вагон. Заранее спасибо за ответы


Аноним 2021/09/18 11:07:13  №2160603 393
>>2160586
> PHP Программист
> требуют только базовые знания PHP
Лол.
Аноним 2021/09/18 11:19:36  №2160613 394
>>2160586
Это для галочки пишут, на самом деле всем похуй, на собесе спросят не дебил ли ты и посмотрят на реакцию, не более.
Проблемы начнутся на самой работе, когда ты всем напиздишь что шаришь, а по факту не сможешь вывезти базу.
Я лично через это проходил, теперь вообще смотрю на требования сквозь пальцы, так как надо смотреть между букв.
Ответы: >>2160631
Аноним 2021/09/18 11:42:40  №2160631 395
>>2160613
Сколько обычно дают время на освоение этой самой базы?
Ответы: >>2160643 >>2160644
Аноним 2021/09/18 12:04:52  №2160643 396
>>2160631
От тебя зависит. Если фирма большая то пизды могут дать в первые недели так как им надо чтобы шестерни работали и сдавали таски. Если фирма очень большая, то могут забить хуй и позволить тебе считать точки на потолке(только ты еще устройся кык). Ну и в студийках как договоришься, тут тет-а-тет решать надо.
Короче, ты как и большинство вкатунов, задаете одни и теже тупые вопросы, но как бы вам не отвечали это вам все равно никак не поможет. Ты либо овощ, либо нет.
Ответы: >>2160664
Аноним 2021/09/18 12:05:15  №2160644 397
>>2160631
От тебя зависит. Если фирма большая то пизды могут дать в первые недели так как им надо чтобы шестерни работали и сдавали таски. Если фирма очень большая, то могут забить хуй и позволить тебе считать точки на потолке(только ты еще устройся кык). Ну и в студийках как договоришься, тут тет-а-тет решать надо.
Короче, ты как и большинство вкатунов, задаете одни и теже тупые вопросы, но как бы вам не отвечали это вам все равно никак не поможет. Ты либо овощ, либо нет.
Аноним 2021/09/18 12:40:55  №2160664 398
>>2160643
Да я знаю, что я овощ и так, пытаюсь еще до собеса по-максимуму изучить процесс создания сайтов с пхп.
Ответы: >>2160683
Аноним 2021/09/18 13:29:42  №2160683 399
>>2160664
Перед смертью не надышишься. Вероятно ты учишь левую хрень, а тебя могут спрашивать за другое. Просто иди и устраивайся.
Аноним 2021/09/18 14:17:19  №2160708 400
Кто-то хочет вместе вкатиться в лару? @pupupipuu пишите аноны
Ответы: >>2160744
Аноним 2021/09/18 15:19:22  №2160744 401
>>2160708
Ты уже 3 года вкатываешься.
телега нерабочая, может ты имелл ввиду пупупипуПу ?
Ответы: >>2160750
Аноним 2021/09/18 15:38:59  №2160750 402
>>2160744
Какие 3 года?
Юзернейм чет не поставился с первого раза, фиксанул
Аноним 2021/09/18 17:52:58  №2160779 403
>>2160586
>Какой проект по быстренькому заделать чтоб хотя бы позвали на собесед и заскочить уже кабанчиком в АЙТИ?
Проект по нажатию на кнопку "Откликнуться", осилишь?

Если серьёзно, в пхп нет ничего, что нужно прям "учить", если ты знаешь вообще хоть какой угодно язык программирования. Просто прям на работе вводишь в гугл "php how to do (хуйнянейм)", и копируешь что найдёшь на стековерфлоу. Я таким образом уже несколько месяцев как вкатился.
Ответы: >>2161010
Аноним 2021/09/19 03:33:39  №2160988 404
>>2160586
Смущает что там жс ещё, как обычно нужен бэкендер которому не надо будет платить за работу фронтенда
Ответы: >>2161058
Аноним 2021/09/19 06:04:57  №2161010 405
>>2160779
Спасибо, попробую. Результатами поделюсь в треде, если местечко уже не займут к этому времени
Аноним 2021/09/19 08:42:16  №2161058 406
>>2160988
>нужен бэкендер которому не надо будет платить за работу фронтенда
Так-то похуй - рабочее время 8 часов. Какая разница что ковырять вилкой - ПХП или ЖС? Если они думают, что ты в 2 раза быстрее работать будешь на двух языках, то быстро разочаруются.
Ответы: >>2161064
Аноним 2021/09/19 08:45:07  №2161064 407
>>2161058
Хотя 30к это очень-очень мало для человека, который умеет в пхп и жс. Там не задрищенская шароёбская веб-студия какая? Смотри чтоб не посадили тебя различные CMSки ковырять от заказчиков - охуеешь за эти деньги.
Ответы: >>2161066 >>2161161
Аноним 2021/09/19 08:50:53  №2161066 408
>>2161064
Обычная зп для мухосранска.
Кмски разве не созданы для облегчения создания сайта?
Ответы: >>2161177
Аноним 2021/09/19 10:33:45  №2161161 409
>>2161064
Это очень похоже на студию, обычно стек более подробно пишут, а тут походу придется со всем по чуть-чуть работать и в основном битриксы с вордпрессами, еще на гуслях играть и ебаться вприсядку, трекая каждые 10 минут рабочего времени
Ответы: >>2161177
Аноним 2021/09/19 11:00:52  №2161177 410
>>2161066
>Обычная зп для мухосранска
У меня кореш на автомойке столько же зарабатывает без всякой ебли с кодом. В том и дело, что это обычная зарплата в мухосрани для человека без навыков, а тут какие-то требования требуют ещё.

>Кмски разве не созданы для облегчения создания сайта?
Как бы да, но каждая свои костыли костылит и их надо знать. Т.е. помимо того же пхп, жс, вёрстки, тебе ещё придётся и внутрянку CMS понимать. За 30килорублей это нихуйственные требования уже.

>>2161161
Чёто тоже кажется, что так и будет. Не удивлюсь ещё и серой зарплате задним числом.


Аноним 2021/09/19 16:44:53  №2161470 411
Вы прыгаете блоками из php в html или делаете все через php и с помощью echo <<< выводите форму?
Ответы: >>2161480 >>2161655 >>2171121
Аноним 2021/09/19 16:51:55  №2161480 412
>>2161470
Я делаю так

return $this->render('edit.html.twig', [ 'form' => $form->createView() ]);
Ответы: >>2161485
Аноним 2021/09/19 16:56:08  №2161485 413
>>2161480
Нихуя не понял, буду дальше читать.
Аноним 2021/09/19 17:13:15  №2161496 414
Посоны, учу пыху и такой вопрос - можно ли заработать на парсинге сайтов (для себя)? Т.е писать парсеры и размещать у себя на хостинге/впс?
Ответы: >>2161655 >>2171097
Аноним 2021/09/19 23:55:16  №2161655 415
>>2161470
>с помощью echo <<< выводите форму?
Так никто не делает нынче. Обычно уже есть свёрстанный шаблон формы, куда подставляются уже подгтовленные в пхп или любом другом ЯП данные. Напрямую в шаблоне присутствует только логика для отображения, но не работы с данными.

>>2161496
>можно ли заработать на парсинге сайтов (для себя)?
Ну если ты сам себе платить будешь, то ради бога.

>писать парсеры и размещать у себя на хостинге/впс?
Не всё так просто - каждая страница имеет свою структуру и под неё придётся писатб свой набор запросов. К этому добавь разные наборы полей и тот факт, что далеко не всем это нравится = что их парсят.
В целом готовься тратиться на толстого VPS и канал. От 50$ в месяц, в самом нищебродском варике. К этому добавь обязательные прокси + логику по их проверке. Некоторые сервисы надо парсить не через html, а через запуск полноценного хедлесс браузера с отработкой жаваскрипта, что тоже требует мощностей, делать всё надо многопоточно - сколько по железу потянешь. Ещё часто будет слетать парсинг - изменения в страницах, добавление проверок на стороне источника и тд - это всё на тебе.
В общем попробуй канешно, но будет непросто.
Аноним 2021/09/20 07:20:10  №2161763 416
Через час иду на собеседование junior php.
Первое собеседование. Очково что-то.
Ответы: >>2161780 >>2161900
Аноним 2021/09/20 07:45:58  №2161780 417
>>2161763
Удачи, потом расскажи как было.
Ответы: >>2161785 >>2161900
Аноним 2021/09/20 07:52:02  №2161785 418
>>2161780
Спасибо!
Позже напишу отчёт как всё пройдёт.
Ответы: >>2161857
Аноним 2021/09/20 09:33:55  №2161857 419
Ответы: >>2161860 >>2161900
Аноним 2021/09/20 09:36:38  №2161860 420
>>2161857
Ты че бля, в такую рань толко на завод работяг собеседуют, а не господ макакенов.
Аноним 2021/09/20 10:14:04  №2161891 421
Нужен ли REST одностраничнику, где все в модальных окнах?
Ответы: >>2171097
Аноним 2021/09/20 10:20:55  №2161900 422
>>2161763
>>2161780
>>2161857

Анончик, репортую:

Пришёл я значит в намеченое время (на 11) к ним в офис. Встретила HR-ка. Встретила тёпло. Предложила кофе. Я культурно отказался. Обстановка в целом в офисе - уютно, тихо и спокойно. Без никакого кипиша. Половина народу с кружками ходит, попивают кофе. Посадили в отдельною комнату, я так понял для митингов.
Блять, как же я нервничал в это время, это пиздос. Не педать словами. Первый раз такое в жизни. Думал что сейчас будет глобальный разъёб во все щели....

Короче, ближе к делу. На собеседовании было 5 человек + я: hr, бэк лид, фронт лид, директор конторы (не наш человек, я так понял с сша) и переводчик для него. Начали спрашивать по очереди, сначала бэк: база даных, что такое индексы и для чего нужно, какие есть связи. По php спросил что такое контроллер, потом спрашивал по ларке: спросил о посредниках (middleware), request, response, как использовать form request, eloquent, как сделать дополнительное условие (orWhere), как сделать связи (relations). Потом почал спрашивать фронт: в основном о Vue.js (я о нем написал в резюме, что сталкивался с ним). Спросил о vuex, state, getters, setters, mutation, как получить данные из стора в дочерних компонентах, хуки и жизненный цикл, чем отличается data компонента и глобальный (экземпляра), далее спросил о SSR (серверный рендеринг, для чего нужен и как лучше) и кое что ещё. Всё не запомнил.

Все это время переводчик переводил мои ответы и говорил с главным. Он ничего не спрашивал, только в конце сказал типа "Okey, я вас понял".

В конце меня поблагодарили за собеседование, и за уделенное им время.
Вот здесь было реально интересно, и в тоже время очень приятно. Сказали что им понравилось, и что они после обсуждения свяжутся со мной и огласят решение. Ок.

Я собрался и ушёл.
Через час позвонили, сказали что я им подхожу. Согласовали зп (сказали что будут мне платить ту сумму которою я указал в резюме. я указал комфортную для меня на данный момент, как джуну Первый пересмотр зп будет через 4 месяца. Назначили день и время, когда мне прийти и согласовать режим роботы, "адаптацию" к команде и ещё некоторые вопросы.

В общем всё прошло, на удивление, отлично. Когда вопросы закончились - я просто выдохнул и начал дышать. Серьёзно. Я не ожидал что будет так просто. Всё это время я готовился по примерах собеседований в интернете. А там было всё: паттерны, принципы, psr и ещё кучи-кучи вопросов. А тут такое.

Вот так, анон у меня прошёл сегодняшний день.
Аноним 2021/09/20 10:33:47  №2161912 423
>>2161900
классно, удачи на новой работе!
Ответы: >>2161918
Аноним 2021/09/20 10:41:23  №2161918 424
Аноним 2021/09/20 11:37:23  №2161973 425
>>2161900
Это ДС?
Нихуя, да ты уже чуть ли не мидл там.
Ответы: >>2161980
Аноним 2021/09/20 11:39:45  №2161979 426
Есть ли в php возможнсоть запустить скрипт и чтобы он продолжил работать после закрытия страницы в браузере?
Аноним 2021/09/20 11:39:54  №2161980 427
>>2161973
Мухосрань, 200к
До мидла ещё далеко
Аноним 2021/09/20 11:48:47  №2161995 428
>>2161979
Запусти через консоль
Аноним 2021/09/20 11:54:48  №2162002 429
>>2161979
Нужен отдельный воркер, а ты со своего скрипта можешь отправлять ему задачи.
Аноним 2021/09/20 13:27:32  №2162053 430
Аноним 2021/09/20 14:38:40  №2162130 431
>>2161900
Сколько тебе лет, анон
Ответы: >>2162141
Аноним 2021/09/20 14:56:53  №2162141 432
Аноним 2021/09/20 15:31:36  №2162167 433
>>2161900
Заебумба. Поздравляю.

>директор конторы (не наш человек, я так понял с сша)
Бтв, а что муриканец забыл в пердях?

Профильная вышка есть?
Ответы: >>2162175 >>2162180
Аноним 2021/09/20 15:50:57  №2162175 434
>>2162167
> Бтв, а что муриканец забыл в пердях?
Честно - вообще не понял. Может он в своих западах в основное время пребывает, решил проведать, а я просто случайно на него попал.
> Профильная вышка есть?
Профильной - нет. Есть техническая.
Аноним 2021/09/20 16:06:04  №2162180 435
>>2162167
>Профильная вышка есть?
Это плюс?
Ответы: >>2162183
Аноним 2021/09/20 16:08:48  №2162183 436
Аноним 2021/09/20 18:50:56  №2162318 437
Есть один SPA.
Как в php выделять отдельные запросы с клиента, по кастомным заголовкам?
Ответы: >>2163207 >>2171097
Аноним 2021/09/20 21:03:14  №2162386 438
>>2161979
Вообще, чтобы ты понимал, он перестаёт работать не после закрытия, а немного перед открытием. Если страница пришла, значит скрипт полностью выполнился. (В основном). Поэтому задача в принципе некорректно поставлена.
Аноним 2021/09/21 05:01:37  №2162538 439
>>2161900
Скок зп? Долго учился? Что молодым-шутливым посоветуешь?
Ответы: >>2162590
Аноним 2021/09/21 06:41:01  №2162590 440
>>2162538
>А че есть?
>А покажи!
>А дай!
Аноним 2021/09/21 16:25:52  №2163207 441
>>2162318
Хуй тебя проссышь, анон, о чём ты глаголешь. С какого клиента, какие запросы, почему ты обычные токены не используешь?
Ответы: >>2163210 >>2163592
Аноним 2021/09/21 16:27:02  №2163210 442
>>2163207
Со SPA в целом ебли всегда в 2 раза больше чем с классическими шаблонами. Так-то бы просто сессию поставил пользовательскую и нет проблем.
Ответы: >>2163379
Аноним 2021/09/21 17:28:00  №2163287 443
Есть поле char в бд, пытаюсь добавить в бд из поля формы туда цифры через real_escape_string, приходит пустая строка. php вроде должен динамически привести тип, верно?
Ответы: >>2163297 >>2163382 >>2171097
Аноним 2021/09/21 17:35:47  №2163297 444
1.png (105, 633x850)
850x633
>>2163287
Мне особенно доставило, что у автора книжки видимо тоже нихуя не работало и он решил просто добавлять это значение без экранирования, но забыл полностью поменять функцию для этого случая просто на соответствующее значение из массива $_POST.
Я понимаю опечатки бывают, но это вообще ни в какие ворота. Хотя может это я туплю, не исключено.
Ответы: >>2163316 >>2163320 >>2171089
Аноним 2021/09/21 17:58:00  №2163316 445
>>2163297
>Экранируемые символы NUL (ASCII 0)
Это и есть char 0, верно? Но почему тогда вообще пустая строка была добавлена, а не цифры оставшиеся кроме нулей?
Аноним 2021/09/21 18:00:45  №2163320 446
>>2163297
>анон взял книжку для изучения пхп
>код не по PSR
>автор хуй забил на проверку своего же кода
>get_post берёт данные из post это как вправолево и повернуть налево
Книжку выкинь.
Ответы: >>2163324
Аноним 2021/09/21 18:03:42  №2163324 447
>>2163320
>get_post берёт данные из post
Дай угадаю: а функция получения данных из get он назовёт get_get кек. А если будет в запросе параметр get, то вообще охуеешь $get = get_get('get'); словно масляное масло масляно маслит.
Аноним 2021/09/21 18:05:12  №2163327 448
Поигравшись с DOMDocument ко мне стали приходить новые мысли.
Лучше создавать элементы для страницы на фронте, а запросами отправлять чистые данные?
Потому что на данный момент процесс выглядит так:
Создаю документ на пыхе, через него элемент. Отправляю весь документ в HTML в запросе, на фронте создаю новый документ, даю ему данные HTML что скинул, и только после этого получаю свой элемент через getElement.
Выглядит максимально костыльно.
Ответы: >>2163331 >>2171082
Аноним 2021/09/21 18:11:06  №2163331 449
>>2163327
>Создаю документ на пыхе, через него элемент
Это как? Покаж код.
Ответы: >>2163343
Аноним 2021/09/21 18:29:23  №2163343 450
>>2163331
Примерно так:

$doc = new \DOMDocument("1.0", "ISO-8859-15");
$ele = $doc->createElement("lol");
$doc->saveHTML();

Ответы: >>2163347
Аноним 2021/09/21 18:33:11  №2163347 451
>>2163343
Отправляй чистые данные, а на фронтенде уже формируй их представление. По простому если: бекенд - для данных, фронтед - для их отображения. К тому же сервер у тебя один, а клиентов, в теории, может быть много и каждому из них страничку рисовать это дополнительная нагрузка - пускай они сами себе рисуют.
Ответы: >>2163354
Аноним 2021/09/21 18:36:28  №2163354 452
>>2163347
То есть это таки хорошая практика. Спасибо.
Ответы: >>2163355 >>2163391
Аноним 2021/09/21 18:40:04  №2163355 453
>>2163354
От задачи зависит - если ожидается, что будут высокие нагрузки, то нужно выносить часть логики на клиент, а если у тебя там простой сайтик и ты ему SPA начал пилить, то это так себе идея с оверхедом под 100%
Ответы: >>2163358
Аноним 2021/09/21 18:42:29  №2163358 454
>>2163355
Да-да, я так и представляю себе.
Аноним 2021/09/21 19:11:34  №2163379 455
>>2163210
Что вообще такое "сессия"? Где она хранится? Что ты туда ставишь? У тебя аутентификация(логин) имеет место или нет? Мне кажется, что сессия -- это какой-то наебательский термин.
Ответы: >>2163428
Аноним 2021/09/21 19:14:56  №2163382 456
>>2163287
real_escape_string уже никто не юзает больше 10 лет, уже наверное лет 15. Используй php pdo вместо mysqli и вместо экранирования строк подставляй их отедльными параметрами.
Ответы: >>2163397
Аноним 2021/09/21 19:22:17  №2163391 457
>>2163354
Это один из вариантов, ныне более трендовый. Оба варианта рабочие. Я бы не сказал, что если высокие нагрузки, то якобы рендер HTML отъест много нагрузки. Это ещё предстоит доказывать. Во-первых начнём с того, что раз ты такие вопросы задаёшь, то ты новичёк, и тебе по-настоящему высокие нагрузки не светят в ближайшие 2-3 года или больше. Во-вторых SPA такого типа часто отдают дохрена js, который может есть кучу трафика. Вообще полностью готовых гарантированных рецептов как готовить высокие нагрузки, нет. Ты должен всё измерять и сопоставлять. Некоторые вещи на SPA делать очень сложно.
Ответы: >>2163433
Аноним 2021/09/21 19:30:59  №2163397 458
3428597.jpg (31, 300x423)
423x300
>>2163382
Спасибо, почитаю про это отдельно тогда.
Не думал, что так устарел материал, книжка 16го года (4е издание).
Ответы: >>2163405
Аноним 2021/09/21 19:38:40  №2163405 459
>>2163397
Старье тоже надо знать, если в легаси попадешь, которого в пыхе дохуя.
Ответы: >>2163412
Аноним 2021/09/21 19:53:14  №2163412 460
>>2163405
Старья с mysqli уже очень мало. Я ни разу не видел. Это невыгодно и бессмысленно. Если попадёшь, что вряд ли уже, то проще послать их нахуй и пойти на другую работу. Не трать время анона зря.
Аноним 2021/09/21 20:28:31  №2163428 461
Ответы: >>2163493
Аноним 2021/09/21 20:36:05  №2163433 462
>>2163391
Почему все упоминают спа спа спа спа?

>не светит 2-3
Лол, меня брали джуном в фирму среднего размера, своим продуктом и соответственно приличными нагрузками.
Хз чем там считаются большие нагрузки, 5-10кк запросов?
Ответы: >>2163442 >>2163493
Аноним 2021/09/21 20:45:17  №2163442 463
>>2163433
>Хз чем там считаются большие нагрузки, 5-10кк запросов?
Конкретных цифр не и быть не может - это зависит от реализации бекенда и бюджета на него. Хайлоад начинается где-то там, когда выгодней и проще потратить неделю работа бекенд-разработчика ок 150 тыс руб на оптимизацию работы приложения, чем просто купить ещё мощностей.
Аноним 2021/09/21 22:06:14  №2163493 464
>>2163433
>Почему все упоминают спа спа спа спа?
Потому что это похоже на то, что ты описал. И это трендово, плохо это или хорошо.
>5-10кк запросов
В какую еденицу времени? Это в секунду?

Если тебя взяли джуном, то там над тобой есть куча старших кодеров, которые тебя пасут. Решение, где генерировать HTML, на беке или фронте, -- будет не за тобой.
>>2163428
Если честно, никогда до конца не понимал, зачем это было реализовано в самом PHP. Мне кажется, в этом есть какая-то странность.
Аноним 2021/09/22 05:45:43  №2163592 465
>>2163207
Да бекендер говорит что с одной страницы сложна реализовать принятие запросов, лучше разбить на страницы, вот и думаю что ему подсказать, что направить гуглить и не переделывать макет.
Ответы: >>2163729
Аноним 2021/09/22 09:05:46  №2163729 466
>>2163592
Это аутентификация или что? Там есть логин? Если у него уже есть аутентификация полностью готовая, то подстройся под неё. Он тебе должен сам сказать, что он считывает. Только скорее всего аутентификация работает через кукисы. Их можно так и оставить, но это угроза CSRF. Надо перекладывать из куки в localStorage и отправлять через хедер. Или ебаться с csrf-токенами.
Ответы: >>2163908 >>2165247
Аноним 2021/09/22 11:24:16  №2163908 467
15766038606290.jpg (78, 588x766)
766x588
>>2163729
В тч аутентификация. Куки все будут http, по идее. Он просто привык делать по ssr сайты в стиле 2007, а я еще фронт не прикручивал к чему-то отличному от ноды, поэтому у нас всплывают проблемы интеграции всякие вот сейчас.
Спасибо, в общем. Насчет localStorage нужно будет обсудить, но если хоть запросы по ajax осилим, то уже будет хорошо.
Ответы: >>2163938 >>2165055
Аноним 2021/09/22 12:02:43  №2163938 468
>>2163908
HTTP -- это и есть HTTP. На пхп можно сделать практически всё, что и на Ноде. В волшебной переменной $_SERVER есть все хедеры. Скорее всего пхп-шнику придётся наматывать на сессию хедеры через специальную либу/фреймворк какую-то.
Аноним 2021/09/23 13:08:10  №2165055 469
>>2163908
>делать по ssr сайты в стиле 2007
Ждун, твой любимый SPA в 2010 появился - не сильно моложе. И нечасто нужен.
Аноним 2021/09/23 17:23:24  №2165247 470
>>2163729
>Их можно так и оставить, но это угроза CSRF. Надо перекладывать из куки в localStorage и отправлять через хедер.
И чем это безопасности поможет? Я считал локалсторедж менее секюрной хуйней, куку можно сделать секюронли, хттп онли и т.д., а локалсторедж - решето
Ответы: >>2165289 >>2165291 >>2171058
Аноним 2021/09/23 18:31:59  №2165289 471
>>2165247
Потому что у разных техник есть внезапно преимущества и недостатки. localStorage и куки без httpOnly уязвимы к XSS, при условии, что XSS-атака была успешно совершена. А куки любые в принципе потенциально уязвимы к CSRF-атаке. Теоретически, если одновременно установлены оба флага httpOnly и SameSite=strict, то кука будет полностью защищена от CSRF. Наверное. Для вида атаки SameSite=strict обязателен. Но без него у тебя может перестать работать CORS, так что учитывай. С другой стороны, если у тебя XSS произошёл, то и без воровства кук злоумышленник всё равно устроит на сайте катастрофические проблемы, и потенциально всё равно легко украдёт акаунты другими способами.
Аноним 2021/09/23 18:34:26  №2165291 472
Аноним 2021/09/25 03:09:12  №2166419 473
scr.png (62, 288x161)
161x288
Задачу про студентов нужно на фреймфорке каком-то делать? Просто посмотрел решения и у многих через ларку
Ответы: >>2166586 >>2171058
Аноним 2021/09/25 08:36:00  №2166586 474
>>2166419
Голая пыха никому в хуй не уперлась, на ней делать только чтобы базу языка подтянуть. Намного быстрее и эффективней на фреймворках.
Ответы: >>2166587 >>2168778
Аноним 2021/09/25 08:38:03  №2166587 475
>>2166586
А я пишу пет проект на чистом
Ответы: >>2166589
Аноним 2021/09/25 08:41:07  №2166589 476
>>2166587
А смысл? Не хочешь тяжёлую ларку - возьми куски от symphony, собери что тебе нужно и пиши на них, все равно же придётся роутинг и реквесты/респонсы велосипедить. К чему страдания?
Ответы: >>2166590 >>2166591 >>2166615
Аноним 2021/09/25 08:42:26  №2166590 477
Ответы: >>2166871
Аноним 2021/09/25 08:43:15  №2166591 478
>>2166589
Так симфони сложнее
Аноним 2021/09/25 09:09:38  №2166615 479
>>2166589
>все равно же придётся роутинг и реквесты/респонсы велосипедить. К чему страдания?
Какие страдания? Это за день даже за половину делается если чистый пхп знаешь.
Ответы: >>2166672 >>2166871
Аноним 2021/09/25 09:43:08  №2166672 480
>>2166615
Ну так а велосипед-то писать зачем?
Ответы: >>2166787
Аноним 2021/09/25 11:53:00  №2166787 481
>>2166672
Новичку это нужно для понимания как оно работает на низком уровне. Те, кто начинает сразу с изучения фреймворков потом хуже понимают что делают.
Аноним 2021/09/25 12:27:55  №2166800 482
1.png (25, 781x405)
405x781
Это вообще используется? У меня даже не работает пример, видимо в open server по-умолчанию нет http-аутентификации.
Ответы: >>2167427
Аноним 2021/09/25 14:03:04  №2166871 483
>>2166590
Не поймёшь всё равно. Во-первых меня бесит, что говорит "чистая пыха". Пыха с фреймворком -- это не "изменённая модифицированная пыха." Либы не могут менять синтаксис. Пыха всегда "чистая". Ты должен учиться создавать функции и классы, дробить код на файлы и т.п. А ты хочешь просто сделать один файл и позырить на все суперглобальные переменные. Плюс ты не сможешь определить, какие паттерны подходят под задачу, и какие функции считаются устаревшими и плохими. Ты должен изучать хорошие практики программирования. И ты должен изучать особенности веб-приложений. Если не занимался веб-программирование раньше, то лучше начать всё-таки с фремворка и потом просто залесть внутрь него и там покапаться. И http и протоколы изучай.
>>2166615
Аутентификацию самостоятельно сделать без уязвимостей почти нереально, например, если ты уже не опытный спец.

В принцппе я думаю, что скорее всего надо учиться и так, и так. В принципе не настолько важно, в каком порядке. Мне в своё время больше всего понравился подход Майкла Хартла. Это была книга не пхп, а по Руби, но пофиг. Вот он сразу пошёл по фреймворку, но он расписывал все хорошие практики программирования.
Аноним 2021/09/25 14:48:55  №2166942 484
Как правильно классы используются? По канонам
Ответы: >>2166979 >>2167332 >>2171040
Аноним 2021/09/25 15:48:21  №2166979 485
>>2166942
Каноны меняются от года к году. Мнения разных программистов противоречивы. Реализации ООП и задачи различаются. Вопрос слишком сложный. Хороший ответ на Дваче ты не сможешь найти. Посмотри как внутрене используются фреймворке. Они частично навязывают тебе, как использовать классы. Потом начни читать Макконела Совершенный код и Мейера "Объекто-ориентированное конструирование ПО" или что-то типа.
Аноним 2021/09/26 08:39:03  №2167332 486
>>2166942
На основе класса создаётся объект. Объект это такая удобная переменная, которая не просто хранит какие-то данные, но и умеет с ними делать всякие полезные штуки.
По канонам как-то так.
Аноним 2021/09/26 11:08:13  №2167427 487
>>2166800
Пиздец, я без задней мысли просто переименовывал txt файлы блокнота в php, а там оказывается какие-то невидимые пробелы добавлялись(BOM), из-за которых header'ы не обновлялись, а я думал модуля не было http-аутентификации.
Только где эти переменные сервера устанавливать?
Ответы: >>2167487 >>2167563 >>2171040
Аноним 2021/09/26 12:00:20  №2167487 488
Ответы: >>2167532
Аноним 2021/09/26 12:44:08  №2167532 489
>>2167487
Нашел ошибку, слеши нужны прямые в пути к файлу пароля, а не обратные. А знаки переноса виндосовские все же.
Аноним 2021/09/26 13:09:20  №2167563 490
>>2167427
Установи xdebug и настрой его. И научись юзать дев-панель браузера и curl. Ты должен отлаживать всё сам.
Ответы: >>2167565
Аноним 2021/09/26 13:20:12  №2167565 491
>>2167563
>Ты должен отлаживать всё сам.
Начинающим это трудно понимается - что дебажить их писанину никому не интересно и в целом трудозатратно.
Ответы: >>2167763
Аноним 2021/09/26 14:51:15  №2167675 492
Аноны, вопрос вам наверняка покажется максимально тупым, но все же
Есть, например, у меня сервер с виртуал хостом типа testurl.test
я хочу, чтобы у меня по адресам page1.testurl.test и testurl.test/page2 открывались определенные страницы
Как это вообще делается? Как это называется? Подскажите хотя бы, что загуглить дебилу
Ответы: >>2168775 >>2171024
Аноним 2021/09/26 16:03:36  №2167763 493
>>2167565
Да. Самое главное -- отладка должна в первую очередь сокращать объем кода, в котором точно есть проблема. Локализация ошибки должна происходить. Начинающий фактически даёт слишком много информации о своей ошибке. Тут же и вёрстка, и клиентский код, и серверный, и база. Надо отследить, какие этапы отработали норм, а какие сломались. И искать ошибку уже в одном маленьком месте.
Ответы: >>2167874
Аноним 2021/09/26 18:14:48  №2167874 494
>>2167763
>Надо отследить, какие этапы отработали норм, а какие сломались.
Ага, по выложенному коду найти где там он обкакался. Т.е. никакой динамики и тестовых запусков - посмотри на картинку и скажи где я тут был не прав.
Ответы: >>2167938
Аноним 2021/09/26 19:25:40  №2167938 495
>>2167874
Нет, я говорю, что ему надо. Самому, вместо того, чтобы нам выкладывать.
Ответы: >>2168005
Аноним 2021/09/26 20:38:10  №2168005 496
>>2167938
Ну да - щас бы чужой код дебажить. За спасибо.
Вообще так по мне это самое нудное в программировании - дебаг.
Ответы: >>2168015
Аноним 2021/09/26 20:53:07  №2168015 497
>>2168005
Самое нудное в программировании -- это перестать пиздеть и начать разрабатывать работающие программы.
Ответы: >>2168051 >>2168054
Аноним 2021/09/26 21:15:01  №2168028 498
1420760494903.jpg (43, 640x640)
640x640
Ну что вы всполошились, анонасики, тред вроде для подобных вопросов и существует.
>Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Я и не делаю пока еще ничего чтобы это дебажить и искать ошибки логики, просто небольшие примеры где пока вон синтаксис/настройки сервера неправильные.
Ответы: >>2168052 >>2168065
Аноним 2021/09/26 21:47:08  №2168051 499
>>2168015
>начать разрабатывать работающие программы
Анус себе разработай, пёс.
Аноним 2021/09/26 21:48:12  №2168052 500
>>2168028
Сразу и синтаксис, и настройки сервера -- это сликшом большая область в каком-то смысле. Ты мог бы отдельно исследовать эти оба вопроса более минималистичными примерами.
Я знаю, что ты это не делаешь. Пора начинать. Тебе самому проще будет.
Аноним 2021/09/26 21:49:04  №2168054 501
>>2168015
>перестать пиздеть
>двач
Тогда на твои тупые вопросы совсем некому будет отвечать.
Постскриптум, такскать.
Ответы: >>2168090
Аноним 2021/09/26 21:58:01  №2168065 502
>>2168028
>синтаксис/настройки сервера неправильные
>переименовывал txt файлы блокнота в php
Тут ничего даже не посоветуешь толком. Рано ещё тебе вопросы задавать мне думается.
Попробуй себе окружение нормальное поднять что ли. Погугли как люди работают и что используют. Какой, в задницу, блокнот, алё?
Аноним 2021/09/26 22:37:08  №2168090 503
>>2168054
Я говорю к тому, что многие программисты много выдвигают всяких теорий, а потом многри из них не могут доказать на практике их работоспособность. И зачастую ещё и даже не хотят. Потому что баги фиксить не кайф, потому что отлаживать не интересно, потому что кодинг вообще не так интересен. Концепции на концепциях. Если менеджер приходит с задачей, которая не вписалась в концепцию, то концепция не виновата, а вот задача то сука плохая. Если медленно работает, то юзеры виноваты, нагрузили сервис, не могли сука потерпеть. Если баги, то ну и хуй с ними, концепкция есть, а баги не кайф фиксить, ну их нахуй. Если что-то не работает, то, значит, не не свезло, потомк ак-нить заработает. Но знать концепцию, даже не рабочую, всё равно сука надо. А писать работающий корректный код, нарушая при этом концепцию, -- ну это вообще удел быдла как бы. Если кто-то говорит, что концепция неудачно, то её просто не умеют готовить.
Ответы: >>2168236 >>2168772
Аноним 2021/09/27 07:58:15  №2168236 504
>>2168090
Вот тот случай когда пиздеть лучше не стоило. Что ты несёшь, пчел?
Ответы: >>2168772
Аноним 2021/09/27 21:14:16  №2168772 505
>>2168090
>>2168236
А в принципе он зачастую прав: неопытным разработчикам это свойственно.

Не надо всех под одну гребёнку, конечно
Аноним 2021/09/27 21:15:57  №2168775 506
>>2167675
тебе нужна функция роутера, которая будет принимать адрес, разбирать его, и на основе запрограммированных правил отдавать нужный контент
Аноним 2021/09/27 21:18:10  №2168778 507
>>2166586
это неправда, есть определённый слой байтоёбских контор (типа VK)
Ответы: >>2168784
Аноним 2021/09/27 21:27:52  №2168784 508
>>2168778
Туда же всевозможные биллинги, и многие сервисы в телеком-компаниях и финтехе.

Там и управление памятью на PHP, и прочие "радости", которые рядовой программер РНР не увидит за всю жизнь.

Их немного, но платят, кстати, отлично.
Ответы: >>2168786
Аноним 2021/09/27 21:36:34  №2168786 509
1.mp4 (783, 332x480)
480x332
>>2168784
Инсайд: во многих (далеко не всех) банках, кстати, фреймворки вообще запрещены из-за уязвимостей и зависимостей от постоянно компрометируемых компонентов.

Такие банки предпочитают нести затраты на разработчиков своих, но более безопасных "велосипедов", в которых не возникают 0-day уязвимости в рандомные моменты по всему интернету.
Ответы: >>2168788
Аноним 2021/09/27 21:38:50  №2168788 510
>>2168786
Разве пхп используется в банках?
Ответы: >>2168790 >>2168791
Аноним 2021/09/27 21:39:34  №2168790 511
>>2168788
а куда деваться

конечно
Ответы: >>2168791 >>2168792 >>2168793
Аноним 2021/09/27 21:40:05  №2168791 512
Ответы: >>2168793 >>2168796
Аноним 2021/09/27 21:40:29  №2168792 513
>>2168790
А Java для чего тогда и прочие сишарпы?
Ответы: >>2168796 >>2168796
Аноним 2021/09/27 21:42:03  №2168793 514
>>2168791
>>2168790
Без шуток? Есть случаи, когда пхп используется банками не только для заглавных страниц сайтов, но и для разных ответственных внутренних операций?
Ответы: >>2168796
Аноним 2021/09/27 21:45:07  №2168796 515
>>2168792
>>2168793
>>2168791
>>2168792
Как сказать... Java на своём месте.

А PHP проекты зачастую возникают как быстрые решения (в этом PHP нет равных) и постепенно прорастают в инфраструктуру

Например, написали 10-15-20 лет назад CRM или биллинг или телефонию на PHP -- что делать с такими программами? Работают отлично, новые функции оперативно впиливаются. Так и "едут" такие проги вместе с банком десятилетиями.

Да и что плохого, кроме, может, быть моды?
Ответы: >>2168797 >>2168802
Аноним 2021/09/27 21:48:34  №2168797 516
>>2168796
К каким книжкам (или не книжкам) можно приобщиться, чтобы быть способным ковырять такие серьёзные прожекты?
Ответы: >>2168802
Аноним 2021/09/27 21:56:50  №2168802 517
cyberkisa.mp4 (657, 320x400)
400x320
>>2168796
Я недавно работал в финтех-корпорации на проекте РНР.

Нас было 5 человек в команде, у нас было 2 проекта (платёжный биллинг и программа внутреннего учёта) и "ехал" этот отдел примерно за 1.5M₽/месяц ФОТ.

За неплохую зарплату меня выжимали как тряпочку, при помощи всех современных практик отчётности.

>>2168797
ИМХО, чтобы приобщиться к таким прожектам, надо в первую очередь культурно соответствовать запросам корпораций. Как и везде, негласно и неявно работает система свой-чужой.

А по книгам -- меня сейчас тут забросают камнями -- но https://fktpm.ru/file/84-soversennyi-kod.pdf , например.
Ответы: >>2168806
Аноним 2021/09/27 22:02:29  №2168806 518
>>2168802
Моё почтение, дяденька, вы похоже понимаете, о чём говорите.
Ответы: >>2168809
Аноним 2021/09/27 22:09:39  №2168809 519
>>2168806
Благодарю, сэр. Про "дяденьку" вы правильно угадали.
Ответы: >>2168812
Аноним 2021/09/27 22:19:58  №2168812 520
>>2168809
А это правда, что опыт в какай-то момент приобретает ту критическую массу, при которой конкретный язык отходит на второй план?
То есть в голове полностью сформирована картина того, что и как в итоге должно получиться, и сделать это можно на чём угодно, хоть на пхп, хоть на ноде, хоть на джаве, хоть на голанге?
Ответы: >>2168813 >>2168816
Аноним 2021/09/27 22:20:53  №2168813 521
Ответы: >>2168816
Аноним 2021/09/27 22:34:16  №2168816 522
large.jpg (161, 500x299)
299x500
>>2168812
>>2168813
И да, и нет. Я бы уточнил вопрос.

Теоретически -- однозначно да, язык отходит на второй план, т.к. методики и абстрактные конструкции проникают во все (многие) языки почти одновременно. Поэтому да, с опытом возникает понимание, как делаются вещи вне зависимости от языка программирования.

Практически -- почти однозначно нет, т.к. за каждым языком тянется инфраструктура, некоторые тонкости (окружение, менеджер пакетов, быстродействия, область эффективного применения, специфические ограничения) -- и у хорошего исполнителя всё это должно быстро "отскакивать от кончиков пальцев".
Аноним 2021/09/28 07:58:39  №2168908 523
16285246415270.jpg (44, 604x513)
513x604
>>2120804 (OP)
Аноны, из тех кто РАБотает, поясните какое у вас рабочее окружение на локальной машине? Я правильно понимаю, что все на линуксах сидят? Или есть те, кто на винде? Используете ли xampp, openserver или через вагрант, или docker? Как с mysql взаимодействуете - через phpmyadmin, workbench или еще как-то?
Аноним 2021/09/28 08:12:50  №2168920 524
>>2168908
Очевидная макось, докер. С майскл - через любой клиент бля, какой пхпмайадмин?
Аноним 2021/09/28 10:21:00  №2169009 525
>>2168908
Линукс, убунту, KDE. Хочу попробовать уйти на Дебиан на xfce, потому что кеды достали багами. Иногда docker, иногда просто. С базой через Phpstorm.
Аноним 2021/09/28 11:59:58  №2169091 526
>>2168908
Да у кого как.

Я долгое время просидел под виндой на XAMPP, потом на WSL/Debian.

Потом понадобился докер, но под виндой он сильно тормозит, и придётся снова ставить линукс.
Аноним 2021/09/28 16:15:38  №2169389 527
Анончик, как освоить ебучий Laravel? Вот все ок с функциональным стилем и ООП. Но сколько же говна напридумывали в этом фреймворке: фасады-хуяды, посредники-хуедники, миграции-эмиграции... голова лопается от этого дерьма. с чего начать, чтобы не задемотивироваться этим дерьмом? :(
Аноним 2021/09/28 16:24:33  №2169403 528
>>2169389
>с чего начать, чтобы не задемотивироваться этим дерьмом
Начни с документации. На самом деле Лара снаружи довольно простая и удобная. Почти CMS, но только для программиста, а не хуятора типовых сайтиков на шаблоне.
Всегда начинай с документации - сперва бегло ознакомься, а потом начинай свои пет-проекты хеллоуворлдить согласно туториалам.
Я вот люблю простой блог делать, с админкой и комментариями. Для ознакомления с новым фреймворком это хороший проект.
Аноним 2021/09/28 16:39:14  №2169426 529
! Кто работал с Drupal?
Как оно? Какие основные отличия от Symfony?
Ответы: >>2169441 >>2171011
Аноним 2021/09/28 17:00:48  №2169440 530
>>2169389
Просто пойми, что в других технологиях и фреймворках тебя ждёт то же самое. Без миграций веб-приложения никто не делает за пределами CMS. А фасады были описаны для С++ в начале 00-х. Так что осваивать Ларавель надо точно так же, как и всё остальное.
Аноним 2021/09/28 17:01:43  №2169441 531
>>2169426
Drupal -- это CMS. Это абсолютно другое. Это больше для типа просто сайтов. Меньше кодинга и больше конфигурации.
Ответы: >>2169510
Аноним 2021/09/28 17:15:28  №2169452 532
Каково применение статических методов?
Ответы: >>2171006
Аноним 2021/09/28 17:36:00  №2169459 533
Двоч при работе с базой данных mysql и каким-нибудь объектом. Допустим класс человек, его имя, рост, вес, пол. Как правильнее - в геттерах и сеттерах получать и отправлять данные в бд или делать отдельной функцией получение данных из бд и внесение, а уж из функции запускать геттеры и сеттеры?
Аноним 2021/09/28 17:51:33  №2169465 534
>>2169459
>в геттерах и сеттерах получать и отправлять данные в бд
Получается запрос к бд на каждый пук и кек над моделью? А если у тебя этих моделей пару десятков тысяч крутится в рантайме?

>делать отдельной функцией получение данных из бд и внесение
Это.
Ответы: >>2169481
Аноним 2021/09/28 17:59:14  №2169471 535
>>2169459
Как я понимаю ты с ActiveRecord сразу начал. Попробуй сперва TableDataGateway паттерн использовать - хотя бы поймёшь как с базой надо общаться.
Ответы: >>2169481
Аноним 2021/09/28 18:08:53  №2169481 536
Аноним 2021/09/28 18:50:20  №2169510 537
Ответы: >>2170058
Аноним 2021/09/28 19:45:30  №2169559 538
>>2169459
Везде по-разному. Есть паттерны ActiveRecord и DataMapper. Почитай, как сделано в существующих фреймворках в их собственных доках. Вот честно, я думаю, что без опыта ты не сможешь сделать всё идеально. Ну возможно сделаешь неплохо или нормально. На самом деле даже в этих фреймворках хоть это и работает для многих примеров, но иногда ООП в базах данных работает плохо, и приходится его покидать. В высоконагруженных проектах минимум часть взаимодействия с дб написано на голом или почти голом SQL, ну естественно с соответствующей защитой от SQL-инъекций. Есть такое понятие как "объектно-реляционное несоответствие". Реляционные таблицы плохо ложатся на объекты. Там всегда сложности. Есть вроде у Фаулера обзор обоих этих паттернов. ActiveRecord неплохо реализован Yii2, а DataMapper вроде реализован в Doctrine ORM.

У Роберта Мартина в clean code кое-где высказывается мнение, что объекты со своим поведением и объекты как структуры данных с полями -- это всё-таки разные вещи. Мне нравится эта идея и исходя из неё объектам, которы представляют таблицы дб, геттеры и сеттеры нафиг не нужны. Нужны только методы для работы с дб, типа сохранить или найти. Либо в самом объекте(ActiveRecord), либо в дополнительных объектах(DataMapper). Слои абстракции с логикой уже анкидываются где-то сверху, возможно в других объектах на уровень выше. Если это обосновано и удобно в целом.
Аноним 2021/09/29 10:08:38  №2169931 539
Надо ли реализовывать csrf защиту, если у меня уже указан Access-Control-Allow-Origin: https://мойсайт?
Сайт обрабатывает только POST запросы
Ответы: >>2170984
Аноним 2021/09/29 12:40:34  №2170058 540
>>2169510
Нет Только читал по нему доку когда-то.
Аноним 2021/09/29 17:32:59  №2170266 541
>>2169389
Laravel то фреймворк для даунов. В том смысле, что он очень простой и своей простотой поощряет писать говно. Пишу на нём год, нечеловеческие усилия прилагаю, чтобы писать всё нормально. Второй параллельно проект на Симфони и вроде всё очень похоже, вроде нет проблем с пониманием как что-то и там и там сделать, но переходы всегда такие тяжёлые, я ебу. На Лару как раз вкатывался, было тяжело с пониманием всей хуйни, благо дока охуенная была и ответов в тырнете много. А вот через полгода столкнулся с Симфони и тут говна поел знатно, порог вхождения блять на порядки выше, даже с учётом, что в Ларе половина компонентов оттуда, дока говна ебаного, нихуя не понятно. Если знаешь ООП, то может Симфони больше подойдёт, там написано без говняка(в плане кода) хотя бы. В плане видосов есть канал Дмитрия Афанасьева, в своё время очень нравилось, прямо заебумба. И самый очевидный совет: забей хуй на фасады. Просто забудь, что они существуют, пока ты не понимаешь почему на них срут в интеренет, но в момент осознания может быть уже поздно. Поставь Brave браузер и удали этот кусок css'а со страницы документации.
Аноним 2021/09/29 18:55:19  №2170315 542
Аноним 2021/09/29 18:56:09  №2170317 543
>>2121098
Полно новых проектов на симфони/ларе
Аноним 2021/09/29 19:14:18  №2170335 544
>>2121098
А новые на чем пилят то? Вообще такое ошчушчение, что так говорят про все языки возвраста Пыхи и старше. Но по факту более новые языки растут разочаровывающе вяло. Иногда попадаешь на работу, а там оказывается, что тимлиды и CTO косонько смотрят на все твои типа "новые" Го, Ноды и Свифты. Многие программисты продолжают считать новыми и пугающе непонятными все языки и технологии новее 2003 года. И такие челы зачастую принимают много решений, реально влияющих на рынок. Часто вообще попадаются пыхеры, которые, как будто с 2007 с места не сдвинулись.
,
Ответы: >>2170418 >>2170978
Аноним 2021/09/29 21:47:50  №2170418 545
>>2170335
>тимлиды и CTO косонько смотрят на все твои типа "новые" Го, Ноды и Свифты
Ну так никто не хочет превращать проект в зоопарк языков и технологий. Где потом людей на него искать? Если есть возможность сделать на основном языке, то нафиг не нужны Го, Ноды и Свифты, а с этим у ПХП вполне норм - у него очень много библиотек.
Ответы: >>2170444
Аноним 2021/09/30 00:16:39  №2170444 546
>>2170418
Товарищ говорит, что большая часть пыхи -- легаси. Я спрашваю -- если это так, то на чём НЕ легаси тогда?
Ответы: >>2170559
Аноним 2021/09/30 07:57:53  №2170559 547
>>2170444
На том, чему меньше двух часов
Аноним 2021/09/30 08:01:44  №2170560 548
16302405498290.png (263, 432x477)
477x432
Запилите уже в шапке как пыху устанавливать, заебало каждый раз лезть в гугол и искать инфу где и как его прописывать
Ответы: >>2170593 >>2170965
Аноним 2021/09/30 09:01:47  №2170593 549
>>2170560
Шапку читай - там есть всё нужное, вкатун.
Аноним 2021/09/30 16:38:59  №2170965 550
>>2170560

Описание, правда немного устаревшее, есть тут: https://github.com/codedokode/pasta/blob/master/soft/php-install.md

Скачать версию для WIndows можно тут: https://windows.php.net/download#php-8.0

Там ты заметишь что есть несколько разных сборок с загадочными названиями вроде "VS16 x64 Non Thread Safe". Вот как они расшифровываются:

VS16 = Visual Studio 16 - это версия компилятора, которым была собрана сборка. Ее надо запомнить. Если ты будешь позже скачивать расширения к PHP, а также Апача, то надо использовать собранную таким же компилятором (VS16) версию. Иначе может не заработать. Если ты не планируешь ставить расширения и Апач, то можно не запоминать.

x64 = 64-битная версия, x86 - 32-битная. Если у тебя 64-битная ОС, выбирай 64-битную версию. Расширения PHP и Апач должны быть такой же битности, так что запомни, какую версию выбрал.

Non Thread Safe/Threas Safe - поддержка многопоточности. Надо выбирать версию с поддержкой многопоточности (Thread Safe), иначе могут быть проблемы при запуске PHP из-под Апача.

Далее, папку с PHP хорошо бы прописать в PATH и перезагрузить компьютер. Это описано тут: https://apache-windows.ru/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BF%D1%83%D1%82%D1%8C-%D0%B4%D0%BE-php-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%BE%D0%BA%D1%80/

Далее, у тебя могут возникнуть сложности при работе с командной строкой. Прочти этот урок, чтобы их решить: https://github.com/codedokode/pasta/blob/master/soft/cli.md


Аноним 2021/09/30 16:52:39  №2170978 551
>>2170335

Разные языки предназначены для разных задач и у них свои плюсы и минусы. Ну, например, Свифт придуман для написания GUI программ под iOS, и вряд ли кто-то будет на нем делать веб-сервис.

Что касается сравнения Ноды и Го, я не вижу тут особых плюсов у Ноды. Разве что, возможно, у нее больше пакетов для разных целей в экосистеме. Нода вообще, по моему, плохо подходит для написания бизнес-логики, так как в ней все асинхронное и у тебя код будет наполовину состоять из async/await.

Можешь посмотреть Го и попробовать на нем что-нибудь написать. Потом можешь отписаться тут, чем он лучше или хуже PHP.

Приведу пару моментов, где PHP удобнее. Ну например, в PHP добавление в массив числа пишется короче:

$array = [];
$array[] = 10;

А в Го длиннее:

var array []int
array = append(array, 10)

Или в PHP ты можешь легко создавать массивы на ходу:

$city = ['name' => "Москва", population => 10_000_000];

А в Го ты в такой ситуации должен будешь сначала объявить тип. Это можно считать как плюсом, так и минусом, смотря с какой стороны смотреть.

Если ты хочешь язык, где надо меньше писать кода, то лучше подойдет не Го, а Питон. Но он медленный в работе, зато быстрый в написании кода.
Ответы: >>2171208
Аноним 2021/09/30 17:08:40  №2170984 552
>>2169931

Надо. Access-Control-Allow-Origin говорит, можно ли отдавать ответ с твоего сайта скрипту на другом сайте. Но он не запрещает отправлять запросы с другого сайта на твой. То есть, ты можешь запретить только показывать результат запроса, но не можешь предотвратить его отправку. Этот заголовок введен не для включения защиты от CSRF, а наоборот, для отключения защиты.

Ну сам подумай: чтобы увидеть этот заголовок, браузер сначала должен отправить запрос на твой сервер.

Например, можно сделать страницу с формой с method='POST' и яваскриптом отправить эту форму на твой сайт и она успешно отправится.

Почему так неудачно сделано? Из-за совместимости. Так как раньше сайты могли отправлять запросы друг другу, то решили это не ломать и оставить такую возможность. Лучше бы, конечно, было бы с самого начала либо запретить такие трюки, либо использовать какой-то отдельный вид запроса для межсайтовых запросов.

Если ты хочешь радикальное решение проблемы CSRF, то откажись от авторизации через куки. Вместо кук отправляй авторизационный токен с каждым POST-запросом либо в теле запроса либо в заголовках. Тогда CSRF будет тебе не страшен.

CSRF возникает именно из-за того, что при отправке POST-запроса вместе с ним автоматически шлются куки и для сервера это выглядит, как будто это легитимный пользователь отправил запрос.

Еще один вариант решения - проверять заголовок Origin ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin ). Если вдруг запрос пришел без Origin, надо отвергать такой запрос. Это значит, старые браузеры без Origin не будут поддерживаться.

Еще один вариант борьбы - это атрибут SameSite=strict у кук ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite ). Он говорит, что куки не надо отправлять, если запрос к тебе отправлен с другого сайта. Минус - при переходе на твой сайт с другого пользователь оказывается разлогиненным, так как куки не отправляются и только при следующем переходе куки будут отправлены. Это не очень удобно на практике.
Аноним 2021/09/30 17:34:16  №2171006 553
>>2169459

Ты можешь почитать в уроке обзор подходов для работы с БД с помощью ООП: https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md

В сеттерах и геттерах не пишут запросы, так как это неэффективно: на каждый вызов будут отправляться запросы к базе.

>>2169452

1) Их применяют там, где не нужна привязка к объекту. То есть это функции, которым не нужен экземпляр объекта. Например: функция, считающая число дней между двумя датами. Ей не нужен $this, она не привязана ни к каким объектам, потому она статическая.

Паттерн Utility Class - это сборник таких статических функций. Например, класс TimeUtility может содержать функции для работы с датой/временем, ArrayUtility - для работы с массивами.

Тут можно заметить, что такую функцию логичнее вообще было бы не помещать в класс, а сделать обычной функцией. Да, логичнее. Но в Яве нельзя писать функции вне классов, потому там придумали такой паттерн. А в PHP можно, но нет автозагрузки для функций, потому мы используем такой паттерн. Но ты все равно можешь сделать файл functions.php, подключить его в композере и класть функции туда.

2) Для статических конструкторов. Иногда есть несколько способов создать объект с указанием разных параметров. И мы хотим иметь несколько конструкторов для объекта. Тогда мы можем реализовать их в виде статических методов.

Аноним 2021/09/30 17:40:30  №2171011 554
>>2169426

Симфони это фреймворк. Ты пишешь код сайта сам. Drupal это конструктор. Ты просто настраиваешь параметры сайта через админку, а пишешь только шаблоны страниц и модули, если какой-то функционал нельзя сделать стандартными средствами.

>>2169389

Миграции придумали не в Ларавель. Они нужны, чтобы документировать изменения в базе данных через код. Представь, как плохо было бы без миграций. Ты решил добавить таблицу. Ты ее сначала руками добавляешь у себя, тестируешь. Затем идешь на продакшен и повторяя те же действия, добавляешь таблицу там. Затем выгружаешь код, затем сообщаешь своим коллегам, чтобы они тоже вручную добавили у себя эту таблицу. Какой смысл в совершении однообразных действий? А если тебе надо не одну, а 10 таблиц добавить?

Мне кажется, у тебя сложности не из-за Ларавеля, а из-за того что ты не знаком с правильной веб-разработкой.

Аноним 2021/09/30 17:43:00  №2171015 555
Laravel это тот же самый PHP (+ небольшая надстройка над ним) или нечто фундаментально другое?
Аноним 2021/09/30 17:52:07  №2171024 556
>>2167675

Что ты хочешь сделать? И какой сервер ты используешь?

Если два независимых виртуальных хоста, на каждом из которых свой независимый код, то тебе надо сделать в Апаче 2 виртуальных хоста и 2 папки для них, а в случае с nginx/php-fpm - надо сделать 2 конфигурации и опять же, 2 папки для PHP кода.

Если же ты хочешь, чтобы у тебя был единый PHP код, и к нему поступали запросы для обоих хостов, то тебе нужно сделать один виртуальный хост в Апаче с Servername testurl.test, но прописать к нему Serveralias page1.testurl.test или даже Serveralias ★.testurl.test. В Nginx аналогично, настраиваем конфигурацию для всех поддоменов.

В случае с Апачем, документация по виртуальным хостам (англ) тут: https://httpd.apache.org/docs/2.4/vhosts/name-based.html
Аноним 2021/09/30 18:08:19  №2171040 557
>>2167427

Переменные $_SERVER тебе задавать не надо. Их задает веб-сервер и PHP при поступлении запроса. Тебе надо только проверять их содержимое.

Ты можешь увидеть содержимое $_SERVER, сделав var_dump($_SERVER);

Для редактирования кода лучше взять бесплатный Notepad++ или пробную версию Sublime Text или бесплатный VS Code.

>>2166942

Если ты пробовал писать что-то сложнее скрипта на 100 строчек, то ты наверно замечал, что у нас часто встречаются сущности, у которых есть свойства и действия над ними. Например, если ты пишешь магазин, то у тебя будет сущность "товар", у которого есть свойства: название, фото, цена, скидка, вес. И над которым можно делать действия: создать, выставить в продажу, снять с продажи, поменять количество. Аналогично, в магазине будут другие сущности вроде "покупатель", "заказ", "категория товара".

Для работы с такими сущностями удобно использовать классы. Мы описываем с помощью класса, какие есть свойства у сущности и добавляем функции (методы) для совершения операций над ними. После этого мы можем создавать объекты этих классов и работать с ними.

Далее, мы можем заметить, что у нас есть действия, которые вроде бы относятся по смыслу к сущности, но которые нельзя поместить в ее класс. Например, загрузка товара из базы данных: мы не можем поместить ее в класс товара, так как объект товара не существует до загрузки. Да и нехорошо, все складывать в один огромный класс. Такие функции удобно собрать вместе в класс "сохранятель товаров". Аналогично, мы можешь сделать класс вроде "оформитель заказов", "регистратор пользователей", "управлятель заказами" и так далее. Эти классы не соответствуют какой-то сущности, и у них нет свойств, и они содержат лишь наборы действий.

Постепенно мы весь код программы разложим по классам. Это и будет "каноничное" использование классов.

Если ты хочешь изучить ООП, то открой учебник их первого поста треда и прочитай там главу про ООП. Если что-то непонятно, спрашивай. Желательно на конкретном примере (то есть, что ты хочешь сделать с помощью ООП).
Ответы: >>2171067 >>2171174
Аноним 2021/09/30 18:24:37  №2171058 558
>>2166419

Реальные приложения пишут на фреймворках - либо на готовых, либо на разработанных внутри компании. Но прежде чем браться за фреймворки, надо изучить основы. Потому задачу про студентов лучше сделать без использования фреймворков, а после нее браться за них.

Если ты возьмешься сразу за фреймворки, то тебе будет очень трудно разобраться из-за незнания основ. Задача про студентов как раз и позволяет изучить основы.

>>2165247

Теоретически, если злоумышленник не может внедрить код на твой сайт (XSS), то хранить авторизационные данные в localStorage безопаснее, так как они не добавляются в запрос автоматически, в отличие от кук, что исключает CSRF.

Если же у злоумышленника есть возможность внедрять скрипты, то хоть куки ты используй, хоть localStorage - он сможет отправлять поддельные запросы от имени пользователя.

Получается, localStorage безопаснее.
Аноним 2021/09/30 18:36:55  №2171067 559
1.png (99, 1001x883)
883x1001
>>2171040
Да я в принципе понял идею, но в книжке что-то дичь с этими примерами аутентификации, там дальше левая бд создается, и типа пары логин пароль будто бы будут подходить, хотя пароли хранятся в другом текстовом файле .htpasswd, который про эту бд и не знает.
Автору следовало просто наверное инпут поля формы сделать и все.
Ответы: >>2171127
Аноним 2021/09/30 18:56:12  №2171082 560
>>2163327

Ты не очень ясно описал, что ты делаешь, потому я предположу, что задача выглядит так: ты на клиенте хочешь по нажатию кнопки (или какому-то еще событию) отправить запрос на сервер, и после получения ответа обновить информацию на странице.

Хороший вариант тут - отправить запрос на сервер, тот возвращает кусок HTML кода и этот кусок просто вставляется в текущий документ (без создания новых). Например, так:

// допустим, с сервера пришел HTML код в переменной html
document.getElementById('result').innerHTML = html;

Если ты хочешь формировать страницу на стороне сервера, то использовать DOMDocument не лучшая идея. Так как тебе придется писать очень много лишнего кода. Лучше использовать шаблонизацию, как описано тут: https://github.com/codedokode/pasta/blob/master/php/templates.md

То есть, ты заранее делаешь шаблон и потом просто подставляешь в него данные. Есть хороший и удобный шаблонизатор Twig.

Если же ты хочешь перенести шаблонизацию на клиент, то в общем случае это усложняет код и утяжеляет фронтенд. Теперь пользователь должен будет загрузить на клиент шаблонизатор, шаблоны. Шаблонизацию на клиенте имеет смысл делать, если у тебя сложная логика на клиенте и ты обрабатываешь и преобразуешь там данные. Если тебе просто надо что-то отобразить, то проще получать с сервера кусок HTML и вставлять в нужное место страницы.
Аноним 2021/09/30 19:08:02  №2171089 561
>>2163297

Это плохой код, и плохая книга, если в ней такому учат. Параметры в запрос надо подставлять через плейсхолдеры и подготовленные запросы (пример для mysqli: https://www.php.net/manual/ru/mysqli.quickstart.prepared-statements.php ). Тогда данные автоматически экранируются как надо.

Если тебе хочется экранировать данные вручную, то надо это делать непосредственно перед запросом (а не в функции get_post).

Экранировать данные в момент их получения из $_POST неправильно. Потому что в большой программе место, где данные экранируются, будет расположено далеко от места, где они подставляются в запрос и очень сложно и долго проверить, что все данные экранированы (для этого тебе придется отследить их путь по всему коду). Данные нужно экранировать там, где они используются. Плейсхолдеры как раз решают эту проблему.

Также, тут неправильно обрабатываются ошибки. Они выводятся на экран. Это значит, что если произойдет ошибка, то пользователь ее увидит и ничего не поймет, а администратор сайта о ней не узнает. Ошибки надо писать в логи. Проще всего включить режим выброса исключений в mysqli ( функцией https://www.php.net/manual/ru/mysqli-driver.report-mode.php с параметрами MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT). Тогда локально ошибки будут выводиться на жкран, а на продакшене - писаться в логи.
Ответы: >>2171174
Аноним 2021/09/30 19:15:40  №2171097 562
>>2163287

Ошибка где-то в другом месте. real_escape_string может превратить данные в пустую строку только если в них содержится совсем уж мусор (что маловероятно). Потому сдампь содержимое POST с помощью var_dump($_POST); и сдампь что получается после real_escape_string.

>>2162318

Да.

>>2161979

Нужна очередь задач, а не костыли.

>>2161891

Наверно, нужны обработчики запросов, которые отправляются из этих модальных окон.

>>2161496

Только если у тебя есть готовые наработки и ты способен быстрее других писать парсеры, обходить капчи, блокировки итд. Так как скрейпинг довольно простая задача, там высокая конкуренция и низкая оплата.
Ответы: >>2171174
Аноним 2021/09/30 19:29:57  №2171121 563
>>2161470

Мы используем шаблоны https://github.com/codedokode/pasta/blob/master/php/templates.md

>>2159811

Потому что браузер не обрабатывает ответ на аякс-запрос. Если ты отправил запрос аяксом, то ты сам должен яваскриптом обработать ответ на него. Браузер за тебя это не сделает.

>>2155161

Это и есть юзерфрендли, просто оно юзерфрендли для админов, а не для домохозяек. Тебе кажется, что если бы вместо текстового файла было окошко с настройками, то было бы проще? Но это не так.

Начнем с того, что настроек очень много - сотни. И у тебя будет не просто окошко, а окошко из 20 разных страниц с десятками опций на каждой. И хорошо, если к нему прикрутят поиск по имени, а если нет - то ищи нужную настройку. И точно так же тебе надо будет разбираться, какая настройка за что отвечает.

То есть, надо много трудозатрат, чтобы сделать такое окошко, а пользы от него будет мало.

А смотри, какие плюсы есть у текстового файла:

- в нем есть поиск по имени
- его можно обрабатывать программами, например, можно пропустить его через фильтр и увидеть только настройки с определенным словом в названии
- его легко сохранить, забекапить, восстановить из бекапа, объединить с другим файлом
- его можно обновлять или генерировать программно

То есть, возможностей текстовый конфиг дает намного больше, чем окошко с галочками.
Ответы: >>2171174
Аноним 2021/09/30 19:36:21  №2171127 564
>>2171067

Это ты напутал.

HTTP-авторизацию можно проверять в двух местах - на уровне веб-сервера (apache или nginx) или на уровне PHP. В первом случае при запросе без правильного пароля сервер его отвергает и PHP даже не вызывается. Во втором случае веб-сервер на пароль не смотрит и передает все запросы в PHP.

Обычно проверку на уровне веб-сервера делают, чтобы ограничить доступ к сайту целиком для небольшой группы людей. Например, это какой-то сайт, доступ к которому есть только у сотрудников компании. Без знания пароля невозможно зайти ни на одну страницу.

Файл htpasswd используется именно в такой ситуации, если ты хочешь делать проверку на уровне Апача. В твоем же примере на скриншоте проверка делается в PHP, и в этом случае не нужен файл htpasswd и не нужно ничего настраивать в веб-сервере.

Если ты хочешь сделать что-то похожее на обычную регистрацию, то лучше не использовать HTTP-авторизацию, а использовать авторизацию на основе секрета в куках. Потому что куками легко управлять: поставить куки, очистить куки. А HTTP-авторизацией управлять неудобно, например, нет простого способа "разлогинить" пользователя.
Ответы: >>2171174
Аноним 2021/09/30 20:19:54  №2171174 565
>>2171040
Да я понял в общих чертах про переменные сервера уже, vscode установил как выше советовали и Notepad++ для удаления BOM'ов (может и вскод умеет, но я не нашел).
>>2171089
Ну он говорит в книге дальше, что лучше через подстановку prepare делать, там постепенно как бы примеры идут.
>>2171097
Ничего вообще не менял, только добавил дамп этих только переменных, все работает как надо. Чертовщина какая-то, может опять из-за каких-нибудь BOMов пусто было.
>>2171121
Еще не дошел в книге про это, возможно там вообще нет про это, отдельно тогда поищу.
>>2171127
Да, точно. Из-за BOM'а в подключаемом файле не работали хедеры http 401, а я думал что-то из-за модуля апача. Нельзя быть самоуверенным, особенно новичку.
Спасибо за подробные ответы, вот уж не лень писать действительно!
Ответы: >>2171733
Аноним 2021/09/30 21:22:26  №2171208 566
>>2170978
Ну собственно вот отличный пример, почему к пхп макакам относятся как к конченному быдлу и непрофессионалам.

Есть мир белых людей, в котором везде, от джаваскрипта и питона до котлина и раста, используют структуры данных и знают чем они отличаются. Что такое массив, список, стек и мапа, когда что из этого нужно применять, какие у них плюсы и минусы.

А есть мир уебанов, в котором какой-то долбоеб в далеком 1995 году решил, что простому Джону нахуй не надо знать все эти структуры данных. Программирование шмаграммирование, мы тут персональные странички делаем в сети интернет. И назвал хеш мапу ебать массивом, ну чисто по приколу.

И вот, 26 лет спустя, какой-то вырожденец на каменном ебале сравнивает массив и хеш мапу. И пердит про "удобно" "не удобно".
Ответы: >>2171237 >>2171303 >>2171733
Аноним 2021/10/01 01:25:34  №2171237 567
>>2171208
> И назвал хеш мапу ебать массивом, ну чисто по приколу.
Есть термин ассоциативный массив. Отсюда это и пошло. Если ты такой умный, то дай определение массива из какого-нибудь более или менее серьёзного источника. "массив -- это вот так и вот так", потому что такая терминология в библиотеке твоего любимого ЯП, -- это не аргумент. Терминология от технологии к технологии постоянно меняется. Про джаваскрипт вообще смешно даже. Массив в PHP -- это очень хитрая структура, которую так просто не опишешь. Технически под капотом она реально может эффективно функционировать и как хеш-мап, и как индексированная последовательность.

Вообще очень смешно, что чел ебался писать эти километры объяснений для нубов, а какой-то орущий сноб под конец решил, что может просто так снисхуя унизить его. Вот так помогай новичкам.

Я воспринимаю программирование как работу, а не как способ возвыситься в узком кругу ценителей. Поэтому учу только скучные технологии строго под задачи и рынок. Даже если в пхп будут все эти крутые структуры, то код с ними будет менее понятен и дороже в поддержке. Не только потому, что пхпшники их не знают. Это лишний бойлерплейт и лишнее думанье. Структуры в этих языках намеренно упрощены, а алгоритмы прячутся под капот, чтобы разработка была эффективнее. Я всегда думаю про цену поддержки, надёжность и отказоустойчивость, а не тупо накидать, чтобы было круто. Ты не студент случайно? Мне кажется, что эту еботерию про охуеть интеллектуальные алгоритмы и байты уровня первокурсоты какого-нибудь матфака Урюпинска пишут именно студенты, возможно преподы или научные работники, которые редко пишут больше 1000 строк в одном проекте. Как много ты писал бенчмарков, которые на реальных задачах могут продемонстрировать реальный прирост производительности твоих эффективных "стеков на векторе"? Не задачах с олимпиад, а реальных задачах бизнеса. Сколько строк было в максимально большом проекте? А сколько максимально людей было у тебя в команде?

Фанаты Хаскеля, Раста и других неебаться крутых языков вообще всё время пишут в интернете про то, какие популярные мейнстримовые языки говно. Какого говно жс, пхп, с++, джава. Но рынок и технологии продолжают крутиться вокруг них, а не вокруг любимых всеми Растов и Хаскелей.
Ответы: >>2171246
Аноним 2021/10/01 03:22:23  №2171246 568
>>2171237
>Терминология от технологии к технологии постоянно меняется
Не позорься, просто погугли пару минут и поймешь какую хуйню ты сморозил.

>Массив в PHP -- это очень хитрая структура, которую так просто не опишешь
Это хеш мапа. Все структуры данных в пхп это хеш мапы. И объекты и массивы и небо и аллах.

>Вообще очень смешно, что чел ебался писать эти километры объяснений для нубов
Именно это и нужно знать нубам. Пхп программист это белая ворона, паршивая овца. У него пробелы в фундаментальных знаниях. Сам факт того что ты буквально первый шаг в обучении программированию превозносишь как какой-то невероятный элитизм об этом просто кричит. Эта хуйня идет сразу после "научиться писоть". Буквально: "почитать синтаксис", "написать хеллуворлд", "прочитать про структуры данных".

>Я воспринимаю программирование как работу, а не как способ возвыситься в узком кругу ценителей
В этом и проблема языка. Банальные вещи, которые знает каждый джун превращаются в "способ возвыситься".

Дальше какой-то поток сознания про цену и надежность, хуй знает как ты это все измеряешь офк никак, просто надо пиздануть.

Новичку из твоей стены текста нужно знать вот это: "Поэтому учу только скучные технологии строго под задачи и рынок". Ты сам не понимаешь что это приговор? Человек, который пишет на ссаном го имеет возможность пощупать любой свежий или несвежий яп. Потому что принципы у них будут общие. Термины одинаковые. И начать писать это дело банальной привычки. Для таких людей выбор языка для проекта это действительно выбор инструмента.

А пхп макаке либо нужно самостоятельно дрочить computer science, потому что в повседневной работе он с этим просто не сталкивается. И становиться "элитой". Только это не элитизм, а обычное положение вещей для нормальных языков. Либо шипеть "нинужно" и какие-нибудь мантры про понятный простой и надежный бойлерплейт, в стиле твоего поста.
Ответы: >>2171512 >>2171563
Аноним 2021/10/01 06:42:44  №2171303 569
>>2171208
>относятся как к конченному быдлу и непрофессионалам
Это проблемы быдла и непрфессионалов вроде тебя.
Аноним 2021/10/01 07:19:40  №2171331 570
Допустим делаю форму регистрации, при регистрации новый пароль вводится 2 раза, есть ли разница с точки зрения безопасности, сравнивать пароли тупо в текстовом в формате или их тоже лучше предварительно захешировать?
Ответы: >>2171739
Аноним 2021/10/01 09:04:38  №2171417 571
Сделал класс условного человека и его редактирования, а если я хочу сделать функции по типу сколько всего человек в базе, сколько из них храмые, то эти функции необходимо уже размещать в другом классе или в этом же? Или лучше не в классе, а сразу сделать эти функции в месте, где мне эти данные понадобятся?
Ответы: >>2171426 >>2171739
Аноним 2021/10/01 09:21:10  №2171426 572
>>2171417
>а если я хочу сделать функции по типу сколько всего человек в базе, сколько из них храмые, то эти функции необходимо уже размещать в другом классе

Да, но вообще мне кажется что ты без определенных юзкейсов не поймешь почему тот или другой подход лучше или хуже. Попробуй придумать абсолютно разные задачи, которые работают с твоими людьми, сделай например какой-то демографический сервис, который считает людей по годам или городам, сделай какой-то налоговый сервис, который считает людей по зп или пенсии, то есть чтобы у тебя разные модули общались с каким-то общим классом. Мне кажется что так у тебя быстрее выработается картина, что и на какие слои удобнее делить.
Аноним 2021/10/01 11:23:17  №2171512 573
>>2171246
>Не позорься, просто погугли пару минут и поймешь какую хуйню ты сморозил.
Ты только снимаешь с себя необходимость что-то доказывать этими словами.

Может быть, ты этого не понимаешь, но я хоть и не учёный по теме CS и не плюсовик, но знаю эти базовые структуры данных типа стеков/очередей/деков, умею наивным универовским способом реализовать связный список на указателях или кучу на массиве. Я знаю в целом, как рабоатет С и С++ и что такое стек вызовов и куча в памяти, и как работает планеровщик процессов в ОС. И я пробовал писать на Хаскеле и знаю, что такое монады. Но пишу всё равно на пыхе и жиесе. Для меня в основном выбора языка под задачи то и не существует. Язык выбирает начальник, который за это платит. Потому что "а где мы найдём других таких как ты потом" и "мы не хотим зоопарк языков".

>Человек, который пишет на ссаном го имеет возможность пощупать любой свежий или несвежий яп. Потому что принципы у них будут общие.
Ты же в курсе, что в Го нет исключений и дженериков, кстати? Создатели языка тоже шли по пути упрощения, только упрощали другие моменты.

>А пхп макаке либо нужно самостоятельно дрочить computer science, потому что в повседневной работе он с этим просто не сталкивается.
Слабо представляю, как может быть иначе. CS требует подготовки.
Ответы: >>2171718
Аноним 2021/10/01 12:22:04  №2171563 574
>>2171246
>Это хеш мапа
Не совсем просто хеш мапа. Во-первых это упорядоченная хеш-мапа. Т.е. она помнит порядок пар ключ-значение. И там есть указатели на следующий/предыдущий элмент как в linked list. Так что фактически это упорядоченный хеш-мап, совмещённый со связным списоком.
Аноним 2021/10/01 15:29:51  №2171718 575
>>2171512
>Ты только снимаешь с себя необходимость что-то доказывать этими словами.
Доказывать что свзязный список это связный список, а массив это массив? Мне это не надо, спасибо.

>Для меня в основном выбора языка под задачи то и не существует. Язык выбирает начальник, который за это платит.
Я об этом и говорю. Выбора у тебя никакого нет. На работе мнения макаки формошлепа по выбору языка никто спрашивать не будет. А при смене работы придется отказаться от от специфическогго пхп опыта и по сути начать вкат сначала.

И эта проблема специфична именно для пхп. Потому что меняющий стек плюсовик это по прежнему опытный программист, который быстро нагонит за счет общей базы. А меняющий стек пхп макакен это человек со специфическим опытом и образом мышления, за которым нужен глаз да глаз. И будь он хоть супер гением работодатель десять раз подумает нахуй ему такой талант вне пхпшного загона обосрался.

>Ты же в курсе, что в Го нет исключений и дженериков, кстати?
Ну если бы какой-нибудь долбоеб сравнивал дженерики с массивами я бы об этом и написал.
Ответы: >>2171756
Аноним 2021/10/01 15:56:34  №2171733 576
>>2171174

VSCode умеет сохранять файлы без BOM. Нужно выбрать кодировку "utf-8" (также есть кодировка utf8bom, она добавляет BOM в начало файла). заходишь в settings -> поиск по encoding -> выбираешь utf8.

>>2171208

Ты написал фигню. Есть такое понятие "ассоциативный массив". Хеш-таблица - это лишь одна из возможных реализаций ассоциативного массива. Так что название "массив" в PHP абсолютно нормальное.

https://xlinux.nist.gov/dads/HTML/assocarray.html

Ты не разобрался, а брызжа слюнями, побежал всех вокруг обзывать "макаками".

Представь, что кто-нибудь скажет, что "белые люди" самостоятельно выделяют и освобождают память и указывают типы всех переменных, а "макаки" пользуются сборщиком мусора и динамической типизацией. И вот теперь ты стал макакой.
Ответы: >>2171738 >>2171766
Аноним 2021/10/01 16:03:34  №2171738 577
>>2171733
Странно, но там UTF-8 и стоял по дефолту.
Аноним 2021/10/01 16:03:52  №2171739 578
>>2171331

Никакого смысла хешировать их нету. Хешируют пароли (обязательно с солью) при сохранении в базу данных.

>>2171417

Я бы тебе советовал выложить твои классы на гитхаб для проверки. Вдруг ты ошибся, а тебе укажут на ошибки и помогут исправить.

Обычно функции, которые работают с таблицей в базе, собирают в один класс. Есть несколько паттернов (я описал из тут: https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md ), самый простой это TableDataGateway.

То есть ты делаешь класс PeopleGateway, а в нем методы для получения числа человек в базе, поиска людей по каким-то признакам, удаления людей из базы и тд. Вся работа с таблицей людей делается в этом классе, но только работа с базой данных. Там не должно быть работы с GET, POST, формами, вывода чего-либо на экран.

Это называется "принцип разделения ответственности". У каждого класса своя "зона ответственности" и он не занимается тем, за что отвечает другой класс.

Частая ошибка начинающих в том, что они пытаются все запихнуть в один класс. Например, обработку формы редактирования, проверку на ошибки, работу с базой данных, вывод результата. В результате получается не ООП, а обычная лапша, завернутая в класс.


Аноним 2021/10/01 16:23:04  №2171756 579
>>2171718
>На работе мнения макаки
Хорошо иметь работу. Тебе не понять.
Ответы: >>2171766
Аноним 2021/10/01 16:36:44  №2171766 580
>>2171733
>Ты написал фигню. Есть такое понятие "ассоциативный массив"
Капуцин ебаный, ты читать умеешь? Я именно именно о том и говорю что "массив" и "ассоциативный массив" это разные вещи.

Я хуй знаю, давай я тебе аналогию приведу что-ли.

У чела есть вилка и ложка. Он ест мясо вилкой, а суп ложкой.
Подходит пхп макака и говорит:
- Моя ложка удобнее твоей вилки.
Подходит еще один и добавляет:
- Да. У нас в дурке вообще вилок нет. Сидим кайфуем, удобно пиздец. Вилки это сложно и элитарно. Даже если бы они и были, мы в дурке сто пудов бы запутались.

>>2171756
Мимо. Я такая же пхп макака, только опыта побольше.
Ответы: >>2171768
Аноним 2021/10/01 16:38:43  №2171768 581
>>2171766
>только опыта побольше
Опыта холиваров на бордах? Нерелевантно.
Аноним 2021/10/01 22:34:17  №2171930 582
Нахуй я вообще поступил на это дегенератский мехмат. Я зарабатываю дохуя. Что математиков другие математики ненавидят, потому что это не же матфак вшэ и все определения неправильные,, вот у вас сначала предел, потом непрерывность, а надо блять наоборот, нахуй, что программисты доказывают, что языки и технологии им блять неправильные. Вы все блять макаки, неинтересные, забитые чмо, кнопкодавы, не настоящие, ничего интересного не добились. А щас бы работал вместо этого дерьмеца учителем русского языка и летаратуры. И все бы меня любили. Дети бы со мной обнимались на выпускной. Я был бы основой культуры и общества. Я был бы красив. И все бы мне простили, что у меня денег нет, даже красивые женщины. Даже, если бы я не был как Быков и Лимонов. А я вынужден жить с вами, вонючими и мерзкими крысами, потому что 10 лет назад неправильно выбрал специальность. Вы хуже дерьма, вы хуже лежалого трупа. Вас все ненавидят в России, сравнивают с наркоторговцами и проститутками.
Аноним 2021/10/02 07:00:29  №2172020 583
Почему он подчеркнул эту строку? И вообще поясните если можете за эту строчку что она делает, запускаю на локалке
Ответы: >>2172053
Аноним 2021/10/02 08:07:49  №2172053 584
>>2172020
Наведи курсор и прочитай во вспылающем окне подсказочку или через alt+enter посмотри что IDE посоветует исправить.
Наверное дело в том, что определить строковую константу можно задать через const.
И закрывающий тег тут не нужен. Он может навредить, так как все символы до следующего открывающего тега (например случайный пробел) улетят в stdout и расхуячат скрипт.
Ответы: >>2172068
Аноним 2021/10/02 08:28:54  №2172068 585
>>2172053
Да, тыкнул на подсказку и он счам исправил, до чего техника дошла
Аноним 2021/10/02 14:18:25  №2172298 586
Аноны, всем привет, выручайте пожалуйста. Может даже не совсем по теме вопрос. Запилил сейчас на vps хостинг свой первый сайт, ни разу не делал раньше этого. Что нужно прописать в файлах .htaaccess чтобы все нормально директилось на корневую папку public, и это касалось также css, js файлов и изображений? Я разобрался что прописать чтобы при при хттп запросах выдавались страницы как положено, но чтобы подрубались изображения, стили и жс мне пришлось прописать /publuc вначале каждого пути, благо это немного. То что техподдержка сказала не помогло. Как по-нормальному сделать, выручите плиз.
Ответы: >>2173613
Аноним 2021/10/03 16:46:31  №2173033 587
Как фиксить?
Ответы: >>2173037
Аноним 2021/10/03 16:50:04  №2173037 588
16332731912692.png (95, 886x604)
604x886
Ответы: >>2173100 >>2173123 >>2174510
Аноним 2021/10/03 18:24:40  №2173100 589
>>2173037
У тебя константа root_path существует?
Аноним 2021/10/03 18:52:20  №2173123 590