Программирование

Ответить в тред Ответить в тред
Клуб изучающих PHP #117 /php/ Аноним 12/04/20 Вск 15:02:32 16564501
php-noob-1.png 33Кб, 500x500
500x500
cat-cafe-osaka.jpg 157Кб, 1024x683
1024x683
l0-sensei.jpg 34Кб, 650x384
650x384
cat-sad.jpg 194Кб, 1024x768
1024x768
Здесь мы изучаем язык 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? — Да, однозначно. Посмотри любую вакансию.
Оформление кода Аноним 12/04/20 Вск 15:04:42 16564522
grammar.png 56Кб, 500x644
500x644
Надо писать код как попало, а аккуратно. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на 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 16565703
>>1655776 → YOU
Бумп.
Почему двоится запись в таблицу?
Аноним 12/04/20 Вск 18:03:34 16565794
>>1655776 →
Включи в MySQL general_sql_log и увидишь сколько запросов и каких обрабатывает БД.
Аноним 13/04/20 Пнд 02:16:15 16567815
Наконец-то нормальная шапка. Я уже думал что ОП рипнулся
Аноним 13/04/20 Пнд 12:33:53 16569416
>>1656781
Про окно не написал. Надо было что-то в духе "за окном самоизоляция и весна, а мы продолжаем изучать ПХП".
Аноним 13/04/20 Пнд 14:31:56 16570177
>>1656450 (OP)
Вопрос и опу и залу:
Какой англоязычный учебник по современному php порекомендуете?
Аноним 13/04/20 Пнд 14:34:45 16570208
Аноним 13/04/20 Пнд 14:39:37 16570249
>>1657020
Доки хороши только как справочник. Там рядом описаны и важные вещи, и то, что влеплено просто для полноты языка. Заучивать всё подряд довольно неэффективно.
Аноним 13/04/20 Пнд 16:57:07 165711810
>>1657017
Могу посоветовать только смотреть разные презентации на разных конференциях. Бывает лютое говно в стиле "10 СКРЫТЫХ возможностей ларавель", где чувак просто доки пересказывает и паблик апи, а бывает прям кулстори про реальной опыт и решение разных проблем, ну или просто хорошие практики опять же на основе реальных примеров. В книгах тебе может быть трудно понять тот уровень абстракции, о котором пишет автор, это если именно про дизайн и веб в целом.
Аноним 13/04/20 Пнд 17:05:25 165712411
>>1657118
Странный аргумент. Именно в книгах начинают с базовых понятий и постепенно проходят более сложные вещи, а спичи на конференциях как раз и бывают непонятными, автор говорит со своей колокольни.
Аноним 13/04/20 Пнд 18:14:09 165717912
>>1657124
Тут стоит уточнить о каких книгах и о чем вообще говорить. Я имел ввиду более "продвинутые" знания, которые, в основном, получаются с опытом. Если нет возможности его получить в боевых условиях, то можно попробовать перенять по маленьким кусочкам с тех же конференций, это будет не то, но общее представление даст в каком-то вопросе.
Ну и вообще читать книги про чистый пхп тоже такое себе занятие, язык то простой(в этом тоже своя красота есть). В учебнике опа как раз все базовые вещи проходятся, только намного быстрее, чем условную книгу прочитать.
Аноним 13/04/20 Пнд 19:06:35 165722513
Сап аноны. У меня есть задача и я не знаю с какой стороны к ней поступится и что юзать. При нажатии кнопки нужно формировать get запрос и отправлять с ним айди, потом вытянуть данные бд пользователя с этим айди и открыть его личную страничкую.Буду очень благодарен за помощь
Аноним 13/04/20 Пнд 19:50:36 165725414
>>1657225
<a href="/users/1">КНОПКА</a>
Или что? Опиши подробней кейс
Аноним 13/04/20 Пнд 20:00:57 165726215
>>1657225
Если не хочешь ебаться с джавасриптом то делаешь форму с одним скрытым полем куда записываешь айди. И кнопкой сабмита. Сотвественно в форме метод = get, action - url запроса.
Аноним 13/04/20 Пнд 20:02:05 165726516
>>1657262
Да, это ссылка называется
Аноним 13/04/20 Пнд 20:03:29 165726717
>>1657254
Мне нужно сделать личные страничке пользователей, когда в строке браузера вводишь би лайк index.php?name=Иван то тебе открывается страничка этого пользователя
Аноним 13/04/20 Пнд 20:05:02 165726818
>>1657267
Тип как в вк работает
Аноним 13/04/20 Пнд 20:05:52 165726919
>>1657267
Погугли routing, от банальных ифов до миддлваров, у ОПа кстати есть где-то статья на эту тему, поищи на гитхабе, вроде в задаче про студентов
Аноним 13/04/20 Пнд 20:06:58 165727220
>>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 165734921
ваш пхп кусок отборнейшей параши
я каждый день сру кусками пхп, они такие твёрдые и красивые
пхпшеры очень любят свой язык (говно), срут им, едят его на завтрак
ОДИН ПХП НА ЗАВТРАК ОТВЛЕКАЕТ ОТ ВАС ДЕВУШЕК НАВСЕГДА
ваш шланг будет 1см максимум
не пишите на пхп
ПОЖАЛУЙСТА, АНОН, НЕ ПИШИ НА ПХП
Аноним 14/04/20 Втр 09:31:50 165752322
>>1656450 (OP)
Что почитать про работу с базами данных полному нулю?
А то вообще ничего не понятно. Вот я делаю запрос к БД через mysqli_query, получаю что-то в ответ и как с этим дальше работать?
Почему нельзя получить в ответ ассоциативный массив и дальше его вертеть как хочешь?
Аноним 14/04/20 Втр 19:13:04 165791023
15860687731600.jpg 145Кб, 450x300
450x300
Вкатываюсь в ПеХеПе. 28 годиков, какие подводные? Скачал вебинар от каких-то хтмл академия и ахуел от непонятности. Решил зайти, на любимый впрошлом двачик и ахуел от удобности сайта для вкатывальшиков в шапке. Всё как я люблю, аниме девочки, шутеечки уровня б. Теперь главный вопрос, стоит ли учить? Мне не для 300к наносек, а для своего пет-проекта. Хочу замутить крутой скрипт для чтения манги в онлайне.
Аноним 14/04/20 Втр 19:30:02 165791924
>>1657523
а че про них читать есть скл базы они более-менее одинаковые в скл запросах, есть носкл там уже надо доку читать по конкретной бд.
настройка самой бд те в помощь
Аноним 14/04/20 Втр 19:30:50 165792025
>>1657910
да хоть на коболе пиши
Аноним 14/04/20 Втр 19:43:26 165793426
Где можно найти задачникт по sql порешать?
Аноним 14/04/20 Втр 19:54:03 165793727
>>1657934
В интернете, бротиш.
Аноним 15/04/20 Срд 14:24:43 165841428
>>1657910
Я на codewars стараюсь каждый день задачки решать, помогает сильно + в ОП посте есть неплохой учебник, почитай лучше его.
Аноним 15/04/20 Срд 16:53:37 165852529
Анончики, дайте совет. Делаю задание про файлообменник. Для загрузки файлов решил использовать dropzone.js. Но проблема в том, что в него сразу нормально не встроить текстовые поля. Нашёл вот эту ссылку https://switch-case.ru/56510992. Можно ли по ней сделать норм или нет? Или подскажите, как сделать правильно, пожалуйста.
Аноним 15/04/20 Срд 19:25:09 165862030
Аноним 15/04/20 Срд 19:46:07 165862731
Аноним 16/04/20 Чтв 11:41:43 165892932
анонасы, есть тут битриксойды ? прилетела плевая таска - а в гугле нулевая инфа. просто пиздец
Аноним 16/04/20 Чтв 20:17:06 165943233
monkey cute.jpg 30Кб, 555x555
555x555
Аноны, посоветуйте, что выбрать для вкатывания - путь пхпшника или фронтэнд. Нужно как можно быстрее иметь 15-20к в месяц, желательно удаленно.
Пока что уже две недели прохожу CS50
Аноним 16/04/20 Чтв 21:14:31 165947834
>>1658929
Не такая уж и плевая значит
Аноним 16/04/20 Чтв 21:19:43 165947935
>>1659432
>две недели прохожу CS50
Это были потраченные впустую две недели. Тебе, если важна скорость, надо понимать, как функционирует твой фркймворк и как использовать инструменты одного конкретного языка для решения типовых бизнес-проблем, а не смотреть как долбоебы на сцене меняются местами под командами потного ведущего.
Аноним 16/04/20 Чтв 21:24:53 165948636
>>1659479
этот прав за две недели уже прожевал бы пару учебников и высрал первый круд.
мимобайтоеб
Аноним 17/04/20 Птн 12:05:55 165989237
image.png 65Кб, 899x448
899x448
Аноний, я в печали. Дерусь с header'ом.
Почему он не запускается?

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

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

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

Вот тут посмотрел тутор, они грузят юзера из бд https://symfonycasts.com/screencast/symfony-rest4/jwt-guard-authenticator#play
Аноним 17/04/20 Птн 22:40:52 166043941
>>1660422
> грузят юзера из бд
А как ты по другому собрался? ПеХаПе не сохраняет состояние. Токен нужен чтобы польхователь не воводил пароль при каждом запросу. Вся инфа тянется из бд(как вариант in-memory типа редукса), файлов, сесии и подобного.
Аноним 17/04/20 Птн 23:29:42 166047742
>>1660422
Подозреваю, что такие вещи кешируются на уровне самой БД.
Аноним 18/04/20 Суб 09:15:44 166068443
>>1660439
так-то мы могли и сессию сохранить и передавать ее id, зачем тогда stateless и токен? Получается мы с каждым запросом передаем данные пользователь@пароль и сверяем их с таблицей.
Аноним 18/04/20 Суб 09:17:05 166068644
>>1660477
>>1660439
Почему бы не передавать сериализованный и зашифрованный объект пользователя как токен, чтобы вовсе не обращаться к бд?
Аноним 18/04/20 Суб 12:38:11 166080545
image.png 9Кб, 827x152
827x152
Господа, прошу помощи.
Есть страница, на которой по нажатию кнопки добавляется либо удаляется такой-же 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 166083746
>>1660805
А для чего php обработчик? Что ты хочешь сделать?
Аноним 18/04/20 Суб 13:53:03 166088347
>>1660837
Запичывает данные в бд
Аноним 18/04/20 Суб 15:05:45 166098148
Аноним 18/04/20 Суб 17:07:04 166107349
>>1660686
Так себе идея - каждый запрос слать данные пользователя. Они нигде не кешируются, плюс к этому - одного пользователя мало и нужно его отношения тянуть из БД. Получается, что надо каждый запрос например передавать пользователя, его посты, лайки и тд. и не факт что они нужны в конкретном запросе.
Аноним 18/04/20 Суб 19:09:20 166119050
laravel?
Аноним 18/04/20 Суб 22:58:59 166141651
>>1660422

На практике часто встречается, загрузка 1 записи по id - это быстро. Скорее всего, там для вывода страницы еще куча данных из БД берется и на этом фоне 1 маленький запрос роли не играет. В крайнем случае (настанет хайлоад) можно будет добавить кеширование в том же redis.
Аноним 19/04/20 Вск 00:25:08 166147252
Клуб изучающих PHP, че там, провал в Соликамске засыпали?
Аноним 19/04/20 Вск 00:52:37 166147553
image.png 41Кб, 928x385
928x385
Пацаны, в чем дело? Почему не передает запись из сессии?
Записал в отдельную переменную, все равно не передается, хотя при вызове внутри файла "db-req.php" отображается.
Аноним 19/04/20 Вск 01:05:34 166148254
>>1661475
Перечитал документацию. Все норм теперь.
Аноним 19/04/20 Вск 12:43:29 166174555
image.png 10Кб, 659x256
659x256
image.png 81Кб, 970x718
970x718
Пацаны, это снова я.
В чем дело? почему выползло пусто сообщение, если его БД нет даже?
Аноним 19/04/20 Вск 12:50:22 166174956
>>1661745
Понял.

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

Он, сука, никак не пересекается с теми функциями, ни именами переменных, ни названиями функций, ни запросами к БД.
Эта функция вообще вызывается на последней странице, где уже после страницы регистрации показываются посты, это абсолютно другой файл.
Это пиздец. Стоит его закоментить - все работает.
Аноним 19/04/20 Вск 16:03:57 166194859
>>1661838
дебагером посмотри
Аноним 19/04/20 Вск 16:13:56 166196560
>>1661838
в логах что пишет?
сама эта функция или другие public или че?
Аноним 19/04/20 Вск 16:23:48 166197661
image.png 17Кб, 1453x117
1453x117
>>1661965
Выдает это на странице с логином. Хз, какая скобка ему не зашла.
Не понимаю, что ему нужно. Какая неожиданная скобка, нахуй он ожидает фигурную скобку - не понимаю.
Аноним 19/04/20 Вск 16:25:17 166198062
image.png 9Кб, 475x127
475x127
Аноним 19/04/20 Вск 16:25:43 166198263
image.png 48Кб, 1021x491
1021x491
>>1661976
Ну ка, это че за говно?
Аноним 19/04/20 Вск 16:27:33 166198664
>>1661982
Остатки комментария, на них тоже ошибка ругалась, но не критично.
Аноним 19/04/20 Вск 16:28:45 166199065
>>1661986
>syntax error
>не критично
Ок.
Аноним 19/04/20 Вск 16:29:16 166199266
image.png 35Кб, 1136x235
1136x235
image.png 6Кб, 416x132
416x132
У меня еще вопрос. как теперь скрыть эти уведомления? Они у меня это вываливается из файла на пикри 2. Можно их как-то закомментить или крыть?
Аноним 19/04/20 Вск 16:30:21 166199667
>>1661990
Да. Тут ты прав, не работает с кусочком комментария.
Аноним 19/04/20 Вск 16:34:29 166200568
>>1661992
Надо не скрывать уведомления о проблеме, а решить проблему.
Конкретно это означает, что ты пытаешься получить из массива элемент, которого там нет.
Код с логином лень искать, он в том треде еще остался.
Аноним 19/04/20 Вск 16:36:32 166201069
>>1662005
Ты о строках 21 и 22? Это он на пустые поля логина и пароля указывает, после заполнения все норм работает. Ну и сообщение о сессии тоже.

Можно это скрыть? А если будут обсеры, то снова раскомментить и посмотреть?
Аноним 19/04/20 Вск 16:41:49 166201470
>>1662010
>Это он на пустые поля логина и пароля указывает
Так вот ты проверь, пустые они или нет, и если пустые то не совершай те же действия, как-будто они заполнены.
>Ну и сообщение о сессии тоже
Сессия у тебя стартует где-то раньше. Тут дейсвтительно не очень критично, он скорее всего у тебя нет никакой архитектуры, которая помогла бы тебе юзать сессию централизованно.
Так что тут для решения может быть вариант с проверкой каждый раз.
Вот есть такой метод например:
https://www.php.net/manual/ru/function.session-id.php
Впринципе я тебе и так достаточно подсказал, как именно это проверить можно, дальше сам пробуй.
>А если будут обсеры, то снова раскомментить и посмотреть?
Можно то можно, только это снежный ком. Их просто нужно не допускать и решать сразу. К счастью это почт ивсегда (в твоем случае тоже) проще простого.
Аноним 19/04/20 Вск 16:45:49 166202371
>>1662014
Спасибо тебе.
Буду применять это.
Аноним 19/04/20 Вск 17:01:01 166205272
>>1661798
ну же анон, помоги мне
Аноним 19/04/20 Вск 17:43:40 166213573
>>1661798
Смотря чем пользуешься, если линукс, то apt install phpmyadmin, он установится для apache. Можешь композером установить composer create-project phpmyadmin/phpmyadmin в другую категорию и запускать через командную строку php (локальный сервер), или если у тебя xampp например, просто переходишь на localhost/phpmyadmin
Аноним 19/04/20 Вск 17:54:59 166214974
>>1662135
ну так и есть линукс. собирал все по частям. в пред разы когда работал со всякими cms то просто качал проект, настраивал все в хостах и апаче, затем просто переходил по magazgovna.my/phpmyadmin то все пахало. а щас при http://127.0.0.1:8000/phpmyadmin он меня шлет куда подальше и возвращает что вот 404 и такой страницы нет при этом все это в дизайне ларавеля, если что
Аноним 19/04/20 Вск 18:02:13 166215875
>>1662149
Может у тебя phpmyadmin работает на 80 порте?
Аноним 19/04/20 Вск 19:19:16 166224576
>>1662158
ну возможно.значитт мне его никак блять не прикрутить чтоли? или надо сидеть hosts редачить чтобы и там запахало?
Аноним 19/04/20 Вск 23:31:07 166243077
>>1661798
Ты ради одной кнопки импорта в бд pma накатываешь?
Попробуй mysql db_name < dump.sql.
Аноним 20/04/20 Пнд 02:04:25 166250978
Есть кто не спит? Есть срочный вопрос.
Аноним 20/04/20 Пнд 02:07:21 166251079
Аноним 20/04/20 Пнд 02:13:24 166251280
>>1662510
Домашку к утру сдавать надо, поэтому срочно.
Новичек, пиши пхп в оупен сервере. Есть задание, там надо вывести пару строк, а конкретно часы и минуты просклонять, в стоответсвии со временем. Однако у меня хром заменяет русские буквы на знаки вопроса, на английском все работает. Понимаю что проблема в кодировке, в начале пишу метачарсте утф 8 и тд, не работает. Открываю модули оупен сервера, меняю дефолт с офф на утф 8. Тоже не помогло. Что посоветуешь?
Аноним 20/04/20 Пнд 02:15:15 166251381
>>1662512
>Новичек
Посоветую пойти нахуй, школотун
Аноним 20/04/20 Пнд 02:16:31 166251482
Аноним 20/04/20 Пнд 02:16:50 166251583
>>1662513
Домашка в уник.
Двач в своем репертуаре. Точно не подскажешь в чем может быть еще проблема?
Аноним 20/04/20 Пнд 02:21:39 166251684
>>1662514
Спасибо огромное, затупил. В брекетс стояла не та кодировка.
Аноним 20/04/20 Пнд 02:22:11 166251785
>>1662516
you're welcome.
вообще интересно, что в унике пыху преподают
Аноним 20/04/20 Пнд 02:23:25 166251886
>>1662517
майнор, сам не в Рашке сейчас
Аноним 20/04/20 Пнд 02:24:03 166252087
Аноним 20/04/20 Пнд 02:26:39 166252288
>>1662520
университет Хофстра на лонг айланде. Никак не могу отделаться от привычки писать сначала на русском, а потом переделывать. Это проблема для себя была чисто. Хотел разузнать что не так пока к удаленке доступ не закрыли
Аноним 20/04/20 Пнд 14:23:21 166284689
image.png 3Кб, 755x40
755x40
Подскажите - есть ли красивый способ парсить подобный 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 166307690
>>1662522
вчера заснул и не ответил, ты молодец, не возвращайся в парашу, но ты и без меня это знаешь
Аноним 20/04/20 Пнд 17:36:51 166309791
>>1662846
но зачем
для верстки на определенный браузер надо использовать ксс
Аноним 20/04/20 Пнд 17:50:23 166310592
>>1663097
Братан, это вопросы вообще или что?

Для того что бы пользователям показывать "устройства" с которых залогинены и все такое.
Аноним 20/04/20 Пнд 17:54:50 166310893
Аноним 20/04/20 Пнд 17:55:35 166311094
>>1663105
просто особого практического значения расшифровка юзер агента не имеет в наши дни
Аноним 20/04/20 Пнд 19:55:46 166323895
>>1663110
Я понимаю, но таск есть таск.
Аноним 20/04/20 Пнд 21:17:05 166330596
Аноним 21/04/20 Втр 20:01:47 166391297
То ли в глаза ебусь, то ли ещё что. Но у меня не работает вызов функции в ocStore, чтобы выводить имя пользователя в хедере, но мне выдаёт, что переменная неопределена.

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

Вроде должно работать. Но она даже не объявляется. Типа, если я неправильно ввёл значение, то должно же быть null, не?
Аноним 21/04/20 Втр 20:02:23 166391398
Делаю тестахаб. И тут думаю, а стоит ли хранить айпишники юзеров в базе? Они нигде не используются при этом. В реальных проектах их же наверно хранят?
Аноним 21/04/20 Втр 20:29:55 166394699
>>1663912
При чём даже если просто переменную в файле header.php объявить, то всё равно говорит, что переменной не существует. Как это блять работает?
Аноним 21/04/20 Втр 20:47:45 1663967100
Документация там странная без особых примеров. Поясните, пожалуйста, что я не так делаю? Типа, я объявляю что-то в controller/header.php и вывожу во view/header.tpl. Должно же работать, разве нет?
Аноним 21/04/20 Втр 21:12:53 1663996101
>>1663913
Не используешь или не планируешь = не добавляешь.
Аноним 21/04/20 Втр 22:10:16 1664046102
>>1663996
А если я за юзерами следить хочу?
Аноним 22/04/20 Срд 21:47:45 1664979103
Как лучше со сфинксом работать через расширение PHP SphinxClient или просто обычное pdo подключение создавать и дальше уже от него запросы делать? Это я поиск делаю для тестхаба.
Аноним 22/04/20 Срд 22:17:59 1664997104
>>1663305
Мб через js можно напрямую делать? Мне на самом то деле не страшно если уже после логина от пользователя прилетит аякс-запрос на сервак с данными.
Аноним 22/04/20 Срд 23:15:10 1665030105
Аноны, как вы используете интерфейсы и абстрактные классы? Я их вообще не использую, потому что не могу понять зачем, если можно сделать обычный класс. Можно пример приближенный к реальным проектам?
Аноним 23/04/20 Чтв 00:31:35 1665064106
>>1665030
А в чём разница между интерфейсом и абстрактрым классом? Придумали 2 бесполезной хрени.
Аноним 23/04/20 Чтв 13:58:38 1665372107
Аноны, посоветуйте какую нибудь книгу по ОПП в ПХП, с примерами и т.п.
Аноним 23/04/20 Чтв 14:00:26 1665375108
>>1657910
Лучше жиэс учи, для всякого петтинга более подходящая хуйня.
Пхп - это чтобы срать в продакшн тоннами кода
Аноним 23/04/20 Чтв 14:02:53 1665377109
>>1659432
>как можно быстрее
Нужен ОПЫТ. Не в смысле коммерческий, а вообще.
Набить руку, так сказать. Короче надо постоянно высирать новый код, чтобы тебе отпечатывались в макушку все знания.
Только набив достаточно опыта и написав пару десятков мегабайт кода, тогда у тебя зазубрятся базовые принципы.
>быстрее
Для этого надо больше хуячить кода. Не читать, не учить, а писать код.
Соответственно, чем больше ты времени на это тратишь, тем БЫСТРЕЕ все это будет
Аноним 23/04/20 Чтв 14:06:40 1665383110
>>1664979
>или просто обычное pdo подключение
Ну, тут ты точно соснешь.
Как только ты на шаг выйдешь за пределы стандарта SQL, ты уже не сможешь юзать PDO.
Да даже больше, sql в сфинксе крайне урезанный, ты даже блядский LIMIT можешь задать строго определенным образом.

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

Представь что у тебя на сайте куда-то загружается файл и сохраняется на локальном диске сервера. Всё ок, всё работает. Потом случается любая залупа, и тебе нужно этот файл заливать не на локальный диск, а на облако. У тебя до этого был класс Filesystem с каким-то методом вроде save(). Копируешь этот класс и делаешь из него LocalFilesystem, а из Filesystem делаешь интерфейс с методом save(). Теперь тебе достаточно сделать например YandexStorageFilesystem, в конфигураторе забиндить интерфейс Filesystem к YandexStorageFilesystem и не трогая вообще свой основной код у тебя программа внезапно начала работать по другому. Не всё так просто конечно, но суть понятная думаю. Важно чтобы у тебя нигде в коде не было $fs = new Filesystem(), или юзай контейнеры, или фабрики
Аноним 23/04/20 Чтв 18:43:21 1665716114
>>1665030
Абстрактный это же типа базовый? Который не предполагает создания экземпляров? Если правильно понял, то юзаю как основной костяк. Тупа вваливаю туда основной фукнционал, а всё остальное выстраиваю вокруг него дабы не ебаться излишне с наследованиями и прочим.
Аноним 24/04/20 Птн 14:13:08 1666373115
Что лучше учить: php или js?
Аноним 24/04/20 Птн 14:37:50 1666396116
Чем 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 1666401117
Аноним 24/04/20 Птн 16:47:21 1666518118
>>1666396
Это очень тупая регулярка, не надо так делать
Аноним 24/04/20 Птн 20:15:32 1666701119
>>1666518
Почему? Можно сократить через {}, но для чисел так нагляднее, ящитаю.
Аноним 25/04/20 Суб 15:08:54 1667208120
хотел бы услышать выше мнение по поводу моего решения задачки 'Сумма прописью'. К критике готов, может предложите что-то получше сделать, обсудим https://ideone.com/KQZXTX . Спасибо
Аноним 25/04/20 Суб 17:10:13 1667260121
Аноним 25/04/20 Суб 21:59:46 1667601122
>>1667260
бля, недопроверил после поправок. сча исправлю
Аноним 25/04/20 Суб 22:05:47 1667606123
Аноним 25/04/20 Суб 22:32:29 1667623124
>>1657017
>Какой англоязычный учебник по современному php порекомендуете?
Нет таких. Ни учебника, ни php. Современный PHP - это сельские интернет магазины, копроративные сайты и блоги на вордпресс. Соответственно к ним и учебников нету.
Аноним 25/04/20 Суб 22:33:47 1667624125
Аноним 25/04/20 Суб 22:36:38 1667627126
>>1657910
>Хочу замутить крутой скрипт для чтения манги в онлайне.
Ну на ПХП у тебя будет сверх крутое чтение манги с полной перезагрузкой страницы после каждого перелистывания. Хуита это короче будет, а не манга. СПАшечку сразу делай на vue.js. Ну либо если тебе прям сильно хочется можешь скомбинировать, допустим какой-нибудь Yii2 + jQuery, если хочется стабильности, либо Laravel 6 + Vue.js, если ты стильный модный молодежный петушиный.
Аноним 25/04/20 Суб 22:38:06 1667630127
>>1667627
>либо Laravel 6 + Vue.js, если ты стильный модный
там уже 7-ой вышел =)
Аноним 25/04/20 Суб 22:39:41 1667631128
>>1660422
>Если при токен аутентификации мы грузим пользователя из бд на каждом запросе, это норм?
Ну грузить, наверное, я бы сказал не норм, а проверять - ну да. То есть, типа а как иначе? На каждом запросе спрашиваешь у него токен и чекаешь, кто это. Ну если у тебя реляционка обычная можно и грузить, это в принципе на скорость не повлияет.
Аноним 25/04/20 Суб 22:45:48 1667636129
>>1667630
>там уже 7-ой вышел =)
Ебаааааааааааааааать, ладно схожу посмотрю, че там высрал (нет). Причем, довольно давно похоже вышел, на ларакастс уже высер записали, what's new. Честно говоря, ПХП такая параша, что даже лень смотреть, чем там изменилось, как же я счастлив, что в жс переобулся.
Аноним 26/04/20 Вск 02:13:46 1667758130
Аноны, а можно ли на пхп сделать открытие из превью в полноразмерную картрнку?
Не как сейчас, когда картинка открывается в отдельной рамке, тут уже пахнет JS'ом.
А как раньше (к примеру, так до сих пор на Ычане, если без куклоскрипта): картинка открывается в полном размере и вместе с этим уродливо растягивает всю рамку с постом и зажимая текст к краю экрана.
Или это тоже только через JS сделать можно?
И на пхп остается только открывать картинки в отдельной вкладке, что и было до растягивания картинки в посте, лол.
Аноним 26/04/20 Вск 02:19:18 1667761131
>>1667758
Без жс никак.
>А как раньше (к примеру, так до сих пор на Ычане, если без куклоскрипта):
Открой инспектор, там это через жс сделано.
Аноним 26/04/20 Вск 02:20:55 1667762132
>>1667761
>Открой инспектор
>data-thumb-src=
Я по этому и решил, что без ЖС никак.
Спасибо.
Аноним 26/04/20 Вск 03:08:02 1667772133
>>1667636
>как же я счастлив, что в жс переобулся
А почему неосилил? ООП не даётся?
Аноним 26/04/20 Вск 07:40:19 1667810134
Аноны, а где бы бесплатно без смс достать разных дизайнов интернет-магазинов? Хочу потренироваться их на фреймворки натягивать (Bitrix, WP, Shopify и т.п.).
Аноним 26/04/20 Вск 11:54:45 1667893135
>>1667772
>А почему неосилил? ООП не даётся?
Я на типизированных джаваскриптах пишу, тамошняя система типов твоему ПХП без дженериков сосать дает. Просто заебало хуй сосать за 60к в говноконторе я решил двигаться к деньгам и нормальной разработке.
Аноним 26/04/20 Вск 11:55:30 1667894136
смеющийся-том-к[...].jpg 174Кб, 1280x800
1280x800
>>1667810
>на фреймворки натягивать (Bitrix, WP, Shopify и т.п.).
>фреймворки
>Bitrix, WP
Аноним 26/04/20 Вск 12:29:55 1667925137
>>1667893
>тамошняя система типов
Она чем-то от ПХПшной отличается сильно, да?

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

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

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

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

>проработавший 4+ года на галере
Да всем насрать где ты там отработал.
Я вот недавно галеру видел где работают одни верстальщики, которые себя фуллстаками называют. Прямо как ты cms - фреймворками.
Аноним 26/04/20 Вск 13:23:04 1667957142
>>1667943
>Говорю это как проработавший 4+ года на галере, которая занимается такой кастомизацией.
А вот этот мужик https://wp-kama.ru/about занимается вордпрессом 10 лет и называет его именно CMS - почитай на странице, что умные люди говорят.
А пока что:
>марш под шконку, сосунок
Аноним 26/04/20 Вск 14:07:02 1667969143
>>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 1667985144
>>1667969
>долбоёб путает js и TypeScript и называет кого-то тупым.
Ты и жавускрипт неосилил походу, токсичное шизло.
Аноним 26/04/20 Вск 14:38:25 1667990145
>>1667969
У тебя это все есть на том же уровне, на каком был ключик у джека воробья во второй части. Пиши сразу на шарпе, зачем подделку жрешь.
мимо-шарпист
Аноним 26/04/20 Вск 15:44:27 1668075146
>>1666701
Нет блять, высматривать, 4 раза или 5 ты там этот символ написал, вместо того, чтобы ПРОСТО увидеть это в скобочках - не нагляднее
Аноним 26/04/20 Вск 15:51:14 1668084147
>>1667985
>Ты и жавускрипт неосилил походу, токсичное шизло.
Эй, пиздюк читать научись, сын шлюхи.

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

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

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

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

