Сохранен 1194
https://2ch.hk/pr/res/1656450.html
Изменился адрес Архивача в сети Tor — arhivachqqqvwqcotafhk4ks2he56seuwcshpayrm5myeq45vlff44yd.onion. Установите Tor Browser для беспрепятственного доступа!

Клуб изучающих PHP #117 /php/

 Аноним 12/04/20 Вск 15:02:32 #1 №1656450 
php-noob-1.png
cat-cafe-osaka.jpg
l0-sensei.jpg
cat-sad.jpg
Здесь мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

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

Это тред и для начинающих. Слово "классы" у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.

Предыдущий тред был тут: >>1630065 (OP) . Все старые треды есть в архиве: https://phpclub.tech/ (там есть поиск, так что можно легко найти обсуждение какой-то задачи или ответы на свой старый пост) или ищутся в гугле по словам "клуб изучающих php" и в архиваче.

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

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

С чего начать

У нас есть свои уроки по основам PHP, они собраны и выложены по адресу http://codedokode.github.io/phpbook (вас отредиректит на другой домен, не читайте, не сохраняйте, не запоминайте его, он временный). Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то можно начать с него. Он простой и понятный. Там есть задачи, их нужно решать (чтобы стать программистом, надо писать код — иначе никак). С другой стороны, если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.

Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).

Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.

Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.

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

- для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, PDO, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony 3/Doctrine 2
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.

Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:

https://github.com/codedokode/pasta/blob/master/soft/php-install.md
https://github.com/codedokode/pasta/blob/master/soft/apache-install.md

Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md

Параллельно стоит подучивать английский, на первых порах можно без него, но по мере развития придется все чаще сталкиваться с англоязычными статьями, так что лучше не откладывать. Читать можно news.ycombinator.com - это что-то вроде их хабра. Также можно начинать смотреть фильмы и видео на английском.

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1
- Новости IT на англ. https://news.ycombinator.com/
- какой-то древний, устаревший, но большой и на русском справочник по веб-разработке, посоветованный аноном: https://starcat.dp.ua/doc/wdh/

Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492

У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.

Платиновые вопросы

- Почему PHP? Потому что вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу.
- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Loading...
Оформление кода Аноним 12/04/20 Вск 15:04:42 #2 №1656452 
grammar.png
Надо писать код как попало, а аккуратно. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на рекомендации PSR, где все это описано подробнее и даны примеры оформления:

PSR-1 (рус.): https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2 (рус.): https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md
PSR-12 (англ.): https://www.php-fig.org/psr/psr-12/
Аноним 12/04/20 Вск 17:49:05 #3 №1656570 
>>1655776 → YOU
Бумп.
Почему двоится запись в таблицу?
Аноним 12/04/20 Вск 18:03:34 #4 №1656579 
>>1655776 →
Включи в MySQL general_sql_log и увидишь сколько запросов и каких обрабатывает БД.
Аноним 13/04/20 Пнд 02:16:15 #5 №1656781 
Наконец-то нормальная шапка. Я уже думал что ОП рипнулся
Аноним 13/04/20 Пнд 12:33:53 #6 №1656941 
>>1656781
Про окно не написал. Надо было что-то в духе "за окном самоизоляция и весна, а мы продолжаем изучать ПХП".
Аноним 13/04/20 Пнд 14:31:56 #7 №1657017 
>>1656450 (OP)
Вопрос и опу и залу:
Какой англоязычный учебник по современному php порекомендуете?
Аноним 13/04/20 Пнд 14:34:45 #8 №1657020 
>>1657017
доки
Аноним 13/04/20 Пнд 14:39:37 #9 №1657024 
>>1657020
Доки хороши только как справочник. Там рядом описаны и важные вещи, и то, что влеплено просто для полноты языка. Заучивать всё подряд довольно неэффективно.
Аноним 13/04/20 Пнд 16:57:07 #10 №1657118 
>>1657017
Могу посоветовать только смотреть разные презентации на разных конференциях. Бывает лютое говно в стиле "10 СКРЫТЫХ возможностей ларавель", где чувак просто доки пересказывает и паблик апи, а бывает прям кулстори про реальной опыт и решение разных проблем, ну или просто хорошие практики опять же на основе реальных примеров. В книгах тебе может быть трудно понять тот уровень абстракции, о котором пишет автор, это если именно про дизайн и веб в целом.
Аноним 13/04/20 Пнд 17:05:25 #11 №1657124 
>>1657118
Странный аргумент. Именно в книгах начинают с базовых понятий и постепенно проходят более сложные вещи, а спичи на конференциях как раз и бывают непонятными, автор говорит со своей колокольни.
Аноним 13/04/20 Пнд 18:14:09 #12 №1657179 
>>1657124
Тут стоит уточнить о каких книгах и о чем вообще говорить. Я имел ввиду более "продвинутые" знания, которые, в основном, получаются с опытом. Если нет возможности его получить в боевых условиях, то можно попробовать перенять по маленьким кусочкам с тех же конференций, это будет не то, но общее представление даст в каком-то вопросе.
Ну и вообще читать книги про чистый пхп тоже такое себе занятие, язык то простой(в этом тоже своя красота есть). В учебнике опа как раз все базовые вещи проходятся, только намного быстрее, чем условную книгу прочитать.
Аноним 13/04/20 Пнд 19:06:35 #13 №1657225 
Сап аноны. У меня есть задача и я не знаю с какой стороны к ней поступится и что юзать. При нажатии кнопки нужно формировать get запрос и отправлять с ним айди, потом вытянуть данные бд пользователя с этим айди и открыть его личную страничкую.Буду очень благодарен за помощь
Аноним 13/04/20 Пнд 19:50:36 #14 №1657254 
>>1657225
<a href="/users/1">КНОПКА</a>
Или что? Опиши подробней кейс
Аноним 13/04/20 Пнд 20:00:57 #15 №1657262 
>>1657225
Если не хочешь ебаться с джавасриптом то делаешь форму с одним скрытым полем куда записываешь айди. И кнопкой сабмита. Сотвественно в форме метод = get, action - url запроса.
Аноним 13/04/20 Пнд 20:02:05 #16 №1657265 
>>1657262
Да, это ссылка называется
Аноним 13/04/20 Пнд 20:03:29 #17 №1657267 
>>1657254
Мне нужно сделать личные страничке пользователей, когда в строке браузера вводишь би лайк index.php?name=Иван то тебе открывается страничка этого пользователя
Аноним 13/04/20 Пнд 20:05:02 #18 №1657268 
>>1657267
Тип как в вк работает
Аноним 13/04/20 Пнд 20:05:52 #19 №1657269 
>>1657267
Погугли routing, от банальных ифов до миддлваров, у ОПа кстати есть где-то статья на эту тему, поищи на гитхабе, вроде в задаче про студентов
Аноним 13/04/20 Пнд 20:06:58 #20 №1657272 
>>1657179
Мне нужно "повторить php". Работу после карантина буду искать. И там обязательно будут спрашивать, чем абстрактный класс отличается от интерфейса и всё такое. Заучивать отдельные вопросы не хочу, лучше повторю всю тему не торопясь.

>>1657225
Ну так и пиши форму. Что-то вроде
<form action="pers.php" method="get">
<input type="text" name="id" />
<input type="submit" />
</form>
При нажатии будет сформирован гет-запрос к файлу pers.php с параметром id, внутри которого будет значение из поля ввода.

А дальше уже этот скрипт обращается к базе (лучше не напрямую, а через PDO, вытягивает данные, и формирует страницу, которую увидит пользователь. Грубо говоря, pers.php - это и есть та страница. Просто внутри неё есть что-то вроде
echo "<h1> Добро пожаловать, $userName </h1>";
где $userName как раз и бертся из базы.
Посланник райза 13/04/20 Пнд 21:35:07 #21 №1657349 
ваш пхп кусок отборнейшей параши
я каждый день сру кусками пхп, они такие твёрдые и красивые
пхпшеры очень любят свой язык (говно), срут им, едят его на завтрак
ОДИН ПХП НА ЗАВТРАК ОТВЛЕКАЕТ ОТ ВАС ДЕВУШЕК НАВСЕГДА
ваш шланг будет 1см максимум
не пишите на пхп
ПОЖАЛУЙСТА, АНОН, НЕ ПИШИ НА ПХП
Аноним 14/04/20 Втр 09:31:50 #22 №1657523 
>>1656450 (OP)
Что почитать про работу с базами данных полному нулю?
А то вообще ничего не понятно. Вот я делаю запрос к БД через mysqli_query, получаю что-то в ответ и как с этим дальше работать?
Почему нельзя получить в ответ ассоциативный массив и дальше его вертеть как хочешь?
Аноним 14/04/20 Втр 19:13:04 #23 №1657910 
15860687731600.jpg
Вкатываюсь в ПеХеПе. 28 годиков, какие подводные? Скачал вебинар от каких-то хтмл академия и ахуел от непонятности. Решил зайти, на любимый впрошлом двачик и ахуел от удобности сайта для вкатывальшиков в шапке. Всё как я люблю, аниме девочки, шутеечки уровня б. Теперь главный вопрос, стоит ли учить? Мне не для 300к наносек, а для своего пет-проекта. Хочу замутить крутой скрипт для чтения манги в онлайне.
Аноним 14/04/20 Втр 19:30:02 #24 №1657919 
>>1657523
а че про них читать есть скл базы они более-менее одинаковые в скл запросах, есть носкл там уже надо доку читать по конкретной бд.
настройка самой бд те в помощь
Аноним 14/04/20 Втр 19:30:50 #25 №1657920 
>>1657910
да хоть на коболе пиши
Аноним 14/04/20 Втр 19:43:26 #26 №1657934 
Где можно найти задачникт по sql порешать?
Аноним 14/04/20 Втр 19:54:03 #27 №1657937 
>>1657934
В интернете, бротиш.
Аноним 15/04/20 Срд 14:24:43 #28 №1658414 
>>1657910
Я на codewars стараюсь каждый день задачки решать, помогает сильно + в ОП посте есть неплохой учебник, почитай лучше его.
Аноним 15/04/20 Срд 16:53:37 #29 №1658525 
Анончики, дайте совет. Делаю задание про файлообменник. Для загрузки файлов решил использовать dropzone.js. Но проблема в том, что в него сразу нормально не встроить текстовые поля. Нашёл вот эту ссылку https://switch-case.ru/56510992. Можно ли по ней сделать норм или нет? Или подскажите, как сделать правильно, пожалуйста.
Аноним 15/04/20 Срд 19:25:09 #30 №1658620 
>>1657349
Почему?
Аноним 15/04/20 Срд 19:46:07 #31 №1658627 
>>1658525
хирока есть
Аноним 16/04/20 Чтв 11:41:43 #32 №1658929 
анонасы, есть тут битриксойды ? прилетела плевая таска - а в гугле нулевая инфа. просто пиздец
Аноним 16/04/20 Чтв 20:17:06 #33 №1659432 
monkey cute.jpg
Аноны, посоветуйте, что выбрать для вкатывания - путь пхпшника или фронтэнд. Нужно как можно быстрее иметь 15-20к в месяц, желательно удаленно.
Пока что уже две недели прохожу CS50
Аноним 16/04/20 Чтв 21:14:31 #34 №1659478 
>>1658929
Не такая уж и плевая значит
Аноним 16/04/20 Чтв 21:19:43 #35 №1659479 
>>1659432
>две недели прохожу CS50
Это были потраченные впустую две недели. Тебе, если важна скорость, надо понимать, как функционирует твой фркймворк и как использовать инструменты одного конкретного языка для решения типовых бизнес-проблем, а не смотреть как долбоебы на сцене меняются местами под командами потного ведущего.
Аноним 16/04/20 Чтв 21:24:53 #36 №1659486 
>>1659479
этот прав за две недели уже прожевал бы пару учебников и высрал первый круд.
мимобайтоеб
Аноним 17/04/20 Птн 12:05:55 #37 №1659892 
image.png
Аноний, я в печали. Дерусь с header'ом.
Почему он не запускается?

Пробовал сделать внутри функции return $a=5;, а на странице с логином над хтмл формой условие, типа: include (file.php); if ($a = 5) {header ...}. И публичную переменную тоже пробовал.
Но это ломало страницу и выдавало ошибку 500, лол.

Я в отчаянии. Помогите.
Аноним 17/04/20 Птн 12:07:17 #38 №1659893 
>>1659892
Алсо. Там выше ссылка на точно тот же путь и там все норм.
Аноним 17/04/20 Птн 12:23:28 #39 №1659901 
>>1659892
Хедыры нужно отправлять до любого вывода. никаких вардампов, принтов хтмла и пробелов.
Аноним 17/04/20 Птн 22:10:27 #40 №1660422 
Мне только спросить.

Если при токен аутентификации мы грузим пользователя из бд на каждом запросе, это норм? Это не противоречит тому, ради чего придумана токен аутентификация? Если мы будем масштабировать наше приложение, и добавим серверов, то нужно будет продублировать таблицу с пользователями? Так вообще можно?

Вот тут посмотрел тутор, они грузят юзера из бд https://symfonycasts.com/screencast/symfony-rest4/jwt-guard-authenticator#play
Аноним 17/04/20 Птн 22:40:52 #41 №1660439 
>>1660422
> грузят юзера из бд
А как ты по другому собрался? ПеХаПе не сохраняет состояние. Токен нужен чтобы польхователь не воводил пароль при каждом запросу. Вся инфа тянется из бд(как вариант in-memory типа редукса), файлов, сесии и подобного.
Аноним 17/04/20 Птн 23:29:42 #42 №1660477 
>>1660422
Подозреваю, что такие вещи кешируются на уровне самой БД.
Аноним 18/04/20 Суб 09:15:44 #43 №1660684 
>>1660439
так-то мы могли и сессию сохранить и передавать ее id, зачем тогда stateless и токен? Получается мы с каждым запросом передаем данные пользователь@пароль и сверяем их с таблицей.
Аноним 18/04/20 Суб 09:17:05 #44 №1660686 
>>1660477
>>1660439
Почему бы не передавать сериализованный и зашифрованный объект пользователя как токен, чтобы вовсе не обращаться к бд?
Аноним 18/04/20 Суб 12:38:11 #45 №1660805 
image.png
Господа, прошу помощи.
Есть страница, на которой по нажатию кнопки добавляется либо удаляется такой-же select <slect class="inputdata" onchange="..." onchange="..." name="..." id="..">...</select>. У него меняется name и id соответственно, увеличиваясь на 1.

В массив "elems", созданный скриптом javascript записываются name всех элементов, которые содержат класс "inputdata". Необходимо создать переменные в php-обработчике он в отдельном файле, если это на что-то влияет, которые будут называться как элементы этого самого массива.
Т.е. содержание массива: name0, name1, name2.. и т.д.

Или можно как-то реализовать это по-дргуому?
Аноним 18/04/20 Суб 13:27:38 #46 №1660837 
>>1660805
А для чего php обработчик? Что ты хочешь сделать?
Аноним 18/04/20 Суб 13:53:03 #47 №1660883 
>>1660837
Запичывает данные в бд
Аноним 18/04/20 Суб 15:05:45 #48 №1660981 
>>1660805
отправь ajax'ом
Аноним 18/04/20 Суб 17:07:04 #49 №1661073 
>>1660686
Так себе идея - каждый запрос слать данные пользователя. Они нигде не кешируются, плюс к этому - одного пользователя мало и нужно его отношения тянуть из БД. Получается, что надо каждый запрос например передавать пользователя, его посты, лайки и тд. и не факт что они нужны в конкретном запросе.
Аноним 18/04/20 Суб 19:09:20 #50 №1661190 
laravel?
Аноним 18/04/20 Суб 22:58:59 #51 №1661416 
>>1660422

На практике часто встречается, загрузка 1 записи по id - это быстро. Скорее всего, там для вывода страницы еще куча данных из БД берется и на этом фоне 1 маленький запрос роли не играет. В крайнем случае (настанет хайлоад) можно будет добавить кеширование в том же redis.
Аноним 19/04/20 Вск 00:25:08 #52 №1661472 
Клуб изучающих PHP, че там, провал в Соликамске засыпали?
Аноним 19/04/20 Вск 00:52:37 #53 №1661475 
image.png
Пацаны, в чем дело? Почему не передает запись из сессии?
Записал в отдельную переменную, все равно не передается, хотя при вызове внутри файла "db-req.php" отображается.
Аноним 19/04/20 Вск 01:05:34 #54 №1661482 
>>1661475
Перечитал документацию. Все норм теперь.
Аноним 19/04/20 Вск 12:43:29 #55 №1661745 
image.png
image.png
Пацаны, это снова я.
В чем дело? почему выползло пусто сообщение, если его БД нет даже?
Аноним 19/04/20 Вск 12:50:22 #56 №1661749 
>>1661745
Понял.

while ($n < $co_po) надо было писать, вместо "меньше или равно".
Аноним 19/04/20 Вск 13:47:20 #57 №1661798 
анчоусыы, подскажите, запускаю ларку и там идет по стандартному хосту типа http://127.0.0.1:8000/ и в связи с этим вопрос: как мне блять попасть в phpmyadmin то ? в инете хуйня какая то для nginx, а мне апач нужен + бд как то накатывать. через пхшторм не хочет. какого то хуя все в одну таблицу сует. сам дамп рабочий
Аноним 19/04/20 Вск 14:26:40 #58 №1661838 
image.png
Блять. Я чего-то не понимаю, нахуй, или что?
Какого хуя код с добавлением поста в БД ломает наглухо, блять, авторизацию и регистрации?

Он, сука, никак не пересекается с теми функциями, ни именами переменных, ни названиями функций, ни запросами к БД.
Эта функция вообще вызывается на последней странице, где уже после страницы регистрации показываются посты, это абсолютно другой файл.
Это пиздец. Стоит его закоментить - все работает.
Аноним 19/04/20 Вск 16:03:57 #59 №1661948 
>>1661838
дебагером посмотри
Аноним 19/04/20 Вск 16:13:56 #60 №1661965 
>>1661838
в логах что пишет?
сама эта функция или другие public или че?
Аноним 19/04/20 Вск 16:23:48 #61 №1661976 
image.png
>>1661965
Выдает это на странице с логином. Хз, какая скобка ему не зашла.
Не понимаю, что ему нужно. Какая неожиданная скобка, нахуй он ожидает фигурную скобку - не понимаю.
Аноним 19/04/20 Вск 16:25:17 #62 №1661980 
image.png
>>1661838
>>1661976
Я еблан. Забыл прописать prepare.
Аноним 19/04/20 Вск 16:25:43 #63 №1661982 
image.png
>>1661976
Ну ка, это че за говно?
Аноним 19/04/20 Вск 16:27:33 #64 №1661986 
>>1661982
Остатки комментария, на них тоже ошибка ругалась, но не критично.
Аноним 19/04/20 Вск 16:28:45 #65 №1661990 
>>1661986
>syntax error
>не критично
Ок.
Аноним 19/04/20 Вск 16:29:16 #66 №1661992 
image.png
image.png
У меня еще вопрос. как теперь скрыть эти уведомления? Они у меня это вываливается из файла на пикри 2. Можно их как-то закомментить или крыть?
Аноним 19/04/20 Вск 16:30:21 #67 №1661996 
>>1661990
Да. Тут ты прав, не работает с кусочком комментария.
Аноним 19/04/20 Вск 16:34:29 #68 №1662005 
>>1661992
Надо не скрывать уведомления о проблеме, а решить проблему.
Конкретно это означает, что ты пытаешься получить из массива элемент, которого там нет.
Код с логином лень искать, он в том треде еще остался.
Аноним 19/04/20 Вск 16:36:32 #69 №1662010 
>>1662005
Ты о строках 21 и 22? Это он на пустые поля логина и пароля указывает, после заполнения все норм работает. Ну и сообщение о сессии тоже.

Можно это скрыть? А если будут обсеры, то снова раскомментить и посмотреть?
Аноним 19/04/20 Вск 16:41:49 #70 №1662014 
>>1662010
>Это он на пустые поля логина и пароля указывает
Так вот ты проверь, пустые они или нет, и если пустые то не совершай те же действия, как-будто они заполнены.
>Ну и сообщение о сессии тоже
Сессия у тебя стартует где-то раньше. Тут дейсвтительно не очень критично, он скорее всего у тебя нет никакой архитектуры, которая помогла бы тебе юзать сессию централизованно.
Так что тут для решения может быть вариант с проверкой каждый раз.
Вот есть такой метод например:
https://www.php.net/manual/ru/function.session-id.php
Впринципе я тебе и так достаточно подсказал, как именно это проверить можно, дальше сам пробуй.
>А если будут обсеры, то снова раскомментить и посмотреть?
Можно то можно, только это снежный ком. Их просто нужно не допускать и решать сразу. К счастью это почт ивсегда (в твоем случае тоже) проще простого.
Аноним 19/04/20 Вск 16:45:49 #71 №1662023 
>>1662014
Спасибо тебе.
Буду применять это.
Аноним 19/04/20 Вск 17:01:01 #72 №1662052 
>>1661798
ну же анон, помоги мне
Аноним 19/04/20 Вск 17:43:40 #73 №1662135 
>>1661798
Смотря чем пользуешься, если линукс, то apt install phpmyadmin, он установится для apache. Можешь композером установить composer create-project phpmyadmin/phpmyadmin в другую категорию и запускать через командную строку php (локальный сервер), или если у тебя xampp например, просто переходишь на localhost/phpmyadmin
Аноним 19/04/20 Вск 17:54:59 #74 №1662149 
>>1662135
ну так и есть линукс. собирал все по частям. в пред разы когда работал со всякими cms то просто качал проект, настраивал все в хостах и апаче, затем просто переходил по magazgovna.my/phpmyadmin то все пахало. а щас при http://127.0.0.1:8000/phpmyadmin он меня шлет куда подальше и возвращает что вот 404 и такой страницы нет при этом все это в дизайне ларавеля, если что
Аноним 19/04/20 Вск 18:02:13 #75 №1662158 
>>1662149
Может у тебя phpmyadmin работает на 80 порте?
Аноним 19/04/20 Вск 19:19:16 #76 №1662245 
>>1662158
ну возможно.значитт мне его никак блять не прикрутить чтоли? или надо сидеть hosts редачить чтобы и там запахало?
Аноним 19/04/20 Вск 23:31:07 #77 №1662430 
>>1661798
Ты ради одной кнопки импорта в бд pma накатываешь?
Попробуй mysql db_name < dump.sql.
Аноним 20/04/20 Пнд 02:04:25 #78 №1662509 
Есть кто не спит? Есть срочный вопрос.
Аноним 20/04/20 Пнд 02:07:21 #79 №1662510 
>>1662509
го, слушаю
Аноним 20/04/20 Пнд 02:13:24 #80 №1662512 
>>1662510
Домашку к утру сдавать надо, поэтому срочно.
Новичек, пиши пхп в оупен сервере. Есть задание, там надо вывести пару строк, а конкретно часы и минуты просклонять, в стоответсвии со временем. Однако у меня хром заменяет русские буквы на знаки вопроса, на английском все работает. Понимаю что проблема в кодировке, в начале пишу метачарсте утф 8 и тд, не работает. Открываю модули оупен сервера, меняю дефолт с офф на утф 8. Тоже не помогло. Что посоветуешь?
Аноним 20/04/20 Пнд 02:15:15 #81 №1662513 
>>1662512
>Новичек
Посоветую пойти нахуй, школотун
Аноним 20/04/20 Пнд 02:16:31 #82 №1662514 
>>1662512
походу твоя проблема
https://ru.stackoverflow.com/questions/659876/open-server-%D0%9A%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D1%83
Аноним 20/04/20 Пнд 02:16:50 #83 №1662515 
>>1662513
Домашка в уник.
Двач в своем репертуаре. Точно не подскажешь в чем может быть еще проблема?
Аноним 20/04/20 Пнд 02:21:39 #84 №1662516 
>>1662514
Спасибо огромное, затупил. В брекетс стояла не та кодировка.
Аноним 20/04/20 Пнд 02:22:11 #85 №1662517 
>>1662516
you're welcome.
вообще интересно, что в унике пыху преподают
Аноним 20/04/20 Пнд 02:23:25 #86 №1662518 
>>1662517
майнор, сам не в Рашке сейчас
Аноним 20/04/20 Пнд 02:24:03 #87 №1662520 
>>1662518
а где учишься?
Аноним 20/04/20 Пнд 02:26:39 #88 №1662522 
>>1662520
университет Хофстра на лонг айланде. Никак не могу отделаться от привычки писать сначала на русском, а потом переделывать. Это проблема для себя была чисто. Хотел разузнать что не так пока к удаленке доступ не закрыли
Аноним 20/04/20 Пнд 14:23:21 #89 №1662846 
image.png
Подскажите - есть ли красивый способ парсить подобный HTTP_USER_AGENT:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Во что-то типа "Win 10, Firefox 75" ?

Боюсь что если начну сам херачить, то придется самому городить велосипед на 1000 if под каждый возможный браузер/os, да еще и через год это устареет.
Аноним 20/04/20 Пнд 16:59:18 #90 №1663076 
>>1662522
вчера заснул и не ответил, ты молодец, не возвращайся в парашу, но ты и без меня это знаешь
Аноним 20/04/20 Пнд 17:36:51 #91 №1663097 
>>1662846
но зачем
для верстки на определенный браузер надо использовать ксс
Аноним 20/04/20 Пнд 17:50:23 #92 №1663105 
>>1663097
Братан, это вопросы вообще или что?

Для того что бы пользователям показывать "устройства" с которых залогинены и все такое.
Аноним 20/04/20 Пнд 17:54:50 #93 №1663108 
>>1662846
http://www.letmegooglethat.com/?q=php+user+agent+parser
Аноним 20/04/20 Пнд 17:55:35 #94 №1663110 
>>1663105
просто особого практического значения расшифровка юзер агента не имеет в наши дни
Аноним 20/04/20 Пнд 19:55:46 #95 №1663238 
>>1663110
Я понимаю, но таск есть таск.
Аноним 20/04/20 Пнд 21:17:05 #96 №1663305 
>>1663238
https://habr.com/ru/company/dcmiran/news/t/494362/

Максимум что ты полезного можешь узнать это мобила или пека
Аноним 21/04/20 Втр 20:01:47 #97 №1663912 
То ли в глаза ебусь, то ли ещё что. Но у меня не работает вызов функции в ocStore, чтобы выводить имя пользователя в хедере, но мне выдаёт, что переменная неопределена.

Код: https://pastebin.com/z8CvzQFz

Вроде должно работать. Но она даже не объявляется. Типа, если я неправильно ввёл значение, то должно же быть null, не?
Аноним 21/04/20 Втр 20:02:23 #98 №1663913 
Делаю тестахаб. И тут думаю, а стоит ли хранить айпишники юзеров в базе? Они нигде не используются при этом. В реальных проектах их же наверно хранят?
Аноним 21/04/20 Втр 20:29:55 #99 №1663946 
>>1663912
При чём даже если просто переменную в файле header.php объявить, то всё равно говорит, что переменной не существует. Как это блять работает?
Аноним 21/04/20 Втр 20:47:45 #100 №1663967 
Документация там странная без особых примеров. Поясните, пожалуйста, что я не так делаю? Типа, я объявляю что-то в controller/header.php и вывожу во view/header.tpl. Должно же работать, разве нет?
Аноним 21/04/20 Втр 21:12:53 #101 №1663996 
>>1663913
Не используешь или не планируешь = не добавляешь.
Аноним 21/04/20 Втр 22:10:16 #102 №1664046 
>>1663996
А если я за юзерами следить хочу?
Аноним 22/04/20 Срд 21:47:45 #103 №1664979 
Как лучше со сфинксом работать через расширение PHP SphinxClient или просто обычное pdo подключение создавать и дальше уже от него запросы делать? Это я поиск делаю для тестхаба.
Аноним 22/04/20 Срд 22:17:59 #104 №1664997 
>>1663305
Мб через js можно напрямую делать? Мне на самом то деле не страшно если уже после логина от пользователя прилетит аякс-запрос на сервак с данными.
Аноним 22/04/20 Срд 23:15:10 #105 №1665030 
Аноны, как вы используете интерфейсы и абстрактные классы? Я их вообще не использую, потому что не могу понять зачем, если можно сделать обычный класс. Можно пример приближенный к реальным проектам?
Аноним 23/04/20 Чтв 00:31:35 #106 №1665064 
>>1665030
А в чём разница между интерфейсом и абстрактрым классом? Придумали 2 бесполезной хрени.
Аноним 23/04/20 Чтв 13:58:38 #107 №1665372 
Аноны, посоветуйте какую нибудь книгу по ОПП в ПХП, с примерами и т.п.
Аноним 23/04/20 Чтв 14:00:26 #108 №1665375 
>>1657910
Лучше жиэс учи, для всякого петтинга более подходящая хуйня.
Пхп - это чтобы срать в продакшн тоннами кода
Аноним 23/04/20 Чтв 14:02:53 #109 №1665377 
>>1659432
>как можно быстрее
Нужен ОПЫТ. Не в смысле коммерческий, а вообще.
Набить руку, так сказать. Короче надо постоянно высирать новый код, чтобы тебе отпечатывались в макушку все знания.
Только набив достаточно опыта и написав пару десятков мегабайт кода, тогда у тебя зазубрятся базовые принципы.
>быстрее
Для этого надо больше хуячить кода. Не читать, не учить, а писать код.
Соответственно, чем больше ты времени на это тратишь, тем БЫСТРЕЕ все это будет
Аноним 23/04/20 Чтв 14:06:40 #110 №1665383 
>>1664979
>или просто обычное pdo подключение
Ну, тут ты точно соснешь.
Как только ты на шаг выйдешь за пределы стандарта SQL, ты уже не сможешь юзать PDO.
Да даже больше, sql в сфинксе крайне урезанный, ты даже блядский LIMIT можешь задать строго определенным образом.

В свое время я наебался и тупо стал слать запросы на json api сфинкса.
(Точнее хуй знает, есть ли оно в сфинксе, я юзал форк Manticore, там есть).
Аноним 23/04/20 Чтв 16:50:51 #111 №1665590 
пачаны, у рпц нет томоса! срочны рэпост па усим
Аноним 23/04/20 Чтв 17:29:32 #112 №1665661 
>>1662846
Нашел вот такую штуку: https://browscap.org/
Но не совсем понятно как с этим работать.
Я должен гигантский файл парсить или что каждый раз?
Аноним 23/04/20 Чтв 17:56:49 #113 №1665677 
>>1665030
>Я их вообще не использую, потому что не могу понять зачем
В принципе правильно. Если не знаешь зачем что-то тебе нужно, значит тебе это сейчас не нужно. Но

Представь что у тебя на сайте куда-то загружается файл и сохраняется на локальном диске сервера. Всё ок, всё работает. Потом случается любая залупа, и тебе нужно этот файл заливать не на локальный диск, а на облако. У тебя до этого был класс Filesystem с каким-то методом вроде save(). Копируешь этот класс и делаешь из него LocalFilesystem, а из Filesystem делаешь интерфейс с методом save(). Теперь тебе достаточно сделать например YandexStorageFilesystem, в конфигураторе забиндить интерфейс Filesystem к YandexStorageFilesystem и не трогая вообще свой основной код у тебя программа внезапно начала работать по другому. Не всё так просто конечно, но суть понятная думаю. Важно чтобы у тебя нигде в коде не было $fs = new Filesystem(), или юзай контейнеры, или фабрики
Аноним 23/04/20 Чтв 18:43:21 #114 №1665716 
>>1665030
Абстрактный это же типа базовый? Который не предполагает создания экземпляров? Если правильно понял, то юзаю как основной костяк. Тупа вваливаю туда основной фукнционал, а всё остальное выстраиваю вокруг него дабы не ебаться излишне с наследованиями и прочим.
Аноним 24/04/20 Птн 14:13:08 #115 №1666373 
Что лучше учить: php или js?
Аноним 24/04/20 Птн 14:37:50 #116 №1666396 
Чем php не нравится регулярка? Я не понимаю. Через онлайн php чекнул, вроде норм, вот строка как пример 14.04.2020 13:14:39, в чём дело блэд, сама регулярка
'/\d[\d]\.\d\d\.\d\d\d\d \d\d:\d\d:\d\d/'
Аноним 24/04/20 Птн 14:45:18 #117 №1666401 
>>1666396
Нашёл багу, отбой.
Аноним 24/04/20 Птн 16:47:21 #118 №1666518 
>>1666396
Это очень тупая регулярка, не надо так делать
Аноним 24/04/20 Птн 20:15:32 #119 №1666701 
>>1666518
Почему? Можно сократить через {}, но для чисел так нагляднее, ящитаю.
Аноним 25/04/20 Суб 15:08:54 #120 №1667208 
хотел бы услышать выше мнение по поводу моего решения задачки 'Сумма прописью'. К критике готов, может предложите что-то получше сделать, обсудим https://ideone.com/KQZXTX . Спасибо
Аноним 25/04/20 Суб 17:10:13 #121 №1667260 
>>1667208
А куда пропало тысячи - https://ideone.com/0brket
Аноним 25/04/20 Суб 21:59:46 #122 №1667601 
>>1667260
бля, недопроверил после поправок. сча исправлю
Аноним 25/04/20 Суб 22:05:47 #123 №1667606 
>>1667260
вот, упустил один момент в регулярке просто. теперь все должно работать. https://ideone.com/ics46N
Аноним 25/04/20 Суб 22:32:29 #124 №1667623 
>>1657017
>Какой англоязычный учебник по современному php порекомендуете?
Нет таких. Ни учебника, ни php. Современный PHP - это сельские интернет магазины, копроративные сайты и блоги на вордпресс. Соответственно к ним и учебников нету.
Аноним 25/04/20 Суб 22:33:47 #125 №1667624 
>>1657272
>И там обязательно будут спрашивать, чем абстрактный класс отличается от интерфейса и всё такое.
https://www.apress.com/gp/book/9781430260325
Аноним 25/04/20 Суб 22:36:38 #126 №1667627 
>>1657910
>Хочу замутить крутой скрипт для чтения манги в онлайне.
Ну на ПХП у тебя будет сверх крутое чтение манги с полной перезагрузкой страницы после каждого перелистывания. Хуита это короче будет, а не манга. СПАшечку сразу делай на vue.js. Ну либо если тебе прям сильно хочется можешь скомбинировать, допустим какой-нибудь Yii2 + jQuery, если хочется стабильности, либо Laravel 6 + Vue.js, если ты стильный модный молодежный петушиный.
Аноним 25/04/20 Суб 22:38:06 #127 №1667630 
>>1667627
>либо Laravel 6 + Vue.js, если ты стильный модный
там уже 7-ой вышел =)
Аноним 25/04/20 Суб 22:39:41 #128 №1667631 
>>1660422
>Если при токен аутентификации мы грузим пользователя из бд на каждом запросе, это норм?
Ну грузить, наверное, я бы сказал не норм, а проверять - ну да. То есть, типа а как иначе? На каждом запросе спрашиваешь у него токен и чекаешь, кто это. Ну если у тебя реляционка обычная можно и грузить, это в принципе на скорость не повлияет.
Аноним 25/04/20 Суб 22:45:48 #129 №1667636 
>>1667630
>там уже 7-ой вышел =)
Ебаааааааааааааааать, ладно схожу посмотрю, че там высрал (нет). Причем, довольно давно похоже вышел, на ларакастс уже высер записали, what's new. Честно говоря, ПХП такая параша, что даже лень смотреть, чем там изменилось, как же я счастлив, что в жс переобулся.
Аноним 26/04/20 Вск 02:13:46 #130 №1667758 
Аноны, а можно ли на пхп сделать открытие из превью в полноразмерную картрнку?
Не как сейчас, когда картинка открывается в отдельной рамке, тут уже пахнет JS'ом.
А как раньше (к примеру, так до сих пор на Ычане, если без куклоскрипта): картинка открывается в полном размере и вместе с этим уродливо растягивает всю рамку с постом и зажимая текст к краю экрана.
Или это тоже только через JS сделать можно?
И на пхп остается только открывать картинки в отдельной вкладке, что и было до растягивания картинки в посте, лол.
Аноним 26/04/20 Вск 02:19:18 #131 №1667761 
>>1667758
Без жс никак.
>А как раньше (к примеру, так до сих пор на Ычане, если без куклоскрипта):
Открой инспектор, там это через жс сделано.
Аноним 26/04/20 Вск 02:20:55 #132 №1667762 
>>1667761
>Открой инспектор
>data-thumb-src=
Я по этому и решил, что без ЖС никак.
Спасибо.
Аноним 26/04/20 Вск 03:08:02 #133 №1667772 
>>1667636
>как же я счастлив, что в жс переобулся
А почему неосилил? ООП не даётся?
Аноним 26/04/20 Вск 07:40:19 #134 №1667810 
Аноны, а где бы бесплатно без смс достать разных дизайнов интернет-магазинов? Хочу потренироваться их на фреймворки натягивать (Bitrix, WP, Shopify и т.п.).
Аноним 26/04/20 Вск 11:54:45 #135 №1667893 
>>1667772
>А почему неосилил? ООП не даётся?
Я на типизированных джаваскриптах пишу, тамошняя система типов твоему ПХП без дженериков сосать дает. Просто заебало хуй сосать за 60к в говноконторе я решил двигаться к деньгам и нормальной разработке.
Аноним 26/04/20 Вск 11:55:30 #136 №1667894 
смеющийся-том-круз.jpg
>>1667810
>на фреймворки натягивать (Bitrix, WP, Shopify и т.п.).
>фреймворки
>Bitrix, WP
Аноним 26/04/20 Вск 12:29:55 #137 №1667925 
>>1667893
>тамошняя система типов
Она чем-то от ПХПшной отличается сильно, да?

>твоему ПХП без дженериков сосать дает
А в ПХП они есть?

>я решил двигаться к деньгам и нормальной разработке
Что в твоём понимании является нормальной разработкой и почему ты пхп неосилил?
Аноним 26/04/20 Вск 12:36:43 #138 №1667930 
>>1667894
У них есть API для обращения к базе, для обработки событий, для написания компонентов/плагинов/тем оформления, у WP есть REST API, у битрикса - push-уведомления и т. д. и т. п. Поэтому - фреймворки.
Аноним 26/04/20 Вск 12:43:33 #139 №1667936 
>>1667930
>Поэтому - фреймворки.
Это системы управления контентом. CMS.
Фактически это готовый сайт - только настрой и темок с плагинами накати.

Фреймворк это набор связанных воедино библиотек для разработки чего угодно на своей платформе. Обычно требует более глубоких знаний чем CMS.

Учи матчасть чтоб не быть баттхёртом.
Аноним 26/04/20 Вск 12:52:55 #140 №1667943 
>>1667936
>Это системы управления контентом.
Так их называют только пиздюки, которые толком этих фреймворков не знают. Голые Bitrix, WP, Shopify сейчас никому не нужны. Заказчикам (у которых уже стоит что-то из этого списка) нужна кастомизация, которую невозможно обеспечить в рамках "темок с плагинами". Говорю это как проработавший 4+ года на галере, которая занимается такой кастомизацией.
А теперь - марш под шконку, сосунок.
Аноним 26/04/20 Вск 13:00:10 #141 №1667946 
>>1667943
>Bitrix, WP, Shopify
>фреймворки
>называет кого-то сосунком и гонит под шконку
Кекнул с этого овоща.

>проработавший 4+ года на галере
Да всем насрать где ты там отработал.
Я вот недавно галеру видел где работают одни верстальщики, которые себя фуллстаками называют. Прямо как ты cms - фреймворками.
Аноним 26/04/20 Вск 13:23:04 #142 №1667957 
>>1667943
>Говорю это как проработавший 4+ года на галере, которая занимается такой кастомизацией.
А вот этот мужик https://wp-kama.ru/about занимается вордпрессом 10 лет и называет его именно CMS - почитай на странице, что умные люди говорят.
А пока что:
>марш под шконку, сосунок
Аноним 26/04/20 Вск 14:07:02 #143 №1667969 
>>1667925
>Она чем-то от ПХПшной отличается сильно, да?
Бля, вот мне не лень настолько конченному хуесосу что-то объяснять. Ок, поехали, из коробки:
1. Возможность типизировать любую переменную. В пыхопараше это появилось только 7.4, а я выкатился с этой хуиты в 7.2. Там только тайп хинты типизируются и возвратные значения.
2. Типизированные массивы.
let arr: string[] = ['ty', 'hyesos'];
3. Дженерик:
function gen<T>(el: T): T {
return el;
}

4. Кортежи.
5. Энумы.
6. Never.

Лень расписывать, ты хуесос короче, там можно писать код, который ты даже представить в своей лоускилльной башке не можешь. Например, ридонли и приватные поля с хэш синтаксисом: обобщенные классы и интерфейсы. Соснул хуйца?:
function getProperty<T, K extends keyof T>(obj: T, key: K) {
return obj[key];
}

Гарды явления и включения, такое видел, хуесос? Пересечения типов и их объединения. Я, ктстати, уже говорил, что ты хуесос?

>А в ПХП они есть?
Нету блядь, в ПХП есть только хуй заказчика очередного интернет магазина на процедурной параше в твоем рту. Все, нету там больше ничего. Ни декораторов, ни врапперов, ни нормальной АОТ или ДЖИТ, нихуя там нету. Ты есть, долбоеб.

>Что в твоём понимании является нормальной разработкой
Энтерпрайз и качество, инновации, расширение границ.
Аноним 26/04/20 Вск 14:31:12 #144 №1667985 
>>1667969
>долбоёб путает js и TypeScript и называет кого-то тупым.
Ты и жавускрипт неосилил походу, токсичное шизло.
Аноним 26/04/20 Вск 14:38:25 #145 №1667990 
>>1667969
У тебя это все есть на том же уровне, на каком был ключик у джека воробья во второй части. Пиши сразу на шарпе, зачем подделку жрешь.
мимо-шарпист
Аноним 26/04/20 Вск 15:44:27 #146 №1668075 
>>1666701
Нет блять, высматривать, 4 раза или 5 ты там этот символ написал, вместо того, чтобы ПРОСТО увидеть это в скобочках - не нагляднее
Аноним 26/04/20 Вск 15:51:14 #147 №1668084 
>>1667985
>Ты и жавускрипт неосилил походу, токсичное шизло.
Эй, пиздюк читать научись, сын шлюхи.

>Я на типизированных джаваскриптах пишу
Понял хуесос?

>Пиши сразу на шарпе, зачем подделку жрешь.
Ты хуесос, на фронте я пишу, ебобо йибаба.
Аноним 26/04/20 Вск 15:54:09 #148 №1668088 
>>1668084
>на фронте я пишу
А в тред о беке ты зашел, чтобы в очередной раз дискредитировать всех фронтендщиков. Не первый ты у нас такой.
Аноним 26/04/20 Вск 15:56:43 #149 №1668093 
>>1668088
>А в тред о беке ты зашел, чтобы в очередной раз дискредитировать всех фронтендщиков
Ээээ петух, я фулстек!
Аноним 26/04/20 Вск 15:58:30 #150 №1668097 
>>1668093
Наглядная демонстрация, как фулстек разработка влияет на слабый разум. Таких тоже было у нас.
Аноним 26/04/20 Вск 15:58:31 #151 №1668098 
>>1668088
>Не первый ты у нас такой.
Но этот фронтовик чёто совсем контуженный какой-то.
Аноним 26/04/20 Вск 16:06:40 #152 №1668109 
>>1668097
>Таких тоже было у нас.
Потому что вы петухи и не можете во фронт, я пришел вам напомнить об этом. Чем быстрее вы спрыгнете нахуй со своего ПХП, тем быстрее вы начнете учить джаваскрипт и обогащаться поняли?

https://www.youtube.com/watch?v=g992NR0c10E
Аноним 26/04/20 Вск 16:15:02 #153 №1668114 
14263665661340-b-88417389.jpg
На самом деле, этот боевой фронтопетух прав.
Фронт важнее бека в современном мире.
На бек можно, в крайнем случае, каких-нибудь обезьян нанять, или даже сами фронтендщики что-нибудь высрут, чтобы апишка жсоны выдавала.

А вот приемлимый фронт пхп-дебичи никогда не родят.
Плюс есть ложное чувство простоты жс. Нет блять, он нихуя не прост. Он гибкий настолько, что способов отстрелить себе ногу и половину ебала там в 10 раз больше, чем было в пхп4.
И не только лишь все понимают язык на том уровне, чтобы интуитивно избегать всех этих мест и писать нормальный код.
Аноним 26/04/20 Вск 16:19:06 #154 №1668120 
>>1668114
>На бек можно, в крайнем случае, каких-нибудь обезьян нанять, или даже сами фронтендщики что-нибудь высрут, чтобы апишка жсоны выдавала.
А потом оно падает в самый разгар распродажи и твои обезьяны не ебут что с этим делать в течении пары-тройки дней.
Ты либо совсем дегенерат, либо толстяк каких ещё поискать.
Аноним 26/04/20 Вск 16:25:23 #155 №1668127 
>>1668120
Железо все стерпит. Ядер дохуя, накинуть еще 24 гига памяти дешевле и проще, чем что-то исправлять.

Если смотреть глобально, то случаев, когда требуется настолько сложный бек, с которым обезьяны не справятся, меньше, чем случаев, когда они могут на коленке написать апи на VasyanJS и все будет работать.
Аноним 26/04/20 Вск 16:33:04 #156 №1668133 
>>1668127
>Если смотреть глобально, то случаев, когда требуется настолько сложный бек, с которым обезьяны не справятся
Точно так же с фронтендом обстоят дела - куча прибыльных\топовых сервисов без всякого СПА и куч макак на поддержке живут себе и деньги делают.
Аноним 26/04/20 Вск 16:35:11 #157 №1668135 
image.png
Вот кстати чё гугл думает.
Аноним 26/04/20 Вск 16:55:54 #158 №1668153 
>>1668135
Гугл показывает результаты с учётом истории поиска
Аноним 26/04/20 Вск 18:26:31 #159 №1668251 
image.png
Анон помоги плес, с меня сиськи мужские
Делаю задание из обучалки про кубики, и меня ебет синтакисческой ошибкой уже целый час я не знаю что делать уже просто я хочу погромировать за 300к\сек а не поваром рабоать за двести бачей в месяц

Аноним 26/04/20 Вск 18:27:33 #160 №1668253 
>>1668251
17, 21, и 25 строки соответсвенно
Аноним 26/04/20 Вск 18:28:31 #161 №1668254 
>>1668251
Код ошибки кинь
Аноним 26/04/20 Вск 18:30:58 #162 №1668257 
image.png
>>1668251
Аноним 26/04/20 Вск 18:33:16 #163 №1668259 
я ошибка.png
>>1668254
воть
>>1668257
что не так, я не понимаю
Аноним 26/04/20 Вск 18:34:10 #164 №1668260 
>>1668259
>что не так, я не понимаю
Ты кавычку не закрыл там, куда я стрелочкой ткнул.
Аноним 26/04/20 Вск 18:34:18 #165 №1668261 
>>1668257
>>1668254
всем спасибо, просто я дурашка и забыл двойные ковычки
Аноним 26/04/20 Вск 18:38:43 #166 №1668263 
>>1668251
Кстати у тебя там есть мини ошибка ^
у тебя <= и >= , Лучше просто больше или меньше
типо если выпадет одинаковое число то это не победа, а выведет как ну ты понял
и наверное лучше все же не дважды if писать, а elseif
Ну я сам новенький и вкатываюсь, но мне кажется так лучше.
Аноним 26/04/20 Вск 19:28:56 #167 №1668312 
>>1668263
да, точняк, так вернее, спасибо!
Аноним 26/04/20 Вск 19:32:12 #168 №1668315 
13442719233989.jpg
Блять, какие же php-фреймворки развитые, пиздец просто.
Гуглишь любую самую дикую поебень вида "Laravel + анальный аттракцион для клоунов" и получаешь какой-нибудь специально созданный для этого пакет с парой тыщ звезд на гитхабе.

Блять, да даже для той же java меньше результатов по тем же темам бывает, я в ахуе.
(про жс и говорить не чего, там вообще нихуя нет)
Аноним 26/04/20 Вск 19:33:54 #169 №1668316 
>>1668315
>анальный аттракцион для клоунов
Это и есть жс.
Аноним 26/04/20 Вск 19:38:33 #170 №1668321 
Как сделать запрос типа select id, title from table_1, table_2 через кверри-бильдер в ларавеле? Не через selectRaw.
Аноним 26/04/20 Вск 19:40:00 #171 №1668322 
>>1668321
https://laravel.com/docs/7.x/eloquent-relationships
Аноним 26/04/20 Вск 19:53:15 #172 №1668329 
>>1668322
Есть просто две таблицы, которые не соотносятся ни с какой моделью, так что отношения прописывать некуда.
Аноним 26/04/20 Вск 20:05:02 #173 №1668334 
>>1668329
Начнем с того, что с хуев у тебя есть таблицы без моделей?
Аноним 26/04/20 Вск 21:32:11 #174 №1668415 
Дурашка снова на связи.
В обучалке задачка: Некто кладет в банк 10000 р. Банк начисляет 10% годовых (то есть, каждый год на счету становится на 10% больше, чем в прошлом году). Напиши программу, считающую, через сколько лет в банке будет миллион? Сколько лет будет этому некто? Доживет ли некто до этого дня, если сегодня ему 16 лет?

Я вроде бы и домучал скрипт, чтобы он не только деньги считал, но и возраст, однако в результаты выкатывается каждое вычисление внизу скриншота. Как заставить скрипт отобразить только ответное значение?
Аноним 26/04/20 Вск 21:35:36 #175 №1668418 
я ошибка.png
>>1668415
скрин забыл
Аноним 26/04/20 Вск 21:38:51 #176 №1668422 
>>1656450 (OP)
Посоветуйте программу с возможностью просмотра результата. Ставил атом с гитхабом беда. Не в блокноте же писать.
Аноним 26/04/20 Вск 21:45:55 #177 №1668425 
>>1668422
вс код с плагинами, если места на диске не жалко то пыхошторм
Аноним 26/04/20 Вск 21:47:19 #178 №1668426 
>>1668418
>>1668415
Выводи содержимое $age после цикла например
Аноним 26/04/20 Вск 22:48:22 #179 №1668483 
P A M A H I T E я, видимо, совсем затупил. Решение задачки 'Я у мамы калькулятор' в какой-то момент начала лупиться. В этих сраных 30 строчках хранится дьявол, но я его так и не нашел. Вот код https://ideone.com/0UxqBC . Спасибо
Аноним 26/04/20 Вск 22:51:02 #180 №1668486 
>>1668483
у тебя условия завершения цикла нет
Аноним 26/04/20 Вск 22:53:36 #181 №1668492 
>>1668415
У меня от скуки поехала кукуха и я решил сделать эту задачу в ООП. Так вот вопрос - нормально написано или шляпа?
Аноним 26/04/20 Вск 22:54:05 #182 №1668493 
>>1668492
Ах да, я на столько поехавший, что забыл ссылку, вот - https://ideone.com/M2GPT2
Аноним 26/04/20 Вск 22:59:45 #183 №1668497 
>>1668486
https://ideone.com/hJT7gG так тоже не работает. мб я как-то не так заканчиваю цикл
Аноним 26/04/20 Вск 23:03:10 #184 №1668501 
>>1668426
можешь показать, как это должно выглядеть, чтобы работало?

>>1668492
Охуенно, когда я смогу так же?
Аноним 26/04/20 Вск 23:05:35 #185 №1668502 
image.png
>>1668426
забей, у меня получилось
однако проверку на то, жив некто или нет, я еще не сделал
эта задача заняла у меня около двух часов плак плак
Аноним 26/04/20 Вск 23:06:36 #186 №1668503 
>>16684>>1668497
>>1668497
Вау, у меня все получилось. Код: https://ideone.com/YCVfBf . Только у меня есть вопрос: почему до этого не работало без условия $i < strlen($example) ? я ведь принудительно завершал цикл командой break.
Аноним 26/04/20 Вск 23:06:53 #187 №1668504 
>>1668497
Что у тебя значит $op? я поставил $char и скрипт завелся. Проверь https://ideone.com/uzYGII
Аноним 26/04/20 Вск 23:09:57 #188 №1668508 
>>1668504
$op значило прошлый знак, $char знак, который я вынул из строки сейчас
Аноним 26/04/20 Вск 23:12:34 #189 №1668512 
>>1668504
к слову, скрипт выдает неправильные решения https://ideone.com/fhiGNM . для этого я и использовать переменную $op
Аноним 26/04/20 Вск 23:30:54 #190 №1668522 
>>166>>1668504
Вот, запилил вроде как норм решение. По итогу проблема оказалась в приоритете условий. Исправил и теперь все идеально работает. Вот код https://ideone.com/HiWp87 .
Аноним 27/04/20 Пнд 00:34:12 #191 №1668560 
>>1668502
Я вот смотрю и не могу понять, это такой жирный троллинг?Это не байт реально интересно
Аноним 27/04/20 Пнд 01:13:45 #192 №1668585 
>>1668560
Никак нет, просто я абсолютно впервые сел за код. Что не так?
Аноним 27/04/20 Пнд 01:41:52 #193 №1668596 
Сап двощь, поясните ситуацию про тех. задания. Из недавних собесов всегда была какая-то залупа "Напишите прилу без фреймворков и либ но с композером и ООП". Нормально ли подключать psrовские интерфейсы если мне это нужно? Или вот хочу реализацию UriInterface газловскую подрубить, как вероятно что сразу скажут что я дебил и нужно было С НУЛЯ всё писать?
Аноним 27/04/20 Пнд 02:13:15 #194 №1668604 
>>1668334
>Начнем с того, что с хуев у тебя есть таблицы без моделей?
Пытаюсь поиск на сфинксе сделать. Через eloquent посылаю запросы к демону (не знаю насколько это хорошая идея, я нуб). Первая таблица индексы, вторая rt индексы.
Аноним 27/04/20 Пнд 04:49:14 #195 №1668639 
>>1668596
А работают они тоже на чистой пыхе?
Аноним 27/04/20 Пнд 09:20:28 #196 №1668727 
>>1668596
Нужно у тех хуил спрашивать подойдет или нет. Если нет возможности - смотри насколько упрощает код. Смысл такого ограничения - посмотреть как ты пишешь (а не на вызов одной функции из либы). Если остается довольно много - то можно и использовать скорее всего. Если у тебя там под сотню строк (исключая всякий бойлерплейт) и они начнут выебываться - можно слать нахуй. Если конечно финансы не поджимают.
Аноним 27/04/20 Пнд 13:04:33 #197 №1668934 
Дурашка-кун снова на связи.
Эдвенсед-задача про кредит мучала меня всю ночь и теперь еще сегодня.
Школьник решил купить айфон и для этой цели взял кредит. Сумма кредита — 40000 р., банк в начале каждого месяца (включая первый) начисляет 3% от остатка долга за пользование кредитом и 1000 р. комиссии (да, а ты думал, обойдешься процентами?). После этого, в конце каждого месяца, наш герой идет в банк и пытается выплатить долг, но он не может заплатить более 5000 р за раз (сэкономленных на школьных завтраках). Вопрос, когда он избавится от долга? Во сколько школьнику обошелся айфон? http://codepad.org/nm9jPcpd

Если исправить ошибку в условии, что $creditBalance <0 на ( $creditBalance * $percent ) + $servicePayment < $montlyPayment, то скрипт останавливается, не давая балансу уйти в отрицательное значение, что есть маленькая победа. А что делать дальше, я сломал себе мозг.
Я правильно понимаю, что мне нужно задать новое значение $monthlyPayment равное остатку по кредиту? Как мне это сделать?Куда бы я не вставил, например, $montlyPayment = $creditPayment скрипт сыпается.

https://ideone.com/gn5MGN

Аноним 27/04/20 Пнд 13:14:12 #198 №1668951 
>>1668934
if (($creditBalance $percent + $servicePayment) < $monthlyPayment) {
$monthlyPayment = ($creditBalance
$percent ) + $servicePayment;

уот так
Аноним 27/04/20 Пнд 13:14:51 #199 №1668954 
>>1668951
>>1668934
Забыл умножение
if (($creditBalance * $percent + $servicePayment) < $monthlyPayment) {
Аноним 27/04/20 Пнд 13:20:21 #200 №1668960 
>>1668934
https://paiza.io/projects/ZpENKSqRgSjjyZQomgeD8A?language=php
в общем, допиши дальше сам
мимо тоже дурашка-кун 2
Аноним 27/04/20 Пнд 13:27:24 #201 №1668973 
15875393500642.jpg
>>1668954
Да, так тоже пробовал, но что-то не шло, сделал как у >>1668960
поменял условие в цикле и убрал break, потому что видимо он останавливал скрипт раньше времени, не давая посчитать последний платёж

Спасибо огромное как перестать чувствовать себя тупым
Аноним 27/04/20 Пнд 13:29:23 #202 №1668976 
>>1668973
Я и есть он.Я так же вечно туплю и тоже на этом калькуляторе тупил.Ты такой не один. главное продолжать идти вперёд Наверное
Аноним 27/04/20 Пнд 14:16:32 #203 №1669025 
Вообще принято где-нибудь не пользоваться магическими методами, фасадами и другими спорными "фишками" ларавеля? Пока изучаю всякие рандомные проекты на гитхабе, и там они всегда задействованы. Как лучше учиться?
Аноним 27/04/20 Пнд 14:34:54 #204 №1669064 
>>1669025
Эти спорные фишки нужны для более быстрой разработки. То есть за один-два месяца склепать работающую приложуху, и кое как её потом поддерживать иногда. Если проект охуеть какой крупный то там вообще стараются максимально от фреймворка абстрагироваться, ну и как бы для такого от ларки становится много меньше чем от симфони например. Тут смотри под задачи, если есть задача написать какую-то шляпу усатую по тз за 3 недели один раз, то, как бы это хуево не звучало, но можешь без проблем писать всю логику прямо в контроллерах. Так банально быстрее чем что-то пердолить и моделировать.
Аноним 27/04/20 Пнд 14:55:18 #205 №1669109 
>>1668604
Как только доберешься до условий и лимитов, обнаружишь, что в сфинксе SQL уровня пук-кек и не поддерживает приблизительно нихуя.
Я тебе уже сказал выше по треду, используй json апи
Facebook Аноним 27/04/20 Пнд 15:25:47 #206 №1669181 
facebook post.jpg
106330923-1578676182018gettyimages-1178141599.jpeg
Ок спрошу здесь.
А почему Mark Zuckerberg так сильно окуклил свой код? Типа чтобы "безопасно" было?

Я даже элементарно не могу найти в сурс коде названия профилей людей которые лайкнули этот пост:
https://www.facebook.com/mafiamd/photos/a.769452613108524/2848699558517142/
Допустим вы видите что поставил
Egor Smetansky

Но ни в каких .js файлах или .css файлах этого названия не найти, даже в html. Каким образом мой браузер тогда отображает текст: "Egor Smetansky" когда я мышкой навожу на иконку like?

Я сохранял эту страницу на локалку к себе, потом контенты всех файлов (.js и .css в основном), но нигде не было найдено совпадений с "Smetansky".
Вот как например мне, будучи не залогиненным в facebook, найти где в коде "Smetansky" спрятно и как раздобыть id этого чувака?
Аноним 27/04/20 Пнд 15:46:59 #207 №1669203 
>>1669181
Лол, разумеется, это хранится в БД фейсбука и подтягивается при наведении.
Аноним 27/04/20 Пнд 15:58:01 #208 №1669216 
>>1669181
При наведении на объект страница посылает ajax-запрос на /api/graphql и получает ответ.

Смотри активность браузера, нажми F12 и посмотри трафик. Ты всё сам увидишь.
Аноним 27/04/20 Пнд 15:59:59 #209 №1669218 
>>1669181
Такое могли сделать чтобы нагрузку уменшить. Таких кнопок же много на странице может быть. Инфа подтягивается только если она действительно нужна (навели мышку). Плюс у него же SPA - акцент сдвинут на динамическое обновление содержимого страницы а не загрузку всего сразу.
Аноним 27/04/20 Пнд 16:13:27 #210 №1669227 
where.jpg
>>1669216
>ajax-запрос на /api/graphql
И в каком из этих файлов этот запрос и ответ находятся?
>>1669218
есть ли возможность увидеть ссылку на профиль будучи не залогированным, того же Smetansky.
Аноним 27/04/20 Пнд 17:56:09 #211 №1669331 
fb.png
>>1669227
Открываешь вкладку network, потом наводишь мышку - что-то из того что появилось и нужно. Просматриваешь где какая инфа. Когда находишь нужное, смотришь вкладку headers - там инфа которую нужно передавать чтобы твой запрос обработали. Смотришь что там можно менять. Там ебля еще та может быть, особенно если защита от XSS подрублена.
Аноним 27/04/20 Пнд 20:31:57 #212 №1669494 
че-то вакансий для вката совсем мало на hh. Есть ли щас смысл вкатываться по гайду из шапки?
Аноним 27/04/20 Пнд 21:02:41 #213 №1669527 
>>1669494
Так ты и на мидловые откликайся
Аноним 27/04/20 Пнд 21:23:18 #214 №1669559 
>>1669227
Если руками хочется попробовать, то можно сделать из меню F12 "copy as curl" и с помощью curl воспроизвести запрос. Curl умеет через параметры и куки, и все методы, и все заголовки, конечно.

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

В принципе так можно сложные сессии какие-то воспроизводить.
Аноним 28/04/20 Втр 08:49:40 #215 №1669858 
call out the cat.mp4
37681816.jpg
>>1669331
thanks, то что мне нужно было
Аноним 28/04/20 Втр 14:08:35 #216 №1670186 
Как приделать hot reload к apache with php?
Аноним 28/04/20 Втр 15:52:19 #217 №1670336 
Толстой.png
Ежедневный пост от Дурашка-куна:

На картинке — часть программы, создающая философское настроение. Принцип работы таков: есть 5 наборов слов, из которых случайно выбираются слова, образуя такую структуру:

> слово1 слово2 слово3
> слово1 слово2 слово3
> Я слово4 слово5

Я снова категорически туплю, наработки пока выглядят так:
https://ideone.com/NCPhVd

Вопросы:
1) Как заставить код вместо ключей выдавать значения? В одной из предыдущих задач удавалось это сделать c помощью переменной типа $random[$word1], тут ничего не выходит

2)Почему первая и вторая строки выходят идентичными, хотя по идее должны браться рандомно из массива