Если смотреть глобально, то случаев, когда требуется настолько сложный бек, с которым обезьяны не справятся, меньше, чем случаев, когда они могут на коленке написать апи на VasyanJS и все будет работать.
Аноним 26/04/20 Вск 16:33:04 1668133156
>>1668127
>Если смотреть глобально, то случаев, когда требуется настолько сложный бек, с которым обезьяны не справятся
Точно так же с фронтендом обстоят дела - куча прибыльных\топовых сервисов без всякого СПА и куч макак на поддержке живут себе и деньги делают.
Аноним 26/04/20 Вск 16:35:11 1668135157
image.png 131Кб, 909x1219
909x1219
Вот кстати чё гугл думает.
Аноним 26/04/20 Вск 16:55:54 1668153158
>>1668135
Гугл показывает результаты с учётом истории поиска
Аноним 26/04/20 Вск 18:26:31 1668251159
image.png 36Кб, 793x456
793x456
Анон помоги плес, с меня сиськи мужские
Делаю задание из обучалки про кубики, и меня ебет синтакисческой ошибкой уже целый час я не знаю что делать уже просто я хочу погромировать за 300к\сек а не поваром рабоать за двести бачей в месяц

Аноним 26/04/20 Вск 18:27:33 1668253160
>>1668251
17, 21, и 25 строки соответсвенно
Аноним 26/04/20 Вск 18:28:31 1668254161
Аноним 26/04/20 Вск 18:30:58 1668257162
image.png 107Кб, 988x549
988x549
Аноним 26/04/20 Вск 18:33:16 1668259163
я ошибка.png 42Кб, 623x734
623x734
Аноним 26/04/20 Вск 18:34:10 1668260164
>>1668259
>что не так, я не понимаю
Ты кавычку не закрыл там, куда я стрелочкой ткнул.
Аноним 26/04/20 Вск 18:34:18 1668261165
>>1668257
>>1668254
всем спасибо, просто я дурашка и забыл двойные ковычки
Аноним 26/04/20 Вск 18:38:43 1668263166
>>1668251
Кстати у тебя там есть мини ошибка ^
у тебя <= и >= , Лучше просто больше или меньше
типо если выпадет одинаковое число то это не победа, а выведет как ну ты понял
и наверное лучше все же не дважды if писать, а elseif
Ну я сам новенький и вкатываюсь, но мне кажется так лучше.
Аноним 26/04/20 Вск 19:28:56 1668312167
>>1668263
да, точняк, так вернее, спасибо!
Аноним 26/04/20 Вск 19:32:12 1668315168
13442719233989.jpg 22Кб, 604x557
604x557
Блять, какие же php-фреймворки развитые, пиздец просто.
Гуглишь любую самую дикую поебень вида "Laravel + анальный аттракцион для клоунов" и получаешь какой-нибудь специально созданный для этого пакет с парой тыщ звезд на гитхабе.

Блять, да даже для той же java меньше результатов по тем же темам бывает, я в ахуе.
(про жс и говорить не чего, там вообще нихуя нет)
Аноним 26/04/20 Вск 19:33:54 1668316169
>>1668315
>анальный аттракцион для клоунов
Это и есть жс.
Аноним 26/04/20 Вск 19:38:33 1668321170
Как сделать запрос типа select id, title from table_1, table_2 через кверри-бильдер в ларавеле? Не через selectRaw.
Аноним 26/04/20 Вск 19:40:00 1668322171
Аноним 26/04/20 Вск 19:53:15 1668329172
>>1668322
Есть просто две таблицы, которые не соотносятся ни с какой моделью, так что отношения прописывать некуда.
Аноним 26/04/20 Вск 20:05:02 1668334173
>>1668329
Начнем с того, что с хуев у тебя есть таблицы без моделей?
Аноним 26/04/20 Вск 21:32:11 1668415174
Дурашка снова на связи.
В обучалке задачка: Некто кладет в банк 10000 р. Банк начисляет 10% годовых (то есть, каждый год на счету становится на 10% больше, чем в прошлом году). Напиши программу, считающую, через сколько лет в банке будет миллион? Сколько лет будет этому некто? Доживет ли некто до этого дня, если сегодня ему 16 лет?

Я вроде бы и домучал скрипт, чтобы он не только деньги считал, но и возраст, однако в результаты выкатывается каждое вычисление внизу скриншота. Как заставить скрипт отобразить только ответное значение?
Аноним 26/04/20 Вск 21:35:36 1668418175
я ошибка.png 22Кб, 640x496
640x496
Аноним 26/04/20 Вск 21:38:51 1668422176
>>1656450 (OP)
Посоветуйте программу с возможностью просмотра результата. Ставил атом с гитхабом беда. Не в блокноте же писать.
Аноним 26/04/20 Вск 21:45:55 1668425177
>>1668422
вс код с плагинами, если места на диске не жалко то пыхошторм
Аноним 26/04/20 Вск 21:47:19 1668426178
>>1668418
>>1668415
Выводи содержимое $age после цикла например
Аноним 26/04/20 Вск 22:48:22 1668483179
P A M A H I T E я, видимо, совсем затупил. Решение задачки 'Я у мамы калькулятор' в какой-то момент начала лупиться. В этих сраных 30 строчках хранится дьявол, но я его так и не нашел. Вот код https://ideone.com/0UxqBC . Спасибо
Аноним 26/04/20 Вск 22:51:02 1668486180
>>1668483
у тебя условия завершения цикла нет
Аноним 26/04/20 Вск 22:53:36 1668492181
>>1668415
У меня от скуки поехала кукуха и я решил сделать эту задачу в ООП. Так вот вопрос - нормально написано или шляпа?
Аноним 26/04/20 Вск 22:54:05 1668493182
Аноним 26/04/20 Вск 22:59:45 1668497183
Аноним 26/04/20 Вск 23:03:10 1668501184
>>1668426
можешь показать, как это должно выглядеть, чтобы работало?