3) как выглядит решение?((((
Аноним 28/04/20 Втр 16:53:52 #218 №1670429 
Проверьте решение задачи "Сдача", пожалуйста. https://ideone.com/XY1kBq
Аноним 28/04/20 Втр 16:54:20 #219 №1670431 
>>1670336
> Как заставить код вместо ключей выдавать значения?
С помощью ключа получаешь значение. У тебя не выходит потому что ты передаешь не ключ.
> Почему первая и вторая строки выходят идентичными
Пoтому что ты их составляешь из идентичных переменных - для второй строки их нужно заново генерировать.
Попробуй перечитать все (вообще все) заново. Ты путаешся в базовом синтаксисе. Если дальше так продолжишь то запутаешся еще больше. https://ideone.com/HHW3qK
Аноним 28/04/20 Втр 17:29:48 #220 №1670493 
>>1670429
фикшу сам себя. немного доработал, убрал повторяющиеся действия. Вот обновленная версия: https://ideone.com/5yI8fA
Аноним 28/04/20 Втр 20:51:43 #221 №1670784 
>>1670336
https://paiza.io/projects/w9b1irXE7t5aEjb66ncylQ?language=php
Аноним 28/04/20 Втр 21:27:40 #222 №1670850 
>>1670784
я так и думал, что есть решение проще. Пытался сделать так же, но
кажется у меня рили проблемы с элементарным синтаксисом, потому что как только я пытаюсь юзать подобные переменные $word2[array_rand($word2)], код сыпается.

А есть еще какие-нибудь пособия для самых маленьких? видео или статьи. Часто помогает восприятию изложение одних и тех же тем разными людьми.
Аноним 29/04/20 Срд 00:36:17 #223 №1671057 
bb.PNG
Есть задача , сразу же первая по ссылке https://phpbooktest2.ga/l1/mou-ikkai.html , прикрепляю скрин самой задачи Вообщем, решаю усложненный вариант( который не решается жадным алгоритмом). В процессе решения было много трудностей,с которыми ОП очень помог, остановка произошла , на том , что я для начала должен был сделать программу для генерации комбинаций , вот я сделал https://ideone.com/XhuCwE .

Следующим моим шагом уже стало решение задачи про банкомат, следуя советам, сделал так: одна функция генерирует комбинации, по примеру как с числами, тут только вопрос правильно ли я это осуществил генерацию комбинаций купюр, с числами было попроще. Другая функция проверяет комбинацию, соответствует ли комбинацию тому количеству денег , которое требуется выдать. Сделал все это пока без оптимизации, хочется для начала узнать адекватно ли я вообще написал этот код , и есть ли тут грубые ошибки. Вот сам код https://ideone.com/6tgkDv . Далее уже буду делать оптимизацию.

Есть еще вопрос , можно же было бы осуществить все без генераторов запихнув функцию проверки в функцию генерации комбинации https://ideone.com/5L3qJh , или это ужасно выглядит ?
Аноним 29/04/20 Срд 11:56:52 #224 №1671267 
Есть PHP скрипт, в котором парсится текстовый файл, который лежит в папке рядом со скриптом (буквально там написано $file = 'data.txt';).
Находится все это в папке D:\Code\
Так вот, оно как-то странно работает, если запускать его из командной строки Windows.
Если перейти в папку (в консоли ввести D: cd code) и запустить скрипт (php script.php) - все работает отлично.
Если же попытаться запустить скрипт не переходя в папку, а задав абсолютный путь (php D:\code\script.php) то скрипт начинает выполняться, но выдает Warning что не может найти файл data.txt.

Почему так? Как это исправить?
Аноним 29/04/20 Срд 12:16:37 #225 №1671281 
>>1671267
>Почему так?
>'data.txt'
Это относительный путь. Он считается от точки запуска скрипта, а так как ты запускаешь его из другой директории, то он не может найти файл.

>Как это исправить?
__DIR__ . DIRECTORY_SEPARATOR . 'data.txt'
Пропиши вместо относительного пути.
Аноним 29/04/20 Срд 12:46:58 #226 №1671304 
15878140117112.jpg
>>1671281
Спасибо.
Аноним 29/04/20 Срд 13:25:00 #227 №1671336 
а можно ли с пхп баловаться в консольке?
Аноним 29/04/20 Срд 13:30:34 #228 №1671342 
>>1671336
Да. Можно даже демонов писать. Только тсссс
Аноним 29/04/20 Срд 13:31:48 #229 №1671343 
>>1671342
что такое демоны?
Аноним 29/04/20 Срд 14:01:10 #230 №1671376 
>>1671343
сам нашел
Аноним 29/04/20 Срд 18:08:02 #231 №1671677 
Тупой вопрос :
strstr - Находит первое вхождение подстроки. Как это можно перевести на человеческий язык?

Ну то есть "находит первое вхождение части строки" звучит не очень понятно.Или это я слишком тупой?
Аноним 29/04/20 Срд 19:15:47 #232 №1671717 
эм, анонсы, поясните мне вот такой момент. работаю с настройками магаза и его моделью. значения сюда записываются через json_encode и поэтому там залупа в виде u043fu0443u043a и соответственно чтобы все было по канону свои астройки которые я посылаю туда (для своей модели собсно) я шлю через енкод. все норм и он спокойно записывает то что мне надо. но проблема в том когда я их обратно достаю и юзаю json_decode() он мне возвращает сука то же самое. т.е. не NULL, не исключение, а просто такую же закодированную строку. в чем трабл? стоит пыха 7.2.3 если че
Аноним 29/04/20 Срд 21:03:03 #233 №1671812 
>>1656450 (OP)
Хочу быть фронтендом. Хтмл и ксс с горе пополам знаю. Что дальше учить? JS или PHP?
Аноним 29/04/20 Срд 21:05:59 #234 №1671818 
>>1671812
>Хочу быть фронтендом
>JS или PHP
Сам как думаешь?
Аноним 29/04/20 Срд 21:07:04 #235 №1671821 
Что я делаю не так?
https://paiza.io/projects/mNxIIUEXLbF6KWLdsx_NSQ?language=php
Он выводит будто все буквы в тексте гласные, так ещё и сверху накидывает выше нормы. При этом если использовать английские буквы, то всё нормально.
Дело конечно в локале, но mb_internal_encoding('utf-8') не помогает
Аноним 29/04/20 Срд 21:12:45 #236 №1671827 
>>1671818
А по фрилансу как на жс или рнр?
Аноним 29/04/20 Срд 21:21:05 #237 №1671838 
>>1671827
Новые проекты на пыхе в 99.9% случаев представляют из себя вкидывания 300$ в индуса надеясь получить от него хоть немного юзабельный продукт
На западе даже самые прозженные любители поговнокодить массово перекатываются на питухон/руби как новую тулзу для шлёпанья монолитов
Аноним 29/04/20 Срд 22:23:22 #238 №1671885 
>>1671838
>На западе даже самые прозженные любители поговнокодить массово перекатываются на питухон/руби как новую тулзу для шлёпанья монолитов
жаль в роисии сука не так
Аноним 29/04/20 Срд 22:44:57 #239 №1671907 
Дурашка-кун снова просит о помощи.

Ебучая задача про палиндром: как блять это сделать, пользуясь только знаниями из обучалки?

https://ideone.com/NZXJOp вот я разбираю слово на символы, одним циклом с начала строки, другим циклом с конца строки. Как их сравнить и получить только итоговый результат по строке, а не по каждому символу?
Можно ли не делать два цикла, а как-то уместить это в один?
Если закидывать строку посимвольно в массив, как мне сравнить элементы из начала и конца массива? это вообще можно сделать?
Аноним 29/04/20 Срд 22:56:12 #240 №1671919 
>>1671907
Твои страдания в этом треде самый лучший пример почему не надо даже думать трогать это говно
Аноним 30/04/20 Чтв 00:17:47 #241 №1671985 
>>1671907
решил в итоге вот так https://ideone.com/db801m
работает как часы, однако не так, как задумывал автор обучалки, очевидно
Аноним 30/04/20 Чтв 00:43:59 #242 №1672015 
>>1671985
я тут наговнокодил, можешь посмотреть, если хочешь
https://ideone.com/Lz0ktY
Аноним 30/04/20 Чтв 02:03:49 #243 №1672058 
dcvx3gj-4e7a800a-1cf5-40dc-a0f8-c294490f4701.jpg
>>1672015
функции блять какие-то, непонятно нихуя
спасибо, вернусь к этому позже, как начну понимать хоть что-то
Аноним 30/04/20 Чтв 03:19:38 #244 №1672069 
Делаю сейчас тестхаб из ОП-поста на ларавеле. Думаю, что через неделю-другую бэк более-менее до ума доведу. Хочу фронт написать на тайпскрипте и вью. Норм связка, или лучше реакт+тайпскрипт? Если что в жс-е, очень плохо разбираюсь, но понравился синтаксис тайпскрипта. На фреймворках никогда ничего не писал, так что все равно что учить.
Аноним 30/04/20 Чтв 08:58:45 #245 №1672133 
>>1671838
>На западе даже самые прозженные любители поговнокодить массово перекатываются на питухон/руби как новую тулзу для шлёпанья монолитов
Статистику перекатывания в студию. Я уже вскукареков наслушался.
Аноним 30/04/20 Чтв 09:07:59 #246 №1672135 
>>1672069
>Делаю сейчас тестхаб из ОП-поста на ларавеле.
Нафига на эту херь время тратить? Лучше написать какой-то полезный сервис и захостить, набираясь реального опыта, а не разработки в вакууме.
Эта ересь кучу времени заберёт, ничего тольком не дав взамен кроме умения писать круды и накатывать миграции изучается за неделю.

С тех пор как выучил пхп и пошёл по фрилансу и заявкам, то стало очевидно, что местное дрочево никому не нужно - синьоры сами поговнокодить мастера.
Аноним 30/04/20 Чтв 12:31:16 #247 №1672241 
>>1671821
Попробуй mb_strstr и mb_strlen
Аноним 30/04/20 Чтв 13:17:44 #248 №1672283 
>>1672241
Спасибо, попробую так
Аноним 30/04/20 Чтв 15:46:51 #249 №1672405 
>>1672135
>Лучше написать какой-то полезный сервис
>С нулем опыта
Аноним 30/04/20 Чтв 16:12:58 #250 №1672443 
>>1672135
>пошёл по фрилансу
>синьоры
чего блять
Аноним 30/04/20 Чтв 21:47:43 #251 №1672922 
>>1671985
https://paiza.io/projects/RqqnXFOCfVQ46FimCGCCUQ?language=php

Мой говнокод Реальный говнокод, держи
Аноним 30/04/20 Чтв 22:06:00 #252 №1672942 
>>1672922
>Реальный говнокод
Всё так
https://paiza.io/projects/tKHPyGCVRrhdMlVBGW43Iw?language=php
Аноним 30/04/20 Чтв 23:05:21 #253 №1672993 
>>1672922
А функцией strrev можно пользоваться?
Аноним 30/04/20 Чтв 23:08:06 #254 №1672995 
>>1672993
>>1672942
И даже если без strrev, то зачем пользоваться вырезанием подстроки, когда можно напрямую символы получать как
$test[$i]? Проще ведь будет?

Извитите, не пишу на вашем ПХП, не знаю как у вас писать принято.
Аноним 30/04/20 Чтв 23:10:29 #255 №1672996 
>>1672942
Просто есть уверенность в том, что можно сделать куда лучше и проще
>>1672993
Ну автор учебника не рекомендует тк не работает с русскими буквами Я сам учусь и не знаю тонкостей
Аноним 30/04/20 Чтв 23:20:01 #256 №1673008 
>>1672996
Да, решил проверить и понял что обделался, строка побайтово сравнивается. Не подумал, что скриптовые языки в 2020 не могут нативно с юникодом работать.

>>1672996
>Ну автор учебника не рекомендует тк не работает с русскими буквами
Учи питон, пока не поздно. Не будешь такой хуйнёй страдать, там всё намного лучше.
Аноним 30/04/20 Чтв 23:25:56 #257 №1673013 
>>1673008
Звучит как начало пасты про dive into python.
А если без шуток, то где объективно синтаксис лучше : у питона или пхп?
Аноним 30/04/20 Чтв 23:30:33 #258 №1673019 
>>1673013
У питона, однозначно. Его делали специально для того, чтобы синтаксис был стройным и лаконичным. Свои минусы у него есть, но в другой части.
Аноним 30/04/20 Чтв 23:46:21 #259 №1673041 
>>1673019
Понял, спасибо.Даже если питон возможно лучше хотя мне кажется всё зависит от того на чем ты начал в начале, все дело в привычке, то все равно на пхп больше вакансий для джунов. К тому же принцип работы языков программирования очень схож и думаю в случае чего смогу перекатиться.
Аноним 01/05/20 Птн 00:00:31 #260 №1673059 
>>1673019
Питон однозначно хуже. И смешное "развитие" не помогает практически ничем. Вообще он выглядит как один из худших вариантов для бекенда. Даже голый жс получше. Лучше бы питонисты занимались более подходящими задачами, чем вот это вот.
Алсо, нужна не лаконичность, а выразительность. Лаконичностью доведенной до уродства студентота только меряется. И они, кстати, как раз дрочат на питон.
Ноудискасс, т.к. 3 года уже на питоне пишу бек и всей душой его ненавижу, с каждым днем все больше, переубедить не выйдет никак.
Аноним 01/05/20 Птн 00:02:34 #261 №1673063 
>>1673041
Ну как хочешь. Хотя проверил сейчас, на ХХ за неделю 1134 вакансий со словом питон и 470 на ПХП, это в Москве.

Языки вроде питона, ЖС и го на разные направления ориентированы, самая широкая область у питона, а ПХП только веб и только в одном стиле.
Аноним 01/05/20 Птн 00:03:47 #262 №1673067 
>>1673059
Что для бека в питоне хуже по сравнению с ПХП?
Аноним 01/05/20 Птн 00:05:27 #263 №1673072 
>>1673063
Я живу не в москве и у меня в городе одинаковое количество вакаский для пхп/питон`а.
Вот только вакансий без опыта для питона вообще нет.
Аноним 01/05/20 Птн 00:07:17 #264 №1673076 
>>1673072
Ты только начал вкатываться?
Аноним 01/05/20 Птн 00:10:30 #265 №1673084 
>>1673076
Да.
Аноним 01/05/20 Птн 00:51:31 #266 №1673178 
>>1673084
Сколько лет?
Аноним 01/05/20 Птн 01:17:31 #267 №1673232 
>>1673178
21
Аноним 01/05/20 Птн 01:33:44 #268 №1673254 
>>1673232
Дерзай, есть все шансы. Мне 25, уже больше года не могу вкатиться в пыху, работа дворником не оставляет времени на саморазвитие.
Аноним 01/05/20 Птн 02:11:44 #269 №1673275 
>>1673254
Дворники вроде мало работают в день.Или ты полный день работаешь?
Если я не смогу за год-полтора научиться и найти работу джуном, то пополню твои ряды.
>>1672922
https://paiza.io/projects/Src-bGvqCdab1Jqk6gfqKQ?language=php
переделал, теперь всё должно нормально работать.Если не использовать спец символы...Всё как задумывал автор Наверное

Аноним 01/05/20 Птн 02:23:46 #270 №1673279 
>>1673254
Ну ты все же не бросай попытку, даже если систематически по часу будешь в день учить, то через пару лет сможешь вкатиться.Там ещё от удачи всё зависит - видел вакансию в своём городе где вообще не слишком много нужно знать, мол главное желание учиться развиваться Оплата от 15 до 30к, но скорее всего на деле 15к
Аноним 01/05/20 Птн 02:55:50 #271 №1673285 
>>1672995
В пыхе по индексу ты читаешь не символ а байт, собсна мультибайтовая кириллица идет по пизде. Исторически сложилось что создатели пыхи ложили хуй на юникод, и поэтому сейчас у каждой функции, которая работает со строками, есть клон с приставком mb_ в виде экстеншена. Такие дела :'c
Аноним 01/05/20 Птн 10:25:32 #272 №1673377 
почему пхп ненавидят?
Аноним 01/05/20 Птн 10:29:48 #273 №1673379 
>>1673377
Зависть.
Аноним 01/05/20 Птн 10:31:51 #274 №1673380 
>>1673379
или потому что он старый?
Аноним 01/05/20 Птн 10:42:11 #275 №1673385 
>>1673380
Моложе него только всякая хипстеркая хуита. Особенно если отсчитывать от появления zend engine. Из относительно мейнстримовых только шарп помоложе будет.
Аноним 01/05/20 Птн 10:44:24 #276 №1673387 
>>1673377
Кто его ненавидит? Как вообще можно ненавидеть инструмент?
Какие-то эмоции к нему, да и к прочим ЯП, испытывают только совсем уж ньюфаги в мире ИТ. Чем и палятся.
Аноним 01/05/20 Птн 10:46:52 #277 №1673390 
>>1673385
я имел ввиду,что он не поспевает за свежими и модными трендами
Аноним 01/05/20 Птн 10:49:41 #278 №1673393 
>>1673390
Схуяли непоспевает? Практически все есть, в 8 версии многопоточность подвезут (хотя она и никому не нужна).
Аноним 01/05/20 Птн 10:50:26 #279 №1673394 
>>1673393
>многопоточность
а разве не асинхронность?
Аноним 01/05/20 Птн 10:56:38 #280 №1673397 
>>1673393
>>1673394
Откуда такая инфа? Ни того ни другого из коробки вроде не будет в 8. Там самое главное jit и синтаксис подтянут в очередной раз, как же без этого. Алсо, Стогов хипстерские запросы коробочной асинхронности уже неоднократно посылал нахуй, т.к. считает ее неважной. Похоже это в самую последнюю очередь будет сделано.
Аноним 01/05/20 Птн 11:08:37 #281 №1673403 
>>1673397
ну если они в разы повысят скорость,то асинк нах не нужен
Аноним 01/05/20 Птн 11:13:22 #282 №1673406 
>>1673403
Асинхронность не для скорости языка в целом нужна, а для редких кейсов одновременной обработки блокирующих операций. Они реально редкие, поэтому особо не парятся с добавлением асинхронности в пых.
Со скоростью тоже уже давно хорошо, хотя апать есть куда. Все равно это не узкое место.
Критичное для пыхи - это повсеместная и легкая смена парадигмы исполнения на долгоживущие сервисы, т.к. узким местом теперь является повторяющаяся загрузка всякой мишуры одинаковой между запросами. Это, впрочем, уже многими реализовано. Из последнего нашумевшего - роадраннер. И того выходит асинхронность пхп нужна почти никак.
Аноним 01/05/20 Птн 11:20:53 #283 №1673412 
>>1673406
>ся повторяющаяся загрузка всякой мишуры одинаковой между запросами. Это, впрочем, уже многими реализовано. Из последнего нашумевшего - роадраннер. И того выходит асинхронность пхп нужна почти никак.
нихера не понял
Аноним 01/05/20 Птн 11:55:48 #284 №1673426 
>>1673406
>Критичное для пыхи - это повсеместная и легкая смена парадигмы исполнения на долгоживущие сервисы, т.к. узким местом теперь является повторяющаяся загрузка всякой мишуры одинаковой между запросами.
А как быть в ситуации, когда 10k клиентов, которые слушают вебсокет. Держать в памяти и крутить параллельно 10k машин, по одной на каждого клиента, и дальше синхронизировать обмен данных через внешние системы обмена сообщений?

Асинхронность или многопоточность нужны вот для таких вариантов. Один процесс обслуживает много клиентов, за счёт этого радикально снижаются некоторые накладные расходы. Не только память и какие-то вычисления, но и подключения к внешним сервисам и др.
Аноним 01/05/20 Птн 12:52:13 #285 №1673468 
>>1673426
>когда 10k клиентов, которые слушают вебсокет.
вот про сокеты тоже интересно послушать
Аноним 01/05/20 Птн 14:27:17 #286 №1673544 
15335074428900.jpg
Дурашка-кун упёрся в регулярки.

Как правильно оформить регулярное выражение на определение правильности номера телефона?

" сначала идет +7 или 8, за ними ровно 10 цифр, между которыми может быть любое число скобок, минусов, пробелов"

непонятно, как дать "любое число скобок, минусов и пробелов" на любом участке текста, если символы в регулярке считаются по порядку, как я понимаю.
Аноним 01/05/20 Птн 14:53:30 #287 №1673568 
>>1672993
>>1672995

По поводу функций для работы с русскими буквами - подробно описано тут: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md
Аноним 01/05/20 Птн 15:34:58 #288 №1673609 
>>1673544
Тут так просто не решается. Можно перед регуляркой почистить от этого, можно так, например ([() -]\d[() -]){10}
Аноним 01/05/20 Птн 15:35:29 #289 №1673610 
>>1673609
Звездочки побились, ну ты понел.
Аноним 01/05/20 Птн 16:01:28 #290 №1673642 
>>1673544
отвечу сам себе:

все левые символы надо просто убрать с помощью
$number = str_replace([")","(","-"," "], "",$string);
Аноним 01/05/20 Птн 16:15:13 #291 №1673674 
>>1673377
До появления жс был самым конченым языком из популярных.
Сейчас место короля параши у js.

(Но по мне, C++ по уебищности никому уже не переплюнуть. Кто на C++ писал - тот в цирке не смеется.)
Аноним 01/05/20 Птн 16:15:52 #292 №1673676 
>>1673390
>свежими и модными трендами
Это какими?
Аноним 01/05/20 Птн 20:49:08 #293 №1673918 
>>1673642
>все левые символы надо просто убрать с помощью

Ну охуеть, ав самой задачне нельзя ыбло написать что их убирать надо? Я тоже думал что надо в регулярке прописывать любой символ
Аноним 01/05/20 Птн 21:59:48 #294 №1674006 
>>1673377
Пых плох и ненавидим не столько сам по себе, сколько в плане того, кто и что на нем разрабатывает. На голом пыхе можно написать что угодно в интернет-мире, что приводит к тому, что есть куча "фрилансеров" 15летних с бирж и прочих начинающих, которые пишут роутинг в стиле switch($_SERVER['REQUEST_URI']) на 150 пунктов, свой класс DB, верстают шаблонами голого пыха куда прокидывают свой же класс DB, и так далее, и так далее. Все это можно делать и на джаве с питоном, но почему-то в основном такие перлы коммьюнити у пхп. Ну и процедурная лапша на глобалках в цмс или фрилансовые заказы шоб работало вчера без какого-либо ревью это тоже большая часть рынка у пхп, там могут быть матерые говнокодеры. Ну а если брать пхп мир симфони с ларой, то чего, нормальные вещи, ничего выделяющегося в плане хуевости на фоне других популярных языков, лара вообще стильная модная молодежная.
Аноним 01/05/20 Птн 23:28:57 #295 №1674040 
>>1674006
>15летних с бирж и прочих начинающих, которые пишут роутинг в стиле switch($_SERVER['REQUEST_URI']) на 150 пунктов

Такое кстати пишут не только 15-летние но и с 15-летним опытом без шуток. Когда за 15 лет варишься в этом чане с говном и не видишь как можно по другому написать. Знавал я одного разраба, говорил что все бугуртят от вордпресса просто потому что не знают как с ним правильно работать. Хотя он вроде понимал что в цикле делать запросы к бд это не очень правильно(скорее не очень быстро для него), но это по вордпрессовски и проще ебануть какой-то кеш программный чем пытаться по другому. Ну и конечно не признавал композер, установить сторонние либы это копипаст в локальный файл и подключение через include, в общем лучшие практики 2003 года.
Аноним 02/05/20 Суб 00:52:53 #296 №1674076 
>>1674006
>но почему-то в основном такие перлы коммьюнити у пхп
Ты ещё не видывал что пердоли на js лепят порой.
Аноним 02/05/20 Суб 05:10:27 #297 №1674123 
Подскажите в чем ошибка

https://paiza.io/projects/O4cLQ-FFcaq6hvtuQRYOTw
Аноним 02/05/20 Суб 05:56:09 #298 №1674125 
>>1674123
У тебя внизу ошибки пишутся в командной строке, балда.
Аноним 02/05/20 Суб 06:33:45 #299 №1674134 
Всем привет, я начал учить верстку. Глянул вакансии и там джва пути:
1. Или ты должен знать в добавок к верстке php, sql и разные cms
2. Или ты должен иметь официальный опыт работы с js-фреймворками

Второй вариант в общем-то отпадает, ибо нельзя взять официальный опыт, если чтобы взять официальный опыт, надо иметь официальный опыт. Попал во фрактал. Значит интересует первый вариант. Это получается надо знать linux-администрирование что ли? Чтобы php на сервере настроить? А как считаете на stepic.org хорошие курсы по linux?
Аноним 02/05/20 Суб 07:04:50 #300 №1674144 
>>1674134
Что написать в preg_replace чтобы работало

https://paiza.io/projects/O4cLQ-FFcaq6hvtuQRYOTw
Аноним 02/05/20 Суб 07:49:39 #301 №1674162 
>>1674144
Разобрался с реплейсом, но все равно не работает
Аноним 02/05/20 Суб 13:24:39 #302 №1674300 
>>1674076
Видел, в одном месте работодатель любил ванилла жс без зависимостей, поэтому все писалось кошмарными велосипедами на кучах ифов и конечно же без какого-либо ES6+
Аноним 02/05/20 Суб 14:35:53 #303 №1674381 
>>1674162
\D
Аноним 02/05/20 Суб 14:37:50 #304 №1674385 
>>1674300
Такое в любом языке встречается. Я хз как сильно надо быть ёбнутым мешком чтобы увидев одного говнокодера составлять мнение вообще о всех пишущих на этом же языке.
Аноним 02/05/20 Суб 16:08:22 #305 №1674470 
симфони не создает проэкт,хотя вроде процесс скачки был
Аноним 02/05/20 Суб 18:06:17 #306 №1674551 
return this.PNG
Почему надо возвращать текущий объект при обращении к нему, как показано на рисунке? Это небольшая часть symfony forms, да и вообще там (в симфони) всегда так, при присваивании данных в объекте
Аноним 02/05/20 Суб 18:14:39 #307 №1674553 
>>1674551
Чтобы можно было цепочки писать типая zalupa.foo(123).bar(456);
Аноним 02/05/20 Суб 18:20:54 #308 №1674563 
>>1674553
А при создании объекта можно вызвать функцию в одну строку? по типу new CallClass()->create(); или мне все равно придется закинуть new CallClass() в переменную, и обратиться к методу через переменную?
Аноним 02/05/20 Суб 18:23:40 #309 №1674572 
>>1674563
(new CallClass())->create();
Аноним 02/05/20 Суб 18:26:38 #310 №1674579 
>>1674572
Емаё, а где в мануале php это можно найти?
Аноним 02/05/20 Суб 18:29:58 #311 №1674584 
>>1674572
А все, нашел в основах классов и объектов. балдеж
Аноним 02/05/20 Суб 18:36:42 #312 №1674592 
>>1674572
Я больше люблю через статический метод создавать. Получается красивее: $result = ClassName::make(foo, bar)->handle(blabla);
Аноним 02/05/20 Суб 18:41:23 #313 №1674594 
>>1674592
Слышал мнение, что нахуй не нужна твоя статика.
Аноним 02/05/20 Суб 18:44:17 #314 №1674598 
>>1674592
Красивее делать вот так:
(new class {
....public function call($name) {
........echo $name;
....}
})->call("yo");

>>1674594
Заметь, что у него статический метод это фабрика, которая возвращает какой-то объект, ничего ужасного в этом нет
Аноним 02/05/20 Суб 18:44:33 #315 №1674599 
>>1674594
Ты не въехал в это мнение. Можешь сам нахуй пройти.
Аноним 02/05/20 Суб 18:46:15 #316 №1674602 
>>1674598
>Красивее делать вот так
Ебать ты вывернул.
Аноним 02/05/20 Суб 21:50:33 #317 №1674804 
Screenshot2020-05-0221-45-32.png
Накатил psalm, получился какой-то тайпскрипт на минималках, но всё равно какая-то даже иллюзия появилась что мой код будет меньше ошибок срать. На пике например массив классовых констант с определенным интерфейсом. Радует то что сразу подсвечиваются не обработанные null, которые с функций возвращаются, там главное не ставить самую анальную строгость, а то весь код красный будет.
Аноним 03/05/20 Вск 07:42:20 #318 №1675166 
Приветствую!
Есть у кого скачанный phpbooktest2(точка)ga?
Аноним 03/05/20 Вск 15:52:44 #319 №1675511 
>>1675166

Можно зайти сюда: https://github.com/codedokode/phpbook

Нажать "Clone or download", и там нажать Download ZIP.
Аноним 03/05/20 Вск 16:08:26 #320 №1675520 
>>1675511
Благодарю!
Аноним 03/05/20 Вск 16:46:40 #321 №1675543 
>>1656450 (OP)
>У нас есть свои уроки по основам PHP, они собраны и выложены по адресу http://codedokode.github.io/phpbook
Так, ну а чего ссылка не работает?
Аноним 04/05/20 Пнд 10:54:32 #322 №1675990 
>>1675543
все работает
Аноним 04/05/20 Пнд 12:23:04 #323 №1676056 
15882408591750.jpg
>Кто-то хочет открыть стартап
Аноним 04/05/20 Пнд 13:07:42 #324 №1676083 
>>1675990
у меня тоже перестала работать :о
Аноним 04/05/20 Пнд 13:10:54 #325 №1676084 
>>1676083
а нет, отбой. из закладок не открывает, а из треда нормально
Аноним 04/05/20 Пнд 13:12:55 #326 №1676086 
изображение.png
>>1676084
Аноним 04/05/20 Пнд 13:31:51 #327 №1676099 
cacatb.png
>>1676056
>за 7.5 килорублей
Аноним 04/05/20 Пнд 13:34:14 #328 №1676102 
15365995696100.jpg
>>1676099
>без MVP
Аноним 04/05/20 Пнд 13:36:01 #329 №1676103 
https://wiki.php.net/todo/php80
Аноним 04/05/20 Пнд 16:07:04 #330 №1676302 
>>1656450 (OP)
Сап, аноны.
Сложно ли реализовать плату за услугу онлайн, например тура?
То есть, чтобы пользователь забронировал и оплатил тур онлайн?
Аноним 04/05/20 Пнд 16:45:25 #331 №1676373 
>>1676302
Смотря как. Если ты хочешь сам принимать и хранить карточки (платежную информацию) то сложно. Нужно разные сертификации проходить и подобную ебанину. Если просто подключить сторонний сервис (яндекс-деньги, paypal или подобную парашу) то ничего особо сложного.
Аноним 04/05/20 Пнд 17:53:05 #332 №1676435 
dbyp16h-b8717200-426e-44d3-9fa2-3bc452d034ce.jpg
«Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).

>>выводить кусок текста с ошибкой

как?(
Аноним 04/05/20 Пнд 19:46:35 #333 №1676560 
>>1675990
У меня пишет не удалось получить доступ к сайту, пробовал с впна и другого компа - ничего.
Аноним 04/05/20 Пнд 20:00:05 #334 №1676593 
>>1676435
>как?
Как хочешь. Это и есть работа программиста.
За говнокод тоже ебать тебя будем.
Аноним 04/05/20 Пнд 21:29:53 #335 №1676701 
>>1676560

Открывай ссылку http://codedokode.github.io/phpbook - должно работать.
Аноним 04/05/20 Пнд 21:33:50 #336 №1676708 
>>1676701

Ой, ошибся, там слеш на конце и https: https://codedokode.github.io/phpbook/ - так открывается.
Аноним 05/05/20 Втр 01:14:35 #337 №1676926 
Делаю тестахаб. Такой вопрос. Вот тут ОП предлагает по очереди выводит юзеру каждый вопрос
>/test/NNN/question - страница вопроса теста. Показывается сколько осталось времени, текущий вопрос и дается возможность ответить на него. Можно возвращаться к предыдущим вопросам. Можно не отвечать на вопрос. Контроль времени должен вестись на сервере, чтобы его нельзя было обойти.
Я хочу сделать так: когда юзер начинает тест, то ему приходят сразу все вопросы, а дальше на клиенте джаваскрипт их пагинирует. Так ведь проще, чем каждый раз к серверу через аякс обращаться, чтобы получить следующий вопрос. Или есть какие-то подводные камни?
Аноним 05/05/20 Втр 02:26:28 #338 №1676973 
>>1676926
>Я хочу сделать так: когда юзер начинает тест, то ему приходят сразу все вопросы, а дальше на клиенте джаваскрипт их пагинирует. Так ведь проще, чем каждый раз к серверу через аякс обращаться, чтобы получить следующий вопрос. Или есть какие-то подводные камни?

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

ОП так предлагает, потому что так наверное проще с точки зрения вкатывальщика, ну и в целом интереснее даже. На жсе по-человечески для этого лучше сразу какой-то вью подрубать, а то охуеешь на жиквери это писать.
Аноним 05/05/20 Втр 02:44:40 #339 №1676977 
>>1676973
>Например, ты хочешь трекать время ответа на каждый вопрос, можно это доверить клиенту и получать массив ответов с затраченным рядом временем на каждый вопрос. С одной стороны кулхацкер может туда что угодно написать, с другой стороны если это не сильно важная инфа в контексте то и хуй с ней.
Да,про это думал. Но мне кажется, что бесполезно трекать время ответа на конкретный вопрос. Важен же общий результат и время выполнения целого теста.
> для этого лучше сразу какой-то вью подрубать
Я так и хотел. Добра за ответ! Пойду пилить.
Аноним 05/05/20 Втр 03:34:59 #340 №1676992 
>>1676708
О, открыло. Пасиб
Аноним 05/05/20 Втр 04:53:49 #341 №1677001 
Помогите, пожалуйста
<?php

$result = $i * $i;

for ($i = 1; $i <= 10; $i++) {
echo "($i)x($i)=($result)\n";
}

Должно вывестись
1x1=1
2x2=4
3x3=9
...
10x10=100
Все в общем работает, только ответы везде 0. В чем ошибка?
Аноним 05/05/20 Втр 05:47:34 #342 №1677012 
>>1677001
$result = fn($i) => $i * $i;

echo "($i)x($i)=({$result($i)})\n";

какое же пыха говно
Аноним 05/05/20 Втр 06:17:44 #343 №1677015 
>>1677012
Спасибо, но fn это что?
Аноним 05/05/20 Втр 06:29:53 #344 №1677017 
>>1677015
Это куколд какой-то не местный - забредают тут контуженные, иногда, со своим никому не интересным мнением.
Он херню пишет.

>Все в общем работает, только ответы везде 0. В чем ошибка?
>$result = $i * $i;
Вот это в цикл убрать надо. Перед echo.
Аноним 05/05/20 Втр 06:47:37 #345 №1677024 
>>1677017
Я пробовал, получилось в итоге
11x11=0
Аноним 05/05/20 Втр 06:50:32 #346 №1677025 
>>1677024
Выдумываешь.
https://3v4l.org/69LSF
Аноним 05/05/20 Втр 06:51:23 #347 №1677026 
>>1677025
Видимо что-то не углядел, сейчас заново попробую.
Аноним 05/05/20 Втр 06:59:32 #348 №1677027 
>>1677025
Все работает, спасибо
Аноним 05/05/20 Втр 11:32:12 #349 №1677141 
Почему единица не выводится?

$i = "instructions and recipes";

if (strrpos(" $i ", " instr") == true) {print 1;}
Аноним 05/05/20 Втр 11:36:31 #350 №1677147 
>>1677141
Потому что у тебя возвращается 0, что неявно кастится в false. Хуярь явную проверку, и желательно строгую. В твоем случае !== false. Проблема дизайна в старых функциях стандартной либы есть такая.
Аноним 05/05/20 Втр 11:38:51 #351 №1677151 
>>1677141
>" $i "
Ну и еще, нахера ты вот так передаешь?
Аноним 05/05/20 Втр 11:42:14 #352 №1677159 
>>1677151
Все я понял. 2 пробела нужно было ставить в первом сравнении
Аноним 05/05/20 Втр 11:48:06 #353 №1677169 
>>1677159
Звучит как костыль. Покажи.
Аноним 05/05/20 Втр 11:50:00 #354 №1677173 
>>1677159
https://3v4l.org/88WvA

Если че вот нормальное использование функции, о котором я говорил.
Аноним 05/05/20 Втр 11:52:50 #355 №1677177 
>>1677169
Нужно было найти фразы, в которых содержатся определенные участки текста в корнях (в начале слов)

Эта функция

if (strrpos($url_3, '@') == true) {print 1;} # Эта хуита не работает для начальных строк

не подводила, разве что не возвращала true если искобый обьект не находится между другими обьектами, отчего ставлю пробел
Аноним 05/05/20 Втр 11:54:14 #356 №1677182 
>>1677177
>если искобый обьект не находится между другими обьектами, отчего ставлю пробел
trim, чтобы от ненужных пробелов и прочего по краям избавляться.
Аноним 05/05/20 Втр 11:55:31 #357 №1677184 
>>1677182
Если не будет пробела во фразе, как я определю именно начальные фрагменты слов?

Для удаления пробелов и сносок у меня отдельная функция
Аноним 05/05/20 Втр 11:57:48 #358 №1677191 
>>1677184
К примеру мы ищем

if (strrpos("Божество всенародное", ' всена') == true)

найден фрагмент. а

if (strrpos("Божество всенародное", ' Бож') == true)

не найдет

if (strrpos("Божество всенародное", 'Бож') == true)

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

if (strrpos(" Божество всенародное", ' Бож') == true)

т.е. 2 пробела во фразе где мы ищем и один пробел в ищущемся фрагменте
Аноним 05/05/20 Втр 12:09:41 #359 №1677199 
>>1677184
Можно разбить на слова еще до проверки. Или использовать регулярки, с их помощью легко проверить начальные фрагменты слов.
Даже если ты этого не сделаешь, все равно правильно херачить через !== false. Вторым пробелом ты избегаешь возврата функции 0, и получаешь 1. 0 неявно кастится в false. 1 и выше неявно кастится в true, и только из-за этого неявного кастинга ты вставляешь два пробела в начало, вместо одного. Но это как был костыль, так и есть.
>==
От нестрогих сравнений нужно дисциплинированно отказаться навсегда кстати. Одна из причин, почему такие ситуации возникают. Сравнивается жопа с пальцем, кое как кастинги происходят, а тут вдруг вместо пальца хуй, и вроде ведь похож, да что-то кастинг срет под себя. Ты понял.
Аноним 05/05/20 Втр 13:31:41 #360 №1677315 
Какая CMS самая крутая по вашим ощущениям? Я знаю, вы скажете, У-У-У! все CMS - говно, фреймворки рулят! Но тем не менее, какая CMS самая приемлемая? inb4: KeystoneJS
Аноним 05/05/20 Втр 14:23:50 #361 №1677442 
>>1676435
я решил зайти на решение через массив, но как БЛЯТЬ вывести сами "ошибки" значения массива [0] через echo?
https://ideone.com/f9l7uj
Аноним 05/05/20 Втр 15:10:07 #362 №1677550 
>>1677442
разобрался, проходите мимо
Аноним 05/05/20 Втр 19:51:04 #363 №1678026 
image.png
Как сосется?
Аноним 05/05/20 Втр 20:03:30 #364 №1678050 
>>1678026
Отлично, причмокивая!
Аноним 05/05/20 Втр 22:56:06 #365 №1678263 
>>1678026
Пиздишь про опыт, делов то
Аноним 05/05/20 Втр 23:05:26 #366 №1678271 
У меня одного Оп-сайт с задачками не открывается?
Аноним 05/05/20 Втр 23:35:52 #367 №1678290 
>>1677141

Это неправильный код. Согласно мануалу, strrpos возвращает либо число, либо FALSE. TRUE она не возвращает не при каких условиях, и сравнение некорректное.

>>1678271

Попробуй в ссылке заменить http на https: https://codedokode.github.io/phpbook/
Аноним 05/05/20 Втр 23:44:33 #368 №1678301 
Почему обычно используют true === $obj->field вместо $obj->field === true? Это какая-то защита, если $obj окажется null? Как она работает?
Аноним 06/05/20 Срд 01:05:19 #369 №1678381 
>>1678301
>Это какая-то защита
Защита от случайного написания = вместо сравнения. В других языках тоже так пишут. Если в левой части что-то типа true, то попытка присвоения сразу же приведет к ошибке. Обратная ситуация могла бы стать трудноуловимым багом.
Аноним 06/05/20 Срд 01:37:38 #370 №1678388 
>>1678381
А, всего то. Спасибо, понял. Даже нагуглил https://en.wikipedia.org/wiki/Yoda_conditions
Аноним 06/05/20 Срд 04:14:44 #371 №1678405 
>>1678290
>Попробуй в ссылке заменить http на https

Спасибо, заработало
Аноним 06/05/20 Срд 08:19:20 #372 №1678442 
>>1678263
Это значение по умолчанию - херочка не указала по невнимательности. Не надо пиздеть.
Аноним 06/05/20 Срд 11:11:29 #373 №1678501 
>>1677315
Ну, ребят, ну, скажите! Или шо? Никто с CMS не хочет связываться? Зашквар?
Аноним 06/05/20 Срд 11:27:51 #374 №1678512 
>>1678501
Попробуй в /web/ спросить.
Аноним 06/05/20 Срд 11:31:41 #375 №1678515 
>>1678512
Объясни положняк этого треда. Тут cms зашкваром считается или нет? Типа cms зашквар и надо уметь в фреймворки?
Аноним 06/05/20 Срд 12:26:07 #376 №1678564 
>>1678515
Битрикс норм
Аноним 06/05/20 Срд 12:40:45 #377 №1678574 
>>1678515
Тут такое спрашивать зашкваром считается и теперь тебя негласно в петушиный угол определили.
Ну может ОП тебе чего ответит. Он любит петухов всяких няньчить.
Аноним 06/05/20 Срд 12:45:49 #378 №1678585 
>>1678574
>Тут такое спрашивать зашкваром считается и теперь тебя негласно в петушиный угол определили.
Я интересуюсь, а не спрашиваю. Выбирай выражения. И вообще ты кто такой чтобы запрещать мне интересоваться? Базаришь мне тут. Ты не авторитет для меня, ты меня понял? Все, базар окончен.
Аноним 06/05/20 Срд 12:51:27 #379 №1678597 
>>1677315
битриксахахах
Аноним 06/05/20 Срд 12:53:01 #380 №1678600 
>>1678597
>битриксахахах
Что это?
Аноним 06/05/20 Срд 12:56:49 #381 №1678607 
>>1678585
>Я интересуюсь
Зашкварные интересы - иди парашу чистить. Пацанам западло с тобой за дело тереть.
Будешь базарить много за CMS - в обиженку переведём.
Аноним 06/05/20 Срд 13:12:39 #382 №1678624 
>>1678607
Нахуя дефисы лепишь? Грамотей. И вообще ты не авторитет для меня.
Аноним 06/05/20 Срд 13:24:47 #383 №1678637 
>>1678624
А я авторитет?
Аноним 06/05/20 Срд 13:45:39 #384 №1678657 
>>1678600
СMS от 1С. Пилят ее еще с какого-то 1999 года, пользуется спросом за счет интеграции с 1С.
Аноним 06/05/20 Срд 13:51:07 #385 №1678663 
>>1678657
>пользуется спросом за счет интеграции с 1С
Не, у них просто бизнес-модель на маркетинг завязана. Они бабло вливают не в разработку, а в продвижение. В результате внутри она - параша, но про неё каждому кабанчику расскажут в презентации - какая она распиздатая.
Кодер на битрксопарашу стоит довольно дорого потому, что она полна страданий и мало кто любит с ней работать.
Аноним 06/05/20 Срд 14:10:02 #386 №1678693 
>>1678663
>она полна страданий
Ужас какой, это же пизнес, а зачем вы говорите, что это самая лучшая CMS? Вы что тролли что ли? Вы злодеи? Занимаетесь обманом? Занимаетесь ложью?
Аноним 06/05/20 Срд 14:14:45 #387 №1678695 
image.png
программачик, ньюфаг в треде. помоги с задачей пикрелейтед

<?php

for ($a=10000;$a>=1000000;$a/0.1) {
???
}

echo "$x лет";
Аноним 06/05/20 Срд 15:20:05 #388 №1678746 
>>1678693
Не понял твоего поста. Что тебе не нравится? Программисты не любят Битрикс и есть за что.
Да - поддержка 1С у тебя будет отличная, но всё остальное будет парашей. А так как Битрикс это для веб, то работа с 1С это только 10% от задач, и остальные 90% - боль и говнокод.
Аноним 06/05/20 Срд 15:26:51 #389 №1678754 
>>1678746
Ладно, понял, спасибо.
Аноним 06/05/20 Срд 15:43:18 #390 №1678783 
>>1678746
Русский православный гречневый программист должен уметь три вещи: разобраться с Битриксом, разобраться с 1С-кой и кодить на русских православных микроконтроллерах.
Аноним 06/05/20 Срд 16:00:12 #391 №1678807 
15632901350690.jpg
Когда изучал пхп, то пошёл сразу на фреймворки, PSR, ООП, и прочее.
Потом пришлось заниматься Вордпрессом. Уже вначале оказалось, что с ним не всё просто и там, где фреймворк предлагает простое и очевидное решение, на CMS это сделано наиболее ебанутым и неудобным способом.
Достаточно попробовать написать на фреймворке тот же блог, как всё станет очевидно.

Единственное, почему CMS ещё живы - они позволяют навасянить себе сайтик мышкой или нанять школьника для этого за копейки. Такое с фреймворком не прокатит - ему подай отдельный фронтенд где свои фреймворки есть, отдельный бекенд. Т.е. разработка несколько дороже выходит и професиональней.
Аноним 06/05/20 Срд 16:25:52 #392 №1678836 
>>1678807
На пике каратист Юрий Кормушин? Который в Военной тайне на Рен-ТВ самооборону, удары показывал?
Аноним 06/05/20 Срд 16:58:25 #393 №1678853 
>>1678836
Чел, ты чё? Макаку не узнаешь?
Аноним 06/05/20 Срд 17:04:41 #394 №1678860 
>>1678853
Стас Михайлов?
Аноним 06/05/20 Срд 17:16:02 #395 №1678877 
15632909407660.jpg
>>1678860
Макака.
Аноним 06/05/20 Срд 18:48:51 #396 №1678959 
>>1678695
<?php
$a=10000;
$x=0;
while ($a<=1000000) {
$a = ($a/100)*10 + $a;
$x++;
}
echo "$x лет"."\n";
echo "некто будет ".($x+16)." лет"."\n";
echo ($x+16)<=100 ? "доживёт" : "обмяк";
Аноним 06/05/20 Срд 23:30:05 #397 №1679159 
>>1656450 (OP)
Аноны, нужна ваша помощь.
Пишу магистерскую диссертацию на тему разработки сайта для турагенства да-да, такое тоже бывает.
Могли бы ответить на вопросы:
1) Можете подсказать CMS, который легок в обучении и есть адекватные уроки по нему? И чтобы уроки были не по готовому шаблону или конструктору, а чтобы объясняли как использовать CMS со своей версткой?
2)По идее можно или нужно реализовать возможность покупки специальных туров, которые предоставляет фирма онлайн. Как это реализовать максимально легко и безопасно, если это возможно? Получается нужна база данных, если да, то что она должна хранить?
3) Допустим все же воспользоваться готовым шаблоном. Можно ли его натянуть на CMS и сделать для него оплату онлайн?
4) Можете дать советы по разработке сайта для турагенства? Как что реализовать, может быть кто-то сталкивался с подобным.

Аноним 06/05/20 Срд 23:32:41 #398 №1679161 
G
Аноним 07/05/20 Чтв 00:09:07 #399 №1679185 
Верстальщик ужасно лажает, проеб на проебе и затягивание сроков в 10 раз. Какую программу ему можно поставить, чтобы она делала скриншоты раз в минуту и отсылала мне?

мимо пхп кодер с недовольным заказчиком
Аноним 07/05/20 Чтв 03:29:12 #400 №1679245 
>>1679185
Это не тот, который кнопки сабмита верстает как ссылки, а когда их переделываешь в кнопки то все стили слетают?
Аноним 07/05/20 Чтв 03:47:38 #401 №1679250 
>>1679159
>1) Можете подсказать CMS, кот
Очевидный вордпресс
>2)По идее можно или нужно реализовать возможность покупки специальных туров, которые предоставляет фирма онлайн. Как это реализовать максимально легко и безопасно, если это возможно? Получается нужна база данных, если да, то что она должна хранить?
Очевидный вукомерс
>3) Допустим все же воспользоваться готовым шаблоном. Можно ли его натянуть на CMS и сделать для него оплату онлайн?
Можно конечно и без особого труда
>4) Можете дать советы по разработке сайта для турагенства? Как что реализовать, может быть кто-то сталкивался с подобным.
Могу дать жизненный совет. Скорее всего ты на магистре по погромированию, судя по всему тебе это нахуй не надо, не еби себе мозг, купи готовый диплом, потрать лучше время с пользой.
Если тебе это реально интересно стало, то попробуй для опыта на фреймворке такое сделать, хотя бы будет о чем в записке написать. Если твой максимум это laba2.java, то понадобится время, которого может не хватить, в общем тут уж думай сам.

Ну и совет по теме, на бумаге нарисуй сущности своей предметной области, туры, агенты мб какие-то, я сам хз что там в этих турагенствах происходит. Набросай потом какие у них есть свойства, у тура например есть как минимум цена и перечень стран, входящих в этот тур, даты какие-то туда сюда. Нарисуй потом бизнес процессы. Если не можешь понять что тебе нужно, то позаходи на разные сайты турагенств и сразу увидишь какие у них есть фичи и вот это всё, хз надо или это для работы, сам решишь.
Аноним 07/05/20 Чтв 07:23:08 #402 №1679273 
>>1679185
>проеб на проебе и затягивание сроков в 10 раз
Изначальные сроки какие были? В норме на 1 страницу требуется 1-2 дня, от сложности. Может он тебе целый магаз за полдня сверстать взялся? Разумеется, что сильно затянет. Частая нубская тема.
Аноним 07/05/20 Чтв 07:48:10 #403 №1679297 
>>1679185
Просто найми меня
Аноним 07/05/20 Чтв 09:19:15 #404 №1679348 
Ананасы, будьте так любезны, перезалейте с рыги офлайн-зеркало обучалки, а то "файл был удалён", а мне на работе аутировать хочется, интернет только на телефоне
Аноним 07/05/20 Чтв 11:32:28 #405 №1679431 
>>1679250
>Если твой максимум это laba2.java, то понадобится время, которого может не хватить, в общем тут уж думай сам.
У него в запасе меньше месяца, не думаю, что он вообще может в программирование как таковое. Поэтому да, поддержу только ВП.
Аноним 07/05/20 Чтв 12:00:59 #406 №1679468 
Помогите разобраться. Пытаюсь вкатиться в ООП и столкнулся с таким вопросом. Например, хочу создать класс в котором будут базовые элементы - подключение к бд, лог запросов, времени выполнения, другие переменные, доступ к которым хотелось бы иметь из других классов. Как это правильно реализовать (и вообще правильно ли так делать в принципе)?
Аноним 07/05/20 Чтв 12:11:58 #407 №1679480 
>>1679468
>Как это правильно реализовать (и вообще правильно ли так делать в принципе)?
Гугли ActiveRecord
Аноним 07/05/20 Чтв 12:14:12 #408 №1679484 
15651892687250.jpg
>>1679468
Каждый класс создаётся под одну задачу, а ты целый слой задумал в один положить. Вангую, что у тебя так получится портянка на 100500 строк, с методами по 100500 строк, что является говной во всех смыслах.
Один класс - работа с БД, один - логирование сюда вобщем-то можно и время выполнения положить, один - всё это объединяетвроде как фасад который инициализирует загрузку и передаёт конфигурацию классам.
Глобальные переменный - удоляй. С данным подходом они не нужны никогда не нужны - класс БД получает от фасада данные, логгер тоже из фасада, ну и тд. И работают с ними на своём уровне.
Аноним 07/05/20 Чтв 12:32:49 #409 №1679502 
>>1679484
Да я образно все это в один класс объединил. Понятно, что под каждую задачу нужен свой отдельный класс. Вопрос в том, как создать единый экземпляр класса, чтобы он был доступен другим. И как правильно все это связывать
Аноним 07/05/20 Чтв 12:44:40 #410 №1679519 
>>1679502
>как создать единый экземпляр класса, чтобы он был доступен другим
Положи классы в контейнер при загрузке. Можно тот же php pimple использовать, с гитхаба, для хранения. Это такой класс для хранения других классов зависимостей, с дополнительными плюшками.
Ну и почитай по инъекциям зависимостей, хотя бы доку с примерами по этому Пимплу - там не сложно.
Аноним 07/05/20 Чтв 14:35:55 #411 №1679651 
>>1679348

Можно попробовать скачать отсюда: https://github.com/codedokode/phpbook - выбрать Clone or Download, и нажать Download as ZIP. ZIP распаковать в любую папку и дважды щелкнуть на html-файл для открытия.
Аноним 07/05/20 Чтв 14:42:15 #412 №1679661 
>>1679468

Если для работы одного класса нужен объект другого класса, то для этого придумано Dependency Injection: https://github.com/codedokode/pasta/blob/master/arch/di.md

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

Также, тебе стоит почитать про MVC: https://github.com/codedokode/pasta/blob/master/arch/mvc.md
Аноним 07/05/20 Чтв 15:10:01 #413 №1679706 
>>1679185
>Верстальщик ужасно лажает, проеб на проебе и затягивание сроков в 10 раз. Какую программу ему можно поставить, чтобы она делала скриншоты раз в минуту и отсылала мне?
Зачем какая-то программа? Гит юзайте и все, потом смотришь, если каждые 3 часа нет коммита, значит какие-то проблемы.
Аноним 07/05/20 Чтв 15:17:47 #414 №1679723 
>>1679185
>чтобы она делала скриншоты раз в минуту и отсылала мне?
Я б не стал работать в таких условиях - нездоровая вахтёрская хрень у тебя в голове.
Не нравится как он работает - решай вопрос с ним напрямую, а не подглядывай, ебло.
Аноним 07/05/20 Чтв 15:21:58 #415 №1679732 
>>1679185
>>1679723
>нездоровая вахтёрская хрень у тебя в голове
this.
Алсо, я не юрист, но мне что-то подсказывает, что поставить такое на личную машину сотрудника - риск быть набутыленным этим же сотрудником в любой момент, когда это вредоносное по заскринит или спиздит любые персональные данные. А машина скорее всего личная сейчас на удаленке.
На рабочую машину разве что можно, твое право, но от такого шизоидного вахтерства уйдет любой адекватный человек сразу же.
Аноним 07/05/20 Чтв 15:24:46 #416 №1679738 
>>1679732
>На рабочую машину разве что можно, твое право, но от такого шизоидного вахтерства уйдет любой адекватный человек сразу же.
Что шизоидное вахтерство поддержу, но такая ебала есть очень много где, и много людей вынуждены так работать, особенно те, кто изначально до ковида сидели на удаленке. Реальное есть много компаний, которыми рулят люди из 80-х.
Аноним 07/05/20 Чтв 15:26:36 #417 №1679742 
>>1679738
И люди не уходят, ибо смена рабочего места всегда стресс, это потеря заработка на месяц минимум, плюс многие люди понимают, что по скиллам не потянут, а еще на самом деле есть примерно процентов 50 омежных куколдов, которым это норм. Как и постоянные переработки и т.д., они даже не считают это чем-то таким.
Аноним 07/05/20 Чтв 15:38:12 #418 №1679754 
>>1679738
Всё это подглядывание по факту - бесполезная хрень. Нужно нанимать человека, чтобы он смотрел. Да не простого вахтёра, а который бы понимал, что там происходит - лишние траты, лишний геморрой. Или самому время тратить, что для двигающегося кабанчика - бред и ненужное занятие.
Блэт, это только извращенец и мог придумать - чтобы людей в напряжении держать и то первое время, а потом привыкают.

А ещё если учесть, что тут не машинистки работают и порой надо почилить-позалипать в думах, то чё как вообще? Та же помидорка-стайл требует регулярного отдыха. И что? Потом это сотруднику предъявлять - типа он в ютуб смотрел на работе? Ну охуеть теперь.
Аноним 07/05/20 Чтв 15:50:40 #419 №1679763 
>>1679754
>Всё это подглядывание по факту - бесполезная хрень.
Согласен полностью, но я охуел, когда узнал, сколько фирм пользуются такой хуйней. Как мне объяснил кабанчик, это нужно не для того, чтобы смотреть, чем там реально гребцы занимаются, а чтобы когда нужно будет человека выкинуть на мороз без выходного пособия, был аргумент. Который легко создать имея вот эти самые записи.

>а потом привыкают.
Чисто создание атмосферы страха. Бывает, правда, что и за гит предъявляют. Как вон на хабре чел писал, что его привели к боссу и сказали от руки (!) на бумажке номера коммитов записать (sic!).
Аноним 07/05/20 Чтв 16:05:42 #420 №1679787 
>>1679763
>чтобы когда нужно будет человека выкинуть на мороз без выходного пособия, был аргумент
Как-то не уверен, что суд этот аргумент примет в случае чего. В ТК вроде нет таких требований, чтобы разработчки без остановки код писал.
Аноним 07/05/20 Чтв 16:21:45 #421 №1679818 
>>1679787
>В ТК вроде нет таких требований, чтобы разработчки без остановки код писал.
Нету, верно. А вот если ты на полчаса допустим, вк или ютуб открыл - это вроде как вполне основания для выговора. А там как, выговор, строгий выговор, увольнение. Типа спалил пацана пару раз по скриншотам - он у тебя на удочке, уже бунтовать не станет, когда ты ему скажешь в пятницу перед релизом до 12 ночи сидеть.

Знаю парней, гребут на околомусарской конторе, занимаются дактилоскопией. Склад характера собственника и руководителя конторы соответствующий сфере деятельности. Там не то, что скриншоты, там над каждым рабочим местом установлены камеры, фиксирующие сотрудников. На фирме установлены штрафы. Например, один пацан уснул рабочим месте, хуяк - штраф 5,000 рублей, ну а че ФОТ оптимизировать как-то надо? Новая яхта сама себе не купит.

Пацаны вынуждены из толчка капчевать, это единственное место, где камер нет. Так вот и живут.
Аноним 07/05/20 Чтв 16:24:33 #422 №1679826 
>>1679818
А если они попробуют уволиться - их в лесу закопают? Или у них такая ничтожная квалификация, что после этой работы разве что в дворники идти?
Аноним 07/05/20 Чтв 16:28:45 #423 №1679832 
>>1679826
>А если они попробуют уволиться - их в лесу закопают?
Почему, з/п рассчитают и до свидания. Там очередь новых стоит.

>Или у них такая ничтожная квалификация, что после этой работы разве что в дворники идти?
Высокой квалификации там не требуется, плюс есть технические вузы да и специалистов полно еще со времен союза.
Аноним 07/05/20 Чтв 16:36:10 #424 №1679847 
>>1679832
>Почему, з/п рассчитают и до свидания.
И нахуя в такой помойке сидеть? Все что угодно будет лучше этого.
>Там очередь новых стоит.
Эта очередь из продавцов пылесосов, которые получили справку о прохождении курса за 100500 шекелей и теперь всем рассказывают, что уж они то программисты? Из тобою описанного никакой человек туда не пойдет при наличии выбора, а выбор в этой сфере пока еще есть и очень большой.
Не верю я, что такие существуют, тем более целыми очередями.
Аноним 07/05/20 Чтв 16:49:05 #425 №1679864 
>>1679847
>И нахуя в такой помойке сидеть? Все что угодно будет лучше этого.
Потому что там платят немного больше, чем в соседних конторах и намного больше, чем на заводе. А работа там - это электроника + лоу левел стафф на с/с++ и асме. Если не там, то на завод за 40к станки настраивать. А тут все-таки в теплом офисе с кофе-машиной и за компом, а не в цеху с выбитыми окнами в грязной робе поверх рубахи. Согласись, есть разница.

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

>Не верю я, что такие существуют, тем более целыми очередями.
Существуют. А еще существуют люди, которые живут в кризисе с 14 года и просто-напросто панически боятся потерять работу: у них очень узкая специальность, понимаешь? Таких контор всего-то несколько штук на всю Россию, это не ПХП, где потеряв работу, ты за неделю найдешь новую, похуй корона, не корона, ты завтра будешь снова гребсти, даже в условиях анальной оккупации, пока есть интернет, ты свои $5/h заработаешь. Тут немного по-другому.
Аноним 07/05/20 Чтв 16:50:41 #426 №1679866 
>>1679847
Работаю на силовиков в ИТ, ничего такого нету, получаю джуном 100к.
мимо бывший продавец пылесосов
Аноним 07/05/20 Чтв 17:42:26 #427 №1679921 
насколько сокеты из базовой библиотеки рабочая тема?
Аноним 08/05/20 Птн 02:38:56 #428 №1680464 
Представляю вниманию господ PHP Собеседование .
Аноним 08/05/20 Птн 02:39:13 #429 №1680465 
>>1680464
https://youtu.be/jeaj5cT6_Io
Аноним 08/05/20 Птн 09:18:52 #430 №1680542 
>>1680465
>Хекслет
Нахуй иди со своим хекслетом.
Аноним 08/05/20 Птн 09:30:53 #431 №1680548 
>>1680465
Ты ещё бы Гикбрейнс притащил - те же помои, только вид сбоку.
Аноним 08/05/20 Птн 09:59:31 #432 №1680554 
>>1680548
Я прошел там курсы и стал программистом. До этого собирал теплицы и мебель 10 лет
Аноним 08/05/20 Птн 10:34:38 #433 №1680565 
>>1680554
А я прошёл там курсы и стал техлидом. До этого подметал улицы и пил бояру.
Аноним 08/05/20 Птн 10:37:44 #434 №1680570 
>>1680565
Ты подороже курсы купил, судя по всему.
Аноним 08/05/20 Птн 20:13:46 #435 №1681416 
14760329563780.jpg
Прошло 5 лет, как я прогаю на php и сегодня я впервые установил и настроил XDebug.
В докере. На удивление, вроде без пердолинга встал и даже работает, я в шоке
Аноним 08/05/20 Птн 20:40:28 #436 №1681458 
>>1681416
А что в нём такого? Как-то ставил, но ничего кроме красивого вардампа не использовал.
Есть у него какие-то наиболее полезные фичи, а то ради вардампа влом конфиги пхп ковырять.
Аноним 09/05/20 Суб 01:00:51 #437 №1681732 
>>1656450 (OP)
Хех, помню я еще где-то в 7-8 классе сюда пробрался, наполненный уверенностью что скоро стану погромистом и буду загребать бабло лопатой. Прошел двачерский учебник похоже что он совсем не изменился с того времени, после чего меня угораздило посмотреть на настоящий php код какого-то сайта, я охуел, обосрался и больше в программирование не возвращался, при всем при этом поступил в айти шарагу и думал что когда-то начну изучать прогерство, лол. 6 лет выходит прошло, а ощущение что даже шапка почти не изменилась. Шарагу уже заканчиваю, через неделю сдача диплома, одногруппники уже миддлы, а я 4 года занимался хуй пойми чем и так и не начал ничего изучать. Подумал я на днях что не очень то хорошо будет всю жизнь мешки грузить, а с моим дипломом особо других вариантов нету, буду начинать заново походу, пожелайте удачи долбоебу, земля пухом.
Аноним 09/05/20 Суб 01:13:30 #438 №1681736 
>>1681416
>>1681458
Вы в голове что ли бек дебажите?
Аноним 09/05/20 Суб 02:29:24 #439 №1681763 
D984734071200.jpg
>>1681736
>Вы в голове что ли бек дебажите?
var_dump, для эстетов vardumper
Аноним 09/05/20 Суб 09:11:23 #440 №1681826 
>>1681736
Ну в редких случаях пользуюсь - когда странное поведение присутствует.
Когда сам чёто пишу - вообще не приходится пользоваться. Оно либо ошибку синтаксиса выдаст, либо работает сразу.

Сейчас на каждый пук бросается исключение и стектрейс выводится. Толку от вардампа?
Аноним 09/05/20 Суб 13:30:16 #441 №1681968 
>>1681732
Если до сих пор не вкатился, скорей всего тебе это и не надо, что за двухбитное мышление - или программист сверхразум 300к\наносек попивающий смузи в офисе или говночист и обслуживатель, видимо поэтому толпы зумеров и идут в ит - методички не поменялись, в свое время бумерам вдалбивали мысль стать офисными работниками всех мастей.
Аноним 09/05/20 Суб 13:42:52 #442 №1681990 
>>1680465
Включил на пять секунд, и уже услышал "не ебу" "блять"
Аноним 09/05/20 Суб 14:14:07 #443 №1682046 
задам тупой вопрос,но все же.
для joomla нужно изучит БД,жс,пхп?
Аноним 09/05/20 Суб 14:28:49 #444 №1682080 
>>1682046
Смотря на каком уровне работать собираешься. Если писать под неё и поддерживать, то надо учить и пхп, и жс, и саму архитектуру жумлы. Если просто сайтики делать из того, что есть, не не надо - это ж CMS, тут мышкой можно. Правда таких мышевозов - по 30 школьников на копеечный заказ.
Аноним 09/05/20 Суб 14:41:51 #445 №1682094 
>>1682080
мне нужна регистрация,личный кабинет для каждого юзера в котором нужно совершить действие(думаю придеться допилить).из коробки там есть простой конструктор,я смотрел темы-все они перегруженное говно
мож друпал?
Аноним 09/05/20 Суб 14:43:25 #446 №1682098 
>>1682094
но что мне подсказывает,что придется дрочиться с фреймворками
Аноним 09/05/20 Суб 14:52:35 #447 №1682105 
>>1682098
Если какой-то уникальный функционал делать собрался, то придётся. CMSки хорошо идут только под определённые задачи и никак под оригинальные.
Аноним 09/05/20 Суб 14:59:36 #448 №1682109 
>>1682105
мне импонирует,что в ЦМС не так много дрочева с фронтом,а я полный ноль в этом,пхп я хоть имею представление о языке.
мне всего то надо пару блоков для описания и картинки,вверху пару менюшек и кнопка авторизации и регистрации.
все шаблоны в магазине для меня избыточны,но мож я хреново искал
Аноним 09/05/20 Суб 15:05:28 #449 №1682115 
>>1682109
Найди образец в сети и закажи его верстале. Делов-то.
Аноним 09/05/20 Суб 15:06:12 #450 №1682116 
>>1682115
а что по ценам?
Аноним 09/05/20 Суб 15:12:35 #451 №1682121 
>>1682116
От сложности зависит же - чего закажешь.

Пчел, если тебе надо для дела и побыстрее, то учить всякую срань - не вариант вообще. Либо сразу садишься и васянишь - лишь бы работало, либо нанимаешь человека. Третьего не дано.
Аноним 09/05/20 Суб 16:31:31 #452 №1682193 
>>1681458
Дебаггер позволяет гораздо быстрее отлаживать.
Тебе не надо писать все эти вардампы, логи на каждый пук.
Ты просто ставишь точку останова, запускаешь код и тут же видишь все состояние программы реалтайм.
Особенно полезно, когда тебе надо посмотреть потроха какого-то объекта, куда без смазки так просто не залезть.
Аноним 09/05/20 Суб 16:43:54 #453 №1682205 
>>1681736
> level 1: неделю разбираешься, почему программа не работает. Понимаешь: syntax error.
> level 2: отличаешь ошибку синтаксиса от других типов ошибок.
> level 3: видишь ошибки синтаксиса ДО запуска программы.
> level 4: освоил var_dump().
> level 5: впервые написал программу длиннее 1 килобайта так, чтобы там не было ошибок.
> level 6: обнаружил, что ошибки выводятся не только на экран, но и в логи и даже хранятся там.
> level 7: впервые нашел сложную ошибку путем последовательных var_dump'ов через каждую строку.
> level 80: прогал 2 часа, написал 50 классов, впервые запустил проект, охуел от того, что все идеально работает без каких-либо ошибок.
> level 90: исправляешь ошибки в фреймворках и либах.
> level 100: коммитишь в ядро php.
Аноним 09/05/20 Суб 17:04:32 #454 №1682216 
>>1682205
> прогал 2 часа, написал 50 классов, впервые запустил проект, охуел от того, что все идеально работает без каких-либо ошибок.
Жиза. Постоянно себе пеняю за то, что сперва много пишу и только потом проверяю. При каждом запуске очко сжимается в ожидании часов отладки, но как-то жидко проносит.

>исправляешь ошибки в фреймворках и либах
Придирчивый стал до внутренностей всяких либ, что пиздос. Если код не по мне - не ставлю звезду.
Аноним 09/05/20 Суб 17:10:13 #455 №1682220 
>>1682205
>> level 80: прогал 2 часа, написал 50 классов, впервые запустил проект, охуел от того, что все идеально работает без каких-либо ошибок.

Это так и должно работать когда ты максимально описываешь всё типами, структуры у тебя это не неймлес массивы а классы, остаются только логические ошибки, для них тесты пишешь. И внезапно пропадает тот страх, когда боишься поменять одну строчку в коде потому что думаешь что всё сломается.
Аноним 09/05/20 Суб 17:26:58 #456 №1682238 
>>1681968
>Если до сих пор не вкатился, скорей всего тебе это и не надо, что за двухбитное мышление - или программист сверхразум 300к\наносек попивающий смузи в офисе или говночист и обслуживатель
Это не двухбитное мышление, для меня это суровая реальность. Образование уже не поменяю, даже каким-то продажником стать не смогу из-за дефектов речи и охуенных коммуникативных навыков, тут либо IT либо говночист. За деньгами не гоняюсь, это вообще последнее дело для меня
Аноним 09/05/20 Суб 17:36:44 #457 №1682245 
>>1682238
Не слушай его, мне вообще было похуй на погромирование, после универа начал вкатываться только ради денег, а потом со временем всё больше и больше начало нравится, я настолько аутистом стал что вместо анимы смотрю разные доклады и презентации
Аноним 09/05/20 Суб 18:08:45 #458 №1682264 
>>1681732
Дисциплина бро, нужны конкретные сроки и конкрентые цели, сделай пару проектов для портфолио и ищи работку джуном, висеть в вакууме дома и что-то учить очень сложно дольше 3-5 месяцев, ну примерно.
Аноним 09/05/20 Суб 18:21:19 #459 №1682273 
>>1679921

Не понял вопрос. Ты бы описал, что у тебя за задача.

>>1677315

Ты тоже не описал задачу, для чего тебе понадобилась CMS.

>>1676926

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

>>1677442

Там лучше использовать foreach ($errors as $error) { echo "{$error[0]}"; }

Аноним 09/05/20 Суб 18:21:43 #460 №1682276 
>>1676435

Выводить кусок текста рядом с ошибкой можно несколькими способами:

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

>>1673544

Можно сделать регулярку, которая ищет ровно 1 цифру, и любое число минусов, скобок, пробелов после нее. А затем взять эту регулярку в скобки и указать повторение 10 раз: (одна цифра и символы){10}

>>1673426

Для работы с вебсокетом можно либо использовать сторонний готовый демон, либо делать свое решение с использованием библиотек вроде ReactPHP.
Аноним 09/05/20 Суб 19:21:55 #461 №1682318 
>>1682276
>Для работы с вебсокетом можно либо использовать сторонний готовый демон, либо делать свое решение с использованием библиотек вроде ReactPHP.
лучше не надо
Аноним 10/05/20 Вск 02:47:45 #462 №1682757 
image.png
image.png
Аноны, я тут залетный. Срочно нужна хелпа. Суть вопроса: мне нужно скомпилировать файс с кодом программы в исполняемый файл на винде. Использую MinGW x64, компилятор gcc. Сделать это нужно из php скрипта. Вызываю shell_exec() и передаю туда строку с путем компилятора, именем файла с кодом и выходным имеенм файла. Если эту же строку скопировать и вставить в cmd, то все работает так как нужно. Но если я делаю это из shell_exec(), то вылетает пикрил1. При чем, если я в shell_exec() передам "gcc --version", то он так же работает норм и выдает пикрил2. Уже не знаю что делать. Хоть винду переустанавливай.
Аноним 10/05/20 Вск 03:18:04 #463 №1682766 
>>1656781
>уже думал что
Просто зачем учить пхп, если есть Python/Javascript?
Аноним 10/05/20 Вск 17:00:49 #464 №1683289 
>>1682757

Гуглить gcc windows + код ошибки не пробовал?
Аноним 10/05/20 Вск 17:03:45 #465 №1683292 
>>1682766

Если тебе нравится Яваскрипт, то что ты забыл в этом треде? Переубеждать тебя никто не будет. PHP вполне решает задачу разработки бекенда веб-приложений. Также, есть статья и про твой яваскрипт с питоном: https://habr.com/ru/post/315152/
Аноним 10/05/20 Вск 19:37:06 #466 №1683463 
Тестирования на JS вопрос!
В Jest'е пытаюсь затестить свою обертку над axios. Ничего не получается. В тестировании новичок, как и что мокать непонятно, особенно axios.create() и axios.interceptors.

https://codesandbox.io/s/jest-axios-testing-kx8gu — вот ссылка, пытаюсь написать тест на функции модуля client.js.

Буду очень рад вашей помощи, советам и подсказкам.
Аноним 10/05/20 Вск 23:24:31 #467 №1683622 
>>1681416
Серго, ты? Нашел уже свой секуре контроллер или тебя таки пидорнули?
Аноним 11/05/20 Пнд 05:45:43 #468 №1683705 
11.jpg
В чем ошибка?
Аноним 11/05/20 Пнд 07:03:52 #469 №1683716 
>>1683705
Точки с запятой ставь после выражений.
https://dbfiddle.uk/?rdbms=mariadb_10.4&fiddle=aa478b703d477e236919ab951b938f60
Аноним 11/05/20 Пнд 14:53:18 #470 №1684001 
в чем разница между симфони и ларавелу,кроме того,что 2 на основе 1?
с виду симфони какой то более сложный,конфиги и пр...
Аноним 11/05/20 Пнд 15:28:38 #471 №1684015 
>>1684001
Какие там основы, заебали уже. Ларавель сам по себе. От симфони только http foundation использует вместо psr 7 15
Аноним 11/05/20 Пнд 15:42:43 #472 №1684022 
>>1684001
Конвеншион овер конфигурэйшион - это ларавель, но ты должен придерживаться правил, что в какой папочке должно находиться. Симфони - все настраевается, но настроек охулиард и легко поломать: у тебя может падать сервис потому что зависимость через зависимость через зависимость через зависимость отсутствует или не настроена и хер поймешь.
Аноним 11/05/20 Пнд 16:42:05 #473 №1684079 
Господа, подскажите как правильно реализовывать проверку прав доступа RBAC?
Есть у меня объект user, у него есть роли и разрешения. И допустим я хочу что бы кнопка "загрузить" была доступна только пользователю с ролью "admin". Дайте инфы или код - как принято делать такие вещи правильно и опрятно.
А то у меня естественно мозгов на большее чем допустим такое в контроллере -
if(! isset( user->permission->download)){
//доступ к кнопочке запрещен
return/редирект / и т.п.
}

не хватает

Как првоерять по феншую?
Аноним 11/05/20 Пнд 17:11:58 #474 №1684134 
Хм, есть тут такие ебланы как я? "Вкатываюсь" уже 3 года.
1 год "вкатывался" во фронт JS пинал хуи на остоебеневшей говноработе. Уволился слава Будде, жаль не лет на пять раньше, походил по мухосрани и понял что со своим JS/react уровня около ноль я могу идти на хуй,и вкатился в другую ламповую работку гос-шарага где ультра-лайтовые условия. Там уже освоил пистон кое как, sql, пхп и ноду. На пхп запилил приложуху для шараги и несколько скриптов которые регулярно исполняются в базе. На ноде пишу всякие невнятные парсеры авито с сохранением данных в базу,в штаны, к Аллаху за пазуху.
Но все это у меня уровня хобби. Фактически я не вкотился. Код - говнокод. Коммерческой разработки нет. Ответственности тоже нет особой.
И блядь никакой предпринимательской жилки, уже года полтора как, имея такую хорошую работку, я должен был копротивляться на дно-фрилансе, набивая опыт - шишки.
Но сейчас уходить с нынешней работы - вообще не хочу. Если бы не оклад в 40 косарей - прям идеальная работа.да и эту зп могли бы поднять, если бы я активнее писал на пхп - задачи есть.

Короче годы прошли в битвах с прокрастинацией, инертностью и зоной комфорта. И не смотря на то что я таки что то научился пилить, считаю что я пример как раз тех вечно-вкатывающихся.
Аноны , все таки сосредоточьте ваши усилия на дисциплине и целеустремленности.
И дайте совет как мне поступить, что делать? Это с учетом того что увольняться сейчас точно не хочу, а времени свободного на работе много.
Фрилансить? Удаленку для джуна типа меня искать? Или вкатываться в какое то сообщество где что то пилят, и где код-ревью сделают, чем то помогут? Такие вообще существуют?
Аноним 11/05/20 Пнд 17:28:46 #475 №1684167 
>>1684134
Да потерпи еще лет нцать, жизнь не такая долгая штука, как кажется на первый взгляд.
Аноним 11/05/20 Пнд 19:00:31 #476 №1684270 
>>1684079

Можно как в Симфони: сделать сервис для провекрки наличия прав, в который ты передаешь юзера и константу действия. А в базовом контроллере или трейте сделать метод isGranted(действие), которое берет текущего юзера и через сервис проверяет права. Еще можно сделать метод denyAccessUnlessGranted(действие).

Почитай про Симфони: https://symfony.com/doc/current/security.html#security-securing-controller

>>1684022

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

>>1684134

Не знаю. Можешь попробовать фреймворк еще освоить какой-нибудь. Если ты будешь разбирать код компонентов Симфони, то может быть, чему-то научишься. Если не знаешь ООП, то в учебнике из шапки есть глава по ООП, а тут https://github.com/codedokode/pasta/ есть всякие статьи про паттерны и архитектуру.
Аноним 11/05/20 Пнд 19:30:28 #477 №1684293 
>>1684167
Тут ты прав. Нужно выползать из зоны комфорта. А то сейчас у меня прогинг - хобби просто, ответственности никакой.

>>1684270
>>Можешь попробовать фреймворк еще освоить какой-нибудь
Я плотно использую slim, eloquent, sentinel и всякую бороду из либ. Буду в ларочку въезжать. ООП знаю, "знаю" громко конечно звучит. Пишу на классах.

Зона комфорта короче.
Пизда ей суке.
Аноним 12/05/20 Втр 07:09:41 #478 №1684672 
okrav.png
Вопрос по уроку ОП о шаблонах. Там на стадии "Умник" есть шаблон, в котором какая-то псевдо-управляющая констукция внутри тегов <if></if>. Я не могу понять принцип ее взаимодействия с функцией super_mega_template_engine(). Кому не лень посмотреть и вкратце растолковать, как все работает? Или может работать в принципе - сама функция ведь не показана, потому можно только догадки строить.
Ссылка: https://github.com/codedokode/pasta/blob/master/php/templates.md#%D1%83%D0%BC%D0%BD%D0%B8%D0%BA
Аноним 12/05/20 Втр 08:05:07 #479 №1684699 
Кто-нибудь проектирует тут в yii2. Тут недавно интервью было с SamDark-ом, где он говорил что нельзя писать бизнес логику в моделях наследующихся от ActiveRecord и контроллерах. Где их размещать тогда?
Аноним 12/05/20 Втр 08:06:53 #480 №1684701 
>>1684699
>Тут недавно интервью было с SamDark-ом
С пробуждением. Именно из-за того, что приходится явно говорить такие очевидные вещи AR считается антипаттерном уже многие годы. Ну а толстые контроллеры это даже не антипаттерн, а роспись в профнепригодности.
>Где их размещать тогда?
В сервисном слое.
Аноним 12/05/20 Втр 08:45:52 #481 №1684722 
>>1684672
Просто посмотри как работает популярный шаблонизатор https://twig.symfony.com/doc/2.x/internals.html
Аноним 12/05/20 Втр 09:34:31 #482 №1684761 
>>1684699
Такие вопросы у тебя из-за того, что ты получил следствие без причины.
"Модель" в юии это не "модель" из MVC, это просто неудачное название, по факту это интерфейс для работы с записью в базе данных. И для этого юии, собственно, и нужен - для максимально быстрого и удобного протаскивания этого интерфейса работы с записью в базе данных до конечного пользователя. Если это именно то, чем должно заниматься твое приложение, то бинго, юии идеально выполнит твои задачи.

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

Вот вкратце причина. Собственно это все обсосано по сто раз на форумах юии. Хороший пример Елисеев, который постепенно эволюционировал от курсов "как генерить формы на юии" к курсам по созданию самописного фреймворка, использованию DDD и PSR. Рекомендую именно его почитать, чтобы немного проветрить мозги.
Аноним 12/05/20 Втр 10:25:03 #483 №1684780 
>>1684699
В сервисный слой убери, как тебе посоветовали.

>>1684761
Человек спросил куда девать бизнес-логику, а ты пространно высрался про доки Yii и порекомендовал читать Елисеева.
Пиздец какой-то просто.

Аноним 12/05/20 Втр 11:14:37 #484 №1684810 
>>1684780
Охиутельный совет про "сервисный слой" конечно поможет больше. С тем же успехом посоветовал бы писать "не в модели и не в контроллере".

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

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

По моему это гораздо лучший совет, чем "ну в классе код пиши, хуе мое".
Аноним 12/05/20 Втр 11:17:33 #485 №1684812 
>>1684810
Посоветую тебе меньше читать и больше писать - по ходу разберёшься.
Аноним 12/05/20 Втр 11:20:16 #486 №1684818 
>>1684722
>>1684780
А где вы размещаете сервисный слой? Создали папку serices и классы ModelNameService?

>>1684761
Да уже поняли что ошибались, что поделать. Нужно теперь рефакторить, но хотелось бы знать как нормальные люди это реализовывают.
Аноним 12/05/20 Втр 12:38:54 #487 №1684886 
>>1684818
>ModelNameService
Сервис это элемент функционала приложения. К модели он имеет посредственное отношение и называть его так не стоит.
Аноним 12/05/20 Втр 12:55:25 #488 №1684903 
Аноны, подскажите вот что, не могу понять. Допустим я записываю в бд пароль пользователя в виде хэша с солью.
Соль - рандомная строка.
Как потом проверяется при аутентификации пароль пользователя, если соль с которой он регестрировался - рандомно-уникальная?
Аноним 12/05/20 Втр 12:57:46 #489 №1684905 
>>1684903
Соль вытаскиваеться из бд.
Аноним 12/05/20 Втр 13:51:08 #490 №1684955 
>>1684905
>>Соль вытаскиваеться из бд.
Большая часть алгоритмов вроде как с рандомной солью.

Я правильно понимаю что выглядит это так.

$randomSalt = "rsalt";
$password = 'пароль';
$hash = hash($randomSalt . $password );

А в базу пишется уже такая строка - $randomSalt . $hash ;
Я правильно понимаю?

Аноним 12/05/20 Втр 13:55:14 #491 №1684963 
>>1684955
Типа того. Соль генерится случайно, записывается в бд и в последующих проверках используется записаная в бд.
Аноним 12/05/20 Втр 17:15:20 #492 №1685316 
>>1684818

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

Например, User - это сущность (со свойствами email, pass_hash, blocked итд), а RegistrationService - это сервис, решающий задачу регистрации пользователей. У него могут быть такие методы:

- createUser($email, $pass): User
- deleteUser(User $user)
- validateLogin($email, $pass): bool
- blockUser(User $user, bool $blocked)

Заметь, что сервис не имеет дела с Request/Response/куками/сессией/HTTP-заголовками - это задача контроллера. Благодаря этому сервис можно вызывать даже из CLI скриптов, где нет никаких реквестов.

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

Также, "сервисный слой" описан в книге Фаулера про паттерны: https://martinfowler.com/eaaCatalog/serviceLayer.html
Аноним 12/05/20 Втр 17:17:39 #493 №1685319 
>>1684903

При регистрации:

- генерируем соль
- берем хеш от (пароль + соль)
- записываем в БД соль:хеш

При логине:

- вытаскиваем из БД соль
- берем хеш от (пароль + соль)

Зачастую соль и хеш для удобства объединяются в одну строку, хранятся в одной ячейке таблицы и разделяются каким-нибудь спецсимволом.
Аноним 12/05/20 Втр 18:39:26 #494 №1685489 
Аноны, как подходить к разработке на Ларавель?
Пишу себе пет: сделал минимальную маршуртизацию на админку, на главное приложение, определил моделей штук 5 реально доделана только 1, под них миграции, начал работать с шаблонами и вконец запутался.
Т.е. у меня почти никакого функционала не готово, кроме вывода категорий, куча наработок на и я в них уже тону. Всё сделано на 20-50% и приходится прыгать по файлам всего проекта, дописывая то тут, то там понемногу.
Есть подозрение, что дальше я так совсем зароюсь.

Что в первую очередь надо писать админку или публичную, какие этапы? У гугла чёто ничего толком не нашёл.
Аноним 12/05/20 Втр 20:18:36 #495 №1685725 
>>1685489
Тупо ебашь дальше. Тебе просто опыта не хватает. Через полгода будешь смеятся как ты в 5 моделях запутался. Как добъешь проект может быть смысл просмотреть какую-то книгу по ларавелю - тут идея в том чтобы столкнуть твое сложившееся представление о фрейморке с каким-то другим и на конфликтах можно неплохо прокачаться.
Аноним 12/05/20 Втр 20:32:01 #496 №1685738 
>>1685725
Ну ок. Обнадёжил.
Буду дальше тащить.
Аноним 12/05/20 Втр 21:38:11 #497 №1685827 
анон, кинь ссылку на сайт который ты считаешь красивымне 2ch.hk
Аноним 12/05/20 Втр 21:42:57 #498 №1685836 
>>1685827
Щитаю, что такая характеристика неприменима к сайту. Такое максимум лендосу пойдёт, но не функциональному сайту.
Лучший дизай - тот, который не видно. (с)
Аноним 12/05/20 Втр 22:22:38 #499 №1685880 
>>1685836
красивый != функциональный?
Аноним 12/05/20 Втр 23:18:25 #500 №1685933 
>>1685880
Дизайн не должен отвлекать от функционала. Сам посмотри на наиболее посещаемые ресурсы 2ch - минимализм везде. Разве только с цветами играются.
А вот где наворотов фронтендовских куча, так это посадочные всякие, авторские блогите же лендинги по сути, какие-то тематические сайты. А вот форумы, социалки, админки, прочие сервисы - с минимальным оформлением.
Аноним 13/05/20 Срд 03:38:18 #501 №1686009 
>>1685316
Бля, ну это тот случай когда простота хуже воровства. Ты насоветовал полной хуйни, еще и Фаулера вырвал из контекста.

>"Сервисом" часто называют класс, объект которого существует в одном экземпляре
Это определение хорошее, но из него не следует почему должен существовать сервисный слой. Сервисы, подходящие под это определение, могут быть и в доменной модели, и в обработке http запроса.

>Например, User - это сущность (со свойствами email, pass_hash, blocked итд), а RegistrationService - это сервис, решающий задачу регистрации
А вот это опреление хуевое. Наличие свойств никак не говорит, что объект стал сущностью. У сервиса точно так же могут быть свойства, определяющие как он будет работать.

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

>Заметь, что сервис не имеет дела с Request/Response/куками/сессией/HTTP-заголовками
Это утверждение никак не следует из предыдущих. Схуяли он не имеет с ними дела? Для логина пользователя, например, нужно создать и прочитать куку. Кароч надуманная хуйня.

>Также, я не советую называть сервисы по имени модели.
А я не советую писать ебанутую приписку Service везде. А то ты ведь забудешь что это сервис не дай бог. UserRegistration или RegisterUser гораздо лучше выглядит.

>Также, "сервисный слой" описан в книге Фаулера про паттерны:
И вот тут самый жесткий обсер. Ты и сам обосрался и человеку жизнь основательно подпортил. Всю дорогу твой тейк в том, что бизнес логику нужно хранить в сервисном слое, и вот ты показал откуда этот бред вычитал. Фаулер конечно человек авторитетный и хуйни не напишет. А дело все в том что по ссылке только начало главы про сервисный слой. Там не написано что же блядь делает доменная модель если вся бизнес логика в сервисах. Просвещайся, вот тебе полная глава из книги https://www.informit.com/articles/article.aspx?p=1398617&seqNum=4

Если вкратце, то сервисный слой это всего лишь обертка над бизнес логикой доменной модели. Транзакции, уведомления, workflow - вот что находится в сервисном слое. Если взять твой пример с регистрацией пользователя, то в сервисном слое будет открытие и закрытие транзакции в бд, логи для графаны и отправка сообщения в рэббит. А в доменной модели будет собственно процесс регистрации. Все по Фаулеру.
Аноним 13/05/20 Срд 07:01:16 #502 №1686048 
>>1685933
ну хуй знает, думаешь если изменили интерфейс 2ча - онлайн упадет?
Аноним 13/05/20 Срд 14:09:55 #503 №1686489 
>>1656450 (OP)
В шапке:
> Здесь мы изучаем язык PHP (а также JS/CSS/HTML/SQL)

Что учить вначале? Знаю азы html, css, js.
Аноним 13/05/20 Срд 15:44:11 #504 №1686679 
Аноны, может кто поможет. У меня трабла с нодой, но в сущности и с пхп получается. Суть такова:

Короче разобрался. Все упирается в ошибку 'Error: Too many connections' - слишком много соединений с базой.
Использую mysql2, с пулом коннектов равным 10.

И теперь объясните пожалуйсто мне дауну как правильно работать с базой данных?

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

Означает ли пул в 10 коннектов то что в не более 10 запросов одномоментно в sql базе может исполняться? И что остальные запросы ждут пока эти 10 исполнятся где ждут? самому очередь формировать??
У меня ошибку 'Error: Too many connections' выдает даже если я просто рефрешу страницу - там простой код который несколько статей из базы достает. Неужели я где то так обосрался что эти мои простенькие sql запросы где то в базе залипают? Я вроде соединение освободжаю в коде.

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

Где почитать как пхп взаимодействует с базой под нагрузкой, и как база под нагрузкой работает?


Аноним 13/05/20 Срд 16:24:30 #505 №1686774 
>>1686679

В СУБД есть ограничение на число одновременно сделанных соединений. Либо у тебя этот лимит очень маленький (меньше, чем размер пула), либо ты неправильно реализовал пул, он создает постоянно новые соединения, не закрывая, и упирается в лимит.

Пул (правильно реализованный) нужен для 2 целей:

- не тратить время на установку соединения, а взять готовое из пула
- защитить БД от перегрузки, притормозив бекенд, если все соединения в пуле заняты

Есть у пула и недостатки. Если кто-то вернет в пул соединение в неправильном состоянии (например, с открытой транзакцией), то будут баги.

В PHP пул обычно не исопльзуют и создают новое соединение при старте скрипта и закрывают по завершении.

Аноним 13/05/20 Срд 17:59:38 #506 №1686919 
>>1686679
Тут дело не столько в самом пуле, сколько именно в работе ноды. Пхп однопоточный, и когда ты делаешь запросы через PDO ты всегда будешь использовать одно соединение, даже если есть пул.
А вот нода асинхронная и многопоточная, так что когда ты вызываешь запросы в цикле они выполняются параллельно, используя все доступные соединения из пула.
Например пул на десять соединений, ты делаешь двадцать запросов в пхп. Берется одно соединение и запросы выстраиваются в очередь на использование этого соединения. Ты делаешь двадцать запросов в ноде. На каждый запрос берется соединение, а кому не досталось становятся в очередь и ждут, когда соединение освободится.
Но это не объясняет откуда у тебя ошибка 'Error: Too many connections'. Возникнуть она может если твой пул больше доступного в MySQL количества соединений. Выполни запрос SHOW VARIABLES LIKE 'max_connections'; и посмотри че там по количеству. Дальше сам решай уменьшить пул или увеличить значение в MySQL.
И еще. Выполнение запросов в цикле это хуевая тема, хоть нода и делает их параллельно. Если тебе нужен список, то получай его одним запросом, а не по одной записи.
Аноним 13/05/20 Срд 18:08:48 #507 №1686932 
>>1686774
>>1686919

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

>>SHOW VARIABLES LIKE 'max_connections'
Это проверял.
>>Выполнение запросов в цикле это хуевая тема
Нет, sql запросы конечно не в цикле.
Аноним 13/05/20 Срд 18:10:09 #508 №1686937 
>>1686932
>>на каждый обработчик
на каждый вызов обработчика роута
самофикс
Аноним 13/05/20 Срд 18:45:46 #509 №1686977 
>>1686919

Либо я не понял написанное, либо тут ошибка:

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

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

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

Это очень странный паттерн, я думаю, лучше выполнять запросы по очереди в одном соединении.
Аноним 13/05/20 Срд 18:47:14 #510 №1686978 
>>1686977
а как в пхп размножить один скрипт?
Аноним 13/05/20 Срд 18:57:33 #511 №1686990 
>>1686978
прохожу мимо
Первый вариант - запустить несколько в одном окне (ы)
Второй вариант - использовать брокер сообщений (напр., rabbitmq)

если конечно я правильно понял то, что ты хочешь сделать
Аноним 13/05/20 Срд 18:57:54 #512 №1686991 
а есть замеры,сколько пхп может осилить запросов к базе?
что нибудь простое,там имя,логин,дата
Аноним 13/05/20 Срд 18:59:48 #513 №1686992 
>>1686990
я вообще другой анон,просто увидел тему про клонирования,вообще не в курсе такой фичи.
я что то подобное давно слышал в ньюфаге,но там сказали что для этого есть Эрланг
Аноним 13/05/20 Срд 19:43:28 #514 №1687064 
>>1686977
>>Это очень странный паттерн
В ноде судя по всему обычное дело. Что бы экономить время на открытие/закрытие коннекта к базе, и что бы не создавать очередей.
В сбалансированном состоянии в соответствии нагрузка/открытые коннекты видимо выигрыш имеет место быть. Нода нужна в сущности для в некоторой степени специфических задач.
Аноним 13/05/20 Срд 19:44:51 #515 №1687066 
>>1687064
п.с.
судя по доке коннекты не висят открытые без дела долго. Через какие то секунды они закрываются.
Аноним 13/05/20 Срд 21:59:46 #516 №1687198 
>>1686991
А причем тут пхп?
Это к базе вопросы, сколько она может коннектов держать
Аноним 13/05/20 Срд 22:05:47 #517 №1687204 
>>1686992
Ну да, rabbitmq на эрланге написан
Аноним 14/05/20 Чтв 05:41:01 #518 №1687353 
>>1686977
>В PHP (без пулов), если сделать 20 запросов к серверу
Я имел ввиду работу именно одного скрипта.

>Это очень странный паттерн, я думаю, лучше выполнять запросы по очереди в одном соединении.
Смотря для чего. Представь, что тебе нужно перебрать таблицу на десять миллионов записей. В десять потоков это все выполнится гораздо быстрее.
Аноним 14/05/20 Чтв 11:48:20 #519 №1687504 
Чет я затупил с установкой хомстеад для ларавел на win7. Скачал виртуал-бокс, вагрант - поставил.

ДАлее выполнил команду - vagrant box add laravel/homestead

Полтора часа что то качалось, и наконец залилось. Но где мне найти то что залилось?

Далее по иструкции идет следующее:

Installing Homestead
You may install Homestead by cloning the repository onto your host machine.......
Нужно скоприровать с гита пакет
git clone https://github.com/laravel/homestead.git ~/Homestead

Это все это альтернативный вариант установки? Типа могу командой vagrant box add laravel/homestead, а могу сам качть с гитхаба?

Чет я торможу.
Аноним 14/05/20 Чтв 11:53:17 #520 №1687512 
>>1687204
разговор про чистый эрланг
Аноним 14/05/20 Чтв 11:55:46 #521 №1687517 
>>1687504
мне нужно править конфиги в Homestead.yaml
Но я не могу понять куда установилась эта чертова коробка. Где это сраный файл?
Аноним 14/05/20 Чтв 12:42:47 #522 №1687565 
>>1687353

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

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

Распараллеливание запросов может иметь смысл, если мы упираемся в CPU (чтобы нагрузить не одно ядро, а несколько), либо если мы шлем запросы параллельно на разные сервера.

Плюс, делать в вебе запросы, требующие обхода миллионов записей, плохая идея сама по себе.

Да, в PHP SQL запросы выполняются последовательно, но это вполне работающий подход, так как эти запросы обычно простые и выполняются быстро, и сам PHP скрипт работает короткое время.

>>1687504

По идее, ты должен изучить хотя бы в общих чертах, что такое Homestead, а также освоить основы командной строки в Линуксе.

> Это все это альтернативный вариант установки?

Похоже, что так.

> Но где мне найти то что залилось?

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

В крайнем случае, найти файл Homestead можно командой линукса find / -name 'Homestead.yaml'

Аноним 14/05/20 Чтв 13:36:28 #523 №1687662 
>>1687565
Через боль, страдания, слезы и гайд с ютуба я таки все это дело запустил, установил лару и все это завелось.

Не очень понимаю как это все в кучу работает, и зачем там вагрант, буду читать
Аноним 14/05/20 Чтв 14:44:09 #524 №1687750 
>>1687662
нахер тебе вагрант?
Аноним 14/05/20 Чтв 15:36:17 #525 №1687819 
>>1687750
это к слову.
Вообще я о ларавел и о хомстед.
До этого просто пробовал развернуть ларавел, как допустим приложуху на слим.
Но чет не разернулось нихуя нормально или развернулось но что то постоянно глючило, я забыл уже.
Тут хоть работает.
Аноним 14/05/20 Чтв 16:47:36 #526 №1687940 
>>1687819
п.с. буду вкатываться в ларочку.
Скажите ларакаст - это платные курсы? Или бесплатные ? На ютубе нашел канал Laracasts -
https://www.youtube.com/channel/UC3s5g0_lyZYOu8Jjo27udAQ/featured
Это оно?
Аноним 14/05/20 Чтв 16:50:10 #527 №1687949 
>>1687819
у меня на винде все норм работает
Аноним 14/05/20 Чтв 16:53:58 #528 №1687954 
>
Аноним 14/05/20 Чтв 16:54:42 #529 №1687956 
>Мы должны сконцентрироваться на улучшении поддержки долгоживущей (long-running), асинхронной модели исполнения, ориентированной на микросервисы. Вероятно, не секрет, что одной из главных причин популярности Node.js является его умение очень эффективно обрабатывать огромное количество одновременных подключений, генерирующих относительно лёгкие запросы. Это хорошо соответствует особенностям современных микросервисных архитектур. Есть уже несколько проектов, которые реализуют в PHP аналогичную функциональность, например, ReactPHP и более свежий Swoole.

Но главная проблема в том, что большинство операций ввода-вывода в PHP не поддерживают асинхронное исполнение. Я считаю, нам нужно добавить как можно больше поддержки асинхронного ввода-вывода в различных расширениях и потоках, чтобы расширить круг задач, где имеет смысл применять инструменты типа Swoole. Точнее, нужно предложить авторам расширений механизмы, которые те могли бы использовать для реализации опциональной асинхронности своих расширений/функций, не делая всю работу самостоятельно. Мы уже провели некоторые исследования в этом направлении, и нужно сделать гораздо больше, но я оптимистично настроен. Возможно, для решения этой задачи мы возьмем libuv, и, возможно, перепишем или отрефакторим некоторые части системы PHP-потоков.
Аноним 14/05/20 Чтв 17:16:44 #530 №1687996 
Нормально ли отдавать редирект в контроллерах?
Например по ид поста - отдавать редирект в тред, в соответствующем контроллере. Вообще есть ли с ним подводные камни которые стоит знать?
Аноним 15/05/20 Птн 07:53:11 #531 №1688711 
>>1687949
Я на винде не смог руками собрать даравел. Поэтому пришлось хомстед ставить.
Аноним 15/05/20 Птн 10:42:42 #532 №1688805 
1589528133159.jpg
Анон, нужна помощь. Есть скрипт, который срабатывает каждые 5 сек, он добавляет в txt файл, с ограничением в 10 строк, определенный текст из постоянно обновляющегося $item. Но сейчас, он просто дублирует его на все 10 строк. Как сделать условие, чтобы одинаковый текст из $item не дублировался, а добавлялся лишь 1 раз? Код на пикрил
Аноним 15/05/20 Птн 12:10:38 #533 №1688849 
Помогите ответить на вопрос:
https://stackoverflow.com/questions/61760338/how-to-test-a-custom-laravel-console-command-without-of-installing-full-framewor

Как тестировать консольную команду Laravel, если я ее разрабатываю как пакет, то есть, фреймворк у меня не установлен и есть только в зависимости composer?

Да и вообще, вопрос не только про консольную команду. Как тестировать любую хуйню в ларавеле без инициализации самого ларавеля?
Аноним 15/05/20 Птн 12:35:48 #534 №1688859 
>>1688805
Покажи как у тебя происходит запись в $item. Судя по тому что в скрине, ты пытаешься вложить массив под определённым ключём, и если у тебя массив $item добавляет что то новое в конец массива, а не в начало, то будет как у тебя. Варианта решения два:
Первый, в массив $item записывать данные в начало массива, что бы при этом в нём же изменялась нумерация. Второй с помощью for постоянно перебирать массив $item.
Аноним 15/05/20 Птн 14:25:14 #535 №1688969 
Наверное немного не по теме вопрос, но все же. А как ютуб отдает видео на клиент? Посмотрел хтмл, и там для видео такой урл "blob:https://рандомный урл". Погуглил, что такое blob, но ясно так и не стало. В чем преимущество такого подхода, а не, например, просто с сервера mp4 отдавать?
Аноним 15/05/20 Птн 20:55:55 #536 №1689526 
Извиняюсь за то что в пхп тред пишу. Но тут есть аноны которые в ноде разбираются. Столкнулся с такой странной штукой, которую я не понимаю.
Вот при таком конфиге:

const express = require('express');
const passport = require('passport'); //если закомментить - будет ошибка req.logout is not a function, а console.log(req.logout); вернет undefined

const app = express();
app.get('/', (req,res)=>{
_console.log(req.logout); //возвращает [Function]
_req.logout(); //откуда это блядство? Откуда этот метод. И как он тянется из passport
_res.end('end');
});

app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});


Аноны, разверните у себя такой конфиг, проверьте пожалуйста, кому не лень. req.logout - метод не стандартный, его нет в дефолтном объекте req. Как он тянется?

Аноним 15/05/20 Птн 21:10:40 #537 №1689540 
>>1689526
>Как он тянется?
Через прототип, не?
Аноним 15/05/20 Птн 21:36:47 #538 №1689568 
>>1689540
>Через прототип, не?
Ну технически то его можно подтянуть. Но как то странно что фремворк express захардкоден получается на либу passport. И по идее все что меняет объект запроса req должно подключаться в мидлвэйрах.
Может я ошибаюсь конечно. Но мне эта тема мозг вынесла.
Аноним 15/05/20 Птн 21:43:46 #539 №1689576 
>>1689568
>фремворк express захардкоден получается на либу passport
Так-то наоборот, это passport зависит от express. Он отдельно никому не сдался без экспресса.

>все что меняет объект запроса req должно подключаться в мидлвэйрах
Не должно - у мидлвари другая задача.
Аноним 15/05/20 Птн 22:09:15 #540 №1689608 
>>1689576
>>Так-то наоборот, это passport зависит от express.
Тут ты прав конечно, но я не о том.

>>Не должно - у мидлвари другая задача.
Дока;
Функции промежуточной обработки (middleware) - это функции, имеющие доступ к объекту запроса (req), объекту ответа (res) и к следующей функции промежуточной обработки в цикле “запрос-ответ” приложения. Следующая функция промежуточной обработки, как правило, обозначается переменной next.

Ну в контекте экспресс работа с req, res - одна из основных задач. Впрочем это не суть. Видимо это не я пизданулся, что у меня объекты методами просто так обрастают. Это express зачем то слегка отступил от своей парадигмы. Пасспорт меняет объект запроса без мидлвэйра, а сами фактом своего подключения к странице.

Аноним 15/05/20 Птн 22:39:18 #541 №1689670 
>>1689608

Эта сомнительная "техника" называется Monkey-patching. В Руби он рейлс, по моему, тоже такое применялось, когда ты подключаешь одну библиотеку, то она меняет или добавляет что-то в другую. Это плохой подход, так как сильно запутывает восприятие кода и добавляет побочные эффекты.
Аноним 15/05/20 Птн 23:52:00 #542 №1689761 
У меня вопрос : Это можно посчитать решением ?https://paiza.io/projects/X0HSLZfAJv6azNVrW9TB4Q?language=php
Знаю что работает коряво, но я про принцип выделения ошибки...
Аноним 17/05/20 Вск 12:20:10 #543 №1691404 
>>1688969
Копай в сторону HTTP Live Streaming и его аналогов
Аноним 17/05/20 Вск 22:34:07 #544 №1692329 
>>1657272
Не слушай этого >>1667623
Современный PHP - это Laravel и Symfony - в них собраны лучшие практики программирования на этом языке. Laravel по подходам ближе к Ruby on Rails, Symfony к Spring из Java. Берешь почти любой учебник по этим фреймворкам за последние 2-3 года и пролистываешь.
Насчет собесов. Сам искал работу миддлом в апреле в разгар коронавирусной истерии - не было ни одного вопроса по тонкостям ПХП, зато, например, почти везде и много спрашивали по СУБД (оптимизация запросов, индексы, объектно-реляционные СУБД, шардирование таблиц и т.д.). Так что налегать надо на фундаментальные знания в первую очередь, а не на ПХП как таковой.
Аноним 17/05/20 Вск 22:34:50 #545 №1692333 
>>1657910
>какие подводные
Искать _продуктовую_ компанию, и всячески избегать аутсорс-шараги.
Аноним 17/05/20 Вск 22:35:29 #546 №1692335 
>>1657934
https://www.sql-ex.ru/index.php?Lang=1
Аноним 18/05/20 Пнд 01:33:45 #547 №1692476 
Пацаны, вы реально каждый раз перед именем переменной ставите знак доллара? Это же просто ахуеть до него тянуться
Аноним 18/05/20 Пнд 09:41:00 #548 №1692599 
>>1692476
Ты просто пишешь знак, а IDE тебе сразу предлагает все местные переменные в списке. Удобно.
Аноним 18/05/20 Пнд 12:11:26 #549 №1692711 
>>1692476
Что у тебя с пальцами? До всех скобочек (круглых, фигурных и квадратных) тянуться можешь, а до доллара, который прямо под уркой нет?
Аноним 18/05/20 Пнд 15:12:05 #550 №1692873 
image.png
Иногда на новых серверах при вставке в базу появляется ошибка что-то типа "у поля нет значения по умолчанию".

Раньше просто поле пустое при вставке оставалось. Какого хуя на одних серверах вставляется нормально, а на других нет?

Ладно, х с ним. Сделал по умолчанию Null. При клике в поле там ниче нет, но так выводится Null серым цветом, пик.

Теперь вторая проблема - я не могу сделать выборку по колонкам, содержащим Null.

= 0 не работает
='' тоже
= 'Null' тоже

Что делать и как выборку сделать?
Аноним 18/05/20 Пнд 17:46:47 #551 №1693031 
>>1692873
Используй IS NULL. Опережая твой будущий вопрос IS NOT NULL.
Аноним 18/05/20 Пнд 18:44:54 #552 №1693099 
В php есть аналог функции ucfirst для кириллицы?Или только примерно таким образом :
mb_internal_encoding("UTF-8");
function mb_ucfirst($text) {
return mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
}
echo mb_ucfirst("тест\n");
?
Аноним 18/05/20 Пнд 20:38:52 #553 №1693217 
Как должно выглядеть по канону форматирование кода? Все эти скобочки, условия и т.д. А то меня всю жизнь преподы за странный формат доёбывали. Мне нравится как Visual Studio скобочки расставляет сам по себе, а если на лампочку нажать то вообще красоту делает. Оказалось что PHPStorm так не умеет. Да и вообще во всем проигрывает этому поделию от мегакорпорации Microsoft по понятным причинам, но мог хотя бы сразу подсказывать что делает функция, а то приходится сначала выбрать в сплывающем окне непонятную функцию, потом нажимать ctrl+shift+i и выискивать её назначение в комментариях. Охеренная фича была для ньюфага, больше всего спасала с посторонними библиотеками.
Аноним 18/05/20 Пнд 20:42:00 #554 №1693224 
>>1692476
Двачую, я циклы for после С-подобных всё еще с первого раза правильно ввести не могу, всегда перед одним из трех $i забуду поставить доллар.
Аноним 19/05/20 Втр 03:58:36 #555 №1693430 
>>1693217
Окей, сорри за тупой вопрос, не отвечайте, в глаза ебусь. Посмотрел на первый пост, всё нормально у меня с форматом пока что. И приношу свои извинения PHPStorm, автоформат у него оказывается есть. И что бы я без двачей делал?
Аноним 19/05/20 Втр 16:21:32 #556 №1693910 
Появился вопрос, гугл бессилен.
Скачал я с сервера папку с одним шаблоном сайта и это пиздец, но сейчас не об этом внезапно понял, что могу просто поисковиком винды находить код в файлах, а не просто файлы и папки, как обычно. Не так то проста эта функция, как кажется.
Искал я определённый кусок кода и не нашёл, хотя как выяснилось, код этот был. Был он в папке с пхп файлами, тип которых - исходный пхп файл. А вне этой папки были пхп файлы с типом пхп файл и в них можно было найти нужный код.
Что это за исходный пхп файл и что за нюансы с поиском его внутренностей? Это что-то с доступом связанное? Я
Целый рабочий день проебал в том числе из-за этого.
Аноним 19/05/20 Втр 16:54:33 #557 №1693950 
>>1693910
Что за шизофазия, блядь? Поставь себе норм ide, git и не еби мозгу с файлами и их содержимым. Поисковик винды для поиска кода, охуеть вообще.
Аноним 19/05/20 Втр 21:48:19 #558 №1694259 
Screenshot85.png
Screenshot86.png
Сап. Такая проблема. Сделал панель, что при нажатии на кнопку выезжает слева на сайте. Хотел сделать как панель профиля пользователя. Но когда вставляю любой код на php (в данном случае на вывод из бд), у меня ломается код панели и кнопки не отображаются. Кнопки просто пропадают. В чем проблема?
Аноним 19/05/20 Втр 22:30:47 #559 №1694295 
>>1694259
>В чем проблема?
Как минимум в смешении слоев логики.
Отдели View от общения с бд
Аноним 20/05/20 Срд 00:08:00 #560 №1694380 
Сап двоч. Можете посоветовать какую-то статью или объяснить как адекватно и бест практис работать с часовыми поясами в вебе? Например у нас типичный бложик, все даты создания постов я так понял лучше в UTC конвертить перед сохранением? И вопрос как их потом адекватно показывать клиенту. В жсе вроде есть toLocaleTimeString или что-то подобное, то есть браузер дает инфу о текущем часовом поясе клиента. На уровне пхп я так понимаю это сделать невозможно без каких-то хаков вроде проверки локации айпи или кук установленых жсом? И как тогда лучше всё это по дефолту показывать? Или предполагается что если у нас бложек "принадлежит" Москве (так решил клиент или разраб) то по дефолту мы время показываем тоже московское там?
Аноним 20/05/20 Срд 02:08:18 #561 №1694450 
15898318632190.webm
>>1694259
>tovars
Аноним 20/05/20 Срд 02:15:36 #562 №1694452 
>>1694380
https://habr.com/ru/company/mailru/blog/242645/
Аноним 20/05/20 Срд 04:10:47 #563 №1694497 
image.png
анон, наставь на путь истины

Мне нужно сделать подачу заявления на сайте. Заявление сложное (заполняется на двух листах А4 мелким почерком)

Окно для заполнения я сделал. Все работает.

Но теперь возникла проблема - мне нужно чтобы оно распечатывалось в таком же виде как будто человек заполнял бумажную копию - то есть все форматирование должно быть идентично бумажному носителю (чтобы можно было электронную заявку распечатать и приколоть к делу)

Я конечно решил делать эту задачу через генерацию pdf (потому что pdf тоже нужен чтобы его в архиве хранить). юзаю fpsf

Но проблема с форматированием:
1) в итоге код - полное говно
2) приходится чуть ли не пипеткой отмерять координаты
3) все расползается по форме если вводится более длинные или наоборот более короткие данные


Есть какое-то решение? Блин просто это какой-то зашквар во времена адаптивных версток сидеть и руками набивать координаты для pdfки

(сразу, работаю в мухосрани за жалкие копейки, поэтому не придерайтесь к тому что не умею, вы за такую зп даже работать не будете)
Аноним 20/05/20 Срд 04:11:32 #564 №1694498 
>>1694497
а еще самый зашквар что мне там еще и пробелами приходится отступы набивать.
Аноним 20/05/20 Срд 10:07:48 #565 №1694686 
>>1694497
Ну так юзай другую либу. Есть либы, которые для форматирования CSS используют, типа https://github.com/dompdf/dompdf .
Аноним 20/05/20 Срд 12:08:35 #566 №1694878 
Пилю оффтоп-кулстори
нашел баг в телеге с секретными чатами, написал им. Баг пофиксят, а мне 500 евро за находку. Таки дела.
Аноним 20/05/20 Срд 13:39:40 #567 №1695024 
>>1694878
Я бы говорил "Нам известна эта бага, мы ее фиксим."
Аноним 20/05/20 Срд 13:46:56 #568 №1695036 
>>1695024
В интернетах читал, что они кладут хуй на баг репорты, но мой баг имеет некое отношение к приватности/безопасности. Наверное поэтому так срегагировали
Аноним 20/05/20 Срд 22:18:01 #569 №1695607 
>>1694452
Моё увожение
Аноним 21/05/20 Чтв 03:21:09 #570 №1695893 
>>1694686
хм, попробую
Аноним 21/05/20 Чтв 13:58:31 #571 №1696212 
>>1694497

Есть простой вариант - использовать Knp snappy https://github.com/KnpLabs/snappy. Это библиотека, использующая утилиту wkhtmltopdf, которая (как очевидно из названия) конвертирует HTML в PDF.

Если бы этой библиотеки не было, то я бы посоветовал не копипастить одинаковый код, а сделать шаблон, например, в XML, в котором указываются размеры блоков, и свою систему расстановки этих блоков на странице. Но тут проще использовать wkhtmltopdf.


Аноним 21/05/20 Чтв 20:44:00 #572 №1696754 
есть таблица mysqli и поле datetime в ней, нужно его достать и в пхп вставить в строку, как это сделать?
Аноним 21/05/20 Чтв 23:55:50 #573 №1696994 
Что скажете за перспективы пыхи? В любом другом треде мне бы 9 из 10 человек сказали что перспективы отсутствуют, поэтому спрашиваю здесь. Сейчас по пыхе в два раза больше рабочих мест чем по любому другому ЯП, при этом если новичок спросит куда ему вкатываться - пхп не посоветует никто. По вашему мнению, будет ли дальше падать популярность этого языка? Не по экспертному мнению программистов, а вообще. Я ньюфаг, но такое ощущение что все другие программисты просто не любят пхп из-за сравнительной лёгкости вката и ограниченности его применения, из-за этого и не считают кодеров на пхп программистами и именуют их макаками. Поясните если понял что-то не так.
Аноним 22/05/20 Птн 00:20:39 #574 №1697060 
>>1696994
Смотря что понимать под перспективами. Есть перспектива клепать онлайн магазины всю жизнь. Пхп это дорога в один конец. Да на хлеб с маслом и даже икрой хватит, но чем дальше, тем меньше шанс перепрыгнуть на другой язык.
Че думаешь все пхп макаки вдруг резко подорвались на го? В го треде спросишь, так вакансий с гулькин хуй, а когда я ходил по пхп собесам, на каждом сука заходила речь про го. Это как последняя соломинка, если тебе тридцать, начать писать реальный софт, а не формы верстать.
Тут даже похуй на развитие языка какое-то. Асинхронность, многопоточность, дженерики, ридонли поля, функциональщина, пока это все введут пройдет еще пять лет. А в это время можно хуярить на ссаной джаве, делая плюс минус то же что и на пхп, но с комфортом и реальными перспективами.
Аноним 22/05/20 Птн 09:12:41 #575 №1697273 
>>1696994
Плохие перспективы у пыхи. Иди лучше в джавускрипт или питон.
Аноним 22/05/20 Птн 12:39:07 #576 №1697541 
>>1697273
> джавускрипт или питон
по сути,не сильно лучше
Аноним 22/05/20 Птн 13:32:05 #577 №1697597 
>>1697541
Ну вкатывайся нахуй тогда - там тебе гораздо лучше будет.
Тоже мне ценитель нашёлся.
Аноним 22/05/20 Птн 17:07:43 #578 №1697789 
>>1697060
>Асинхронность
есть

>многопоточность
не нужна, когда есть php-fpm

>дженерики
почти не нужны, но скорее всего будут в 8

>ридонли поля
по большей части не нужны, но может и добавят в 8

>функциональщина
в пыхе функциональщины больше, чем в gовне
Аноним 22/05/20 Птн 18:07:00 #579 №1697849 
>>1697789
>есть
Костыльная хуйня, пока восьмая версия не выйдет ничего серьезного без анальной боли не сделать.

>не нужна, когда есть php-fpm
Для вывода HTML конечно не нужна, мистер формошлеп

>дженерики почти не нужны
>ридонли поля по большей части не нужны
Ну тут все ясно. Нахуй я распинаюсь перед долбаебом. >>1696994 вот твоя перспектива если выберешь пыху
Аноним 22/05/20 Птн 18:20:30 #580 №1697855 
>>1697849
>пока восьмая версия не выйде
ее не будет,инфа 100
Аноним 22/05/20 Птн 18:28:45 #581 №1697870 
>>1697849
А я например вообще питонист. И все эти тухлые претензии к пыхе не то что плесенью поросли, а уже просто говном. Годы идут, а банальные вбросы не мегяются. У того же питона при этом насущных проблем, а особенно в вебе, куда больше.
Ебанутые совершенно стандарты и пережиток прошлого - раз пыха значит плохо, а не пыха - хорошо.
Аноним 22/05/20 Птн 18:34:48 #582 №1697875 
>>1697870
Так пиши на пыхе, хули ты за питон свой схватился. Щас за недельку синтаксис подучишь и будешь сайты делать. Увлекательнейшее занятие, скажу вам, хуярить сайты на пхп. Бросай свой тухлый питон и давай к нам, как раз нужно капчу в поле регистрации добавить.
Аноним 22/05/20 Птн 18:40:22 #583 №1697881 
>>1697060

На Го писать сомнительное удовольствие. Симфони нет, Доктрины нет, не знаю, есть ли IDE с автодополнением и визуальный отладчик. Нет сотен библиотек на все случаи жизни.
Аноним 22/05/20 Птн 18:44:54 #584 №1697887 
>>1697881
Я и не говорил, что писать на нем заебись, го кал тот еще. Просто рассказал про тренд. В ВСЕХ конторах, в которых я был пытаются уйти от пыхи на го.
Аноним 22/05/20 Птн 18:49:31 #585 №1697891 
>>1697875
Ну ок, отвечу. До питона я 4 года работал на пхп. На питоне 2 года пока что. Чем дальше, тем больше разочаровываюсь. По этой же причине кажется развитие пхп более правильным.
Притом я не говорю, что питон сам по себе говно, только что он хуже для бека по сравнению с пхп. Но, справдлевости ради, хуже пыхи по беку вообще многие. Все таки пых именно по беку развивается без отвлечения на что-либо еще пока что.
Хотя кто я такой, чтобы с маэстро на дваче спорить.
>>1697887
Го пиздато закрывает узкие места, чувствительные к производительности. Сама же бизнес-логика на го будет куда сложнее писаться, чем на пхп. Кроме того логика не сильно чувствительна к производительности, а значит часто пыху оставляют в роли монолита с бизнес логикой.
Аноним 22/05/20 Птн 18:53:47 #586 №1697899 
пых
какое прикольное погоняло
Аноним 22/05/20 Птн 18:53:48 #587 №1697900 
>>1697875
>Увлекательнейшее занятие, скажу вам, хуярить сайты на пхп
Тебе не за развлечение платят, а за то, что ты кабанчиковы хотелки исполняешь.
Если бы ты хоть раз в жизни работал, то знал бы это, борщехлёб. Вас по этим постам на раз выкупают, дебилов необучаемых.
Аноним 22/05/20 Птн 18:58:21 #588 №1697904 
>>1697891
>Го пиздато закрывает узкие места, чувствительные к производительности. Сама же бизнес-логика на го будет куда сложнее писаться, чем на пхп. Кроме того логика не сильно чувствительна к производительности, а значит часто пыху оставляют в роли монолита с бизнес логикой.

Все так.
Аноним 22/05/20 Птн 19:00:08 #589 №1697906 
>>1697887
Никто не уходит с пыхи на го, как сказал анон выше - на го переписывают логику, к которой есть высокие требования по производительности. Писать онли на го бизнес-логику - это много гемора, там ведь даже нормальной ОРМ нет.
Аноним 22/05/20 Птн 19:21:01 #590 №1697934 
>>1697906
С пыхи уходят программисты, а не компании. Легаси говно на пыхе остается конечно, и остается пара додиков на поддержке. Те кто тему с го в компании продавал быстренько перескакивают на него полностью и на пхп болше не пишут ни строчки.
Аноним 22/05/20 Птн 19:50:55 #591 №1697980 
image.png
Анон который спрашивал за перспективы здесь. Забавная у вас тут атмосфера, ничего не скажешь. Насчет того, почему я сейчас пытаюсь что-то делать на пыхе и задаюсь такими вопросами: к удивлению я последние несколько лет кручусь возле всего этого дерьма, но все еще совсем ничего не понимаю в современном рынке айти. Не понимаю какие существуют стеки и кто чем занимается. Ориентируюсь на существующие вакансии и их описание: выглядит на то, что питон это в основном датасаенс, машинное обучение, нейросети, ИИ и т.д. Я не такой амбициозный и не настолько в себя верю чтобы в это вкатываться, хотя это однозначно самая перспективная на многие года отрасль. Немного знаю Java мне кажется она устарела, хотя могу ошибаться конечно и сишарп, не представляю что на этих языках делают в реальной жизни, вроде бы как годами поддерживают и допиливают всякие мифические проекты. Но самая большая загадка для меня - это яваскрипт. Когда вижу код на яваскрипте мне хочется плакать, самый ебанутый дизайн и синтаксис который только можно представить. Почему-то на яваскрипте делают все что только можно: Front-End, Back-end, десктопные приложения, даже целые операционные системы и многое другое, вроде даже микроконтроллеры на нем программируют. Сайты верстать я в гробу видал, как то пробовал себя в этом, понял что это пиздец какое нудное дело, мешки таскать и то интереснее, ну а всё остальное на яваскрипте писать мне кажется извращением, буду рад если объясните почему это не так. Так вот, потому решил учить пыху. Так я хотя бы на 100% знаю на что подписываюсь - писать до конца жизни бык-енд онлайн-магазинам. Надеюсь что это окажется менее нудным занятием, чем верстка, в противном случае вернусь к сишарпу наверное.
Аноним 22/05/20 Птн 19:55:27 #592 №1697987 
>>1697980
Да пиши бек к чему захочешь на пыхе, хоть к шутерам. Но работ много именно на говномагазины, исторически так сложилось.
Аноним 22/05/20 Птн 19:55:54 #593 №1697990 
>>1697980
>Java
новое,не всегда лучше.
ну возьми котлин или скалу,это надстройка над жвм
Аноним 22/05/20 Птн 20:02:05 #594 №1698000 
>>1697980
>пик
Не забывай что пыхорынок это чаще всего два стула, сидеть в студии 10 человек и на цмсоговне собирать сайты за неделю(зп 500-700 баксов), или в средней-большой компании делать то, что обычно делают на жаве, но походу в своё время только пыхомакакены были. Есть еще прослойка между этими двумя стульями, это сидеть в студии 10 человек, только у вас клиенты не гали с улицы а джоны из Австралии, которым ты пилишь говно на ларавеле уже не за неделю, а хотя бы пару месяцев а то и год, по мне это самый удачный стул. Люблю просто говно на ларке писать, приятное с полезным так сказать
Аноним 22/05/20 Птн 20:04:16 #595 №1698007 
>>1698000
еще на рельсах для Сев Америки
Аноним 22/05/20 Птн 20:08:08 #596 №1698010 
>>1698000
Современные проекты на пыхе да при знающих тему руках получаются хорошими прям. Ну а легаси оно и в африке легаси, на то время все это было нормой, а расплачиваться иногда приходится сейчас.
Аноним 22/05/20 Птн 20:22:34 #597 №1698045 
>>1697934
Опять теплое с мягким путаешь. Я дома пишу вообще на эликсире, но работу с ним не найду, да и не хочу, меня и на пыхе неплохо кормят. Потому что проганье для себя и проганье для компании за деньги - это как бы блять совсем разные вещи. Пыха отлично подходит там, где джава оверхед, и никто с нее не уйдет, язык активно развивается, Ларка - лучший веб-фреймвок на данный момент, придется просто это принять.
Аноним 22/05/20 Птн 20:25:07 #598 №1698050 
>>1698045
а как же симфони ?
Аноним 22/05/20 Птн 20:26:14 #599 №1698052 
>>1698050
Симфони - это корпоративный уровень для больших проектов с длительной поддержкой аля Спринг на Джаве, не всем он нужен.
Аноним 22/05/20 Птн 20:34:44 #600 №1698072 
>>1698000
Был на всех трех видах работ, самый спокойный имхо второй, т.е. продуктовая компания с отлаженных рабочим процессом, скрамами, митингам и всем этим говном. Хоть я щас и зарабатываю немного меньше, чем на аутсорсе, зато больше нет задач, которые надо было сделать вчера, жестких дедлайнов, текучки в команде и просто сильно долбоебистых коллег-говнокодеров, которых никто палкой не гонит, потому что они таски быстрее всех закрывают. Ищите продакт-компани короч.
Аноним 22/05/20 Птн 23:39:12 #601 №1698415 
image.png
>>1698000
>или в средней-большой компании делать то, что обычно делают на жаве, но походу в своё время только пыхомакакены были
Это как? Типо поддерживать и допиливать фичами существующие сайты?
>Есть еще прослойка между этими двумя стульями, это сидеть в студии 10 человек, только у вас клиенты не гали с улицы а джоны из Австралии, которым ты пилишь говно на ларавеле
Возможно большинство просмотренных мною вакансий - именно такие. Ну или второго типа. Практически везде аутсорс, просят инглиш на высоком уровне, СУБД и ларавел. Symphony только разок видел в требованиях, про html-css-javascript для джуна всегда пишут только что will be a plus. Ну а если на цмсговне собирать то вакансия чаще всего так и зовется - менеджер по работе с wordpress вордпресс-разработчик, я их и не просматривал. Кстати можешь за этот ларавель рассказать? А то похоже в шапке о нем ни слова, а я еще особо не интересовался. Конечно могу нагуглить информацию что это охуенный фреймворк с пиздатыми функциями, но мне кажется что ты можешь рассказать что-то более интересное, даже в одном предложении.
Аноним 23/05/20 Суб 00:17:52 #602 №1698446 
>>1697900
Нихуя ты подорвался. Ебать ты меня выкупил, никогда я не работал. Хотя подожди, это ведь ты конч прикован к уебищной работе и кабанчикам с их хотелками. Где родился там и пригодился, да?
Аноним 23/05/20 Суб 00:43:51 #603 №1698493 
>>1698446
>прикован к уебищной работе
А, ты ты идейный РНН-бич. Так-то я мог бы и догадаться по твоим высерам-постам. Такую хрень только такие бичи и пишут: про сайтики, про вкат за 3 месяца на одном синтаксисе.
Вангую, что ты даже не программист, а залётное быдло из /б.
Аноним 23/05/20 Суб 01:16:57 #604 №1698526 
hqdefault.jpg
>>1698493
Нихуя предьявы. Ну тогда испытай меня. Спроси то, что знать может только пхп макака.
Аноним 23/05/20 Суб 01:41:22 #605 №1698548 
>>1698526
В гугл каждый бич нынче умеет, а у пхп довольно активное коммьюнити и загуглить проще простого.

Ты себя выдал вскукареками про вкат за 3 месяца. Пиздеть - не мешки ворочать и от знания синтаксиса до сносно работающего приложения ещё минимум полгода. Хотя тебе и все 2 года будет мало.
Аноним 23/05/20 Суб 01:50:04 #606 №1698551 
>>1698548
Бля, ну не сливайся ток. Можешь на гитхабе че-нить написать, а я ревью сделаю или пул реквест.
Хуй знает где ты прочитал про три месяца, я советовал питухонисту недельку синтаксис подучить и хуярить сайты.
Аноним 23/05/20 Суб 01:51:32 #607 №1698553 
>>1698551
>не сливайся
Ясн. Школотраль.
Аноним 23/05/20 Суб 01:53:09 #608 №1698554 
>>1698553
Ну хочешь я че-нить напишу, а ты поревьюишь. Че ты, нормально же общались.
Аноним 23/05/20 Суб 12:36:02 #609 №1698762 
laravel
Аноним 23/05/20 Суб 18:38:49 #610 №1699148 
>>1698762
rails
Помогите нубу Аноним 24/05/20 Вск 02:43:22 #611 №1699632 
Надо сделать так, чтобы выводилось случайное слово из каждого массива. В конечном итоге должен выйти стишок. Я пытался, но выводит у меня просто (array).

<?php

error_reporting(-1);

$word1 = array('Чудесных', 'Суровых', 'Занятных', 'Внезапных');
$word2 = array('слов', 'зим', 'глаз', 'дней', 'лет', 'мир', 'взор');
$word3 = array('прикосновений', 'поползновений', 'судьбы явлений',
'сухие листья', 'морщины смерти', 'долины края', 'замены нету',
'сухая юность', 'навек исчезнув');
$word4 = array('обретаю', 'понимаю', 'начертаю', 'закрываю', 'оставляю',
'вынимаю', 'умираю', 'замерзаю', 'выделяю');
$word5 = array('очертания', 'безысходность', 'начертанья', 'смысл жизни',
'вирус смерти', 'радость мира');
Аноним 24/05/20 Вск 12:50:49 #612 №1699806 
>>1656450 (OP)
Ты работаешь? Как начать фрилансить на PHP? На биржах или CMSки пилить предлагают или овердохуя разных фреймворков. Как лучше поступить, изучить 1 популярную цмску и 1 фрейморк, и где брать заказы?
Аноним 24/05/20 Вск 14:35:41 #613 №1699957 
>>1699806

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

Многим проще искать удаленную работу, или долговременные проекты, а не разовые заказы.

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

>>1699632

"array" пишется, если ты пытаешься вывести массив с помощью echo. Она выводит только строки и числа. но ты можешь вывести массив с помощью var_dump() или print_r().

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

$value = $array[$key];

Если ты не понимаешь, что такое ключ и значение, перечитай начало урока, где это поясняется.
Аноним 24/05/20 Вск 14:52:58 #614 №1699975 
>>1699957
>Если у тебя ноль опыта, тебе надо быть менее придирчивым и изучать не "одну CMS-ку", а посмотреть, что востребовано и изучать все это. CMS, как правило, проще фреймворков.
Ты толком не ответил. За двумя зайцами погонишься... Это я про CMS. Их же много популярных. В каждую сильно не углубишься. Думаю лучше одну популярную хорошо знать, чем все, но поверхностно. Я понимаю все минусы и риски фриланса. Но мне нужно начать зарабатывать еще вчера. Работа в офисе мне не подходит. На удаленку без опыта не очень берут. Поэтому остается фриланс.

У тебя есть опыт фриланса? Меня интересует какой стек для фриланса прокачивать. Фреймворки, если да то какие. Или CMS. Мне не важно что изучать, главное чтобы был наименьший порог входа. Чтобы начать что-то зарабатывать, и попутно стремиться уже к работе в компании. Жрать извини хочется каждый день.

У меня нет времени искать постоянную работу. Это нужно хорошее резюме, нормальные проекты чтобы не стыдно показать было, проходить овердохуя собеседований. Боюсь что моей мотивации на это не хватит. Если бы я хоть что-то уже зарабатывал, это бы мотивировало. А так руки опускаются. Хер знает когда я смогу в компанию устроится. Как то так в общем.
Аноним 24/05/20 Вск 14:54:51 #615 №1699977 
>>1699975
>главное чтобы был наименьший порог входа
Даже не так. Что не порог входа был низкий, а чтобы можно было без проблем заработать копейку не выходя из дома в любой момент. Будут деньги тогда я смогу нанять профи ментора для прокачки.
Аноним 24/05/20 Вск 14:58:23 #616 №1699978 
>>1699977
Вордпресс, на еду и даже больше хватит, только это путь в никуда
Аноним 24/05/20 Вск 15:24:14 #617 №1700005 
>>1699978
Лучше синица в руках чем журавль в небе. Лучше начать зарабатывать прямо сейчас и попутно прокачиваться до следующего левела, чем сидеть нищуком в надежде на светлое будущее. Я знаю что CMS это путь бесперспективный, но мне нужны деньги прямо сейчас. Чтобы прокачаться нужны деньги, нужно же кушать хотя бы пару раз в день, покупать что нужно, например новый комп по мощнее, чтобы нанять ментора тоже нужны деньги, понаехать в ДС в конце концов, для это нужно дохера денег.
Аноним 24/05/20 Вск 16:31:05 #618 №1700152 
image.png
Сап, двач. Помогите нюфагу пожалуйста, скажите, где я обосрался?

$sql = "INSERT INTO Clients (SURNAME, NAME, PATRONYMIC, PHONE_NUMBER) VALUES ('$surname', '$name', '$patronymic', '$phone_number')";
$result = mysql_query("SELECT 'Id_client' FROM Clients WHERE 'Phone_number' = '$phone_number'");


if (mysqli_query($conn, $sql)) {

echo "<h1><center>Заказ добавлен. N ". mysql_result ($result) . "!</h1></center> " ;
}
else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);


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

Хелп плиз
Аноним 24/05/20 Вск 16:35:20 #619 №1700167 
>>1700152

Ты взял 'Id_Client' в кавычки, и MySQL понимает это буквально, как строку, а не название поля.

Также, у тебя в коде SQL инъекция, почитай это https://github.com/codedokode/pasta/blob/master/security/sql-injection.md

Также, почитай рекомендации по поводу того, как выбирать названия таблиц и колонок: https://www.sqlstyle.guide/ru/
Аноним 24/05/20 Вск 16:47:07 #620 №1700197 
>>1694259

Не стоит смешивать логику получения данных и логику вывода данных в HTML. Почитай про шаблонизацию: https://github.com/codedokode/pasta/blob/master/php/templates.md

Код ломается скорее всего оттого, что в нем происходит ошибка. Посмотри логи ошибок или включи отображение ошибок, поставив display_errors=on в php.ini.

>>1693910

Во всех нормальных редакторах и IDE есть "поиск по файлам". Он гораздо удобнее.

>>1693099

Нету, надо писать свою функцию.
Аноним 24/05/20 Вск 16:52:07 #621 №1700212 
>>1692873

NULL обозначает "неизвестно". Потому эти сравнения возвращают тоже NULL, а не TRUE:

0 = NULL - мы сравниваем 0 с неизвестным числом и не знаем, что в итоге получим, потому получается NULL
'' = NULL - тоже самое
NULL = NULL - мы сравниваем 2 неизвестных значения и не знаем, равны они или нет, потому сравнение вернет NULL

Ты можешь увидеть, что вернет сравнение, выполнив запрос SELECT без FROM, например:

SELECT NULL = NULL

Тебе нужен IS NULL. SELECT NULL IS NULL вернет 1.



Аноним 24/05/20 Вск 17:04:42 #622 №1700248 
>>1689761

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

>>1688969

Ютуб скачивает видео кусочками определенной длины и их воспроизводит. Это дает ему такие плюсы:

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

Можешь почитать про Media Source Extensions, начиная отсюда: https://developer.mozilla.org/en-US/docs/Web/Guide/Audio_and_video_delivery#Media_Source_Extensions_MSE

Аноним 24/05/20 Вск 17:13:06 #623 №1700261 
>>1688849

Я не знаю про Ларавель, но команды там напоминают Симфониевские команды. Ты не можешь в тесте просто создать объект команды, создать объекты Input и Output, вызвать run или execute, и проверить что то, что ты хотел сделать, сделано?

>>1687996

Редирект обычно делают, когда какой-то раздел переехал на новый адрес. Или для реализации коротких ссылок. В случае с тредами и постами - не логичнее ли сразу формировать правильную ссылку на нужный тред, а не заставлять клиента делать лишние запросы?
Аноним 24/05/20 Вск 17:15:00 #624 №1700264 
что значит,что симфони корпоративная?
Аноним 24/05/20 Вск 17:20:03 #625 №1700270 
>>1700264

Корпоративные/энтерпрайзные приложения - это приложения, которые развиваются в течение долгого времени большой командой и обладают высокой сложностью.
Аноним 24/05/20 Вск 18:06:03 #626 №1700330 
image.png
>>1700167
>Ты взял 'Id_Client' в кавычки, и MySQL понимает это буквально, как строку, а не название поля.

убрал кавычки, но ничего не поменялось

C инъекцией и неймингом постараюсь разобраться, но сначала хотелось бы с этим решить. Пикрил тоже не работает, сука ((
Аноним 24/05/20 Вск 19:32:18 #627 №1700419 
>>1700152
Ты обосрался когда намешал все в кучу.
Во первых сначала подготовь запросы, убедись что все в них работает. https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=556ec70420cf4a7b466236ffe6aa0dbf
Во вторых чекай актуальность своих инструментов. Какой-то блядь mysql_result замшелый, пиздец вобщем. Используй либо напрямую PDO, либо какую нибудь ORM, желательно доктрину, но можно и попроще. Версию пхп минимум 7.1, а лучше 7.4
В третьих не экономь на переменных и функциях и давай человекочитаемые названия. Хуй проссышь где у тебя какой запрос и результат. Помести результат запроса в переменную, а вывод делай отдельной функцией. Примерно так должен выглядеть твой код https://3v4l.org/EFcTC, в идеале это должно быть ООП.
В четвертых спизди уже себе пхпшторм, он сильно облегчит работу и многие ошибки сразу подсветит.
Ну и проделав все это станет понятно, что ты блядь сначала делаешь запрос на получение данных $result = mysql_query("SELECT 'Id_client', а потом на вставку if (mysqli_query($conn, $sql)) {.
Аноним 24/05/20 Вск 19:53:31 #628 №1700456 
>>1700419
спасибо, братик. я скрафтил какую-то залупу, она вроде пока работает. если все сломается опять, то воспользуюсь твоим кодом я слишком тупой, а он кажется сложным на первый взгляд
дай бог здоровья тебе
Аноним 24/05/20 Вск 20:35:37 #629 №1700507 
https://informatics.mccme.ru/mod/book/view.php?id=815
Как это развидеть? До этого все задачи решал в хард моде достаточно быстро и без заглядываний под спойлера, но сейчас уже полчаса втыкаю по сути в готовое решение и понимаю что ничего не понимаю.
Аноним 24/05/20 Вск 22:13:43 #630 №1700610 
ОП, начал делать задачу про файлообменник (уже давно, с паузами). Посмотри, пожалуйста, промежуточный вариант.

https://github.com/deadj/uppu
Аноним 25/05/20 Пнд 12:10:59 #631 №1701418 
PHP на десктопе
Вышло ли что-то годное, чтобы пилить гуишные проги на пхп. Либо в крайнем случае - "консольные".

Помню в 2013 можно было через .bat запускать *.php файлы без сервера. Было удобно, что не нужно изучать новый язык программирования, когда тебе просто нужно порезать текстовый файл на куски, или сделать перестановку строк.

А что сейчас?
Аноним 25/05/20 Пнд 13:59:46 #632 №1701606 
>>1701418
PHP не для десктопа.
Возьми c#/js
Аноним 25/05/20 Пнд 14:41:05 #633 №1701682 
>>1700248
Спасибо за ответы.

Кто-нибудь может оценить задачу на переворачивания текста?
https://paiza.io/projects/s8B0SyRLZ982NbIPTtdUEQ?language=php
Аноним 25/05/20 Пнд 14:49:27 #634 №1701705 
пхп использует одно ядро процессора?
Аноним 25/05/20 Пнд 16:44:23 #635 №1701952 
>>1700507

Это не так сложно. Динамическое программирование - это подход, когда мы сложную задачу раскладываем на набор простых. То есть, чтобы определить, как выдать сумму в N рублей, мы определяем, как выдать сумму в N-k рублей, и добавляем банкноту номиналом k, чтобы получилось ровно N рублей. Чтобы найти, как выдать сумму в N-k рублей, мы добавляем банкноту номиналом l к сумме в N - k - l рублей. И так, пока не дойдем до нуля, когда мы получим результат.

Если посмотреть внимательно, то нам придется сделать не более N * M действий, где N - требуемая сумма, M - число номиналов банкнот.

Ну например, у нас есть банкноты номиналом 10 р, 6 р (много) и 1 р (только 1 штука). Нам надо выдать 12 р. Жадный алгоритм тут не сработает - он возьмет 10 р и запнется, так как не хватает однорублевых купюр. Используя динамический алгоритм, мы можем сделать это 3 способами:

- добавить 1 р к комбинации на 11 р
- добавить 6 р к комбинации на 6 р
- добавить 10 р к комбинации в 2 р

В свою очередь, получить 11 р тоже можно тремя способами:

- добавить 1 р к 10 р
- добавить 6 р к 5 р
- добавить 10 р к 1 р

И так далее, пока мы не дойдем до нуля. Так мы получим комбинации вида 10 + 1 + 1 (невозможна, так как не хватает однорублевых купюр), 6 + 6 (возможна), 6 + 1 + 1 + 1 + 1 + 1 + 1 (невозможна) и так далее.

Если рисовать на бумаге возможные варианты решения, то мы получим "дерево": от суммы в 12 р отходят 3 ветки (к суммам в 11, 6 и 2 р), от каждой из них тоже отходит по несколько веток. Попробуй это нарисовать, так, чтобы между вершинами дерева суммы менялись на одну купюру.

У меня получился такой рисунок (он нарисован только частично): https://dreampuf.github.io/GraphvizOnline/#digraph%20G%20%7B%0A%20%20%20%2011%20-%3E%2012%20%5Blabel%3D%22%2B1%22%5D%0A%20%20%20%206%20-%3E%2012%20%5Blabel%3D%22%2B6%22%5D%0A%20%20%20%202%20-%3E%2012%20%5Blabel%3D%22%2B10%22%5D%0A%20%20%20%20%0A%20%20%20%2010%20-%3E%2011%20%5Blabel%3D%22%2B1%22%5D%0A%20%20%20%205%20-%3E%2011%20%5Blabel%3D%22%2B6%22%5D%0A%20%20%20%201%20-%3E%2011%20%5Blabel%3D%22%2B10%22%5D%0A%20%20%20%20%0A%20%20%20%205%20-%3E%206%20%5Blabel%3D%22%2B1%22%5D%0A%20%20%20%200%20-%3E%206%20%5Blabel%3D%22%2B6%22%5D%0A%0A%20%20%20%201%20-%3E%202%20%5Blabel%3D%22%2B1%22%5D%0A%20%20%20%20%0A%20%20%20%200%20-%3E%201%20%5Blabel%3D%22%2B1%22%5D%0A%7D

Если идти от 12 к 0, против стрелок, рано или поздно мы дойдем до нуля, и получим ответ. Либо поймем, что ответа нету. Вершин не более N, в каждую вершину ведет не более M стрелок, значит нам надо сделать максимум N * M шагов.

Чтобы реализовать это в программе, мы можем использовать рекурсию.

Рекуррентная последовательность - это последовательность, где следующий член вычисляется из предыдущего, вроде x(n) = x(n-1) + 1, x(0) = 0.

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

Вообще, динамическое программирование - не единственный способ. Еще можно решать задачу "в лоб" - перебором всех возможных комбинаций банкнот, пока не получим нужную сумму. Тут, правда, количество действий может оказаться большим: a * b * c * d ... , где a, b, c, d, ... - количества банкнот каждого номинала.

Если что-то непонятно в решении, задавай уточняющие вопросы.

Аноним 25/05/20 Пнд 17:23:33 #636 №1702034 
>>1700610

Ты пишешь код контроллера и в коллбеках в index.php, и в отдельных классах. На мой взгляд, это не имеет смысла и надо сразу ставить твои контроллеры как обработчики. У контроллеров есть зависимости (которые ты передаешь в конструктор), потому логичнее всего сделать так:

- зарегистрировать контроллеры как сервисы в контейнере Slim
- указать их в качестве обработчиков. Это описано тут: http://www.slimframework.com/docs/v3/objects/router.html#container-resolution

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

$container[MainCtrl::class] = ....;
$app->get('/', MainCtrl::class . ':indexAction');

Либо же ты можешь использовать тот факт, что Слим может сам создать объект, передав контейнер в конструктор, и тебе остается написать лишь:

$app->get('/', MainCtrl::class . ':indexAction');

А если в твоем контроллере всего одно действие, ты можешь использовать "invokable class" отсюда http://www.slimframework.com/docs/v3/objects/router.html#using-an-invokable-class и писать просто:

$app->get('/', MainCtrl::class);

Также, перечитай урок по Dependency Injection, если забыл, что это такое.

> $app->get('/{nameId}'
Это не очень удачный URL, так как он конфликтует с другими URL.

dbConnect.php можно ликвидировать и перенести его в коллбек контейнера.

Конвертировать видео лучше бы в фоне, так как это может занять время. Для того, чтобы это сделать, нужна очередь задач. Ты лишь постишь задачу в очередь, а фоновый процесс подхватывает ее и обрабатывает видео. Попробуй с этим разобраться. Для начала можно взять библиотеку вроде https://github.com/anorgan/QuTee с бекендом на MySQL, а для высоконагруженных систем используют очереди в Redis или RabbitMQ.

В README надо написать про ffmpeg.

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

> preg_replace('/.*[.]/', '', $uploadedFile->getClientFilename(
Это лучше вынести в функцию с понятным названием.

> if (preg_match('/[.]php$/', $link)) {

Еще могут подсунуть какой-нибудь phtml, он в некоторых конфигурациях исполняется тоже. Безопаснее давать какое-то свое расширение.

> (trim($_POST['name']))
Надо использовать объект request.

https://github.com/deadj/uppu/blob/master/src/Models/MediaInfo.php

Здесь вместо массивов можно было бы попробовать сделать классы, для разных видов файлов, вроде VideoParams, AudioParams итд.

Размер файла можно определить встроенной функцией PHP, не прибегая к id3.

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

> $statement = $this->pdo->prepare("SELECT id FROM files WHERE nameId = :nameId");

Используй lastInsertId().

> foreach ($filesId as $id) {
> $filesArray[] = $this->filesTable->getFileThroughId(intval($id));

Запросы в цикле - неэффективно, лучше использовать 1 запрос с WHERE id IN (...).

> private function convertCommentsObjectToArray
Вообще, для преобразования объекта в массив (и обратно) есть библиотеки вроде JSMSerializer. Может, она тебе тут пригодилась бы?

Сохранение ошибок конвертации в лог можно сделать функцией error_log().

> <script type="text/x-template" id="templateReplyComment">

Кстати, для новых браузеров доступен тег <template>. Но script, конечно, лучше поддерживается.

Для ограничения текста в поле есть атрибут maxlength.

> <a href="/"><h1>
Логичнее вкладывать строчный тег в блочный, хотя новый стандарт уже позволяет вкладывать блоки внутрь <a>.

> var date = document.createElement('h5');
> date.innerHTML = commentsList.date;
Тут нужно использовать шаблоны. Как тут править верстку?

Аноним 25/05/20 Пнд 19:40:14 #637 №1702294 
Бесплатно проконсультирую по веб-программированию в своем чятике https://crawc.net/ru/#¢ґ@ẘ¢η€☂
опыт работы: 8 лет
Аноним 25/05/20 Пнд 21:46:23 #638 №1702432 
Неужели новичок, дочитав http://codedokode.github.io/phpbook до конца, должен быть в состоянии сделать задачу на список студентов? Выглядит слишком уж сложно.
Аноним 25/05/20 Пнд 22:04:56 #639 №1702470 
image.png
>>1701952
ОПчик ты же опчик?, ты охуенен даже если не опчик, то ты охуенен, на таких людях мир держится. Большое спасибо за развернутый ответ, прочитал я часа 4 назад и с того времени пытаюсь осознать этот алгоритм. Еще вчера с момента когда я задал вопрос я часа три читал за динамическое программирование, рекуррентные функции, множество страниц перерыл насчет конкретно этой задачи и других похожих. Ничего сложнее чем Фибоначчи я тогда так и не понял. Нагуглил в архиве решение, пытался в нем разобраться, не получилось. Заметил что в архиве на любой вопрос об этой задаче нету ответов ни от кого кроме ОПа, понял что 98% треда пропустили её усложненный вариант, сделал так же и перешел к Лиличке, сделал её минут за 10 и пошел спать. После того как увидел твой пост понял, что он окажется зря написанным если забью на эту задачку, начал дальше углубляться во всё это. Поигрался с этим твоим digraph, потом наконец-то перевел код решения из си на пыху, после чего оказалось что если придать переменным осмысленные названия а не $a $b $c $k $m то код легко читается. Забавно, я нашел первый плюс того, что перед переменными в пыхе пишется знак $. Без него нельзя было бы менять названия переменных через автозамену одним кликом. Написал для каждой строчки комментарии, по комментариям заново воссоздал код. Теперь хочу еще раз заново воссоздать код без комментариев с нуля из головы, после чего попробую ввести туда ограниченное количество купюр. Теперь вопрос: конечно код решения методом динамического программирования намного меньше, чем если бы я решал "в лоб - перебором всех возможных комбинаций банкнот". Но неужели это нормально, что например при необходимой для выдачи сумме 350000 рублей, в массив F будет записано 350000 элементов? Еще и не пустых, так как в итоге каждое значение (value) будет отвечать минимальному количеству купюр для ключа, см. пикрил
Аноним 25/05/20 Пнд 22:10:00 #640 №1702478 
Хех, еще и для 99.9% элементов этого массива из 350001 элементов значение равно самому большому возможному числу для INT. Вот на что идут государственные деньги!
Аноним 25/05/20 Пнд 22:14:12 #641 №1702480 
>>1702470
Анончик, расскажи пожалуйста, что это у тебя за сайт с задачками. Ты выполняешь их все на php, таким образом изучая его? Или именно прокачиваешь знание алгоритмов?
Аноним 25/05/20 Пнд 22:17:51 #642 №1702486 
image.png
>>1702480
Ты за этот? https://informatics.mccme.ru/mod/book/view.php?id=815
Это ссылка, которую разместил ОП на этой странице http://phpbook.ga/l1/mou-ikkai.html, задачу пикрил видишь сам, она самая первая на этой странице. По ссылке размещено решение усложненного варианта этой задачи, когда номиналы купюр не каноничны и их количество ограничено.
Аноним 25/05/20 Пнд 22:27:11 #643 №1702489 
>>1702486
Спасибо <3 пользуясь случаем, также благодарю ОПушку.
Аноним 25/05/20 Пнд 22:55:51 #644 №1702516 
Кстати, нужно бы для потомков оставить пример этого алгоритма на пыхе, с комментариями и нормальными названиями переменных, не все си знают. Если бы я на такое наткнулся в архиве, то сэкономил бы несколько часов жизни. Код переведен на пыху не мной, а комментарии я писал для себя и вполне вероятно что они неверны так как я сам в этом коде пока мало понимаю, но это лучше чем ничего. Кстати комментарии немного странные, не обращайте внимания, они близки к псевдокоду и сделаны были для того, чтобы по ним написать нормальный код самому.
Ключевые слова: банкомат сдача рюкзак
Полезное сообщение от ОПа: >>1701952
Сам код: https://ideone.com/FBhunR
Аноним 26/05/20 Втр 00:18:51 #645 №1702623 
>>1702432
А ты не тупо читай, а код пиши.
Аноним 26/05/20 Втр 00:54:08 #646 №1702645 
>>1702470

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

> Заметил что в архиве на любой вопрос об этой задаче нету ответов ни от кого кроме ОПа,

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

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

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

> Но неужели это нормально, что например при необходимой для выдачи сумме 350000 рублей, в массив F будет записано 350000 элементов?

Это зависит от ситуации. Здесь расход памяти - это плата за скорость алгоритма. Ты можешь использовать метод перебора, который потребует в разы меньше памяти, но в разы больше времени в неудачном случае (а в удачном сведется к быстрому жадному алгоритму). Выбирай ~~стул~~ вариант по вкусу. Хороший инженер должен уметь сравнивать варианты решения и понимать их плюсы и минусы.

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



Аноним 26/05/20 Втр 00:59:47 #647 №1702646 
Сап анчоусы, есть тут кто с Екб? Сколько там з/п платят джунам, можно ли сразу без опыта на 40к выйти?
Аноним 26/05/20 Втр 01:01:42 #648 №1702649 
>>1702516

Ты только слово "флаг" неправильно использовал. Обычно флагом называют переменнную, которая принимает значения true/false (да/нет).

Также, в коде повторяется $bills[$j] много раз, от копипасты лучше избавиться, например написав $bill = $bills[$j]. А еще лучше, вместо for применить foreach:

foreach ($bills as $bill) { .... }

$i можно заменить на $sum.

Аноним 26/05/20 Втр 02:57:04 #649 №1702683 
>>1702645
>По моему, кто-то все же решил ее методом перебора всех возможных комбинаций купюр.
Вот дерьмо, это же тот самый код, в который я долго втыкал, пытался разобраться, дебажил и не мог понять как он связан с этим реккурентным алгоритмом. Только сейчас понял что никак он и не связан. Вот это я тупой конечно, никак не мог понять зачем там нужен генератор и прочие вещи, почему-то я даже не допустил возможности что этот анон решал совсем другим методом.
>Мне кажется, тут стоит порисовать графы.
>Программа, которая дана там, по сути обходит граф, в каждый узел записывая мин.число купюр, которыми можно собрать сумму.
Да, я с ними поигрался. По этим графам работает метод перебора комбинаций, насколько я понял Если это не так, то выходит ты мне предлагаешь третий вариант решения этой задачи?
>Это зависит от ситуации. Здесь расход памяти - это плата за скорость алгоритма. Ты можешь использовать метод перебора, который потребует в разы меньше памяти, но в разы больше времени в неудачном случае (а в удачном сведется к быстрому жадному алгоритму). Выбирай ~~стул~~ вариант по вкусу. Хороший инженер должен уметь сравнивать варианты решения и понимать их плюсы и минусы.

Давно думаю что надо бы подтянуть свое понимание в этих вещах, так как никогда бы не подумал что сначала задать значение для 350001 клеток памяти, после чего проверить для каждой из них по 7 условий окажется менее тяжело ( времязатратность это ведь следствие большой нагрузки? ), чем обычный перебор. Хотя возможно я просто не совсем понимаю что такое этот обычный перебор, но всё равно надо бы в этом подтянуться. Однажды написал калькулятор на мк с памятью 14 кБ, на другом мк с меньшей памятью он уже не работал. Так и не понял что нужно было оптимизировать чтобы уменьшить объем занимаемой памяти. А вообще нужно ли с этими вещами заморачиваться на пхп? Я почему то очень дорожу памятью, лишний раз новую переменную не ввожу. Есть ли в этом вообще смысл?. У банкомата понятное дело что памяти не терабайт, но ведь в случае с пыхой все эти дела будут храниться на сервере.
>>1702649
>Ты только слово "флаг" неправильно использовал. Обычно флагом называют переменнную, которая принимает значения true/false (да/нет).
Да, я знаю, просто ведь писал для себя, не думал что выкладывать буду, так исторически сложилось что мне удобно такое название. На счёт остального, это просто транслитерированный на пхп код с сайта, оптимизировать буду потом.
Аноним 26/05/20 Втр 03:32:19 #650 №1702700 
Ох, все таки еще раз заглянул на этот код что я сюда >>1702516 выложил, аж кринжово немножко стало. Надо было бы таки отредактировать комментарии перед тем как на люди выкладывать, так как местами действительно наркомания написана. То что я счетчик флажком назвал это еще херня по сравнению с тем, что я цикл назвал массивом, хех. Да и вообще эти комментарии лепту для понимания алгоритма не привносят, надо было без них кидать.
Аноним 26/05/20 Втр 04:25:52 #651 №1702705 
image.png
Двойной дабл выпал.
Аноним 26/05/20 Втр 06:32:07 #652 №1702721 
Screenshot97.png
Screenshot99.png
Screenshot100.png
Анончики, в чем проблема? Хотел на форму вывести логин, но пишет ошибку.
Аноним 26/05/20 Втр 12:08:14 #653 №1702857 
как очистить поле формы?
а то он сохр все,что я вводил
Аноним 26/05/20 Втр 13:59:32 #654 №1702981 
>>1702857
Код скинь. Если форма сохранила прошлый твой ввод, значит ты сам подрубил это себе через value
Аноним 26/05/20 Втр 15:35:55 #655 №1703173 
>>1702721
Опять логику и шаблон мешаете в кучу
Аноним 26/05/20 Втр 15:47:58 #656 №1703196 
>>1657523
>полному нулю
ну наверно почитать как работают базы данных
Аноним 26/05/20 Втр 23:08:19 #657 №1703793 
2134214895110.jpg
Разобрался таки в алгоритме банкоматовском еще вчера ночью, стоило представить на месте его элементов настоящие числа не без помощи дебагера и я понял как и главное почему он работает. Кстати, ты не что-то подобное на пикрил мне советовал порисовать? Рисовал для себя ночью чтобы понять алгоритм, сейчас обнаружил что оно сходит на твое описание:
>граф, где вершины (кружочки) обозначают сумму, а ребра (стрелочки) - добавление купюр

Так вот, после осознания алгоритма переписал код быстренько с нуля чтобы закрепить знания, вот код кстати: https://ideone.com/nOtKLT, уже пол дня пытаюсь прикрутить туда ограниченность количества банкнот, почти безрезультатно. Похоже что это не так и легко. Есть догадка что для этого необходимо ввести еще один массив массивов, подобный массиву $F, где каждый элемент будет включать еще один массив, в котором хранятся комбинации купюр. Это конечно можно хоть сейчас сделать правда расход памяти увеличится в семь раз, но что тогда делать дальше я даже представлять не хочу, мозги закипают. Всё таки мне кажется что не может здесь решение быть таким сложным, я себе хрень какую-то мудрую, наверняка есть более простой способ. Если это так, то посоветуй как это дело реализовать.
Аноним 27/05/20 Срд 14:59:13 #658 №1704316 
симфони тяжелая однако система
Аноним 27/05/20 Срд 16:32:55 #659 №1704421 
>>1704316
Тяжелая в плане изучения?
Аноним 27/05/20 Срд 17:12:48 #660 №1704470 
>>1704421
да
Аноним 27/05/20 Срд 17:41:46 #661 №1704497 
>>1702646
Джуны уже пять лет на хуй никому не нужны, если только дико повезет за бесплатно пол года поработаешь на испыталке, и не факт что возьмут за еду даже
Аноним 27/05/20 Срд 17:55:08 #662 №1704514 
Копротивляюсь в ларавел, чет нихуя не могу фасад запустить. Из сервис провайдера доступен класс, а фасад для него настроить не могу.

фасад:
<?php
namespace app\customFasades;

use Illuminate\Support\Facades\Facade;

class customFasade extends Facade{
protected static function getFacadeAccessor() { return 'facade1'; }
}

файл app.php:

aliases = [
...
'Custom1'=> App\customFasades\customFasade::class,
]

//контроллер где должен использоваться фасад
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

//зависимость
use App\customService\customService;

//фасад - вроде как нужно
use Illuminate\Support\Facades\Custom1;

class mainController extends Controller
{
public function __construct(customService $myService){
$this->myService = $myService;
}

public function main(){

//Custom1::test(); -- не определяется, где я торможу?

}
}




Аноним 27/05/20 Срд 17:55:44 #663 №1704515 
>>1704514
>Из сервис провайдера
Из сервис контейнера конечно
Аноним 27/05/20 Срд 18:16:59 #664 №1704540 
>>1704514
Срань какая то, вроде по инструкции. Но кастомный фасад недоступен по:
use Illuminate\Support\Facades\Custom1;
Аноним 27/05/20 Срд 19:11:10 #665 №1704599 
достаточно ли в пхп встроенных фич по сравнению с др ЯП?
Аноним 27/05/20 Срд 19:47:25 #666 №1704644 
А что анон может сказать про конструкторы сайтов, типа викс, тильда..?
Аноним 27/05/20 Срд 20:15:01 #667 №1704677 
>>1704644
Бездушная хуета
Аноним 27/05/20 Срд 21:34:18 #668 №1704755 
А зачем на всяких вк и фейсбуках такая фича: если есть ссылка на другой сайт, то сначала редирект на страницу "вы покидаете фейсбук", а потом уже на саму ссылку? Типа защита от фишинга?
Аноним 27/05/20 Срд 21:34:37 #669 №1704756 
>>1704644
1. Появляется новый конструктор сайтов, все начинают кукарекать что программисты больше не нужны.
2. Программистов убирают, приходят бабы Сраки накидывающие блоки.
3. Для того, что бы удовлетворить потребностям клиентов, конструктор начинает обрастать настройками, параметрами, исполняемыми высокоуровневыми скриптами, хуками и тд.
4. Бабы Сраки перестают с ним справляться, их убирают и берут программистов умеющих работать с этим конструктором.
Аноним 27/05/20 Срд 21:57:28 #670 №1704789 
>>1704470
А мб ты просто не осилил ООП, СОЛИД и паттерны?
Аноним 27/05/20 Срд 22:17:12 #671 №1704824 
>>1704599
Для бекенда достаточно
Аноним 27/05/20 Срд 22:17:36 #672 №1704826 
>>1704755
Наверное чтобы скинуть с себя какую-то ответственность, оповестить неуверенного пользователя ПК что дальше они за его безопасность не отвечают и по ссылке может быть фишинг, гуро с детьми или даже, не дай Б-г, критика действий власти.
Аноним 27/05/20 Срд 22:49:17 #673 №1704870 
>>1704824
но джава может больше выкрутасов на сервере?
Аноним 27/05/20 Срд 22:59:34 #674 №1704893 
>>1704870
Может, но она и дороже в разработке и поддержке
Аноним 28/05/20 Чтв 09:30:55 #675 №1705124 
>>1704677
>>1704756
Я как раз с нашей точки зрения и спрашиваю: будет толк пилить там лендосы по-быстренькому (кушать совсем нечего), попутно изучая php? И может ли так получиться что мне, с зачатком мозга, станет там слишком уютно и весь php пойдет на хуй?
Аноним 28/05/20 Чтв 09:36:14 #676 №1705128 
>>1705124
Там может быть уютно, если найдешь лохов, которые будут кучу денег тебе платить за якобы "поддержку" этих поделий. Есть такие люди, хитрожопые и неприятные. Ну и да, кодить для этого практически не надо уметь.
Но само по себе это не тема этой доски и треда.
Аноним 28/05/20 Чтв 10:50:01 #677 №1705200 
Чет я тупой, нихуя не пойму как работает сервис контейнер в ларавел.
концепцию то я понимаю, но как это в ларе реализованой - нихуя не ясно. В ларакасте как то хуево для меня объясняется.
класс:

class Bar{}

типа свзяываем в контейнер класс:
App::bind('tormoz', function(){
return new Bar();
});

в маршруте роутера:
//через ревлексию достанет мне Bar
Route::get('/', function(Bar $bar){

dd($bar);

});

//но если так- мой контейнер называется tormoz:
Route::get('/', function(tormoz $bar){

dd($bar);

});
то хуита

Я не пойму когда ларавел через ревлексию дергает класс, а когда дергает контейнер. Контейнер называется tormoz, но как тайпхинт это не проходит.





Аноним 28/05/20 Чтв 10:53:25 #678 №1705205 
>>1705200
блядь, как то у меня не задалось с ларавелом(
Аноним 28/05/20 Чтв 11:34:10 #679 №1705270 
И еще вопрос по контейнеру зависимости, что бы не заграмождать тред - код и вопрос по ссылке.
Странно как то, вроде все норм, а в деталях у меня с контейнером этим какой то треш. В данном случае - если не орпределена в конструкторе инъекция с классом - то у меня фасад App::make() возвращает ошибку.
Я такой боли вообще еще не испытывал, как от ларавел.

https://ideone.com/Hs7hh1
Аноним 28/05/20 Чтв 13:01:23 #680 №1705498 
>>1705200
>>1705205
>>1705270
Разобрался более менее
Аноним 28/05/20 Чтв 14:30:57 #681 №1705609 
Cап аноны, я хочу с помощью чекбоксов удалить данные из базы данных, но у меня проблема в том, что значение удаляемого поля не заходит в value, а как это поправить я все никак не пойму, по идее все id которые у меня отмечены с помощью чекбокса должны помещаться в массив box но значения не переходят
<?php
$connect = mysqli_connect("localhost","root","", "sad");
mysqli_set_charset($connect, "utf8");
$query = "SELECT *
FROM `квитанция `";
$result = mysqli_query($connect, $query);
if($result){
$rows = mysqli_num_rows($result);
echo "<form method=\"post\" action=\"\">";
echo "<table>";

for ($i = 0 ; $i < $rows ; ++$i)
{
$row = mysqli_fetch_row($result);
echo "<tr>";
for ($j = 0 ; $j < 5 ; ++$j)

echo "<td>$row[$j]</td>";
echo "<td><a href='TableDeti.php?id=";
echo $row[2];
echo "'>Информация о детях</a></td>" ;
echo "<td><input type='checkbox' name='box[]' value=$код ></td>'";
echo "</tr>";

}
echo "</table>";
echo "<input type=\"submit\">";
print_r($_POST);
echo "</form>";

}
Аноним 28/05/20 Чтв 15:09:23 #682 №1705646 
>>1705200
Ты просто какую-то хуйню делаешь. Перечитай еще раз доки.
Если тебе нужен сервис Bar, и все его зависимости с тайпхинтом то тебе вообще ничего не нужно делать. Если сервис Bar принимает какой-то конфиг или скалярные значения, то юзай bind и кложу фабрику, которая возвращает объект. Если тебе нужна более тонкая настройка то там вообще есть when(Classname::class)->needs(ServiceInterface::class)->give(Concrete::class) или не ебись и уровнем выше бинди реализацию объекта. Еще ты биндишь не к имени класса, а к какой-то рандомной строке. В контейнере есть алиасы, но это другая вещь. Например, $app->alias(Bar::class, 'tormoz'); $app->make('tormoz'); отработает как нужно.
Аноним 28/05/20 Чтв 16:00:15 #683 №1705741 
как браузер понимает пхп код?
Аноним 28/05/20 Чтв 16:19:06 #684 №1705774 
>>1705741
Дергает через API google translate, потом с помощью движка V8 код компилируется в машинный и исполняется в браузере.
Аноним 28/05/20 Чтв 16:22:44 #685 №1705784 
>>1705741
До браузера пхп код не доходит
Аноним 28/05/20 Чтв 16:35:34 #686 №1705810 
>>1705609
Нынче за цп квитанции выдают?
Аноним 28/05/20 Чтв 17:55:15 #687 №1705935 
>>1705741

Браузер не понимает PHP код. Когда ты открываешь страницу в браузере, браузер шлет запрос к веб-серверу, где работает PHP. PHP выполняет PHP скрипт, и то, что скрипт выводит (HTML-код), отправляется браузеру в ответ на запрос. Браузер отображает полученный HTML.

Это называется "протокол HTTP". Браузеру не важно, какой язык используется на сервере, он шлет запрос, как описано в протоколе, и получает в ответ HTML.

Здесь это подробнее описано: https://github.com/codedokode/pasta/blob/master/network/http.md
Аноним 28/05/20 Чтв 17:57:03 #688 №1705938 
>>1705935
а если нет HTML,а просто echo?
Аноним 28/05/20 Чтв 18:16:50 #689 №1705960 
>>1705938

Я не точно выразился. То, что выведет скрипт, браузер будет воспринимать как текст с разметкой HTML. Если просто написать echo "hello", то браузер все равно будет воспринимать это как текст с разметкой HTML, и выведет слово hello.

Тип содержимого можно задать явно, отдав браузеру заголовок Content-Type. Например, Content-Type: text/plain; charset=utf-8 говорит, что у тебя просто обычный текст без разметки HTML.
Аноним 28/05/20 Чтв 18:59:17 #690 №1706010 
Хочу запилить агрегатор каналов в телеге. В качестве клиента MadelineProto, написанный на пхп. Как вам такой алгоритм: гружу новые посты с каналов смотрю сколько просмотров, самый топовый по просмотрам постит агрегатор. Дальше через 15-20 минут чекаю опять последние посты каналов и прирост просмотров, самый топовый пост по приросту просмотров постит агрегатор и так далее. Норм?
Аноним 29/05/20 Птн 12:54:05 #691 №1706672 
>>1702646
Без опыта начинал с 25. Свяжись-ка со мной [email protected]
Аноним 29/05/20 Птн 15:07:23 #692 №1706850 
>>1702646
я в мск без опыта начинал в 2017 на 28к в одной обосранной продуктовой компании, мне тогда было 30

сейчас 180к зарплата, уже в другой конторе естественно.
Аноним 29/05/20 Птн 15:16:58 #693 №1706874 
анчоусы, подскажите как работодателю намекнуть на то чтобы он начал ставить меня на норм проекты на нормальном стеке я знаю что они у них есть а не на всякое говно типо битриксов/вордпрессов. имеется в виду фреймворки типо той же ларки или симфони.заебало в говне ковыряться
свалить на другую галеру я не могу, щас в своем зажопье из за вируса с работой пиздец. но не со всеми конечно, знаю например что довольно таки успешная контора к се берет людей всех мастей, на там стек это полностью битрикс
Аноним 29/05/20 Птн 15:48:04 #694 №1706906 
>>1706874
>свалить на другую галеру я не могу, щас в своем зажопье из за вируса с работой пиздец
Сам же ответил на свой вопрос
Ищи удаленку на ларе или yii2 если не брезгуешь мертвечиной. Как найдешь - вали
Аноним 29/05/20 Птн 15:55:02 #695 №1706910 
симфони на 8 ядрах будет работать быстрее,чем на 2?
Аноним 29/05/20 Птн 16:54:59 #696 №1707017 
>>1706910
Смотря что за ядра. Могут быть слабые 8 ядер 2010 года и мощнейшие 2 ядра нового поколения.
Аноним 29/05/20 Птн 17:04:20 #697 №1707021 
>>1707017
я про совр реалии
Аноним 29/05/20 Птн 17:28:17 #698 №1707042 
>>1707021
Зависит от приложения также, от архитектуры и режима работы PHP. В режиме умирающего приложения 2 скорее всего будут быстрее. Это все чепуха, не об этом надо думать. Вот сделаешь 10 высоконагруженных проектов, тогда и будешь про оптимизации думать.
Аноним 29/05/20 Птн 17:29:49 #699 №1707046 
>>1707042
а мне интересно
Аноним 29/05/20 Птн 17:54:36 #700 №1707082 
>>1707046
Вот создай приложение, сделай нагрузку на него, и тестируй.
Аноним 29/05/20 Птн 17:55:31 #701 №1707085 
>>1707046
Кроме самого PHP, есть еще запросы в базу данных. Обычно это самое узкое место.
Аноним 29/05/20 Птн 18:42:19 #702 №1707138 
>>1706910
Запили бенчмарки, че спрашиваешь?
Аноним 29/05/20 Птн 19:19:07 #703 №1707165 
>>1706910

На 8 ядрах может параллельно обрабатываться 8 запросов, не мешая друг другу. Но если посещаемость низкая, или вообще на сайт заходишь ты один, то разницы не будет.
Аноним 29/05/20 Птн 20:15:40 #704 №1707245 
>>1707165
>На 8 ядрах может параллельно обрабатываться 8 запросов
Не совсем верно, это вообще тема очень заковыристая. Вот если бы это был Эрланг, можно было бы с уверенностью сказать, что все будет скейлиться на все имеющиеся ядра. С PHP такого сказать нельзя. Он работает в разных режимах. И вообще хер знает как он скейлится. Возможно при большой нагрузке много ядер будут мешать, если код не оптимизован для них, ОС будет постоянно переключаться с ядра на ядро, а это затратно по времени.
Аноним 29/05/20 Птн 20:48:59 #705 №1707303 
>>1707245
PHP не скейлится. Вообще. Один процесс на ядро, точка. Ни PHP-FPM, никакие режимы этого не меняют. Хочешь обслуживать восемь клиентов одновременно - покупай восемь ядер. Хочешь обслуживать клиентов быстрее - покупай большую герцовку.
Аноним 29/05/20 Птн 21:22:34 #706 №1707364 
>>1707303
Так речь про ядра вообще то
Аноним 29/05/20 Птн 21:25:48 #707 №1707371 
>>1707303
>Хочешь обслуживать восемь клиентов одновременно - покупай восемь ядер.
А это разве не касается вообще всех языков по понятным причинам?
Аноним 30/05/20 Суб 01:01:45 #708 №1707590 
Как правильно название этой хуйни выговаривать чтоб не засмеяли? Пэ ха пэ? Пи эйч пи? достойные вопросы для достойного треда
Аноним 30/05/20 Суб 01:32:37 #709 №1707616 
Как авторизоваться ВК через похапэ и сервер? Именно в самом ВК через логин-пароль, чтобы потом можно было парсить авторизованную страницу через файл гет контентс или типа того (нужно добраться до сведений, которые без логина ВК тупо не отображаются)
Аноним 30/05/20 Суб 03:52:57 #710 №1707652 
>>1707590
Эр Эн Эр
Аноним 30/05/20 Суб 03:53:17 #711 №1707653 
>>1707616
VK API
Аноним 30/05/20 Суб 15:09:40 #712 №1707991 
>>1707590
Меня триггерит от пи эйч пи, что-то на уровне пайтон и ява/яваскрипто
Аноним 30/05/20 Суб 15:12:16 #713 №1707994 
>>1693950
>Поставь себе норм ide, git
Мерзавец такой мерзавец: https://translate.google.com/#view=home&op=translate&sl=en&tl=ru&text=git
Аноним 30/05/20 Суб 15:36:56 #714 №1708027 
>>1707245

Мне кажется, что ты ошибаешься.

> Он работает в разных режимах. И вообще хер знает как он скейлится.

В каких еще режимах?

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

Чем для ОС отличаются процессы или треды Эрланга от процессов PHP? Планировщик ОС в обоих случаях один и тот же.

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

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

>>1707303

PHP благодаря stateless модели как раз прекрасно масштабируется - можно добавлять ядра, можно добавлять сервера. На практике все это прекрасно работает. Такое ощущение, что тебе просто чем-то не нравится PHP и ты судорожны пытаешься найти недостатки. Давай я тебе помогу, есть целая статья про недостатки языков: https://habr.com/ru/post/315152/

Аноним 30/05/20 Суб 16:58:21 #715 №1708141 
>>1708027
>В каких еще режимах?
CGI, FastCGI, PHP-FPM, + ассинхронные сервера есть.

>Чем для ОС отличаются процессы или треды Эрланга от процессов PHP?
Всем. В Эрланге потоки существуют внутри виртуальной машины.

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

>Чем больше ядер, тем больше процессов будет работать параллельно. Даже с учетом затрат на переключение.
Только небольшое количество процессов будет нормально существовать. Потому что когда их станет существенно больше чем ядер, переключение начнет отнимать больше времени чем вычисление. В Эрланге можно держать миллионы процессов/потоков (не помню там процессы или потоки, в общем не так важно) на одной машине.
Аноним 30/05/20 Суб 17:20:20 #716 №1708168 
>>1708141

CGI никто не использует уже давно. PHP-FPM использует FastCGI. Ты толком ничего про PHP не знаешь, но пришел сюда зачем-то рекламировать Эрланг. Хотя я не слышал, чтобы кто-то писал сайты на Эрланге. Все-таки PHP больше для этого подходит, как не крути.

> В Эрланге можно держать миллионы процессов/потоков (не помню там процессы или потоки, в общем не так важно) на одной машине.

Только при условии, что эти потоки ничего не делают и не тратят процессорное время. Что на практике не бывает.
Аноним 30/05/20 Суб 18:53:59 #717 №1708287 
Если я не могу решить задачу на сумму прописью.Кстати, а смысл её решать, если есть готовые функции в гугле.То не смогу стать пхп макакой 15-20к в месяц?
Аноним 30/05/20 Суб 18:58:43 #718 №1708302 
>>1708027
так как пхп использует ядра,сразу все,или как нода только одно?
Аноним 30/05/20 Суб 19:01:58 #719 №1708310 
>>1656450 (OP)
Аноны, есть у кого-нибудь решение задачки из шапки с таблицей работников ООО Вектор? Чет я нихуя не понимаю, как там правильно все сделать. Типа, нужен новый класс, который будет выводить таблицу?
Аноним 30/05/20 Суб 19:12:52 #720 №1708325 
>>1708168
>CGI никто не использует уже давно.
Первый признак дауна, говорит за всех. Откуда тебе знать кто что использует, дебил. Большая часть сайтов это легаси.

>PHP-FPM использует FastCGI.
Да, но это не одно и то же.

>Хотя я не слышал, чтобы кто-то писал сайты на Эрланге.
Снова даун проецирует свое скудное мышление на других. На Эрланге пишут, и даже в СНГ.

>Только при условии, что эти потоки ничего не делают и не тратят процессорное время. Что на практике не бывает.
Не умничай, ты нихуя не знаешь, а пиздишь. Держит миллион вебсокет соединений спокойно, каждое соединение обрабатывает отдельный поток. И это не предел.
Аноним 30/05/20 Суб 19:13:32 #721 №1708326 
>>1708302
>как пхп использует ядра,сразу все,или как нода только одно?
Кто сказал, что нода использует одно ядро?
Аноним 30/05/20 Суб 19:17:58 #722 №1708331 
>>1708326
по умолчанию 1 ядро 1 поток.
если надо больше-кластеризация
Аноним 30/05/20 Суб 19:29:13 #723 №1708344 
>>1708331
Уже давное завезли многопоточность.
Аноним 30/05/20 Суб 19:30:48 #724 №1708346 
>>1708344
она не тру
Аноним 30/05/20 Суб 19:51:35 #725 №1708385 
>>1708027
>PHP благодаря stateless модели
Ты бы хоть почитал, что такое приложение без состояния. Это блядь вообще не характеристика языка. Твой код может вполне быть statefull, просто php будет твое состояние каждый раз заново собирать и каждый раз выкидывать. Пиздец, так этот недостаток пхп еще никто на моей памяти с ног на голову не переворачивал.

>как раз прекрасно масштабируется
Еще раз. Ты написал консольное приложение на симфони, запустил его. И в процессе выполнения оно не масштабируется. Никак. Если тебе нужно быстрее, то придется запустить симфони N раз, а еще придумать как распределить нагрузку и как согласовать результаты выполнения вне кода. Понимаешь? ВНЕ твоего кода блядь, потому что в пхп таких инструментов нет. В эрланге есть, в ноде есть, в джаве есть, в го есть, в си шарпе есть, а в пхп нет.
И начинаются танцы с базой, блокировки, очереди, процедуры. И на всех собесах по пхп на сеньора только вопросики: А вы CTE используете? А процедуры писали? А мап редьюс на SQL сбацаете? А с го знакомы? Спросишь их: а пхп? А что пхп? Пхп рожден чтобы html отдавать и умирать, а настоящую работу нужно же где-то делать.
Аноним 30/05/20 Суб 20:08:18 #726 №1708427 
>>1708346
С чего вдруг?
Аноним 30/05/20 Суб 21:02:19 #727 №1708535 
Анончик, что делать, чтобы прогрессировать? Изучать код крупных опенсорс проектов? Читать книги? Смотреть курсы? Что из этого приоритетнее?
Аноним 30/05/20 Суб 21:27:10 #728 №1708559 
>>1708287
Сначала внятно выражаться научись
Аноним 30/05/20 Суб 21:28:16 #729 №1708560 
А как копипастить свои высеры итт? Не просто же копировать стену кода из иде.
Сделал задачку из гайда, хочу чтоб обоссали
Аноним 30/05/20 Суб 21:29:50 #730 №1708562 
>>1708560
ссылку на гитхаб репу
Аноним 30/05/20 Суб 21:30:36 #731 №1708566 
Копипастну под спойлером все же...
Задание из главы про ООП. Хотелось бы сразу понять, что я делаю не так, дабы в будущем не делать хуйни. Погромирование начал изучать сегодня.

<?php

abstract class AbstractQuestion {

public $text;
public $answerUser;
abstract function CheckAnswer($answer);

}

class ChoiceQuestion extends AbstractQuestion {

public $options;
public $checkOptions;

public function CheckAnswer($answer)
{
// TODO: Implement CheckAnswer() method.
if ($answer == $this->checkOptions) {
echo "Right!\n";
} else {
echo "Miss\n";
}
}

}

class NumericQuestion extends AbstractQuestion {

public $answer;
public $deviation;

public function CheckAnswer($answer)
{
// TODO: Implement CheckAnswer() method.
if ($answer == $this->answer || $answer + $this->deviation == $this->answer
|| $answer + $this->deviation == $this->answer) {
echo "True";
} else {
echo "False";
}
}
}

$a = new ChoiceQuestion();
$a->text = "
what's 2+2?";
$a->options = "
a) 4
b) 2
c) 3\n";
$a->checkOptions = "a";


$b = new NumericQuestion();
$b->text = "what's 2+2?\n";
$b->answer = 4;
$b->deviation = 0.01;

$questions = [$a, $b];

echo "{$a->text}";
echo "{$a->options}";
$a->answerUser = readline('Ur answer: ');
$a->CheckAnswer($a->answerUser);

echo "{$b->text}";
$b->answerUser = readline('Ur answer');
$b->CheckAnswer($b->answerUser);









Аноним 30/05/20 Суб 22:54:54 #732 №1708672 
>>1708535
Делать больше чем делал вчера. Делать лучше чем делал вчера. Каждый новый день быть лучше во всех чем вчера, хотя бы на чуть чуть.
Аноним 31/05/20 Вск 00:14:40 #733 №1708739 
>>1708559
Двачую. Синтаксис php сложнее чем синтаксис русского языка.
Аноним 31/05/20 Вск 00:24:01 #734 №1708755 
>>1708566
Чую ты пиздишь, невозможно за день без опыта в программировании до ООП в ОП-гайде дойти. Или ты все задачки что тебе не нравятся пропускал? Давай свой банкомат в хардмоде или хотя бы навигатор продемонстрируй.
Аноним 31/05/20 Вск 02:00:43 #735 №1708804 
Насчёт Вектора:
>Потребление кофе или зарплата не являются свойствами так как они вычисляются из других свойств и хранить их не надо.
Это как? Ну ладно, зарплата понимаю что вычисляется из ставки и множителя. Но ведь потребление кофе никак не вычисляется особо, зависит лишь от профессии ( а значит и класса ) сотрудника. Ну ладно, еще зарплата и потребление кофе зависит от того, является ли сотрудник боссом. Но количество отчетов в месяц тоже от этого зависит, так почему бы и их не записать в этот список? Хотя я все еще не понимаю почему бы все это не записать в свойства, после чего множить по всяким факторам.
Аноним 31/05/20 Вск 17:51:57 #736 №1709244 
>>1708804

Идея в том, чтобы хранить в свойствах минимальный набор данных, а то, что можно вычислить - не хранить, а вычислять в методе при необходимости.

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

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

Так как они зависят от профессии, то теоретически можно и их не хранить, можешь попробовать это реализовать.
Аноним 31/05/20 Вск 17:59:57 #737 №1709253 
>>1708566

> $answer == $this->answer || $answer + $this->deviation == $this->answer
|| $answer + $this->deviation == $this->answer

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

Функция checkAnswer спроектирована неудачно. Она выводит результат, а не возвращает через return. Из-за этого мы не можем в программе никак использовать этот результат, например, для подсчета баллов. Будет лучше, если функция будет возвращать результат, а не выводить на экран. Ведь ее задача - только проверить ответ, а вывод - это уже задача другого кода.

Варианты ответа лучше хранить не большим куском текста, а массивом.

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

Код лучше не копипастить, а запостить на сайт вроде ideone, а сюда скинуть ссылку.

Аноним 31/05/20 Вск 18:10:03 #738 №1709261 
>>1708560

Запости код на сайт вроде ideone, а сюда скинь ссылку.

>>1708385

Ты пишешь полную ерунду. Модель PHP как раз очень удачная, так как позволяет избежать проблем вроде утечек памяти, которые часто бывают на той же ноде. Очищать состояние интерпретатора после обработки запроса довольно удачная идея. И веб-скрипты прекрасно масштабируются, чему доказательство сайты вроде Вконтакте или Баду.

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

>>1708310

Вывод таблицы можно сделать и без классов, на функциях. А можно и классом, конечно. Также, нужны классы для представления работников, департаментов, компании.

Поискать решения можно в архиве на phpclub.tech.

>>1708287

Реальный код будет куда сложнее этой задачи. Лучше остановиться и не спеша разобраться, разложить задачу на более простые части или попросить подсказки.

Например, попробуй сделать функцию, которая умеет склонять суммы от 0 до 9 рублей, а потом расширь ее до 99 и 999 рублей.
Аноним 31/05/20 Вск 18:20:39 #739 №1709283 
>>1703793

Боюсь, что использовать тот алгоритм не получится при ограничениях. Там создается массив F[n], где n - сумма, а F[n] - количество купюр.

У нас же возможность выдачи зависит от суммы n и остатка купюр amount: y = F(n, amount). Построить простой массив, перебирая n тут не выйдет.

У нас есть 2 подхода:

1) полный перебор комбинаций всех купюр
2) обход графа из 0 к N или из N к 0 с помощью рекурсивной функции

Второй вариант может выглядеть так. Пишем функцию

$y = canPay($sum, $amount)

Где $sum = сколько надо выдать, $amount - количество оставшихся купюр, $y = можно ли выдать сумму или нет.

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

То есть, если у нас есть купюры 1x100, 3x60 и сумма = 60, то функция сразу вернет "да". Если же сумма = 160, то функция должна проверить 2 варианта:

- используем банкноту на 100, и вызываем себя с параметрами 60, (3x60)
- используем банкноту на 60, и вызываем себя с параметрами 100, (1x100, 2x60)

То есть мы обходим граф, пробуя все возможные варианты выдачи.
Аноним 31/05/20 Вск 20:41:24 #740 №1709421 
>>1709261
>так как позволяет избежать проблем вроде утечек памяти
Толсто. Пхп это синоним утечки памяти. До седьмой версии демоны вообще не было смысла писать, а после седьмой писать можно, но утечки все равно периодически ебут.

>Очищать состояние интерпретатора после обработки запроса довольно удачная идея
Нихуя себе! Очень полезная фишка, расскажешь чем? А то мы с пацанами хуй поймем зачем все данные на каждый запрос из базы грузить.

>И веб-скрипты прекрасно масштабируются, чему доказательство сайты вроде Вконтакте или Баду
Facebook забыл. Помимо этого есть много крупных компаний, в которых используют пхп, я сам работал в нескольких компаниях с миллиардными оборотами и тысячами сотрудников. Все они использовали пхп потому что очень легко начать. Дешево и быстро, программистов опять же много очень. И заканчивали все одинаково - пхп слишком медленный, устаревший, а программисты на нем 90% долбоебы, которые код писать учились на двачах.
Badoo прямо показательный пример. У людей 300 серверов, которые работают на пределе, и как они только не извращаются и fpm сделали, и фреймворк прелоадят, и го пытаются юзать. HHVM, KPHP, FPM все, чтобы хоть как-то ускорить это говно. Только вот огромная кодовая база на пхп уже живет своей жизнью, и плодит новые вакансии.

>И вообще, ты какой-то недадекватный, если тебе не нравится PHP, просто не используй его
Так это не для тебя написано. Ты то совсем конченый, со stateless php и без утечек памяти. Это написано для тех кто пытается вкатиться в эту помойку. Не лезь блядь, она тебя сожрет.
Аноним 31/05/20 Вск 21:01:27 #741 №1709431 
>>1709421
> пхп потому что очень легко начать
наверно Цуку надо было на джаве начинать
Аноним 31/05/20 Вск 22:16:57 #742 №1709496 
>>1709421

Ты мыслишь очень ограниченно. Чтобы не "грузить данные из БД", есть множество кешей от APC до redis, но это создает проблему устаревания данных, (о которой ты кстати не упомянул). То есть PHP позволяет держать данные в памяти, при этом избегая проблем вроде утечек памяти, свойственных для кода на Node.JS, Ruby, Python. Модель работы PHP очень хорошо подходит для веба.

И, как мы видим по Баду, прекрасно масштабируется. С их числом пользователей 300 серверов это не много. И я уверен, что радикально ты число серверов сменой языка бы не сократил. И не забывай про скорость разработки, новые фичи надо добавлять быстро, а не по полгода пилить.

Также, важна скорость разработки, для PHP есть фреймворки, инструменты (IDE с автодополнением и рефакторингом, визуальной отладкой), куча библиотек. И действительно, много разработчиков, что облегчает выбор. Разработчики, кстати, разного уровня.

В Эрланге я не разбираюсь, но отмечу недостатки Node.JS, Python и Руби в сравнении с PHP:

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

А твои миллион коннектов не очень-то и нужны. Когда производительности PHP не хватает, просто пишут микросервис на Го или Си++, в который ходят скрипты из PHP.
Аноним 31/05/20 Вск 23:58:40 #743 №1709556 
>>1709496
>но это создает проблему устаревания данных
А как кстати разбивать кеш когда очень много серверов с пхп? Понимаю что может быть много разных способов и всё зависит от архитектуры но если можно так сказать некое дефолтное решение c:
Аноним 01/06/20 Пнд 00:03:52 #744 №1709560 
>>1709556

Можно использовать распределенный кеш вроде redis, который хорошо масштабируется (разные ключи разносятся на разные сервера).
Аноним 01/06/20 Пнд 00:13:14 #745 №1709565 
>>1709560
Если мы через пхп инвалидируем то у редиса по идее есть какая-то единая точка входа, некий сервис который знает где какие ключа валяются?
Аноним 01/06/20 Пнд 01:32:56 #746 №1709590 
>>1709244
Большое спасибо за ответ. Сначала не понял, потом поразмыслил над ним, всё осознал. Посмотрел на следующую задачу и понял что если бы я все поля вычислял в методе-конструкторе и классах профессий, то функции для изменения значений были бы намного длиннее и сложнее, а в предложенном тобой варианте необходимо будет просто сделать альтернативные функции вывода.
Аноним 01/06/20 Пнд 01:54:48 #747 №1709594 
>>1709283
Спасибо что расписал, ОПчик, отличный вариант, очень похоже на алгоритм поиска пути это он и есть. Я даже задумывался об этом когда делал навигатор, но что-то не зацепился за эту идею, т.к. ты написал в гайде что есть лишь два варианта решения.
Аноним 01/06/20 Пнд 04:17:50 #748 №1709638 
>>1709496
>Чтобы не "грузить данные из БД", есть множество кешей от APC
Пиздец. Нахуя ты приплел APC, когда opcache уже сто лет как включен в пхп и работает по умолчанию? Но самое главное это кеш кода блядь, не данных, а кода, и нужен он чтобы не парсить исходники по сто раз.

>до redis
А редис это что по твоему блядь, не база?

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

>И, как мы видим по Баду, прекрасно масштабируется
Любой код на любом языке можно бесконечное количество раз запускать на бесконечном количестве серверов. Каким хуем это стало преимуществом пхп? И откуда ты взял что в badoo все прекрасно? Я вижу судорожные попытки хоть как-то соптимизировать этого монстра, fpm, RoadRunner, Preload из 7.4 все это прямо противоречит твоей охуенной модели.

>И я уверен, что радикально ты число серверов сменой языка бы не сократил
Возможно дело в том что ты просто некомпетентный еблан. Вот тебе видео про badoo "Как 200 строк на Go помогли нам освободить 15 серверов" https://www.youtube.com/watch?v=uO268voCGwA

>В Эрланге я не разбираюсь, но отмечу недостатки Node.JS, Python и Руби в сравнении с PHP:
>нет тайп-хинтов, труднее анализировать код статически
Просто не позорься. Зайди в руби тред, там тебе мигом хуев в глотку наебенят за "отсуствие аннотаций".

>трудно обнаружимые утечки памяти
И тут я проиграл. Ты понимаешь, что когда речь идет об "утечках памяти" имеется ввиду не твой код? Утечки в твоем коде это проблема долбеба в кресле программиста. Когда я говорил об утечках я имел ввиду сам язык. Когда сама виртуальная машина пхп течет, даже если ты нихуя и не делал. Да хули говорить, одной из задач PHP-FPM является отслеживание утечек памяти.

>А твои миллион коннектов не очень-то и нужны
Ты совсем ебанулся, таблетки прими. Я вообще ничего не писал про миллион коннектов.
Аноним 01/06/20 Пнд 09:50:03 #749 №1709720 
>>1709638
на чем тогда писать свой сайт-стартап?
Аноним 01/06/20 Пнд 10:31:18 #750 №1709749 
>>1709720
Пиши на чем умеешь, пхп тоже сойдет. Если не взлетит, то все равно похуй, а если взлетит наймешь макак задешево.
Но если собрался зарабатывать на жизнь программированием держись от пхп подальше.
Аноним 01/06/20 Пнд 10:33:31 #751 №1709751 
>>1709749
стоит ли после базы городить свой велосипед на голом пхп(допустим простой бложик),или поставить ларавел?
Аноним 01/06/20 Пнд 11:00:46 #752 №1709765 
>>1709751
Бля, ну как тут ответить. Нужно и велосипеды городить и с устройством фреймворков ознакомиться.
Я бы выделил три этапа становления пхп программиста:
1) Пишешь как пишется, велосипедишь, набиваешь шишки. Такой код обычно выкидывается, за него потом стыдно.
2) Программируешь на фреймворке. Фреймворк может быть любой, ты просто пишешь код по его доке. В треде мог заметить фразы типа "пишу на ларавель", "симфони для энтерпрайза" вот это оно. Такой код обычно устаревает вместе с фреймворком, как говорится легаси по прибытии.
3) Понимаешь что ты используешь не фремворк, а инструменты, которые он предоставляет. И начинаешь выбирать себе инструменты сам. Не нравится роутинг в симфони? Пожалуйста, используешь более быструю библиотеку. Не нравится актив рекорд? Не вопрос, ставишь доктрину или автомаппер.
Звучит легко, но третий этап самый сложный. Для того чтобы делать осознанный выбор инструментов нужно знать как они работают. А для того чтобы понять что фреймворк это обуза нужно похоронить пару проектов. Ну и всегда есть вариант оказаться в первом пункте. Так что с первого и рекомендую начать.
Аноним 01/06/20 Пнд 11:42:59 #753 №1709782 
>>1709765
>Такой код обычно устаревает вместе с фреймворком
Если прямо по доке херачить без задней мысли, то устаревает в момент написания. Почти все фреймы задрочены под здесь и сейчас, а завтра пусть потоп нахуй. Так и делают в 9 из 10 случаев, за возможность так сделать фреймы и берут.
>фреймворк это обуза
Это правда. Хотя большинство на подобное у виска покрутит. Разработчик на фреймворке - рак современно пхп (и не только). И это притом, что еще от старого рака в виде вебмастеров не избавились. В конфе каждого фрейма и дня не проходит, чтобы очередной сениор-фреймворк-девелопер 300к не бзднул незнанием даже банальных вещей в синтаксисе/окружении/вебе/базе, слезно прося ему помочь и прикладывая скрины где все красным по белому, а сверхразуму все равно нихуя не понятно. Потому что пропускают все этапы и сразу к методичке "высрать блог за два копипаста" обращаются. Дешево, сердито, скорбно за профессию. Иногда даже скромные потуги местных в решение оповских задачек кажутся более интеллектуальными, чем эта идиократия на фреймах.

Так что по виду чаще этапы следуют как 2, 3, 1 (по желанию).

>>1709751
Попробуй нагородить небольшой, но качественный(самое важное, если будет не качественно - зря время потратил, вероятно даже с вредом для себя) велик похожий на ларавел и работающий на демке как ларавел (или другой фрейм, похуй). Для меня загадка почему эту простую задачу ныне даже мидлы часто не могут осилить, которые не мало знаний имеют. А можно сделать с виду даже приятнее ларки.
Если сможешь, то вопрос завязки на фрейм для тебя отпадет навсегда. Не выйдет - фрейм в процессе тоже поковырял получается, профит.
Аноним 01/06/20 Пнд 11:49:41 #754 №1709783 
какой самый примитивный фреймворк?
Аноним 01/06/20 Пнд 11:53:36 #755 №1709785 
>>1709782
> качественный
откуда я узнаю,если в процессе изучения с большой вероятностью я буду смотреть и копипастить чужой код и часто с разным подходом?
Аноним 01/06/20 Пнд 11:59:34 #756 №1709788 
>>1709785
Ну конечно никак. Более того статьи и книги, которые ты будешь читать уже устарели. А еще хуже что сам язык отстает на десять лет от мейнстрима. И сообщество соответственно тоже.
Аноним 01/06/20 Пнд 12:05:38 #757 №1709792 
>>1709788
а что код регистрации на сайте пхп7 будет отличаться от пхп5 сильно?
Аноним 01/06/20 Пнд 12:19:05 #758 №1709813 
>>1709792
Ну во первых код действительно будет отличаться, держать в голове кучу вариантов написания это полная хуйня.
А во вторых разница с кодом времен пятой версии будет в самом подходе к написанию. Я даже в 2014 году слышал: да кто ето такой ваш солид? Про него ниче в доке не написано.
Аноним 01/06/20 Пнд 13:53:06 #759 №1709882 
>>1709421
Интересно, почему когда кто-то хает PHP, то обычно выясняется что это node.js/python петух?
Аноним 01/06/20 Пнд 15:21:49 #760 №1710009 
>>1709565

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

server_number= hash(key) % server_count

Но этот способ обладает недостатком. Если мы убавим или добавим один сервер, то большая часть ключей "переедет" на другой сервер, так как цифра server_count изменится. Чтобы этого избежать, используют:

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

Еще есть такая штука, как мастер-слейв репликация. Мы пишем в мастер, а читаем со слейвов. Слейвы подхватывают изменения с мастера. Это еще используют для отказоуcтойчивости как hot backup.

Также, можно почитать документацию по теме: https://redis.io/topics/partitioning
Аноним 01/06/20 Пнд 15:32:41 #761 №1710022 
>>1709638

Если бы ты поменьше ругался и побольше читал документацию, ты бы таких ошибок не делал. Redis - это in-memory key-value хранилище, он держит данные в RAM, хотя у него есть возможность сохранять их на диск через снапшоты и WAL. Он хорошо работает как кеш для снятия нагрузки с реляционной БД.

Заметь, что у редиса есть плюс в сравнении с твоей идеей держать данные в RAM процесса на Эрланге или ноде:

- он позволяет иметь один общий кеш, в отличие от in-process кеша, одновременно его перестраивать или очищать. А как ты будешь очищать in-process кеш кучи процессов на ноде, это отдельный вопрос
- он не замедляет сборщик мусора (скорость которого зависит от размера RAM), в отличие от in-process кеша

А вот APC позволяет кешировать не только код, но и данные в shared memory.

> И откуда ты взял что в badoo все прекрасно?

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

> Зайди в руби тред,

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

> сама виртуальная машина пхп течет

Ссылки на issue?


Аноним 01/06/20 Пнд 15:33:49 #762 №1710023 
>>1709783
Сам php если ты пишешь по заветам ООП
Аноним 01/06/20 Пнд 15:35:18 #763 №1710024 
>>1709783

Есть микрофреймворк Slim, он намного меньше и проще "больших" фреймворков вроде Laravel или Symfony.

>>1709882

Обычно это значит, что кому-то нечем заняться.
Аноним 01/06/20 Пнд 19:12:27 #764 №1710349 
>>1701682
Ох, бля ну и пиздец твой код.
Режешь предложение по пробелам и кладешь в массив. Удаляешь точку, затем array_rand, ну капс там заменить и точку доставить. Всё, анончик.
Аноним 01/06/20 Пнд 20:34:09 #765 №1710395 
Сделал парсер картинок из тредов, работает. Но на 18+ досках где надо подтвердить переход закономерно получаю ничего. Можно ли как-то обойти это говно?
Аноним 01/06/20 Пнд 20:36:26 #766 №1710398 
>>1710024
>кому-то нечем заняться

Кто-то уже выполнил свою задачу на node.js/python и надсмехается над пыхтящим выбравшим PHP недопрограммистом?
Аноним 01/06/20 Пнд 20:42:28 #767 №1710404 
>>1710395
Куки свои прокинь из браузера ему.
Аноним 01/06/20 Пнд 20:45:03 #768 №1710405 
>>1710404
А можно пожалуйста пример? Или ссылку на доку?
Аноним 01/06/20 Пнд 20:47:07 #769 №1710409 
>>1710398
а что,на пхп долго писать бэк?
Аноним 01/06/20 Пнд 21:24:49 #770 №1710434 
>>1710409
Бек пишется относительно быстро
Аноним 01/06/20 Пнд 21:34:56 #771 №1710443 
>>1710434
>Кто-то уже выполнил свою задачу на node.js/python
тгда к чему это?
Аноним 01/06/20 Пнд 21:46:03 #772 №1710458 
>>1710443
Я другой анон пыхер
Аноним 01/06/20 Пнд 22:06:50 #773 №1710478 
>>1710405
https://www.google.com/search?q=php+get+cookie+from+browser&oq=php+get+cookie+from+browser&aqs=chrome..69i57j0l3.12599j0j7&sourceid=chrome&ie=UTF-8
Аноним 01/06/20 Пнд 22:12:46 #774 №1710483 
>>1710405
Куки - просто строки ключ-значение. Вот смотри:

https://www.php.net/manual/ru/function.setcookie.php

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

setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP-заголовками. Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться до остального вывода, включая вывод тегов <html> и <head>, а также пустые строки и пробельные символы.


>>1710478
тут хуйня, долго искать, не то я скинул
Аноним 01/06/20 Пнд 22:26:23 #775 №1710491 
>>1709785
>копипастить чужой код
Ну как бы на этом уже и фейл, толку будет 0, копипастер ты наш.
>откуда я узнаю
Для начала можешь начать с правила - все по псрам.
В процессе читаешь/смотришь всякую хероту по ооп и архитектуре. Ее очень много, то, что тут у опа даже не верхушка айзберга. И стараешься применить.
Результат закидываешь сюда (или в пыхоконфу для джунов в телеге) и узнаешь, вышло у тебя или нет. По желанию правишь, пока пиздато не выйдет.
Аноним 01/06/20 Пнд 22:28:45 #776 №1710496 
>>1710491
>в пыхоконфу для джунов в телеге
Это та мертвая конфа на 15 тел?
Или какая-то другая? Кинешь ссыль?
Аноним 01/06/20 Пнд 22:32:30 #777 №1710499 
image.png
>>1710496
Я про эту, а не местную.
Слышал она именно для таких вещей существует, из остальных каналов с глупыми джуновскими вопросами по пхп гонят.
@phpGeeksJunior - новичкам
Аноним 01/06/20 Пнд 22:33:03 #778 №1710501 
>>1710499
А, я там тоже есть
Аноним 01/06/20 Пнд 22:34:53 #779 №1710503 
15084260521300s[1].jpg
Анончики, отвлекитесь от бесконечного спора, что лучше php или еще что. У меня такой прикладной вопрос к вам. Вот вы спецы же:

Допустим, у меня есть php-страничка. И на ней плеер с mp4-файлом, вот только не_на_моей_сервере, а на удаленном.

Как мне при помощи php или php+js зашифровать его url, чтобы хитрый юзер или парсер, не выкупил, что я пирачу по лайту?
Аноним 01/06/20 Пнд 22:42:08 #780 №1710509 
>>1710491
если я не вижу как пишут регистрацию,я не никогда не напишу ее сам
Аноним 01/06/20 Пнд 23:11:49 #781 №1710531 
>>1710022
>Если бы ты поменьше ругался и побольше читал документацию
Если бы ты читал что я пишу, то понимал бы что у меня хватает компетенций отличиить redis от mysql. Расположение данных и способ их хранения не отменяет того факта что это все еще внешнее по отношению к пхп хранилище. И время на получение из него данных на каждый запрос все еще тратится. Ну и чтобы закрыть тему с определениями вот тебе цитата с офф сайта редиса Redis is an open source (BSD licensed), in-memory data structure store, used as a database

>в сравнении с твоей идеей держать данные в RAM процесса на Эрланге или ноде:
Во первых это не моя идея. Все нормальные языки работают в режиме серверного приложения. Во вторых прими таблетки, это не я сравнивал пхп с эрлангом.

>А вот APC позволяет кешировать не только код, но и данные в shared memory.
А пхп позволяет использовать goto, но это не значит что так нужно делать. APC это устаревшая забагованая параша https://bugs.php.net/bug.php?id=57825 нахуй ты вообще её приплел.

>Ссылки на issue?
Две секунды в гугле https://bugs.php.net/bug.php?id=76982 критический баг с утечкой памяти внутри самого пхп. Подтвержден и висит джва года.
Аноним 01/06/20 Пнд 23:15:20 #782 №1710533 
>>1710503
Проксируй через свой сервер. Делай запрос к своему серверу, который будет делать запрос на удаленный.
Аноним 01/06/20 Пнд 23:47:11 #783 №1710551 
Рубрика "ньюфажные вопросы". Решил в кои то веки разбить свой код на несколько файлов, чтобы было легче ориентироваться. Моим удивлением стало что пыхошторм не может его скомпилировать, просит какой-то PhpUnit. Загуглил, таких же ньюфажных вопросов как мой не нашел, а значит я что-то делаю не так. Я эти файлы создавал как New - Php File, надо было по-другому как-то? Мб как классы?
Аноним 01/06/20 Пнд 23:54:35 #784 №1710556 
>>1710551
>скомпилировать
Ну ты явно какой-то хуйней занимаешься. Сделай скрины или расскажи как ты код свой разбивал.
Аноним 01/06/20 Пнд 23:57:39 #785 №1710558 
Capture.PNG
Capture1.PNG
>>1710483
Ну вот например, куда тут вставлять эти куки? Я так понимаю вот эта ответственна за 18+? И хватит ли только key - value или всю инфу запихивать?
Аноним 02/06/20 Втр 00:41:17 #786 №1710580 
>>1710509

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

Твоя "регистрация" - это всего лишь форма с проверкой данных и сохранением в БД. Логин - это проверка логина-пароля и выдача авторизационной куки.

Про куки и про фреймворки урока нет, но по остальным темам кое-что есть тут: https://github.com/codedokode/pasta/
Аноним 02/06/20 Втр 00:43:05 #787 №1710582 
>>1710556
https://ideone.com/aXqwbZ
Хотел по типу как у этого анона сделать.
Аноним 02/06/20 Втр 00:47:30 #788 №1710586 
>>1710582
В твоем примере все в одном файле. Напиши как ты делил код.
Аноним 02/06/20 Втр 00:49:52 #789 №1710588 
>>1710558
>>1710483
И вообще, нахуй мне setcookie() если я курвом парсю чужой сайт?!
Аноним 02/06/20 Втр 00:52:32 #790 №1710592 
>>1710586
Там комментарии есть. А вообще, что-то почитал в интернетах на эту тему, похоже мне еще рано делить код для обосраной задачки по основам основ ООП. Но с другой стороны интересно, почему это у анона вышло, а у меня нет.
Аноним 02/06/20 Втр 00:55:16 #791 №1710596 
>>1710531

Ты придираешься к мелочам, называть редис БД или нет. Главное то, что и Redis и APC решают проблему "как хранить данные в памяти при умирающем PHP". Производительность у редиса огромная, несмотря на его однопоточность. А также важен момент, что во многих случаях хранить данные в разделяемом редисе удобнее, чем в памяти одного Node.JS воркера.

Насколько я знаю, приложения на Руби, Питоне или JS точно так же используют редис. Twitter, например, использовал memcache и redis ( https://www.insight-it.ru/highload/2011/arkhitektura-twitter-dva-goda-spustya/ ). Что интересно, они еще использовали Руби (который медленнее PHP).

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

Ну и наконец один из самых нагруженных российских сайтов - VK - использует PHP на фронтенде и не пытается что-то поменять. Так что PHP вполне пригоден для разработки веб-приложений.
Аноним 02/06/20 Втр 00:58:55 #792 №1710599 
>>1710551
Гугли php autoload, psr-4, composer (в последнем смотришь автолоадер по psr-4, если хочешь).
В один файл тоже может сработать при, но я что-то не вижу, что бы ты код показал, а мы тут не телепаты.
Аноним 02/06/20 Втр 01:00:38 #793 №1710600 
>>1710582

Тебе лучше всего сделать так:

- класть каждый класс в отдельный файл, названный как этот класс
- сделать файл-загрузчик index.php, который будет подключать эти файлы через require, создавать нужные объекты и вызывать функции вывода на экран
- запускать index.php

По поводу именования файлов - можешь попробовать почитать про PSR-4, если это не слишком сложно (неймспейсы пока можешь не использовать, для проекта из 4 классов они не требуются): https://github.com/codedokode/pasta/blob/master/php/autoload.md

Аноним 02/06/20 Втр 01:05:51 #794 №1710603 
>>1710600
>>1710599
Окей, спасибо за ответы, буду изучать.
Аноним 02/06/20 Втр 01:28:50 #795 №1710609 
>>1710596
>Ты придираешься к мелочам, называть редис БД или нет.
Но это я назвал редис бд, а ты доебался, еще и с какого-то хуя решил что я им не пользовался и не знаю доку. А когда я тебе тыкнул в нос цитатой с офф сайта ты пернул жидким и обмяк.

>Главное то, что и Redis и APC решают проблему "как хранить данные в памяти при умирающем PHP"
Об этом я и говорю уже третий раз подряд. Умирающий пхп это проблема. А ты начал высирать про то какая это охуенная фича.

>Производительность у редиса огромная, несмотря на его однопоточность
И что это поменяло? А memcached быстрее редиса и хули? А знаешь что быстрее memcached? Прямой доступ к памяти.

>Насколько я знаю, приложения на Руби, Питоне или JS точно так же используют редис
Да ну нахуй! Так они и реляционные базы еще наверное используют?

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

>Хотя у этих языков и есть другие плюсы, но ты их назвать не можешь, потому что ты просто обычный флудер.
Я дал тебе ссылку на видео от самих badoo как пара функций на го сэкономила пятнадцать серверов, ты его конечно не смотрел.
Каждый свой довод я подтверждаю пруфами. Ты просил пруфы утечек - ты их получил, но ловко проигнорил и назвал меня флудером. Я сказал что APC параша, я дал ссылку на багтрекер, где написано почему.

>Ну и наконец один из самых нагруженных российских сайтов - VK - использует PHP
Ну это вообще пушка. Во первых они используют KPHP, он компилируемый и СТРОГО ТИПИЗИРОВАННЫЙ блядь. Там от оригинального пхп только синтаксис. Пиздец, ты этим примером сам себе в штаны серешь.
Аноним 02/06/20 Втр 08:02:19 #796 №1710685 
>>1710349
Спасибо.Знал что можно куда лучше сделать, буду исправлять!
Аноним 02/06/20 Втр 08:37:37 #797 №1710692 
короче, подскажите как по уму развернуть себе рабочую среду. а лучше какой-то видеогайд.

Есть windows (извините, линуксы не умею).
как поставить WAMP знаю, не проблема. А как все остальное настроить?

Например чтобы нормально работал Composer? чтобы VSCode сразу находил php а не через говнокостыли путем указания пути к вампу (обновив который я ломаю этот vscode)

и т.д. вообщем по современному и чтобы удобно
Аноним 02/06/20 Втр 08:55:50 #798 №1710696 
>>1710692
В идеале используй сразу докер. Гайдов как настроить дохуя, за ручку проведут и объяснят.
На втором месте просто линух. Не умеешь, так учись, все равно код на линухе будет работать. Нужно уметь поднять всю эту хуйню там.
На третьем месте шиндовс, но ставить все самому. Нихуя сложного там нет, а разобраться что нужно для запуска кода стоит.
На четвертом месте опен сервер.
На пятом вамп.
Я хуй знаю какие там у тебя проблемы с VSCode, но в пхпшторме ты просто явно указываешь исполняемый файл пхп, и похуй в вампе он или в китайской стене.
Аноним 02/06/20 Втр 08:57:20 #799 №1710697 
>>1710533
Я не хочу гнать траф (mp4) через свой сервер - там его очень много. В этом и смысл пиратства =)
Аноним 02/06/20 Втр 08:58:15 #800 №1710698 
>>1710588
Чтобы доска поняла, что ты свой 18+ анончик
Аноним 02/06/20 Втр 09:01:09 #801 №1710699 
>>1710609
Есть не неумирающий php deamon, о чем спор вообще?
Аноним 02/06/20 Втр 09:02:05 #802 №1710700 
>>1710697
Ну через браузер тебе все равно придется обращаться к реальной ссылке. Как бы ты не прятал ссылку в своем JS коде браузер показывает список запросов. Грамотный человек увидит всю хуйню на раз два.
Аноним 02/06/20 Втр 09:03:03 #803 №1710701 
>>1710700
А blob?
Аноним 02/06/20 Втр 09:06:11 #804 №1710702 
спалил контору.PNG
>>1710701
А хули блоб? f12 нажал и увидел откуда что качается
Аноним 02/06/20 Втр 09:09:06 #805 №1710704 
>>1710702
Есть же всякие обфускаторы-хуяторы. Что браузер и js понимал ссылку, а юзер нет. Не видел таких?
Аноним 02/06/20 Втр 09:11:17 #806 №1710707 
>>1710704
Братан, ты в своем коде со ссылкой можешь делать что угодно. Но скачивать по ней видос будет браузер. А браузер не скрывает откуда он качает видос.
Аноним 02/06/20 Втр 09:21:28 #807 №1710708 
>>1710707
Надо такую херню попробовать

https://javascriptobfuscator.com/Javascript-Obfuscator.aspx

только найти фри-аналог.
Аноним 02/06/20 Втр 09:24:12 #808 №1710709 
1588764795193691340.png
>>1710708
Аноним 02/06/20 Втр 16:17:39 #809 №1710941 
>>1710600
>>1710599
Попробовал провернуть это дело тремя способами. Через require_once и spl_autoload_register получилось, а через композер, хоть и дрочился с ним полтора часа, ничего не вышло. Я вот думаю, не в слешах ли кроется проблема. Просто у меня винда, а во всех autoload файлах, созданных композером, пути идут через прямые слеши, а из __DIR__ слеши обратные ведь получаются. Или я дурачек и нету разницы?
Аноним 02/06/20 Втр 17:04:50 #810 №1711001 
>>1710941

Прямые слеши работают везде. Не забыл ли ты сделать composer dum-autoload после того, как правил composer.json? Не сделал ли ты ошибок в самом composer.json?
Аноним 02/06/20 Втр 17:49:09 #811 №1711072 
Двощ, насколько я проебываю полимеры?
Работаю пару месяцев из обязанностей доработка срм под нужды клиентов. Она странная, нихуя не задокументированная, официальная буржуйская недодока датируется годом 13-15 пару мажорных версий назад, с тех пор поменяли прилично
Допиливаю там, реализовываю здесь, и в общем то всё. Так и выглядят будни погромиста? Или надо будет после пандемии съябывать оттуда? Работа муторная (в основном из-за попыток понять, хуле тут не так), но нихуя не сложная, у меня лабы были заковыристее. Из плюсов только навык чтения кода бустнул, раньше вообще со страхом на чужой код смотрел
Аноним 02/06/20 Втр 18:57:35 #812 №1711138 
>>1711072
>не задокументированная
>недодока датируется годом 13-15
Ты в какое-то говно попал
Аноним 02/06/20 Втр 19:49:49 #813 №1711202 
>>1710698
В общем по-всякому пытался. И setcookie() и CURLOPT_COOKIE, и полную инфу и неполную, все куки какие есть, даже от яндекса и гугла. Не работает, я огорчен, братик.
Аноним 02/06/20 Втр 20:21:11 #814 №1711243 
>>1711202
Значит, какая-то защита есть еще - там уже миллион вариантов, нужно браузером парсить, наверное.
Аноним 02/06/20 Втр 21:02:48 #815 №1711315 
15348391332260.jpg
Вряд ли кто-то ответит, но все же.
Вопрос по Laravel и в целом правильной архитектуре приложения.

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

Так вот, в моем приложении требуется постоянно гонять объекты из БД в json и обратно, с полной конвертацией.
То есть, мне нужно точно знать, что в методе репозитария создается в точности то, что будет выдано контроллером в json'е.
Например, при конвертации в жсон модель может скрыть некоторые свои поля или наоборот высрать слишком много лишней информации о связях с другими моделями.

Так вот, нужно ли мне делать промежуточный слой сущностей данных? То есть, сущности - это ПРОСТЫЕ data-value объекты, которые делают только то, что содержат некую инфу и, что важно, способны полностью без потерь конвертится в json и обратно хоть по 100 раз.

Короче говоря, нужна полная сериализация объектов моделей, чего не могут дать стандартные модели Laravel.

Еще, в ларавеле завезли resource providers, по сути тот самый слой между моделью и жсон, но только вот беда блять: опять вышло какое-то монстроузное говно, которое не обладает полной сериализацией.
Аноним 03/06/20 Срд 01:22:47 #816 №1711531 
>>1711001
На удивление на десятый раз заработало. Я просто не зная зачем точь в точь повторил то же, что делал до этого 10 раз. Dump autoload всегда делал 100%, composer.json такой же, как и все предыдущие разы. Чертовщина какая-то, хотя возможно что-то с инициализацией, т.к. первые разы просто начинал с создания composer.json, после чего IDE все остальное подхватывал, потом узнал что для этого есть специальный пункт меню. Хотя предыдущие несколько раз у меня и через этот пункт не выходило.
Аноним 03/06/20 Срд 02:44:48 #817 №1711551 
>>1711315
Тебе не приходило в голову получать из базы сразу JSON. Модели нужны для хранения логики приложения, active record нужен для crud операций. Получение json'а это отдельная песня.
sageАноним 03/06/20 Срд 04:43:17 #818 №1711593 
>>1711315
https://laravel.com/docs/7.x/eloquent-serialization
hiding и visible не достаточно?
Аноним 03/06/20 Срд 08:40:16 #819 №1711621 
Аноны, помогите с двумя задачками, не понимаю как их сделать.
Банкомат и лиличка:http://phpbook.ga/l1/mou-ikkai.html
Аноним 03/06/20 Срд 10:35:44 #820 №1711648 
>>1711593
А deserialisation где?
Аноним 03/06/20 Срд 10:45:41 #821 №1711651 
>>1711551
Госпаде, с кем приходится сидеть в одном треде.
>получать из базы сразу JSON
Существует миллион причин, почему это полная хуйня.
Навскидку: ты лишаешься всех возможностей сортировки, джоинов, индексов, реляционных отношений, короче всего, ради чего используют СУБД.
>active record
В ларавеле нет active record.
Аноним 03/06/20 Срд 11:30:24 #822 №1711685 
image.png
>>1711651
>В ларавеле нет active record.
ActiveRecord это паттерн, а не название классов в рельсах и ии. Элоквент реализует актив рекорд.
мимо
Аноним 03/06/20 Срд 11:33:35 #823 №1711689 
>>1711651
>Существует миллион причин, почему это полная хуйня.
Навскидку: ты лишаешься всех возможностей сортировки, джоинов, индексов, реляционных отношений, короче всего, ради чего используют СУБД.

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

>В ларавеле нет active record.

И как эта залупа там называется по твоему?
Аноним 03/06/20 Срд 11:39:03 #824 №1711696 
>>1711651
Ты еблан или да? Индексируй свои отношения как хочешь. Я не предлагаю хранить в JSON'е, хотя если пользуешься постгресом тоже было бы нехуйно. Я говорю результат запроса возвращать сразу в нужном формате https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=27572491663fa2b463f3bdd6a105e9df . С кем приходится сидеть в одном треде.
Аноним 03/06/20 Срд 12:14:04 #825 №1711728 
>>1711685
>>1711689
В актив рекорде создание объекта равно созданию/получению записи в бд, а в ларавеле это совершенно не обязательно.
Аноним 03/06/20 Срд 12:20:58 #826 №1711733 
ebobo.PNG
>>1711728
Аноним 03/06/20 Срд 12:23:36 #827 №1711736 
>>1711696
Ты вообще жопой читал?
Основное, что мне нужно — чтобы сущности данных могли полностью сериализоваться и десериализоваться в жсон/массив и обратно без потери данных.

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

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

Стандартные модели ларавел, похоже, не могут дать этих возможностей, потому что не обладают полной се/десериализацией и объект модели, созданной из бд и объект модели, созданный из массива — это не идентичные объекты.
Аноним 03/06/20 Срд 12:24:18 #828 №1711737 
>>1711733
Ну ладно, ты победил.
Аноним 03/06/20 Срд 12:37:25 #829 №1711745 
>>1711736
Чтобы было лучше понятно, нахуя оно мне надо:
Разрабатывается сложное приложение с разделением на сильно независимые сервисы.
Общее у них — только данные.

И надо, чтобы можно было в одном месте сделать
>return (new User (name, email, password))->toJson();
А в другом
>$user = User::fromJson ($json);
И ты точно знал, какие поля есть в объекте юзер, при их изменении и добавлении новых об этом автоматически знал весь код.

Обычные модели ларавел, во-первых, вообще не обладают способностью к полной конвертации туда-сюда, во-вторых, содержат много лишней хуйни, а в третьих, мне кажется вообще хуевой идеей строить приложение вокруг объектов active record, когда добрым 80% кода вообще похуй оттуда объект высрали и какая СУБД на проекте, им нужны только данные в удобном надёжном ооп-виде.
Аноним 03/06/20 Срд 12:39:32 #830 №1711747 
>>1711736
Я тебе попытался объяснить что то, что ты делаешь не имеет никакого отношения к сущностям. Это чистые данные. Сущности и AR не предназначены для этого. Если тебе нужно просто отдать данные в форме JSON'а, то самый быстрый и эффективный способ избежать конвертации вообще, именно его я тебе и показал.
Если тебе нужно пока какой-то причине сериализовать данные туда сюда, то для этого придумали хуеву гору сериалайзеров
https://github.com/symfony/serializer
https://github.com/nilportugues/php-serializer
https://github.com/liip/serializer
Аноним 03/06/20 Срд 12:42:12 #831 №1711752 
>>1711745
Похоже на два магических метода, которые реализуются как два пальца при желание. Ну ок, не твой вариант.

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

>вообще не обладают способностью к полной конвертации туда-сюда
Чуть дописать то реально.
>содержат много лишней хуйни
Ты ее не сериализуй.
>хуевой идеей строить приложение вокруг объектов active record
Это тебе правильно кажется, и дело даже не в ар.
>нужны только данные в удобном надёжном ооп-виде
Гугли домены.
мимо
Аноним 03/06/20 Срд 12:43:27 #832 №1711754 
>>1711747
Вот, спасибо, это мне и нужно.
Нужны сериализуемые и десериализуемые data value объекты.
Аноним 03/06/20 Срд 12:44:32 #833 №1711757 
>>1711752
Во, тебе тоже спасибо. Это уже нужная информация.
Аноним 03/06/20 Срд 12:45:12 #834 №1711758 
>>1711754
Все равно у меня ощущение что ты занимаешься хуйней. Если ты между червисами данные передаешь через апи, то все эти танцы нахуй не нужны. А если это происходит внутри одного приложения, то совсем пиздец.
Аноним 03/06/20 Срд 13:17:38 #835 №1711806 
В lumen можно добавить префикс к именам путей? Тут 'prefix' - для uri, а мне надо для генерации uri по именам, как в symfony (аннотация Route с параметром 'name' над классом-контроллером).
Аноним 03/06/20 Срд 13:41:29 #836 №1711831 
>>1711621
Я не ОП а дерьмо, но насчет банкомата ищи в этом треде по ctrl+f, ОП отлично расписал, это если ты уже изи мод сделал по жадному алгоритму. На счет лилички там же все в подсказке написано. Разбиваем на строки регуляркой по \n помню что у меня сразу воспринимать перенос энтером как \n не хотело, не помню что с этим сделал, но нашел ответ за 30 секунд на стакероверфлове. Впрочем можно и просто подобавлять до концов строки \n, это вроде не чит., и разбиваем эти строки на символы по "". Теперь циклом выводим в первой строке через | все первые символы, во второй все вторые и т.д. Сразу оно красиво выглядеть не будет, думаю догадаешься что с этим делать. А на будущее, всё это уже сотню раз обсосано в архиве с шапки, там есть поиск по всем тредам.
Аноним 03/06/20 Срд 13:54:24 #837 №1711844 
>>1711831
Спасибо большое, анон, порылся в архиве и нашел ответы на все свои вопросы
Аноним 03/06/20 Срд 14:06:02 #838 №1711849 
что есть прелоад и как его готовить?
Аноним 03/06/20 Срд 16:56:42 #839 №1712063 
image.png
>>1656450 (OP)
Сап. Помогите с Wordpress(ом). Есть форма. Клиент должен иметь возможность запросить информацию о том, какие есть магазины, рестораны, отели в определенном городе. Получается нужна база данных? Как это реализовать? В Wordpress есть специальные плагины или как это делается? Или нужно это реализовать самостоятельно при помощи mysql? Но нужно обязательно дать возможность владельцу сайта добавлять новые данные в магазин. Хелп
Аноним 03/06/20 Срд 16:58:09 #840 №1712065 
image.png
Сап, двач. Даунский вопрос по laravel:

Можно ли сделать так, чтобы в модели datatime поле было в виде Unix Timestamp?
Аноним 03/06/20 Срд 17:05:04 #841 №1712070 
>>1712063
> должен иметь возможность запросить информацию
> Получается нужна база данных?

Ну типа как бы да...

> В Wordpress есть специальные плагины или как это делается?

Плагины для работы с базой данных?)))
Да она и без плагинов это делает, по сути это основная функция wp.

>Или нужно это реализовать самостоятельно при помощи mysql?

Чивоооооооо блять?
Аноним 03/06/20 Срд 20:09:46 #842 №1712236 
https://php.watch/articles/php-attributes
Аноним 03/06/20 Срд 21:24:52 #843 №1712347 
image.png
image.png
Гайс, совсем даунский вопрос наверное, но че за хрень не так в таблице с игрой в кубик с ИИ, пол часа втыкаю и не пойму никак
Аноним 03/06/20 Срд 21:45:13 #844 №1712370 
>>1712347
ты забыл ; в эхо
Аноним 03/06/20 Срд 21:49:47 #845 №1712379 
>>1712370
>>1712347
В результате у тебя он пытается прочитать echo и нижнюю команду как одно целое
Аноним 03/06/20 Срд 22:10:10 #846 №1712399 
>>1712370
>>1712379
Помогло, спасибо большое
Аноним 03/06/20 Срд 22:21:18 #847 №1712406 
>>1712399
Анончик, ставь vscode + там плагин phphence и xdebug накатывай - избежишь таких косяков в будущем.
Аноним 03/06/20 Срд 22:30:04 #848 №1712408 
>>1712399
Не знаю хороший ли совет, но можешь ещё пройти https://ru.code-basics.com/languages/php .
Там базовые вещи объяснены.Вроде как.
Аноним 03/06/20 Срд 22:48:08 #849 №1712424 
image.png
>>1712063
>>1712070
Аноны, помогите плиз, скажите поподробней, там реально не понятно
Аноним 04/06/20 Чтв 00:24:47 #850 №1712490 
Dnm-XC0U8AAiNM5.jpg
>>1712063
>>1712424
>Клиент должен иметь возможность запросить информацию о том, какие есть магазины, рестораны, отели в определенном городе. Получается нужна база данных?
Нужна, там эта вся инфа будет храниться. Магазы, рестораны и отели это одна сущность,они относятся к какому-то городу, город тоже сущность.

>В Wordpress есть специальные плагины или как это делается? Или нужно это реализовать самостоятельно при помощи mysql?
Почитай как через вордпресс добавлять новые сущности и задавать им какие-то аттрибуты, раз на вордпрессе магазы делают то думаю и такое можно без проблем.

Тут другой вопрос, такое ощущение что тебе поручили это сделать но ты сам не знаешь, вот и спрашивается нахуя. Если ты никогда ничего не делал подобного то у тебя вряд ли получится. Не думаю что тебе тут подскажут именно решение уровня копипаст, тут уж сам должен.
Аноним 04/06/20 Чтв 03:21:48 #851 №1712561 
>>1712063
Начитаются своих вротпрессов, потом не могут 2+2 сложить...

Советую тебе потратить время на изучение основ mysql в том числе и не задавать таких идиотских вопросов
Аноним 04/06/20 Чтв 09:20:33 #852 №1712641 
>>1712561
В данном контексте совет неверный.

В wordpress есть удобный класс wpdb

https://wp-kama.ru/function/wpdb

Его и нужно курить.
Аноним 04/06/20 Чтв 11:49:17 #853 №1712715 
>>1712065
Гугли Date Mutators
Аноним 04/06/20 Чтв 12:00:06 #854 №1712719 
Ради интереса, кто-нибудь смог с нуля вкатиться в стабильный заработок, хотя бы 5-10к, благодаря урокам в интернете? Или лучше брать платные курсы?
Аноним 04/06/20 Чтв 12:01:20 #855 №1712721 
>>1712719
5-10к это рублей в день или баксов в месяц?)))
Аноним 04/06/20 Чтв 12:01:54 #856 №1712722 
>>1712721
Мне хотя бы 10к р, я буду считаться успешных в своём селе
Аноним 04/06/20 Чтв 12:04:53 #857 №1712723 
>>1712722

Бля, чел, люди делают больше в магазах торгуя...
Аноним 04/06/20 Чтв 12:51:02 #858 №1712773 
Ну че, правильно зделол?

<?php

error_reporting(-1);

$anonDice1 = mt_rand(1,6);
$anonDice2 = mt_rand(1,6);

$compDice1 = mt_rand(1,6);
$compDice2 = mt_rand(1,6);

echo "У анона выпало ($anonDice1) и ($anonDice2)\nУ компьютера выпало ($compDice1) и ($compDice2)\n";

$anonSum = (anonDice1 + anonDice2);
$compSum = (compDice1 + compDice2);

if (($anonDice1 == $anonDice2) && ($compDice == $compDice2)) {
echo "2 дабла\n";
exit();
}

elseif (($anonDice1 + $anonDice2) > ($compDice1 + $compDice2)) {
echo "Победил Анон";
exit();
}

elseif (($anonDice1 + $anonDice2) < ($compDice1 + $compDice2)) {
echo "Победил компьютер";
exit();
}
Аноним 04/06/20 Чтв 13:05:49 #859 №1712790 
image.png
Почему я не могу в __clone клонировать те поля, которые определяются в __construct? Как это связано вообще, что с этим делать? Гугл не помогает.
Аноним 04/06/20 Чтв 13:22:35 #860 №1712834 
>>1712790
Вроде разобрался
Аноним 04/06/20 Чтв 16:00:50 #861 №1713025 
>>1712641
WP не умеет в pdo?
Аноним 04/06/20 Чтв 16:01:29 #862 №1713026 
>>1712719
>лучше брать платные курсы
Для тебя лучше платные
Аноним 04/06/20 Чтв 16:07:49 #863 №1713032 
можно ли PDO который будет записывать засунуть в функцию,а в параметрах будет переменная,куда передам ч-л из формы?
Аноним 04/06/20 Чтв 17:03:15 #864 №1713110 
>>1712719
> брать платные курсы?
а лучше с гарантированным трудоустройством, но такие курсы стоят бешенны бабок, не меньше 100 тыс в месяц. в моем случае - 120
мимо
Аноним 04/06/20 Чтв 17:03:46 #865 №1713113 
>>1713032
$num = 5;
$word = 'banana';
$query = 'SELECT * FROM _table WHERE id=%d AND name="%s"';
$query = sprintf($query, $num, $word);

Типа такого?
Аноним 04/06/20 Чтв 17:09:29 #866 №1713118 
>>1713113
я хз,у вас спрашиваю
Аноним 04/06/20 Чтв 17:27:28 #867 №1713138 
>>1713110
Ты, блядь, ебанулся или оговорился, и хотел сказать "в год", пидорасина?
Аноним 04/06/20 Чтв 18:12:37 #868 №1713178 
По какому приницпу работают flash messages в yoba-фреймворках типа symfony? Это "одноразовые" куки или какой-то внеземной дженерик-код, который, допустим обволкавает ответ контроллера по типу middleware?
Аноним 04/06/20 Чтв 18:20:11 #869 №1713187 
>>1713178
Если бы я делал флеш месседжы то я бы делал так:
При инициализации проверял есть ли в $_SESSION по какому-то своему ключу флеш сообщения. Если есть то я бы их копировал в глобальный объект флеш сообщений на уровне пхп, который очистится после завершения запроса, и сразу после копирования удалял бы их из сессии.
Аноним 04/06/20 Чтв 18:33:30 #870 №1713201 
>>1712790

Оператор clone применим только к объектам. У тебя же "скалярные" значения - строки, числа. Их копируют просто путем присваивания:

$x->isBoss = $y->isBoss;

В твоем случае это делать вообще нет смысла, так как при клонировании объекта его поля копируются (не клонируются) автоматически.

Волшебный метод __clone нужно писать только если у тебя в полях объекта хранятся ссылки на другие объекты. clone не создаст копии для этих внутренних объектов (а просто скопирует в клон ссылку на тот же обьъект), и это надо делать вручную.
Аноним 04/06/20 Чтв 18:40:53 #871 №1713215 
>>1713178

Просто в сессию пишут значение, а при загрузке следующей страницы достают значение из сессии, выводят на экран и удаляют его из сессии.

Есть же исходный код Симфони: https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Controller/AbstractController.php#L195

>>1713032

Не очень понятный вопрос. В твоем примере кода
ниже есть SQL инъекция, так как параметры при подстановке не экранируются.

>>1712773

Почти верно, но в условиях лучше было не писать сумму, а писать что-то вроде $anonSum > $compSum. Также, exit тут не требуется. Также, не предусмотрено, что выводить при
ничьей.
Аноним 04/06/20 Чтв 18:42:07 #872 №1713216 
>>1712063

В Wordpress нет такого функционала, это движок для блогов. Тебе надо либо найти плагин, либо написать его самому.
Аноним 04/06/20 Чтв 18:45:14 #873 №1713219 
>>1713215
> В твоем примере кода
это не мой пример кода.
суть вопроса,чтобы кусок кода PDO по записи(или удаления)засунуть в одну функцию с параметром
Аноним 04/06/20 Чтв 18:50:10 #874 №1713222 
сап всем сеньорам помидорам. нужна ваша помощь, аноны. выкачал себе локально проект с прода, подключил бд и пытаюсь локально его себе развернуть на апаче через http. но тут возникла проблема, в htacess предположительно висит залупа которая рерайтит мне с http на https. поэтому все пути и ссылки соответственно слетают т.к. он обращается по https а не http как мне надо. вот сам код https://ideone.com/oO8C1a если че
как и че мне тут править чтобы запахало? уже по разному тыкался - но толку нихуя
движок опенкарта если че
Аноним 04/06/20 Чтв 19:05:27 #875 №1713230 
>>1713025
wpcd по сути есть pdo, но допиленный под cms . С учетом того, что в wp принято писать все на функциях без объектов.

Короче в API всё уже есть, не городите велосипеды.
Аноним 04/06/20 Чтв 19:10:06 #876 №1713231 

Чому у мене 1 * 1 не наважується?
https://ideone.com/Ujnv0l
Аноним 04/06/20 Чтв 19:21:18 #877 №1713242 
>>1713231
https://www.php.net/manual/ru/control-structures.for.php
Аноним 04/06/20 Чтв 19:23:25 #878 №1713244 
почему пхп не любят и хейтят,а кодеров на нем называют макаками?
Аноним 04/06/20 Чтв 19:26:33 #879 №1713248 
>>1713231
https://ideone.com/mkRtza
Аноним 04/06/20 Чтв 19:36:45 #880 №1713260 
>>1713244
низкий пород вхождения, очень простой, т.к. изначально сам себе шаблонизатор
Аноним 04/06/20 Чтв 19:48:01 #881 №1713266 
>>1713260
те на нем пишут только херню тупую?
Аноним 04/06/20 Чтв 20:01:49 #882 №1713282 
>>1713266
вебсайты, сервисы. тупая или нет, зависит от идеи и реализации
Аноним 04/06/20 Чтв 20:18:29 #883 №1713290 
>>1713244

Психологические особенности или комплексы, попытка повысить свою самооценку за счет принижения других. Вот статья, которая содержит аналогичные претензии к другим языкам программирования: https://habr.com/post/315152/
Аноним 04/06/20 Чтв 20:20:00 #884 №1713291 
Ну и вообще, как-то глупо задавать такой вопрос в PHP-треде. Если тебе интересно, почему кому-то кто-то не нравится, то наверно у него и надо спрашивать, почему, а не у того, кто не нравится.
Аноним 04/06/20 Чтв 20:25:20 #885 №1713293 
>>1713222
ну же анон, помоги. весь день ебусь
Аноним 04/06/20 Чтв 20:33:26 #886 №1713302 
https://habr.com/ru/post/504906/
Аноним 04/06/20 Чтв 20:35:09 #887 №1713306 
>>1713293
Ты ввод ошибок то php-то сделай. На open server под видной по умолчанию есть. На opencart достаточно сменить данные домена и БД в конфиге и все должно работать. так было

Я вот чета не увидел у тебя рерайтов на https, может в глаза ебуся.
Аноним 04/06/20 Чтв 21:11:39 #888 №1713343 
>>1713201
Да я сверху написал что понял уже, прошу прощения за дэбильный вопрос. Запутался в официальной документации, думал что даже на обычные поля идет ссылка, а не копия.
Аноним 04/06/20 Чтв 21:14:04 #889 №1713346 
>>1713290
Мне одному кажется что там множество наведенных минусов php - это его достоинства?
Аноним 04/06/20 Чтв 22:36:40 #890 №1713437 
>>1713230
Ок, понял.
А почему никто не догадался прикрутить ооп сбоку к вп?
Аноним 05/06/20 Птн 09:04:58 #891 №1713704 
>>1713437
Да хз. Наверное потому что избыточно и не нужно.

https://ru.wikipedia.org/wiki/KISS_(%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF)
Аноним 05/06/20 Птн 09:19:36 #892 №1713709 
>>1713306
> На opencart достаточно сменить данные домена и БД в конфиге и все должно работать
и щас так есть. но проблема в том что я как раз до того как на сайт то зайти их настроил, и доступ к базе предоставил, через пма там накатил дамп бд и все ок встало. пма норм пашет, админка тоже, а вот основной сайт почему то мозги ебет. в логах апача ниче нет естессно.
Аноним 05/06/20 Птн 09:54:41 #893 №1713723 
>>1713709
Попробуй скачни дефолтный opencart и от него воткни htaccess на время.
Аноним 05/06/20 Птн 12:52:07 #894 №1713857 
Товарищи, через какие сервисы вы выводите шекели из яд на карту?

Через обычные обменники конские комиссии

Вот нашел https://exchanger.money для вебмани - 130-200р экономии с каждый 100$
Аноним 05/06/20 Птн 13:43:52 #895 №1713894 
>>1713857

Не пользуюсь яд с 2016 года и не жалею. Заводи карту сбера, сбер любят везде.
Аноним 05/06/20 Птн 13:50:18 #896 №1713896 
На чем пишете в 2020-м? Symfony, Laravel или может ждете Yii3? Как с доходом вообще? Сам выкатился год назад с пхп, вот интересно. Вакансии есть вкусные?
Аноним 05/06/20 Птн 14:52:48 #897 №1713918 
>>1713896
на рельсах
Аноним 05/06/20 Птн 15:04:33 #898 №1713923 
>>1713896
>Symfony
this
>Как с доходом вообще?
Как везде. Можно за 200к+ найти, можно за гроши вкалывать.
Куда выкатился?
Аноним 05/06/20 Птн 15:42:32 #899 №1713968 
>>1713723
не, все норм пашет. хуй знает в чем проблема
Аноним 05/06/20 Птн 15:51:16 #900 №1713979 
>>1713894
я хохол
Аноним 05/06/20 Птн 16:59:12 #901 №1714096 
>>1713704
>Наверное потому что избыточно и не нужно.
Если проекты небольшие уровня лендинга, то мб. Но есть же всякие вукомерсы, где ооп всяко лучше, чем горы функций
Аноним 05/06/20 Птн 17:02:32 #902 №1714105 
>>1713896
>На чем пишете в 2020-м? Symfony, Laravel или может ждете Yii3?
Laravel в основном, хочу на Symfony прод пописать, но без опыта этого самого симфони не берут пидарасы.
В прошлом писал на Yii2. Могу сказать, что Yii3 ждать не стоит, это мертвый фреймворк.

>Как с доходом вообще?
Очень грустно, если не в дс живешь. Второй месяц ищу удаленку на 100к+. До этого чуть меньше на удаленке получал (лара).
Аноним 05/06/20 Птн 17:04:49 #903 №1714108 
>>1714105
>Yii3 ждать не стоит, это мертвый фреймворк.
Что-то там делают, не вникал.
Аноним 05/06/20 Птн 17:07:57 #904 №1714118 
>>1713857
Посмотри кардпэй.
Аноним 05/06/20 Птн 17:12:47 #905 №1714129 
>>1714108
После ухода китайского мейнтейнера на голенг разработка yii2 буквально встала. Макаров едва с поддержкой справляется. И сейчас он соло уже лет 5 пилит yii3.
Надо ли говорить, каким устаревшим говно yii3 будет на релизе?

Пока белые люди выкатывают апдейты новейших версий Симфони и Лары чуть ли не каждую неделю.
Аноним 05/06/20 Птн 17:33:08 #906 №1714171 
Пацаны, нуфаг просит помощи.

Есть один самопальный блог чисто на ПХП, нужно сделать к постам комментарии.
Но у меня затуп: Как сделать, чтоб комментарий привязывался именно к тому посту, к которому он будет написан?

Как бы, получится, посты лежат в одной таблице, комментарии - в другой. А как их свести вместе?
Аноним 05/06/20 Птн 17:38:50 #907 №1714180 
>>1714171
Учи SQL, чтобы не задавать такие вопросы
Аноним 05/06/20 Птн 17:50:14 #908 №1714196 
>>1714180
Мой вопрос не о том, как таблицы объединять, а в том, как привязать новое сообщение к уже опубликованному посту, который на странице в виде чистого текста.
При чем тут SQL вообще?
Аноним 05/06/20 Птн 18:00:50 #909 №1714205 
>>1714196
Foreign key-ем привязать
Аноним 05/06/20 Птн 19:07:06 #910 №1714283 
Curl не загружает страницу, причина? У вас загружается?

https://www.booking.com/searchresults.ru.html?ss=%D0%9A%D0%B8%D0%B5%D0%B2%2C+%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0&checkin_year=2020&checkin_month=9&checkin_monthday=25&checkout_year=2020&checkout_month=10&checkout_monthday=20&group_adults=2&group_children=1

curl ошибок нет, хеадер не возвращается, тело не возвращается. Модуль curl загружен

по file_get_contents все работает
Аноним 05/06/20 Птн 19:25:10 #911 №1714307 
>>1714283
При этом куки от сайта высылаются
Аноним 05/06/20 Птн 19:30:02 #912 №1714314 
как отправить сообщение от одного юзера(аккаунта)к другому?
Аноним 05/06/20 Птн 19:37:46 #913 №1714322 
>>1714283
все ясно, требовало Accept-Encoding: gzip, deflate, br
Аноним 05/06/20 Птн 21:27:00 #914 №1714481 
>>1673254
Видимо, ты - это я через год, только я инженегр. Почему вкатиться не можешь? Не зовут на собесы? Или скилы надрочить не можешь? Получается планка входа в пхп не такая уж и низкая как все говорят. И кстати почему не пробуешь вкат на CMS?
Аноним 05/06/20 Птн 22:45:27 #915 №1714615 
>>1674470
Держи в курсе
Аноним 06/06/20 Суб 18:33:47 #916 №1715056 
Посоветуйте как мудрее реализовать.

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

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



Аноним 06/06/20 Суб 19:02:38 #917 №1715069 
>>1715056

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

>>1714314

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

>>1714196

Используй связь один-ко-многим (один пост привязан ко многим комментариям).

>>1713293

Ты можешь закомментировать RewritwRule, который отвечает за редирект. Если не знаком с реврайтами, можешь почитать статьи вроде этой, хотя документацию от Апача они не заменят: https://habr.com/ru/company/sprinthost/blog/129560/

Аноним 06/06/20 Суб 19:55:38 #918 №1715123 
15909673212120.gif
Опчик, взглянешь на вектор? https://github.com/kydva/vector
Из недостатков самому сразу приходит в голову то, что при изменении базовых свойств профессии я по сути просто меняю свойства уже существующих работников, а при создании нового работника этой профессии свойства будут предыдущими. Не придумал как это нормально сделать. Еще очень не нравятся функции padLeft и padRight. По всей логике для каждого столбца нужно задавать одинаковое значение отступа, но на практике выходит херня, и пришлось для каждой строчки отступы подбирать.
Также интересно выяснить несколько моментов с константами класса. Не придумал куда их поместить, поместил в Employee, но это плохо, родитель знает о ребенке, нельзя будет полноценно создать новую профессию без добавления новой константы в родителя. Было бы идеально помещать эти константы в сами классы профессий, типо Engineer::ENGINEER, Manager::MANAGER и т.д., я сначала хотел так и сделать, но меня со всех сторон закидало ошибками, уже забыл почему. И можно ли в тайпхинте для функции указать, что её аргументом должна быть константа класса?
Я уверен что ты несомненно найдешь намного больше дерьма и подводных камней в этом коде, и буду очень этому рад. Раньше ничего на проверку не кидал, но думаю что в этом случае важно сразу отучить меня от каких-то вредных привычек и приучить к хорошим в этой парадигме ООП. Алсо, приступать к кошкам-мышкам или к будильнику и гостиннице?
Аноним 06/06/20 Суб 20:34:09 #919 №1715158 
Аноны, объясните с какой точки для апача/нгникса начинается корень сайта? Суть вот в чем:
Я на работе пердолюсь с ларавел, там поставил homstead на виртуалке, все работает.
Дома почему то виртуалка не встала, и я развернул на опенсервер.
Опен сервер требует как папку домена - каталог myproject/public;
Я всегда думал что папка домена - это корень сайта, и апач/нгикс не имеет возможности идти ниже. А ту фактически vendor и все барахло мое находится ниже паблик.

Опять же автозагрузка классов должна понимать от какого корня считать нэймспэйсы (только вот задумался)
Подскажите, или дайте ссыль что почитать
Аноним 06/06/20 Суб 20:42:46 #920 №1715167 
>>1715158

Веб-сервер не должен вылезать за корневую папку, это верно. А вот PHP скрипты могут лезть куда угодно. Потому мы кладем index.php в папку веб-сервера, а он дальше уже лезет куда хочет (куда мы пропишем).

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

Композер (и его автозагрузчик) считает корневой ту папку, где расположен composer.json.
Аноним 06/06/20 Суб 21:02:26 #921 №1715177 
почему нет асинхронности?
вон на питоне уже есть
Аноним 06/06/20 Суб 23:42:38 #922 №1715322 
>>1715177

Во-первых, есть (см ReactPHP), во-вторых, если тебе больше нравится Питон, то просто пиши на нем.
Аноним 07/06/20 Вск 00:14:28 #923 №1715334 
>>1714481
>Получается планка входа в пхп не такая уж и низкая как все говорят
Если не из дса, то да, вход не из легких
Аноним 07/06/20 Вск 00:16:42 #924 №1715336 
>>1715123
А где тут ООП собственно? классы !== ооп
Аноним 07/06/20 Вск 01:20:26 #925 №1715359 
>>1715322
Бля, долбоебы, котрые пишут про эту залупу, вы хоть один проект на этой хуйне видели вообще? Вы блядь еще про корутины в пхп вспомните.
Вся асинхронная залупа на пхп до выхода восьмой версии это просто мысленный эксперимент, подрочить судьбу, посмареть как оно вообще может работать. Это нихуя не продакшен реди блядь.
Аноним 07/06/20 Вск 03:00:16 #926 №1715403 
>>1715359
>вы хоть один проект на этой хуйне видели вообще?
В гугле забанили?
Из известных - телеграм бот апи на реактпхп
Аноним 07/06/20 Вск 04:08:55 #927 №1715413 
>>1715403
Сразу открываешь issues, а там пацаны внезапно выясняют что Guzzle не асинхронный. И такой хуйни ты глотнешь ведро, причем дырявой ложкой.
В гугле можно что угодно найти. Хоть дрочащих карликов, хоть фото пизды чьей-то мамаши. То что ты у себя дома пишешь для души тоже мало кого ебет.
Ты проект на этой залупе в продакшене видел? Реальный фидбек у тебя есть?
Аноним 07/06/20 Вск 11:40:09 #928 №1715479 
>>1715413
Таблетки пил сегодня?
Аноним 07/06/20 Вск 13:17:16 #929 №1715531 
какая разница между апачем и nginx?
Аноним 07/06/20 Вск 13:19:49 #930 №1715533 
>>1715531
Такая же, как между линуксом и виндой. Совершенно разные вещи, решающие одну задачу.
Аноним 07/06/20 Вск 13:21:51 #931 №1715535 
>>1715533
на 2