>>1668492
Охуенно, когда я смогу так же?
Аноним 26/04/20 Вск 23:05:35 1668502185
image.png 24Кб, 762x410
762x410
>>1668426
забей, у меня получилось
однако проверку на то, жив некто или нет, я еще не сделал
эта задача заняла у меня около двух часов плак плак
Аноним 26/04/20 Вск 23:06:36 1668503186
>>16684>>1668497
>>1668497
Вау, у меня все получилось. Код: https://ideone.com/YCVfBf . Только у меня есть вопрос: почему до этого не работало без условия $i < strlen($example) ? я ведь принудительно завершал цикл командой break.
Аноним 26/04/20 Вск 23:06:53 1668504187
Аноним 26/04/20 Вск 23:09:57 1668508188
>>1668504
$op значило прошлый знак, $char знак, который я вынул из строки сейчас
Аноним 26/04/20 Вск 23:12:34 1668512189
>>1668504
к слову, скрипт выдает неправильные решения https://ideone.com/fhiGNM . для этого я и использовать переменную $op
Аноним 26/04/20 Вск 23:30:54 1668522190
>>166>>1668504
Вот, запилил вроде как норм решение. По итогу проблема оказалась в приоритете условий. Исправил и теперь все идеально работает. Вот код https://ideone.com/HiWp87 .
Аноним 27/04/20 Пнд 00:34:12 1668560191
>>1668502
Я вот смотрю и не могу понять, это такой жирный троллинг?Это не байт реально интересно
Аноним 27/04/20 Пнд 01:13:45 1668585192
>>1668560
Никак нет, просто я абсолютно впервые сел за код. Что не так?
Аноним 27/04/20 Пнд 01:41:52 1668596193
Сап двощь, поясните ситуацию про тех. задания. Из недавних собесов всегда была какая-то залупа "Напишите прилу без фреймворков и либ но с композером и ООП". Нормально ли подключать psrовские интерфейсы если мне это нужно? Или вот хочу реализацию UriInterface газловскую подрубить, как вероятно что сразу скажут что я дебил и нужно было С НУЛЯ всё писать?
Аноним 27/04/20 Пнд 02:13:15 1668604194
>>1668334
>Начнем с того, что с хуев у тебя есть таблицы без моделей?
Пытаюсь поиск на сфинксе сделать. Через eloquent посылаю запросы к демону (не знаю насколько это хорошая идея, я нуб). Первая таблица индексы, вторая rt индексы.
Аноним 27/04/20 Пнд 04:49:14 1668639195
>>1668596
А работают они тоже на чистой пыхе?
Аноним 27/04/20 Пнд 09:20:28 1668727196
>>1668596
Нужно у тех хуил спрашивать подойдет или нет. Если нет возможности - смотри насколько упрощает код. Смысл такого ограничения - посмотреть как ты пишешь (а не на вызов одной функции из либы). Если остается довольно много - то можно и использовать скорее всего. Если у тебя там под сотню строк (исключая всякий бойлерплейт) и они начнут выебываться - можно слать нахуй. Если конечно финансы не поджимают.
Аноним 27/04/20 Пнд 13:04:33 1668934197
Дурашка-кун снова на связи.
Эдвенсед-задача про кредит мучала меня всю ночь и теперь еще сегодня.
Школьник решил купить айфон и для этой цели взял кредит. Сумма кредита — 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 1668951198
>>1668934
if (($creditBalance $percent + $servicePayment) < $monthlyPayment) {
$monthlyPayment = ($creditBalance
$percent ) + $servicePayment;

уот так
Аноним 27/04/20 Пнд 13:14:51 1668954199
>>1668951
>>1668934
Забыл умножение
if (($creditBalance * $percent + $servicePayment) < $monthlyPayment) {
Аноним 27/04/20 Пнд 13:20:21 1668960200
Аноним 27/04/20 Пнд 13:27:24 1668973201
15875393500642.jpg 94Кб, 742x963
742x963
>>1668954
Да, так тоже пробовал, но что-то не шло, сделал как у >>1668960
поменял условие в цикле и убрал break, потому что видимо он останавливал скрипт раньше времени, не давая посчитать последний платёж

Спасибо огромное как перестать чувствовать себя тупым
Аноним 27/04/20 Пнд 13:29:23 1668976202
>>1668973
Я и есть он.Я так же вечно туплю и тоже на этом калькуляторе тупил.Ты такой не один. главное продолжать идти вперёд Наверное
Аноним 27/04/20 Пнд 14:16:32 1669025203
Вообще принято где-нибудь не пользоваться магическими методами, фасадами и другими спорными "фишками" ларавеля? Пока изучаю всякие рандомные проекты на гитхабе, и там они всегда задействованы. Как лучше учиться?
Аноним 27/04/20 Пнд 14:34:54 1669064204
>>1669025
Эти спорные фишки нужны для более быстрой разработки. То есть за один-два месяца склепать работающую приложуху, и кое как её потом поддерживать иногда. Если проект охуеть какой крупный то там вообще стараются максимально от фреймворка абстрагироваться, ну и как бы для такого от ларки становится много меньше чем от симфони например. Тут смотри под задачи, если есть задача написать какую-то шляпу усатую по тз за 3 недели один раз, то, как бы это хуево не звучало, но можешь без проблем писать всю логику прямо в контроллерах. Так банально быстрее чем что-то пердолить и моделировать.
Аноним 27/04/20 Пнд 14:55:18 1669109205
>>1668604
Как только доберешься до условий и лимитов, обнаружишь, что в сфинксе SQL уровня пук-кек и не поддерживает приблизительно нихуя.
Я тебе уже сказал выше по треду, используй json апи
Facebook Аноним 27/04/20 Пнд 15:25:47 1669181206
facebook post.jpg 669Кб, 3200x1800
3200x1800
106330923-15786[...].jpeg 89Кб, 1400x950
1400x950
Ок спрошу здесь.
А почему 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 1669203207
>>1669181
Лол, разумеется, это хранится в БД фейсбука и подтягивается при наведении.
Аноним 27/04/20 Пнд 15:58:01 1669216208
>>1669181
При наведении на объект страница посылает ajax-запрос на /api/graphql и получает ответ.

Смотри активность браузера, нажми F12 и посмотри трафик. Ты всё сам увидишь.
Аноним 27/04/20 Пнд 15:59:59 1669218209
>>1669181
Такое могли сделать чтобы нагрузку уменшить. Таких кнопок же много на странице может быть. Инфа подтягивается только если она действительно нужна (навели мышку). Плюс у него же SPA - акцент сдвинут на динамическое обновление содержимого страницы а не загрузку всего сразу.
Аноним 27/04/20 Пнд 16:13:27 1669227210
where.jpg 663Кб, 3195x1661
3195x1661
>>1669216
>ajax-запрос на /api/graphql
И в каком из этих файлов этот запрос и ответ находятся?
>>1669218
есть ли возможность увидеть ссылку на профиль будучи не залогированным, того же Smetansky.
Аноним 27/04/20 Пнд 17:56:09 1669331211
fb.png 93Кб, 1839x640
1839x640
>>1669227
Открываешь вкладку network, потом наводишь мышку - что-то из того что появилось и нужно. Просматриваешь где какая инфа. Когда находишь нужное, смотришь вкладку headers - там инфа которую нужно передавать чтобы твой запрос обработали. Смотришь что там можно менять. Там ебля еще та может быть, особенно если защита от XSS подрублена.
Аноним 27/04/20 Пнд 20:31:57 1669494212
че-то вакансий для вката совсем мало на hh. Есть ли щас смысл вкатываться по гайду из шапки?
Аноним 27/04/20 Пнд 21:02:41 1669527213
>>1669494
Так ты и на мидловые откликайся
Аноним 27/04/20 Пнд 21:23:18 1669559214
>>1669227
Если руками хочется попробовать, то можно сделать из меню F12 "copy as curl" и с помощью curl воспроизвести запрос. Curl умеет через параметры и куки, и все методы, и все заголовки, конечно.

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

В принципе так можно сложные сессии какие-то воспроизводить.
Аноним 28/04/20 Втр 08:49:40 1669858215
call out the cat.mp4 6266Кб, 640x640, 00:01:14
640x640
37681816.jpg 9Кб, 237x200
237x200
>>1669331
thanks, то что мне нужно было
Аноним 28/04/20 Втр 14:08:35 1670186216
Как приделать hot reload к apache with php?
Аноним 28/04/20 Втр 15:52:19 1670336217
Толстой.png 97Кб, 752x690
752x690
Ежедневный пост от Дурашка-куна:

На картинке — часть программы, создающая философское настроение. Принцип работы таков: есть 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 1670429218
Аноним 28/04/20 Втр 16:54:20 1670431219
>>1670336
> Как заставить код вместо ключей выдавать значения?
С помощью ключа получаешь значение. У тебя не выходит потому что ты передаешь не ключ.
> Почему первая и вторая строки выходят идентичными
Пoтому что ты их составляешь из идентичных переменных - для второй строки их нужно заново генерировать.
Попробуй перечитать все (вообще все) заново. Ты путаешся в базовом синтаксисе. Если дальше так продолжишь то запутаешся еще больше. https://ideone.com/HHW3qK
Аноним 28/04/20 Втр 17:29:48 1670493220
>>1670429
фикшу сам себя. немного доработал, убрал повторяющиеся действия. Вот обновленная версия: https://ideone.com/5yI8fA
Аноним 28/04/20 Втр 20:51:43 1670784221
Аноним 28/04/20 Втр 21:27:40 1670850222
>>1670784
я так и думал, что есть решение проще. Пытался сделать так же, но
кажется у меня рили проблемы с элементарным синтаксисом, потому что как только я пытаюсь юзать подобные переменные $word2[array_rand($word2)], код сыпается.

А есть еще какие-нибудь пособия для самых маленьких? видео или статьи. Часто помогает восприятию изложение одних и тех же тем разными людьми.
Аноним 29/04/20 Срд 00:36:17 1671057223
bb.PNG 116Кб, 884x787
884x787
Есть задача , сразу же первая по ссылке 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 1671267224
Есть 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 1671281225
>>1671267
>Почему так?
>'data.txt'
Это относительный путь. Он считается от точки запуска скрипта, а так как ты запускаешь его из другой директории, то он не может найти файл.

>Как это исправить?
__DIR__ . DIRECTORY_SEPARATOR . 'data.txt'
Пропиши вместо относительного пути.
Аноним 29/04/20 Срд 12:46:58 1671304226
15878140117112.jpg 208Кб, 1280x958
1280x958
Аноним 29/04/20 Срд 13:25:00 1671336227
а можно ли с пхп баловаться в консольке?
Аноним 29/04/20 Срд 13:30:34 1671342228
>>1671336
Да. Можно даже демонов писать. Только тсссс
Аноним 29/04/20 Срд 13:31:48 1671343229
Аноним 29/04/20 Срд 14:01:10 1671376230
Аноним 29/04/20 Срд 18:08:02 1671677231
Тупой вопрос :
strstr - Находит первое вхождение подстроки. Как это можно перевести на человеческий язык?

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

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

https://ideone.com/NZXJOp вот я разбираю слово на символы, одним циклом с начала строки, другим циклом с конца строки. Как их сравнить и получить только итоговый результат по строке, а не по каждому символу?
Можно ли не делать два цикла, а как-то уместить это в один?
Если закидывать строку посимвольно в массив, как мне сравнить элементы из начала и конца массива? это вообще можно сделать?
Аноним 29/04/20 Срд 22:56:12 1671919240
>>1671907
Твои страдания в этом треде самый лучший пример почему не надо даже думать трогать это говно
Аноним 30/04/20 Чтв 00:17:47 1671985241
>>1671907
решил в итоге вот так https://ideone.com/db801m
работает как часы, однако не так, как задумывал автор обучалки, очевидно
Аноним 30/04/20 Чтв 00:43:59 1672015242
Аноним 30/04/20 Чтв 02:03:49 1672058243
dcvx3gj-4e7a800[...].jpg 219Кб, 770x800
770x800
>>1672015
функции блять какие-то, непонятно нихуя
спасибо, вернусь к этому позже, как начну понимать хоть что-то
Аноним 30/04/20 Чтв 03:19:38 1672069244
Делаю сейчас тестхаб из ОП-поста на ларавеле. Думаю, что через неделю-другую бэк более-менее до ума доведу. Хочу фронт написать на тайпскрипте и вью. Норм связка, или лучше реакт+тайпскрипт? Если что в жс-е, очень плохо разбираюсь, но понравился синтаксис тайпскрипта. На фреймворках никогда ничего не писал, так что все равно что учить.
Аноним 30/04/20 Чтв 08:58:45 1672133245
>>1671838
>На западе даже самые прозженные любители поговнокодить массово перекатываются на питухон/руби как новую тулзу для шлёпанья монолитов
Статистику перекатывания в студию. Я уже вскукареков наслушался.
Аноним 30/04/20 Чтв 09:07:59 1672135246
>>1672069
>Делаю сейчас тестхаб из ОП-поста на ларавеле.
Нафига на эту херь время тратить? Лучше написать какой-то полезный сервис и захостить, набираясь реального опыта, а не разработки в вакууме.
Эта ересь кучу времени заберёт, ничего тольком не дав взамен кроме умения писать круды и накатывать миграции изучается за неделю.

С тех пор как выучил пхп и пошёл по фрилансу и заявкам, то стало очевидно, что местное дрочево никому не нужно - синьоры сами поговнокодить мастера.
Аноним 30/04/20 Чтв 12:31:16 1672241247
>>1671821
Попробуй mb_strstr и mb_strlen
Аноним 30/04/20 Чтв 13:17:44 1672283248
>>1672241
Спасибо, попробую так
Аноним 30/04/20 Чтв 15:46:51 1672405249
>>1672135
>Лучше написать какой-то полезный сервис
>С нулем опыта
Аноним 30/04/20 Чтв 16:12:58 1672443250
>>1672135
>пошёл по фрилансу
>синьоры
чего блять
Аноним 30/04/20 Чтв 21:47:43 1672922251
Аноним 30/04/20 Чтв 22:06:00 1672942252
Аноним 30/04/20 Чтв 23:05:21 1672993253
>>1672922
А функцией strrev можно пользоваться?
Аноним 30/04/20 Чтв 23:08:06 1672995254
>>1672993
>>1672942
И даже если без strrev, то зачем пользоваться вырезанием подстроки, когда можно напрямую символы получать как
$test[$i]? Проще ведь будет?

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

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

Языки вроде питона, ЖС и го на разные направления ориентированы, самая широкая область у питона, а ПХП только веб и только в одном стиле.
Аноним 01/05/20 Птн 00:03:47 1673067262
>>1673059
Что для бека в питоне хуже по сравнению с ПХП?
Аноним 01/05/20 Птн 00:05:27 1673072263
>>1673063
Я живу не в москве и у меня в городе одинаковое количество вакаский для пхп/питон`а.
Вот только вакансий без опыта для питона вообще нет.
Аноним 01/05/20 Птн 00:07:17 1673076264
>>1673072
Ты только начал вкатываться?
Аноним 01/05/20 Птн 00:10:30 1673084265
Аноним 01/05/20 Птн 00:51:31 1673178266
Аноним 01/05/20 Птн 01:17:31 1673232267
Аноним 01/05/20 Птн 01:33:44 1673254268
>>1673232
Дерзай, есть все шансы. Мне 25, уже больше года не могу вкатиться в пыху, работа дворником не оставляет времени на саморазвитие.
Аноним 01/05/20 Птн 02:11:44 1673275269
>>1673254
Дворники вроде мало работают в день.Или ты полный день работаешь?
Если я не смогу за год-полтора научиться и найти работу джуном, то пополню твои ряды.
>>1672922
https://paiza.io/projects/Src-bGvqCdab1Jqk6gfqKQ?language=php
переделал, теперь всё должно нормально работать.Если не использовать спец символы...Всё как задумывал автор Наверное

Аноним 01/05/20 Птн 02:23:46 1673279270
>>1673254
Ну ты все же не бросай попытку, даже если систематически по часу будешь в день учить, то через пару лет сможешь вкатиться.Там ещё от удачи всё зависит - видел вакансию в своём городе где вообще не слишком много нужно знать, мол главное желание учиться развиваться Оплата от 15 до 30к, но скорее всего на деле 15к
Аноним 01/05/20 Птн 02:55:50 1673285271
>>1672995
В пыхе по индексу ты читаешь не символ а байт, собсна мультибайтовая кириллица идет по пизде. Исторически сложилось что создатели пыхи ложили хуй на юникод, и поэтому сейчас у каждой функции, которая работает со строками, есть клон с приставком mb_ в виде экстеншена. Такие дела :'c
Аноним 01/05/20 Птн 10:25:32 1673377272
почему пхп ненавидят?
Аноним 01/05/20 Птн 10:29:48 1673379273
Аноним 01/05/20 Птн 10:31:51 1673380274
>>1673379
или потому что он старый?
Аноним 01/05/20 Птн 10:42:11 1673385275
>>1673380
Моложе него только всякая хипстеркая хуита. Особенно если отсчитывать от появления zend engine. Из относительно мейнстримовых только шарп помоложе будет.
Аноним 01/05/20 Птн 10:44:24 1673387276
>>1673377
Кто его ненавидит? Как вообще можно ненавидеть инструмент?
Какие-то эмоции к нему, да и к прочим ЯП, испытывают только совсем уж ньюфаги в мире ИТ. Чем и палятся.
Аноним 01/05/20 Птн 10:46:52 1673390277
>>1673385
я имел ввиду,что он не поспевает за свежими и модными трендами
Аноним 01/05/20 Птн 10:49:41 1673393278
>>1673390
Схуяли непоспевает? Практически все есть, в 8 версии многопоточность подвезут (хотя она и никому не нужна).
Аноним 01/05/20 Птн 10:50:26 1673394279
>>1673393
>многопоточность
а разве не асинхронность?
Аноним 01/05/20 Птн 10:56:38 1673397280
>>1673393
>>1673394
Откуда такая инфа? Ни того ни другого из коробки вроде не будет в 8. Там самое главное jit и синтаксис подтянут в очередной раз, как же без этого. Алсо, Стогов хипстерские запросы коробочной асинхронности уже неоднократно посылал нахуй, т.к. считает ее неважной. Похоже это в самую последнюю очередь будет сделано.
Аноним 01/05/20 Птн 11:08:37 1673403281
>>1673397
ну если они в разы повысят скорость,то асинк нах не нужен
Аноним 01/05/20 Птн 11:13:22 1673406282
>>1673403
Асинхронность не для скорости языка в целом нужна, а для редких кейсов одновременной обработки блокирующих операций. Они реально редкие, поэтому особо не парятся с добавлением асинхронности в пых.
Со скоростью тоже уже давно хорошо, хотя апать есть куда. Все равно это не узкое место.
Критичное для пыхи - это повсеместная и легкая смена парадигмы исполнения на долгоживущие сервисы, т.к. узким местом теперь является повторяющаяся загрузка всякой мишуры одинаковой между запросами. Это, впрочем, уже многими реализовано. Из последнего нашумевшего - роадраннер. И того выходит асинхронность пхп нужна почти никак.
Аноним 01/05/20 Птн 11:20:53 1673412283
>>1673406
>ся повторяющаяся загрузка всякой мишуры одинаковой между запросами. Это, впрочем, уже многими реализовано. Из последнего нашумевшего - роадраннер. И того выходит асинхронность пхп нужна почти никак.
нихера не понял
Аноним 01/05/20 Птн 11:55:48 1673426284
>>1673406
>Критичное для пыхи - это повсеместная и легкая смена парадигмы исполнения на долгоживущие сервисы, т.к. узким местом теперь является повторяющаяся загрузка всякой мишуры одинаковой между запросами.
А как быть в ситуации, когда 10k клиентов, которые слушают вебсокет. Держать в памяти и крутить параллельно 10k машин, по одной на каждого клиента, и дальше синхронизировать обмен данных через внешние системы обмена сообщений?

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

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

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

непонятно, как дать "любое число скобок, минусов и пробелов" на любом участке текста, если символы в регулярке считаются по порядку, как я понимаю.
Аноним 01/05/20 Птн 14:53:30 1673568287
Аноним 01/05/20 Птн 15:34:58 1673609288
>>1673544
Тут так просто не решается. Можно перед регуляркой почистить от этого, можно так, например ([() -]\d[() -]){10}
Аноним 01/05/20 Птн 15:35:29 1673610289
>>1673609
Звездочки побились, ну ты понел.
Аноним 01/05/20 Птн 16:01:28 1673642290
>>1673544
отвечу сам себе:

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

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

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

Такое кстати пишут не только 15-летние но и с 15-летним опытом без шуток. Когда за 15 лет варишься в этом чане с говном и не видишь как можно по другому написать. Знавал я одного разраба, говорил что все бугуртят от вордпресса просто потому что не знают как с ним правильно работать. Хотя он вроде понимал что в цикле делать запросы к бд это не очень правильно(скорее не очень быстро для него), но это по вордпрессовски и проще ебануть какой-то кеш программный чем пытаться по другому. Ну и конечно не признавал композер, установить сторонние либы это копипаст в локальный файл и подключение через include, в общем лучшие практики 2003 года.
Аноним 02/05/20 Суб 00:52:53 1674076296
>>1674006
>но почему-то в основном такие перлы коммьюнити у пхп
Ты ещё не видывал что пердоли на js лепят порой.
Аноним 02/05/20 Суб 05:10:27 1674123297
Аноним 02/05/20 Суб 05:56:09 1674125298
>>1674123
У тебя внизу ошибки пишутся в командной строке, балда.
Аноним 02/05/20 Суб 06:33:45 1674134299
Всем привет, я начал учить верстку. Глянул вакансии и там джва пути:
1. Или ты должен знать в добавок к верстке php, sql и разные cms
2. Или ты должен иметь официальный опыт работы с js-фреймворками

Второй вариант в общем-то отпадает, ибо нельзя взять официальный опыт, если чтобы взять официальный опыт, надо иметь официальный опыт. Попал во фрактал. Значит интересует первый вариант. Это получается надо знать linux-администрирование что ли? Чтобы php на сервере настроить? А как считаете на stepic.org хорошие курсы по linux?
Аноним 02/05/20 Суб 07:04:50 1674144300
Аноним 02/05/20 Суб 07:49:39 1674162301
>>1674144
Разобрался с реплейсом, но все равно не работает
Аноним 02/05/20 Суб 13:24:39 1674300302
>>1674076
Видел, в одном месте работодатель любил ванилла жс без зависимостей, поэтому все писалось кошмарными велосипедами на кучах ифов и конечно же без какого-либо ES6+
Аноним 02/05/20 Суб 14:35:53 1674381303
Аноним 02/05/20 Суб 14:37:50 1674385304
>>1674300
Такое в любом языке встречается. Я хз как сильно надо быть ёбнутым мешком чтобы увидев одного говнокодера составлять мнение вообще о всех пишущих на этом же языке.
Аноним 02/05/20 Суб 16:08:22 1674470305
симфони не создает проэкт,хотя вроде процесс скачки был
Аноним 02/05/20 Суб 18:06:17 1674551306
return this.PNG 3Кб, 278x121
278x121
Почему надо возвращать текущий объект при обращении к нему, как показано на рисунке? Это небольшая часть symfony forms, да и вообще там (в симфони) всегда так, при присваивании данных в объекте
Аноним 02/05/20 Суб 18:14:39 1674553307
>>1674551
Чтобы можно было цепочки писать типая zalupa.foo(123).bar(456);
Аноним 02/05/20 Суб 18:20:54 1674563308
>>1674553
А при создании объекта можно вызвать функцию в одну строку? по типу new CallClass()->create(); или мне все равно придется закинуть new CallClass() в переменную, и обратиться к методу через переменную?
Аноним 02/05/20 Суб 18:23:40 1674572309
Аноним 02/05/20 Суб 18:26:38 1674579310
>>1674572
Емаё, а где в мануале php это можно найти?
Аноним 02/05/20 Суб 18:29:58 1674584311
>>1674572
А все, нашел в основах классов и объектов. балдеж
Аноним 02/05/20 Суб 18:36:42 1674592312
>>1674572
Я больше люблю через статический метод создавать. Получается красивее: $result = ClassName::make(foo, bar)->handle(blabla);
Аноним 02/05/20 Суб 18:41:23 1674594313
>>1674592
Слышал мнение, что нахуй не нужна твоя статика.
Аноним 02/05/20 Суб 18:44:17 1674598314
>>1674592
Красивее делать вот так:
(new class {
....public function call($name) {
........echo $name;
....}
})->call("yo");

>>1674594
Заметь, что у него статический метод это фабрика, которая возвращает какой-то объект, ничего ужасного в этом нет
Аноним 02/05/20 Суб 18:44:33 1674599315
>>1674594
Ты не въехал в это мнение. Можешь сам нахуй пройти.
Аноним 02/05/20 Суб 18:46:15 1674602316
>>1674598
>Красивее делать вот так
Ебать ты вывернул.
Аноним 02/05/20 Суб 21:50:33 1674804317
Screenshot2020-[...].png 7Кб, 369x124
369x124
Накатил psalm, получился какой-то тайпскрипт на минималках, но всё равно какая-то даже иллюзия появилась что мой код будет меньше ошибок срать. На пике например массив классовых констант с определенным интерфейсом. Радует то что сразу подсвечиваются не обработанные null, которые с функций возвращаются, там главное не ставить самую анальную строгость, а то весь код красный будет.
Аноним 03/05/20 Вск 07:42:20 1675166318
Приветствую!
Есть у кого скачанный phpbooktest2(точка)ga?
Аноним 03/05/20 Вск 15:52:44 1675511319
Аноним 03/05/20 Вск 16:08:26 1675520320
Аноним 03/05/20 Вск 16:46:40 1675543321
Аноним 04/05/20 Пнд 10:54:32 1675990322
Аноним 04/05/20 Пнд 12:23:04 1676056323
15882408591750.jpg 41Кб, 512x511
512x511
>Кто-то хочет открыть стартап
Аноним 04/05/20 Пнд 13:07:42 1676083324
>>1675990
у меня тоже перестала работать :о
Аноним 04/05/20 Пнд 13:10:54 1676084325
>>1676083
а нет, отбой. из закладок не открывает, а из треда нормально
Аноним 04/05/20 Пнд 13:12:55 1676086326
изображение.png 410Кб, 500x500
500x500
Аноним 04/05/20 Пнд 13:31:51 1676099327
cacatb.png 671Кб, 808x1108
808x1108
Аноним 04/05/20 Пнд 13:34:14 1676102328
15365995696100.jpg 45Кб, 1280x720
1280x720
Аноним 04/05/20 Пнд 13:36:01 1676103329
Аноним 04/05/20 Пнд 16:07:04 1676302330
>>1656450 (OP)
Сап, аноны.
Сложно ли реализовать плату за услугу онлайн, например тура?
То есть, чтобы пользователь забронировал и оплатил тур онлайн?
Аноним 04/05/20 Пнд 16:45:25 1676373331
>>1676302
Смотря как. Если ты хочешь сам принимать и хранить карточки (платежную информацию) то сложно. Нужно разные сертификации проходить и подобную ебанину. Если просто подключить сторонний сервис (яндекс-деньги, paypal или подобную парашу) то ничего особо сложного.
Аноним 04/05/20 Пнд 17:53:05 1676435332
dbyp16h-b871720[...].jpg 181Кб, 688x931
688x931
«Grammar Nazi». Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой (чтобы было понятно, что не так).

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

как?(
Аноним 04/05/20 Пнд 19:46:35 1676560333
>>1675990
У меня пишет не удалось получить доступ к сайту, пробовал с впна и другого компа - ничего.
Аноним 04/05/20 Пнд 20:00:05 1676593334
>>1676435
>как?
Как хочешь. Это и есть работа программиста.
За говнокод тоже ебать тебя будем.
Аноним 04/05/20 Пнд 21:29:53 1676701335
Аноним 04/05/20 Пнд 21:33:50 1676708336
Аноним 05/05/20 Втр 01:14:35 1676926337
Делаю тестахаб. Такой вопрос. Вот тут ОП предлагает по очереди выводит юзеру каждый вопрос
>/test/NNN/question - страница вопроса теста. Показывается сколько осталось времени, текущий вопрос и дается возможность ответить на него. Можно возвращаться к предыдущим вопросам. Можно не отвечать на вопрос. Контроль времени должен вестись на сервере, чтобы его нельзя было обойти.
Я хочу сделать так: когда юзер начинает тест, то ему приходят сразу все вопросы, а дальше на клиенте джаваскрипт их пагинирует. Так ведь проще, чем каждый раз к серверу через аякс обращаться, чтобы получить следующий вопрос. Или есть какие-то подводные камни?
Аноним 05/05/20 Втр 02:26:28 1676973338
>>1676926
>Я хочу сделать так: когда юзер начинает тест, то ему приходят сразу все вопросы, а дальше на клиенте джаваскрипт их пагинирует. Так ведь проще, чем каждый раз к серверу через аякс обращаться, чтобы получить следующий вопрос. Или есть какие-то подводные камни?

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

ОП так предлагает, потому что так наверное проще с точки зрения вкатывальщика, ну и в целом интереснее даже. На жсе по-человечески для этого лучше сразу какой-то вью подрубать, а то охуеешь на жиквери это писать.
Аноним 05/05/20 Втр 02:44:40 1676977339
>>1676973
>Например, ты хочешь трекать время ответа на каждый вопрос, можно это доверить клиенту и получать массив ответов с затраченным рядом временем на каждый вопрос. С одной стороны кулхацкер может туда что угодно написать, с другой стороны если это не сильно важная инфа в контексте то и хуй с ней.
Да,про это думал. Но мне кажется, что бесполезно трекать время ответа на конкретный вопрос. Важен же общий результат и время выполнения целого теста.
> для этого лучше сразу какой-то вью подрубать
Я так и хотел. Добра за ответ! Пойду пилить.
Аноним 05/05/20 Втр 03:34:59 1676992340
Аноним 05/05/20 Втр 04:53:49 1677001341
Помогите, пожалуйста
<?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 1677012342
>>1677001
$result = fn($i) => $i * $i;

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

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

>Все в общем работает, только ответы везде 0. В чем ошибка?
>$result = $i * $i;
Вот это в цикл убрать надо. Перед echo.
Аноним 05/05/20 Втр 06:47:37 1677024345
>>1677017
Я пробовал, получилось в итоге
11x11=0
Аноним 05/05/20 Втр 06:50:32 1677025346
Аноним 05/05/20 Втр 06:51:23 1677026347
>>1677025
Видимо что-то не углядел, сейчас заново попробую.
Аноним 05/05/20 Втр 06:59:32 1677027348
>>1677025
Все работает, спасибо
Аноним 05/05/20 Втр 11:32:12 1677141349
Почему единица не выводится?

$i = "instructions and recipes";

if (strrpos(" $i ", " instr") == true) {print 1;}
Аноним 05/05/20 Втр 11:36:31 1677147350
>>1677141
Потому что у тебя возвращается 0, что неявно кастится в false. Хуярь явную проверку, и желательно строгую. В твоем случае !== false. Проблема дизайна в старых функциях стандартной либы есть такая.
Аноним 05/05/20 Втр 11:38:51 1677151351
>>1677141
>" $i "
Ну и еще, нахера ты вот так передаешь?
Аноним 05/05/20 Втр 11:42:14 1677159352
>>1677151
Все я понял. 2 пробела нужно было ставить в первом сравнении
Аноним 05/05/20 Втр 11:48:06 1677169353
>>1677159
Звучит как костыль. Покажи.
Аноним 05/05/20 Втр 11:50:00 1677173354
Аноним 05/05/20 Втр 11:52:50 1677177355
>>1677169
Нужно было найти фразы, в которых содержатся определенные участки текста в корнях (в начале слов)

Эта функция

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

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

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

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

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

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

не найдет

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

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

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

т.е. 2 пробела во фразе где мы ищем и один пробел в ищущемся фрагменте
Аноним 05/05/20 Втр 12:09:41 1677199359
>>1677184
Можно разбить на слова еще до проверки. Или использовать регулярки, с их помощью легко проверить начальные фрагменты слов.
Даже если ты этого не сделаешь, все равно правильно херачить через !== false. Вторым пробелом ты избегаешь возврата функции 0, и получаешь 1. 0 неявно кастится в false. 1 и выше неявно кастится в true, и только из-за этого неявного кастинга ты вставляешь два пробела в начало, вместо одного. Но это как был костыль, так и есть.
>==
От нестрогих сравнений нужно дисциплинированно отказаться навсегда кстати. Одна из причин, почему такие ситуации возникают. Сравнивается жопа с пальцем, кое как кастинги происходят, а тут вдруг вместо пальца хуй, и вроде ведь похож, да что-то кастинг срет под себя. Ты понял.
Аноним 05/05/20 Втр 13:31:41 1677315360
Какая CMS самая крутая по вашим ощущениям? Я знаю, вы скажете, У-У-У! все CMS - говно, фреймворки рулят! Но тем не менее, какая CMS самая приемлемая? inb4: KeystoneJS
Аноним 05/05/20 Втр 14:23:50 1677442361
>>1676435
я решил зайти на решение через массив, но как БЛЯТЬ вывести сами "ошибки" значения массива [0] через echo?
https://ideone.com/f9l7uj
Аноним 05/05/20 Втр 15:10:07 1677550362
>>1677442
разобрался, проходите мимо
Аноним 05/05/20 Втр 19:51:04 1678026363
image.png 51Кб, 1113x505
1113x505
Как сосется?
Аноним 05/05/20 Втр 20:03:30 1678050364
>>1678026
Отлично, причмокивая!
Аноним 05/05/20 Втр 22:56:06 1678263365
>>1678026
Пиздишь про опыт, делов то
Аноним 05/05/20 Втр 23:05:26 1678271366
У меня одного Оп-сайт с задачками не открывается?
Аноним 05/05/20 Втр 23:35:52 1678290367
>>1677141

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

>>1678271

Попробуй в ссылке заменить http на https: https://codedokode.github.io/phpbook/
Аноним 05/05/20 Втр 23:44:33 1678301368
Почему обычно используют true === $obj->field вместо $obj->field === true? Это какая-то защита, если $obj окажется null? Как она работает?
Аноним 06/05/20 Срд 01:05:19 1678381369
>>1678301
>Это какая-то защита
Защита от случайного написания = вместо сравнения. В других языках тоже так пишут. Если в левой части что-то типа true, то попытка присвоения сразу же приведет к ошибке. Обратная ситуация могла бы стать трудноуловимым багом.
Аноним 06/05/20 Срд 01:37:38 1678388370
Аноним 06/05/20 Срд 04:14:44 1678405371
>>1678290
>Попробуй в ссылке заменить http на https

Спасибо, заработало
Аноним 06/05/20 Срд 08:19:20 1678442372
>>1678263
Это значение по умолчанию - херочка не указала по невнимательности. Не надо пиздеть.
Аноним 06/05/20 Срд 11:11:29 1678501373
>>1677315
Ну, ребят, ну, скажите! Или шо? Никто с CMS не хочет связываться? Зашквар?
Аноним 06/05/20 Срд 11:27:51 1678512374
>>1678501
Попробуй в /web/ спросить.
Аноним 06/05/20 Срд 11:31:41 1678515375
>>1678512
Объясни положняк этого треда. Тут cms зашкваром считается или нет? Типа cms зашквар и надо уметь в фреймворки?
Аноним 06/05/20 Срд 12:26:07 1678564376
Аноним 06/05/20 Срд 12:40:45 1678574377
>>1678515
Тут такое спрашивать зашкваром считается и теперь тебя негласно в петушиный угол определили.
Ну может ОП тебе чего ответит. Он любит петухов всяких няньчить.
Аноним 06/05/20 Срд 12:45:49 1678585378
>>1678574
>Тут такое спрашивать зашкваром считается и теперь тебя негласно в петушиный угол определили.
Я интересуюсь, а не спрашиваю. Выбирай выражения. И вообще ты кто такой чтобы запрещать мне интересоваться? Базаришь мне тут. Ты не авторитет для меня, ты меня понял? Все, базар окончен.
Аноним 06/05/20 Срд 12:51:27 1678597379
Аноним 06/05/20 Срд 12:53:01 1678600380
>>1678597
>битриксахахах
Что это?
Аноним 06/05/20 Срд 12:56:49 1678607381
>>1678585
>Я интересуюсь
Зашкварные интересы - иди парашу чистить. Пацанам западло с тобой за дело тереть.
Будешь базарить много за CMS - в обиженку переведём.
Аноним 06/05/20 Срд 13:12:39 1678624382
>>1678607
Нахуя дефисы лепишь? Грамотей. И вообще ты не авторитет для меня.
Аноним 06/05/20 Срд 13:24:47 1678637383
Аноним 06/05/20 Срд 13:45:39 1678657384
>>1678600
СMS от 1С. Пилят ее еще с какого-то 1999 года, пользуется спросом за счет интеграции с 1С.
Аноним 06/05/20 Срд 13:51:07 1678663385
>>1678657
>пользуется спросом за счет интеграции с 1С
Не, у них просто бизнес-модель на маркетинг завязана. Они бабло вливают не в разработку, а в продвижение. В результате внутри она - параша, но про неё каждому кабанчику расскажут в презентации - какая она распиздатая.
Кодер на битрксопарашу стоит довольно дорого потому, что она полна страданий и мало кто любит с ней работать.
Аноним 06/05/20 Срд 14:10:02 1678693386
>>1678663
>она полна страданий
Ужас какой, это же пизнес, а зачем вы говорите, что это самая лучшая CMS? Вы что тролли что ли? Вы злодеи? Занимаетесь обманом? Занимаетесь ложью?
Аноним 06/05/20 Срд 14:14:45 1678695387
image.png 17Кб, 627x112
627x112
программачик, ньюфаг в треде. помоги с задачей пикрелейтед

<?php

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

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

Единственное, почему CMS ещё живы - они позволяют навасянить себе сайтик мышкой или нанять школьника для этого за копейки. Такое с фреймворком не прокатит - ему подай отдельный фронтенд где свои фреймворки есть, отдельный бекенд. Т.е. разработка несколько дороже выходит и професиональней.
Аноним 06/05/20 Срд 16:25:52 1678836392
>>1678807
На пике каратист Юрий Кормушин? Который в Военной тайне на Рен-ТВ самооборону, удары показывал?
Аноним 06/05/20 Срд 16:58:25 1678853393
>>1678836
Чел, ты чё? Макаку не узнаешь?
Аноним 06/05/20 Срд 17:04:41 1678860394
Аноним 06/05/20 Срд 17:16:02 1678877395
15632909407660.jpg 494Кб, 1280x960
1280x960
Аноним 06/05/20 Срд 18:48:51 1678959396
>>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 1679159397
>>1656450 (OP)
Аноны, нужна ваша помощь.
Пишу магистерскую диссертацию на тему разработки сайта для турагенства да-да, такое тоже бывает.
Могли бы ответить на вопросы:
1) Можете подсказать CMS, который легок в обучении и есть адекватные уроки по нему? И чтобы уроки были не по готовому шаблону или конструктору, а чтобы объясняли как использовать CMS со своей версткой?
2)По идее можно или нужно реализовать возможность покупки специальных туров, которые предоставляет фирма онлайн. Как это реализовать максимально легко и безопасно, если это возможно? Получается нужна база данных, если да, то что она должна хранить?
3) Допустим все же воспользоваться готовым шаблоном. Можно ли его натянуть на CMS и сделать для него оплату онлайн?
4) Можете дать советы по разработке сайта для турагенства? Как что реализовать, может быть кто-то сталкивался с подобным.

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

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

Ну и совет по теме, на бумаге нарисуй сущности своей предметной области, туры, агенты мб какие-то, я сам хз что там в этих турагенствах происходит. Набросай потом какие у них есть свойства, у тура например есть как минимум цена и перечень стран, входящих в этот тур, даты какие-то туда сюда. Нарисуй потом бизнес процессы. Если не можешь понять что тебе нужно, то позаходи на разные сайты турагенств и сразу увидишь какие у них есть фичи и вот это всё, хз надо или это для работы, сам решишь.
Аноним 07/05/20 Чтв 07:23:08 1679273402
>>1679185
>проеб на проебе и затягивание сроков в 10 раз
Изначальные сроки какие были? В норме на 1 страницу требуется 1-2 дня, от сложности. Может он тебе целый магаз за полдня сверстать взялся? Разумеется, что сильно затянет. Частая нубская тема.
Аноним 07/05/20 Чтв 07:48:10 1679297403
Аноним 07/05/20 Чтв 09:19:15 1679348404
Ананасы, будьте так любезны, перезалейте с рыги офлайн-зеркало обучалки, а то "файл был удалён", а мне на работе аутировать хочется, интернет только на телефоне
Аноним 07/05/20 Чтв 11:32:28 1679431405
>>1679250
>Если твой максимум это laba2.java, то понадобится время, которого может не хватить, в общем тут уж думай сам.
У него в запасе меньше месяца, не думаю, что он вообще может в программирование как таковое. Поэтому да, поддержу только ВП.
Аноним 07/05/20 Чтв 12:00:59 1679468406
Помогите разобраться. Пытаюсь вкатиться в ООП и столкнулся с таким вопросом. Например, хочу создать класс в котором будут базовые элементы - подключение к бд, лог запросов, времени выполнения, другие переменные, доступ к которым хотелось бы иметь из других классов. Как это правильно реализовать (и вообще правильно ли так делать в принципе)?
Аноним 07/05/20 Чтв 12:11:58 1679480407
>>1679468
>Как это правильно реализовать (и вообще правильно ли так делать в принципе)?
Гугли ActiveRecord
Аноним 07/05/20 Чтв 12:14:12 1679484408
15651892687250.jpg 317Кб, 1152x1080
1152x1080
>>1679468
Каждый класс создаётся под одну задачу, а ты целый слой задумал в один положить. Вангую, что у тебя так получится портянка на 100500 строк, с методами по 100500 строк, что является говной во всех смыслах.
Один класс - работа с БД, один - логирование сюда вобщем-то можно и время выполнения положить, один - всё это объединяетвроде как фасад который инициализирует загрузку и передаёт конфигурацию классам.
Глобальные переменный - удоляй. С данным подходом они не нужны никогда не нужны - класс БД получает от фасада данные, логгер тоже из фасада, ну и тд. И работают с ними на своём уровне.
Аноним 07/05/20 Чтв 12:32:49 1679502409
>>1679484
Да я образно все это в один класс объединил. Понятно, что под каждую задачу нужен свой отдельный класс. Вопрос в том, как создать единый экземпляр класса, чтобы он был доступен другим. И как правильно все это связывать
Аноним 07/05/20 Чтв 12:44:40 1679519410
>>1679502
>как создать единый экземпляр класса, чтобы он был доступен другим
Положи классы в контейнер при загрузке. Можно тот же php pimple использовать, с гитхаба, для хранения. Это такой класс для хранения других классов зависимостей, с дополнительными плюшками.
Ну и почитай по инъекциям зависимостей, хотя бы доку с примерами по этому Пимплу - там не сложно.
Аноним 07/05/20 Чтв 14:35:55 1679651411
>>1679348

Можно попробовать скачать отсюда: https://github.com/codedokode/phpbook - выбрать Clone or Download, и нажать Download as ZIP. ZIP распаковать в любую папку и дважды щелкнуть на html-файл для открытия.
Аноним 07/05/20 Чтв 14:42:15 1679661412
>>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 1679706413
>>1679185
>Верстальщик ужасно лажает, проеб на проебе и затягивание сроков в 10 раз. Какую программу ему можно поставить, чтобы она делала скриншоты раз в минуту и отсылала мне?
Зачем какая-то программа? Гит юзайте и все, потом смотришь, если каждые 3 часа нет коммита, значит какие-то проблемы.
Аноним 07/05/20 Чтв 15:17:47 1679723414
>>1679185
>чтобы она делала скриншоты раз в минуту и отсылала мне?
Я б не стал работать в таких условиях - нездоровая вахтёрская хрень у тебя в голове.
Не нравится как он работает - решай вопрос с ним напрямую, а не подглядывай, ебло.
Аноним 07/05/20 Чтв 15:21:58 1679732415
>>1679185
>>1679723
>нездоровая вахтёрская хрень у тебя в голове
this.
Алсо, я не юрист, но мне что-то подсказывает, что поставить такое на личную машину сотрудника - риск быть набутыленным этим же сотрудником в любой момент, когда это вредоносное по заскринит или спиздит любые персональные данные. А машина скорее всего личная сейчас на удаленке.
На рабочую машину разве что можно, твое право, но от такого шизоидного вахтерства уйдет любой адекватный человек сразу же.
Аноним 07/05/20 Чтв 15:24:46 1679738416
>>1679732
>На рабочую машину разве что можно, твое право, но от такого шизоидного вахтерства уйдет любой адекватный человек сразу же.
Что шизоидное вахтерство поддержу, но такая ебала есть очень много где, и много людей вынуждены так работать, особенно те, кто изначально до ковида сидели на удаленке. Реальное есть много компаний, которыми рулят люди из 80-х.
Аноним 07/05/20 Чтв 15:26:36 1679742417
>>1679738
И люди не уходят, ибо смена рабочего места всегда стресс, это потеря заработка на месяц минимум, плюс многие люди понимают, что по скиллам не потянут, а еще на самом деле есть примерно процентов 50 омежных куколдов, которым это норм. Как и постоянные переработки и т.д., они даже не считают это чем-то таким.
Аноним 07/05/20 Чтв 15:38:12 1679754418
>>1679738
Всё это подглядывание по факту - бесполезная хрень. Нужно нанимать человека, чтобы он смотрел. Да не простого вахтёра, а который бы понимал, что там происходит - лишние траты, лишний геморрой. Или самому время тратить, что для двигающегося кабанчика - бред и ненужное занятие.
Блэт, это только извращенец и мог придумать - чтобы людей в напряжении держать и то первое время, а потом привыкают.

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

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

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

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

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

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

>Не верю я, что такие существуют, тем более целыми очередями.
Существуют. А еще существуют люди, которые живут в кризисе с 14 года и просто-напросто панически боятся потерять работу: у них очень узкая специальность, понимаешь? Таких контор всего-то несколько штук на всю Россию, это не ПХП, где потеряв работу, ты за неделю найдешь новую, похуй корона, не корона, ты завтра будешь снова гребсти, даже в условиях анальной оккупации, пока есть интернет, ты свои $5/h заработаешь. Тут немного по-другому.
Аноним 07/05/20 Чтв 16:50:41 1679866426
>>1679847
Работаю на силовиков в ИТ, ничего такого нету, получаю джуном 100к.
мимо бывший продавец пылесосов
Аноним 07/05/20 Чтв 17:42:26 1679921427
насколько сокеты из базовой библиотеки рабочая тема?
Аноним 08/05/20 Птн 02:38:56 1680464428
Представляю вниманию господ PHP Собеседование .
Аноним 08/05/20 Птн 02:39:13 1680465429
Аноним 08/05/20 Птн 09:18:52 1680542430
>>1680465
>Хекслет
Нахуй иди со своим хекслетом.
Аноним 08/05/20 Птн 09:30:53 1680548431
>>1680465
Ты ещё бы Гикбрейнс притащил - те же помои, только вид сбоку.
Аноним 08/05/20 Птн 09:59:31 1680554432
>>1680548
Я прошел там курсы и стал программистом. До этого собирал теплицы и мебель 10 лет
Аноним 08/05/20 Птн 10:34:38 1680565433
>>1680554
А я прошёл там курсы и стал техлидом. До этого подметал улицы и пил бояру.
Аноним 08/05/20 Птн 10:37:44 1680570434
>>1680565
Ты подороже курсы купил, судя по всему.
Аноним 08/05/20 Птн 20:13:46 1681416435
14760329563780.jpg 60Кб, 568x604
568x604
Прошло 5 лет, как я прогаю на php и сегодня я впервые установил и настроил XDebug.
В докере. На удивление, вроде без пердолинга встал и даже работает, я в шоке
Аноним 08/05/20 Птн 20:40:28 1681458436
>>1681416
А что в нём такого? Как-то ставил, но ничего кроме красивого вардампа не использовал.
Есть у него какие-то наиболее полезные фичи, а то ради вардампа влом конфиги пхп ковырять.
Аноним 09/05/20 Суб 01:00:51 1681732437
>>1656450 (OP)
Хех, помню я еще где-то в 7-8 классе сюда пробрался, наполненный уверенностью что скоро стану погромистом и буду загребать бабло лопатой. Прошел двачерский учебник похоже что он совсем не изменился с того времени, после чего меня угораздило посмотреть на настоящий php код какого-то сайта, я охуел, обосрался и больше в программирование не возвращался, при всем при этом поступил в айти шарагу и думал что когда-то начну изучать прогерство, лол. 6 лет выходит прошло, а ощущение что даже шапка почти не изменилась. Шарагу уже заканчиваю, через неделю сдача диплома, одногруппники уже миддлы, а я 4 года занимался хуй пойми чем и так и не начал ничего изучать. Подумал я на днях что не очень то хорошо будет всю жизнь мешки грузить, а с моим дипломом особо других вариантов нету, буду начинать заново походу, пожелайте удачи долбоебу, земля пухом.
Аноним 09/05/20 Суб 01:13:30 1681736438
Аноним 09/05/20 Суб 02:29:24 1681763439
D984734071200.jpg 84Кб, 1200x801
1200x801
>>1681736
>Вы в голове что ли бек дебажите?
var_dump, для эстетов vardumper
Аноним 09/05/20 Суб 09:11:23 1681826440
>>1681736
Ну в редких случаях пользуюсь - когда странное поведение присутствует.
Когда сам чёто пишу - вообще не приходится пользоваться. Оно либо ошибку синтаксиса выдаст, либо работает сразу.

Сейчас на каждый пук бросается исключение и стектрейс выводится. Толку от вардампа?
Аноним 09/05/20 Суб 13:30:16 1681968441
>>1681732
Если до сих пор не вкатился, скорей всего тебе это и не надо, что за двухбитное мышление - или программист сверхразум 300к\наносек попивающий смузи в офисе или говночист и обслуживатель, видимо поэтому толпы зумеров и идут в ит - методички не поменялись, в свое время бумерам вдалбивали мысль стать офисными работниками всех мастей.
Аноним 09/05/20 Суб 13:42:52 1681990442
>>1680465
Включил на пять секунд, и уже услышал "не ебу" "блять"
Аноним 09/05/20 Суб 14:14:07 1682046443
задам тупой вопрос,но все же.
для joomla нужно изучит БД,жс,пхп?
Аноним 09/05/20 Суб 14:28:49 1682080444
>>1682046
Смотря на каком уровне работать собираешься. Если писать под неё и поддерживать, то надо учить и пхп, и жс, и саму архитектуру жумлы. Если просто сайтики делать из того, что есть, не не надо - это ж CMS, тут мышкой можно. Правда таких мышевозов - по 30 школьников на копеечный заказ.
Аноним 09/05/20 Суб 14:41:51 1682094445
>>1682080
мне нужна регистрация,личный кабинет для каждого юзера в котором нужно совершить действие(думаю придеться допилить).из коробки там есть простой конструктор,я смотрел темы-все они перегруженное говно
мож друпал?
Аноним 09/05/20 Суб 14:43:25 1682098446
>>1682094
но что мне подсказывает,что придется дрочиться с фреймворками
Аноним 09/05/20 Суб 14:52:35 1682105447
>>1682098
Если какой-то уникальный функционал делать собрался, то придётся. CMSки хорошо идут только под определённые задачи и никак под оригинальные.
Аноним 09/05/20 Суб 14:59:36 1682109448
>>1682105
мне импонирует,что в ЦМС не так много дрочева с фронтом,а я полный ноль в этом,пхп я хоть имею представление о языке.
мне всего то надо пару блоков для описания и картинки,вверху пару менюшек и кнопка авторизации и регистрации.
все шаблоны в магазине для меня избыточны,но мож я хреново искал
Аноним 09/05/20 Суб 15:05:28 1682115449
>>1682109
Найди образец в сети и закажи его верстале. Делов-то.
Аноним 09/05/20 Суб 15:06:12 1682116450
Аноним 09/05/20 Суб 15:12:35 1682121451
>>1682116
От сложности зависит же - чего закажешь.

Пчел, если тебе надо для дела и побыстрее, то учить всякую срань - не вариант вообще. Либо сразу садишься и васянишь - лишь бы работало, либо нанимаешь человека. Третьего не дано.
Аноним 09/05/20 Суб 16:31:31 1682193452
>>1681458
Дебаггер позволяет гораздо быстрее отлаживать.
Тебе не надо писать все эти вардампы, логи на каждый пук.
Ты просто ставишь точку останова, запускаешь код и тут же видишь все состояние программы реалтайм.
Особенно полезно, когда тебе надо посмотреть потроха какого-то объекта, куда без смазки так просто не залезть.
Аноним 09/05/20 Суб 16:43:54 1682205453
>>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 1682216454
>>1682205
> прогал 2 часа, написал 50 классов, впервые запустил проект, охуел от того, что все идеально работает без каких-либо ошибок.
Жиза. Постоянно себе пеняю за то, что сперва много пишу и только потом проверяю. При каждом запуске очко сжимается в ожидании часов отладки, но как-то жидко проносит.

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

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

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

>>1677315

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

>>1676926

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

>>1677442

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

Аноним 09/05/20 Суб 18:21:43 1682276460
>>1676435

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

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

>>1673544

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

>>1673426

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

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

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

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

Буду очень рад вашей помощи, советам и подсказкам.
Аноним 10/05/20 Вск 23:24:31 1683622467
>>1681416
Серго, ты? Нашел уже свой секуре контроллер или тебя таки пидорнули?
Аноним 11/05/20 Пнд 05:45:43 1683705468
11.jpg 145Кб, 1042x848
1042x848
В чем ошибка?
Аноним 11/05/20 Пнд 07:03:52 1683716469
Аноним 11/05/20 Пнд 14:53:18 1684001470
в чем разница между симфони и ларавелу,кроме того,что 2 на основе 1?
с виду симфони какой то более сложный,конфиги и пр...
Аноним 11/05/20 Пнд 15:28:38 1684015471
>>1684001
Какие там основы, заебали уже. Ларавель сам по себе. От симфони только http foundation использует вместо psr 7 15
Аноним 11/05/20 Пнд 15:42:43 1684022472
>>1684001
Конвеншион овер конфигурэйшион - это ларавель, но ты должен придерживаться правил, что в какой папочке должно находиться. Симфони - все настраевается, но настроек охулиард и легко поломать: у тебя может падать сервис потому что зависимость через зависимость через зависимость через зависимость отсутствует или не настроена и хер поймешь.
Аноним 11/05/20 Пнд 16:42:05 1684079473
Господа, подскажите как правильно реализовывать проверку прав доступа RBAC?
Есть у меня объект user, у него есть роли и разрешения. И допустим я хочу что бы кнопка "загрузить" была доступна только пользователю с ролью "admin". Дайте инфы или код - как принято делать такие вещи правильно и опрятно.
А то у меня естественно мозгов на большее чем допустим такое в контроллере -
if(! isset( user->permission->download)){
//доступ к кнопочке запрещен
return/редирект / и т.п.
}

не хватает

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

Короче годы прошли в битвах с прокрастинацией, инертностью и зоной комфорта. И не смотря на то что я таки что то научился пилить, считаю что я пример как раз тех вечно-вкатывающихся.
Аноны , все таки сосредоточьте ваши усилия на дисциплине и целеустремленности.
И дайте совет как мне поступить, что делать? Это с учетом того что увольняться сейчас точно не хочу, а времени свободного на работе много.
Фрилансить? Удаленку для джуна типа меня искать? Или вкатываться в какое то сообщество где что то пилят, и где код-ревью сделают, чем то помогут? Такие вообще существуют?
Аноним 11/05/20 Пнд 17:28:46 1684167475
>>1684134
Да потерпи еще лет нцать, жизнь не такая долгая штука, как кажется на первый взгляд.
Аноним 11/05/20 Пнд 19:00:31 1684270476
>>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 1684293477
>>1684167
Тут ты прав. Нужно выползать из зоны комфорта. А то сейчас у меня прогинг - хобби просто, ответственности никакой.

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

Зона комфорта короче.
Пизда ей суке.
Аноним 12/05/20 Втр 07:09:41 1684672478
okrav.png 88Кб, 372x370
372x370
Вопрос по уроку ОП о шаблонах. Там на стадии "Умник" есть шаблон, в котором какая-то псевдо-управляющая констукция внутри тегов <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 1684699479
Кто-нибудь проектирует тут в yii2. Тут недавно интервью было с SamDark-ом, где он говорил что нельзя писать бизнес логику в моделях наследующихся от ActiveRecord и контроллерах. Где их размещать тогда?
Аноним 12/05/20 Втр 08:06:53 1684701480
>>1684699
>Тут недавно интервью было с SamDark-ом
С пробуждением. Именно из-за того, что приходится явно говорить такие очевидные вещи AR считается антипаттерном уже многие годы. Ну а толстые контроллеры это даже не антипаттерн, а роспись в профнепригодности.
>Где их размещать тогда?
В сервисном слое.
Аноним 12/05/20 Втр 08:45:52 1684722481
Аноним 12/05/20 Втр 09:34:31 1684761482
>>1684699
Такие вопросы у тебя из-за того, что ты получил следствие без причины.
"Модель" в юии это не "модель" из MVC, это просто неудачное название, по факту это интерфейс для работы с записью в базе данных. И для этого юии, собственно, и нужен - для максимально быстрого и удобного протаскивания этого интерфейса работы с записью в базе данных до конечного пользователя. Если это именно то, чем должно заниматься твое приложение, то бинго, юии идеально выполнит твои задачи.

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

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

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

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

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

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

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

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

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

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

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

Аноним 12/05/20 Втр 13:55:14 1684963491
>>1684955
Типа того. Соль генерится случайно, записывается в бд и в последующих проверках используется записаная в бд.
Аноним 12/05/20 Втр 17:15:20 1685316492
>>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 1685319493
>>1684903

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

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

При логине:

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

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

Что в первую очередь надо писать админку или публичную, какие этапы? У гугла чёто ничего толком не нашёл.
Аноним 12/05/20 Втр 20:18:36 1685725495
>>1685489
Тупо ебашь дальше. Тебе просто опыта не хватает. Через полгода будешь смеятся как ты в 5 моделях запутался. Как добъешь проект может быть смысл просмотреть какую-то книгу по ларавелю - тут идея в том чтобы столкнуть твое сложившееся представление о фрейморке с каким-то другим и на конфликтах можно неплохо прокачаться.
Аноним 12/05/20 Втр 20:32:01 1685738496
>>1685725
Ну ок. Обнадёжил.
Буду дальше тащить.
Аноним 12/05/20 Втр 21:38:11 1685827497
анон, кинь ссылку на сайт который ты считаешь красивымне 2ch.hk
Аноним 12/05/20 Втр 21:42:57 1685836498
>>1685827
Щитаю, что такая характеристика неприменима к сайту. Такое максимум лендосу пойдёт, но не функциональному сайту.
Лучший дизай - тот, который не видно. (с)
Аноним 12/05/20 Втр 22:22:38 1685880499
>>1685836
красивый != функциональный?
Аноним 12/05/20 Втр 23:18:25 1685933500
>>1685880
Дизайн не должен отвлекать от функционала. Сам посмотри на наиболее посещаемые ресурсы 2ch - минимализм везде. Разве только с цветами играются.
А вот где наворотов фронтендовских куча, так это посадочные всякие, авторские блогите же лендинги по сути, какие-то тематические сайты. А вот форумы, социалки, админки, прочие сервисы - с минимальным оформлением.
Аноним 13/05/20 Срд 03:38:18 1686009501
>>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 1686048502
>>1685933
ну хуй знает, думаешь если изменили интерфейс 2ча - онлайн упадет?
Аноним 13/05/20 Срд 14:09:55 1686489503
>>1656450 (OP)
В шапке:
> Здесь мы изучаем язык PHP (а также JS/CSS/HTML/SQL)

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

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

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

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

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

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

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


Аноним 13/05/20 Срд 16:24:30 1686774505
>>1686679

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

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

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

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

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

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

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

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

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

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

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

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

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

если конечно я правильно понял то, что ты хочешь сделать
Аноним 13/05/20 Срд 18:57:54 1686991512
а есть замеры,сколько пхп может осилить запросов к базе?
что нибудь простое,там имя,логин,дата
Аноним 13/05/20 Срд 18:59:48 1686992513
>>1686990
я вообще другой анон,просто увидел тему про клонирования,вообще не в курсе такой фичи.
я что то подобное давно слышал в ньюфаге,но там сказали что для этого есть Эрланг
Аноним 13/05/20 Срд 19:43:28 1687064514
>>1686977
>>Это очень странный паттерн
В ноде судя по всему обычное дело. Что бы экономить время на открытие/закрытие коннекта к базе, и что бы не создавать очередей.
В сбалансированном состоянии в соответствии нагрузка/открытые коннекты видимо выигрыш имеет место быть. Нода нужна в сущности для в некоторой степени специфических задач.
Аноним 13/05/20 Срд 19:44:51 1687066515
>>1687064
п.с.
судя по доке коннекты не висят открытые без дела долго. Через какие то секунды они закрываются.
Аноним 13/05/20 Срд 21:59:46 1687198516
>>1686991
А причем тут пхп?
Это к базе вопросы, сколько она может коннектов держать
Аноним 13/05/20 Срд 22:05:47 1687204517
>>1686992
Ну да, rabbitmq на эрланге написан
Аноним 14/05/20 Чтв 05:41:01 1687353518
>>1686977
>В PHP (без пулов), если сделать 20 запросов к серверу
Я имел ввиду работу именно одного скрипта.

>Это очень странный паттерн, я думаю, лучше выполнять запросы по очереди в одном соединении.
Смотря для чего. Представь, что тебе нужно перебрать таблицу на десять миллионов записей. В десять потоков это все выполнится гораздо быстрее.
Аноним 14/05/20 Чтв 11:48:20 1687504519
Чет я затупил с установкой хомстеад для ларавел на 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 1687512520
>>1687204
разговор про чистый эрланг
Аноним 14/05/20 Чтв 11:55:46 1687517521
>>1687504
мне нужно править конфиги в Homestead.yaml
Но я не могу понять куда установилась эта чертова коробка. Где это сраный файл?
Аноним 14/05/20 Чтв 12:42:47 1687565522
>>1687353

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

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

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

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

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

>>1687504

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

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

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

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

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

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

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

Не очень понимаю как это все в кучу работает, и зачем там вагрант, буду читать
Аноним 14/05/20 Чтв 14:44:09 1687750524
>>1687662
нахер тебе вагрант?
Аноним 14/05/20 Чтв 15:36:17 1687819525
>>1687750
это к слову.
Вообще я о ларавел и о хомстед.
До этого просто пробовал развернуть ларавел, как допустим приложуху на слим.
Но чет не разернулось нихуя нормально или развернулось но что то постоянно глючило, я забыл уже.
Тут хоть работает.
Аноним 14/05/20 Чтв 16:47:36 1687940526
Аноним 14/05/20 Чтв 16:50:10 1687949527
>>1687819
у меня на винде все норм работает
Аноним 14/05/20 Чтв 16:53:58 1687954528
>
Аноним 14/05/20 Чтв 16:54:42 1687956529
>Мы должны сконцентрироваться на улучшении поддержки долгоживущей (long-running), асинхронной модели исполнения, ориентированной на микросервисы. Вероятно, не секрет, что одной из главных причин популярности Node.js является его умение очень эффективно обрабатывать огромное количество одновременных подключений, генерирующих относительно лёгкие запросы. Это хорошо соответствует особенностям современных микросервисных архитектур. Есть уже несколько проектов, которые реализуют в PHP аналогичную функциональность, например, ReactPHP и более свежий Swoole.

Но главная проблема в том, что большинство операций ввода-вывода в PHP не поддерживают асинхронное исполнение. Я считаю, нам нужно добавить как можно больше поддержки асинхронного ввода-вывода в различных расширениях и потоках, чтобы расширить круг задач, где имеет смысл применять инструменты типа Swoole. Точнее, нужно предложить авторам расширений механизмы, которые те могли бы использовать для реализации опциональной асинхронности своих расширений/функций, не делая всю работу самостоятельно. Мы уже провели некоторые исследования в этом направлении, и нужно сделать гораздо больше, но я оптимистично настроен. Возможно, для решения этой задачи мы возьмем libuv, и, возможно, перепишем или отрефакторим некоторые части системы PHP-потоков.
Аноним 14/05/20 Чтв 17:16:44 1687996530
Нормально ли отдавать редирект в контроллерах?
Например по ид поста - отдавать редирект в тред, в соответствующем контроллере. Вообще есть ли с ним подводные камни которые стоит знать?
Аноним 15/05/20 Птн 07:53:11 1688711531
>>1687949
Я на винде не смог руками собрать даравел. Поэтому пришлось хомстед ставить.
Аноним 15/05/20 Птн 10:42:42 1688805532
1589528133159.jpg 28Кб, 451x93
451x93
Анон, нужна помощь. Есть скрипт, который срабатывает каждые 5 сек, он добавляет в txt файл, с ограничением в 10 строк, определенный текст из постоянно обновляющегося $item. Но сейчас, он просто дублирует его на все 10 строк. Как сделать условие, чтобы одинаковый текст из $item не дублировался, а добавлялся лишь 1 раз? Код на пикрил
Аноним 15/05/20 Птн 12:10:38 1688849533
Помогите ответить на вопрос:
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 1688859534
>>1688805
Покажи как у тебя происходит запись в $item. Судя по тому что в скрине, ты пытаешься вложить массив под определённым ключём, и если у тебя массив $item добавляет что то новое в конец массива, а не в начало, то будет как у тебя. Варианта решения два:
Первый, в массив $item записывать данные в начало массива, что бы при этом в нём же изменялась нумерация. Второй с помощью for постоянно перебирать массив $item.
Аноним 15/05/20 Птн 14:25:14 1688969535
Наверное немного не по теме вопрос, но все же. А как ютуб отдает видео на клиент? Посмотрел хтмл, и там для видео такой урл "blob:https://рандомный урл". Погуглил, что такое blob, но ясно так и не стало. В чем преимущество такого подхода, а не, например, просто с сервера mp4 отдавать?
Аноним 15/05/20 Птн 20:55:55 1689526536
Извиняюсь за то что в пхп тред пишу. Но тут есть аноны которые в ноде разбираются. Столкнулся с такой странной штукой, которую я не понимаю.
Вот при таком конфиге:

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 1689540537
>>1689526
>Как он тянется?
Через прототип, не?
Аноним 15/05/20 Птн 21:36:47 1689568538
>>1689540
>Через прототип, не?
Ну технически то его можно подтянуть. Но как то странно что фремворк express захардкоден получается на либу passport. И по идее все что меняет объект запроса req должно подключаться в мидлвэйрах.
Может я ошибаюсь конечно. Но мне эта тема мозг вынесла.
Аноним 15/05/20 Птн 21:43:46 1689576539
>>1689568
>фремворк express захардкоден получается на либу passport
Так-то наоборот, это passport зависит от express. Он отдельно никому не сдался без экспресса.

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

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

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

Аноним 15/05/20 Птн 22:39:18 1689670541
>>1689608

Эта сомнительная "техника" называется Monkey-patching. В Руби он рейлс, по моему, тоже такое применялось, когда ты подключаешь одну библиотеку, то она меняет или добавляет что-то в другую. Это плохой подход, так как сильно запутывает восприятие кода и добавляет побочные эффекты.
Аноним 15/05/20 Птн 23:52:00 1689761542
Аноним 17/05/20 Вск 12:20:10 1691404543
>>1688969
Копай в сторону HTTP Live Streaming и его аналогов
Аноним 17/05/20 Вск 22:34:07 1692329544
>>1657272
Не слушай этого >>1667623
Современный PHP - это Laravel и Symfony - в них собраны лучшие практики программирования на этом языке. Laravel по подходам ближе к Ruby on Rails, Symfony к Spring из Java. Берешь почти любой учебник по этим фреймворкам за последние 2-3 года и пролистываешь.
Насчет собесов. Сам искал работу миддлом в апреле в разгар коронавирусной истерии - не было ни одного вопроса по тонкостям ПХП, зато, например, почти везде и много спрашивали по СУБД (оптимизация запросов, индексы, объектно-реляционные СУБД, шардирование таблиц и т.д.). Так что налегать надо на фундаментальные знания в первую очередь, а не на ПХП как таковой.
Аноним 17/05/20 Вск 22:34:50 1692333545
>>1657910
>какие подводные
Искать _продуктовую_ компанию, и всячески избегать аутсорс-шараги.
Аноним 17/05/20 Вск 22:35:29 1692335546
Аноним 18/05/20 Пнд 01:33:45 1692476547
Пацаны, вы реально каждый раз перед именем переменной ставите знак доллара? Это же просто ахуеть до него тянуться
Аноним 18/05/20 Пнд 09:41:00 1692599548
>>1692476
Ты просто пишешь знак, а IDE тебе сразу предлагает все местные переменные в списке. Удобно.
Аноним 18/05/20 Пнд 12:11:26 1692711549
>>1692476
Что у тебя с пальцами? До всех скобочек (круглых, фигурных и квадратных) тянуться можешь, а до доллара, который прямо под уркой нет?
Аноним 18/05/20 Пнд 15:12:05 1692873550
image.png 4Кб, 160x210
160x210
Иногда на новых серверах при вставке в базу появляется ошибка что-то типа "у поля нет значения по умолчанию".

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

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

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

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

Что делать и как выборку сделать?
Аноним 18/05/20 Пнд 17:46:47 1693031551
>>1692873
Используй IS NULL. Опережая твой будущий вопрос IS NOT NULL.
Аноним 18/05/20 Пнд 18:44:54 1693099552
В 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 1693217553
Как должно выглядеть по канону форматирование кода? Все эти скобочки, условия и т.д. А то меня всю жизнь преподы за странный формат доёбывали. Мне нравится как Visual Studio скобочки расставляет сам по себе, а если на лампочку нажать то вообще красоту делает. Оказалось что PHPStorm так не умеет. Да и вообще во всем проигрывает этому поделию от мегакорпорации Microsoft по понятным причинам, но мог хотя бы сразу подсказывать что делает функция, а то приходится сначала выбрать в сплывающем окне непонятную функцию, потом нажимать ctrl+shift+i и выискивать её назначение в комментариях. Охеренная фича была для ньюфага, больше всего спасала с посторонними библиотеками.
Аноним 18/05/20 Пнд 20:42:00 1693224554
>>1692476
Двачую, я циклы for после С-подобных всё еще с первого раза правильно ввести не могу, всегда перед одним из трех $i забуду поставить доллар.
Аноним 19/05/20 Втр 03:58:36 1693430555
>>1693217
Окей, сорри за тупой вопрос, не отвечайте, в глаза ебусь. Посмотрел на первый пост, всё нормально у меня с форматом пока что. И приношу свои извинения PHPStorm, автоформат у него оказывается есть. И что бы я без двачей делал?
Аноним 19/05/20 Втр 16:21:32 1693910556
Появился вопрос, гугл бессилен.
Скачал я с сервера папку с одним шаблоном сайта и это пиздец, но сейчас не об этом внезапно понял, что могу просто поисковиком винды находить код в файлах, а не просто файлы и папки, как обычно. Не так то проста эта функция, как кажется.
Искал я определённый кусок кода и не нашёл, хотя как выяснилось, код этот был. Был он в папке с пхп файлами, тип которых - исходный пхп файл. А вне этой папки были пхп файлы с типом пхп файл и в них можно было найти нужный код.
Что это за исходный пхп файл и что за нюансы с поиском его внутренностей? Это что-то с доступом связанное? Я
Целый рабочий день проебал в том числе из-за этого.
Аноним 19/05/20 Втр 16:54:33 1693950557
>>1693910
Что за шизофазия, блядь? Поставь себе норм ide, git и не еби мозгу с файлами и их содержимым. Поисковик винды для поиска кода, охуеть вообще.
Аноним 19/05/20 Втр 21:48:19 1694259558
Screenshot85.png 17Кб, 511x454
511x454
Screenshot86.png 25Кб, 616x513
616x513
Сап. Такая проблема. Сделал панель, что при нажатии на кнопку выезжает слева на сайте. Хотел сделать как панель профиля пользователя. Но когда вставляю любой код на php (в данном случае на вывод из бд), у меня ломается код панели и кнопки не отображаются. Кнопки просто пропадают. В чем проблема?
Аноним 19/05/20 Втр 22:30:47 1694295559
>>1694259
>В чем проблема?
Как минимум в смешении слоев логики.
Отдели View от общения с бд
Аноним 20/05/20 Срд 00:08:00 1694380560
Сап двоч. Можете посоветовать какую-то статью или объяснить как адекватно и бест практис работать с часовыми поясами в вебе? Например у нас типичный бложик, все даты создания постов я так понял лучше в UTC конвертить перед сохранением? И вопрос как их потом адекватно показывать клиенту. В жсе вроде есть toLocaleTimeString или что-то подобное, то есть браузер дает инфу о текущем часовом поясе клиента. На уровне пхп я так понимаю это сделать невозможно без каких-то хаков вроде проверки локации айпи или кук установленых жсом? И как тогда лучше всё это по дефолту показывать? Или предполагается что если у нас бложек "принадлежит" Москве (так решил клиент или разраб) то по дефолту мы время показываем тоже московское там?
Аноним 20/05/20 Срд 02:08:18 1694450561
15898318632190.webm 8986Кб, 848x432, 00:00:33
848x432
Аноним 20/05/20 Срд 02:15:36 1694452562
Аноним 20/05/20 Срд 04:10:47 1694497563
image.png 70Кб, 1441x531
1441x531
анон, наставь на путь истины

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

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

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

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

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


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

(сразу, работаю в мухосрани за жалкие копейки, поэтому не придерайтесь к тому что не умею, вы за такую зп даже работать не будете)
Аноним 20/05/20 Срд 04:11:32 1694498564
>>1694497
а еще самый зашквар что мне там еще и пробелами приходится отступы набивать.
Аноним 20/05/20 Срд 10:07:48 1694686565
Аноним 20/05/20 Срд 12:08:35 1694878566
Пилю оффтоп-кулстори
нашел баг в телеге с секретными чатами, написал им. Баг пофиксят, а мне 500 евро за находку. Таки дела.
Аноним 20/05/20 Срд 13:39:40 1695024567
>>1694878
Я бы говорил "Нам известна эта бага, мы ее фиксим."
Аноним 20/05/20 Срд 13:46:56 1695036568
>>1695024
В интернетах читал, что они кладут хуй на баг репорты, но мой баг имеет некое отношение к приватности/безопасности. Наверное поэтому так срегагировали
Аноним 20/05/20 Срд 22:18:01 1695607569
Аноним 21/05/20 Чтв 03:21:09 1695893570
Аноним 21/05/20 Чтв 13:58:31 1696212571
>>1694497

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

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


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

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

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

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

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

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

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

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

Все так.
Аноним 22/05/20 Птн 19:00:08 1697906589
>>1697887
Никто не уходит с пыхи на го, как сказал анон выше - на го переписывают логику, к которой есть высокие требования по производительности. Писать онли на го бизнес-логику - это много гемора, там ведь даже нормальной ОРМ нет.
Аноним 22/05/20 Птн 19:21:01 1697934590
>>1697906
С пыхи уходят программисты, а не компании. Легаси говно на пыхе остается конечно, и остается пара додиков на поддержке. Те кто тему с го в компании продавал быстренько перескакивают на него полностью и на пхп болше не пишут ни строчки.
Аноним 22/05/20 Птн 19:50:55 1697980591
image.png 3Кб, 357x81
357x81
Анон который спрашивал за перспективы здесь. Забавная у вас тут атмосфера, ничего не скажешь. Насчет того, почему я сейчас пытаюсь что-то делать на пыхе и задаюсь такими вопросами: к удивлению я последние несколько лет кручусь возле всего этого дерьма, но все еще совсем ничего не понимаю в современном рынке айти. Не понимаю какие существуют стеки и кто чем занимается. Ориентируюсь на существующие вакансии и их описание: выглядит на то, что питон это в основном датасаенс, машинное обучение, нейросети, ИИ и т.д. Я не такой амбициозный и не настолько в себя верю чтобы в это вкатываться, хотя это однозначно самая перспективная на многие года отрасль. Немного знаю Java мне кажется она устарела, хотя могу ошибаться конечно и сишарп, не представляю что на этих языках делают в реальной жизни, вроде бы как годами поддерживают и допиливают всякие мифические проекты. Но самая большая загадка для меня - это яваскрипт. Когда вижу код на яваскрипте мне хочется плакать, самый ебанутый дизайн и синтаксис который только можно представить. Почему-то на яваскрипте делают все что только можно: Front-End, Back-end, десктопные приложения, даже целые операционные системы и многое другое, вроде даже микроконтроллеры на нем программируют. Сайты верстать я в гробу видал, как то пробовал себя в этом, понял что это пиздец какое нудное дело, мешки таскать и то интереснее, ну а всё остальное на яваскрипте писать мне кажется извращением, буду рад если объясните почему это не так. Так вот, потому решил учить пыху. Так я хотя бы на 100% знаю на что подписываюсь - писать до конца жизни бык-енд онлайн-магазинам. Надеюсь что это окажется менее нудным занятием, чем верстка, в противном случае вернусь к сишарпу наверное.
Аноним 22/05/20 Птн 19:55:27 1697987592
>>1697980
Да пиши бек к чему захочешь на пыхе, хоть к шутерам. Но работ много именно на говномагазины, исторически так сложилось.
Аноним 22/05/20 Птн 19:55:54 1697990593
>>1697980
>Java
новое,не всегда лучше.
ну возьми котлин или скалу,это надстройка над жвм
Аноним 22/05/20 Птн 20:02:05 1698000594
>>1697980
>пик
Не забывай что пыхорынок это чаще всего два стула, сидеть в студии 10 человек и на цмсоговне собирать сайты за неделю(зп 500-700 баксов), или в средней-большой компании делать то, что обычно делают на жаве, но походу в своё время только пыхомакакены были. Есть еще прослойка между этими двумя стульями, это сидеть в студии 10 человек, только у вас клиенты не гали с улицы а джоны из Австралии, которым ты пилишь говно на ларавеле уже не за неделю, а хотя бы пару месяцев а то и год, по мне это самый удачный стул. Люблю просто говно на ларке писать, приятное с полезным так сказать
Аноним 22/05/20 Птн 20:04:16 1698007595
>>1698000
еще на рельсах для Сев Америки
Аноним 22/05/20 Птн 20:08:08 1698010596
>>1698000
Современные проекты на пыхе да при знающих тему руках получаются хорошими прям. Ну а легаси оно и в африке легаси, на то время все это было нормой, а расплачиваться иногда приходится сейчас.
Аноним 22/05/20 Птн 20:22:34 1698045597
>>1697934
Опять теплое с мягким путаешь. Я дома пишу вообще на эликсире, но работу с ним не найду, да и не хочу, меня и на пыхе неплохо кормят. Потому что проганье для себя и проганье для компании за деньги - это как бы блять совсем разные вещи. Пыха отлично подходит там, где джава оверхед, и никто с нее не уйдет, язык активно развивается, Ларка - лучший веб-фреймвок на данный момент, придется просто это принять.
Аноним 22/05/20 Птн 20:25:07 1698050598
Аноним 22/05/20 Птн 20:26:14 1698052599
>>1698050
Симфони - это корпоративный уровень для больших проектов с длительной поддержкой аля Спринг на Джаве, не всем он нужен.
Аноним 22/05/20 Птн 20:34:44 1698072600
>>1698000
Был на всех трех видах работ, самый спокойный имхо второй, т.е. продуктовая компания с отлаженных рабочим процессом, скрамами, митингам и всем этим говном. Хоть я щас и зарабатываю немного меньше, чем на аутсорсе, зато больше нет задач, которые надо было сделать вчера, жестких дедлайнов, текучки в команде и просто сильно долбоебистых коллег-говнокодеров, которых никто палкой не гонит, потому что они таски быстрее всех закрывают. Ищите продакт-компани короч.
Аноним 22/05/20 Птн 23:39:12 1698415601
image.png 10Кб, 611x85
611x85
>>1698000
>или в средней-большой компании делать то, что обычно делают на жаве, но походу в своё время только пыхомакакены были
Это как? Типо поддерживать и допиливать фичами существующие сайты?
>Есть еще прослойка между этими двумя стульями, это сидеть в студии 10 человек, только у вас клиенты не гали с улицы а джоны из Австралии, которым ты пилишь говно на ларавеле
Возможно большинство просмотренных мною вакансий - именно такие. Ну или второго типа. Практически везде аутсорс, просят инглиш на высоком уровне, СУБД и ларавел. Symphony только разок видел в требованиях, про html-css-javascript для джуна всегда пишут только что will be a plus. Ну а если на цмсговне собирать то вакансия чаще всего так и зовется - менеджер по работе с wordpress вордпресс-разработчик, я их и не просматривал. Кстати можешь за этот ларавель рассказать? А то похоже в шапке о нем ни слова, а я еще особо не интересовался. Конечно могу нагуглить информацию что это охуенный фреймворк с пиздатыми функциями, но мне кажется что ты можешь рассказать что-то более интересное, даже в одном предложении.
Аноним 23/05/20 Суб 00:17:52 1698446602
>>1697900
Нихуя ты подорвался. Ебать ты меня выкупил, никогда я не работал. Хотя подожди, это ведь ты конч прикован к уебищной работе и кабанчикам с их хотелками. Где родился там и пригодился, да?
Аноним 23/05/20 Суб 00:43:51 1698493603
>>1698446
>прикован к уебищной работе
А, ты ты идейный РНН-бич. Так-то я мог бы и догадаться по твоим высерам-постам. Такую хрень только такие бичи и пишут: про сайтики, про вкат за 3 месяца на одном синтаксисе.
Вангую, что ты даже не программист, а залётное быдло из /б.
Аноним 23/05/20 Суб 01:16:57 1698526604
hqdefault.jpg 17Кб, 480x360
480x360
>>1698493
Нихуя предьявы. Ну тогда испытай меня. Спроси то, что знать может только пхп макака.
Аноним 23/05/20 Суб 01:41:22 1698548605
>>1698526
В гугл каждый бич нынче умеет, а у пхп довольно активное коммьюнити и загуглить проще простого.

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

<?php

error_reporting(-1);

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

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

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

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

>>1699632

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

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

$value = $array[$key];

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

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

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

$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 1700167619
Аноним 24/05/20 Вск 16:47:07 1700197620
>>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 1700212621
>>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 1700248622
>>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 1700261623
>>1688849

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

>>1687996

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

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

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

C инъекцией и неймингом постараюсь разобраться, но сначала хотелось бы с этим решить. Пикрил тоже не работает, сука ((
Аноним 24/05/20 Вск 19:32:18 1700419627
>>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 1700456628
>>1700419
спасибо, братик. я скрафтил какую-то залупу, она вроде пока работает. если все сломается опять, то воспользуюсь твоим кодом я слишком тупой, а он кажется сложным на первый взгляд
дай бог здоровья тебе
Аноним 24/05/20 Вск 20:35:37 1700507629
https://informatics.mccme.ru/mod/book/view.php?id=815
Как это развидеть? До этого все задачи решал в хард моде достаточно быстро и без заглядываний под спойлера, но сейчас уже полчаса втыкаю по сути в готовое решение и понимаю что ничего не понимаю.
Аноним 24/05/20 Вск 22:13:43 1700610630
ОП, начал делать задачу про файлообменник (уже давно, с паузами). Посмотри, пожалуйста, промежуточный вариант.

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

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

А что сейчас?
Аноним 25/05/20 Пнд 13:59:46 1701606632
>>1701418
PHP не для десктопа.
Возьми c#/js
Аноним 25/05/20 Пнд 14:41:05 1701682633
Аноним 25/05/20 Пнд 14:49:27 1701705634
пхп использует одно ядро процессора?
Аноним 25/05/20 Пнд 16:44:23 1701952635
>>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 1702034636
>>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 1702294637
Аноним 25/05/20 Пнд 21:46:23 1702432638
Неужели новичок, дочитав http://codedokode.github.io/phpbook до конца, должен быть в состоянии сделать задачу на список студентов? Выглядит слишком уж сложно.
Аноним 25/05/20 Пнд 22:04:56 1702470639
image.png 137Кб, 1360x768
1360x768
>>1701952
ОПчик ты же опчик?, ты охуенен даже если не опчик, то ты охуенен, на таких людях мир держится. Большое спасибо за развернутый ответ, прочитал я часа 4 назад и с того времени пытаюсь осознать этот алгоритм. Еще вчера с момента когда я задал вопрос я часа три читал за динамическое программирование, рекуррентные функции, множество страниц перерыл насчет конкретно этой задачи и других похожих. Ничего сложнее чем Фибоначчи я тогда так и не понял. Нагуглил в архиве решение, пытался в нем разобраться, не получилось. Заметил что в архиве на любой вопрос об этой задаче нету ответов ни от кого кроме ОПа, понял что 98% треда пропустили её усложненный вариант, сделал так же и перешел к Лиличке, сделал её минут за 10 и пошел спать. После того как увидел твой пост понял, что он окажется зря написанным если забью на эту задачку, начал дальше углубляться во всё это. Поигрался с этим твоим digraph, потом наконец-то перевел код решения из си на пыху, после чего оказалось что если придать переменным осмысленные названия а не $a $b $c $k $m то код легко читается. Забавно, я нашел первый плюс того, что перед переменными в пыхе пишется знак $. Без него нельзя было бы менять названия переменных через автозамену одним кликом. Написал для каждой строчки комментарии, по комментариям заново воссоздал код. Теперь хочу еще раз заново воссоздать код без комментариев с нуля из головы, после чего попробую ввести туда ограниченное количество купюр. Теперь вопрос: конечно код решения методом динамического программирования намного меньше, чем если бы я решал "в лоб - перебором всех возможных комбинаций банкнот". Но неужели это нормально, что например при необходимой для выдачи сумме 350000 рублей, в массив F будет записано 350000 элементов? Еще и не пустых, так как в итоге каждое значение (value) будет отвечать минимальному количеству купюр для ключа, см. пикрил
Аноним 25/05/20 Пнд 22:10:00 1702478640
Хех, еще и для 99.9% элементов этого массива из 350001 элементов значение равно самому большому возможному числу для INT. Вот на что идут государственные деньги!
Аноним 25/05/20 Пнд 22:14:12 1702480641
>>1702470
Анончик, расскажи пожалуйста, что это у тебя за сайт с задачками. Ты выполняешь их все на php, таким образом изучая его? Или именно прокачиваешь знание алгоритмов?
Аноним 25/05/20 Пнд 22:17:51 1702486642
image.png 114Кб, 800x560
800x560
>>1702480
Ты за этот? https://informatics.mccme.ru/mod/book/view.php?id=815
Это ссылка, которую разместил ОП на этой странице http://phpbook.ga/l1/mou-ikkai.html, задачу пикрил видишь сам, она самая первая на этой странице. По ссылке размещено решение усложненного варианта этой задачи, когда номиналы купюр не каноничны и их количество ограничено.
Аноним 25/05/20 Пнд 22:27:11 1702489643
>>1702486
Спасибо <3 пользуясь случаем, также благодарю ОПушку.
Аноним 25/05/20 Пнд 22:55:51 1702516644
Кстати, нужно бы для потомков оставить пример этого алгоритма на пыхе, с комментариями и нормальными названиями переменных, не все си знают. Если бы я на такое наткнулся в архиве, то сэкономил бы несколько часов жизни. Код переведен на пыху не мной, а комментарии я писал для себя и вполне вероятно что они неверны так как я сам в этом коде пока мало понимаю, но это лучше чем ничего. Кстати комментарии немного странные, не обращайте внимания, они близки к псевдокоду и сделаны были для того, чтобы по ним написать нормальный код самому.
Ключевые слова: банкомат сдача рюкзак
Полезное сообщение от ОПа: >>1701952
Сам код: https://ideone.com/FBhunR
Аноним 26/05/20 Втр 00:18:51 1702623645
>>1702432
А ты не тупо читай, а код пиши.
Аноним 26/05/20 Втр 00:54:08 1702645646
>>1702470

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

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

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

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

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

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

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

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



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

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

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

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

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

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

Давно думаю что надо бы подтянуть свое понимание в этих вещах, так как никогда бы не подумал что сначала задать значение для 350001 клеток памяти, после чего проверить для каждой из них по 7 условий окажется менее тяжело ( времязатратность это ведь следствие большой нагрузки? ), чем обычный перебор. Хотя возможно я просто не совсем понимаю что такое этот обычный перебор, но всё равно надо бы в этом подтянуться. Однажды написал калькулятор на мк с памятью 14 кБ, на другом мк с меньшей памятью он уже не работал. Так и не понял что нужно было оптимизировать чтобы уменьшить объем занимаемой памяти. А вообще нужно ли с этими вещами заморачиваться на пхп? Я почему то очень дорожу памятью, лишний раз новую переменную не ввожу. Есть ли в этом вообще смысл?. У банкомата понятное дело что памяти не терабайт, но ведь в случае с пыхой все эти дела будут храниться на сервере.
>>1702649
>Ты только слово "флаг" неправильно использовал. Обычно флагом называют переменнную, которая принимает значения true/false (да/нет).
Да, я знаю, просто ведь писал для себя, не думал что выкладывать буду, так исторически сложилось что мне удобно такое название. На счёт остального, это просто транслитерированный на пхп код с сайта, оптимизировать буду потом.
Аноним 26/05/20 Втр 03:32:19 1702700650
Ох, все таки еще раз заглянул на этот код что я сюда >>1702516 выложил, аж кринжово немножко стало. Надо было бы таки отредактировать комментарии перед тем как на люди выкладывать, так как местами действительно наркомания написана. То что я счетчик флажком назвал это еще херня по сравнению с тем, что я цикл назвал массивом, хех. Да и вообще эти комментарии лепту для понимания алгоритма не привносят, надо было без них кидать.
Аноним 26/05/20 Втр 04:25:52 1702705651
image.png 4Кб, 261x83
261x83
Двойной дабл выпал.
Аноним 26/05/20 Втр 06:32:07 1702721652
Screenshot97.png 5Кб, 459x103
459x103
Screenshot99.png 2Кб, 436x65
436x65
Screenshot100.png 3Кб, 317x66
317x66
Анончики, в чем проблема? Хотел на форму вывести логин, но пишет ошибку.
Аноним 26/05/20 Втр 12:08:14 1702857653
как очистить поле формы?
а то он сохр все,что я вводил
Аноним 26/05/20 Втр 13:59:32 1702981654
>>1702857
Код скинь. Если форма сохранила прошлый твой ввод, значит ты сам подрубил это себе через value
Аноним 26/05/20 Втр 15:35:55 1703173655
>>1702721
Опять логику и шаблон мешаете в кучу
Аноним 26/05/20 Втр 15:47:58 1703196656
>>1657523
>полному нулю
ну наверно почитать как работают базы данных
Аноним 26/05/20 Втр 23:08:19 1703793657
2134214895110.jpg 288Кб, 872x1906
872x1906
Разобрался таки в алгоритме банкоматовском еще вчера ночью, стоило представить на месте его элементов настоящие числа не без помощи дебагера и я понял как и главное почему он работает. Кстати, ты не что-то подобное на пикрил мне советовал порисовать? Рисовал для себя ночью чтобы понять алгоритм, сейчас обнаружил что оно сходит на твое описание:
>граф, где вершины (кружочки) обозначают сумму, а ребра (стрелочки) - добавление купюр

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

фасад:
<?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 1704515663
>>1704514
>Из сервис провайдера
Из сервис контейнера конечно
Аноним 27/05/20 Срд 18:16:59 1704540664
>>1704514
Срань какая то, вроде по инструкции. Но кастомный фасад недоступен по:
use Illuminate\Support\Facades\Custom1;
Аноним 27/05/20 Срд 19:11:10 1704599665
достаточно ли в пхп встроенных фич по сравнению с др ЯП?
Аноним 27/05/20 Срд 19:47:25 1704644666
А что анон может сказать про конструкторы сайтов, типа викс, тильда..?
Аноним 27/05/20 Срд 20:15:01 1704677667
Аноним 27/05/20 Срд 21:34:18 1704755668
А зачем на всяких вк и фейсбуках такая фича: если есть ссылка на другой сайт, то сначала редирект на страницу "вы покидаете фейсбук", а потом уже на саму ссылку? Типа защита от фишинга?
Аноним 27/05/20 Срд 21:34:37 1704756669
>>1704644
1. Появляется новый конструктор сайтов, все начинают кукарекать что программисты больше не нужны.
2. Программистов убирают, приходят бабы Сраки накидывающие блоки.
3. Для того, что бы удовлетворить потребностям клиентов, конструктор начинает обрастать настройками, параметрами, исполняемыми высокоуровневыми скриптами, хуками и тд.
4. Бабы Сраки перестают с ним справляться, их убирают и берут программистов умеющих работать с этим конструктором.
Аноним 27/05/20 Срд 21:57:28 1704789670
>>1704470
А мб ты просто не осилил ООП, СОЛИД и паттерны?
Аноним 27/05/20 Срд 22:17:12 1704824671
>>1704599
Для бекенда достаточно
Аноним 27/05/20 Срд 22:17:36 1704826672
>>1704755
Наверное чтобы скинуть с себя какую-то ответственность, оповестить неуверенного пользователя ПК что дальше они за его безопасность не отвечают и по ссылке может быть фишинг, гуро с детьми или даже, не дай Б-г, критика действий власти.
Аноним 27/05/20 Срд 22:49:17 1704870673
>>1704824
но джава может больше выкрутасов на сервере?
Аноним 27/05/20 Срд 22:59:34 1704893674
>>1704870
Может, но она и дороже в разработке и поддержке
Аноним 28/05/20 Чтв 09:30:55 1705124675
>>1704677
>>1704756
Я как раз с нашей точки зрения и спрашиваю: будет толк пилить там лендосы по-быстренькому (кушать совсем нечего), попутно изучая php? И может ли так получиться что мне, с зачатком мозга, станет там слишком уютно и весь php пойдет на хуй?
Аноним 28/05/20 Чтв 09:36:14 1705128676
>>1705124
Там может быть уютно, если найдешь лохов, которые будут кучу денег тебе платить за якобы "поддержку" этих поделий. Есть такие люди, хитрожопые и неприятные. Ну и да, кодить для этого практически не надо уметь.
Но само по себе это не тема этой доски и треда.
Аноним 28/05/20 Чтв 10:50:01 1705200677
Чет я тупой, нихуя не пойму как работает сервис контейнер в ларавел.
концепцию то я понимаю, но как это в ларе реализованой - нихуя не ясно. В ларакасте как то хуево для меня объясняется.
класс:

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 1705205678
>>1705200
блядь, как то у меня не задалось с ларавелом(
Аноним 28/05/20 Чтв 11:34:10 1705270679
И еще вопрос по контейнеру зависимости, что бы не заграмождать тред - код и вопрос по ссылке.
Странно как то, вроде все норм, а в деталях у меня с контейнером этим какой то треш. В данном случае - если не орпределена в конструкторе инъекция с классом - то у меня фасад App::make() возвращает ошибку.
Я такой боли вообще еще не испытывал, как от ларавел.

https://ideone.com/Hs7hh1
Аноним 28/05/20 Чтв 13:01:23 1705498680
Аноним 28/05/20 Чтв 14:30:57 1705609681
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 1705646682
>>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 1705741683
как браузер понимает пхп код?
Аноним 28/05/20 Чтв 16:19:06 1705774684
>>1705741
Дергает через API google translate, потом с помощью движка V8 код компилируется в машинный и исполняется в браузере.
Аноним 28/05/20 Чтв 16:22:44 1705784685
>>1705741
До браузера пхп код не доходит
Аноним 28/05/20 Чтв 16:35:34 1705810686
>>1705609
Нынче за цп квитанции выдают?
Аноним 28/05/20 Чтв 17:55:15 1705935687
>>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 1705938688
>>1705935
а если нет HTML,а просто echo?
Аноним 28/05/20 Чтв 18:16:50 1705960689
>>1705938

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

Тип содержимого можно задать явно, отдав браузеру заголовок Content-Type. Например, Content-Type: text/plain; charset=utf-8 говорит, что у тебя просто обычный текст без разметки HTML.
Аноним 28/05/20 Чтв 18:59:17 1706010690
Хочу запилить агрегатор каналов в телеге. В качестве клиента MadelineProto, написанный на пхп. Как вам такой алгоритм: гружу новые посты с каналов смотрю сколько просмотров, самый топовый по просмотрам постит агрегатор. Дальше через 15-20 минут чекаю опять последние посты каналов и прирост просмотров, самый топовый пост по приросту просмотров постит агрегатор и так далее. Норм?
Аноним 29/05/20 Птн 12:54:05 1706672691
>>1702646
Без опыта начинал с 25. Свяжись-ка со мной localpost@2ch.hk
Аноним 29/05/20 Птн 15:07:23 1706850692
>>1702646
я в мск без опыта начинал в 2017 на 28к в одной обосранной продуктовой компании, мне тогда было 30

сейчас 180к зарплата, уже в другой конторе естественно.
Аноним 29/05/20 Птн 15:16:58 1706874693
анчоусы, подскажите как работодателю намекнуть на то чтобы он начал ставить меня на норм проекты на нормальном стеке я знаю что они у них есть а не на всякое говно типо битриксов/вордпрессов. имеется в виду фреймворки типо той же ларки или симфони.заебало в говне ковыряться
свалить на другую галеру я не могу, щас в своем зажопье из за вируса с работой пиздец. но не со всеми конечно, знаю например что довольно таки успешная контора к се берет людей всех мастей, на там стек это полностью битрикс
Аноним 29/05/20 Птн 15:48:04 1706906694
>>1706874
>свалить на другую галеру я не могу, щас в своем зажопье из за вируса с работой пиздец
Сам же ответил на свой вопрос
Ищи удаленку на ларе или yii2 если не брезгуешь мертвечиной. Как найдешь - вали
Аноним 29/05/20 Птн 15:55:02 1706910695
симфони на 8 ядрах будет работать быстрее,чем на 2?
Аноним 29/05/20 Птн 16:54:59 1707017696
>>1706910
Смотря что за ядра. Могут быть слабые 8 ядер 2010 года и мощнейшие 2 ядра нового поколения.
Аноним 29/05/20 Птн 17:04:20 1707021697
Аноним 29/05/20 Птн 17:28:17 1707042698
>>1707021
Зависит от приложения также, от архитектуры и режима работы PHP. В режиме умирающего приложения 2 скорее всего будут быстрее. Это все чепуха, не об этом надо думать. Вот сделаешь 10 высоконагруженных проектов, тогда и будешь про оптимизации думать.
Аноним 29/05/20 Птн 17:29:49 1707046699
Аноним 29/05/20 Птн 17:54:36 1707082700
>>1707046
Вот создай приложение, сделай нагрузку на него, и тестируй.
Аноним 29/05/20 Птн 17:55:31 1707085701
>>1707046
Кроме самого PHP, есть еще запросы в базу данных. Обычно это самое узкое место.
Аноним 29/05/20 Птн 18:42:19 1707138702
>>1706910
Запили бенчмарки, че спрашиваешь?
Аноним 29/05/20 Птн 19:19:07 1707165703
>>1706910

На 8 ядрах может параллельно обрабатываться 8 запросов, не мешая друг другу. Но если посещаемость низкая, или вообще на сайт заходишь ты один, то разницы не будет.
Аноним 29/05/20 Птн 20:15:40 1707245704
>>1707165
>На 8 ядрах может параллельно обрабатываться 8 запросов
Не совсем верно, это вообще тема очень заковыристая. Вот если бы это был Эрланг, можно было бы с уверенностью сказать, что все будет скейлиться на все имеющиеся ядра. С PHP такого сказать нельзя. Он работает в разных режимах. И вообще хер знает как он скейлится. Возможно при большой нагрузке много ядер будут мешать, если код не оптимизован для них, ОС будет постоянно переключаться с ядра на ядро, а это затратно по времени.
Аноним 29/05/20 Птн 20:48:59 1707303705
>>1707245
PHP не скейлится. Вообще. Один процесс на ядро, точка. Ни PHP-FPM, никакие режимы этого не меняют. Хочешь обслуживать восемь клиентов одновременно - покупай восемь ядер. Хочешь обслуживать клиентов быстрее - покупай большую герцовку.
Аноним 29/05/20 Птн 21:22:34 1707364706
>>1707303
Так речь про ядра вообще то
Аноним 29/05/20 Птн 21:25:48 1707371707
>>1707303
>Хочешь обслуживать восемь клиентов одновременно - покупай восемь ядер.
А это разве не касается вообще всех языков по понятным причинам?
Аноним 30/05/20 Суб 01:01:45 1707590708
Как правильно название этой хуйни выговаривать чтоб не засмеяли? Пэ ха пэ? Пи эйч пи? достойные вопросы для достойного треда
Аноним 30/05/20 Суб 01:32:37 1707616709
Как авторизоваться ВК через похапэ и сервер? Именно в самом ВК через логин-пароль, чтобы потом можно было парсить авторизованную страницу через файл гет контентс или типа того (нужно добраться до сведений, которые без логина ВК тупо не отображаются)
Аноним 30/05/20 Суб 03:52:57 1707652710
Аноним 30/05/20 Суб 03:53:17 1707653711
Аноним 30/05/20 Суб 15:09:40 1707991712
>>1707590
Меня триггерит от пи эйч пи, что-то на уровне пайтон и ява/яваскрипто
Аноним 30/05/20 Суб 15:12:16 1707994713
Аноним 30/05/20 Суб 15:36:56 1708027714
>>1707245

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

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

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

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

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

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

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

>>1707303

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

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

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

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

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

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

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

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

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

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

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

>как раз прекрасно масштабируется
Еще раз. Ты написал консольное приложение на симфони, запустил его. И в процессе выполнения оно не масштабируется. Никак. Если тебе нужно быстрее, то придется запустить симфони N раз, а еще придумать как распределить нагрузку и как согласовать результаты выполнения вне кода. Понимаешь? ВНЕ твоего кода блядь, потому что в пхп таких инструментов нет. В эрланге есть, в ноде есть, в джаве есть, в го есть, в си шарпе есть, а в пхп нет.
И начинаются танцы с базой, блокировки, очереди, процедуры. И на всех собесах по пхп на сеньора только вопросики: А вы CTE используете? А процедуры писали? А мап редьюс на SQL сбацаете? А с го знакомы? Спросишь их: а пхп? А что пхп? Пхп рожден чтобы html отдавать и умирать, а настоящую работу нужно же где-то делать.
Аноним 30/05/20 Суб 20:08:18 1708427726
Аноним 30/05/20 Суб 21:02:19 1708535727
Анончик, что делать, чтобы прогрессировать? Изучать код крупных опенсорс проектов? Читать книги? Смотреть курсы? Что из этого приоритетнее?
Аноним 30/05/20 Суб 21:27:10 1708559728
>>1708287
Сначала внятно выражаться научись
Аноним 30/05/20 Суб 21:28:16 1708560729
А как копипастить свои высеры итт? Не просто же копировать стену кода из иде.
Сделал задачку из гайда, хочу чтоб обоссали
Аноним 30/05/20 Суб 21:29:50 1708562730
>>1708560
ссылку на гитхаб репу
Аноним 30/05/20 Суб 21:30:36 1708566731
Копипастну под спойлером все же...
Задание из главы про ООП. Хотелось бы сразу понять, что я делаю не так, дабы в будущем не делать хуйни. Погромирование начал изучать сегодня.

<?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 1708672732
>>1708535
Делать больше чем делал вчера. Делать лучше чем делал вчера. Каждый новый день быть лучше во всех чем вчера, хотя бы на чуть чуть.
Аноним 31/05/20 Вск 00:14:40 1708739733
>>1708559
Двачую. Синтаксис php сложнее чем синтаксис русского языка.
Аноним 31/05/20 Вск 00:24:01 1708755734
>>1708566
Чую ты пиздишь, невозможно за день без опыта в программировании до ООП в ОП-гайде дойти. Или ты все задачки что тебе не нравятся пропускал? Давай свой банкомат в хардмоде или хотя бы навигатор продемонстрируй.
Аноним 31/05/20 Вск 02:00:43 1708804735
Насчёт Вектора:
>Потребление кофе или зарплата не являются свойствами так как они вычисляются из других свойств и хранить их не надо.
Это как? Ну ладно, зарплата понимаю что вычисляется из ставки и множителя. Но ведь потребление кофе никак не вычисляется особо, зависит лишь от профессии ( а значит и класса ) сотрудника. Ну ладно, еще зарплата и потребление кофе зависит от того, является ли сотрудник боссом. Но количество отчетов в месяц тоже от этого зависит, так почему бы и их не записать в этот список? Хотя я все еще не понимаю почему бы все это не записать в свойства, после чего множить по всяким факторам.
Аноним 31/05/20 Вск 17:51:57 1709244736
>>1708804

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

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

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

Так как они зависят от профессии, то теоретически можно и их не хранить, можешь попробовать это реализовать.
Аноним 31/05/20 Вск 17:59:57 1709253737
>>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 1709261738
>>1708560

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

>>1708385

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

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

>>1708310

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

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

>>1708287

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

Например, попробуй сделать функцию, которая умеет склонять суммы от 0 до 9 рублей, а потом расширь ее до 99 и 999 рублей.
Аноним 31/05/20 Вск 18:20:39 1709283739
>>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 1709421740
>>1709261
>так как позволяет избежать проблем вроде утечек памяти
Толсто. Пхп это синоним утечки памяти. До седьмой версии демоны вообще не было смысла писать, а после седьмой писать можно, но утечки все равно периодически ебут.

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

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

>И вообще, ты какой-то недадекватный, если тебе не нравится PHP, просто не используй его
Так это не для тебя написано. Ты то совсем конченый, со stateless php и без утечек памяти. Это написано для тех кто пытается вкатиться в эту помойку. Не лезь блядь, она тебя сожрет.
Аноним 31/05/20 Вск 21:01:27 1709431741
>>1709421
> пхп потому что очень легко начать
наверно Цуку надо было на джаве начинать
Аноним 31/05/20 Вск 22:16:57 1709496742
>>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 1709556743
>>1709496
>но это создает проблему устаревания данных
А как кстати разбивать кеш когда очень много серверов с пхп? Понимаю что может быть много разных способов и всё зависит от архитектуры но если можно так сказать некое дефолтное решение c:
Аноним 01/06/20 Пнд 00:03:52 1709560744
>>1709556

Можно использовать распределенный кеш вроде redis, который хорошо масштабируется (разные ключи разносятся на разные сервера).
Аноним 01/06/20 Пнд 00:13:14 1709565745
>>1709560
Если мы через пхп инвалидируем то у редиса по идее есть какая-то единая точка входа, некий сервис который знает где какие ключа валяются?
Аноним 01/06/20 Пнд 01:32:56 1709590746
>>1709244
Большое спасибо за ответ. Сначала не понял, потом поразмыслил над ним, всё осознал. Посмотрел на следующую задачу и понял что если бы я все поля вычислял в методе-конструкторе и классах профессий, то функции для изменения значений были бы намного длиннее и сложнее, а в предложенном тобой варианте необходимо будет просто сделать альтернативные функции вывода.
Аноним 01/06/20 Пнд 01:54:48 1709594747
>>1709283
Спасибо что расписал, ОПчик, отличный вариант, очень похоже на алгоритм поиска пути это он и есть. Я даже задумывался об этом когда делал навигатор, но что-то не зацепился за эту идею, т.к. ты написал в гайде что есть лишь два варианта решения.
Аноним 01/06/20 Пнд 04:17:50 1709638748
>>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 1709720749
>>1709638
на чем тогда писать свой сайт-стартап?
Аноним 01/06/20 Пнд 10:31:18 1709749750
>>1709720
Пиши на чем умеешь, пхп тоже сойдет. Если не взлетит, то все равно похуй, а если взлетит наймешь макак задешево.
Но если собрался зарабатывать на жизнь программированием держись от пхп подальше.
Аноним 01/06/20 Пнд 10:33:31 1709751751
>>1709749
стоит ли после базы городить свой велосипед на голом пхп(допустим простой бложик),или поставить ларавел?
Аноним 01/06/20 Пнд 11:00:46 1709765752
>>1709751
Бля, ну как тут ответить. Нужно и велосипеды городить и с устройством фреймворков ознакомиться.
Я бы выделил три этапа становления пхп программиста:
1) Пишешь как пишется, велосипедишь, набиваешь шишки. Такой код обычно выкидывается, за него потом стыдно.
2) Программируешь на фреймворке. Фреймворк может быть любой, ты просто пишешь код по его доке. В треде мог заметить фразы типа "пишу на ларавель", "симфони для энтерпрайза" вот это оно. Такой код обычно устаревает вместе с фреймворком, как говорится легаси по прибытии.
3) Понимаешь что ты используешь не фремворк, а инструменты, которые он предоставляет. И начинаешь выбирать себе инструменты сам. Не нравится роутинг в симфони? Пожалуйста, используешь более быструю библиотеку. Не нравится актив рекорд? Не вопрос, ставишь доктрину или автомаппер.
Звучит легко, но третий этап самый сложный. Для того чтобы делать осознанный выбор инструментов нужно знать как они работают. А для того чтобы понять что фреймворк это обуза нужно похоронить пару проектов. Ну и всегда есть вариант оказаться в первом пункте. Так что с первого и рекомендую начать.
Аноним 01/06/20 Пнд 11:42:59 1709782753
>>1709765
>Такой код обычно устаревает вместе с фреймворком
Если прямо по доке херачить без задней мысли, то устаревает в момент написания. Почти все фреймы задрочены под здесь и сейчас, а завтра пусть потоп нахуй. Так и делают в 9 из 10 случаев, за возможность так сделать фреймы и берут.
>фреймворк это обуза
Это правда. Хотя большинство на подобное у виска покрутит. Разработчик на фреймворке - рак современно пхп (и не только). И это притом, что еще от старого рака в виде вебмастеров не избавились. В конфе каждого фрейма и дня не проходит, чтобы очередной сениор-фреймворк-девелопер 300к не бзднул незнанием даже банальных вещей в синтаксисе/окружении/вебе/базе, слезно прося ему помочь и прикладывая скрины где все красным по белому, а сверхразуму все равно нихуя не понятно. Потому что пропускают все этапы и сразу к методичке "высрать блог за два копипаста" обращаются. Дешево, сердито, скорбно за профессию. Иногда даже скромные потуги местных в решение оповских задачек кажутся более интеллектуальными, чем эта идиократия на фреймах.

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

>>1709751
Попробуй нагородить небольшой, но качественный(самое важное, если будет не качественно - зря время потратил, вероятно даже с вредом для себя) велик похожий на ларавел и работающий на демке как ларавел (или другой фрейм, похуй). Для меня загадка почему эту простую задачу ныне даже мидлы часто не могут осилить, которые не мало знаний имеют. А можно сделать с виду даже приятнее ларки.
Если сможешь, то вопрос завязки на фрейм для тебя отпадет навсегда. Не выйдет - фрейм в процессе тоже поковырял получается, профит.
Аноним 01/06/20 Пнд 11:49:41 1709783754
какой самый примитивный фреймворк?
Аноним 01/06/20 Пнд 11:53:36 1709785755
>>1709782
> качественный
откуда я узнаю,если в процессе изучения с большой вероятностью я буду смотреть и копипастить чужой код и часто с разным подходом?
Аноним 01/06/20 Пнд 11:59:34 1709788756
>>1709785
Ну конечно никак. Более того статьи и книги, которые ты будешь читать уже устарели. А еще хуже что сам язык отстает на десять лет от мейнстрима. И сообщество соответственно тоже.
Аноним 01/06/20 Пнд 12:05:38 1709792757
>>1709788
а что код регистрации на сайте пхп7 будет отличаться от пхп5 сильно?
Аноним 01/06/20 Пнд 12:19:05 1709813758
>>1709792
Ну во первых код действительно будет отличаться, держать в голове кучу вариантов написания это полная хуйня.
А во вторых разница с кодом времен пятой версии будет в самом подходе к написанию. Я даже в 2014 году слышал: да кто ето такой ваш солид? Про него ниче в доке не написано.
Аноним 01/06/20 Пнд 13:53:06 1709882759
>>1709421
Интересно, почему когда кто-то хает PHP, то обычно выясняется что это node.js/python петух?
Аноним 01/06/20 Пнд 15:21:49 1710009760
>>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 1710022761
>>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 1710023762
>>1709783
Сам php если ты пишешь по заветам ООП
Аноним 01/06/20 Пнд 15:35:18 1710024763
>>1709783

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

>>1709882

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

Кто-то уже выполнил свою задачу на node.js/python и надсмехается над пыхтящим выбравшим PHP недопрограммистом?
Аноним 01/06/20 Пнд 20:42:28 1710404767
>>1710395
Куки свои прокинь из браузера ему.
Аноним 01/06/20 Пнд 20:45:03 1710405768
>>1710404
А можно пожалуйста пример? Или ссылку на доку?
Аноним 01/06/20 Пнд 20:47:07 1710409769
>>1710398
а что,на пхп долго писать бэк?
Аноним 01/06/20 Пнд 21:24:49 1710434770
>>1710409
Бек пишется относительно быстро
Аноним 01/06/20 Пнд 21:34:56 1710443771
>>1710434
>Кто-то уже выполнил свою задачу на node.js/python
тгда к чему это?
Аноним 01/06/20 Пнд 21:46:03 1710458772
>>1710443
Я другой анон пыхер
Аноним 01/06/20 Пнд 22:06:50 1710478773
Аноним 01/06/20 Пнд 22:12:46 1710483774
>>1710405
Куки - просто строки ключ-значение. Вот смотри:

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

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

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


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

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

Как мне при помощи php или php+js зашифровать его url, чтобы хитрый юзер или парсер, не выкупил, что я пирачу по лайту?
Аноним 01/06/20 Пнд 22:42:08 1710509780
>>1710491
если я не вижу как пишут регистрацию,я не никогда не напишу ее сам
Аноним 01/06/20 Пнд 23:11:49 1710531781
>>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 1710533782
>>1710503
Проксируй через свой сервер. Делай запрос к своему серверу, который будет делать запрос на удаленный.
Аноним 01/06/20 Пнд 23:47:11 1710551783
Рубрика "ньюфажные вопросы". Решил в кои то веки разбить свой код на несколько файлов, чтобы было легче ориентироваться. Моим удивлением стало что пыхошторм не может его скомпилировать, просит какой-то PhpUnit. Загуглил, таких же ньюфажных вопросов как мой не нашел, а значит я что-то делаю не так. Я эти файлы создавал как New - Php File, надо было по-другому как-то? Мб как классы?
Аноним 01/06/20 Пнд 23:54:35 1710556784
>>1710551
>скомпилировать
Ну ты явно какой-то хуйней занимаешься. Сделай скрины или расскажи как ты код свой разбивал.
Аноним 01/06/20 Пнд 23:57:39 1710558785
Capture.PNG 30Кб, 1011x308
1011x308
Capture1.PNG 2Кб, 1695x17
1695x17
>>1710483
Ну вот например, куда тут вставлять эти куки? Я так понимаю вот эта ответственна за 18+? И хватит ли только key - value или всю инфу запихивать?
Аноним 02/06/20 Втр 00:41:17 1710580786
>>1710509

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

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

Про куки и про фреймворки урока нет, но по остальным темам кое-что есть тут: https://github.com/codedokode/pasta/
Аноним 02/06/20 Втр 00:43:05 1710582787
Аноним 02/06/20 Втр 00:47:30 1710586788
>>1710582
В твоем примере все в одном файле. Напиши как ты делил код.
Аноним 02/06/20 Втр 00:49:52 1710588789
>>1710558
>>1710483
И вообще, нахуй мне setcookie() если я курвом парсю чужой сайт?!
Аноним 02/06/20 Втр 00:52:32 1710592790
>>1710586
Там комментарии есть. А вообще, что-то почитал в интернетах на эту тему, похоже мне еще рано делить код для обосраной задачки по основам основ ООП. Но с другой стороны интересно, почему это у анона вышло, а у меня нет.
Аноним 02/06/20 Втр 00:55:16 1710596791
>>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 1710599792
>>1710551
Гугли php autoload, psr-4, composer (в последнем смотришь автолоадер по psr-4, если хочешь).
В один файл тоже может сработать при, но я что-то не вижу, что бы ты код показал, а мы тут не телепаты.
Аноним 02/06/20 Втр 01:00:38 1710600793
>>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 1710603794
Аноним 02/06/20 Втр 01:28:50 1710609795
>>1710596
>Ты придираешься к мелочам, называть редис БД или нет.
Но это я назвал редис бд, а ты доебался, еще и с какого-то хуя решил что я им не пользовался и не знаю доку. А когда я тебе тыкнул в нос цитатой с офф сайта ты пернул жидким и обмяк.

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

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

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

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

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

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

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

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

и т.д. вообщем по современному и чтобы удобно
Аноним 02/06/20 Втр 08:55:50 1710696798
>>1710692
В идеале используй сразу докер. Гайдов как настроить дохуя, за ручку проведут и объяснят.
На втором месте просто линух. Не умеешь, так учись, все равно код на линухе будет работать. Нужно уметь поднять всю эту хуйню там.
На третьем месте шиндовс, но ставить все самому. Нихуя сложного там нет, а разобраться что нужно для запуска кода стоит.
На четвертом месте опен сервер.
На пятом вамп.
Я хуй знаю какие там у тебя проблемы с VSCode, но в пхпшторме ты просто явно указываешь исполняемый файл пхп, и похуй в вампе он или в китайской стене.
Аноним 02/06/20 Втр 08:57:20 1710697799
>>1710533
Я не хочу гнать траф (mp4) через свой сервер - там его очень много. В этом и смысл пиратства =)
Аноним 02/06/20 Втр 08:58:15 1710698800
>>1710588
Чтобы доска поняла, что ты свой 18+ анончик
Аноним 02/06/20 Втр 09:01:09 1710699801
>>1710609
Есть не неумирающий php deamon, о чем спор вообще?
Аноним 02/06/20 Втр 09:02:05 1710700802
>>1710697
Ну через браузер тебе все равно придется обращаться к реальной ссылке. Как бы ты не прятал ссылку в своем JS коде браузер показывает список запросов. Грамотный человек увидит всю хуйню на раз два.
Аноним 02/06/20 Втр 09:03:03 1710701803
Аноним 02/06/20 Втр 09:06:11 1710702804
спалил контору.PNG 122Кб, 3537x569
3537x569
>>1710701
А хули блоб? f12 нажал и увидел откуда что качается
Аноним 02/06/20 Втр 09:09:06 1710704805
>>1710702
Есть же всякие обфускаторы-хуяторы. Что браузер и js понимал ссылку, а юзер нет. Не видел таких?
Аноним 02/06/20 Втр 09:11:17 1710707806
>>1710704
Братан, ты в своем коде со ссылкой можешь делать что угодно. Но скачивать по ней видос будет браузер. А браузер не скрывает откуда он качает видос.
Аноним 02/06/20 Втр 09:21:28 1710708807
Аноним 02/06/20 Втр 09:24:12 1710709808
158876479519369[...].png 542Кб, 900x900
900x900
Аноним 02/06/20 Втр 16:17:39 1710941809
>>1710600
>>1710599
Попробовал провернуть это дело тремя способами. Через require_once и spl_autoload_register получилось, а через композер, хоть и дрочился с ним полтора часа, ничего не вышло. Я вот думаю, не в слешах ли кроется проблема. Просто у меня винда, а во всех autoload файлах, созданных композером, пути идут через прямые слеши, а из __DIR__ слеши обратные ведь получаются. Или я дурачек и нету разницы?
Аноним 02/06/20 Втр 17:04:50 1711001810
>>1710941

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

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

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

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

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

Еще, в ларавеле завезли resource providers, по сути тот самый слой между моделью и жсон, но только вот беда блять: опять вышло какое-то монстроузное говно, которое не обладает полной сериализацией.
Аноним 03/06/20 Срд 01:22:47 1711531816
>>1711001
На удивление на десятый раз заработало. Я просто не зная зачем точь в точь повторил то же, что делал до этого 10 раз. Dump autoload всегда делал 100%, composer.json такой же, как и все предыдущие разы. Чертовщина какая-то, хотя возможно что-то с инициализацией, т.к. первые разы просто начинал с создания composer.json, после чего IDE все остальное подхватывал, потом узнал что для этого есть специальный пункт меню. Хотя предыдущие несколько раз у меня и через этот пункт не выходило.
Аноним 03/06/20 Срд 02:44:48 1711551817
>>1711315
Тебе не приходило в голову получать из базы сразу JSON. Модели нужны для хранения логики приложения, active record нужен для crud операций. Получение json'а это отдельная песня.
03/06/20 Срд 04:43:17 1711593818
Аноним 03/06/20 Срд 08:40:16 1711621819
Аноны, помогите с двумя задачками, не понимаю как их сделать.
Банкомат и лиличка:http://phpbook.ga/l1/mou-ikkai.html
Аноним 03/06/20 Срд 10:35:44 1711648820
Аноним 03/06/20 Срд 10:45:41 1711651821
>>1711551
Госпаде, с кем приходится сидеть в одном треде.
>получать из базы сразу JSON
Существует миллион причин, почему это полная хуйня.
Навскидку: ты лишаешься всех возможностей сортировки, джоинов, индексов, реляционных отношений, короче всего, ради чего используют СУБД.
>active record
В ларавеле нет active record.
Аноним 03/06/20 Срд 11:30:24 1711685822
image.png 3Кб, 325x86
325x86
>>1711651
>В ларавеле нет active record.
ActiveRecord это паттерн, а не название классов в рельсах и ии. Элоквент реализует актив рекорд.
мимо
Аноним 03/06/20 Срд 11:33:35 1711689823
>>1711651
>Существует миллион причин, почему это полная хуйня.
Навскидку: ты лишаешься всех возможностей сортировки, джоинов, индексов, реляционных отношений, короче всего, ради чего используют СУБД.

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

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

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

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

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

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

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

Обычные модели ларавел, во-первых, вообще не обладают способностью к полной конвертации туда-сюда, во-вторых, содержат много лишней хуйни, а в третьих, мне кажется вообще хуевой идеей строить приложение вокруг объектов active record, когда добрым 80% кода вообще похуй оттуда объект высрали и какая СУБД на проекте, им нужны только данные в удобном надёжном ооп-виде.
Аноним 03/06/20 Срд 12:39:32 1711747830
>>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 1711752831
>>1711745
Похоже на два магических метода, которые реализуются как два пальца при желание. Ну ок, не твой вариант.

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

>вообще не обладают способностью к полной конвертации туда-сюда
Чуть дописать то реально.
>содержат много лишней хуйни
Ты ее не сериализуй.
>хуевой идеей строить приложение вокруг объектов active record
Это тебе правильно кажется, и дело даже не в ар.
>нужны только данные в удобном надёжном ооп-виде
Гугли домены.
мимо
Аноним 03/06/20 Срд 12:43:27 1711754832
>>1711747
Вот, спасибо, это мне и нужно.
Нужны сериализуемые и десериализуемые data value объекты.
Аноним 03/06/20 Срд 12:44:32 1711757833
>>1711752
Во, тебе тоже спасибо. Это уже нужная информация.
Аноним 03/06/20 Срд 12:45:12 1711758834
>>1711754
Все равно у меня ощущение что ты занимаешься хуйней. Если ты между червисами данные передаешь через апи, то все эти танцы нахуй не нужны. А если это происходит внутри одного приложения, то совсем пиздец.
Аноним 03/06/20 Срд 13:17:38 1711806835
В lumen можно добавить префикс к именам путей? Тут 'prefix' - для uri, а мне надо для генерации uri по именам, как в symfony (аннотация Route с параметром 'name' над классом-контроллером).
Аноним 03/06/20 Срд 13:41:29 1711831836
>>1711621
Я не ОП а дерьмо, но насчет банкомата ищи в этом треде по ctrl+f, ОП отлично расписал, это если ты уже изи мод сделал по жадному алгоритму. На счет лилички там же все в подсказке написано. Разбиваем на строки регуляркой по \n помню что у меня сразу воспринимать перенос энтером как \n не хотело, не помню что с этим сделал, но нашел ответ за 30 секунд на стакероверфлове. Впрочем можно и просто подобавлять до концов строки \n, это вроде не чит., и разбиваем эти строки на символы по "". Теперь циклом выводим в первой строке через | все первые символы, во второй все вторые и т.д. Сразу оно красиво выглядеть не будет, думаю догадаешься что с этим делать. А на будущее, всё это уже сотню раз обсосано в архиве с шапки, там есть поиск по всем тредам.
Аноним 03/06/20 Срд 13:54:24 1711844837
>>1711831
Спасибо большое, анон, порылся в архиве и нашел ответы на все свои вопросы
Аноним 03/06/20 Срд 14:06:02 1711849838
что есть прелоад и как его готовить?
Аноним 03/06/20 Срд 16:56:42 1712063839
image.png 188Кб, 410x357
410x357
>>1656450 (OP)
Сап. Помогите с Wordpress(ом). Есть форма. Клиент должен иметь возможность запросить информацию о том, какие есть магазины, рестораны, отели в определенном городе. Получается нужна база данных? Как это реализовать? В Wordpress есть специальные плагины или как это делается? Или нужно это реализовать самостоятельно при помощи mysql? Но нужно обязательно дать возможность владельцу сайта добавлять новые данные в магазин. Хелп
Аноним 03/06/20 Срд 16:58:09 1712065840
image.png 104Кб, 1796x1229
1796x1229
Сап, двач. Даунский вопрос по laravel:

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

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

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

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

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

Чивоооооооо блять?
Аноним 03/06/20 Срд 20:09:46 1712236842
Аноним 03/06/20 Срд 21:24:52 1712347843
image.png 40Кб, 806x408
806x408
image.png 6Кб, 794x96
794x96
Гайс, совсем даунский вопрос наверное, но че за хрень не так в таблице с игрой в кубик с ИИ, пол часа втыкаю и не пойму никак
Аноним 03/06/20 Срд 21:45:13 1712370844
Аноним 03/06/20 Срд 21:49:47 1712379845
>>1712370
>>1712347
В результате у тебя он пытается прочитать echo и нижнюю команду как одно целое
Аноним 03/06/20 Срд 22:10:10 1712399846
Аноним 03/06/20 Срд 22:21:18 1712406847
>>1712399
Анончик, ставь vscode + там плагин phphence и xdebug накатывай - избежишь таких косяков в будущем.
Аноним 03/06/20 Срд 22:30:04 1712408848
Аноним 03/06/20 Срд 22:48:08 1712424849
image.png 129Кб, 375x375
375x375
>>1712063
>>1712070
Аноны, помогите плиз, скажите поподробней, там реально не понятно
Аноним 04/06/20 Чтв 00:24:47 1712490850
Dnm-XC0U8AAiNM5.jpg 30Кб, 975x590
975x590
>>1712063
>>1712424
>Клиент должен иметь возможность запросить информацию о том, какие есть магазины, рестораны, отели в определенном городе. Получается нужна база данных?
Нужна, там эта вся инфа будет храниться. Магазы, рестораны и отели это одна сущность,они относятся к какому-то городу, город тоже сущность.

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

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

Советую тебе потратить время на изучение основ mysql в том числе и не задавать таких идиотских вопросов
Аноним 04/06/20 Чтв 09:20:33 1712641852
Аноним 04/06/20 Чтв 11:49:17 1712715853
Аноним 04/06/20 Чтв 12:00:06 1712719854
Ради интереса, кто-нибудь смог с нуля вкатиться в стабильный заработок, хотя бы 5-10к, благодаря урокам в интернете? Или лучше брать платные курсы?
Аноним 04/06/20 Чтв 12:01:20 1712721855
>>1712719
5-10к это рублей в день или баксов в месяц?)))
Аноним 04/06/20 Чтв 12:01:54 1712722856
>>1712721
Мне хотя бы 10к р, я буду считаться успешных в своём селе
Аноним 04/06/20 Чтв 12:04:53 1712723857
>>1712722

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

<?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 1712790859
image.png 15Кб, 468x303
468x303
Почему я не могу в __clone клонировать те поля, которые определяются в __construct? Как это связано вообще, что с этим делать? Гугл не помогает.
Аноним 04/06/20 Чтв 13:22:35 1712834860
Аноним 04/06/20 Чтв 16:00:50 1713025861
Аноним 04/06/20 Чтв 16:01:29 1713026862
>>1712719
>лучше брать платные курсы
Для тебя лучше платные
Аноним 04/06/20 Чтв 16:07:49 1713032863
можно ли PDO который будет записывать засунуть в функцию,а в параметрах будет переменная,куда передам ч-л из формы?
Аноним 04/06/20 Чтв 17:03:15 1713110864
>>1712719
> брать платные курсы?
а лучше с гарантированным трудоустройством, но такие курсы стоят бешенны бабок, не меньше 100 тыс в месяц. в моем случае - 120
мимо
Аноним 04/06/20 Чтв 17:03:46 1713113865
>>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 1713118866
>>1713113
я хз,у вас спрашиваю
Аноним 04/06/20 Чтв 17:27:28 1713138867
>>1713110
Ты, блядь, ебанулся или оговорился, и хотел сказать "в год", пидорасина?
Аноним 04/06/20 Чтв 18:12:37 1713178868
По какому приницпу работают flash messages в yoba-фреймворках типа symfony? Это "одноразовые" куки или какой-то внеземной дженерик-код, который, допустим обволкавает ответ контроллера по типу middleware?
Аноним 04/06/20 Чтв 18:20:11 1713187869
>>1713178
Если бы я делал флеш месседжы то я бы делал так:
При инициализации проверял есть ли в $_SESSION по какому-то своему ключу флеш сообщения. Если есть то я бы их копировал в глобальный объект флеш сообщений на уровне пхп, который очистится после завершения запроса, и сразу после копирования удалял бы их из сессии.
Аноним 04/06/20 Чтв 18:33:30 1713201870
>>1712790

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

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

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

Волшебный метод __clone нужно писать только если у тебя в полях объекта хранятся ссылки на другие объекты. clone не создаст копии для этих внутренних объектов (а просто скопирует в клон ссылку на тот же обьъект), и это надо делать вручную.
Аноним 04/06/20 Чтв 18:40:53 1713215871
>>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 1713216872
>>1712063

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

Короче в API всё уже есть, не городите велосипеды.
Аноним 04/06/20 Чтв 19:10:06 1713231876
Аноним 04/06/20 Чтв 19:21:18 1713242877
Аноним 04/06/20 Чтв 19:23:25 1713244878
почему пхп не любят и хейтят,а кодеров на нем называют макаками?
Аноним 04/06/20 Чтв 19:26:33 1713248879
Аноним 04/06/20 Чтв 19:36:45 1713260880
>>1713244
низкий пород вхождения, очень простой, т.к. изначально сам себе шаблонизатор
Аноним 04/06/20 Чтв 19:48:01 1713266881
>>1713260
те на нем пишут только херню тупую?
Аноним 04/06/20 Чтв 20:01:49 1713282882
>>1713266
вебсайты, сервисы. тупая или нет, зависит от идеи и реализации
Аноним 04/06/20 Чтв 20:18:29 1713290883
>>1713244

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

Я вот чета не увидел у тебя рерайтов на https, может в глаза ебуся.
Аноним 04/06/20 Чтв 21:11:39 1713343888
>>1713201
Да я сверху написал что понял уже, прошу прощения за дэбильный вопрос. Запутался в официальной документации, думал что даже на обычные поля идет ссылка, а не копия.
Аноним 04/06/20 Чтв 21:14:04 1713346889
>>1713290
Мне одному кажется что там множество наведенных минусов php - это его достоинства?
Аноним 04/06/20 Чтв 22:36:40 1713437890
>>1713230
Ок, понял.
А почему никто не догадался прикрутить ооп сбоку к вп?
Аноним 05/06/20 Птн 09:04:58 1713704891
Аноним 05/06/20 Птн 09:19:36 1713709892
>>1713306
> На opencart достаточно сменить данные домена и БД в конфиге и все должно работать
и щас так есть. но проблема в том что я как раз до того как на сайт то зайти их настроил, и доступ к базе предоставил, через пма там накатил дамп бд и все ок встало. пма норм пашет, админка тоже, а вот основной сайт почему то мозги ебет. в логах апача ниче нет естессно.
Аноним 05/06/20 Птн 09:54:41 1713723893
>>1713709
Попробуй скачни дефолтный opencart и от него воткни htaccess на время.
Аноним 05/06/20 Птн 12:52:07 1713857894
Товарищи, через какие сервисы вы выводите шекели из яд на карту?

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

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

Не пользуюсь яд с 2016 года и не жалею. Заводи карту сбера, сбер любят везде.
Аноним 05/06/20 Птн 13:50:18 1713896896
На чем пишете в 2020-м? Symfony, Laravel или может ждете Yii3? Как с доходом вообще? Сам выкатился год назад с пхп, вот интересно. Вакансии есть вкусные?
Аноним 05/06/20 Птн 14:52:48 1713918897
Аноним 05/06/20 Птн 15:04:33 1713923898
>>1713896
>Symfony
this
>Как с доходом вообще?
Как везде. Можно за 200к+ найти, можно за гроши вкалывать.
Куда выкатился?
Аноним 05/06/20 Птн 15:42:32 1713968899
>>1713723
не, все норм пашет. хуй знает в чем проблема
Аноним 05/06/20 Птн 15:51:16 1713979900
Аноним 05/06/20 Птн 16:59:12 1714096901
>>1713704
>Наверное потому что избыточно и не нужно.
Если проекты небольшие уровня лендинга, то мб. Но есть же всякие вукомерсы, где ооп всяко лучше, чем горы функций
Аноним 05/06/20 Птн 17:02:32 1714105902
>>1713896
>На чем пишете в 2020-м? Symfony, Laravel или может ждете Yii3?
Laravel в основном, хочу на Symfony прод пописать, но без опыта этого самого симфони не берут пидарасы.
В прошлом писал на Yii2. Могу сказать, что Yii3 ждать не стоит, это мертвый фреймворк.

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

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

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

Как бы, получится, посты лежат в одной таблице, комментарии - в другой. А как их свести вместе?
Аноним 05/06/20 Птн 17:38:50 1714180907
>>1714171
Учи SQL, чтобы не задавать такие вопросы
Аноним 05/06/20 Птн 17:50:14 1714196908
>>1714180
Мой вопрос не о том, как таблицы объединять, а в том, как привязать новое сообщение к уже опубликованному посту, который на странице в виде чистого текста.
При чем тут SQL вообще?
Аноним 05/06/20 Птн 18:00:50 1714205909
>>1714196
Foreign key-ем привязать
Аноним 05/06/20 Птн 19:07:06 1714283910
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 1714307911
>>1714283
При этом куки от сайта высылаются
Аноним 05/06/20 Птн 19:30:02 1714314912
как отправить сообщение от одного юзера(аккаунта)к другому?
Аноним 05/06/20 Птн 19:37:46 1714322913
>>1714283
все ясно, требовало Accept-Encoding: gzip, deflate, br
Аноним 05/06/20 Птн 21:27:00 1714481914
>>1673254
Видимо, ты - это я через год, только я инженегр. Почему вкатиться не можешь? Не зовут на собесы? Или скилы надрочить не можешь? Получается планка входа в пхп не такая уж и низкая как все говорят. И кстати почему не пробуешь вкат на CMS?
Аноним 05/06/20 Птн 22:45:27 1714615915
Аноним 06/06/20 Суб 18:33:47 1715056916
Посоветуйте как мудрее реализовать.

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

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



Аноним 06/06/20 Суб 19:02:38 1715069917
>>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 1715123918
15909673212120.gif 263Кб, 540x810
540x810
Опчик, взглянешь на вектор? https://github.com/kydva/vector
Из недостатков самому сразу приходит в голову то, что при изменении базовых свойств профессии я по сути просто меняю свойства уже существующих работников, а при создании нового работника этой профессии свойства будут предыдущими. Не придумал как это нормально сделать. Еще очень не нравятся функции padLeft и padRight. По всей логике для каждого столбца нужно задавать одинаковое значение отступа, но на практике выходит херня, и пришлось для каждой строчки отступы подбирать.
Также интересно выяснить несколько моментов с константами класса. Не придумал куда их поместить, поместил в Employee, но это плохо, родитель знает о ребенке, нельзя будет полноценно создать новую профессию без добавления новой константы в родителя. Было бы идеально помещать эти константы в сами классы профессий, типо Engineer::ENGINEER, Manager::MANAGER и т.д., я сначала хотел так и сделать, но меня со всех сторон закидало ошибками, уже забыл почему. И можно ли в тайпхинте для функции указать, что её аргументом должна быть константа класса?
Я уверен что ты несомненно найдешь намного больше дерьма и подводных камней в этом коде, и буду очень этому рад. Раньше ничего на проверку не кидал, но думаю что в этом случае важно сразу отучить меня от каких-то вредных привычек и приучить к хорошим в этой парадигме ООП. Алсо, приступать к кошкам-мышкам или к будильнику и гостиннице?
Аноним 06/06/20 Суб 20:34:09 1715158919
Аноны, объясните с какой точки для апача/нгникса начинается корень сайта? Суть вот в чем:
Я на работе пердолюсь с ларавел, там поставил homstead на виртуалке, все работает.
Дома почему то виртуалка не встала, и я развернул на опенсервер.
Опен сервер требует как папку домена - каталог myproject/public;
Я всегда думал что папка домена - это корень сайта, и апач/нгикс не имеет возможности идти ниже. А ту фактически vendor и все барахло мое находится ниже паблик.

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

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

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

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

Во-первых, есть (см ReactPHP), во-вторых, если тебе больше нравится Питон, то просто пиши на нем.
Аноним 07/06/20 Вск 00:14:28 1715334923
>>1714481
>Получается планка входа в пхп не такая уж и низкая как все говорят
Если не из дса, то да, вход не из легких
Аноним 07/06/20 Вск 00:16:42 1715336924
>>1715123
А где тут ООП собственно? классы !== ооп
Аноним 07/06/20 Вск 01:20:26 1715359925
>>1715322
Бля, долбоебы, котрые пишут про эту залупу, вы хоть один проект на этой хуйне видели вообще? Вы блядь еще про корутины в пхп вспомните.
Вся асинхронная залупа на пхп до выхода восьмой версии это просто мысленный эксперимент, подрочить судьбу, посмареть как оно вообще может работать. Это нихуя не продакшен реди блядь.
Аноним 07/06/20 Вск 03:00:16 1715403926
>>1715359
>вы хоть один проект на этой хуйне видели вообще?
В гугле забанили?
Из известных - телеграм бот апи на реактпхп
Аноним 07/06/20 Вск 04:08:55 1715413927
>>1715403
Сразу открываешь issues, а там пацаны внезапно выясняют что Guzzle не асинхронный. И такой хуйни ты глотнешь ведро, причем дырявой ложкой.
В гугле можно что угодно найти. Хоть дрочащих карликов, хоть фото пизды чьей-то мамаши. То что ты у себя дома пишешь для души тоже мало кого ебет.
Ты проект на этой залупе в продакшене видел? Реальный фидбек у тебя есть?
Аноним 07/06/20 Вск 11:40:09 1715479928
>>1715413
Таблетки пил сегодня?
Аноним 07/06/20 Вск 13:17:16 1715531929
какая разница между апачем и nginx?
Аноним 07/06/20 Вск 13:19:49 1715533930
>>1715531
Такая же, как между линуксом и виндой. Совершенно разные вещи, решающие одну задачу.
Аноним 07/06/20 Вск 13:21:51 1715535931
>>1715533
на 2 все работает быстрее?
Аноним 07/06/20 Вск 13:24:34 1715537932
>>1715535
Что на 2? На энжинксе? Да, он шустрее, гораздо. Потому в него так и вцепились сейчас компании. Но у апача тоже 1.5 плюса есть. Тебе эти знания никак не мешают юзать то или иное сейчас.
Аноним 07/06/20 Вск 15:49:48 1715732933
>Casting Variables
как это нормально перевести?
Аноним 07/06/20 Вск 16:12:46 1715747934
<?php
$a = "ivan";
$a = (int)$a;
print($a);
?>
почему 0,типа не верно?
Аноним 07/06/20 Вск 17:18:36 1715826935
У пыха есть такие технологии?

Закачивать файл с одного сервера и сразу отдавать в браузер без выкачки полностью перед отдачей, дабы задержек не было
Аноним 07/06/20 Вск 17:18:51 1715827936
settype это фича,что бы было как в типизированых языках?
Аноним 07/06/20 Вск 18:11:30 1715864937
>>1715413

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

>>1715732

Приведение (изменение) типа переменных. Например, преобразование string в int или обратно.

>>1715747

Потому что ivan это не число.

>>1715826

ReactPHP

>>1715827

Это преобразование типа переменной.
Аноним 07/06/20 Вск 18:17:03 1715868938
>>1715864
>Это преобразование типа переменной.
те это одна из фичей как (int)$x?
Аноним 07/06/20 Вск 18:17:20 1715869939
короче, если вы затупили на задачке с годовыми процентами - не беритесь за php, вы - долбоёбы
Аноним 07/06/20 Вск 18:35:56 1715883940
Парни, нужна ваша помощь. Если есть спецы – подскажите проверенное решение по интеграционному тестированию внешних апи на symfony, guzzle, phpunit. Пробовал php-vcr, для записи реквестов пойдёт, но в самих тестах глючит. Может кто сталкивался? На гитхабе полно всяких guzzle middleware, но они последний раз обновлялись 3-5 лет назад.
Что нужно: в тестах брать реквесты из файла.
Аноним 07/06/20 Вск 18:47:21 1715891941
Аноним 07/06/20 Вск 18:49:07 1715896942
Снимок экрана ([...].png 168Кб, 1366x768
1366x768
не понял,объясните
Аноним 07/06/20 Вск 18:57:26 1715905943
Аноним 07/06/20 Вск 20:05:59 1715979944
какая разница между || и xor?
Аноним 07/06/20 Вск 20:23:26 1716002945
>>1715896
Пиздец, поставь open server, там включи xdebug и накати плагин на свой блокнот. Как ты будешь переменные смотреть с массивами и точки остановки? echo и var_dump каждый раз?
Аноним 07/06/20 Вск 20:24:46 1716003946
Аноним 07/06/20 Вск 20:27:16 1716004947
>>1716003
xdebug включай и вывод переменных и всего в редактор, по нормальному, потом смотри точки остановки.
Аноним 07/06/20 Вск 20:33:29 1716008948
>>1716002
я новичок,и пока не понимаю,зачем?
Аноним 07/06/20 Вск 20:33:57 1716010949
Аноним 07/06/20 Вск 20:34:02 1716011950
>>1716008
Когда скрипты будут сложнее, увидишь зачем.
Аноним 07/06/20 Вск 23:52:42 1716251951
>>1716008
Затем, чтобы не гадать на кофейной гуще.
И вообще ставь phpstorm и не еби мозг
Аноним 08/06/20 Пнд 08:29:30 1716464952
Аноним 08/06/20 Пнд 08:44:55 1716470953
>>1716464
vs code ставь, он не тормозит
Аноним 08/06/20 Пнд 09:31:36 1716489954
>>1716470
а как в вс коде очистить терминал не убивая его?
Аноним 08/06/20 Пнд 09:34:20 1716492955
Снимок экрана ([...].png 236Кб, 1366x768
1366x768
все правильно делаю?
Аноним 08/06/20 Пнд 10:15:21 1716508956
как сделать,чтобы результаты вывода не слипались в одну строку?
Аноним 08/06/20 Пнд 10:15:51 1716509957
>>1716508
$number=1000;
echo (float)$number;
echo (string)$number;
Аноним 08/06/20 Пнд 13:25:23 1716693958
>>1716464
Нормальный комп возьми с ssd
Аноним 08/06/20 Пнд 13:57:40 1716708959
>>1715979

|| - это логическое "или". a || b дает true, если справа или слева выражение равно true, и false в противном случае.

xor - это логическое "исключающее или". a xor b дает true, если с одной стороны true, а с другой false.

Почитай про булевы выражения:

https://www.php.net/manual/ru/language.types.boolean.php
https://www.php.net/manual/ru/language.operators.logical.php

>>1716002

Вообще, пока у него программы из 3 строчек, var_dump хорошо работает.

>>1715896

$$name - это обращение к переменной, имя которой хранится в $name.

>>1716508

добавлять echo "\n"; - это сделает перевод строки.


Аноним 08/06/20 Пнд 13:58:24 1716710960
>>1713979

А, ну да, у вас же сбербанк отменили :^)

Ну тогда только пекойны, валюта будущего...
Аноним 08/06/20 Пнд 14:04:37 1716719961
>>1715979
(1==1) || (2==2) = true
(1==1) xor (2==2) = false

(1==2) || (2==2) = true
(1==2) xor (2==2) = true

(1==2) || (2==1) = false
(1==2) xor (2==1) = false
Аноним 08/06/20 Пнд 14:25:19 1716731962
>>1716708
>добавлять echo "\n"; - это сделает перевод строки.
я сделал PHP_EOL
>>1716708
я это читал.их доки местами слишком сухие,приходиться гуглить
>$$name - это обращение к переменной, имя
это мне еще вчера дошло
Аноним 08/06/20 Пнд 14:28:12 1716732963
Снимок экрана ([...].png 105Кб, 1366x768
1366x768
Аноним 08/06/20 Пнд 16:29:10 1716847964
не понимаю постфикс инкримент и декримент...
Аноним 08/06/20 Пнд 16:39:21 1716870965
Аннотация 2020-[...].png 36Кб, 499x559
499x559
>>1716847
это типа отложенное увеличение и уменьшение?
те сначала переменная не меняется а появляется позже?
Аноним 08/06/20 Пнд 18:14:33 1716949966
>>1716847

Если использовать инкремент в выражении, например:

$a = $b++;
$a = ++$b;

То в одной строчке переменная $a получит старое значение до инкремента, а в другой - уже увеличенное значение. Вот и вся разница.
Аноним 09/06/20 Втр 13:40:55 1717523967
Аноним 09/06/20 Втр 14:11:30 1717552968
>>1715123

> $isBoss = isset($worker[3]) ? true : false;
isset() уже возвращает true/false, потому тернарный оператор не нужен.

> $newDepartment->setEmployee($employee);
Лучше назвать метод addEmployee().

> strlen($string)
Надо использовать mb_strlen, чтобы корректно работало с кирилицей.

При создании профессии ты переопределяешь свойства вроде salary. Но во-первых, это никак не документировано, во-вторых, никак не проверяется. Если бы ты вместо этого сделал в Employee абстрактные методы вроде getBaseSalary(), то эти 2 проблемы были бы решены.

> const ANALYST = Analyst::class;
Можно было не определять эти константы, а сразу использовать в коде Analyst::class.

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

Методы вроде добавить/уволить/найти работника, назначить босса - универсальные, а вот методы вроде cmpForRemoving() относятся к задаче антикризисных мер и делать им в классе Employee нечего.

> $this->salary = ($salary != 0) ? $salary : $this->salary;

Тут можно было просто сделать 3 отдельных метода, и название вроде changeSalary() читалось бы лучше.

> private array $employeesOfDepartment;
Лучше просто $employees.

Конструктор обычно пишут в начале класса, а не в середине.

> getCountOfEmployees
Лучше countEmployees().

Вывод таблицы тоже лучше делать отдельными функциями/классами и не помещать в Company.

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

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

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

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

Надо использовать mb-функции.

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

Лучше использовать названия классов как константы. А так, вариант с Engineer::PROFESSION тоже рабочий.

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

Увы, нет. В других языках для этого есть enum (перечисления, выбор из нескольких опций), а в PHP они пока только есть решения вроде такого: https://stitcher.io/blog/php-enums

Аноним 09/06/20 Втр 14:15:20 1717557969
пишу прогу для if-else
как в переменную запихнуть диапазон чисел от 1 до 5?
Аноним 09/06/20 Втр 14:43:03 1717597970
Снимок экрана ([...].png 105Кб, 1366x768
1366x768
Аноним 09/06/20 Втр 14:44:00 1717600971
Снимок экрана ([...].png 115Кб, 1366x768
1366x768
Аноним 09/06/20 Втр 17:00:10 1717740972
Аноним 09/06/20 Втр 17:01:58 1717742973
>>1717597
>>1717600

Васян, а зачем тебе этот редактор, когда удобнее в самом пхп изучать вот такие основы?

В коесоле запускаешь рнр с ключем -а и пишешь свои ветвления, функции, переменные...
Аноним 09/06/20 Втр 17:24:38 1717754974
>>1717742
Очень удобно код писать.
Ты бы еще на бумаге предложил
Аноним 09/06/20 Втр 17:37:31 1717769975
>>1717742
я так сначала пробывал,удобно только для пары скриптов
Аноним 09/06/20 Втр 17:49:44 1717786976
какая разница между while циклом и for циклом?
Аноним 09/06/20 Втр 18:23:10 1717822977
<script src="otherdomain.ru/s/script.php?y=2020" ></script>
Скажем, я владелец домена otherdomain.ru. Мне необходимо отловить значение параметра "y" и не его основе выдать соответствующую модификацию скрипта.

У меня пока примерно так (я юзаю yii2)
actionScript($y) {
header('Content-Type: application/javascript');
return "alert($y)";
}

Но тут скрипт маленький, а если мне надо выдать js код длинной в 200 строк? Я же задолбаюсь его писать как строку.
Аноним 09/06/20 Втр 18:37:01 1717839978
>>1717822
ps более того, в выдданом скрипте должны быть использованы некоторые констаны из моего сервера, то есть
actionScript($y) {
header('Content-Type: application/javascript');
return "alert($y)".SomeModel::TYPE;
}
Аноним 09/06/20 Втр 18:42:21 1717845979
Аноним 09/06/20 Втр 19:00:43 1717869980
>>1717754
Поясни, что неудобного для новичка? Вот прям по пунктам. Он же основы учит, ему как раз автокомплит на данном этапе не нужен. А так он функцию написал, если ошибку допустил, то увидит сообщение. Будет наука писать код думая, а не просто на клавиши давить.

>>1717769
Ты учишь основы — это не про скрипты. Тем более у тебя интерактивные сейчас сурипты, за каким ты их хуем в вскоде пишешь? Стильно, модно, молодёжно? Тебе сейчас понять синтаксис надо, набить руку набирая некий код. IDE/редактор с подсветкой, когда ты знаешь, что ты пишешь. Ты же сейчас выдумываешь сфер чесуого коня в вакууме.
Аноним 09/06/20 Втр 19:41:21 1717937981
>>1717869
Интерактивный режим удобен, если нужно попробовать буквально пару строк. Иначе начинаются траблы в работе с блоками кода. Нет банальной копипасты, не вынесешь блок кода в функцию + иде подсветит тебе синтаксические ошибки
Аноним 09/06/20 Втр 21:42:03 1718052982
>>1717937
Ну ты видимо не стал себя утруждать прочитать мой пост. Ты описал те моменты, с которыми связаны программисты, а не ученики.
Аноним 09/06/20 Втр 22:40:12 1718116983
>>1718052
Видимо мы о разных нуфагах.
Ученики - это которые не могут из двух букв сложить выражение?
Аноним 09/06/20 Втр 23:29:26 1718156984
Заметил, что телега фильтрует названия волшебных констант, то есть например __DIR__ нельзя написать, получается dir. Она что на пхп написана?
Аноним 10/06/20 Срд 00:15:40 1718183985
>>1718156
__твой текст__ это италик форматтер текста
С маркдауном не работал?
Аноним 10/06/20 Срд 08:12:16 1718405986
Аноним 10/06/20 Срд 15:18:26 1718707987
>>1714105
>До этого чуть меньше на удаленке получал (лара).
Сколько опыт?
Аноним 10/06/20 Срд 16:50:04 1718789988
>>1718707
2 года в офисе, 1 на удаленке
Аноним 10/06/20 Срд 21:29:38 1718932989
laravel
Аноним 10/06/20 Срд 22:05:53 1718960990
Аноним 11/06/20 Чтв 12:25:19 1719230991
Аноним 11/06/20 Чтв 14:59:21 1719394992
Снимок экрана ([...].png 91Кб, 1366x768
1366x768
как достать необходимую строку со всеми потрохами?
Аноним 11/06/20 Чтв 15:05:56 1719411993
Аноним 11/06/20 Чтв 15:11:34 1719426994
>>1719411
там ассоциативный как ,а здесь обычный двумерный
Аноним 11/06/20 Чтв 15:38:31 1719495995
Аноним 11/06/20 Чтв 15:50:22 1719531996
>>1719495
этот способ я знаю-по строке и колонке.
я спрашивал про вывод содержимого строки полностью,например 3 строка где лада с ценами
Аноним 11/06/20 Чтв 15:58:20 1719545997
Аноним 11/06/20 Чтв 15:58:36 1719546998
Аноним 11/06/20 Чтв 16:27:17 1719582999
Аноним 11/06/20 Чтв 16:29:55 17195841000
Снимок экрана ([...].png 197Кб, 1366x768
1366x768
>>1719545
>>1719546
заработало,но как то не очевидный способ.
пример другой
Аноним 11/06/20 Чтв 17:10:09 17196341001
Подскажите в чем ошибка
<?php
$regexp= "/^(\+7\8)\d{10}$/ui";
$subject = '8-911-404-44-11';
preg_replace('/[^+\d]/','',$subject);
if (preg_match ($regexp, $subject)) {
echo 'ваш номер: {$subject}';
} else {
echo "Введите номер ввиде: в начале 8 или +7, потом идут 10 цифр";
}



Аноним 11/06/20 Чтв 17:48:22 17196771002
>>1719584
Это по сути реализация toString() для твоего кода
Так-то там любая херня может быть, превращающая твои данные в строку
Аноним 11/06/20 Чтв 17:49:40 17196791003
>>1719677
надо почекать мне всякие фичи для массивов
Аноним 11/06/20 Чтв 18:34:52 17197151004
>>1719584

В implode нужно указывать разделитель, например implode(', ', $array).

>>1719634

У тебя указано \d{10} - "ровно 10 цифр идут подряд". А в номере между цифрами минусы.

Советую написать выражение вида "ровно 1 цифра, за ней любое число минусов и пробелов", затем взять его в круглые скобки и добавить повторение 10 раз:

(выражение){10}

Круглые скобки нужны, чтобы {10} применялось ко всему выражению, без них оно применяется только к последнему куску выражения.
Аноним 11/06/20 Чтв 18:50:01 17197341005
image.png 24Кб, 994x205
994x205
Сап, двач, вопрос по MVC в Laravel.

У меня есть таблица users, у неё есть таблица orders, ордеров может быть много, у каждого order есть FK users

Нормально ли когда модель User напрямую работает с ордерами? Ну например как тут:
https://pastebin.com/CHNP3yeq

Или модель должна исключительно работать сама с собой?
Аноним 11/06/20 Чтв 19:11:36 17197581006
Снимок экрана ([...].png 160Кб, 1366x768
1366x768
почему облом?
Аноним 11/06/20 Чтв 19:22:59 17197731007
>>1719758
а понял
echo $flowers[1]["Цена"];
Аноним 11/06/20 Чтв 19:35:47 17197821008
>>1719734
>Нормально ли когда модель User напрямую работает с ордерами?
Не нормально. У тебя один класс зачем-то лезет в кишки другого.
Ну и елоквент модель != модель М из MVC
Аноним 11/06/20 Чтв 21:32:45 17198951009
>>1719758
Тебе и другим анонам на винде и ноуте советую накатить Windows Terminal и wsl. Экщпириенс разработки сразу повысится
Аноним 11/06/20 Чтв 22:05:40 17199201010
>>1719782
А где должно быть лучше? В моделях, контроллерах, ещё где-то?
Аноним 12/06/20 Птн 00:36:07 17200231011
>>1719734

Делают классы-сервисы и код помещают в них. Для каждой задачи - свой сервис.
Аноним 12/06/20 Птн 09:07:38 17201291012
>>1716251
>>1716693

Двачую, ссд нужен, у меня комп мощный но на старом харде безбожно лагало, попробовал через китайский ссд с алика - летает, ну плюс ещё лишние плагины можно отключить
Аноним 12/06/20 Птн 09:36:20 17201471013
AnNzs9ffV4s.jpg 21Кб, 360x228
360x228
Аноним 12/06/20 Птн 09:47:14 17201511014
iKeIjABewJ8.jpg 80Кб, 924x400
924x400
>>1719715
Нашел вот такое решение, зачем в этих местах двойное экранирование?
Аноним 12/06/20 Птн 11:31:59 17201971015
>>1720147
ты не правильно запускаешь
Аноним 12/06/20 Птн 15:40:33 17204311016
Снимок экрана ([...].png 157Кб, 1366x768
1366x768
поясните за 16 строку
Аноним 12/06/20 Птн 15:50:15 17204451017
Аноним 12/06/20 Птн 21:21:56 17208211018
В регулярках существует опция "всё кроме букв" или обязательно все в квадратных скобках перечислять?
Аноним 13/06/20 Суб 00:30:52 17210521019
Аноним 13/06/20 Суб 04:00:10 17211221020
>>1719920
Бизнес логика пишется отдельно от контроллеров и моделек бд.
Аноним 13/06/20 Суб 04:01:49 17211231021
>>1720147
Да как вас Земля держит?
Прокинь в path путь до php.exe и запускай через php tvoi_php_file.php
Аноним 13/06/20 Суб 12:22:17 17213081022
>>1721123
Я та5к и делал как бы
Аноним 13/06/20 Суб 14:45:26 17213981023
>>1721308
ты php.exe дергаешь, когда надо просто php и всё получится
Аноним 13/06/20 Суб 15:57:39 17214731024
>>1721398
Ок, заработало, посоветуешь инфу чтобы обмазаться консолью с пыхой?
Аноним 13/06/20 Суб 18:29:25 17216371025
Аноним 13/06/20 Суб 18:56:18 17216861026
array_column() только для многомерных массивов и чтобы внутри были все одинаковые ключи,чтобы делать выборку массива по ключам?
Аноним 13/06/20 Суб 20:00:07 17217891027
Снимок экрана ([...].png 101Кб, 1366x768
1366x768
array_slice(array, start, length, preserve)
где start это номер индекса или считается как просто номер элемента (1 2 3 и тд) после которого идет срез?
Аноним 13/06/20 Суб 22:04:53 17219301028
Посмотрите пожалуйста задачку про числа прописью
https://ideone.com/Pll6kM
Ещё не доделал, но хотел бы спросить движусь ли я в правильном направлении
Аноним 14/06/20 Вск 01:17:40 17220871029
>>1717552
Спасибо большое что посмотрел. Понял-принял. Сейчас наконец-то появилось немного свободного времени, сделал гостиницу, пол дня пытаюсь запилить нормальный алгоритм для вот этой функции:
>то же самое, но при отсутствии одного подходящего номера для Гостей разрешается заселить их в несколько номеров, опять же, начиная с самых дешевых. Например, приехало 3 Гостя, но все 3-местные номера заняты и мы выделяем 2 2-местных, или 3 1-местных или 1-местный + 2-местный.
Пока что сделал по-жадному, к примеру: группа из 6 гостей, есть номер на четырех и два номера на трех человек, она сначала всегда выберет номер на четырех, не смотря на стоимость, после чего для двух оставшихся гостей уже выберет номер на трех. Что-то уже исчерпал мысли как это нормально реализировать, по идее это поиск пути на графе? Если так, то просто все варианты перебирать нельзя, так как там огромнейшие факториалы будут выходить при большом количестве комнат.
А на счет других функций, вроде бы все хорошо, буду рад если глянешь https://github.com/kydva/HotelOOP
Все функции я протестировал в самых разных ситуациях дебаггером, но к сожалению почти ничего вывести вардампами чтобы показать нельзя, так как Комнаты в истории имеют ссылки на Гостей, которые в них побывали, а Гости в истории имеют ссылки на Комнаты, в которых они были. Выходит бесконечная рекурсия. Насколько я понимаю, программу это грузить не должно, так как это обычные ссылки, но вардампы и прочее пытаются максимально вывести все ветки. Алсо, начитался про хлеб, решил классы особо не плодить.
Аноним 14/06/20 Вск 14:40:05 17224081030
Аноним 14/06/20 Вск 14:49:52 17224191031
image.png 42Кб, 615x412
615x412
Анчоусы, запрашиваю помощи.
Не срабатывает часть условия.

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

В чем дело?
Аноним 14/06/20 Вск 16:09:48 17225891032
Аноним 14/06/20 Вск 16:22:19 17226061033
>>1722419
https://www.php.net/manual/ru/pdostatement.bindparam.php
Посмотри как оно работает. Чтобы не заходил - надо писать не символ вопроса, а привязать к псевдопеременной - например, :colour. А в bindparam указываешь bindParam(':colour', $value)
Аноним 14/06/20 Вск 16:54:34 17226641034
>>1722408

указывает ПОСЛЕ какого элемента идет срез?
Аноним 14/06/20 Вск 17:52:47 17227741035
Снимок экрана ([...].png 128Кб, 1366x768
1366x768
почему не работает разбивка?
Аноним 14/06/20 Вск 18:51:23 17228571036
>>1722664

Элементы в масссиве содержат ключ и значение и упорядочены, то есть массив "помнит", в каком порядке в него вставлялись значения. Элементы в массиве хранятся в порядке вставки, и например, можно сделать массив, где ключи идут не подряд: $x = [1 => 100, 0 => 200];

start это номер элемента, начиная с 0. То есть если start = 0, то берутся элементы, начиная с самого первого.
Аноним 14/06/20 Вск 19:15:30 17228811037
Снимок экрана ([...].png 108Кб, 1366x768
1366x768
вот мой успех!
Аноним 14/06/20 Вск 20:21:49 17229341038
>>1722774

Результат вызова array_chunk надо сохранить в переменную.
Аноним 14/06/20 Вск 22:00:02 17230381039
>>1722419
Добавь кавычки к вопросам, отличные от тех, где они находятся. в этом случае одинарные
Аноним 15/06/20 Пнд 01:02:38 17231421040
Друзья, помогите с вопросами:

1. Dependency Injection - это все лишь о том, что в функцию-конструктор передается объект сервиса?
2. Dependency Injection Container - это просто класс, который в себе имеет массив, в который через сетеры/гетеры можно записывать сервисы?
3. Контейнер нужен для того, чтобы в провайдеры просто передавать несколько зависимостей, так?

Может есть какой нибудь хороший ресурс, или книга, в которой это хорошо разжевано. Потому что я сколько читаю про эти DI, но в итоге только путаюсь.
Аноним 15/06/20 Пнд 09:02:34 17232571041
Аноним 15/06/20 Пнд 14:33:52 17236541042
Ставить линупс?
Аноним 15/06/20 Пнд 16:11:49 17237821043
Аноним 15/06/20 Пнд 16:22:03 17238021044
return
каково применение,только простым языком
Аноним 15/06/20 Пнд 16:30:30 17238091045
>>1723802
Хватит спамить.
Это гуглится в первых строчках.
В любой книге по программированию поясняется
Аноним 15/06/20 Пнд 16:33:26 17238131046
>>1723654
В перспективе - да. Учиться легко без него, а когда понадобится- поймешь сам.
Аноним 15/06/20 Пнд 21:45:20 17241301047
Анонычи, поясните за почту, а точнее за всю цепочку необходимых инструментов.
В пхп есть функция mail, на сколько знаю она дергает линуксовую "mail" функцию которая отправляет почту.
В винде такой нет. Значит я должен поставить что то Типа phpMailer.
Но что в винде по итогу отправляет почту? Должен быть какой то почтовый клиент же.
Я отправлял почту через smtp гугла на свой ящик, но немного плыву в цепочке необходимых этапов.

Аноним 15/06/20 Пнд 22:17:12 17241601048
1.PNG 20Кб, 577x559
577x559
2.PNG 16Кб, 328x539
328x539
Использую IDE phpstorm. Запускаю свои скрипты в самом же IDE таким образом, кликаю на свободном поле редактора, далее появляется меню (картинка 1). Я нажимаю на Run -> .php(PHP script), но бывает я промахиваюсь и выбираю Run -> .php(JavaScript), я получаю результат, но уже в браузере. И потом уже производя те же действия я не могу запустить код в самом IDE, так как мне уже по умолчанию предлагается вариант Run -> .php(JavaScript) вместо нужного мне Run -> .php(PHP script) ( картинка 2) . Вопрос как мне запустить мой код в самом IDE в этой ситуации, когда мне предлагается запустить код в браузере с помощью JS
Аноним 15/06/20 Пнд 23:15:21 17242221049
>>1724160
Я бы где-то в Run Configuration или Edit Configuration заглянул
Аноним 16/06/20 Втр 08:09:30 17244151050
IMG202006160950[...].jpg 6864Кб, 4000x3000
4000x3000
Аноны, подскажите, что не так в коде?
Ни ошибок, ни варнингов, но скрипт работает не правильно.
Аноним 16/06/20 Втр 09:22:17 17244341051
>>1724415
Чтоб тебе так же таски давали на работе.

Какая нахрен фото экрана?
Что значит работает неправильно? Что ты ожидаешь и что происходит?
Аноним 16/06/20 Втр 09:22:33 17244351052
Аноним 16/06/20 Втр 09:23:23 17244361053
>>1724415
код в кучу с разметкой, не PDO.
Аноним 16/06/20 Втр 14:02:59 17246421054
1019775280.jpg 151Кб, 463x650
463x650
Кто-нибудь читал, хорошая книга? Хочу научиться делать сайты.
Аноним 16/06/20 Втр 14:42:22 17246711055
Аноним 16/06/20 Втр 14:46:53 17246751056
>>1724671
Что сейчас изменилось? Книжка 16го года ведь.
Аноним 16/06/20 Втр 16:05:09 17247711057
>>1724415
Ну как что не так? Гавнокод лютейший, я пару минут честно пытался вчитаться. что ты хотел написать в конце 15й и 16й строки? Точно оператор верный?
Аноним 16/06/20 Втр 17:03:58 17248791058
>>1724675
Там примеры на 5ой пыхе вроде, да и в целом подход устарел.
Сейчас же всё на фреймворках, вся эта низкоуровневая ебля зарыта под капотом.
Ну и голый жс на фронте - сейчас везде реакты
Аноним 16/06/20 Втр 18:00:50 17249561059
>>1724879

Знание фреймворка или реакта не отменяет необходимости знать основы (работа с БД, формами, шаблоны).

>>1724642

Когда-то я смотрел эту книгу 2011 года и код там был плохой, особенно код соцсети в конце. Не знаю, как в более новых изданиях.

>>1724415

Напиши, что именно не так. Также, у тебя время для кук задано в прошлом.
Аноним 16/06/20 Втр 18:08:13 17249641060
>>1724130

В мануале по функции mail() написано ( https://www.php.net/manual/en/function.mail.php ):

> The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).

На Линуксе, да, команда mail() просто запускает программу sendmail и передает ей письмо. На Windows она соединяется с почтовым сервером по протоколу SMTP с параметрами из php.ini. Почтовый сервер (наверно) может быть установлен и локально.

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

>>1723802

Возвращает значение из функции и завершает ее выполнение. Если ты напишешь вызов функции так:

$x = some_func();
...

То будет вызвана функция some_func(), и когда в ней встретится оператор return, например return 5; то функция "вернет" значение 5 (то есть, оно попадет в $x) и далее будет выполняться код, который идет после $x = ....

Аноним 16/06/20 Втр 18:15:02 17249751061
>>1723142

DI - это идея, что "зависимости" (объекты и параметры, которые нужны данному объекту для работы) должны передаваться в объект снаружи, а не объект сам должен их как-то создавать или получать. Если что, у меня есть урок по теме https://github.com/codedokode/pasta/blob/master/arch/di.md

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

Dependency Injection Container - это штука, которая знает, кто от кого зависит и умеет создавать объекты и их зависимости, избавляя от создания всех объектов-зависимостей вручную. То есть ты просто просишь "дай мне сервис X" и не думаешь о том, что ему надо передать - контейнер сделает это сам. Есть контейнеры, где зависимости описываются вручную в конфиге, есть контейнеры с autowiring, когда контейнер по тайп-хинтам в конструкторе сам "догадывается", что надо передать.

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

$logger = $container->get('logger');

или

$logger = $container->get(Logger::class);

Аноним 16/06/20 Втр 19:08:07 17250471062
>>1724964
еще тупой вопрос,я не понял как работает ПРИСВОЕНИЕ по ссылке
Аноним 16/06/20 Втр 19:08:23 17250481063
>>1724956
>Знание фреймворка или реакта не отменяет необходимости знать основы (работа с БД, формами, шаблоны).
Я это не отрицал.
Но тот подход, что в книге, где мы пилим приложуху из говна и палок, остался только в дремучем легаси.
Так что приучаем себя сразу писать на современном стеке
Аноним 16/06/20 Втр 19:26:43 17250781064
>>1725047

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

>>1725048

Тогда получится, что ты не знаешь основ. А это плохо.
Аноним 16/06/20 Втр 19:28:09 17250791065
>>1725048
>Так что приучаем себя сразу писать на современном стеке
а что,на чистом пхп это будет выглядеть иначе или уже зашквар?
Аноним 16/06/20 Втр 19:33:32 17250901066
>>1725078
>$a = 3;
$b = &$a;
$a = 4;
print "$b";
пример с СО или пример с офф сайта
>$a = 3;
$b = &$a; // $b - это ссылка на $a

print "$a\n"; // печатает 3
print "$b\n"; // печатает 3

$a = 4; // меняем $a

print "$a\n"; // печатает 4
print "$b\n"; // также печатает 4, так как $b является ссылкой на $a,
// а значение переменной $a успело измениться
?>
Аноним 16/06/20 Втр 19:50:18 17251051067
>>1725079
>а что,на чистом пхп это будет выглядеть иначе или уже зашквар?
Это будет 1 из 2:
1. Пишем одноразовый говнокод, потом выкидываем
2. Пишем свой фреймворк, потом пишем само приложение
Аноним 16/06/20 Втр 19:53:05 17251111068
>>1725048
В моей мухосрани вроде без фрейморков пишут и какой-то цмс еще применяют.
Аноним 16/06/20 Втр 19:54:26 17251141069
>>1725111
>В моей мухосрани вроде без фрейморков пишут
удачи распутывать древнюю легаси лапшу, вручную обновлять зависимости и заливать по фтп
>и какой-то цмс еще применяют
тут без комментариев
Аноним 16/06/20 Втр 20:08:04 17251321070
>>1724671
Книги морально устарели
Аноним 16/06/20 Втр 20:08:39 17251331071
>>1725090

Когда мы копируем ссылку:

$b = &$a;

То $a и $b указывают на одну и ту же область памяти. Это значит, что если мы в любую из этих переменных запишем число, то оно попадет в эту общую область памяти и команды

echo $a;
echo $b;

Выведут одно и то же. Так как они выводят содержимое этой области памяти.

Для сравнения, при копировании (без &) значения:

$a = $b;

$a и $b указывают на две разные области памяти и значение копируется из одной в другую.
Аноним 16/06/20 Втр 20:13:22 17251371072
>>1725105

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

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

Получается, ты предлагаешь, не изучив сложение и умножение, браться сразу за решение уравнений. Так же и фреймворк, вроде Симфони, его будет очень тяжело осваивать без базовых знаний.
Аноним 16/06/20 Втр 20:18:33 17251421073
Снимок экрана ([...].png 130Кб, 1366x768
1366x768
>>1725133
на практике нихуя не понял
Аноним 16/06/20 Втр 20:20:37 17251461074
>>1725114
Кушать-то надо что-то.
Аноним 16/06/20 Втр 20:45:25 17251591075
>>1725132
Только классика не стареет
Аноним 16/06/20 Втр 20:50:13 17251671076
>>1725137
В той книге реально устаревший подход. Часть кода оттуда просто не запуститься, либо будет ругаться депрекейтедами.
В добавок после этой книги придется почти с нуля переучиваться на современный инструментарий разработки.

Хотите основ - возьмите свежую php 7.4, туториал по ней и играйтесь на здоровье. Зачем сразу в легаси лезть?
Аноним 16/06/20 Втр 20:53:34 17251691077
>>1725142

$a = 3; - записывает 3 в область памяти, выделенную под $a
$b = &a; - $b теперь указывает на ту же область памяти, что и $a, где хранится 3
$a = 4; - в эту область памяти записывается 4
print $b; - выводит содержимое этой области памяти на экран
Аноним 16/06/20 Втр 21:28:44 17251971078
>>1725142
$a =3;
$b = $a;
$a = 4;
echo $b;

будет 3 тк значение $a поменялось уже после выполнения $b = $a; и $b было УЖЕ присвоено 3
Аноним 16/06/20 Втр 21:29:53 17252001079
>>1725197
>>1725142
Если записать так :
$a = 3;
$a = 4;
$b = $a;

echo $b;

то будет уже 4 тк пхп выполняет поочерёдно
Аноним 16/06/20 Втр 21:32:30 17252061080
>>1725169
а в функциях что бы поменять переданную переменную и вернуть новый результат в код снаружи.
я правильно понял?
Аноним 16/06/20 Втр 21:34:09 17252111081
Аноним 16/06/20 Втр 22:06:25 17252551082
Как реализовать роутинг на голом PHP? Как я понимаю нужна единая точка входа, откуда запросы уже будут идти в маршрутизатор?
Аноним 16/06/20 Втр 23:56:46 17254021083
>>1724975
Ну давай разберем по частям тобой написанное.
>Вот пример передачи зависимостей классу-валидатору
public function __construct(UserTableGateway $userTableGateway) { ... }
public function setLogger(Logger $logger) { ... }
setLogger() это пиздец отвратительная практика. Это по сути и есть использование объекта как глобальной переменной. Я на такую хуйню насмотрелся. Где-то в коде используется логгер, а как он попал в объект и когда загадка. Через гидратор или через конфиг наебенили. Так потом еще и меняют этот логгер ебаный во время выполнения. Был такой, а стал сякой иди ищи где и нахуя, и не накроется ли все пиздой когда ты туда засунешь новый логгер.

>Registry и чем он плох
>Чем плох ServiceLocator
>Чем хорош DI container
А вот тут пиздежь чистой воды. Твой DI контейнер и есть и регистр, и сервис локатор. Твой пример с Pimple полностью повторяет предыдущие два. И тут все правильно, потому что DI контенер - это объект, способный находить или создавать другие объекты, который хранит в себе другие объекты.

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

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

По поводу написания своего контейнера. Есть PSR-11, который описывает интерфейс. Ну а в целом это самый последний велосипед для джуна, что угодно будет проще накостылить чем вменяемый контейнер. Лучше взять готовое, как написано, симфони или пимпл и мозгу не ебать.
Аноним 17/06/20 Срд 16:18:28 17261801084
как вам swoole?
Аноним 17/06/20 Срд 16:31:12 17261901085
>>1726180
Нагибает все живое. Но работать с ним так себе удовольствие пока что.
Аноним 17/06/20 Срд 17:19:55 17262281086
1.jpg 10Кб, 355x123
355x123
2.jpg 36Кб, 715x197
715x197
3.jpg 95Кб, 1024x550
1024x550
Я не совсем понимаю в отладке , если я хочу зайти внутрь функции, а не просто перейти на следующую строчку, надо нажимать F7 ( step into )
Но , где-то у меня получается , а где-то нет , вот где не получилось внутрь зайти с помощью step into , там получилось с помощью force step into
В чем разница между ними ?
Аноним 17/06/20 Срд 17:55:40 17262691087
как в веб шторме запустить код без ручного ввода команды запуска скрипта?
Аноним 17/06/20 Срд 18:36:00 17263321088
image.png 3Кб, 349x61
349x61
image.png 16Кб, 451x183
451x183
>>1726269
1 пик - настройка любого вида запуска
2 пик - быстрый запуск тестов
Аноним 17/06/20 Срд 18:43:24 17263381089
>>1726332
пипец,веб шторм не умеет в автодополнение циклов,if,swith...
Аноним 17/06/20 Срд 18:59:39 17263591090
>>1726338
Можно подробнее пример, что именно не дополняет?

Ну и можешь настроить сам себе снипет дополнения, шторм достаточно гибок в настройке
Аноним 17/06/20 Срд 19:02:25 17263651091
>>1726359
точнее так сказать надо
VSC сразу каркас делает
а в шторме надо ручками все прописывать
Аноним 17/06/20 Срд 19:31:50 17263901092
>>1726365
Да какой каркас?
foreach ($a as $b) {

}

это?
Аноним 17/06/20 Срд 19:40:53 17263921093
Аноним 17/06/20 Срд 19:42:12 17263931094
>>1726392
но это мелкая придирка
Аноним 17/06/20 Срд 20:00:27 17264041095
>>1726392
Тут в любом случае будут кейсы, когда тебе нужен снипет под себя, а его нет ни в иде, ни в каких-то плагинах
Аноним 17/06/20 Срд 20:17:09 17264171096
Не знаю, где спросить.
Есть сайт на Опенкарте. Нужно переделать его под Вордпресс с Вукоммерсом. Сохранив полностью дизайн. Сколько это может стоить и сколько по времени займёт? Хотя бы примерно.
Аноним 17/06/20 Срд 20:41:18 17264341097
>>1726417
от 0 до бесконечности
Аноним 18/06/20 Чтв 02:27:43 17266501098
>>1725402

> Где-то в коде используется логгер, а как он попал в объект и когда загадка.

Обычно использование инъекции через метод используется для необязательных зависимостей, которые могут отсутствовать. Поэтому тебе не важно, как он туда попал, главное, что он может быть, а может не быть. Но если хочется понять, как он туда попал, то можно воспользоваться функцией вроде "Find Usages" в IDE. Или поставить брейкпойнт и посмотреть стектрейс.

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

> Твой DI контейнер и есть и регистр, и сервис локатор.

Принципиальное отличие DI в том, что класс ничего не знает про контейнер, в то время как при использовании ServiceLocator класс знает о нем.

> При использовании DI подхода логгер в принципе может попасть в наш контроллер только через конструктор,

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

>>1725255

Если ты используешь встроенный в PHP сервер, то просто указывается имя файла-роутера в командной строке. Если Апач, то через mod_rewrite запросы направляются на единственный скрипт, в php-fpm + nginx имя скрипта прописывается в конфиге Nginx.

>>1725206

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

Аноним 18/06/20 Чтв 02:28:36 17266511099
>>1718405
>>1723257

В качестве абстрактных методов, возможно, лучше было сделать методы вроде getBaseRate(). Так как твой код обязывает реализовать метод setDefaults(), но не обязывает задавать в нем значения базовых величин.

Кстати, в 7.4 разрешили ставить типы у свойств классов, стоит это использовать.

> public function addEmployees(string $className, int $rank, bool $isBoss, int $count): void

Это не очень удачная конструкция, так как она не позволяет добавить произвольного работника. Представим, что мы завтра создали новый класс профессии, с конструктором с 4 аргументами. Твоя функция не умеет передавать в конструктор 4 аргумента, и не позволит создать такого работника. Логичнее делать метод вида addEmployee(AbstractEmployee $e), которая позволяет добавить любого работника, если он унаследован от базового класса.

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

> //Возвращает сотрудников c переданным рангом из переданного массива
> public function getEmployeesByRank(int $rank, array $employees): array

Эта функция странная. Если она получает список работников снаружи и не использует свойства департамента, то что она в нем делает? Она же не относится к нему никак. Надо поместить ее куда-нибудь в другое место, например, класс EmployeeUtil или CompanyUtil (вспомогательные методы для работы с сотрудниками). Создавать работников или департаменты лучше отдельно.

> //Повышает ранг сотрудников из переданного массива на единицу
> public function increaseEmployeesByRank(array $employees, float $percent): void

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

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

В Департамент можно добавлять методы, но они должны быть в его зоне ответственности. Например, метод "отобрать Работников по фильтру" или "назначить босса" или "уволить сотрудника" - это подходит. Это универсальные методы. А "уволить часть инженеров из-за кризиса" - явно нет.

> public function applyMeasure1(Company $company): Company

Тут слишком большая глубина отступов. Тяжело такое читать. Также, тут проще исключить босса из кандидатов на увольнение с помощью array_filter + анонимная функция, и отобрать 40% с помощью array_slice.

Вообще, можно было сделать примерно так:

- отбираем кандидатов на увольнение по условию вроде fn($e) => $e instanceof Engineer && !$e->isBoss(). Удобно использовать анонимные стрелочные функции как критерий отбора.
- сортируем по рангам
- берем 40% с помощью array_slice
- увольняем

Код будет более линейный и простой.

Для замены босса логично было бы добавить метод в Департамент (setBoss()), а не менять статусы вручную.

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

Дальше стоит делать ООП-Гостиницу, наверно.
Аноним 18/06/20 Чтв 06:54:47 17266971100
>>1726650
>Если ты используешь встроенный в PHP сервер, то просто указывается имя файла-роутера в командной строке. Если Апач, то через mod_rewrite запросы направляются на единственный скрипт, в php-fpm + nginx имя скрипта прописывается в конфиге Nginx.
Спасибо. Я вообще в правильно направлении иду? Во фреймворках также все сделано?
Аноним 18/06/20 Чтв 09:46:38 17267531101
>>1726650
>Но если хочется понять, как он туда попал, то можно воспользоваться функцией вроде "Find Usages" в IDE. Или поставить брейкпойнт и посмотреть стектрейс.
Нихуя ты простой. Нашел ты использования. В трех местах в коде через setLogger() устанавливается логгер ЯВНО. А есть такая тема как гидрация. Когда специальный сервис дергает сеттеры и передает туда что нужно НЕ ЯВНО, например из конфига.
Я говорю о ситуации когда тебе нужно передать в метод setLogger() свой логгер. Ты не знаешь есть ли там уже логгер и не знаешь что будет если ты его заменишь. Не бывает "не обязательных зависимостей" зависимость либо есть, либо её нет. Еще пиздецовее все становится, когда есть еще и геттер. Тут уж вообще хуй поймешь куда этот логгер попадет в итоге. А решается это именно инекцией через конструктор.
Если ты так пишешь, то земля те пухом, но не надо рассказывать что это нормально. Это прямой антипример использования DI контейнера.

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

>Нет, инъекция возможна не только через конструктор, но и через методы.
Кек. А где ты возьмешь объект логгера чтобы передать его в метод контроллера? Ведь "класс ничего не знает про контейнер".
Аноним 18/06/20 Чтв 09:57:39 17267631102
Аноны, никак не могу сообразить. Как засунуть кнопку внутри пыха? Есть такой код
<script src="https://ideone.com/e.js/LmgZhF" type="text/javascript" ></script>
Он выводит список всех таблиц sql и пытаюсь сделать, чтобы рядом с каждым результатом была кнопка,которая будет выполнять открывать необходимую таблицу подробно. Соответственно кнопка должна быть внутри цикла, но конструкция выше разумеется работать не будет. Оно понятно почему, я для наглядности. А вот как сделать правильно?
Аноним 18/06/20 Чтв 13:37:38 17270341103
Аноним 18/06/20 Чтв 13:55:47 17270501104
>>1726763
Когда вы уже перестанете мешать хтмл и пхп?
Аноним 18/06/20 Чтв 15:17:40 17272171105
Аноны, кто в laravel шарит, просветите.
Не очень понимаю как по дефолту инъекция зависимостей в контроллере работает
вопрос тут :

https://ideone.com/ym1SKh
Аноним 18/06/20 Чтв 15:20:57 17272301106
>>1727050
Когда научусь обходиться без)) Я в php нубяра (как в прочем и везде) и поэтому возникает много вопросов) А код ужасен до безобразия))) Как будто кто то просто охапку дров кинул и крикнул "Работай!"
Аноним 18/06/20 Чтв 15:28:38 17272411107
>>1727230
Поверь, тебе не зря советуют не мешать пхп и хтмл, гугли MVC.
А вообще троллей полон тред, это наверное змееебы, пэха их выдавливает из вэба.
Аноним 18/06/20 Чтв 15:35:22 17272531108
>>1727241
>пэха их выдавливает из вэба
Он в целом пыхе в вебе не угрожал никогда и не угрожает пока что. Кое что делается, но слишком мало, чтобы о какой-то конкуренции вообще говорить.
Ах да, я змееб.
Аноним 18/06/20 Чтв 15:37:44 17272591109
>>1727241
Ну не для моих задач. Мои задачи просты и не требуется городить огород. Хотя, думаю, к этому я приду самостоятельно, через какое то время)
Аноним 18/06/20 Чтв 17:45:50 17274191110
image.png 140Кб, 843x798
843x798
Оп , можешь глянуть решение задачки про банкомат с твоего учебника ? https://ideone.com/6tgkDv
Аноним 18/06/20 Чтв 19:21:25 17275141111
>>1727241
Ну какие тролли?
Просто насмотрелся говна на продакшене, когда в шаблоне лезут в бд
Аноним 18/06/20 Чтв 19:23:46 17275171112
>>1727259
Этот самый огород в виде разделения слоев приложения сократит число проблем при разработке и отладке.
Даже в рамках одного файла можно это сделать, выделить часть под работу с бд, часть под шаблон, часть под логику
Аноним 18/06/20 Чтв 19:54:12 17275451113
Снимок.PNG 1Кб, 200x53
200x53
hqdefault.jpg 8Кб, 480x360
480x360
Аноним 18/06/20 Чтв 20:07:37 17275591114
>>1726753
>нужно передать в метод setLogger() свой логгер. Ты не знаешь есть ли там уже логгер и не знаешь что будет если ты его заменишь.
А что даже в теории может быть? Логгер логгирует, ну перестанет в одно место логгировать, начнет в другое.

>Не бывает "не обязательных зависимостей" зависимость либо есть, либо её нет.
Хуя, ты скозал? Логгер как раз один из немногих примеров не обязательных зависимостей, если он никак не влияет на работу класса, то он может быть, а может и не быть, похуй вообще. То что в самом классе может не быть проверок на null, это уже не ко мне вопросы

> тебе нужно получить исходный объект из контейнера. Используя его как сервис локатор.
Скажи мне что плохого в том чтобы дергать из контейнера объекты прямо в контроллере?
Аноним 18/06/20 Чтв 20:36:01 17275741115
>>1727514
Да какой продакшен, у него laba beta 0.1
пхп позволяет так делать - вот и делает.
Аноним 18/06/20 Чтв 20:43:54 17275801116
>>1727559
>А что даже в теории может быть? Логгер логгирует, ну перестанет в одно место логгировать, начнет в другое.
Речь о подходе. Когда у тебя весь код так написан пиздец полный. А я такое видел не раз. Ирония в том, что инъекция зависимостей для того и нужна что бы с этими проблемами бороться. А чел начал статью про DI, и тут же наебенил говна.

>Хуя, ты скозал? Логгер как раз один из немногих примеров не обязательных зависимостей
Кароч открываешь свой класс, там в самом начале блок namespace и use. Так вот все что в блоке use это зависимости. Если любого из классов прописанных в use не будет, то твой код просто не будет работать.

>Скажи мне что плохого в том чтобы дергать из контейнера объекты прямо в контроллере?
Нахуй ты меня спрашиваешь? Ты спроси типа, который написал что "класс ничего не знает про контейнер, в отличие от сервис локатора". Я то как раз пишу что это отличие именно в том где мы перестаем дергать контейнер. Договорились в контроллере, значит ок, только в контроллере. Договорились на унылый секс в два ночи, значит дергаем в домене.
Аноним 19/06/20 Птн 11:24:16 17279061117
И опять я здесь со своими нубо-проблемами.
Такая задачка.
Есть таблица sql "table1" В ней есть поля id, name, code, normal.
Как оформить поисковой запрос sql, чтобы он дал мне значение из поля 'name' соответствующее известному значению и записаному в переменную $det из поля 'code'. Полученное значение я должен так же записать в переменную, чтобы использовать в следующем sql запросе. Сейчас запросы выглядят так и дают фатал, mysqli_result не может конвертировать запрос тот, что с переменной $add.
$link и $link2 соответствуют подключением к разным базам. Да, эти таблицы в разных бд.
Переменные $det и $score абсолютно рабочие и проверены, sql запрос к table2 с ними нормально работает.
https://pastebin.com/HpHPDMm9
Аноним 19/06/20 Птн 12:08:00 17279361118
Аноним 19/06/20 Птн 15:23:16 17281011119
двач, не обоссывай а лучше подскажи. как реализовать на сайте мультирегиональность? типо чтобы когда я захожу на abu.mysite/ меня рероутило например на abu.mysite/moscow и где будет соответственно шаблон с шапкой " Привет, анон из Москвы " и соответственно метатегами. ну и дальше чтобы вложенность была в стиле abu.mysite/moscow/catalog/dragon_dildo
сразу скажу что движок - битрикс
Аноним 19/06/20 Птн 15:58:48 17281441120
>>1726763
Продолжение вот этого.
Все здорово, скрипт аккуратно в табличку выводит список таблиц, рядом с каждым есть кнопочки важные.
А теперь я пытаюсь записать что то в эти таблицы, но как мне идентифицировать нужную таблицу при вызове INSERT INTO?
Взяв {$row[0]}\n из этого скрипта https://ideone.com/e.js/LmgZhF я получил INSERT INTO {$row[0]}\n SET... и так далее. Такая конструкция работает только для первой таблицы. В какую сторону копать? Как сделать имя таблицы из переменной имея только вывод всех таблиц через цикл while?
Аноним 19/06/20 Птн 16:47:47 17281741121
>>1726651
Спасибо большое что проверил, у меня еще есть несколько вопросов:

> В качестве абстрактных методов, возможно, лучше было сделать методы вроде getBaseRate(). Так как твой код обязывает реализовать метод setDefaults(), но не обязывает задавать в нем значения базовых величин.

Как понимаю он должен так выглядеть:
public function getBaseRate(): float{
return 800;
}
Меня смущает то, как потом менять значение ставки. Просто изменять этот метод?

> Да и не задача Департамента создавать работников, он может нанимать уже созданных.

А разве там не требуется применять принцип композиции, у нас же работники не могут существовать отдельно от Департамента?

> Также, тут проще исключить босса из кандидатов на увольнение с помощью array_filter + анонимная функция, и отобрать 40% с помощью array_slice.

>Сократить в каждом департаменте 40% (округляя в большую сторону) инженеров, преимущественно самого низкого ранга. Если инженер является боссом, вместо него надо уволить другого инженера, не босса.

Как я понял из условия 40% мы берем от всех инженеров в не зависимости от того является он боссом или нет. Например, у нас 11 инженеров в департаменте и 1 из них босс, тогда ceil(11 0.4) = 5 инженеров на увольнение, а если перед этим убираем босса, тогда ceil(10 0.4) = 4 инженера на увольнение. Или я не правильно понял условие?
Аноним 19/06/20 Птн 16:56:30 17281791122
>>1725048
Хуйню пишешь.
Без своих велосипедов - ты даже не "оператор" фреймворка, ты дно.
Вот тебе и лицо современного вкатывания в ойти. Можно разве что порадоваться тому что если большая часть вкатывальщиков так мыслят как ты излагаешь - то все у людей которые стараются глубже понимать то на чем работают - все будет хорошо.

Аноним 19/06/20 Птн 16:57:50 17281811123
>>1728179
Зачем писать свой фреймворк, когда у тебя перед галазами исходники современного фреймворка. Бери, да ковыряйся, было бы желание
Аноним 19/06/20 Птн 18:11:12 17282681124
>>1728181
Я хуею с таких программистов.
А учиться программировать ты как будешь? Конкретно код писать, думать, искать решение?
Если ты думаешь что до маня-сеньора ты вырастешь когда прочтешь все исходники Симфони?
Программист растет только когда код пишет. Он думать учиться в нужном русле.
Аноним 19/06/20 Птн 21:00:23 17283761125
> Symfony 3/Doctrine 2
уже 5.1
Аноним 19/06/20 Птн 21:03:08 17283791126
>>1728268
В каждой фирме на работе свой фреймворк пишут? Или другой опенсорс?
Бизнес задачи и так дают подумать, если это что-то сложнее круда, нужен какой-то фоновый процессинг, свои модули писать, микросервисы. По структуре задачи схожи с написанием фреймворка, по сути - другая предметная область.
Так мб стоит учиться более релевантному программированию, а не изобретать очередной велосипед?
Аноним 19/06/20 Птн 22:00:53 17284481127
>>1728379
>>В каждой фирме на работе свой фреймворк пишут? Или другой опенсорс?
В некоторых пишут. Твое "релевантное программирование" это какой то маня мирок. Ты и на фреймворке нихуя толкового не сможешь написать с таким подходом.
Твое дела конечно, но ты меня успокаиваешь - конкуренции от таких как ты не будет явно.
Аноним 19/06/20 Птн 22:05:19 17284601128
>>1728448
п.с.
в одной конторе было тестовое задание - простой блог, MVC, классы, роутер, контейнер, пагинация и валидация - все самостоятельно необходимо было написать на чистом пхп.
Аноним 19/06/20 Птн 22:55:13 17285081129
>>1728460
И в чем трабла?
По гайдам пишется за пару вечером.
Аноним 19/06/20 Птн 22:55:44 17285091130
>>1728448
>Твое дела конечно, но ты меня успокаиваешь - конкуренции от таких как ты не будет явно.
Наверно уже 10ый фреймворк на работе пишешь.
Аноним 19/06/20 Птн 22:55:56 17285101131
>>1728379
Никак вы блядь не научитесь. Фреймворк это просто набор сервисов. Конфигурация, роутинг, DI контейнер, event loop, HTTP, ORM, кэш итд. Пиздец у тебя понимание работы приложения. Берешь symfony/config , eloquent, pimple, guzzle, FastRouter и вот у тебя уже получился твой собственный фреймворк.
Аноним 19/06/20 Птн 23:01:34 17285161132
>>1728510
Ебать ты тупой конечно.
Вместо очередного роутера, ди контейнера или ивентлупа, можно написать какой-нибудь полезный сервис к своему пету, на работе пригодится.
Зачем велосипедить компоненты фреймворка, если это максимум полезно для понимания его кишков?
Ну серьезно, это очень узкая ниша и идут туда явно не те, кто начинал своё знакомство с разработкой с php.
Аноним 19/06/20 Птн 23:17:30 17285281133
>>1728516
Ты в моем посте где вычитал слово "велосипед", еблан? Это блядь что-то из разряда где родился, там и пригодился. Есть во фрейме ОРМ, значит её и используем.
Потом одни ебланы ищут программистов на ларавель, а другие руками разводят если в доке их фреймворка не написано как что делать.
Аноним 19/06/20 Птн 23:23:58 17285341134
>>1728528
Так ты успокойся, прими свои таблетки, дыши ровно.
Да, берем ОРМ, которая во фрейме, потому что нужно ВЧЕРА таску закрыть, и с ней проще макакам в цикле запросы делать.
Ебланы ищут программистов на ларавел, чтобы других ебланов не учить им пользоваться месяцами, а дать таску и ждать результата.
Ты какого-то странного мнения о php сообществе. Туда идут потому что легко войти и даже в 30+ можно заработать миску риса.
Тот ли ты стек выбрал?
Аноним 20/06/20 Суб 00:54:13 17286121135
>>1728534
>Да, берем ОРМ, которая во фрейме, потому что нужно ВЧЕРА таску закрыть
Ну так сиди на рисе и воде, формошлепь и не отсвечивай, пока умные дяди за тебя решают что и как в проекте использовать.
Аноним 20/06/20 Суб 01:35:35 17286321136
>>1728612
Умные дяди на php не пишут. Начнем с этого. На этом и закончим
Аноним 20/06/20 Суб 01:56:18 17286421137
Что-то не нравится мне этот ваш апач. После окончания всех настроек сначала час разбирался почему мне все еще вместо результата выдает код программы, шаманил с конфигами и рестартил апач 500 раз за это время. Потом удивительным образом оказалось, что на самом деле все работает, если в конец пути в браузере добавить знак вопроса ( localhost/example.php? ), хрен знает чем это обосновано, случайно вышло. При этом без знака вопроса все еще показывался сам код. Потом изменил код, рестартнул апач. Со знаком вопроса в конце пути все работало, а без знака вопроса каким-то хуем показывался старый код программы. Но самое забавное то, что через полторы минуты скрипт начал запускаться и без знака вопроса. Хрен знает как с этим цирком серьезно работать.
Аноним 20/06/20 Суб 02:18:09 17286461138
>>1728642
Так с апачем и не работает никто.
nginx берут, либо встроенный пыхосервер для локальной разработки
Аноним 20/06/20 Суб 04:32:44 17286801139
>>1728632
У тебя ярлыки по признаку инструмента.
Есть такое, большинство пхпшников дегенераты, спасибо куче инструментов, позволяющих писать рабочий код пуская слюни. Этот тред и выходцы с него подтверждают этот тезис в 9 из 10 случаев, хотя казалось бы тут обучиться довольно просто. Но немало встречается и умных опытных разрабов. Собственно почти все опытные, кто активно на пхп сидит, берут его осознанно ради буста к скорости разработки и поддержки. Привычка и контроль, на чем больше всего писал - на том чуть лучше и выходит. Мелочь, а приятно. При этом у всех когда-то были или есть проекты и на других стеках, с которыми они свободно работают (самому на питоне, жсе, руби, шарпе, джаве, го и эликсире довелось поработать, а ведь я всего 8 лет в теме).
Пришлось написать несколько мелких фреймов, один из которых на питоне. Вынужденно, такой пиздец на проектах попадался, что туда готовое не взять без полной переписки, а только аккуратными мелкими фичами апать код. Помогает во вполне обычных рабочих задачах, как видишь.
Тоже попадалось тестовое с написанием своего фрейма на пхп без зависимостей. Да, делается за вечер. Можно по гайду накопипастить, можно не по гайду, скорее всего на плагиат чекать не будут. Я делал сам в тот раз, так всегда пользы больше.
После всего этого любой вебфрейм для меня открытая книга. Очень помогает, со стыдом вспоминаю те времена, когда воевал с фреймворками из-за собственного невежества (и как водится был дохуища выебистым первые годы). Код фреймов читал офк, как и всю доку, но без собственных велосипедов это давало только ложное ощущение понимания.
Считаю, что по хорошему надо брать слим, а не эти ваши ларки, особенно новичку, и подтягивать что сам хочешь к нему, выстраивая по быстрому именно то, что нужно и не больше. Контроль - это хорошо. Когда позволительно - лучше так делать.
Так я вот к чему - если ты не хочешь выполнять учебную задачу, то зачем других то отговаривать? Для обучения это прекрасный опыт (в современных реалиях вообще возвышающий тебя над толпой фреймворкнейм-кнопокдавов), даже если выкинешь все на помойку. Можно работать и без этого, да, как многие и делают, особенно в первый раз.
Ничем велосипедирование своего учебного фрейма не отличается в худшую сторону от прочих учебных задач, так что с этим так же как и с остальным - пропускать можно ценой пробела в знаниях.
Ну и напоследок - из всех самых прошаренных знакомых разрабов нет ни одного, кто бы не мог набросать неплохой микрофрейм из головы за вечер-два. Да впринципе многие из них и небольшой язык/бд/подобие ос могут набросать. Развитие не заканчивается с получением работы, а чтобы получить понимание темы, которое уже никогда не выветрится, надо тему повелосипедить самому, никак иначе.
Аноним 20/06/20 Суб 07:46:41 17286881140
>>1728632
Жри что дают, не твоего ума дело рассуждать кто на чем пишет, хлебушек.
Аноним 20/06/20 Суб 09:18:39 17287011141
>>1728680
нуфф саид

мимокрокодил


Аноним 20/06/20 Суб 16:35:19 17290241142
>>1728688
Сказал чел, пишущий на пхп. Вот уж кто жрет, что дают.
Аноним 20/06/20 Суб 16:46:00 17290311143
>>1728680
>У тебя ярлыки по признаку инструмента
Из всех знакомых, кто пишет на пхп, большая часть макаки крудоклепатели, боятся лишнюю папку или файл создать без указки тимлида, пихают код в контроллеры и т.д. и т.п.
Даже не представляю, где сидят те умные дяди, которые осознанно выбрали пхп среди альтернатив и пишут на нем хорошие поддерживаемые вещи. Наверное таких 1 на 10000 макак.

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

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

>Для обучения это прекрасный опыт (в современных реалиях вообще возвышающий тебя над толпой фреймворкнейм-кнопокдавов
Херочке будет очень интересно послушать, какой ты фреймворк написал на коленке за вечер. А на вопросе про коммерческий опыт с фреймворк-нейм пук-перезвоним.
Аноним 20/06/20 Суб 18:05:05 17290901144
>>1729024
Схуяли ты взял что я пишу на пхп? Это ты пишешь на пхп, гной.
Аноним 20/06/20 Суб 18:29:06 17291081145
>>1729090
Что ты тогда забыл в пхп треде, даунич?
Аноним 20/06/20 Суб 18:39:10 17291171146
>>1729108
Порофлить с дегенератов, которые вместо развития скила планируют формы писать до старости.
Аноним 20/06/20 Суб 18:47:35 17291211147
>>1729117
Иди развивайся, пиши свои фреймворки, вон драйверы на пхп попиши. Что ты тут забыл?
Аноним 20/06/20 Суб 19:07:05 17291341148
>>1729121
Ты в прошлом посте спрашивал уже, а я тебе уже ответил. Ты давай обтекай, да смари мозги не перетруди. Тебе в понедельник шаблон на вордпресс натягивать.
Аноним 20/06/20 Суб 19:07:32 17291351149
>Писать свой фреймворк
Как там, в 2017-ом?
Аноним 20/06/20 Суб 19:20:19 17291391150
>>1729134
Да, да, мне шаблон натягивать, а тебе в очередной раз врать мамке, как ты вот щас щас найдешь работу хаскелистом, уплетая её борщец.
Аноним 20/06/20 Суб 19:23:17 17291441151
>>1729139
Так-то борщец вкуснее чашки риса. А любящая мать лучше формошлепов собутыльников без перспектив.
Аноним 20/06/20 Суб 21:52:27 17292541152
>>1729135
не понимаю иронии? В больших компаниях, к примеру, с микросервисной инфраструктурой, даже проще и лучше, компетентно написать ядро фреймворка, но на это надо чуть больше времени и денег. За то в результате будет работать все очевидно и понятно, а не так как ваш всратый рад ларавел, у которого везде магия и в случае пиздеца, только в трейсе дебага можно что-то понять.
Аноним 20/06/20 Суб 22:20:31 17292751153
test-unroll.png 100Кб, 737x691
737x691
Так, скоро надо будет создать новый тред, а пока хотел показать прототип thread-unroll для двачика, что думаете? не знаю, правда, где найти время, чтобы перепробовать все идеи, которые в голову пришли.
Аноним 20/06/20 Суб 22:43:40 17292881154
>>1729254
>с микросервисной инфраструктурой
Лол, ну ты точно из 2017. Именно тогда все писали свои микросервисные фреймворки и обещли 9000% прироста всего подряд, как только раздолбают проклятый монолит.
Аноним 20/06/20 Суб 23:01:24 17293031155
мммм...бурное обсуждение...
Аноним 21/06/20 Вск 00:18:16 17293401156
>>1729254
>микросервисы
>на php
Уже забыли, зачем этот язык создан
Аноним 21/06/20 Вск 13:03:03 17295161157
>>1729303
Чтобы отожрать 90% бекенда всех сайтов минимум на 30 лет? И не планировать сдавать позиции.
Аноним 21/06/20 Вск 16:28:54 17296791158
геттеры и сеттеры нужны всегда?
Аноним 21/06/20 Вск 17:50:31 17297141159
>>1728101
ну же, аноны, никто не подскажетт в каком направлении двигаться чтоли?))
Аноним 21/06/20 Вск 19:00:09 17297821160
Снимок экрана ([...].png 116Кб, 1366x768
1366x768
почему выводит пустоту?
пытаюсь понять тему конструктор
Аноним 21/06/20 Вск 19:27:54 17298091161
pizdos.PNG 11Кб, 498x221
498x221
Аноним 21/06/20 Вск 19:31:45 17298151162
>>1729809
я это уже читал и всегда читаю.
но объяснение там часто сухое или сильно сжатое и я не всегда врубаюсь
Аноним 21/06/20 Вск 19:33:04 17298171163
>>1729815
Первую строчку прочитай __construct ([ mixed $args = "" [, $... ]] ) : void
Просто пиздец.
Аноним 21/06/20 Вск 19:34:00 17298201164
>>1729817
и че я тут должен увидеть?
Аноним 21/06/20 Вск 19:35:42 17298211165
eblan.PNG 17Кб, 896x76
896x76
docs.PNG 8Кб, 892x59
892x59
Аноним 21/06/20 Вск 19:44:06 17298311166
15896378064030.png 385Кб, 800x480
800x480
>>1729821
нихуя я дочитался...
Аноним 21/06/20 Вск 19:47:53 17298361167
>>1729831
Кароч я поржал и понял что был груб. Сорян если обидел, но бля чтец ты пиздец конечно. В качестве извинений могу рассказать тебе про ооп в приватной обстановке. Если конечно осилишь попасть в канал https://дискорд.gg/3aVySY6
Аноним 21/06/20 Вск 19:50:33 17298391168
>>1729836
я просто сегодня много читал про конструктор на английском
Аноним 21/06/20 Вск 19:50:44 17298401169
>>1729782

Наверно, ты забыл фигурные скобки: echo "city: {$this->city}";

Также, ты можешь вывести содержимое объекта с помощью var_dump($this);
Аноним 21/06/20 Вск 19:52:18 17298431170
>>1729840
про фигурные скобки я не знаю
Аноним 21/06/20 Вск 20:01:07 17298511171
еще вопрос,я заметил,что передача параметров в метод снаружи сущ способа?
1 это когда параметр в скобочках(но там внутри класса дохера писать функций на каждую переменную)
2 который я в основном видел через знак присвоения
и какой из них популярный?
Аноним 21/06/20 Вск 20:04:08 17298551172
Снимок экрана ([...].png 166Кб, 1366x768
1366x768
Аноним 21/06/20 Вск 23:53:24 17301451173
104526031256394[...].mp4 885Кб, 640x1136, 00:00:03
640x1136
>>1729836
Ух ты, а мне к вам можно? Только дайте норм ссыль
Аноним 22/06/20 Пнд 00:20:12 17301811174
>>1730145
Ну конечно можно. Но если ты не можешь догадаться подставить d i s c o r d вместо дискорд, то у меня для тебя плохие новости.
Аноним 22/06/20 Пнд 02:26:38 17302351175
>>1729809

Любой может ошибиться и не так написать название функции. Это не повод самоутверждаться в треде для начинающих, и это лишь показывает твою токсичность.
Аноним 22/06/20 Пнд 05:36:51 17302541176
сап. как в стандартной форме регистрации/авторизации laravel, при включенной верификации изменить email получателя? чтобы не пользователь получал, а кто-то 1 всегда
Аноним 22/06/20 Пнд 10:32:52 17303701177
Народ, ну подскажите. Я уже весь обгуглился. https://pastebin.com/w2bt1X2d
Вот скрипт выдал мне все нужные значения из таблицы. А как теперь эти значения запихивать в переменную?
Если я беру просто $row, то в переменной лежит только первое значение, а как мне перезаписать переменную, чтобы там оказалось второе значение? А четвертое значение?
Аноним 22/06/20 Пнд 14:24:35 17305721178
Аноны, как прочитать таблицу excel через php и загрузить определенные столбцы в sql, но так чтобы определенные столбцы excel соответствовали полям таблицы sql.
Существует такая библиотека на просторах PHPExcel.php, но она может загрузить excel только в пустую таблицу, а надо в готовую. Это вообще возможно?
Аноним 22/06/20 Пнд 21:39:43 17308671179
0b4347e4-7749-4[...].png 2595Кб, 2048x2892
2048x2892
Объясните на пальцах нахрена в пхп8 добавили атрибуты? В чем цимес? (Ну кроме deprecated тут очевидно)
Аноним 22/06/20 Пнд 23:18:59 17309271180
>>1730867

Аннотации как часть кода используются давно (Доктрина, Symfony Validator, Serializer), но сейчас их пишут в комментариях (в стиле @ORM\Table). То есть для интерпретатора это просто строка, которую он игнорирует, и код использует специальные парсеры для их извлечения из исходного текста.

Логично сделать их частью языка, чтобы PHP их читал и проверял, а также IDE и статические анализаторам было проще с ними работать.
Аноним 23/06/20 Втр 07:24:05 17311701181
>>1730927
Ну это прогиб под них какой то, тот же eloquent не пользует их и живёт спокойно. Ну лучше ли оставить доктирну самой разбираться с этими атрибутами.

Есть какое то применение не связанное с этими библиотеками?
Аноним 23/06/20 Втр 15:07:47 17315461182
>>1729782
так а нахуй ты переменные public делаешь и затем их через констракт меняешь? делай их private/protected и пиши констракт. это называется инкапсуляция вроде
Аноним 23/06/20 Втр 15:11:06 17315591183
>>1730370
создаешь пустой массив, циклом проходишься for с шагом в 2 и добавляешь через array_push туда свое значение. если я тебя правильно понял
Аноним 23/06/20 Втр 15:17:21 17315671184
>>1731546
То, что ты сказал, называется хуйня.
Аноним 23/06/20 Втр 18:54:42 17319061185
Приношу свои извинения апачу за то что заговнил его выше втреде. Сейчас допер что у меня просто в кеш браузера файлы записывались и не обновлялись, теперь запрещаю кеширование метатегом.
Аноним 23/06/20 Втр 22:11:38 17321471186
Переходите в новый тред: >>1731888 (OP)

Если я вас пропустил, напомните о себе в новом треде.
Аноним 24/06/20 Срд 16:43:14 17326641187
Аноним 25/06/20 Чтв 02:51:16 17332181188
>>1729679

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

>>1727419

Не очень хорошо, что у тебя указывается в 2 местах запас банкнот - неудобно будет его менять.

$arrayValues - неудачное название, лучше $combination.

В общем, решено верно. Можно, конечно, было бы еще пооптимизировать код - например, не выдавать такие комбинации купюр, которые заведомо больше суммы. То есть при сумме 1000 не выдавать комбинации, где есть 2000-е купюры и не выдавать более 4 500-х купюр. Дальше можно еще больше оптимизировать код и выдавать сначала наиболее вероятные комбинации. Например, для суммы 6600 и 2000-х купюр сначала выдавать 3x2000, потом 2x2000 ... 0x2000
Аноним 25/06/20 Чтв 02:52:27 17332191189
>>1721930

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

Ты зря прямо в функцию вписал варианты слова - рубль/рублей. Лучше их передавать снаружи, чтобы функция могла работать с любыми словами. Также, условие выбора слова переусложнено, там не нужен цикл. Числа делятся всего на несколько групп: заканчивающиеся на 11-19, на 1, на 2-3 или на 5-0.

Также, текст надо нормально выровнять, тяжело читать.

>>1728174

> Меня смущает то, как потом менять значение ставки. Просто изменять этот метод?
Можно в конструкторе Employee вызвать функцию getBasePay() и записать значение в свойство $basePay, например. И его менять.

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

> А разве там не требуется применять принцип композиции, у нас же работники не могут существовать отдельно от Департамента?

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

> Как я понял из условия 40% мы берем от всех инженеров в не зависимости от того является он боссом или нет.
Можно вычислить число увольняемых, исключить из массива босса, и после этого делать array_slice(). Но можно конечно и обычным циклом идти, пока не наберется нужное количество.

>>1717786

Ты можешь открыть мануал и сам сравнить.
Аноним 25/06/20 Чтв 02:53:21 17332201190
Переходите в новый тред: >>1731888 (OP)

Если я вас пропустил, напомните о себе в новом треде.
Аноним 25/06/20 Чтв 11:16:48 17333761191
Хочу установить Laravel на Manjaro. Проблема в том, что у меня не все необходимые модули установлены, например нет bcmath и некоторых других. Я хз где их брать и как устанавливать, с экосистемой php почти незнаком. Вообще, в описании пакета php для manjaro написано, что модуль bcmath и другие включены, но в выводе php -m его нет. Как быть?
Аноним 25/06/20 Чтв 11:21:10 17333801192
>>1729836
>discord.com/3aVySY6
Не находит ничего. Напиши нормально ссыль или название канала.
Аноним 18/07/20 Суб 15:21:55 17546531193
>>1656450 (OP)
>>1671057
Аноны, написал тут функцию для подсчета количества купюр, из предлагаемой суммы. Оцените, насколько сильно это говнокод.. Можно добавлять новые купюры, очко не ломается.

https://ideone.com/pEESRH
Аноним 21/07/20 Втр 05:42:53 17565081194
такой вопрос: а как можно сделать платные курсы в moodle, мб кто в курсе?
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов