«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Клуб изучающих PHP #112 Аноним 2019/09/17 08:14:45  №1475112 1
php-noob-1.png (33, 500x500)
500x500
cat-cafe-osaka.jpg (157, 1024x683)
683x1024
gj-bu.png (705, 1280x720)
720x1280
cat-sad.jpg (194, 1024x768)
768x1024
Привет. Тут мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

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

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

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

Мейлач лежит? Есть запасной тред на доброчане: /s/res/23225.xhtml#i46467

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

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

С чего начать

У нас есть свои уроки по основам 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? — Да, однозначно. Посмотри любую вакансию.
Аноним 2019/09/17 08:17:01  №1475114 2
grammar.png (56, 500x644)
644x500
Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на 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-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
Аноним 2019/09/17 08:22:03  №1475117 3
Напомню себе, как будет время, проверить из предыдущего треда:

- https://github.com/asdasdasdasddasasdasdas/StudentList из >>1448614
- https://github.com/baraboolka/StudentList из >>1460026
- https://github.com/hikkej/student_list из >>1460537
- https://github.com/asdasdasdasddasasdasdas/Filesharing из >>1462815
- github.com/deadj/student-list/ из >>1466025

Если я кого-то еще пропустил или не ответил, можно напомнить о себе в этом треде.
Ответы: >>1475121 >>1475571 >>1487334
Аноним 2019/09/17 08:27:04  №1475121 4
>>1475117
Спасибо, оп, ты занят богоугодным делом
Аноним 2019/09/17 08:38:28  №1475132 5
скажите пожалуйста,
$id = $_GET["ID"];
$str = file_get_contents($id); // почему файл не загружается
if ($str == false) {
return '{"error":'.$id.'}';
}
Ответы: >>1475139
Аноним 2019/09/17 08:55:04  №1475139 6
>>1475132

Включи отображение ошибок (display_errors) либо посмотри логи.
Аноним 2019/09/17 09:31:09  №1475161 7
Аноны а ничего что я спиздил чужой проект себе в гитхаб? ну я в нем разобрался, еще некоторые изменения внес, но на 85% спизжено, работодатель может это проверить как-то и пиздили ли вы чужие проекты?
Ответы: >>1475249
Аноним 2019/09/17 11:36:29  №1475249 8
>>1475161
>маленький жджун
>пришел на работу в папкиных джинсах, а под ними - краденные колготки старшей сестры
>сел за ноутбук, собранный китайцами ночью на оборудовании американского господина
>запустил ворованную виндоус
>создал новый проект на движке, который состоит из сторонних библиотек больше чем на половину
>испугался, что его обвинят во вторичности и краже интеллектуальной собственности

посмотри какая лицензия стоит у того проекта. Если свободная, то можешь использовать проект на свое усмотрение, только по-моему авторские камменты нельзя стирать.
Не думаю что твой работодатель будет заставлять тебя каждый новый проект с нуля на голом php писать, лишь бы соблюсти чистоту и нравственность коллектива и не ударить в грязь лицом перед конкурентами "СтудияВасиШтыря" или "СайтыВологдаТут"
Ответы: >>1475289
Аноним 2019/09/17 12:17:17  №1475289 9
>>1475249
Дело не в том что я боюсь то что я там спиздил чужую интеллектуальную собственность, а то что работодатель узнает что спиздил и решит что я тупой и бездарныйчто правда но все таки не могу сам, с нуля написать полностью mvc-фреймворк и на нем сайт и сразу откажет мне в работе.
Ответы: >>1475328 >>1475794
Аноним 2019/09/17 13:02:11  №1475328 10
>>1475289
У джунов в других языках почему-то нет страха, что они не могут написать свой фласк или рельсы
Аноним 2019/09/17 13:26:27  №1475351 11
>>1475112 (OP)
Отправлял резюме на пхп разраба, предложили попробовать пройти на разработчика искуственного интеллекта.
Я диплом социолога, вкатываюсь в айти по этому треду. 27 лет кун
Ответы: >>1475357
Аноним 2019/09/17 13:35:38  №1475357 12
>>1475351
>Я диплом
имею
быстофикс
someApprentice 2019/09/17 18:14:53  №1475571 13
Аноним 2019/09/17 18:28:10  №1475584 14
.png (38, 1001x326)
326x1001
.png (5, 814x65)
65x814
Как же я ненавижу ваш трижды выблядский красноглазый композер. ЧТО ЕМУ НЕ НРАВИТСЯ??? ПОЧЕМУ ОН ПИШЕТ ЧТО У МЕНЯ ВЕРСИЯ ХПХ 5, ХОТЯ Я ЛИТЕРАЛЛИ ВЫВОЖУ ПХПИНФО С 7 ВЕРСИЕЙ????
Ответы: >>1475646
Аноним 2019/09/17 19:00:30  №1475646 15
>>1475584
Веб-сервер у тебя сконфигурирован с 7.2, но композер ломится через консоль.
Посмотри что выведет php -v. И какие пути в переменной окружения PATH .
Ответы: >>1475687 >>1475690
Аноним 2019/09/17 19:38:47  №1475687 16
.png (6, 495x76)
76x495
>>1475646
Лолшто, почему так и как пофиксить?
Аноним 2019/09/17 19:44:57  №1475690 17
.png (9, 678x85)
85x678
>>1475646
Все, пофиксил в переменной PATH. Мне казалось это должно происходить автоматически со сменой версии в опенсервере.
Ответы: >>1475755
Аноним 2019/09/17 20:52:19  №1475755 18
>>1475690

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

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

Проверить текущее значение PATH в данной консоли (оно может быть разным для разных программ) можно командой echo PATH если я не путаю. В линуксе - echo $PATH
Аноним 2019/09/17 22:45:15  №1475794 19
>>1475289
Работодателю скорее важно, насколько хорошо ты умеешь обращаться с уже готовыми фреймворками, а не как ты умеешь писать свои костыли. Топовые фреймворки, которые написаны опытными разрабами, имеют хорошую архитектуру, они показывают употребление многих паттернов и включают в себя лучшие практики. Мне кажется, выгодней будет смотреться джун с простым проектом, который правильно реализовывает возможности фреймворка. Такой начинающий разработчик смотрится перспективней, нежели джун с, может быть, чуть более сложным проектом, но написанным на самопальном фреймворке с сомнительными практиками и антипаттернами.
Ответы: >>1475798
Аноним 2019/09/17 23:07:56  №1475798 20
>>1475794
Тоже на счет этого комплексую, что ли.
Не могу понять получается у меня в программирование или нет. Вот сделал я кое-какой проект(можно ли тот же файлообменник называть проектом? Ибо в моем кривом понимании "проект" - что то сложное, делающееся командой людей) на известном фреймворке Laravel/Yi2/Symfony. Но я в нем ничего тяжелого не вижу. Сложно было при обучении(глаза разбегаются, все не знакомо), когда я себе только цель поставил. А после выполнения я похожий проект сделаю в 5 раз быстрее, не особо напрягаюсь. Вот и сижу думаю: то ли так должно быть, то ли я хуйню какую то делал
задачи с шапки можно за проекты считать? на гит там заливать, в резюме отправлять? Кстати, спасибо ОП, за ценные гайды и советы

мимодругой
Ответы: >>1475803 >>1478766
Аноним 2019/09/18 00:03:38  №1475803 21
>>1475798
Same feels bro. У ОПа отличные задания, подающиеся с хорошей градацией сложности. После каждого из них чувствую себя другим человеком. Тот же самый файлообменник, если реализовать весь предложенный ОПом функционал, получается весьма непростым и комплексным проектом. Если не уверен в своих навыках программирования, можешь попробовать помимо основных веб-проектов делать что-нибудь интересное, что будет ставить перед тобой новые и необычные задачи, которые будут заставлять тебя читать соответствующую литературу и искать алгоритмы их решения. Например, я сейчас пробую делать простые игры на js и canvas. Кстати ещё много интересного для начинающих веб-разработчиков можешь найти тут https://github.com/kamranahmedse/developer-roadmap
Аноним 2019/09/18 02:48:59  №1475811 22
Не понял, нужно ли мне запоминать ОП про абитуриентов, но на всякий случай продублирую здесь

ОП, глянь задачу про абитуриентов, пожалуйста.
Гитхаб https://github.com/deadj/student-list
Хостинг http://f914421i.beget.tech
Ответы: >>1475812 >>1475940
Аноним 2019/09/18 02:50:06  №1475812 23
>>1475811
>запоминать
Напоминать

Быстросамофикс
Ответы: >>1475821
Аноним 2019/09/18 04:10:55  №1475821 24
>>1475812
Анон, если при регистрации у тебя на сайте в отправленном серверу запросе переменная year будет содержать число меньше 1919 или больше 2004, пользователю вернётся страница с выводом фатальной ошибки. Проверь первое условие метода checkYear() у валидатора. Также у тебя код не проверяет значения переменных accommodation и gender перед отправкой их в датабазу. Если при регистрации у тебя указать значения этих переменных, отличные от тех, что предусмотрены в форме, то php вернёт mysqli_sql_exception. Кстати тут тебя бы спасло перехватываение исключений, вот урок ОПа на эту тему - https://github.com/codedokode/pasta/blob/master/php/exceptions.md
Ответы: >>1477325 >>1478765
Аноним 2019/09/18 06:55:45  №1475867 25
ананас, помоги найти ... Короче задача, есть сайт, надо чтобы была регистрация, и пользователи могли прикреплять в отдельной странице свои файлы (сканы документов), а админ мог этим файлам проставлять текстовый статус (в работе, отклонено, принято, etc).

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


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

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

Ответы: >>1475987
Аноним 2019/09/18 07:24:48  №1475879 26
Перенёс бота для телеги на другой хостинг и заметил, что последовательные сообщения он стал отправлять куда медленнее. Сейчас потестил - 15 текстовых сообщений отправляются 3,5-4 и более секунды. На старом хостинге 1,6-1,7 секунд. От чего может быть такая разница? Использую curl. Можно как-то ускорить это?
Ответы: >>1475905
Аноним 2019/09/18 08:24:06  №1475905 27
>>1475879
Добавил это.
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
И вынес создание и закрытие сеанса curl за функцию.
Скорость не изменилась вообще. Наверное, придётся разбираться с сокетами? Или еще есть какие идеи?
Ответы: >>1476019
Аноним 2019/09/18 09:07:37  №1475940 28
>>1475811
Пиздец же, анон. Ты делаешь восемь блядь запросов к базе, чтоб достать одного студента. Не надо так. Не надо на каждое поле писать по методу, если оно не трогается и не будет трогаться отдельно где-то, сделай один метод, который будет работать сразу со всеми. Всякие createStudentFromDB() и иже с ним надо убрать из контроллеров, этому там не место. И не надо руками генерить id, есть автоинкремент для подобного.
Аноним 2019/09/18 10:16:51  №1475987 29
>>1475867
Тебе платят - ты и разбирайся.
Аноним 2019/09/18 11:03:54  №1476019 30
>>1475905
>И вынес создание и закрытие сеанса curl за функцию.
Я сделал это неправильно. Сейчас уменьшил время до 1,5 секунд за те же 15 сообщений. Меня устраивает результат, но если будут еще советы - будет интересно послушать.

Когда тестировал на сотне запросов, то разница могла быть и в 300%, и в 500+%. Но всякие CURL_IPRESOLVE_V4 и сжатие (почти?) не работают, по крайней мере в моем случае.
Ответы: >>1476028
Аноним 2019/09/18 11:21:16  №1476028 31
>>1476019
Наверное, быстрее всего будет просто делать curl_init в начале скриптов и curl_close в конце?
Аноним 2019/09/18 15:58:18  №1476270 32
1234567890.jpg (10, 300x270)
270x300
Аноны, в моём миллионнике на hh с фильтром "Нет опыта" и т.к. хочу совмещать с учебой "Гибкий график" сплошной 1с битрикс. Да, наслышан о мерзопакостности этого чуда , но выбора нет. Так вот, прошу помощи с источниками для изучения.
Ответы: >>1476278
Аноним 2019/09/18 16:11:00  №1476278 33
>>1476270
>наслышан о мерзопакостности этого чуда
Чем он плох?
Тут 1с тред есть.
Ответы: >>1476314
Аноним 2019/09/18 16:27:02  №1476293 34
15687960544060.png (12, 649x309)
309x649
Блять, забыл, что тред перекатили. Поэтому спрошу ещё раз.
Не совсем понял Query parameters.
На сайте должна быть строка по которой можно найти человека и если есть совпадения, то должны передаваться его id, first_name т.д. ?
Ответы: >>1476545
Аноним 2019/09/18 16:40:46  №1476314 35
>>1476278
Нагуглил уроки Михаила Базарова, но это 2013 год.
>Чем он плох?
Если верить прошлым тредам - всё криво, недружелюбно и запутанно.
>Тут 1с тред есть.
Не, я про Bitrix Framework. Правильно понимаю, что это система управления сайтом?
Аноним 2019/09/18 17:20:00  №1476366 36
>>1476314
>всё криво, недружелюбно и запутанно
Битрикс не трогал, но про вордпресс так можно сказать. Сделано максимально ебануто и не для людей.
Аноним 2019/09/18 18:53:27  №1476419 37
>>1476314
>Не, я про Bitrix Framework. Правильно понимаю, что это система управления сайтом?
на торрентах всё есть.
Аноним 2019/09/18 20:18:32  №1476482 38
>>1475112 (OP)
Вопрос по Laravel.
Я правильно понял, что для того чтобы просто считать данные из БД MongoDB нужно обязательно создать модели для каждой коллекции?

Переношу бэк с ноды. У меня куча однообразных коллекций, лень для каждой прописывать модели и контроллеры, на ноде всё через
общие циклы запилено.
Ответы: >>1476565 >>1478766
Аноним 2019/09/18 21:11:17  №1476519 39
>>1476314
>2013 год
Ничего с тех пор особо не изменилось
Аноним 2019/09/18 22:24:32  №1476545 40
>>1476293
ты же помнишь что ты делаешь апи а не сайт ?


Ответы: >>1476599 >>1476615
Аноним 2019/09/18 23:40:23  №1476565 41
Ответы: >>1476567
Аноним 2019/09/18 23:48:22  №1476567 42
>>1476565
Спасибо, то что нужно.
В ларавеле есть фича для регулярного выполнения задач?

https://laravel.com/docs/5.8/scheduling
Выше - с использованием cron (не для винды). Не хочу зависить от конкретного дистрибутива (чтобы в случае чего было легче сменить хостинг)
Ответы: >>1476568
Аноним 2019/09/18 23:50:43  №1476568 43
Ответы: >>1476569
Аноним 2019/09/18 23:51:59  №1476569 44
Аноним 2019/09/19 04:37:43  №1476599 45
>>1476545
Помню, но тогда как как сделать строку поиска ?
Ответы: >>1476615
Аноним 2019/09/19 05:58:12  №1476615 46
>>1476545
>>1476599
Блять, всё я понял. Пиздец я тупой нахуй
Аноним 2019/09/19 08:35:20  №1476679 47
Помогите: устроился работать после универа сделать компании сайт, плюс задачи эникейщика были (думал, сделаю несложный сайт, подучусь и джуном куда-то пойду). В итоге я выбрал Symfony под эту цель, сайт я сделал быстро, все ок, но к новой работе считал себя еще не готовым, а тем временем здесь добавилось текучки, плюс еще какие-то около-ИТ задачи навалились.

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

Теперь мне надо как-то уйти, так как сотрудники увольнялись, прошло 2 года почти здесь, задач иного плана еще больше стало, а я хочу быть программистом и вроде готов, но понимаю ведь, что после меня всё кто-то будет с нуля делать и, скорее всего, на какую-то CMS переведет. Получается, налажал и с задачей не справился, как уходить-то?
Ответы: >>1476752 >>1476767
Аноним 2019/09/19 10:16:55  №1476746 48
Аноны, подскажите, пожалуйста.

Откуда там может быть единица?
Ответы: >>1476774
Аноним 2019/09/19 10:19:46  №1476752 49
>>1476679
С таким изложением мыслей тебе вообще будет сложно по жизни. Сочувствую.
Ответы: >>1476767
Аноним 2019/09/19 10:41:33  №1476767 50
>>1476679
Просто уходи.
Не нужно брать на себя все грехи этого мира.
Ты 2 года делал то, что мог.

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

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

>>1476752
И ты тоже уходи.
Ответы: >>1476855 >>1476883
Аноним 2019/09/19 10:46:16  №1476774 51
>>1476746
Статическая переменная, хули тут непонятного.
Это как глобальная переменная, но, в пространстве имён класса. Ты изменил её в одном месте, прочитал в другом.
Ответы: >>1476797
Аноним 2019/09/19 10:51:20  №1476781 52
Котаны, пилю по работе сервис отчетов, система разграничения прав что имею - это мой личной говновелосипед.
Хочу повелосипедить, но уже в более грамотную сторону.
Пока что знаю о существования такого подхода как ACL. Какие еще варианты разграничения прав существуют?
И где по ACL почитать оченьподробно.
Ответы: >>1476838 >>1478764
Аноним 2019/09/19 11:07:01  №1476797 53
Аноним 2019/09/19 11:40:08  №1476838 54
>>1476781
Вопрос в том, к каким ресурсам ты хочешь давать/не давать доступ.
Если на уровне URL - это одно, на уровне объектов в БД - другое. И т.д.

В Java EE, например, используется вариант с URL и "ролями".
Пользователь имеет роли. В конфиге аутентификатора задаётся, какие URL (маски) доступны каким ролям. Проверка прав происходит прозрачно, при любом обращении к любому объекту по любому URL. При этом, в коде можно и явно запросить request.isUserInRole(roleName).
Ответы: >>1476888
Аноним 2019/09/19 12:03:00  №1476855 55
Ответы: >>1476883
Аноним 2019/09/19 12:36:38  №1476883 56
>>1476855
>>1476767
Верно, да и с ростом нагрузки/ответственности зарплата не менялась.

Забыл ответить про зону комфорта. Есть такой момент, но более меня беспокоит чувство незаконченности, долга и вины, хотя, конечно, обеим сторонам будет лучше от моего ухода: я найду другую работу — они найдут другого человека/компанию для решения своих задач. И чем раньше, тем лучше опять-таки для всех.
Ответы: >>1476889
Аноним 2019/09/19 12:45:20  №1476888 57
>>1476838
На данном этапе на уровне URL. Для каждого пользователя будет перечень доступных ему отчетов ( а их много разных будет, десятки ) будет браться из sql-базы.
В принципе конечная и утилитарная цель - буквально одна страница с перечнем доступных отчетов, и соответственно реализация функционала самих отчетов.
Пользователю в принципе особо не предполагается никаких функций кроме как заполнить поля формы,нажать кнопку отправить, и получить отчет.
Основной напряг в самих отчетах, база у нас оче-большая, запутанная и кривая.

Нов дальнейшем я допустим захочу прикрутить админку, личный кабинет ленту новостей, личные блоги, двач etc поэтому хочу заморочиться разграничением ролей.
Но не очень понимаю общую логику ни в ACL ни в RBAC. Чем одно от другого отличается и что лучше другого не знаю.
И инфы подробной нет, если есть сурсы, скиньте пожалуйста.
Ответы: >>1477183
Аноним 2019/09/19 12:45:49  №1476889 58
>>1476883
Ты прям как я с бывшей, лол
Аноним 2019/09/19 18:34:43  №1477183 59
>>1476888
>буквально одна страница с перечнем доступных отчетов
А если пользователь знает URL конкретного чужого отчёта?
Напр. у него были права на этот отчёт, потом их отобрали, а ярлык остался?

Делай как считаешь нужным - никаких жестких правил тут нет, если только ты не используешь какой-то готовый фреймворк.
Можно комбинировать роли (url) и списки (db objects) и т.п.
Ответы: >>1477420
Аноним 2019/09/19 22:40:50  №1477325 60
>>1475821
Спасибо, анон.
А каким образом можно отправить иные accommodation и gender, если это radio и post запрос?
Ответы: >>1477340 >>1478765
Аноним 2019/09/20 01:09:50  №1477340 61
>>1477325
Через инструменты веб-разработчика браузера ты можешь менять html и css веб-страницы. Например, ты можешь убрать атрибут required у input элемента, и форма не будет препятствовать отправке незаполненного поля. Или ты можешь поменять value у элемента, в одном из input gender поставить value что-то типа girl_inside, и форма будет содержать girl_inside в переменной gender при отправке на сервер. Поэтому никогда не полагайся на клиентскую сторону и всегда проверяй приходящие запросы.
Ответы: >>1477374
Аноним 2019/09/20 04:18:12  №1477374 62
Аноним 2019/09/20 05:24:27  №1477392 63
Анон, посоветуй самый минималистический php фреймворк для ковыряния и обучения. Чтобы вот вообще минимум-минимум, и без всяких там компосеров-хуезеров


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

(вообще в идеале бы фреймворк без этой допотопной MVC модели, а чего-нибудь другого или вообще без всякой хипстерской херки - просто код блядЪ)
Ответы: >>1477393 >>1477451 >>1478765
Аноним 2019/09/20 05:33:19  №1477393 64
>>1477392
Может тебе тогда библиотеки нужны, а не фреймворк?
Ответы: >>1477401
Аноним 2019/09/20 06:16:42  №1477401 65
>>1477393
может и библиотеки.
мне нужна регистрация и возможность грузить файлы со стороны клиента на сервер.
Аноним 2019/09/20 07:09:37  №1477420 66
>>1477183
Если не сложно, объясни будь добр как работает ACL.
Пусть на примере блога.
Есть страничка, на ней можно добавить статью, редактировать, удалить статью.
page/add
pagr/delete
page/redact
группа users может только добавлять статью, admins - все вообще.

Как тут прикрутить ACL, нихуя подробного обьяснения найти не могу. Везде только абстракции

Ответы: >>1477583 >>1477597
Аноним 2019/09/20 08:09:52  №1477451 67
>>1477392
>вообще в идеале бы фреймворк без этой допотопной MVC модели
Уважаю. И чтобы база данных деревянная такая, со счетами, в чулане стояла
Аноним 2019/09/20 08:32:48  №1477464 68
Какой редактор кода почоветуете на смартфон поставить? Или любой популярный сгодится?
Аноним 2019/09/20 09:57:55  №1477537 69
1
Аноним 2019/09/20 10:42:56  №1477583 70
Ответы: >>1479250
Аноним 2019/09/20 11:05:27  №1477597 71
>>1477420
>нихуя подробного обьяснения найти не могу. Везде только абстракции
Потому, что вся конкретика зависит от твоего конкретного приложения.
Это (в теории) простая тема, и, возможно, ты ищешь сложности там, где их нет. Перестань засирать себе мозг терминологией типа ACL, не имеющей отношения к задаче, и решай задачу.

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

Например, можно просто в коде метода вызывать $user->hasRight(CREATE_POST)
Соответственно, у тебя должны быть права (фиксированный набор) и группы (изменяющийся набор).
Группы - строки в таблице, права - колонки. 1 = есть, 0 = нет. По-умолчанию - 0.
Как связать пользователей (логины) и группы, я думаю, ты догадаешься.

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

И ресурсы, и права и пользователей можно объединять в группы - вводить дополнительный уровень обобщения (рисовать круг вокруг точек). И строить связи уже между группами. Или можно объединять в группы только что-то одно, например, пользователей. Как построить связи в БД ты должен знать.

Можешь ещё посмотреть, как эта задача решается в имеющихся опенсорсных приложениях.
Ответы: >>1479250
Аноним 2019/09/20 11:36:31  №1477616 72
Может быть запилить чатик? Не всегда удобно писать здесь
Ответы: >>1477632
Аноним 2019/09/20 11:57:35  №1477632 73
Аноним 2019/09/20 12:33:10  №1477646 74
Screenshot37.png (6, 409x174)
174x409
Что это за говно? Они же одинаковые.
Как phpunit, так и сравнение на типы (===) показывает, что массивы разные.
Ответы: >>1477652
Аноним 2019/09/20 12:42:28  №1477652 75
>>1477646

Посмотри внимательно. Пробел и подчеркивание. Будь внимательнее. И радуйся, что различие в видимых символах, а не в невидимых (если такое будет, то сдампь строки побайтово для сравнения, например, функцией bin2hex, хотя неудобно, что она пробелы между числами не вставляет, читать неудобно).
Ответы: >>1477665
Аноним 2019/09/20 12:58:19  №1477665 76
>>1477652
Вот же пиздец, ничего себе.
Спасибо.

Короче дело в том, что это json_encode заменил пробел на символ подчеркивания какого-то хуя.
Ответы: >>1477680
Аноним 2019/09/20 13:16:11  №1477680 77
>>1477665
Я неправильно парсил json-запрос.
Надо так:
$jsonInputDecoded = \json_decode(\file_get_contents('php://input'), true);
Аноним 2019/09/20 13:51:26  №1477691 78
Ответы: >>1478764
Аноним 2019/09/20 14:07:47  №1477703 79
15627712287050.jpg (49, 523x599)
599x523
Поцоны, помогите с SQL-запросом.
Есть в нем строка IF('down' IN (сложный подзапрос), 'down', 'up') AS state. Сложный подзапрос возвращает таблицу из строк вида up и down, однако, может вернуть и пустую таблицу, в таком случае state должно стать NULL, а сейчас оно становится up. Как пробросить NULL наружу, не городя два IF с идентичными запросами?
Ответы: >>1477727 >>1478764
Аноним 2019/09/20 14:42:45  №1477727 80
>>1477703
Переделывать на join'ах надо, я думаю.
Аноним 2019/09/20 19:18:08  №1478012 81
>>1475112 (OP)
Как лучше всего хранить длинные JSON-строки (несколько мегабайт), используя Laravel. Config::set?
Аноним 2019/09/21 15:20:30  №1478482 82
Сап двощь. Длинный вопрос про архитектуру. Например, есть правило, что если юзер забанен, то он не может писать комментарии в тред. И допустим этот юзер пытается отправить комментарий, наш код на сервере(например прямо в контроллере или сервисе, или просто в наших бизнес моделях) перед тем как запушить комментарий в тред проверяет через if user->canSendComment(), в котором уже будет проверка на бан пользователя и т.д. Вопрос в чем, во многих фреймворках есть компоненты для работы с этими вещами, в ларавел это гейты и полиси, их можно сразу к рутам биндить даже, в симфони недавно читал про voters но сам не пользовался.

В итоге получается что пользователь таки может отправить комментарий будучи забаненным, просто наш клиентский код в контроллере или сервисе не дает сделать вызов какого-то send метода у треда или сообщения. И если этот if убрать то всё как бы и ок и отправится, в бд появится запись, хотя наше приложение может и не готово к такому событию. Мне кажется что лучше просто попробовать отправить сообщение без всяких проверок(например тред удален, пользователь забанен и т.п.), а контроллировать весь процесс валидации в самих методах бизнес модели и выбрасывать исключения, а в контроллере или сервисе ловить, обрабатывать, отсылать ответ. Получается что наша папка с Entity(я просто доктрину использую) может быть польностью скопирована в другой проект, или просто работать вообще без фреймворков, т.к. абсолютно весь код от начала до конца именно в этих объектах и еще каких-то доп. бизнес моделях если нужно. Мне такой подход кажется более консистентным
Ответы: >>1478489 >>1478599 >>1478761
Аноним 2019/09/21 15:30:52  №1478489 83
>>1478482
Дополню, что есть большой(или не очень) минус в дублировании кода валидации скалярных переменных. На примере того же комментария, мы хотим ограничить его содержимое по длине в 255 символов. Фреймворк дает тулзы для валидации переменных в запросе, мы этими тулзами пользуемся и всё ок, если хттп клиент отсылает невалидные данные, то мы ему отправляет ответ с сообщением об ошибке. Но, если мы делаем валидацию входных параметров в самих бизнес моделях, то мы должны скорее всего продублировать их и в конструкторе. Это опять же дает возможность не зависить от одного хттп контекста, а использовать приложение через консоль и другие транспорты, но конкретно в хттп получается дублирование кода. У меня просто такое чувство что с таким подходом можно писать больше юнит а не integrity тестов
Аноним 2019/09/21 18:00:45  №1478599 84
>>1478482
Возможно.

И, если ты хочешь повысить тестируемость, то не нужно выбрасывать исключения, а нужно возвращать объект-контейнер - success или error, с какими-то данными внутри.
Особенно, если речь о проверке бана и т.п. - это не исключение вообще.

Вот пример:
https://developers.braintreepayments.com/reference/general/result-objects/php

Можно гуглить Result object, Either, Maybe, etc.
https://marcosh.github.io/post/2017/06/16/maybe-in-php.html
Ответы: >>1478762
23-84 Аноним 2019/09/21 22:00:24  №1478761 85
>>1478482

Валидацию логично делать в виде отдельной функции. Например, в каком-то сервисе. Если ты делаешь валидацию в отдельном методе, например:

public function validateComment(Comment $comment): array
{

}

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

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

Что касается Ларавел - там есть классы для валидации, и я не вижу никаких проблем использовать в том числе и их внутри описанной выше функции ( https://laravel.com/docs/5.8/validation#manually-creating-validators ).

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

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

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

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

> в симфони недавно читал про voters но сам не пользовался.

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

> а контроллировать весь процесс валидации в самих методах бизнес модели и выбрасывать исключения, а в контроллере или сервисе ловить, обрабатывать, отсылать ответ

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

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

Не понял где дублирование, если мы сделаем функцию валидации, как я описал выше.
Ответы: >>1478780
Аноним 2019/09/21 22:01:28  №1478762 86
>>1478599

Имхо эти объекты - переусложнение. Если тебе хочется типизации, то есть несколько вариантов:

- сделать объект ErrorList
- вспомнить, что для представления ошибок есть исключения и возвращать массив исключений

В чем смысл делать объект Success или Maybe, я не понимаю. Если ошибки нет, можно вернуть просто пустой список ошибок.

> Вот пример: https://developers.braintreepayments.com/reference/general/result-objects/php

Имхо, это бесполезные объекты. Зачем делать обертку для массива, который мы отдадим в JSON? По моему, так контроллер для метода API выглядит примерно так:

public function getUsersByCity(City $city) {
$users = $this->userFinder->findBycity($city);
$userArray = $this->jsonHelper->exportUsers($users);

return $this->json(200, [
'users' => $userArray
]);
}

Зачем сюда добавлять какие-то объекты-обертки, какой цели они служат, какие преимущества дают, я не понимаю.

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

> Можно гуглить Result object, Either, Maybe, etc. https://marcosh.github.io/post/2017/06/16/maybe-in-php.html

Опять же, тут введение такой "монады" представляется излишним усложнением. Скорее всего оно даст увеличение объема кода относительно варианта с использованием null. Есть какой-то пример кода, демонстрирующий преимущества? Там пока я вижу 3 класса, которые должны заменять вариант с использованием null.

Если там предлагается использовать это как-то так:

$maybeUser = findUserByEmail('x@example.com');
$maybeName = $maybeUser->map(function ($user) {
return $user->getName();
);

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

$user = findUserByEmail('x@example.com');
$name = $user ? $user->getName() : null;

Или в сравнении с

if (!$user) {
throw new Something(...);
}

$name = $user->getName();

Плюс, этот Maybe неудобно передавать в функции, так как если мы ставим тайпхинт Maybe, то нам приходится все передаваемые значения оборачивать в этот Maybe.
Ответы: >>1478768
Аноним 2019/09/21 22:02:15  №1478764 87
>>1477703

Можно приджойнить подзапрос и написать SELECT COUNT(x = 'down') AS downs, COUNT(x = 'up') AS ups FROM ... JOIN подзапрос GROUP BY ....

Можно попробовать переделать подзапрос на

SELECT ....
(SELECT CASE WHEN SUM(x = 'down') > 0 THEN 'down' WHEN SUM(x = 'up') > 0 THEN 'up' ELSE 'null' ... ) AS state,
...

>>1477691

Если такие ссылки тут запрещены, то ничем не могу помочь.

>>1476781

ACL это просто список разрешений (Access Control List). Он используется, например, для контроля доступа к файлам. Там просто у каждого файла есть ACL, в нем перечислены пользователи или группы и их права (читать, писать, удалять, создавать). И также права могут наследоваться от родительского каталога.

Тебе надо гуглить RBAC (role-based access control). Там каждому пользователю назначается одна или несколько ролей, а в конфиге или в коде ты определяешь связь между ролями и разрешениями (например: разрешение "удалить пост" есть у ролей "модератор" и "автор поста").

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

Ты можешь посмотреть компонент Symfony Security, это библиотека, которую можно использовать отдельно от Симфони: https://symfony.com/doc/current/security.html
Ответы: >>1486282
Аноним 2019/09/21 22:03:56  №1478765 88
>>1477392

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

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

> Да еще и ссылки в итоге упоротые (да и сам постоянно забываю как какую страницу надо открывать - маршрутизация не спасает)

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

>>1475821

> Если при регистрации у тебя указать значения этих переменных, отличные от тех, что предусмотрены в форме, то php вернёт mysqli_sql_exception. Кстати тут тебя бы спасло перехватываение исключений

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

>>1477325

Утилитой командной строки curl или программами типа postman можно сформировать и отправить любой запрос с любыми параметрами.

curl -X POST --data accomodation=12345 https://example.com/register
Аноним 2019/09/21 22:04:56  №1478766 89
>>1476482

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

>>1475798

> Не могу понять получается у меня в программирование или нет.

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

> Но я в нем ничего тяжелого не вижу. Сложно было при обучении(глаза разбегаются, все не знакомо), когда я себе только цель поставил. А после выполнения я похожий проект сделаю в 5 раз быстрее, не особо напрягаюсь. Вот и сижу думаю: то ли так должно быть

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

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

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

> Ибо в моем кривом понимании "проект" - что то сложное, делающееся командой людей) на известном фреймворке Laravel/Yi2/Symfony.

Этим ты будешь заниматься после устройства на работу.
Ответы: >>1481756
Аноним 2019/09/21 22:13:20  №1478768 90
>>1478762
>то нам приходится все передаваемые значения оборачивать в этот Maybe.
Нет. Есть такое слово "lifting".
Но, это отдельная тема, далеко выходящая за рамки пыхотреда.

И да, ты прав, на php так обычно не пишут.
Особенно ньюфаги.
Аноним 2019/09/21 22:34:20  №1478771 91
Подскажите как простейшим способом сделать на странице звук щелчка? Нужно что бы когда происходит что-то то простой глуховатый звук проигрывался периодически.
Ответы: >>1478777
Аноним 2019/09/21 22:56:10  №1478777 92
Аноним 2019/09/21 23:08:59  №1478780 93
>>1478761
Я просто пока не пойму одну вещь в ооп, вот делаю я публичный конструктор, мой класс любой может трогать, а в тайпхинте например стоит просто стринг, хотя чтобы класс работал корректно нужна строка именно не больше 255 символов. Должен ли я отдавать клиенту моего класса возможность передать некорректные данные? Можно канеш упороться и создать какой-то класс String255. От этого и сомнение где делать валидацию каких-то бизнес действий, что по сути тоже бизнес логика. Есть у меня класс Thread, хочу я туда закинуть сообщение через какой-то метод, должен ли сам объект треда всегда хавать любой объект Message, который ему дают? Если давать управление этой логики какому-то сервису уровнем выше, то получается что и большая часть поведения у моих домен объектов переносится в этот сервис.

Ответы: >>1478783
Аноним 2019/09/21 23:15:41  №1478783 94
>>1478780

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

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

Но ты можешь попробовать поэкспериментировать с таким подходом и рассказать про результаты.
Аноним 2019/09/22 14:10:18  №1479208 95
Ответы: >>1479223
Аноним 2019/09/22 14:41:28  №1479223 96
>>1479208
на nnm-club возможен бесплатный просмотр.
Ответы: >>1479225 >>1479229
Аноним 2019/09/22 14:43:51  №1479225 97
>>1479223
Я тоже сразу туда пошел, но чет не нашел, ща ещё гляну.
Аноним 2019/09/22 14:49:07  №1479229 98
>>1479223
Ну все нашёл, кайф, спасибо.
Аноним 2019/09/22 15:24:05  №1479250 99
>>1477583
>>1477597
Спасибо. Примерно понял, буду реализовывать в своем приложении фрейм-ворке
Аноним 2019/09/22 19:40:54  №1479507 100
Ответы: >>1479574 >>1479739
Аноним 2019/09/22 21:36:11  №1479574 101
>>1479507
очередной говнокурс инфу о котором можно найти в открытом доступе.
Ответы: >>1479735
Аноним 2019/09/23 09:15:05  №1479735 102
>>1479574
зачем собирать всё по крупицам, когда можно взять из одного места. Ммм?
Аноним 2019/09/23 09:17:03  №1479739 103
>>1479507
Вольный пересказ Рефакторинга Фаулера с картинками
Аноним 2019/09/23 10:18:46  №1479761 104
Знающий ано, подскажи по композеру. Пытаюсь добавить в проект библиотеку из гита, а он выдает ошибку:
>- The requested package jamesheinrich/getid3 could not be found in any version, there may be a typo in the package name.

вот сама библиотека
https://github.com/JamesHeinrich/getID3

вот что в джейконе пишу
"require": {
"slim/slim": "^3.0",
"slim/twig-view": "^2.5",
\t"jamesheinrich/getid3": "dev-master"
},
\t"repositories":[
{
"type":"git",
"url":"https://github.com/JamesHeinrich/getID3"
}
],
пытался через композер инсталл, инсталл говорит "сначала обнови". Обновляю, выдает ошибку. Подскажи в чем проблема?
Ответы: >>1479763 >>1479941 >>1479966
Аноним 2019/09/23 10:30:36  №1479763 105
>>1479761
Аноны, нашел такой же пакет на pacegist.org и все, тьфу-тьфу, заработало. Но все равно не понимаю, почему с гитом не получилось?
сёга 2019/09/23 12:42:34  №1479893 106
Как думаете конвертация вордовских файлов в хтмл странички в качестве тестовго задания тянет на кидалово?
Ответы: >>1479941
Аноним 2019/09/23 13:44:21  №1479941 107
>>1479761
Я зашел в композер.жсон в репе и вот что там написано
> "name": "james-heinrich/getid3",
Попробуй с дефисом установить

>>1479893
Я видел даже в средних компаниях тестовое это бложик или список сотрудников какой-то, с последующим усложнением фич вроде аякса, требований к времени ответа при определенном количестве записей в бд(например чтобы ты не использовал встроенную пагинацию с дефолтными настройками, которая может быть медленной при больших данных), то есть чисто учебный юзлесс проект, но который показывает как ты пишешь код. А конвертер док в хтмл это какое-то говно, к тому же в таких конвертерах код обычно идет лапшой потому что нужно быстро а не красиво, ну и думай что они хотят от тебя
Ответы: >>1480050
Аноним 2019/09/23 14:03:08  №1479966 108
>>1479761

> пытался через композер инсталл, инсталл говорит "сначала обнови"

Не понял. Надо было привести полностью текст из консоли.

В твоем конфиге композера указан repositories. Не его указывать не надо, так как getId3 есть в стандартном репозитории композера packagist ( https://packagist.org/?query=getid3 )

Далее, прочитай документацию по версиям и по опции stability: https://getcomposer.org/doc/articles/versions.md#minimum-stability

В заключение еще можешь прочесть https://getcomposer.org/doc/faqs/why-are-unbound-version-constraints-a-bad-idea.md

Если у тебя есть composer.lock, то удали его перед повторением попытки.

Если после этого остались какие-то вопросы, задавай.

Ответы: >>1480050
Аноним 2019/09/23 15:11:57  №1480050 109
>>1479941
>>1479966
По композеру спасибо, аноны, сейчас все хорошо. Я, видимо, две ошибки допустил: не посмотрел, что нужная библиотека уже есть на пакеджисте и в названии дефис пропустил. Спасибо еще раз
Аноним 2019/09/23 16:06:04  №1480103 110
Может кто плиз дать вк свой чтобы помочь?)
Ответы: >>1480116
Аноним 2019/09/23 16:06:53  №1480106 111
Может кто дать вк и помочь подробно с задачей плиз?
Ответы: >>1480116
Аноним 2019/09/23 16:11:36  №1480116 112
Аноним 2019/09/23 16:44:13  №1480175 113
Анончики, я правильно понимаю, что Slim нужно использовать вместо самописного роутера, который был в задаче про список абитуриентов, и на этом его функционал кончается?
Ответы: >>1480603 >>1480645
Аноним 2019/09/23 22:30:10  №1480499 114
Анон, хочу будить свой комп POST-запросом на свой сервер. Код ниже работает, но я впервый раз пишу что-то на PHP. Всё ли я верно сделал? Что можно улучшить? Какие можно придумать альтернативные решения для пробуждения пека запросом?
[code]
<?php
$mac = '<MAC-адрес моего кудахтера>';
$json = file_get_contents('php://input');
$data = json_decode($json);
$pass = "password";
$getPass = $data->pass;

if ($getPass == $pass) {
exec("wakeonlan $mac");
echo 'Success!';
} else {
echo 'Test!';
}
[/code]
curl -d '{"pass": "password"}' -X POST https://<domain>/wol.php
Ответы: >>1482737
Аноним 2019/09/24 08:10:56  №1480603 115
>>1480175
Там еще есть маленькие удобные штучки типа встроенного функционала работы с загруженными файлами $request->getUploadedFiles(), тебе не надо свой класс придумывать. Плюс можно совместимый шаблонизатор твиг приделать. Аноны выше писали что он в основном для api используется
Ответы: >>1480729
Аноним 2019/09/24 10:26:46  №1480645 116
>>1480175
В Слим можно подключить шаблонизатор, логгер, орм через контейнер зависимостей. Зависит от задач.
Ответы: >>1480729
Аноним 2019/09/24 12:16:02  №1480729 117
Аноним 2019/09/24 12:29:08  №1480735 118
Аноним 2019/09/24 13:57:04  №1480790 119
Представляете, а я только что завалил собеседование на первом же вопросе: -«Сколько вам лет?», и я ответил: -«Давайте лучше перейдём к вопросам о моих навыках.», и всё интервью посыпалось.

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

Я не понимаю как можно устроится на работу, если важны такие глупости как возраст.
Ответы: >>1480814 >>1486805 >>1487339
сёга 2019/09/24 14:05:27  №1480799 120
выполнил тестовое на вроде неплохую вакансию по зп но
сразу написал во первых что это cli скрипт и надо ставить зависимости
но мне ответили что не могут запустить и кидают ссылку на файл на шареде
вот теперь не знаю даже если переделанный под веб хостинг примут стоит ли работать с такими программистами
немного сочувствую теперь их организации
Ответы: >>1480814 >>1483192
Аноним 2019/09/24 14:33:51  №1480814 121
>>1480790
>Я мог бы дотошна, без сучка и задоринки выполнять каждую их задачу, но вопрос возраста для них важнее.
не понял тебя, а почему ты расстраиваешься? Если людям важен возраст, то это опреорей плохая контора и только время там потратишь.

>>1480799
>стоит ли работать с такими программистами
>немного сочувствую теперь их организации
тут есть другая сторона вопроса - если ты будешь умнее всех их, то за тебя будут держаться, повышать зарплату и ваще незаменимых не увольняют.
Ответы: >>1480879
Аноним 2019/09/24 15:47:12  №1480879 122
>>1480814
>>Я мог бы дотошна, без сучка и задоринки выполнять каждую их задачу, но вопрос возраста для них важнее.
>не понял тебя, а почему ты расстраиваешься? Если людям важен возраст, то это опреорей плохая контора и только время там потратишь.
Спасибо, Аноним. Я как раз этими мыслями себя и успокаиваю. Мне просто кажется, что так каждая компания будет собеседовать.

К примеру, у меня нету опыта работы и 26 лет, но 4-5 лет опыта разработки, и если я назову свой возраст, то у собеседователя возникнет вопросы "а чем я всё это время занимался?" или "почему нет опыта работы?", или "почему у меня нет образования?", и отвечая на эти вопросы у него возникнут ещё больше вопросов. Это ошибка отвечать на них.

Что нужно отвечать на вопрос о возрасте? Я считаю что так же попросить перейти к следующему вопросу.
Аноним 2019/09/24 17:22:33  №1480945 123
Ребята подскажите пожалуйста. Делаю калькулятор с формами html. Присутствуют две текстовые формы (а и b) и форма в виде списка с операциями(слож, вычитание, деление и умножение). Так вот, как соединить операцию из списка с формами а и б? Чтобы при нажатии в списке сложить, числа в текстовых строках складывались, при вычитании вычитались и т д?
Ответы: >>1481114
Аноним 2019/09/24 18:12:09  №1480994 124
Ребята, это нормально, что при изучении пхп я чувствую себя дико глупым? Простейшие какие-то задачки я решаю по 20-30 мин и бывает, что вообще сдаюсь и подсматриваю решение на том же codebasics в обсуждениях.
Все прям очень туго идет, хотя есть интерес, желание, мотивация.
Ответы: >>1481114 >>1481590
Аноним 2019/09/24 19:17:04  №1481114 125
>>1480945
Не понел зачем тут пэхэпэ? На жабаскрипте же все делается. Либо все "инпуты" засунуть в одну форму. И на серваке уже смотришь какой параметр прилетел из третьего инпута и делаешь чо надо с данными из первых двух
>>1480994
Какого ты ответы ждёшь?
1. Да это нормально. не парься. вся жизнь в впереди.
2. нет это не нормально! В твои годы билгейц уже изобрел компуктеры а курткобейн сидел на героине а ты пэхэпэ не можешь освоить капец.
Не сиди на дващах а сиди и учи дальше если интересно. А если не интересно то забей хуй. Все просто.
Ответы: >>1481133
Аноним 2019/09/24 19:42:58  №1481133 126
>>1481114
Ну, да. Я реально хуиту спросил. Сорян
Аноним 2019/09/25 13:53:05  №1481589 127
>>1480879
>а чем я всё это время занимался?
аноны из работо-треда очень годный ответ посоветовали: говори что все это время работал неофициально\без оформления у знакомого. Никто не будет твоего знакомого искать
Ответы: >>1481810
Аноним 2019/09/25 13:55:14  №1481590 128
>>1480994
>Простейшие какие-то задачки я решаю по 20-30 мин
ну они столько и решаются, не волнуйся вообще. Я бы на твоей месте больше беспокоился о том, что ты натурал. Потому что, судя по современным веяньям, все прогеры - геи
Ответы: >>1481613 >>1481618
Аноним 2019/09/25 14:42:43  №1481613 129
Аноним 2019/09/25 14:49:40  №1481618 130
>>1481590
С чего это ты взял, что он натурал? Может он тот еще любитель питонов
Аноним 2019/09/25 15:40:05  №1481649 131
Перекатываюсь с питона. Встал вопрос: как распаковать значения из генератора? Типа как через list для массивов.
Аноним 2019/09/25 16:18:40  №1481661 132
>>1480879
>К примеру, у меня нету опыта работы и 26 лет
И что? ты считаешь что этот возраст уже ВСЁ?
Аноним 2019/09/25 19:01:49  №1481756 133
>>1478766

>Так и должно быть. Задача на файлообменник для того, чтобы научиться пользоваться фреймворком.
Дело в том, что я на Ларавеле пытаюсь делать. Много там всего, конечно. Смотрю тот 20-часовой курс по созданию форума с ларакаста, чтобы в фреймворке разобраться, посмотреть как правильно писать. Ясное дело, что тот кто курс этот записывал - тот еще синьёр-помидор, но как же он быстро и на автоматизме это делает. Я когда на работу устроюсь, вокруг все так быстро пишут? Вообще не могу понять, зачем джуны нужны, если один такой синьёр за 3 рабочих дня сделает проект, который несколько джунов будут ковырять месяц.

>Если ты хочешь еще что-то изучить, то я бы не советовал делать то же самое
Спасибо. Учить всегда есть что. У меня глаза разбегаются, пытаюсь откусить всего по чуть чуть. Вроде и все это нужно, но в то же время хочется сосредоточиться на чем нибудь одном
Ответы: >>1482342
Аноним 2019/09/25 19:38:06  №1481780 134
123.jpeg (45, 717x640)
640x717
>>1480879
Женат?
Мне тоже 26
Не хочешь объедениться?
Аноним 2019/09/25 19:38:27  №1481782 135
>>1480879
Женат?
Мне тоже 26
Не хочешь объедениться?
Аноним 2019/09/25 20:36:39  №1481810 136
>>1481589
Двачую, знакомая устроилась js джуном в 29 лет, сказала, что работала неофициально в поддержке интернета, больше ее ниче не спрашивали, при чем она по образованию - химик.
Аноним 2019/09/25 21:15:38  №1481829 137
Здесь есть люди, которые вкатились в 25+? Насколько это реально?
Ответы: >>1481848 >>1482024 >>1482644
Аноним 2019/09/25 21:33:59  №1481848 138
>>1481829
А почему нет? Я 20-летний студент, не понимаю что зависит от возраста? Как по мне, так наооборот - это показывает что человек в свои года нашел силы, сел учить/заниматься ремеслом веб-проганья.

Меня больше волнует вопрос о дипломе. Нужен ли вообще, если нужен - то смотрят ли на престижность вуза и т.д.
Ибо я в своих пердях учусь, мне даже лабы делать тошно. Из программирования был только предмет с алгоритмами (сортировки, графы, хэш-таблицы), и на том дед просто сказал "Вирта читайте епта". Остальные предметы зачастую вызывают смех, например когда препод Религовед всю пару рассказывает что Украины завтра не станет.
У меня мнение такое, что ну такие вузы нахуй, ведь работодателю нужна не корочка, а человек который будет делом заниматься. Но это только мое мнение, может кто из более опытных ребят считает по другому?
Ответы: >>1482028
Аноним 2019/09/26 08:18:10  №1482024 139
>>1481829
>Здесь есть люди, которые вкатились в 25+?
Анон, я тебя удивлю, но, судя по уровню образования, который дают в институтах, ВСЕ вкатываются в 25. В столицах да, тебе прямо в универе будут питоны давать. А на фронтире ты будешь пять лет учить социологию, историю и фокс-про с аксессом по учебникам 60-х годов. И это на IT специальности. Так что после универа такому прогеру с чистого листа вкатываться придется как раз в 25
Аноним 2019/09/26 08:20:27  №1482028 140
>>1481848
>ведь работодателю нужна не корочка, а человек который будет делом заниматься
в молодых прогрессивных или западных фирмах - да. В гос-организацию скорее возьмут чела с дипломом. Другое дело, что в гос-организациях обычно платят так себе, поэтому большая текучка, и в конце концов возьмут любого
Аноним 2019/09/26 11:54:28  №1482255 141
Как правильно производить авторизацию с использованием сессий и куки?
Ответы: >>1482308
Аноним 2019/09/26 13:34:32  №1482308 142
Аноним 2019/09/26 14:36:50  №1482342 143
>>1481756
>Вообще не могу понять, зачем джуны нужны, если один такой синьёр за 3 рабочих дня сделает проект, который несколько джунов будут ковырять месяц.
Ну так джуны так же за 3 дня должны написать такой форум.
Ответы: >>1482352
Аноним 2019/09/26 14:58:31  №1482352 144
>>1482342
Как? Если это не форум, а какой то новый проект. У синьера когда он код пишет, уже в голове план что будет даьше делать. А у джунов такого опыта нет, да и знания в php/смежных технологиях не так велики могут быть
Аноним 2019/09/26 18:48:45  №1482568 145
Ответы: >>1488679 >>1496950
Аноним 2019/09/26 20:15:04  №1482633 146
Аноны, какие жизнено важные JS фишки нужно знать? Такие как Ajax
Аноним 2019/09/26 20:24:01  №1482644 147
>>1481829
Вкатился в 28, спрашивайте свои ответы.
Аноним 2019/09/26 20:28:34  №1482652 148
>>1482644
Что на собеседовании спрашивали? Что было в портфолио?
Ответы: >>1482669
Аноним 2019/09/26 20:39:40  №1482666 149
Аноним 2019/09/26 20:40:53  №1482669 150
>>1482652
В резюме указал навыки, которыми владею, то есть фреймворк пхп, разные базы данных, гит и ссылку на гитхаб с двумя говно проектами. Про опыт напиздел, что отработал около года в местной студии.
На собесе ничего необычного, тян расспрашивала про опыт, сколько человек было в команде, задавала вопросы по языку, разные штуки на логику. После разговора думал я пиздец зафейлил, но через пару недель позвонили и предложили оффер.
Алсо, даже с таким хуевым резюме как у меня и немаленькими запросами на ЗП для джуна, мне стабильно раз в пару недель звонят эйчары зовут на собес, понятия не имею хули вы тут сидите дрочите годами.
Ответы: >>1482674 >>1482675 >>1491893
Аноним 2019/09/26 20:44:01  №1482674 151
>>1482669
Какого рода говнопроекты? Что за вопросы по языку? Сам сейчас пишу резюме, пездос.
Ответы: >>1482684
Аноним 2019/09/26 20:46:49  №1482675 152
>>1482669
Какой фреймворк? Js, верстка на каком уровне была? Город? Сейчас тебе сколько или только получил оффер?
Ответы: >>1482684
Аноним 2019/09/26 20:57:58  №1482684 153
>>1482674
Проекты уровня реализации работы функций фреймворка, ничего особенного не выдумывал. А вопросы ну типа показывают сложную конструкцию на языке и просят объяснить что это такое. Еще спрашивали какие-то базовые штуки про js и верстку, здесь ничего сложного.

>>1482675
>Какой фреймворк?
yii
>Js, верстка на каком уровне была?
Верстка слабая, пилил по гайдам барбершоп, но самостоятельно сейчас не смог бы такое повторить. Js немного знаю, но не углублялся, достаточно чтобы изучать фреймворки. Алсо, не знаю как в других конторах, но мне кажется бекэнд кодера не должны заставлять верстать, максимум задачи уровня добавить кнопку в форму, то есть что-то максимально простое. То есть, если ты условный барбершоп сверстал, этого с головой хватит.
>Город? Сейчас тебе сколько или только получил оффер?
Сам с задницы мира, сижу на удаленке, 28 лет, начал работать с этого года.
Ответы: >>1482855
Аноним 2019/09/26 23:21:13  №1482737 154
>>1480499
>Какие можно придумать альтернативные решения для пробуждения пека запросом?
wolcmd
У меня батник будит по удалёнке нетбук через неё.
Аноним 2019/09/27 00:56:24  №1482751 155
>>1482644
Сколько времени потребовалось на вкат?
Есть ли ВО?
Ответы: >>1482823
Аноним 2019/09/27 06:33:26  №1482808 156
Подскажите почему со временем могут пропадать php воркеры? Раз в несколько дней приходится делать на серваке php restart, в конфиге минимальное число задано, но все равно со временем пропадают.
Аноним 2019/09/27 07:18:01  №1482823 157
>>1482751
Вышка есть. Вкатывался два года, но если убрать большие перерывы, то получится около одного. Думаю, студентики могут легко уложиться в месяцев 6, потому что у них больше свободного времению
Аноним 2019/09/27 07:58:52  №1482855 158
>>1482684
На каком сайте ты резюме выкладывал чтобы тебе аж по сто человек в день стучаться, аношка? И дай ссылку на резюме. Не умею резюме составлять
Ответы: >>1482863 >>1482873
Аноним 2019/09/27 08:09:44  №1482863 159
14243349517532.gif (1466, 360x239)
239x360
>>1482855
поясните про сфинкс, аноны. В задаче про файлообмен надо поиск делать на сфинксе. Чем он хорош? Он быстрее? Он популярней? Это стандарт разработки?
Аноним 2019/09/27 08:27:41  №1482873 160
>>1482855
На hh.ru. Ссылку не дам, потому что деанон. Там не 100 человек в день. Всего за три месяца что резюме висело получил 100 просмотров. Из 40 откликов на вакансии что я оставлял, ответили примерно на 15, из них может 5 скинули тестовое или пригласили собеседоваться. Кроме этого еще на телефон звонят периодически, он тоже указан там.
Ответы: >>1482879
Аноним 2019/09/27 08:39:45  №1482879 161
Аноним 2019/09/27 08:59:28  №1482891 162
>>1482644
Сколько зп джуна на удаленке?
На москву или бугор?
Ответы: >>1483246
Аноним 2019/09/27 09:37:36  №1482909 163
Анины, не могу найти нормальное руководство по sphinx. Может кто знает ссылку? На хабре статья "для новичков" начинается с "ну мы уже установили сфинкс и сделали представление, давайте щас потестируем"
Ответы: >>1482965
Аноним 2019/09/27 10:31:30  №1482965 164
>>1482909
Делай на Slim. Или на большом фреймворке.
Ответы: >>1482968
Аноним 2019/09/27 10:37:02  №1482968 165
>>1482965
>Делай на Slim. Или на большом фреймворке.
Не понял тебя, анон. Я и делаю на slim. Но там оп в задании написал типа "приделайте к слиму поиск на сфинксе". Мне бы проще было тупо через базу и like искать. Но я так понял сфинкс везде используется и он в будущем пригодиться.
Нашел вот статью https://gist.github.com/codedokode/10539366 по сфинксу со знакомой фамилией
Ответы: >>1483121 >>1483246
Аноним 2019/09/27 13:09:11  №1483076 166
Подскажите адекватные гайды/книги по ооп, плез
Ответы: >>1483086 >>1483111
Аноним 2019/09/27 13:23:32  №1483086 167
Ответы: >>1483109
Аноним 2019/09/27 14:17:09  №1483109 168
>>1483086
Либо я тупой, либо мне показалось, что там не очень много инфы
Аноним 2019/09/27 14:18:47  №1483111 169
>>1483076
Design Patterns: Elements of Reusable Object-Oriented Software
Ответы: >>1483112
Аноним 2019/09/27 14:26:11  №1483112 170
Аноним 2019/09/27 14:49:48  №1483121 171
>>1482968
Это я тебя не правильно понял, бро. По сабжу пробуй на английском искать инфу/документацию. Я загуглил, мне сразу php мануал, доки, пару статей выдало. Не ленись, если что пользуйся гугл переводчиком
Ответы: >>1483706
Аноним 2019/09/27 17:15:16  №1483192 172
>>1480799
Сэкономь силы/время. Выложи свое тестовое на гитхаб и пытай удачу со следующей конторой.
Аноним 2019/09/27 17:56:28  №1483219 173
Как в пыхе сделать чисто ООПшный обработчик формы, чтобы было не action=validateForm.php в html с процедурной проверкой в validateForm, а какое-то FormValidator($form)? И так вообще делается?
Ответы: >>1483246
Аноним 2019/09/27 18:39:47  №1483246 174
>>1482891
Джунов на удалёнку обычно не берут, это не эффективно. За джуном должен кто-то опытный приглядывать и обучать, удалённо это гораздо сложнее чем с коллегой в офисе. Вообще вопросы трудоустройства лучше обсуждайте в перезвоним треде.

>>1482968
Через like не будет работать стемминг (выделение основы слова, отбрасывание окончаний), fuzzy search (опечатки как в гугле). Нужен поисковый движок для этого. Сфинкс сейчас не очень популярный, во всех новых проектах я натыкаюсь на Elasticsearch, а Sphinx только на проектах 10-и летней давности. В постгресе есть встроенный мощный поисковый движок:
- https://www.postgresql.org/docs/10/datatype-textsearch.html
- https://www.postgresql.org/docs/9.1/fuzzystrmatch.html
В любом случае разобраться с каким-то одним поисковым движком будет полезно, подойдёт и Sphinx.

>>1483219
Делается. Посмотри Symfony Form: https://symfony.com/doc/current/forms.html
Ответы: >>1483706 >>1485232
Аноним 2019/09/27 21:37:45  №1483322 175
>>1475112 (OP)
Привет всем ИТТ. Ровно три с половиной года назад сидел и учил с вами в этом треде похапе. С тех пор полёт нормальный, повысили до синьора пару месяцев как, могу поотвечать на вопросы. ОП поменялся или тот самый ещё?
Аноним 2019/09/27 21:39:25  №1483325 176
>>1483322
Фулл стак или чисто бэк? В бэке используешь только php?
Ответы: >>1483354 >>1483364
Аноним 2019/09/27 22:33:36  №1483354 177
>>1483322
>>1483325
Бамп вопросу. До какого уровня нужно знать фронт? Понятное дело понимать что там и как в css,html,js. Нужны ли js фреймворки и прочее?
Ответы: >>1483364
Аноним 2019/09/27 22:54:33  №1483364 178
>>1483325
>>1483354
поначалу был фуллстак, в говнноконторах, где и швец и жнец, потом в нормальном месте уже чисто в бек ушёл и не возвращался. Как верстать и прочее уже и забыл, они пап. Сейчас вот го учу.
Ответы: >>1483369
Аноним 2019/09/27 23:11:48  №1483369 179
>>1483364
Спасибо, удачи анон
Аноним 2019/09/28 09:11:49  №1483474 180
>>1483322
Круто! Расскажи в чем выражался твой прогресс от джуниора к мидлу и от мидла к сеньеру, кто должен по твоему мнению какие задачи выполнять, в общем как ты видишь всю эту иерархию.
Ответы: >>1483480 >>1483535
Аноним 2019/09/28 09:28:21  №1483480 181
>>1483474
Заметил. что периодически тут такие посты всплывают - про вкатившегося и спрашивают ОПа. Это или сам ОП семёнит, или ебанутый какой-то.
Ответы: >>1483494 >>1483535 >>1486803
Аноним 2019/09/28 09:50:00  №1483494 182
>>1483480
Ну в любом случае, мой вопрос все ещё актуален.
Аноним 2019/09/28 10:44:03  №1483535 183
>>1483480
хз, помню, приходил в тред где-то год назад, и примерно то же писал, но он утонувший был и я хз, ответил ли мне вообще кто-либо, так как забыл проверить. Вот решил снова зайти, вспомнить корни, лол

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

Ну и на собеседования похаживаю иногда, в последний год с руками отрывают всюду, даже после моего отказа названивают и приглашают повторно.
Думаю перекатываться куда-нибудь в новый стек (джава, го, you name it), но не охота терять в деньгах.
Аноним 2019/09/28 11:30:37  №1483569 184
Котаны, скажите в sql есть конструкция которая может проверить существование PDO параметра?
Типа если :param не сущетвует (я его не передал) то тогда значение какое нибудь по умолчанию
Аноним 2019/09/28 11:33:25  №1483572 185
>>1483569
Этим валидатор заниматься должен. SQL и сам PDO только с базой работают - гугли разделение ответственности.
Ответы: >>1483707
Аноним 2019/09/28 13:37:21  №1483706 186
Аноним 2019/09/28 13:38:25  №1483707 187
>>1483572
То что валидатор - это понятно. Это я просто чет маняфантазировать начал. Спасиб.

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


Ответы: >>1483714 >>1483884
Аноним 2019/09/28 13:47:05  №1483714 188
>>1483707
п.с.

В оппосте ОП ( да хранит его пророк и приветствует ) упоминает фреймворк Slim
Он подойдет для моих целей?
Ответы: >>1484712 >>1486802
Аноним 2019/09/28 15:45:38  №1483884 189
>>1483707
https://symfony.com/doc/current/components/security.html
Но с нуля наверное трудновато будет это всё быстро настроить. Если уже работающий велосипед есть и он реально работает и к нему вопросов нет, то зачем менять?

>>1483569
>Типа если :param не сущетвует (я его не передал) то тогда значение какое нибудь по умолчанию
Этим не пдо должен заниматься а код уровнем выше. Ты наверное и параметры запроса прямо из $_GET берешь? Можешь сделать свою функцию типа getInput($field, $default = null), куда вторым аргументом передавать дефолтное значение если $field == null, если у тебя готовый массив со значениями то можешь через array_replace поменять, где первый массив это массив с дефолтными значениями, а второй это пользовательский инпут(который всё равно нужно валидироватб ну ёп)
Ответы: >>1485256
Аноним 2019/09/28 18:10:30  №1484019 190
>>1475112 (OP)
С понедельника ищу работу я решил, но совершенно не знаю как это делать, вводные, 20лвл без диплома, с военником, сделал магаз на пхп и еще 1 простой сайт сверстал, сам пхп вроде знаю, но не очень хорошо, немного трогал yii2, что в резюме писать? на какие вакансии откликаться? и как подготовиться к собесу?
Ответы: >>1484063 >>1486803
Аноним 2019/09/28 18:25:58  №1484044 191
>>1483569
>Типа если :param не сущетвует (я его не передал) то тогда значение какое нибудь по умолчанию
Если тебе обязательно нужно делать поле со значением по-умолчанию, то БД вполне умеет ставить эти значения.
Аноним 2019/09/28 18:38:56  №1484061 192
Вопрос о кошках-мышках:
>Собака прыгает на 2 клетки в 1 из 8 направлений, если там есть свободная клетка.
Это значит что она прыгает только на две клетки? Или может и на одну и на две в стороны? Это важно прояснить для определения границ, ибо если только на две, то в одной клетке от границы ход в нужную сторону уже не возможен. Вот как ниже, К - собака, допустим ходим вправо.
xxxxx
xxxКx
xxxxx
Ответы: >>1484714 >>1486802
Аноним 2019/09/28 18:40:17  №1484063 193
>>1484019
>что в резюме писать?
Да пиши как все:
опыт 3 года
фуллстак
делал высоконагруженные коммерческие сайты
тут перечисли набор аббревиатур, которые хотя бы расшифровать можешь внятно если даже понимаешь зачем эта хуита нужна, то вообще топ-синьор
про вёрстку не пиши - программист-верстальщик только всяким васянским студиям с кабанчиками нужен, это даже не галеры - это дно веба
но то, что знаешь её это +
ну ещё чего-нибудь из личного добавь: если маме помогаешь, то пиши - ответственный и отзывчивый, если друзей много - пиши общительный, если тряпка и куколд - пиши уступчивый и тд

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

Верное средство - всегда помогает.
Ответы: >>1484350
Аноним 2019/09/29 08:37:16  №1484350 194
>>1484063
У меня жир с экрана начал течь.
Аноним 2019/09/29 11:31:56  №1484503 195
please be patient.jpg (32, 400x400)
400x400
Платиновый вопрос: как правильно заэкранировать символы при подстановке пользовательских параметров в SQL-запрос?

Да, я юзаю ебаный PDO уже хуй знает сколько лет, который все это делает автоматом, но тут попался такой случай, когда невозможно использовать prepared statements, ибо идет запрос в сторонний софт, который тупо принимает готовую строку SQL-запроса, где уже все должно быть подставлено.
Я уж забыл, как это вообще делается бля.
Ответы: >>1484627
Аноним 2019/09/29 14:11:42  №1484627 196
Аноним 2019/09/29 15:46:59  №1484712 197
>>1483714
анон, а в слиме нету авторизации вроде. Это просто роутер, то есть он тебе позволяет на введенный урл запустить какую-нибудь функцию, а функцию пишешь ты сам. Конечно будет проще писать админку, потому что у тебя будет место, где обрабатывать запрос типа my-site/админ, но обработчик ты сам делаешь. Если нет, пусть альфаги поправят
Ответы: >>1485226
Аноним 2019/09/29 15:49:09  №1484714 198
>>1484061
Делай самый тебе удобный вариант, задачи можно по разному трактовать, главное делать
Аноним 2019/09/29 17:54:38  №1484845 199
ОП часто заходит?
Ответы: >>1485367
Аноним 2019/09/30 08:48:01  №1485226 200
>>1484712
Да я сразу почти посмотрел, нет авторизации.
Роутиг у меня и свой есть тоже всратый но работает, а вот авторизация моя на даже на фоне моего роутера - тот еще голлум-голлум
Аноним 2019/09/30 08:54:53  №1485232 201
>>1483246
Так я конкретно у того анона спросил, ведь он на удаленку залетел джуном.
Ответы: >>1485468
Аноним 2019/09/30 08:55:52  №1485236 202
Открываю новое окно через newWindow = window.open(...);
Потом сразу делаю newWindow.myVar = 123;


В отктытом окне написано console.log(myVar);

И это нихуя не работает в хроме, что я делаю не так???
Ответы: >>1486801
Аноним 2019/09/30 09:07:05  №1485256 203
>>1483884
>>Но с нуля наверное трудновато будет это всё быстро настроить.
Ну да, модуль из симфони великоват.
Может знаешь какую нибудь популярную библиотеку для авторизации/регистрации. Или модуль security из какого нибудь не большого фреймворка?

Мой велосипед меня не очень устраивает. Пришло время посмотреть нормальный код на
ту тему.
Ответы: >>1486801
Аноним 2019/09/30 09:32:27  №1485277 204
Ы
Аноним 2019/09/30 10:31:14  №1485357 205
У меня есть сайт с bootstrap 4. Нужно подключить к нему модуль, написанный с использованием bootstrap 3. Подключать сразу два бутстрапа нельзя, переписывать модуль под мой бутстрп лень. Как это вообще должно разруливаться по фен-шую?
Ответы: >>1485360 >>1486156
Аноним 2019/09/30 10:33:43  №1485360 206
>>1485357
Да, и сразу добавлю, что в идеале мне вообще нужен код, который бы не зависел от версии бутстрапа. Это возможно вообще без полного перепиливания всех имён классов и айди на кастомные, которых нет в бутстрапе?
Ответы: >>1485447
Аноним 2019/09/30 10:35:36  №1485365 207
бутстрап не нужен
Ответы: >>1485447
Аноним 2019/09/30 10:35:49  №1485367 208
>>1484845
Эпизодически. Чаще появляется к перекату, то есть к посту 500 или 600. Но сегодня конец месяца, зарплату дали, может появится
Аноним 2019/09/30 11:59:52  №1485447 209
>>1485360
>в идеале мне вообще нужен код, который бы не зависел от версии бутстрапа
Значит пиши руками.

>>1485365
Вполне годный фреймворк для вёрстки.
Мне, например, медведь в глаза насрал и я в дизайн не могу, а тут из коробки нормальные шрифты и адаптивность.
Скорее это ты не нужен со своим мнением.
Аноним 2019/09/30 12:43:50  №1485468 210
>>1485232
Работаю на рашку, один из регионов, зп 40к.
Аноним 2019/09/30 21:43:38  №1485844 211
Пытаюсь в ларавеле разобраться. Я правильно понял, что сервис провайдеры нужны, чтобы добавлять сервисы в контейнер? Или их еще как-то по-другому можно использовать, но как?
Ответы: >>1485857 >>1485864
Аноним 2019/09/30 22:11:03  №1485857 212
>>1485844

Они могут еще какие-то вещи делать при инициализации, как описано в мануале: https://laravel.com/docs/5.8/providers

Я думаю, они для того, чтобы инициализация связанных между собой вещей (несколько сервисов и вьюшек) была не раскидана по коду, а находилась бы в одном месте.
Аноним 2019/09/30 22:24:09  №1485864 213
>>1485844
В провайдере ты можешь указать, что твой сервис должен вызываться как сингелтон. Ты можешь здесь указать какую реализацию использовать для вызываемого класса. Здесь же можешь указать, какие агрументы поступят на конструктор класса во время его инициализации.
Ответы: >>1485876
Аноним 2019/09/30 23:05:49  №1485876 214
>>1485864
>сингелтон
это же уже как 1000 лет антипаттерн
Ответы: >>1485881 >>1486156
Аноним 2019/09/30 23:30:20  №1485881 215
>>1485876
Ты прав, и лучше сингелтоном не злоупотреблять.
Аноним 2019/10/01 08:53:03  №1486032 216
14276354936751.jpg (83, 750x563)
563x750
Вопрос на миллион сто раз поднимавшийся, в каком бы порядке ты, анон, имеющий опыт использования, расположил следующие фреймворки с оглядкой на распространенность у работодателя/эффективность/простоту изучения:
Yii, Symfony, Laravel
Ответы: >>1486040 >>1486156
Аноним 2019/10/01 09:02:29  №1486040 217
>>1486032
yii и laravel встречаются примерно одинаково, может yii чуть чаще, но не намного. Симфони видел намного реже в вакансиях.
Ответы: >>1486932
Аноним 2019/10/01 11:20:19  №1486138 218
У меня есть файл, в который записываются сериализованные массивы. Потом файл считывается целиком и отправляется джава-скрипту. Нужно обработать эти массивы в цикле. Но там тупо одна строка. Можно ли её вообще разджисонить так, чтобы получился массив массивов? Я пока только придумал заменить в переданной строке все "}a:" на"}|a:", а затем превратить строку в массив строк по разделителю, и уже по ним делать цикл. Но как-то это монструозно.
Ответы: >>1486800
Аноним 2019/10/01 11:44:02  №1486156 219
>>1486032

Ты бы мог посмотреть количество их упоминаний на hh

>>1485876

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

>>1485357

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

- засовываешь свой виджет в ифрейм
- либо ставишь всем классам в нем префиксы (вроде tb3-...) и руками нарезаешь из бутстрапа 3 CSS файл для них

Ответы: >>1486164
Аноним 2019/10/01 11:51:23  №1486164 220
>>1486156
>засовываешь свой виджет в ифрейм
Нежелательно. Ломается статистика кликов и всё такое.
Я пытался выкусить из используемого бутстрапа нужные теги, а потом уменьшить, оптимизировать и переименовать, но плюнул. Нашёл другой модуль, без бутстрапа. Не такой симпатичный, но сойдёт. Теперь допиливаю его.
Ответы: >>1486799
Аноним 2019/10/01 12:20:33  №1486183 221
Кто нибудь пользовался библиотекой cartalyst/sentinel ?
Аноним 2019/10/01 13:52:54  №1486282 222
>>1478764
>Если такие ссылки тут запрещены, то ничем не могу помочь
Кто сказал что запрещены?
Ответы: >>1486799
Аноним 2019/10/01 13:57:50  №1486286 223
Вроде бы можно просто "дискорд/Mfk9QTa" добавить
Аноним 2019/10/01 13:59:36  №1486288 224
Как думаете, насколько сложная задача?)
"На диске лежит файл image.png, размер 20000 на 20000. Вывести картинку как баннер размером 200 на 100 пикселей."

ебусь с Image magick, дочерними процессами. Сейчас думаю просто longpool сделать
Ответы: >>1486799
Аноним 2019/10/01 14:03:17  №1486289 225
Посоны поясните, почему в данной строке:


return $instance->{$method}();

имя метода в фигурных скобках?
еще не знаком с данным синтаксисом
Ответы: >>1486333 >>1486798
Аноним 2019/10/01 14:41:31  №1486333 226
>>1486289
Это динамический вызов метода, где имя метода передается в фигурных скобках. Например у $instance есть методы first() и second(), а $method = 'first', ну ты понял, полезно бывает для пхпшной магии (гугли магические методы)
Ответы: >>1486490
Аноним 2019/10/01 15:32:10  №1486382 227
Аноны, сколько стоит ждать ответа на резюме?
Ответы: >>1486397
Аноним 2019/10/01 15:56:20  №1486397 228
>>1486382
На hh пишет среднее время ответа работодателя.
+- 2 дня.
Аноним 2019/10/01 17:13:37  №1486490 229
Аноним 2019/10/01 19:20:44  №1486634 230
А это нормально что я сделал резюме PHP-разработчика, указал какие технологии знаю, свой гитхаб, а мне звонят и приглашают менеджером по работе с клиентами работать? При чем я еще никому не кидал свое резюме, меня сами нашли.
Ответы: >>1486652 >>1486839
Аноним 2019/10/01 19:40:32  №1486647 231
Анончики, посоветуйте чо почитать по html, в шапке не нашел каких-то ресурсов конкретно по html, на курсере записался на курс мфти по теме, но учебник как то не могу найти.
Ответы: >>1486650 >>1486798
Аноним 2019/10/01 19:42:09  №1486650 232
Аноним 2019/10/01 19:44:34  №1486652 233
>>1486634
Лол. Похоже просто продаванов на холодный обзвон ищут.
Аноним 2019/10/01 21:44:36  №1486743 234
Аноны, сайт для тестов с шапки много человек делали?
Ответы: >>1486798
190 - 234 Аноним 2019/10/01 23:38:02  №1486798 235
>>1486743

Можешь поискать в архиве тредов по слову testhub: https://phpclub.tech/search/?q=testhub

>>1486647

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

>>1486289

Вообще, судя по мануалу (почитай его: https://www.php.net/manual/en/functions.variable-functions.php ), можно писать без фигурных скобок:

$foo->$funcname(); // This calls $foo->Variable()

Зачем нужны фигурные скобки, я сам не понимаю. Возможно, это связано с проблемами парсера в старых версиях PHP. В PHP7 парсер был переделан и текущая документация не упоминает скобки.

Посмотри описание изменений тут: https://www.php.net/manual/en/migration70.incompatible.php#migration70.incompatible.variable-handling

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

Скобки полезны в таких извращенных примерах кода (не пиши так):

$x->{$field['value']}

Без них это интерпретируется как

($x->field)['value']


Ответы: >>1486870
Аноним 2019/10/01 23:38:56  №1486799 236
>>1486288

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

При чем тут long poll (если ты это имел в виду), вообще непонятно. Она работает в браузере, а тут речь о серверном коде.

>>1486282

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

>>1486164

> Я пытался выкусить из используемого бутстрапа нужные теги

Если виджет небольшой, то можно просто открыть инспектор в браузере, прокликать все HTML-элементы виджета и в инспекторе посмотреть примененные к ним правила CSS, которые нетрудно скопировать.
Ответы: >>1487318
Аноним 2019/10/01 23:40:01  №1486800 237
>>1486138

Ты страдаешь ерундой. То, что сериализовано, можно восстанавливать только через unserialize. А затем уже преобразовать в JSON и отдать скрипту.

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

Формат serialize недокументирован. Он может быть изменен в любой версии PHP без предупреждения. Не полагайся на него для долговременного хранения и не пытайся читать его чем-либо, кроме unserialize() в PHP. Используй JSON, CSV или другие форматы для обработки данных из нескольких языков сразу.

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

То есть если у тебя есть в коде объект вида (или он есть в какой-то из библиотек):

class X {
private $file;
function __destruct()
{
unlink($this->file);
}
}

то атакующий может с помощью этого объекта удалить любой файл на сервере, для которого хватит прав доступа.
Ответы: >>1486863
Аноним 2019/10/01 23:41:07  №1486801 238
>>1485256

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

>>1485236

> Открываю новое окно через newWindow = window.open(...);
> Потом сразу делаю newWindow.myVar = 123;

Если я правильно понял, ты ожидаешь, что сначала выполнятся эти 2 строки, а только потом будет выполняться JS-код в новом окне? Это не так. Это ошибка в твоих рассуждениях.

Вообще, JS-интерпретатор однопоточный и выполняет код последовательно. Но трюк в том, что в новом окне будет свой, независимый от первого экземпляр интерпретатора JS, свой экземпляр DOM (в общем, почти что свой браузер), и он будет работать параллельно с первым, и никаких гарантий, в какой последовательности выполнится код, нету. К моменту выполнения второй строки newWindow.myVar = 123 возможен любой вариант: HTML в новом окне полностью разобран, а JS код выполнен или же, наборот, HTML еще не разобран, а JS код не выполнялся или и то и другое сделано частично.

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

Это создает кучу проблем:

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

Решение:

- передавать переменную через параметры URL окна (popup.html#x=1&y=2)
- опираться на какие-то методы синхронизации. Например, на событие load. Родительский код создает окно, дожидается события onload в нем, и после этого вызывает гарантированно существующий к этому моменту метод в дочернем окне.
- вызывать метод родителя parent.getMyVar() из дочернего окна
- использовать сообщения, postMessage (гораздо более красивый подход, но работает только в новых браузерах: https://caniuse.com/#search=postmessage ). Дочерняя страница загружается, шлет родителю сообщение get-my-var, в ответ на него приходит сообщение return-my-var с данными.
Ответы: >>1486862
Аноним 2019/10/01 23:41:57  №1486802 239
>>1484061

Я имел в виду, ровно на две и по прямой без изгибов: либо на 2 клетки вверх-вниз, либо на 2 в сторону, либо на 2 по диагонали.

Можешь сделать по-другому.

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

Верно.

>>1483714

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

>>1483569

Если у тебя ситуация вроде фильтров (показать все товары, где цена > 100 рублей, причем это условие может отсутствовать), то тебе надо собирать SQL запрос по кусочкам. Грязный способ: напрямую собирать куски строк, вести массив с параметрами:

if (передано условие мин. цены) {
$priceCond = ' AND price > :minPrice ';
$params['minPrice'] = $minPrice;
} else {
$priceCond = '';
}

Более правильный способ: использовать паттерн query builder:

$qb = new QueryBuilder;
$qb->select('*')->from('table');

if (передано условие цены) {
$qb->andWhere('price > :minPrice');
$qb->setParameter('minPrice', $minPrice);
}

$sql = $qb->getSql();

В примере я использовал библиотеку Doctrine DBAL (не путай с Doctrine ORM).

Заметь, что с QB код более чистый, хотя запрос стал менее читабельным, и появилась куча скобочек, стрелочек и прочего визуального мусора, затрудняющего понимание в сравнении с чистым языком SQL.
Аноним 2019/10/01 23:42:44  №1486803 240
>>1484019

Посмотри, погугли примеры других резюме. Есть целые сайты "как составлять резюме".

По собеседованию - начинающих гоняют по теории: PHP, ООП, SQL, с какими библиотеками/фреймворками работал, транзакции, нормальные формы в БД, HTML, CSS, JS. Гугли "задачи к собеседованию PHP, задачи к собеседованию веб-разработчика". Таких статей море и если ты хотя бы штук 5-10 прочтешь и внимательно разберешь (не заучишь ответ, а разберешься в теме) каждую задачу в них, то у тебя появятся реальные шансы на прохождение.

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

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

>>1483322

Кстати, спасибо за такие посты, которые мотивируют новичков. Я обычно на них ничего не отвечаю и пропускаю (так как комментировать тут нечего), но спасибо каждому, кто писал в тредах о своем опыте.

>>1483480

То есть ты просто не веришь, что люди могли изучить нужные технологии и найти работу?
Ответы: >>1486836
Аноним 2019/10/01 23:43:29  №1486805 241
>>1480790

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

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

То есть этот ответ выглядит странно. Если у тебя есть веская причина не раскрывать свой возраст, то ты бы мог сказать: "по причине X, я бы не хотел называть свой возраст. Не можем ли мы провести собеседование без этого?" (например: "мне кажется, оценка моих знаний будет более объективной, если мы не будем оглядываться на возраст"). С большой вероятностью, правда, тебе ответят, что при заключении трудового договора будут переписаны твои паспортные данные с годом рождения и скрывать тут нечего.

Проще всего было назвать возраст и не комплексовать из-за него. Тебе 80 лет что ли? Или привести убедительную причину не раскрывать его.
Ответы: >>1487339
Аноним 2019/10/02 02:16:53  №1486836 242
>>1486803
Спасибо за ответ, но резюме я уже написал, подсматривал как составляют другие и брал то что нравится себе, а теорию выписываю непонятные мне темы в блокнот и позже разбираю их.
Аноним 2019/10/02 03:25:42  №1486839 243
>>1486634
мне еще звонил робот приглашающий на работу в роботизированный колл центр
но вакансии при этом у них небыло
Ответы: >>1486840 >>1486841
Аноним 2019/10/02 03:35:50  №1486840 244
Аноним 2019/10/02 03:45:58  №1486841 245
>>1486839
вакансии только для роботов, сорри
ха-ха, мясной мешок
Аноним 2019/10/02 05:06:24  №1486848 246
>>1475112 (OP)

Сап, пхпшечка-куны, объясните пожалуйста:

Прохожу гайд, и не совсем понял по поводу массивов: в пхп такие структуры данных как массивы, списки, хэш-таблицы заменяются одними array? И они - один ответ на все?
Ответы: >>1486938
Аноним 2019/10/02 05:59:22  №1486862 247
15357624101156.jpg (154, 1280x720)
720x1280
15600304104261.jpg (341, 1600x900)
900x1600
14600738455991.jpg (1105, 2000x3000)
3000x2000
>>1486801
>Решение:
>...
так как в родителе сделать казалось бы логичную последовательность:

newWindow = window.open();
newWindow.someVar = 123;

и потом в свежем окне someVar давала undefined, то я пошел от обратного:

В родителе сделал:

//объявляю переменную до открытия окна
someVar = 123;
открываю окно
newWindow = window.open();

Потом в свежем окне вызываю её через:
someVarInNewWindow = window.opener.someVar;
Все заработало нормально.
Аноним 2019/10/02 06:07:03  №1486863 248
>>1486800
Спасибо за подробный ответ. Понял, что с сериализацией ошибся и переделал на JSON.
Аноним 2019/10/02 06:36:53  №1486870 249
>>1486798
>>Вообще, судя по мануалу.....
Да я уже понял. Спасибо за ответ.
Я выше задавал вопрос про библиотеку авторизации.
Выбрал cartalyst/sentinel, буду на ее примере разбирать авторизацию, а так же стиль нормального кода. Норм вариант?
Ответы: >>1486895
Аноним 2019/10/02 07:08:04  №1486879 250
2.png (70, 593x307)
307x593
Аноны, есть ли какая-нибудь библиотека с панелью редактирования текста, как на пике, которую можно подключить к голому php?
Аноним 2019/10/02 07:40:10  №1486895 251
>>1486870
судя по доке там все на статиках и хешкартах - это НЕ тот стиль к которому есть смысл стремиться
Ответы: >>1486903
Аноним 2019/10/02 08:13:01  №1486903 252
>>1486895
Учту.
Однако другой библиотеки для авторизации я не знаю, поэтому буду смотреть как эта работает.
Если знаешь другие решения, то подскажи
Аноним 2019/10/02 08:48:23  №1486932 253
Аноним 2019/10/02 08:57:16  №1486938 254
>>1486848
>в пхп такие структуры данных как массивы, списки, хэш-таблицы заменяются одними array?
Не знаю на каком языке ты пишешь, но в том же c# все вышеперечисленное это тоже один условный массив, просто с некоторыми обертками, надстройками и другим названием
Ответы: >>1487169
Аноним 2019/10/02 12:34:15  №1487169 255
>>1486938
Он просто не интересовался структурами данных и алгоритмами их обработки.



Аноним 2019/10/02 13:00:05  №1487190 256
Ответы: >>1487212 >>1487214 >>1487301
Аноним 2019/10/02 13:21:49  №1487212 257
>>1487190
Через массивы и двойной цикл. Первое что на ум пришло
Аноним 2019/10/02 13:22:19  №1487214 258
>>1487190
Дай ссылку на задание.
Ответы: >>1487220
Аноним 2019/10/02 13:33:00  №1487220 259
Аноним 2019/10/02 14:40:00  №1487277 260
Есть один модальник, в котором пользователь может накликать галочек, потом он может нажать условную кнопку confirm и все это должно перезагрузить страницу.

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

Если же он накликал там всякого, то я в цикле шлю аякс запросы, и после цикла у меня стоит перезагрузка страницы:

for () {
//аякс запросы
}
location.href = ...

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


Поэтому нужно что-то такое:
for () {
//аякс запросы
}
if (все запросы отработаны или вообще не посылались) {
location.href = ...
}

Как это можно реализовать?
Ответы: >>1487631 >>1487633
Аноним 2019/10/02 15:19:03  №1487301 261
>>1487190
Тут как бы самому надо думать.
Аноним 2019/10/02 15:39:02  №1487318 262
>>1486799
>Думаю, подвох тут в требовании к памяти.
В каком смысле? Что пхп классу GD не хватит оперативки для такой задачи? Для этого есть Imagick, он выгружает кэш на жесткий диск, и проблема с памятью решена.
>При чем тут long poll, вообще непонятно. Она работает в браузере, а тут речь о серверном коде.
long poll в браузере? Там вообще-то с двух сторон. Браузер не должен виснуть, или сбрасываться в timeout, а php скрипт не должен завершиться прежде чем будет создан баннер.

https://github.com/readonly18/image_resize
Вот мое решение к задаче. Как думаете, пойдет?
Ответы: >>1487610 >>1499784
Помогите плиз скажите что не так с задачей Лиличка Аноним 2019/10/02 15:55:05  №1487333 263
Ответы: >>1487337
Аноним 2019/10/02 15:56:18  №1487334 264
Аноним 2019/10/02 15:57:47  №1487337 265
>>1487333
Скидывай хотя бы усовия задания. Не думаю что людям в кайф его искать
Аноним 2019/10/02 16:05:28  №1487339 266
>>1480790
что это вообще за долбо%бы, которые спрашивают про возраст? так что-ли не видно... какого пола не уточняли?

зарплату сбивают

>>1486805
>Мы обычно всегда отказывали, если были странности в общении
не странные? ) программисты?
Ответы: >>1487340
Аноним 2019/10/02 16:09:01  №1487340 267
>>1487339
>что это вообще за долбо%бы, которые спрашивают про возраст?
Ну например если у них команда - 23-летние синьоры, а ты такой на джуна в 35 пришёл к ним. Логично, что ты просто не впишешься. И наоборот - синьор с молоком на девственных усиках пришёл зубрами командовать.
Ответы: >>1487745 >>1487750
Аноним 2019/10/02 16:20:37  №1487352 268
image.png (141, 1346x695)
695x1346
Анон, может подскажешь что я сделал не так? Начинаю осваивать git, сделал первый коммит проекта, он вроде как загрузился. Почему в в ide у меня все красное нахуй? Как я понял красные файлы те, которые будут загружаться на гит, желтые файлы находятся в гитигноре. У меня теперь всегда название файлов цветными будут? Как от этого избавиться?
Аноним 2019/10/02 16:36:21  №1487368 269
image.png (3, 278x31)
31x278
>>1487352
Блядь, ничего не понял. Закоммитил через phpstorm, получил пикрил. Возможно это из за отключенной синхронизации файлов
Аноним 2019/10/02 16:47:31  №1487377 270
>>1487352
Красные файлы не индексированы. Ты сделал git add ?
Ответы: >>1487386
Аноним 2019/10/02 16:56:06  №1487382 271
>>1487352
Смотри, красные файлы вне индекса, зелёные те, которые ты уже добавил в индекс гита, они будут добавлены в следующий коммит, белые(обычный цвет) те которые синхронизированы с репозиторием. Ты наверно только init файл добавил как гитхаб советует. Рекомендую пройти гайд на githowto, там достаточно подробно расписывают как все это работает.
Ответы: >>1487386
Аноним 2019/10/02 16:59:44  №1487386 272
>>1487377
>>1487382

Да, я делал файлообменник. Решил что пора начинать пользоваться гитом через консколь. Порядок действий такой
git init
git add .
git commit -m "Initial Commit" -a
git remote add origin pathname
git push origin master

На git залилось, но в phpstorm файлы стали красно-желтые.
Потыкал коммит в ide, все цвета вернулись на место, в ide-консоле закомитилось 0 файлов. Скорее всего просто нужно было синхранизировать файлы в ide (автосинхронизация отключена в целях экономии мощности железа).

Проблема решена, сори за тупой вопрос, спасибо за ответы.

>Рекомендую пройти гайд на githowto
Спасибо, попробую
Аноним 2019/10/02 19:02:50  №1487470 273
Безымянный.png (186, 1440x900)
900x1440
Такие деласо 2 раза выпало А еще нихуя не выводит, кто выиграл, ЧЯДНТ?
Ответы: >>1487479
Аноним 2019/10/02 19:09:53  №1487479 274
>>1487470
Тебя exit не смущает посреди кода?
Ответы: >>1487490
Аноним 2019/10/02 19:16:45  №1487490 275
>>1487479
точняк я думал типо 2 разных скрипта и так и надо, поправил - заработало
Аноним 2019/10/02 21:44:02  №1487594 276
>>1487352

> Закоммитил через phpstorm, получил пикрил. Возможно это из за отключенной синхронизации файлов

Ты наверно не сделал add сначала. В коммит отправляются не файлы из рабочей папки, а файлы из staging area (они добавляются туда с помощью add). Это позволяет делать частичные коммиты, не закоммичивая все файлы.

Если ты не изучал, изучи гит получше, и изучай его в консоли. Вот учебник на русском: https://git-scm.com/book/ru/v2

Изучать гит надо в консоли, так как там ты видишь, какие команды ты пишешь, и какой на них приходит ответ, так же ты всегда там можешь набрать git status. После того, как ты изучишь гит, ты можешь переходить на инструменты с графическим интерфейсом. Не разобравшись в гите, ты им нормально пользоваться не сможешь.
Аноним 2019/10/02 22:15:39  №1487610 277
Аноним 2019/10/02 22:18:39  №1487614 278
>Ты наверно не сделал add сначала
Да, скорее всего. Потом за меня ide добавила

> Вот учебник на русском
Собирался, но пока не уверен что есть время дабы читать учебник по гиту (нет необходимости в таком доскональном знании). Столько всего выучить нужно, гит на уровне "залить/обновить проект" нужен.
В шапке учебник 2009 года. Если этот лучше, может заменить?

>Изучать гит надо в консоли
Угу. Мне после установки линукса даже нравится в консоле работать.


Аноны, может кто в двух словах отписать на каком уровне нужно знать верстку/js фуллстаку и чисто бэку?
Правильно ли я понимаю, что если я изучаю laravel, мне нужно изучить еще и vue, bootstrap?
Ответы: >>1487634
Аноним 2019/10/02 23:12:37  №1487631 279
>>1487277

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

Промисы можно комбинировать и ты можешь из 10 промисов сделать "объединенный" промис, который разрезолвится, когда все эти 10 вернут результат.

- https://learn.javascript.ru/promise-basics
- https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise
- https://promisesaplus.com/

Не забудь также правила работы с аяксом, которые мало где пишут: https://github.com/codedokode/pasta/blob/master/js/ajax.md

А именно:

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

Ответы: >>1488040
Аноним 2019/10/02 23:20:50  №1487633 280
>>1487277
асинхронность и цикл проще всего сделать через async await, прямо как обычный код пишешь только добавляешь await перед запросом

иначе придется немножко помучиться
второе по удобству это Promise.all

примеры и того и другого легко найти на stackoverflow
Ответы: >>1488040
Аноним 2019/10/02 23:26:59  №1487634 281
image.png (20, 736x96)
96x736
>>1487614
И еще. Есть ли смысл делать такие роуты? Или изменение статуса/аватара стоит запихнуть в ProfilesController? Во всех 3 контроллерах по 1 методу.
Ответы: >>1499784
Аноним 2019/10/03 00:49:59  №1487645 282
Чем отличаются эти запросы:
Первый: SELECT FROM a, b WHERE a.id=b.a_id;
Второй: SELECT
FROM a JOIN b ON a.id=b.a_id;

Действительно чем, они ведь идентичны не?
Ответы: >>1487716 >>1499781
Аноним 2019/10/03 06:58:24  №1487704 283
Ответы: >>1487728 >>1499783
Аноним 2019/10/03 07:36:39  №1487716 284
>>1487645
В первом у тебя вторая половина курсивом, а во втором - первая. И ещё JOIN.
Ответы: >>1488113
Аноним 2019/10/03 07:44:45  №1487720 285
Кто что может сказать про Observable паттерн? Как оно в жс, пхп?
Аноним 2019/10/03 08:20:00  №1487728 286
>>1487704
у меня встал и вышел из комнаты
Аноним 2019/10/03 08:58:29  №1487745 287
>>1487340
>> 23-летние синьоры, а ты такой на джуна в 35 пришёл к ним

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

Будучи за 30 уже стремно приходить совсем-джунома я так как то ходил на собес, я тогда ток JS знал, поверхностно. С ноля реальный вкат если не пинать хуй - +/- полгода. Через полгода sql, php , js и общую логику построения вэб-приложения можно понять, и начать говнокодить свои говноприложения. Если человек после 30 вкатывается больше года, при условии что у него много свободного времени 3-4 часа минимум, и нихуя реально пусть и хуево написанного показать не может - то нахуй такой человек не нужен в конторе. Потому что этот человек еще не преодолел ключевые психические косяки лень, инертность , неорганизованность и прочее - а значит ничего толкового от него не жди.

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

Потому что личность человека - это больше чем его навыки. Навык можно набрать, а вот личность, привычки, особенно после 30 что бы исправить - это нужно реальную силу воли приложить. Я знаю.
Ответы: >>1487750 >>1487774 >>1487775
Аноним 2019/10/03 09:14:02  №1487750 288
>>1487340
хуйня надуманная если честно

>>1487745
большинство великовозрастных вкатывальщиков меняют профу а не бывшие хикки домоседы как ты
Ответы: >>1487781 >>1488001
Аноним 2019/10/03 09:55:17  №1487774 289
>>1487745
Как Теклид говорит.
- Не тратить время ни на что кроме кодинга в рабочее время.
- Обед желательно иметь под рукой и не отвлекаться от кодинга.
- Планировать все дела и создавать окно для внешних дел после чего возвращаться к работе.
- Все сериалы, игры и подобное оставляю на вечер, и то на них времени не будет потому-что вы будете заняты делами по дому в свое время. Или максимум одну серию посмотрите.
И только тогда можно чего-то добиться.
Ответы: >>1487781 >>1488034
Аноним 2019/10/03 09:56:10  №1487775 290
>>1487745
Только недавно осознал, что я нихуя не делал год. Хотя мог бы уже писать какие то приложения...
Ответы: >>1487781
Аноним 2019/10/03 10:09:20  №1487781 291
>>1487750
Я не хикки домосед, совсем. Я из сис-админов перекатываюсь.

>>1487774
>>И только тогда можно чего-то добиться.
Так и есть.

>>1487775
Самое смешное что за месяц можно прогрессировать так, как за год порою не сможешь.
Ответы: >>1487814
Аноним 2019/10/03 10:39:37  №1487814 292
>>1487781
>Самое смешное что за месяц можно прогрессировать так, как за год порою не сможешь.
Во-во, все что требуется это посвящение времени. Днем учиться/работать, вечером заниматься своими делами и остужать мозг.
Иногда просто заносит в дебри и сам не осознаешь как проходит время которое ты мог бы посвятить работе на всякие глупости которые не принесут выгоды.
Как научиться вот этой дисциплине? Я уже понял что планировка это самое лучшее средство для прогресса. С вечера записывать всё на чем остановился и ставить какую то месячную цель. Разбивать на подцели пока не станет просто и понятно. Качаться по принципу какой нибудь рпг, становиться сильнее.
Алсо еще самый трудный момент который сложно отследить это практика своих знаний. Я могу ошибаться, но в этом треде кто-то говорил что 80% должно быть практики и 20% теорий которую ты туда тут же вкладываешь.
Простите за простынь.
Аноним 2019/10/03 10:44:09  №1487822 293
Как в математике вот, ты забудешь всё что изучал если не будешь разбивать примеры или решать задачки. Практика, практика и еще раз практика. А то люди выходят из университетов некоторые и говорят что ничего уже не помнят, а всё потому-что не прикладывали возможно знания схваченные с лекций за день на практику или исследование дома.
Точно. Механики например без опыта, как им понять как работает двигатель если они его не разбирали на запчасти? Даже если им объяснили пример и они его поняли, все равно процесс его разбора поможет тебе закрепить знания.
Аноним 2019/10/03 14:10:40  №1488001 294
>>1487750
>хуйня надуманная
Хуйня надуманная это ты, а мне впизду не тарахтело с малолетками работать например.
Аноним 2019/10/03 14:36:03  №1488034 295
>>1487774
Этих петухов нельзя слушать, согласиться можно только с не пинать хуи - остальное нахуй, надо свои права защищать и пора бы уже погроммистишкам вылезти из штанишек и какой-нить профсоюз создать. Проходили - они все больше и больше будут требовать, потом уже играй на дуде как клован, ходи по канату, знай индийский и еще 100500 языков и фреймворков.
Аноним 2019/10/03 14:48:34  №1488040 296
>>1487631
>>1487633

Спасибо, в итоге сел разобрался с промисами на зачаточном уровне.

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

Соответственно промис резовится либо сразу если нечему send/cancel делать, либо когда последний аякс рапортует о комплите. Далее у меня Promice.all в который я кормлю оба этих промиса и когда они оба выполняются, то все перезагружается с дальнейшими гет-запросами.
Аноним 2019/10/03 16:31:07  №1488101 297
Дайте какой-нибудь пример канонично сделанного сайта, чтобы смотреть как он устроен и делать так же. Перекатываюсь с "нормального" языка и хочу узнать паттерны и прочее
Ответы: >>1488192 >>1488260
Аноним 2019/10/03 16:42:56  №1488109 298
>>1476314
А новее есть хороший материал по битриксу?
Аноним 2019/10/03 16:46:36  №1488113 299
>>1487716
На собесе был такой вопрос. Сказали что разница существенная, а не просто синтаксис разный.
Ответы: >>1488163
Аноним 2019/10/03 17:34:54  №1488163 300
Ответы: >>1488261
Аноним 2019/10/03 18:06:16  №1488192 301
>>1488101
Тебе нужен не сайт, а скорее фреймворк типа Laravel или Symfony.
Аноним 2019/10/03 19:06:57  №1488260 302
>>1488101
Ебани какой нибудь гайд "пишем MVC фреймворк бесплатно без смс"
Аноним 2019/10/03 19:07:53  №1488261 303
>>1488163
То есть разница только в том, что с join более читаем запрос и нужно отделять объединение таблиц и фильтрацию, я правильно понял?
Ответы: >>1488268
Аноним 2019/10/03 19:14:34  №1488268 304
>>1488261
Да чушь какая-то, с точки зрения реляционной муры все одно и то же выдается, а по скорости все будет одинаково потому что соптимизируется в один код, короче пошли они нахуй
Ответы: >>1488275
Аноним 2019/10/03 19:15:16  №1488272 305
Отправил резюме на вакансию мне сказали сделать 2 задачки:

Первая на диске лежит файл image.png, размер 20000 на 20000. Вывести картинку как баннер размером 200 на 100 пикселей.
Обратите внимание на размер и пропорции.

Я сделал так, создал блок div, добавил ему стили width:200px; внутри блока разместил картинку со стилями max-width 100%; height: auto; картинка получилась 200 на 134 пикселя, зато не проебаны пропорции, не знаю правильно ли решил.

Но вот мне интересно как вы бы решили задачку с изображением?

Вторая задачка с массивом и нужно было вывести количество последовательных пар одинаковых элементов, но она простая с ней проблем не возникло.
Аноним 2019/10/03 19:19:39  №1488275 306
>>1488268
Ну работодатель наверно хочет услышать ответ в духе, что лучше использовать запрос с join, там где идет объединение таблиц, так как он более читаем, а where применять при фильтрации результатов, по крайней мере я бы так сказал на собесе.
Аноним 2019/10/03 19:34:19  №1488287 307
>>1488272
Тут можно было max-width применять сразу к img тегу. А в задании не уточнялось, что ты должен уменьшить изображение силами php?
Ответы: >>1488289 >>1488293
Аноним 2019/10/03 19:35:55  №1488289 308
>>1488287
В задании сказано только html/css использовать.
Ответы: >>1488296
Аноним 2019/10/03 19:40:10  №1488293 309
>>1488287
А и max-width я к img и применил, то есть такая структура получилась:

<div style="width: 200px;">
<img src="image.jpg" style="max-width: 100%; height: auto;">
</div>
Ответы: >>1488301
Аноним 2019/10/03 19:40:17  №1488294 310
Аноним 2019/10/03 19:40:39  №1488296 311
>>1488289
Тогда либо через html атрибуты width и height, или css свойство max-width и max-height, тут больше нет способов.
Аноним 2019/10/03 19:42:20  №1488299 312
#image {
width: 200px;
height: 100px;
object-fit: cover;
}

что-то какие-то легкие задания да еще и про ксс дают вкатывальщикам
хорошо быть студентом наверное
Ответы: >>1488311 >>1488521
Аноним 2019/10/03 19:47:17  №1488301 313
>>1488272
алсо втф
>файл image.png, размер 20000 на 20000
>картинка получилась 200 на 134 пикселя
>не проебаны пропорции
без кропа что-то тут не так
вот это картинку не кропает >>1488293
т.е. картинка не была изначально квадратом
Аноним 2019/10/03 20:04:08  №1488311 314
>>1488299
Спасибо, про это свойство я не знал, но это не тестовое, а просто чтобы резюме просмотрели нужно эти задачки сделать и отправить им.
Аноним 2019/10/04 09:28:05  №1488521 315
>>1488299
>хорошо быть студентом наверное
хорошо кичиться тем что знаешь чуть больше студента наверное
Аноним 2019/10/04 11:13:28  №1488580 316
Сап двач. Посоветуйте какую-то тему для проекта, хочу на симфони сделать чтобы хоть на собес позвали, на гитхабе только ларавел проекты не очень хорошего качества. Хочу попробовать за 1 день сделать какой-то круд с тестами, очередями и вот этим всем, шоб солидно было, тестхаб от опа наверное больше времени займет хоть предметная область и очень интересная
Ответы: >>1488609
Аноним 2019/10/04 11:41:23  №1488582 317
Ребят. А на верстке подзаработать хороший вариант как для заработка так и для обучения?
Ответы: >>1499781
Аноним 2019/10/04 12:37:38  №1488609 318
>>1488580
в одной конторе предлагают такое:
сделать полностью с нуля на пхп мвц приложение
публичный список задач с прикреплением картинки
к нему админку где их можно отмечать и удалять
из стороннего можно использовать только бутстрап для верстки

вот можешь попробовать сделать на симфе _солидно_
Ответы: >>1488610
Аноним 2019/10/04 12:38:14  №1488610 319
>>1488609
ну и да лимит один день
а с симфой то тебе по идее гораздо быстрее
Аноним 2019/10/04 13:42:20  №1488646 320
ОП, нужна помощь в решении задачи "Навигатор", буксую на месте не могу понять в чем проблема. То она по одной точке топчется прежде чем двинуться на другую станцию, то прыгает по несвязанным станциям, то вообще не запускается в дебагере. Фикшу одно - ломается другое. https://3v4l.org/M6KOc
[Ссылка]
M6KOc
https://3v4l.org/M6KOc
Ответы: >>1493054 >>1497822
Аноним 2019/10/04 14:02:42  №1488654 321
Какого типа данные должны показываться при загрузке видео/аудио/изображения на файлообменник? Название, расширение, размер понятное дело. Из того что получаю с помощью getid3 есть вариант сохранять продолжительность видео/аудио, разрешение, битрейт. Но нужно ли это?
Ответы: >>1499781
Аноним 2019/10/04 14:06:33  №1488657 322
>>1488272
Хаха, деанон по городу и конторе. Я не знаю берут ли там только одного, или несколько человек, но было бы прикольно устроить там двач тусовку.
Ответы: >>1488662 >>1488668 >>1488756
Аноним 2019/10/04 14:15:12  №1488662 323
>>1488657
город начинается на В, а контора на Ин?
Аноним 2019/10/04 14:23:43  №1488668 324
>>1488657
>но было бы прикольно устроить там двач тусовку
Согласен, будем на этой тусовке няшить тебя в пукан :3
Ответы: >>1488675
Аноним 2019/10/04 14:46:11  №1488675 325
>>1488668
Хотел тебе скинуть свое решение, но ты какой-то ебанутый. Так что иди нахуй
Ответы: >>1488757
Аноним 2019/10/04 14:51:16  №1488679 326
>>1482568
Продублирую, чтобы ОП не забыл посмотреть.
Ответы: >>1496561
Аноним 2019/10/04 16:50:02  №1488756 327
>>1488657
Я и не скрывал ничего, все равно работать с 1с-битриксом особо не хочу, просто для интереса сделал задачки.
Аноним 2019/10/04 16:50:50  №1488757 328
>>1488675
Да выше уже все решили.
Аноним 2019/10/04 19:46:10  №1488955 329
image.png (821, 1080x1080)
1080x1080
Привет, анончики. Нужен фронт-энд разработчик в стартап проект. Тележка для связи: @madmadnez

Пара слов о сути проекта и о нас:
Разрабатывается сервис, который призван стать новой рыночной средой, объединив в рамках одного интерфейса (мобильного приложения и веб-сайта) любые товары и услуги, которые существуют в мире, и оптимизируя рыночные взаимодействия по всей цепочке "добыча—потребление". Разработано это будет как переносом модели теории игр на взаимодействие участников рынка, так и созданием прогнозируемой рыночной среды, в которой запросы на товары и услуги будут удовлетворяться предложением и наоборот.

В конечном итоге это приведёт к тому что:
а) потребитель будет быстро находить наиболее подходящие для него товары и услуги и платить за них меньше;
б) производитель увеличит оборот, будет затрачивать меньше ресурсов и получать больше прибыли.

У нас продуманы концепции инструментов, на которых будет функционировать будущий сервис (они раскроют намного больше возможностей), разработана дорожная карта, составлен бизнес план формата UNIDO, сформирована команда единомышленников — людей самых разных навыков, которые двигают разработку. Мы пока в начале пути и привлечь нам удалось лишь 106к рублей инвестиций — мелочь, но мы набираем обороты. Совсем недавно в сырой версии выкатили презентационный сайт, который активно допиливается. Сейчас переходим к этапу малой маркетинговой кампании. Все члены команды, которые вносят вклад в развитие проекта впоследствии получат справедливую долю в компании. Однако, и уже сейчас мы стараемся платить какие-то деньги, из идущих инвестиций, согласно потребностям людей, и приобретать необходимые для эффективной работы вещи. В ближайшей перспективе планируем перекатываться на иностранный рынок.
Аноним 2019/10/04 19:56:22  №1488963 330
>>1488955
Вы планируете использовать линейное программирование в стартапе? А симплекс-методом пользоваться планируете? Готовы пожертвовать первоначальными интеллектуальными вложениями на благо будущего проекта?
Аноним 2019/10/04 23:23:37  №1489079 331
>>1488955
оптимизировать экономику планеты без фронта нереально
без пышных лендосов инвестиций не дождешься жеж!
Аноним 2019/10/05 03:16:17  №1489100 332
>>1488955
Сейчас бы искать рабочих на дваче.
Ответы: >>1489103
Аноним 2019/10/05 03:32:25  №1489103 333
>>1489100
сейчас бы подписываться на проект какой-то шняги, который аж 108 тысяч рублей инвестиций собрал
Ответы: >>1489106
Аноним 2019/10/05 04:11:00  №1489106 334
>>1489103
108 000 руб звучит серьезно
Аноним 2019/10/05 08:13:55  №1489191 335
>>1488955
Шизоид, тебя скоро банить начнут. Хватит на доске срать.
Аноним 2019/10/05 14:00:34  №1489442 336
Я понимаю, что всех заебали подобные вопросы, но как лучше вкатиться в веб, через пых или шарп? Шарп нравится из-за вижуалки, опенсорц, писать можно не только веб, статическая типизация, элементы ФП. С другой стороны, пых вроде как дефолтный выбор для бэкенда. Пхамагите.
Ответы: >>1489472 >>1489474
Аноним 2019/10/05 14:45:00  №1489472 337
>>1489442
>как лучше вкатиться в веб
без задней мысли, наверное. Ну я так пытаюсь.
А по сабжу вкатываться нужно доступным тебе вариантом. А там как вкатишься - для себя и решишь что лучше и правильней. Слушать других людей (пусть и с опытом) - большая глупость, ведь в итоге все сведется к тому что нужно вкатываться с #языкнейм, а потом прибегут и скажут что #языкнейм это говно из задницы, а вкатываться нужно с #языкнейм2. И так ты будешь не учиться, а сидеть и выбирать на какой стул сесть, говоря себя что вот уже одной ногой "вайти"!

>Шарп нравится из-за вижуалки, опенсорц, писать можно не только веб, статическая типизация, элементы ФП.
Я конечно наверное не прав, но то что ты написал выше - чушь ебаная, а не критерии выбора языка. Не могу представить как вкатывальщика такие вещи как статическая типизация, опенсорц и прочая чепуха ебать должна.
Ответы: >>1489479
Аноним 2019/10/05 14:49:58  №1489474 338
>>1489442
На пхп много вакансий для начинающих, но эдак 60% это веб-студии, клепающие джумлобитрикс хуйню, это не лучшее введение в бэкенд. И фронт в таких конторах это не смузиреакты, конечно, а тупое верстание с краденными жквери кнопками. Шарп же в другой ситуации, вакансий полно вроде, но именно в вебе эдак половина-треть, из них для начинающих не то что и много остается. Зато компании обычно нормальные, серьезные, не ИП Оганесян.
Ответы: >>1489479
Аноним 2019/10/05 14:56:53  №1489479 339
>>1489472
>Не могу представить как вкатывальщика такие вещи как статическая типизация, опенсорц и прочая чепуха ебать должна.
Лол, а что меня ебать должно?
К статической типизации я привык, т.к. пишу для себя и для учебы на плюсах. Опенсорц -- потому что можно взять и без задней мысли посмотреть исходники библиотек без задней мысли. Да, не факт, что мне это вообще понадобится, но сама возможность впечатляет.
ФП мне просто нравится само по себе, хотя я и не то, чтобы в нем очень прошарен.
>>1489474
Спасибо.
Ответы: >>1489486
Аноним 2019/10/05 15:05:52  №1489486 340
>>1489479
Меня как вкатывальщика ебет кол-во работы в моем городе и нужный стек технологий для этой самой работы. php надоест или понадобится что то другое изучить - изучу. Или ты 20 лет на одном c# , php сидеть собрался?
Ответы: >>1489493
Аноним 2019/10/05 15:13:26  №1489493 341
>>1489486
В моем городе кроме крестов нихуя нет, я надеюсь перекатиться в дс2, т.к. он в трех часах езды отсюда.
>Или ты 20 лет на одном c# , php сидеть собрался?
Через 20 лет не факт, что шарп и пых будут актуальны, лол.
Ответы: >>1489499
Аноним 2019/10/05 15:33:35  №1489499 342
>>1489493
Ну ты так вопрос задал, будто не язык для старта выбираешь, а жену с которой тебе ближайшие 20 лет жить и детей растить.
Ответы: >>1489505
Аноним 2019/10/05 15:41:52  №1489505 343
Аноним 2019/10/05 19:11:08  №1489673 344
Вот и я вкатился, хотя читал истории успехов и не верил, что тоже могу. Год сидел с вами. Как только запилите простой круд типа студентов, сразу идите на собесы и не ссыкуйте.
Ответы: >>1489674 >>1489676
Аноним 2019/10/05 19:12:36  №1489674 345
>>1489673
Да, ОП, огромное спасибо, я думал, что нихуя не знаю, но на собесах сказали, что очень хорошая база для джуна и шарю в деталях, почти все благодаря твоим пастам и задачам.
Аноним 2019/10/05 19:13:50  №1489676 346
>>1489673
Что умеешь, учил ли фреймворки? С SQL как дела, с версткой?
И удачи тебе, анон.
Ответы: >>1489682
Аноним 2019/10/05 19:19:49  №1489682 347
>>1489676
Сделал студентов и почти файлообменник, sql и верстка достаточно норм были, фреймворки особо не трогал и на собесах их не спрашивали, начал только лару учить перед собесами. Много читал по сетям, алгоритмам, это кстати помогло на собесах. Было даже несколько оферов на пыху, но вышло, что я пошел не на php, потому что фирма хорошая и готовы научить рубям, пилят свой продукт давно уже.
Аноним 2019/10/06 03:45:23  №1489835 348
Я раскидал резюме по разным конторам, вот в одну пригласили на собес в понедельник, я обрадовался, но щас проверил это кароч веб-студия, сотрудников там очень мало, инфы о ней никакой практически нет, как-то странно, есть только 1 сайт сделанный их руками какого-то ресторана на 1с-битриске и все, что думаете идти? Зарплата хорошую предлагают, выше чем в 'нормальных' конторках, может ли там вообще какой-то наеб быть?
Ответы: >>1489840
Аноним 2019/10/06 05:06:30  №1489840 349
>>1489835
Бабье нытье какое то.
Сходи и узнай что к чему.
Ответы: >>1489844
Аноним 2019/10/06 05:19:13  №1489844 350
>>1489840
Ну я схожу, просто интересно что ждать, может кто-то в такие студии устраивался и расскажут подводные.
Ответы: >>1489885
Аноним 2019/10/06 07:04:49  №1489885 351
>>1489844

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


Единственный совет - иди, и держи ушки на макушке.



Ответы: >>1490008
Аноним 2019/10/06 08:09:51  №1489916 352
Хочу сказать что этот ваш слим прям пипец похож на express.js для ноды
Ответы: >>1489955 >>1490057
Аноним 2019/10/06 09:24:41  №1489955 353
>>1489916
п.с.
Почитал - такой подход микро-роутеров пришел с руби-фреймворка Sinatra. С тех пор такие фреймворки почти одинакоы везде.
Ответы: >>1490057
Аноним 2019/10/06 10:26:47  №1490008 354
>>1489885
Я нагуглил страницу владельца веб-студии, вообщем он социоблядь и качок, мне кажется общий язык мы с ним не найдем, но все равно схожу, я же без опыта и образования, может вообще мой единственный шанс.
Ответы: >>1490046
Аноним 2019/10/06 10:58:50  №1490046 355
>>1490008
Прости, но ты дурак.
>> вообщем он социоблядь и качок
Такие как раз, по необходимости с кем угодно найдут общий язык. Это ты живешь в русле своих психических установок. Ты не гибкий.
А он гибкий, если ему нужно будет найдет с тобой общий язык.

Иди обязательно. Бонусом будет как раз знакомств с этим человеком. Как он себя ведет, как говорит. Окружай себя не двачерами а нормальными людьми по возможности.
Ответы: >>1490065
Аноним 2019/10/06 11:18:34  №1490057 356
>>1489955
>>1489916
Для меня первее был фалькон, но мысли такие же возникли про слим потом. Просто трудно придумать проще и логичнее подход я думаю. Потому что для роутинга всегда придется делать как минимум две вещи: парсить урл и вызывать что-то соответственно распарсенному.
Ответы: >>1490206
Аноним 2019/10/06 11:28:50  №1490065 357
>>1490046
Спасибо за ответы, все таки схожу, думаю если что то перекачусь с битрикса куда-нибудь поинтереснее.
Ответы: >>1490209
Аноним 2019/10/06 13:36:50  №1490206 358
>>1490057
На данный момент у меня есть со slim определенные проблемы.
Так как я не хочу портянку из роутов на каждый url - то я допустим на "user/login" вызываю контроллер User и метод Login. И уже в контроллере\модели все действия провожу.
Трабла возникла с тем как из контроллера произвести допустим рендер другого представления, или реализовать редирект куда угодно.

Ответы: >>1490336
Аноним 2019/10/06 13:39:06  №1490209 359
>>1490065
Будь инициативным и решительным! Удачи, отпишись потом чтоле.
Ответы: >>1491109
Аноним 2019/10/06 16:13:10  №1490336 360
>>1490206
Хм, покажи, пожалуйста, как это выглядит у тебя? З.ы. мне вот наоборот удобнее, когда роуты в одном файле и все перед глазами. Например в первом ангуляре писался от этого, а вот во втором сейчас требуют разносить все по модулям, невозможно сразу прикинуть дерево урлов, такая боль.
Ответы: >>1490363
Аноним 2019/10/06 16:29:01  №1490363 361
>>1490336
С тем вопросом разобрался, просто в контроллер нужно $this передать а я $app передал, а он отказывается работать.
Весь день сегодня развлекаюсь с этим фреймворком.

Вот обработчик роута:

https://ideone.com/MnQeDZ

Там по тексту еще пара вопросов, может ответишь.
Ответы: >>1490413 >>1490591
Аноним 2019/10/06 17:08:44  №1490413 362
>>1490363
Тебе не надо use, по крайней мере в твоем коде. Вот из документации даже:
>>If you use a Closure instance as the route callback, the closure’s state is bound to the Container instance. This means you will have access to the DI container instance inside of the Closure via the $this keyword
у тебя как раз замыкание.
Возвращать в роутах в принципе ничего не нужно, это где ты такое прочитал?
Аноним 2019/10/06 19:19:09  №1490591 363
>>1490363
Анон, это пиздец, что это за велосипед? У тебя же есть готовый роутер, зачем-ты поверх него своё говно делаешь? Объясни чем "портянка" из рутов хуже твоего кода? Ты понимаешь что твоё поделие невозможно дебажить?

>в документации вроде сказано что $response обязан быть возвращенным
Я так понимаю что если ты ничего не возвращаешь из контроллера то слим сам пытается создать ответ через контейнер и вернуть его, если ты Response затайпхинтишь и как-то изменишь то по идее он этот объект и вернет, но если сделать так
>$response = $this->view->render(...)
то это по идее не сработает потому что ты перетираешь ссылку, по логике такой рут отдаст скорее всего дефолтный ответ типа 200 ОК, который приложение дало тебе в контроллер, но ссылку на который ты перезаписал другим ответом. Проще наверное просто return new Response(...) писать
Ответы: >>1490773 >>1490793
Аноним 2019/10/07 03:11:19  №1490764 364
catPNG132.png (243, 500x433)
433x500
Аноним 2019/10/07 03:46:32  №1490771 365
>>1490764
Писать контроллеры в замыканиях роутера - не лучшая идея, как по мне. Там есть удобная возможность вынести это в нормальные классы, да и инициализацию сервисов тоже можно в отдельный файл убрать.
У тебя слишком много разной логики в index.php находится.
Ответы: >>1490777
Аноним 2019/10/07 03:48:13  №1490773 366
>>1490591
>Анон, это пиздец, что это за велосипед?
Удвою. Выглядит дико.
Ответы: >>1490793
Аноним 2019/10/07 04:05:35  №1490777 367
>>1490771
Понял, спасибо за отзыв.
Аноним 2019/10/07 05:36:50  №1490793 368
>>1490591
>>1490773

>>Объясни чем "портянка" из рутов...

По фану, я по итогу и контроллер динамически вызываю. Короче по итогу два роута get и post. Ясен пень что такую структуру кода применять нельзя. Скачать boilerplate и сделать все как нужно не велика беда.
Ответы: >>1490977
Аноним 2019/10/07 07:20:24  №1490816 369
Котятки, совет для тех кто только начал изучать фреймворк:

Сначала изучите его полностью, прочитайте как все работает. И только потом начинайте пилить серьезные проекты, чтобы все было аккуратно, без лапшичного кода. Старайтесь делать все понятно.
Ответы: >>1490835
Аноним 2019/10/07 07:23:53  №1490819 370
А еще если кто не знал погуглите принципы:

YAGNI, KISS, SOLID
Аноним 2019/10/07 07:32:46  №1490821 371
А как передавать через контейнер класс, у которого лишь статические методы? Я вот хочу класс, управляющий куками передать в контроллер, получается мне нужно строчку с названием класса передать? Как тут тогда будет сохраняться соблюдение типов?
Ответы: >>1499778
Аноним 2019/10/07 08:15:23  №1490835 372
>>1490816
А руки перед едой мыть нужно?
Я бы сказал котятки, ебаште как можно больше кода, Господь своих разберет
ток не нужно для коммерческих приложений велосипедить
Ответы: >>1490974
Аноним 2019/10/07 10:28:45  №1490932 373
Объясните плиз на пальцах, что такое middleware в Slim? И примерчик, если можно.
Ответы: >>1499778
Аноним 2019/10/07 11:41:53  №1490974 374
>>1490835
>ток не нужно для коммерческих приложений велосипедить
Как ты научишься не велосипедить, если не понимаешь как правильно хотя бы потому, что в петах говнокодишь постоянно?
Ответы: >>1491075
Аноним 2019/10/07 11:46:17  №1490977 375
>>1490793
>По фану
Если по фану, то нормально форкай и переписывай местный роутер на динамический вызов, а не пиши этот бред поверх старого.
Ответы: >>1491075
Аноним 2019/10/07 12:04:03  №1490987 376
хочу запилить спа сайт.
но есть вопрос,чтобы не тащить все тяжелые фреймворки,можно ли к голому каркасу подключить пару пакетов(или как там)-работа с бд и работа юзерами-регистрация и вход?
Ответы: >>1490999 >>1491035 >>1491086
Аноним 2019/10/07 12:20:19  №1490999 377
>>1490987
ты какие фреймворки имеешь ввиду?
спа без фронтэнд фреймворков сделать конечно можно, но очень велосипедно, ну а бэкэнд фреймворки не нужны особо
Ответы: >>1491007 >>1491022 >>1491035
Аноним 2019/10/07 12:25:03  №1491007 378
>>1490999
>бэкэнд фреймворки не нужны особо
Тогда попробуй сделать спа на бутстрапе, лол.
Ответы: >>1491010
Аноним 2019/10/07 12:29:16  №1491010 379
>>1491007
бутстрап это ксс фреймворк, к бэкэнду не имеет отношения
Ответы: >>1491201
Аноним 2019/10/07 12:34:07  №1491016 380
алсо спа по своей сути подразумевает что большая часть нагрузки ложится на динамически меняющий страницу фронт, а от бэка нужен самый минимум вроде запросов к бд
Ответы: >>1491078
Аноним 2019/10/07 12:37:19  №1491022 381
>>1490999
фронт-ангуляр будет,вопрос про бэк
Аноним 2019/10/07 13:01:20  №1491035 382
>>1490987
>>1490999
Вы так говорите как будто разница между апи и фулвеб это просто 1 миллион зависимостей, хотя там по факту только шаблонизатор явно не нужен. Хотя я как-то пробовал использовать Lumen (это от создателя Laravel) который вроде как микрофреймворк и весь такой для апи, и охерел просто от того как всё неудобно потому что половину функционала даже с регистрацией разных зависимостей выпилили и перепилили, подозреваю что это потому что некоторые компоненты сильно завязаны на фреймворке и отдельно их не получается использовать.

>можно ли к голому каркасу подключить пару пакетов(или как там)-работа с бд и работа юзерами-регистрация и вход?
можно
Я бы лучше начал с симфони 4, в котором вообще кроме http basics ничего нет, для юзеров тот же security компонент юзать а для дб как вариант dbal или полноценную орм если нужно.
Зачем нужен тот же слим, когда есть симфоня 4 я тоже пока что не понял.

>алсо спа по своей сути подразумевает что большая часть нагрузки ложится на динамически меняющий страницу фронт, а от бэка нужен самый минимум вроде запросов к бд
по сути одни и те же операции только данные в разных форматах возвращаются
Ответы: >>1491042
Аноним 2019/10/07 13:11:28  №1491042 383
>>1491035
> симфони 4,
тяжеловесный монстр
Аноним 2019/10/07 13:42:12  №1491075 384
>>1490977
>>Если по фану, то нормально форкай
Вот поуказывай мне еще, зануда :)

>>1490974
Это демагогия все.
У дзен вкус середины.
Аноним 2019/10/07 13:48:53  №1491078 385
>>1491016
Угу, то то там холивары идут, сколько данных тянуть с сервера, фильтровать их на бэке, или уже во фронте, и все такое. На хабре срачи почитай. Вообще фронт это срач на сраче, потому что пубертатные 22 летние "сеньеры" на 90 % озабочены манифестом своего эго, а фактически работа им до пиздбы.

Я это вижу так, когда SPA - бэк отдает онли данные. Вся разметка и логика с ней связанная уже на фронте. Функционал динамического отображения перетек на фронт.
Ответы: >>1491083
Аноним 2019/10/07 13:57:29  №1491083 386
>>1491078
мне кажется что большой разницы обрабатывать данные на фронте или на бэке нет, это все равно спа если вместо шаблонов происходит манипуляция дом деревом одной страницы чтобы ее переделать в совершенно другую
Аноним 2019/10/07 14:00:47  №1491086 387
>>1490987

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

Одно дело, если это какой-то сайт со статьями, на который люди приходят из гугла, читают статьи, комментируют и уходят. Зачем тут SPA? Оно лишь замедлит загрузку сайта.

Другое дело, если это, например, редактор электрических схем, мессенджер или система для какой-то отчетности (вроде задач для курьера или поквартирного обхода). Тут, наборот, SPA нужно, так как тут есть высокая интерактивность, нужно хранить данные на клиенте, может пропадать интернет.
Ответы: >>1491087
Аноним 2019/10/07 14:03:20  №1491087 388
>>1491086
в чем усложнение? статьи хранишь в бд, тем же реактом генеришь страницу и дергаешь на нее из бд текст статьи
на бэке тебе буквально нужно только отдача статики и запросы к базе данных и все
Ответы: >>1491088
Аноним 2019/10/07 14:06:32  №1491088 389
>>1491087

В том, что больше работы для выполнения той же задачи. И как правило это тормозная загрузка, особенно на слабых мобильных телефонах, хотя в теории есть разные техники, чтобы избежать тормозов (вроде не использования тяжелых огромных библиотек и впекания части JSON данных в тело страницы. Но это опять же лишняя и непростая работа).
Ответы: >>1491089 >>1491090
Аноним 2019/10/07 14:08:38  №1491089 390
>>1491088
не вижу в чем тут больше работы, не надо возиться с шаблонизатором и такое простое спа любой телефон отрендерит на ура
Аноним 2019/10/07 14:11:13  №1491090 391
>>1491088
Разделение клиента и сервера позволяет больше использовать кэширование. При правильной реализации время загрузки данных уменьшается.
Ответы: >>1491150
Аноним 2019/10/07 14:41:53  №1491109 392
>>1490209
Вообщем съездил на собес, меня у дома встретил владелец студии, повел в подвал где она сама и находится, зашел в небольшую комнатку, в которой 3 человека сидели 1 тянка и 2 куна, я поздоровался с ними, затем он меня посадил за свободный пк, скинул тестовое, там были просто 15 вопросов по ооп, надо на время выполнить и еще один по основам php, но он не запустился хех, в итоге сделал 11 из 15, потом он скинул мне курс по битриксу, сказал как пройдешь, сделаешь тестовое оттуда, скинешь на гитхаб и мы оценим, еще добавил что могу уже сейчас к ним ездить и этот курс здесь проходить, задавая вопросы если что или дома и тоже можешь звонить или писать в телеграмм, я выбрал второе, так с завтрашнего дня сяду за этот курс, а дальше посмотрим как пойдет.
Ответы: >>1491210 >>1491290
Аноним 2019/10/07 15:17:10  №1491150 393
>>1491090

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

Твои рассуждения насчет "легкости" SPA скорее всего тоже теоретические. Если тебе хочется обычный сайт, но с аяксом вместо перезагрузки, то просто возьми легкую библиотеку pajax https://github.com/MoOx/pjax и не усложняй себе жизнь.
Ответы: >>1491191
Аноним 2019/10/07 15:19:16  №1491152 394
Аноним 2019/10/07 16:21:32  №1491185 395
>>1475112 (OP)

Сап, анончики, а должна быть какая-то специализация внутри выбранного языка? Вот скажем, если мне нравится учить sql и работать в linux, я могу в резюме как-то по-особенному это отметить? И вообще есть ли смысл джуну зеленому выебываться тем, что он что-то "знает" лучше, чем что-то другое?
Ответы: >>1499777
Аноним 2019/10/07 16:24:50  №1491191 396
>>1491150
какое говно только не посоветуют...
Аноним 2019/10/07 16:30:19  №1491201 397
>>1491010
Ты сам сказал, что для спа бэкенд не нужен особно - вот и пили. Алсо, там не только ксс, но и жикуери есть, так что вполне полноценный вронтенд.
Ответы: >>1491204
Аноним 2019/10/07 16:33:34  №1491204 398
>>1491201
ты хоть сам себя понимаешь?
при чем тут бутстрап? спа фронтэнд фреймворки это реакт, вью, ангуляр, свелте и т.п.
Ответы: >>1491207
Аноним 2019/10/07 16:37:11  №1491207 399
>>1491204
>это реакт, вью, ангуляр, свелте
Там бекенда вполне достаточно, если ты не знал.
Ответы: >>1491208
Аноним 2019/10/07 16:39:08  №1491208 400
Ответы: >>1491211
Аноним 2019/10/07 16:43:38  №1491210 401
>>1491109

Молодец, поздравляю!

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

А так, желаю удачи!
Ответы: >>1491456
Аноним 2019/10/07 16:45:43  №1491211 402
>>1491208
Просто ты имеешь мнение о том, чего не понимаешь.

Тебе данные на фронт аллах присылает что ли? Все фронтенд фремворки используют бэкенд, а некоторые с той же нодой сразу идут.
Ответы: >>1491216
Аноним 2019/10/07 16:58:32  №1491216 403
>>1491211
не понимаешь тут не я а ты
я сказал что бэкэнд фреймворки не особо нужны а не то что бэкэнд не нужен
я пхп не помню толком (я джаваскриптер) но иирк ему не нужен фреймворк например для запроса базе данных и возвращения джейсона
кроме того, спа можно иметь полностью серверлесс, например с помощью амазона, база данных в облаке и всё такое
а если взять сотовый телефон, там реакт тот же может бд и другие ассеты держать прямо на телефоне т.е. в клиенте

р при чём тут бутстрап
Ответы: >>1491273 >>1491294
Аноним 2019/10/07 16:59:55  №1491218 404
Как обычно реализуют крупные проекты, где допустим sitename это просто олдскул ларавельный монолит с блейдом, а sitename/draw это spa для рисования, которое дергает sitename/api/draw, ну и так еще какой-нибудь монолит love.sitename и spa sitename/play. Все эти мало связанные приложения через несчастный фронт контроллер index.php с rewrite rule идут? Или разносят по разным серверам вообще
Ответы: >>1499777
Аноним 2019/10/07 17:14:34  №1491229 405
ананасы, кто-нибудь сталкивался с неточностями отслеживания кампании в Google Analytics?
Например, в письме с рассылкой от нашего сайта есть ссылка: http://dvachery.com/advertisement?utm_campaign=ananas_express&utm_source=newsletter&utm_medium=email

В статистике Гугла 50 переходов, в нашей личной статистике 100 переходов. Почему может быть такая разница?
Ответы: >>1491306
Аноним 2019/10/07 18:46:40  №1491273 406
>>1491216

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



Ответы: >>1491399
Аноним 2019/10/07 19:13:06  №1491290 407
>>1491109
как пиздато жить в городе
Аноним 2019/10/07 19:18:41  №1491294 408
>>1491216
>база данных в облаке и всё такое
В результате у тебя вся логика на клиенте. С таким же успехом можно сказать, что фронтенд фреймворки не нужны и всё делать на бэкенде.
Аноним 2019/10/07 19:29:38  №1491306 409
>>1491229
а ты какие заходы считаешь?
гугл тоже сразу после юзера дергает страницу
считай его отдельно в стате по юзер агенту
Ответы: >>1491328
Аноним 2019/10/07 19:33:02  №1491313 410
Посоны задание на стороки
>>На картинке — часть программы, создающая философское настроение. Принцип работы таков: есть 5 наборов слов, из которых случайно выбираются слова, образуя такую структуру:
> слово1 слово2 слово3
> слово1 слово2 слово3
> Я слово4 слово5
Задание
Доделай программу

Так пойдёт http://ideone.com/NOsrH5 ???
Ответы: >>1491341
Аноним 2019/10/07 19:43:28  №1491328 411
>>1491306
Уникальные заходы по ссылке, связка URL => UserId в нашей системе. Гугл тоже по идее уникальные должен считать, основываясь на ClientId, записанных в кукисах. Но в Гугле почему-то юзеров в 2 раза меньше.
Ответы: >>1491366
Аноним 2019/10/07 19:57:28  №1491341 412
>>1491313
Пойдет, делай дальше. Зачем вы по несколько дней сидите за задачками на 1 функцию, которая за вас уже и написана. Ваша цель ознакомиться с языком и функциями, а не красиво результат вывести.

> $random1 = array_rand ($word1);
> $words1 = $word1 [$random1];
Это можно записать в массив, если очень хочется
>$result[0][] = $word1[array_rand($word1)]

Если совсем делать нечего, можешь попытаться прикнурить это к циклу. Но я бы шел делать некст задачки
Аноним 2019/10/07 20:23:47  №1491362 413
Котаны, у меня тупой вопрос.

Как скопировать именно класс в переменную?

use \my\class\MyClass;

$c = MyClass;

var_dump($c);

парсер ругается на то что нет такой константы.
Как мне допустим вернуть именно класс из функции к примеру?

Ответы: >>1491385 >>1491394
Аноним 2019/10/07 20:28:54  №1491366 414
>>1491328
Я вижу в описанной ситуации три возможных варианта:
№1. Задержка обновления - будет всегда
№2. Трекалка гугла нестабильно срабатывает:
а. Неправильно вставляете - перечитываются инструкции, вносятся исправления при необходимости
б. У заходящих блок скриптов, аналитики и т.д. - no luck
№3. Плохо трекаете:
а. Вместе с url брали query, а там мусор - проверяй через запросы со случайным мусором в query
б. Просто забыли учет id - проверяется через f5
Ответы: >>1491368
Аноним 2019/10/07 20:31:32  №1491368 415
>>1491366
Спасибо за предположения, анон, но почему половина URL трекается, а половина нет?
В query никакого мусора нет, только utm_* метки для гуглоаналитики.
Ответы: >>1499777
Аноним 2019/10/07 20:52:50  №1491385 416
image.png (53, 780x369)
369x780
>>1491362
Потому что так в принципе нельзя.
Класс не является сущностью первого порядка.
Вместо токена с именем класса в пхп везде используется строка с его именем.
В качестве исключения оператор instanceof позволяет указывать имя класса как токен.
В переменную ты можешь положить только объект класса.
Ответы: >>1491487
Аноним 2019/10/07 21:02:49  №1491393 417
image.png (53, 965x405)
405x965
>>1490764
Долго делал? Чому без странички просмотра картинки/аудио/видео?
Название файла вылазит, если больше ~60 символов
Это, наверное, поможет
> white-space: nowrap;
> overflow: hidden;
> text-overflow: ellipsis;
Ответы: >>1491422
Аноним 2019/10/07 21:03:21  №1491394 418
>>1491362

Класс не является значением, которое можно поместить в переменную. Однако, ты можешь скопировать полное имя класса (с неймспейсами):

$name = Some\Class::class;
var_dump($name); // Some\Class

Ответы: >>1491487
Аноним 2019/10/07 21:07:31  №1491395 419
bug1.png (105, 1274x732)
732x1274
>>1490764

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


Ответы: >>1491397 >>1491422
Аноним 2019/10/07 21:14:40  №1491397 420
image.png (104, 1365x688)
688x1365
>>1491395
В хроме так. Думал это фишка такая
Аноним 2019/10/07 21:23:25  №1491399 421
>>1491273
>Потому что в сущности любой переиспользуемый код - это фреймворк.
чушь
есть либы которые более ограничены в функционале и делают что-то одно
есть функционал языка или среды из коробки
Ответы: >>1491633
Аноним 2019/10/07 21:39:27  №1491406 422
bug2.png (23, 633x158)
158x633
bug3.png (35, 602x365)
365x602
>>1490764

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

Вместо "выберите файл..." логичнее писать "нажмите, чтобы выбрать файл (или открыть диалог выбора файла) или перетащите файл сюда".

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

Ты пишешь "размер 107.9 KB", но в России числа пишутся через запятую, а "килобайт" как "Кб". Нелогично смешивать российский и западный стиль в одной фразе.

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

Еще один баг - кривая дата загрузки на пикрелейтеде.

В списке файлов у файла есть крестик, но нет подсказки при наведении на него и непонятно, что он делает.

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

- справа нет линий (картинка bug3.png)
- непонятно, что значит пунктирная линия и что сплошная. Лучше было не выпендриваться и выделять выбранный пункт подсветкой. Также, имхо, толстые линии неудачно смотрятся.
- кнопка Фильтры не становится выделенной, когда попап раскрыт
- если открыть фильтры, а затем кликнуть в поле поиска, они не скрываются. Если сделать поиск, то попа фильтров перекрывает надпись "ничего не найдено". Нужно скрывать фильтры при перемещении фокуса табом или клике за их пределы.

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

Показать: [ мои файлы | все файлы ] Сортировка: [ дата ^ ]

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

Не очень понятно, зачем кнопка "найти", если поиск работает без нее.

Нет ссылки на страницу одного файла, а как тут поделиться ссылкой-то? Прямой ссылкой на файл делиться?

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

Не выполняются правила работы с аяксом: https://github.com/codedokode/pasta/blob/master/js/ajax.md

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

Протестировал ли ты поддержку картинок с анимацией (gif), с полупрозрачностью (png)? Хотя, вроде как вижу такие картинки.
Ответы: >>1491422
Аноним 2019/10/07 21:42:46  №1491407 423
>>1490764

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

Ответы: >>1491422
Аноним 2019/10/07 21:58:20  №1491408 424
Просил рассказать про пакеты,а развели срач про спа
Ответы: >>1491417
Аноним 2019/10/07 22:49:12  №1491417 425
>>1491408
Что тебе про них рассказывать? Берёшь и пользуешься каким хочешь.
Аноним 2019/10/07 23:05:22  №1491422 426
>>1491393
>Долго делал?
Месяца 2.

>Чому без странички просмотра картинки/аудио/видео?
Да лень уже было добавлять, задолбался я с этим файлообменником, хоть и он относительно простой.

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

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

>Ты пишешь "размер 107.9 KB", но в России числа пишутся через запятую, а "килобайт" как "Кб". Нелогично смешивать российский и западный стиль в одной фразе.

https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D0%BB%D0%BE%D0%B1%D0%B0%D0%B9%D1%82#cite_note-IEC80000-2

>Допускается применение международного обозначения единицы информации с приставками «K» «M» «G», рекомендованного Международным стандартом Международной электротехнической комиссии МЭК 60027-2 (KB, MB, GB, Kbyte, Mbyte, Gbyte).

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

Правило cursor: pointer срабатывает, прямо сейчас проверил, с какого браузера капчуешь?

>Еще один баг - кривая дата загрузки на пикрелейтеде.
Интересно, а какова природа этого бага? Пересмотрю метод, форматирующий дату и время.

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

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

Полностью согласен, собирал на коленке дизайн, но...

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

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

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

>Не очень понятно, зачем кнопка "найти", если поиск работает без нее.
У меня телефон со старым браузером, под который перестали выпускать ПО с 2013 года, и там не работает событие input, наверняка я не один такой динозавр.

>Нет ссылки на страницу одного файла, а как тут поделиться ссылкой-то? Прямой ссылкой на файл делиться?

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

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

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

Предполагалось добавить туда еще 1-2 пункта меню с регистрацией и входом, но что-то я поленился это делать. Сделаю на полноценном фреймворке уже.
Ответы: >>1491424 >>1491702
Аноним 2019/10/07 23:13:07  №1491424 427
>>1491422
Кстати, ты ведь еще аудио плеер самопальный не видел.
Я там забил на перемотку вообще, но зато с красивостями тоже постарался.
Аноним 2019/10/08 03:35:04  №1491450 428
>>1490764
Я не ПХП кодер но мне нраица. Форканул.

<spoiler>ОПыч я потом начну пыхать, обещаю</spoiler>
Ответы: >>1491451 >>1491966
Аноним 2019/10/08 03:36:15  №1491451 429
15547497148240.png (214, 500x466)
466x500
>>1491450
><spoiler>
Когда уже совсем поехал на верстке
Аноним 2019/10/08 03:54:31  №1491456 430
>>1491210
Ну так через неделю я буду с ними в студии работать, если им понравится мое практическое конечно.
Аноним 2019/10/08 05:14:48  №1491482 431
Мечтаю стать Web разработчиком, в моем городе есть неплохие вакансии для джунов. Стоит ли начинать самостоятельно изучать всю базу или лучше пойти на какие-нибудь курсы? И расскажите пожалуйста про минимальные системные требования пк, а то есть подозрение, что мой 10 летний старичек с 2гб оперативы не справится (или справиться?)
Ответы: >>1491489 >>1491493
Аноним 2019/10/08 05:33:12  №1491487 432
>>1491394
>>1491385

Ок, спасибо. Тогда суть моей проблемы - в slim в контейнер я хочу поместить класс библиотеки авторизации Sentinel.
В ней все на статических методах класса.
Вот так это выглядит:

$container['sentinel'] = function ($container) {

$Sentinel = Cartalyst\Sentinel\Native\Facades\Sentinel;

return $Sentinel;
};

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

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



Ответы: >>1491492 >>1498476
Аноним 2019/10/08 05:40:46  №1491489 433
>>1491482
>>или лучше пойти на какие-нибудь курсы
Когда тебя учат - это в принциеп гораздо лучше чем когда ты сам копротивляешься.
В принцпе если это реальные курсы, куда ты приходишь и с преподом общаешься - это полезно.

За инфо-циган ниче не могу сказать.
Аноним 2019/10/08 05:44:08  №1491492 434
>>1491487
Ты не можешь передать класс.
Передавать строку в данном случае тоже неправильно.
Неважно что методы статические, тебе придется делать объект.
К объекту также можно обращаться за статическими методами:

$object = new BadClass();
$object::staticMethod();

Лучше создать интерфейс и прокси без статики снаружи.
В контейнере обращаться к ним.
Уже в своём прокси дергать статический класс.
В будущем ты сможешь свапнуть этот класс на что угодно.
Инверсия зависимостей как раз для этого и существует.
Если будущее бессмысленно - используй статические методы без контейнера.
Так можно делать если ты понимаешь зачем, а не просто ленишься.
Аноним 2019/10/08 05:44:18  №1491493 435
Аноним 2019/10/08 06:18:40  №1491505 436
image.png (2, 484x84)
84x484
image.png (3, 508x79)
79x508
В IE11 скрипт полностью падает из-за syntax error
на стрелочной функции.

Просто спрятать скрипт в:
if ( ! IE11 ) {
мой скрипт
}
- не помогает, браузер все равно его читает перед выполнением, решил просто избавиться от фатала и не запускать скрипт, вот собственно поясните является ли этот код идентичным?
Ответы: >>1491532 >>1491536
Аноним 2019/10/08 06:44:32  №1491515 437
>>1490764
Можно было бы вместо нажатия кнопки "показать еще" сделать так, чтобы само подгружало новые элементы по достижению кноики, вместо нажатия кнопки, как например это сделано в ВК.
Ответы: >>1491516 >>1491966
Аноним 2019/10/08 07:02:44  №1491516 438
Ответы: >>1491829
Аноним 2019/10/08 07:11:30  №1491519 439
Всетаки какое тупое говно тупого говна в пхп эта вашя ебля с static, self, parent. И какие то ебанутые правила вызова статических свойств в объекте через self.
Запутанное говно. Сложно запомнить
Понятно что типа что бы не сломать совместимость.
JS в плане этом гораздо проще.
А пистон так вообще.
Аноним 2019/10/08 07:19:10  №1491521 440
Ебанутое дело

к статическому свойству класса объект класса таки может иметь доступ, но через :: , а если через -> то нихуя. Нельзя.

Нахуя такой диззайн

каждый раз когда лезу себе напомнить - фрустрирую от этого говна, модл ООП в прнципе простая, но запутанная бладж
Ответы: >>1491525 >>1493492
Аноним 2019/10/08 07:28:35  №1491525 441
>>1491521
п.с.
А в доке написано это
" Свойство класса, объявленное как статическое, не может быть доступно посредством экземпляра класса (но статический метод может быть вызван)."

А вот тут я закис. В доке ниже следующий пример опровергает это утверждение.
$foo::$my_static; - и статический метод доступен.
Что за хрень?
Ответы: >>1498476
Аноним 2019/10/08 07:46:07  №1491532 442
>>1491505
У стрелочной нет своего this. Так что к анонимной функции придется биндить this.
Ответы: >>1491537
Аноним 2019/10/08 07:57:02  №1491536 443
>>1491505

Ты сам виноват что используешь слишком новый стандарт JS (ES6), который не поддерживается в ИЕ11: https://caniuse.com/#feat=es6

Он поддерживается только с 2017-2018 года и по моему глупо отсекать все браузеры вышедшие до этого момента.

Тебе надо:

- выучить, какие есть стандарты JS (ES3, ES5, ES6 и что там дальше не помню)
- выучить примерно с какого года они поддерживаются браузерами

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

Учти что в стрелочных и обычных функциях по-разному передается this.
Аноним 2019/10/08 08:01:47  №1491537 444
>>1491532

Это легко решается костыльком:

var self = this; // или var that = this;

something.then(function (x) {
return self.doSomething(x);
});

И не требуется bind(), появившийся в ES5.
Ответы: >>1491538
Аноним 2019/10/08 08:03:28  №1491538 445
>>1491537
Ну ты совсем динозаврие.
Аноним 2019/10/08 10:54:37  №1491633 446
>>1491399
Твое утверждени строится лишь на стремлении к демагогии.
По мне хоть пирожком называй этот код. А границы его ограниченности - это для тех кому хочется поупражняться в словесности, на мой взгляд.






Ответы: >>1491658
Аноним 2019/10/08 11:22:57  №1491658 447
>>1491633
"The framework dictates the architecture of your application." "Reuse on this level leads to an inversion of control between the application and the software on which it's based. When you use a toolkit (or a conventional subroutine library for that matter), you write the main body of the application and call the code you want to reuse. When you use a framework, you reuse the main body and write the code it calls. You'll have to write operations with particular names and calling conventions, but that reduces the design decisions you have to make."
Выдержка из книги «Банды четырёх».
Ответы: >>1491670
Аноним 2019/10/08 11:50:02  №1491670 448
>>1491658
А если не диктует? А если диктует на половину? полу-фреймворк?
Я прекрасно понимаю ход твоей мысли.
На практике просто все равно как и что классифицируется. Главное что оно подходит задачам.
Ответы: >>1491672
Аноним 2019/10/08 11:51:41  №1491672 449
>>1491670
п.с. по факту основной функционал любого популярного фреймворка - стандартизация.
Аноним 2019/10/08 12:41:48  №1491702 450
>>1491422
>задолбался я с этим файлообменником
У меня тоже было со студентами - переписывал раза 2 их потому, что экспа капала хорошо. Потом просто задолбало один проект пилить столько времени и фан кончился.
Ответы: >>1491966
Аноним 2019/10/08 15:42:04  №1491821 451
Работяги, есть вопрос. Скоро сдавать диплом, какой проект сделать? Желательно альтернативы посту ОПа, возможно то, чего Вам не хватает, т.е. полезное.
Аноним 2019/10/08 15:50:08  №1491829 452
>>1491516
Тут дело не в кнопках, а в scroll
Аноним 2019/10/08 17:11:34  №1491862 453
Аналогичный вопрос с ajax
https://toster.ru/q/381852
там дали ответ, но мне кажется это не самый лучший вариант.
Может быть кто подскажет?
Аноним 2019/10/08 18:12:45  №1491893 454
>>1482669
спасибо,анон

ты немного ослабил мой страх и смотивировал
Аноним 2019/10/08 19:11:51  №1491966 455
>>1491450
Cпасибо, чувак.

>>1491515
Да, можно.

>>1491702
Надо сразу пилить нормально, смотри, как другие пишут и повторяй, спрашивай себя, почему именно так написано, а не иначе, выясняй, правильно ли вообще написано. Например, в Yii можно писать такую ебанину, которую потом не то что тестами не покроешь, а сам запутаешься в нескольких файлах. В ларавеле и особенно симфони ты уже не можешь писать абы как, нужно знать шаблончики.
Ответы: >>1491995 >>1492014 >>1492788
Аноним 2019/10/08 19:41:58  №1491995 456
>>1491966
>Надо сразу пилить нормально
Ну да - надо сразу пилить нормально и сразу 30ккк\наносек зашибать. По другому-то не работает.
Ответы: >>1492147
Аноним 2019/10/08 20:06:12  №1492014 457
>>1491966
Пробовал уже работу искать? Фреймворки учишь?
Ответы: >>1492147
Аноним 2019/10/09 04:02:16  №1492147 458
>>1491995
Никто не говорит про 300к\наносек, забудь про деньги вообще, если к кодированию душа лежит, то и бабки потом грести лопатой будешь. Главное - не суетиться, а идти по четко намеченному плану.

>>1492014
Пока не искал, резюме вот только начал составлять. Забыл поставить галочку в резюме, чтобы оно не было доступно для эйчаров, спустя минут 20 после опубликования написали из какой-то украинской компании, мол, не хотите к нам на удаленку на Yii магазины поддерживать, но я что-то промямлил в ответ, типа еще недостаточно хорош. Хотя на самом деле я просто не хочу с этим фреймворком связываться, мне не нравится то, что он слишком простой, и примерно представляю людей, которые на нем пишут, да и вроде как он поддерживаться перестал. Сейчас хотят третью версию выпустить, которая сломает обратную совместимость с предыдущими версиями, но все равно не хочу.

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

Ответы: >>1492148 >>1492169
Аноним 2019/10/09 04:03:58  №1492148 459
>>1492147
>если на работу не устроюсь
hotfix
Аноним 2019/10/09 05:54:56  №1492169 460
>>1492147
>>Главное - не суетиться, а идти по четко намеченному плану.
Верное замечание.
>>забудь про деньги вообще, если к кодированию душа лежит, то и бабки потом грести лопатой будешь.

Умение зарабатывать деньги - это вообще иная плоскость. Больше не от тех-навыков зависит, а от личности конкретного человека.
Просто в глазах двачера - прогинг это типа работа мечты, добрый и богатый дядя возьмет тебя на работу, будет давать задания и много платить. От двачера требуется ноль инициативы, онли умение программировать.
Реальность конечно немного не та.
Ответы: >>1492182
Аноним 2019/10/09 06:00:12  №1492175 461
А мне slim зашел, я на express.js немного говнокодил, и мне такая парадигма роутинга нравится.
Пожалуй свой рабочий проект перетащу со своего самописного роутера на slim. Да и потом, как свалю, подерживать моему последователю проще будет. Стандартизация рулит.

А роутеры в симфони/ларавел по такому же принципу строятся?
Вообще эти роутеры отдельно от фрймов можно юзать?
Ответы: >>1492184 >>1498476
Аноним 2019/10/09 06:26:25  №1492182 462
>>1492169
>Умение зарабатывать деньги - это вообще иная плоскость.
Согласен. Тут жилка нужна предпринимательская, тогда ты в любой сфере деньги сделаешь, даже без сферы, просто из воздуха.
В вебаче щас обсуждают сайты, которые создают, раскручивают их и пишут туда негативные отзывы о всяких компаниях, а потом удаляют за бабки или переносят в проверенные. Вот куда мир катится. Надеюсь, скоро гугл будет банить такие сайты.

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

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

Я тоже раньше думал, что после первого проекта, что могу претендовать на студию. Знаю много.
После второго думал, что все студии мои, могу претендовать контору. Знаю много и умею еще больше.
Сейчас пишу третий проект и понимаю, что все это было вершиной айсберга. Серьезный веб на самом деле настолько глубокий, что можно делать целый курс, чтобы поверхностно охватить технологии, с которыми тебе нужно будет научиться работать, и объяснить вообще, как они друг с другом взаимодействуют.
Ответы: >>1492189
Аноним 2019/10/09 06:33:27  №1492184 463
>>1492175
>А роутеры в симфони/ларавел по такому же принципу строятся?
>Вообще эти роутеры отдельно от фрймов можно юзать?

Можно, роутер в слиме - один из компонентов Symphony, просто дергай, какой тебе нужно и пиши в свое удовольствие. Можно даже собрать свой фреймворк из этих компонентов под свои нужды, Symphony в чистом виде наверное редко кто юзает, либо создают самый базовый скелетон и обвешивают его нужными компонентами, либо берут весь фреймворк и добавляют в него еще кучу всего. Зависит от проекта опять же.
Аноним 2019/10/09 06:45:48  №1492189 464
>>1492182
>>Согласен. Тут жилка нужна предпринимательская
У меня подруга, просто на нескольких точках что торгуют очками брала очки по дешевке в Краснодаре, и толкала уже на побережье с наценкой раз в 10 как типа настоящие делала деньги такие, какие не каждый сеньер на галере сделает. Сейчас у нее куча денег, несколько квартир и т.д.
И это без сотен часов за монитором.

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


Ответы: >>1492192
Аноним 2019/10/09 06:49:37  №1492192 465
>>1492189
Это ж надо место брать, лицензию, фуру под товар, разгрузка, выдержать конкуренцию и гнёт хачей
Ответы: >>1492216
Аноним 2019/10/09 06:59:46  №1492196 466
>>1490764
Прикольно, а как ты привязал прогресс бар к реальному прогрессу загрузки файла?
Ответы: >>1492837
Аноним 2019/10/09 08:00:58  №1492216 467
>>1492192
Ну, она от среднего двачера так же далека как Альфа Центавра от Солнца. Человек другого мира, потомственная илитка.
Аноним 2019/10/09 22:07:08  №1492788 468
15034308314580.jpg (50, 471x604)
604x471
>>1491966
Есть пара вопросов по твоему файлообменнику:
- зачем ты начал пилить недоларавель на базе слима? Зачем нужна эта куча классов сервис-провайдеров с одним единственным методом? У слима есть своя парадигма определения зависимостей. Опять же в ларавель зависимости разрешаются с помощью рефлексий и там есть смысл регистрировать классы целиком, а у тебя ничего такого нет.
Один роутер велосипедит поверх слимовского, второй кучу ненужного кода написал, по сути усложнив проект на ровном месте, что хреново. Что за жажда писать код, не взирая на здравый смысл, пачаны?
- про индекс тебе уже сказали - можно прибрать код в классы-контроллеры, а не вываливать всё в индекс.пхп. Это удобно и создаёт порядок в коде - просто попробуй.
- что за копипаста там с if ($cookieUserId === null) ? Может стоит прибрать это в какой-нибудь AuthController и вызывать одной строкой, а не копипастить целые блоки в контроллерах? Заодно можно было бы убрать туда вообще всю работу с куками, а не делать этого в контроллерах.
- вот эта хрень пиздос как стрёмно выглядит:
>unset($app->getContainer()['errorHandler']);
>unset($app->getContainer()['phpErrorHandler']);
по другому совсем нельзя было сделать?
Ответы: >>1492837 >>1492837 >>1492837
Аноним 2019/10/10 02:31:13  №1492837 469
>>1492196
Да легко, гугли, там буквально несколько строчек кода.

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

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

>>1492788
>- про индекс тебе уже сказали - можно прибрать код в классы-контроллеры, а не вываливать всё в индекс.пхп. Это удобно и создаёт порядок в коде - просто попробуй.

Хорошо, окей. Но вот я тут вопрос задал один, мне не ответили.
Есть PSR-7 совместимая либа для управления куками. Но объекты этой либы нельзя создавать, там все на статических методах. Каким образом мне доставать либу из контейнера и передавать аргументом? Какой тип в сигнатуре писать, если я, чтобы вызвать статику, должен передать имя класса? String? Тогда туда что угодно можно будет передать. Или может быть забить на все правила и напрямую в контроллере вызывать CookieClass::setCookie()?

> что за копипаста там с if ($cookieUserId === null) ? Может стоит прибрать это в какой-нибудь AuthController и вызывать одной строкой, а не копипастить целые блоки в контроллерах? Заодно можно было бы убрать туда вообще всю работу с куками, а не делать этого в контроллерах.

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

>- вот эта хрень пиздос как стрёмно выглядит:
>unset($app->getContainer()['errorHandler']);
>unset($app->getContainer()['phpErrorHandler']);
по другому совсем нельзя было сделать?

Удивишься, но я этот кусок кода из документации Слима скопипастил. Может и можно в четвертой версии как-то иначе написать, я делал проект на третьем Слиме.

Спасибо вообще за ответ, люблю критику по делу.
Ответы: >>1493062 >>1498472
Аноним 2019/10/10 07:43:23  №1492918 470
15239485108300.jpg (72, 552x716)
716x552
Тред все равно скоро утонет, поэтому спрошу. Не срача ради.
Откуда в "програмистской" среде хейт к PHP?

Уже несколько раз, опытные программеры, при личном разговоре, воротили нос от PHP и утвердительно говорили, что PHP - недоязык и вообще и лучше бы мне его не знать, есть гораздо более продвинутые и более удобные технологии, и вообще нужно с него перелезать на что-то более приемлемое.
Когда я спрашивал, что же мне учить и куда развиваться - мне укасывали на Си и Джаву.
PHP у меня очень легко заходит, так что я как-то очень сомневаюсь.

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


Ответы: >>1492926 >>1492927 >>1493082
Аноним 2019/10/10 07:43:34  №1492919 471
снимок.png (28, 946x289)
289x946
>>1490764
Конструктор с 9 входящими параметрами это прямо совсем ад. Не могу навскидку сказать как это переделать, но если твой метод принимает больше 5-6 параметров, следует разбивать его на более мелкие части.
Заметил еще, что ты используешь названия вроде doFind. Тоже не очень хорошая практика, лучше давать имена из нескольких слов, например getUserName, ну ты понял, чтобы сразу было видно что именно он делает.
Алсо, почитай про стандарты psr, у тебя код местами неправильно оформлен, но это все мелочи конечно, ты молодец, с таким проектом тебе будет не очень сложно вкатиться на галеру джуном.
Ответы: >>1492971 >>1492989
Аноним 2019/10/10 07:49:05  №1492926 472
>>1492918
Я вижу проблему в том, что пхп используют конторы уровня ип иванов, местные лендингоклепальщики и тп. Отсюда идет отношение к пхп как не профессиональному программисту, а к васяну.

Хотя по сути все языки одинаковые
Ответы: >>1492980
Аноним 2019/10/10 07:51:00  №1492927 473
>>1492918
>Когда я спрашивал, что же мне учить и куда развиваться - мне укасывали на Си и Джаву.
Белые люди пишут на питоне, го, руби, элике.

Зачем лезть в тырпрайз?

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

ушел.
Ответы: >>1492967 >>1493085
Аноним 2019/10/10 08:26:44  №1492967 474
>>1492927
На этих языках нет почти джуниорских позиций, но полно мидлосиниорских, это как так устроиться надо? Просто прийти и сказать без задней мысли вот я сделал тудулист на го или руби, есть два года опыта на пыхпыхе ПОД КЛЮЧ, возьмите меня?
Аноним 2019/10/10 08:29:09  №1492971 475
>>1492919
>Конструктор с 9 входящими параметрами это прямо совсем ад.
Так это же сущность, каждое поле сущности соответствует полю в таблице базы данных. Что мне, бд переделывать теперь? А зачем, если таблицы соответствуют трем нормальным формам?

>Заметил еще, что ты используешь названия вроде doFind. Тоже не очень хорошая практика, лучше давать имена из нескольких слов, например getUserName, ну ты понял, чтобы сразу было видно что именно он делает.

Я этот прием использую только при реализации шаблона Data Mapper. Есть один абстрактный маппер с описанными методами общими типа find, findOne, insert и абстрактные методы doFind, doInsert у каждого маппера, и есть уже конкретные мапперы, которые у реализуют doFind и прочие каждый по своему.

Наверно вы подумоли, што я хлеб, и придумал это сам, но нет, этот прием я взял из последнего издания книжки Мэтта Зандстры по PHP, украденной с торрент-трекера. Вот так-то.

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

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

>Алсо, почитай про стандарты psr, у тебя код местами неправильно оформлен

Не подскажешь, где? Ты чисто про оформление кода говоришь, типа отступы не там поставил, слишком много пустых строк, ты об этом?

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

От души спасибо тебе, меня впервые похвалили в этом треде, значит, чего-то я уже достиг все-таки.
Ответы: >>1492989 >>1498475
Аноним 2019/10/10 08:32:58  №1492980 476
>>1492926
Давай не будем холиварить, ладно?
Такое отношение к языку сформировалось у людей чисто по инерции, потому что его до 5.6 считали говном, жрущим память, сейчас же это почти что форк джавы, и весьма неплохой, хочу сказать.
мимо пересел с кофе на дудку
Аноним 2019/10/10 08:39:15  №1492989 477
>>1492971
>>1492919
Еще забыл написать по дата мапперу.
Если тебе нужна какая-то сущность, ты просто берешь и дергаешь метод find с именем поля, если нужно от имени маппера вот так:
$this->FileMapper->find();

Самого метода find() в этом маппере нет, но он дергается из абстрактного родителя, который уже в свою очередь вызывает нужный doFind. Одно слово - полиморфизм.
Аноним 2019/10/10 09:47:39  №1493036 478
как мне бомбит с синтаксиса и той лапши,которую я вижу,как это блядь читать?
Ответы: >>1493038 >>1493089
Аноним 2019/10/10 09:50:13  №1493038 479
Ответы: >>1493056
Аноним 2019/10/10 10:02:17  №1493054 480
>>1488646
Пока ОП не успел проверить мою задачку, я тут сам слегка ее подправил. Теперь другая проблема - в пройденном пути сохраняется один лишний элемент. Вывод текста на экран реализую потом т.к. один фиг считает криво. https://3v4l.org/2dgoU
[Ссылка]
2dgoU
https://3v4l.org/2dgoU
Аноним 2019/10/10 10:03:48  №1493056 481
>>1493038
а кушать то хочеться
Ответы: >>1493057
Аноним 2019/10/10 10:04:09  №1493057 482
Аноним 2019/10/10 10:14:15  №1493062 483
>>1492837
>Где об этом вообще почитать? Как это называется?
В документации написано как зависимости определяются. Там просто коллбэк в контейнер назначается - как раз именно тот, который ты в методом init назвал. Не нужно для этого целый класс пилить, а потом отдельно вызывать это всё - слим сам умеет зависимости из этого контейнера в контроллер маршрута пробрасывать при этом используя паттерн ленивой загрузки.

>там все на статических методах. Каким образом мне доставать либу из контейнера и передавать аргументом?
Значит надо делать враппер(класс-обёртку) над этой библиотекой и уже изнутри него вызывать статические методы. И вот обёртку уже можно, как обычно, передавать в зависимости.
Просто надо помнить, что статические классы это фактически просто набор функций.
Ответы: >>1493088
Аноним 2019/10/10 10:15:22  №1493065 484
7.4 теперь ваще летать будет?
Ответы: >>1493083
Аноним 2019/10/10 10:28:15  №1493072 485
кто пользовался swoole
какие ощущения и мысли?
Аноним 2019/10/10 10:44:54  №1493082 486
>>1492918
>Они мне помочь хотят, повыебываться
Второе.
Обычно так говорят люди, не писавшие на современном ПХП. Какой смысл выражать своё мнение в стиле "не читал, но осуждаю"? Это именно выебоны.
Аноним 2019/10/10 10:48:58  №1493083 487
>>1493065
Похуй на скорость, главное - типы ввели.
Аноним 2019/10/10 10:51:47  №1493085 488
>>1492927
>Белые люди пишут на питоне, го, руби, элике.
Покажи, где эти вакансии.
Сайты на питоне писать пиздецово по лишним телодвижениям, имхо. Он занял свою нишу в нейросеточках и будет сидеть там.
Го слишком низкоуровневый для сайтов.
Руби уже не актуален давно.
На элике вообще вакансий нет.
Ответы: >>1493106
Аноним 2019/10/10 10:55:21  №1493088 489
>>1493062
>В документации написано как зависимости определяются. Там просто коллбэк в контейнер назначается - как раз именно тот, который ты в методом init назвал. Не нужно для этого целый класс пилить, а потом отдельно вызывать это всё - слим сам умеет зависимости из этого контейнера в контроллер маршрута пробрасывать при этом используя паттерн ленивой загрузки.

Понял, ну хоть научусь коммиты откатывать.
А куда потом девать инициализацию эту, в индекс.пхп?

>Значит надо делать враппер(класс-обёртку) над этой библиотекой и уже изнутри него вызывать статические методы. И вот обёртку уже можно, как обычно, передавать в зависимости.
Просто надо помнить, что статические классы это фактически просто набор функций.

Понял, спасибо, я и не додумался даже.
Ответы: >>1493093
Аноним 2019/10/10 10:56:07  №1493089 490
>>1493036
У меня тоже бомбило, когда я не понимал. Единственный способ тут - разобраться, иначе бомбить и дальше будет. Потом забьёшь ваще.
Ответы: >>1493090
Аноним 2019/10/10 10:58:43  №1493090 491
>>1493089
Это нормальная реакция - бомбить, если что-то не понимаешь. Главное охлаждать вовремя это взбамбливание периодическое, так много гениальных программистов сгинуло вникуда.
Аноним 2019/10/10 11:00:09  №1493093 492
>>1493088
>куда потом девать инициализацию эту
Я обычно выношу инициализацию в отдельный файл bootstrap.php или startup.php
Получается довольно удобно - если надо ещё сервисов добавить\поменять, то все они конфигурируются и запускаются в одном файле.
Ответы: >>1493094
Аноним 2019/10/10 11:02:34  №1493094 493
>>1493093
А куда сам файл кидаешь? Рядом с индексом или куда-нибудь в корень?
Ответы: >>1493097
Аноним 2019/10/10 11:11:26  №1493097 494
>>1493094
У меня всегда есть папка для публичных данных - которые отдаются на клиент (public), папка композера, и папка src, которая содержит код самого приложения. И вот в папке с приложением у меня и лежат контроллеры, модели, исключения, интерфейсы, и прелоадер этот startup.php который и файл конфигурации проекта с настройками. Прямо в корне и лежит, рядом с конфигом.
Опционально ещё в корне папка со всяким говном для разработки - описание проекта и наброски всякие, папка cli для доступа через консолько, кэш там ещё если надо.
Ответы: >>1493099
Аноним 2019/10/10 11:13:10  №1493099 495
>>1493097
>Прямо в корне и лежит, рядом с конфигом
В смысле корне папки приложения, а не самого сайта.
Аноним 2019/10/10 11:25:54  №1493106 496
>>1493085
>Руби уже не актуален давно.
в USA еще как актуален
Ответы: >>1493116
Аноним 2019/10/10 11:47:28  №1493116 497
>>1493106
Ну мы с тобой не в Америке, верно?
Ответы: >>1493124
Аноним 2019/10/10 11:56:05  №1493120 498
Аноны, как правильно делать простую авторизацию? Где почитать? Я вообще не понимаю принцип:
1.Пользователь заводит логин и пароль.
2.Я хеширую пароль, чтобы не хранить его в голом виде в базе.
3.Как только разлогиненный пользователь хочет авторизоваться, он вводит логин и пароль
4.Я сравниваю то что он ввел со значениями в базе.
5.После того, как проверка прошла успешно, я выдаю ему куку сроком на день.
6.Каждый важный скрипт перед выполнением проверяет, есть ли у пользователя кука. Если ее нет, открывает окно авторизации.

Правильно? Или как то через сессии делать? Сайт простой, не база данных пентагона
Ответы: >>1493125 >>1495303
Аноним 2019/10/10 12:01:50  №1493124 499
>>1493116
а что мешает работать на фрилансе или удаленке?
Ответы: >>1493127
Аноним 2019/10/10 12:02:27  №1493125 500
>>1493120
Простая это через куки или локалсторедж, у тебя с хешами уже не такой уж и простой auth.
Ответы: >>1493128
Аноним 2019/10/10 12:03:46  №1493127 501
>>1493124
Лично мне - отсутствие разговорного английского и сильная боязнь общения по вебке, телефону и прочим современным вещам.
Ответы: >>1493192
Аноним 2019/10/10 12:04:34  №1493128 502
>>1493125
спасибо, анон, а что лучше - куки или сессии?
Ответы: >>1493129 >>1493134
Аноним 2019/10/10 12:12:00  №1493129 503
>>1493128
тайд или кипячение?
Ответы: >>1493136
Аноним 2019/10/10 12:18:24  №1493134 504
>>1493128
Ничто не лучше, это две разные хреновины, которые работают бок о бок. Сессии вообще никак не связаны с авторизацией, они просто запоминают некую информацию на одной странице и передают ее на другие. То есть если даже пользователь обновил страницу, куки сохраняются, но после того, как он покинет сайт - куки уничтожатся.
Аноним 2019/10/10 12:20:48  №1493136 505
Аноним 2019/10/10 12:24:19  №1493137 506
>>1493134
Ой, блять, что я несу. Не куки, а сессии. Даже если пользователь обновляет страницу или переходит по внутренним ссылкам, то сессии сохраняются, а после закрытия вкладки удаляются.
Аноним 2019/10/10 12:25:02  №1493140 507
>>1493134
Куки же сохраняются в базе данных браузера и хранятся столько времени, сколько ты скажешь.
Аноним 2019/10/10 13:26:50  №1493192 508
Ответы: >>1493680
Аноним 2019/10/10 14:30:22  №1493269 509
image.png (241, 1920x1040)
1040x1920
image.png (72, 1920x1040)
1040x1920
image.png (299, 1920x1040)
1040x1920
image.png (72, 1920x1040)
1040x1920
>>1475112 (OP)
хелпаните, всю голову сломал, в общем делаю задачу , сделал класс с конструктором и методами , padRight отрабатывает отлично, но вот padLeft работает только если указать отступ так $functions->col1, то есть col2, col3 ,col4 вообще не отрабатывают. Если явно указать число 8 то все работает как надо , в чем может проблема? конструктор вроде нормально написан, методы одинаковые по сути
Аноним 2019/10/10 15:13:20  №1493304 510
>>1493269
завардампал $functions->col2 , ответ NULL, я теперь вообще не ебу почему он не отрабатывает
Ответы: >>1493309
Аноним 2019/10/10 15:36:27  №1493309 511
>>1493304
Потому, что ты синтаксис не знаешь.
return прекращает выполнение метода на своей строке. Т.е. после первой строки в конструкторе дальше выполнение не идёт.
И вообще в конструкторах return не пишется, потому, что конструктор сам возвращает экземпляр класса.

Мало учил ООП.
Ответы: >>1493312 >>1493744
Аноним 2019/10/10 15:40:01  №1493312 512
>>1493309
йоу, спасибо, не с той ноги встал сегодня, вспомнил только после того как ты сказал что return там не нужен
Аноним 2019/10/10 18:47:19  №1493492 513
>>1491521
А мне нрав, в этом есть логика. Сразу видно что есть что
Аноним 2019/10/11 03:35:52  №1493668 514
>>1493269
А что за приставочка .inc.?
Ответы: >>1493747
Аноним 2019/10/11 05:24:27  №1493680 515
>>1493192
на пхп и в сша пишут, у меня знакомый там работает, давно уже. Щас чет типа сеньера. 10-12 штук в месяц у него.

Ответы: >>1493687
Аноним 2019/10/11 05:49:54  №1493687 516
>>1493680
Он фулл стак или чисто бэк?
Ответы: >>1493737
Аноним 2019/10/11 07:16:15  №1493717 517
Пора бы уже перекат запилить, не?
Ответы: >>1493718
Аноним 2019/10/11 07:22:34  №1493718 518
>>1493717
в раене 800 - 900 постов обычно
Аноним 2019/10/11 08:02:07  №1493737 519
>>1493687
Бекенд. Он в крупной амерской it конторе работает.
Ответы: >>1493738
Аноним 2019/10/11 08:02:49  №1493738 520
>>1493737
п.с. он давно уехал, лет 10 назад, у него уже детей там двое. Идет в руководители.
Аноним 2019/10/11 08:04:48  №1493742 521
>>1493269
поясните нубу по конструкту: зачем в конструкте возвращать четыре раза свойства? Разве после первого ретурна функция не закончится? И зачем вообще возвращать? Ладно бы это была фабрика, а тут делать конструкт чтобы вернуть свойство, которое тебе же в конструкте и суют?
Ответы: >>1493744
Аноним 2019/10/11 08:05:47  №1493744 522
Аноним 2019/10/11 08:07:55  №1493747 523
1.jpg (95, 800x537)
537x800
>>1493668
>А что за приставочка .inc.?
Инкапсуляция
Ответы: >>1495302
Аноним 2019/10/11 08:22:51  №1493751 524
Пиздос, попросили сделать тестовое, cli приложение небольшое без фреймворков но с композером(для автозагрузки), я в ридми написал просто какой файл запустить но не написал что нужно composer install запустить для загрузки автолоад файла, и в фидбеке первым пунктом прилетает "программа не запустилась, цели не достигнуты", это гг
Хотя там были и другие пункты с которыми я отчасти согласен, но вот это ваще пиздец тупо ща было
Ответы: >>1493754 >>1493834
Аноним 2019/10/11 08:26:45  №1493754 525
>>1493751
а какие другие пункты, м.б. тебе повезло еще

мне кидали тестовое, позже выяснилось что они _не могут_ запускать пхп из консоли
Ответы: >>1493784 >>1493834
Аноним 2019/10/11 09:08:32  №1493784 526
>>1493754
Нужно было робота сделать, который по ссылкам на сайте ползает и сохраняет какую-то инфу
Отсутствует понимание ООП -> моё лицо ¯\_(ツ)_/¯
Отсутствует понимание абстракций -> (ノ°Д°)ノ︵ старался везде использовать интерфейсы, возможно стоило еще организовать очередь не зашитим массивом в классе а отдельным объектом, это мой фейл, а так не думаю что подразумевалось создавать например класс файлсистем чтобы вызвать fopen и т.п., это был бы пиздец
Отсутствует обработка исключений -> согласен, я просто возвращал пустое значение так, чтобы программа не упала но при этом ничего лишнего не делала, иначе у меня было бы много трай кач блоков, которые ничего не делают, в задании об этом ни слова, например что делать если пхп не может спарсить хтмл, помечать юрл как невалидный, просто скипать его?
Отсутствуют комментарии -> у меня вообще комментов не было, хотя я не думаю что они рассчитывают на то что я каждую строку буду комментить и объяснять что эта строка делает, учитывая что сама прога не сложная, возможно нужно было хотя бы через phpdoc все сервисы описать
Еще исполняемый скрипт просто через switch вызывает команды(функции в том же файле), хотя в теории можно было бы сделать полноценный класс приложения с классами командами, но мне это показалось лишним т.к.такими темпами можно и свой контейнер написать чтобы руками объекты не создавать
Были и другие пункты с которыми я согласен, но мне уже было лень это доделывать, опять же мой фейл
В общем полезный опыт того что делать и не делать когда тз состоит из 5 строчек и нужно некоторые нюансы додумать самому.
Ответы: >>1493795 >>1495301
Аноним 2019/10/11 09:20:09  №1493795 527
>>1493784
Добавлю что я не выебываюсь и согласен что можно было сделать лучше, и вина только моя, просто сразу возникает чувство что я сразу мимо по первому пункту, неважно даже какой у меня код
Ответы: >>1493836 >>1493837
Аноним 2019/10/11 10:12:53  №1493834 528
>>1493751
>программа не запустилась, цели не достигнуты
>>1493754
>они _не могут_ запускать пхп из консоли

А я бы и не парился - придёшь туда, а там алень синьором работает. Оно вам нужно - с дураком работать? Может и к лучшему, что не взяли.
Аноним 2019/10/11 10:13:40  №1493836 529
>>1493795
>> и вина только моя
Думаю тут в принципе нет понятия вины. К вопросу приема на работу нужно спокойно подходить. Нет, и нет - извлек опыт.
Аноним 2019/10/11 10:14:51  №1493837 530
>>1493795
Чуваки, конечно, странные, но часть замечаний звучат объективно.
С composer install, кстати, советую тебе выучить урок.
Я своим джунам в своё время распечатывал и вешал на стенку перед лицом бумажку с текстом "Задача считается выполненной, когда она задеплоена на инстанс и проверена и тобой, и QA".
Это частый факап, когда разработчик заканчивает писать код и говорит "я сделал". Нифига, код - это ничто. От разработчика ожидают рабочего решения, которое запущено и приносит ожидаемое business value.
Соответственно, твоя отсутствующая запись про composer install говорит о том, что ты не полностью учёл такую вещь, как доставку. Значит, ты можешь не учесть её в реальной работе, значит, ты не можешь полноценно работать в одиночку, за тобой нужен присмотр. Значит, на миддла не тянешь.
К слову, также часто забывают про инициализацию, миграции, логирование и прочие вещи.
Возвращаясь к таким вещам, по классике обычно пишется мейкфайл, в котором прописаны все подготовительные команды, проверяется наличие php, композера и прочего. Ну и лично я бы ещё в докер всё обернул, чтобы запустить этого робота можно было через docker run.
Ответы: >>1493840 >>1493861 >>1495301
Аноним 2019/10/11 10:26:16  №1493840 531
>>1493837
>ты не полностью учёл такую вещь, как доставку. Значит, ты можешь не учесть её в реальной работе
Ну да - не учёл доставку, и всё пропало. Обратно вернуть на доработку ведь нельзя - неположено. Нужно сразу вообще всё предусматривать и не дай бох что-то позабыл по неопытности.
Может проще быть, не?
Ответы: >>1493852
Аноним 2019/10/11 10:46:49  №1493852 532
>>1493840
Я за такую мелочь, как неучтённый composer install ещё никого не сбривал, тестовое задание всегда оценивается комплексно, по целому ряду критериев.
Просто пытаюсь показать, как на это смотрит работодатель, чтобы у кандидатов не возникало мыслей, что это не важно и к ним придираются.
У меня был случай, когда один сотрудник-фронтендщик перепутал ссылки на гугломаркет и эпплмаркет, когда делал страницу. Он задеплоил и не проверил. В итоге, нам позвонил клиент и спросил, ЧЗХ происходит на его сайте? И шутки-шутками, а осадочек-то остался. Два-три таких момента и клиент начнёт считать нас идиотами, которые не проверяют то, что делают - и доверять нам перестанет.
Важно короче думать о том, как твоя работа попадает к кому-то и как он её оценивает. Думать и проверять за собой обязательно.
Ответы: >>1495300
Аноним 2019/10/11 10:54:06  №1493858 533
Котаны, подскажите нубу по исключениям в slim а может и вообще.
Как исключения работают я в принципе понимаю, как унаследовать и прочее тоже. Теперь:

Где то в slim определены классы исключенией, которые extends от нативных php классов исключений. Назову их slimExeption.
Выглядит, если я правильно понимаю, это так : где-то в программном коде, в тот момент когда что т о идет не так - разработчики предусмотрели выборс slimExeption, и соответственно выше это исключение ловится catch и обрабатывается установленным образом - в случае slim на экран выводится ошибка. Я правильно понимаю? В своем коде - ты выбрасываешь исключения какие хочешь и когда хочешь. Но в slim исключения по дефолту уже отловлены и обработаны.

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


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

И еще, допустим в коде где то выбрасывается дефолтное исключение, пусть это BadFunctionCallException. Я создал мое кастомное MyBadFunctionCallException исключение, наследуемое от этого BadFunctionCallException. И это кусок кода я обернул в try{}Catch(){} где в catch я отлавилваю свое MyBadFunctionCallException (но я его нигде руками не выбрасываю). И вот происходит косяк в коде, и вываливается дефолтное BadFunctionCallException.Будет ли это исключение отловлено моим обработчиком?

Запутанная тема эти исключения конечно.

двощ, ты моя резиновая уточка
Аноним 2019/10/11 10:57:23  №1493861 534
>>1493837
> тестовое
> полноценный парсер в угадайку
> docker

Двачую, без докера даже уборщицу бы не взял, намоет полов в неизолированном окружении или версия швабры не совпадет с тряпкой???

Так что тестовое для уборщицы - сначала пусть арендует здание, оформит аналог нашего офиса, импортирует инструменты версии строго по номенклатуре, пропишет полностью план уборки а также обработку всех потенциально возможных исключений (например если работник выпадет из окна), и форомит всё это в реплицируемую через b2b процедуру со всеми необходимыми документами.
В тексте задания при этом напишу "что думаете о политической ситуации в Зимбабве?".
Тогда можно будет ПОДУМАТЬ стоит ли ей доверять полы...
Ответы: >>1493892
Аноним 2019/10/11 11:07:59  №1493872 535
как на пхп сделать веб сокеты?
Ответы: >>1493898 >>1495299
Аноним 2019/10/11 11:31:18  №1493892 536
>>1493861
Докер - это просто удобное средство доставки. Какой-нибудь phpmyadmin вообще идеально запускать через докер, потому что ты не засираешь систему лишними файлами.
Плюс, не требуется, чтобы у человека стояла в точности такая же версия php (представь, что у них там php 7.1, а ты что-то из php 7.2 заюзал в коде). Оно просто заработает.

Короче, не обязательно, но даёт удобство. Плюс, если мы говорим конкретно о собеседовании, то оно даёт возможность на практике продемонстрировать, что ты знаком с контейнерами.
Аноним 2019/10/11 11:34:05  №1493898 537
>>1493872
Взять какой-нибудь ratchet либо поднять рядом ноду с вебсокетами, которая будет эдаким апи гейтвеем - ловить все события и пихать в php (и ты уж сам решай через что, очередь и демоны, http-запросы или ещё что-то).
Первое выглядит проще архитектурно, зато второе позволяет оставить php работать в ванильном режиме запрос-ответ, что может избавить от излишних проблем (видел я говнобиблиотеки, которые пихают мусорные данные в static и никогда не чистят).
Ответы: >>1493908
Аноним 2019/10/11 11:38:46  №1493901 538
>>1493858
>Запутанная тема эти исключения конечно.
Ничего подобного.
Нет никакого slimExeption - исключения умеют выбрасывать все модули слима, которые написаны разными людьми. У слима только обработчик, который ты можешь сменить на свой.

Чужие исключения вообще не трогай.
Ответы: >>1494283
Аноним 2019/10/11 11:39:23  №1493903 539
>>1493858
>Пример - когда у меня нет шаблона для зарегистрированного роута -мне вываливается иключение, и до свиданья. А я хочу сделать исключение, при захвате которого будет перебрасывать на страницу "404", или что то в этом духе.

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

По теме велосипедостроения, рендери в трай блоке шаблон, лови исключение, и выбрасывай своё в катч блоке, которое обрабатывай в слимовском хендлере и выбрасывай слимовский 404 нот фаунд
Ответы: >>1494283
Аноним 2019/10/11 11:44:51  №1493907 540
>>1493858
>Пример - когда у меня нет шаблона для зарегистрированного роута -мне вываливается иключение, и до свиданья. А я хочу сделать исключение, при захвате которого будет перебрасывать на страницу "404", или что то в этом духе.
Там есть отдельный контейнер для обработки 404 ошибки. Не нужно никуда глубоко лезть.

http://www.slimframework.com/docs/v3/handlers/not-found.html
Назначь свой хэндлер одной функцией и всё.
Ответы: >>1494283
Аноним 2019/10/11 11:45:40  №1493908 541
Ответы: >>1494042
Аноним 2019/10/11 14:03:33  №1494042 542
>>1493908
Ну или свул. Но я всё равно боюсь, что той хуйни, что этой. И то и это делает что-то несвойственное php и ты не узнаешь, как оно повлияет на остальные библиотеки/экстеншены/всё такое.
Но для пет-проекта юзани, чего бы нет.
А на работе я бы всё-таки рядом ноду поднял, невелика сложность брать сообщения из сокетов (к слову, не бери чистые, бери socket.io) и класть в очередь либо просто стучать в php-шный сервер.
Ответы: >>1494051
Аноним 2019/10/11 14:11:48  №1494051 543
>>1494042
а что есть из реально чисто асинхронного и поточного,без костылей как это пхп и наверно у питона тоже?
Ответы: >>1494633
Аноним 2019/10/11 14:24:51  №1494058 544
какая же нода говно за пределами работы по исполнению кода реакта или ангуляра
Ответы: >>1494239
Аноним 2019/10/11 16:22:35  №1494141 545
Анон, если мне нужна статистика по пользователям. Кол-во сообщений, кол-во загруженых файлов/тредов, или рейтинг какой нибудь прикрутить. Правильней создать новую таблицу для этого, или получать эти данные более сложными sql запросами?
Ответы: >>1494284 >>1495299
Аноним 2019/10/11 16:45:48  №1494153 546
ОП,нахера ты позиционируешь слим для начинающих?
Ответы: >>1494237 >>1494797 >>1495299
Аноним 2019/10/11 18:53:19  №1494237 547
>>1494153
Где он это позиционирует? Не хочешь - пили руками в 4 раза дольше
Аноним 2019/10/11 18:54:37  №1494239 548
>>1494058
Я бота на телеграфе поднимал, вроде норм.
Аноним 2019/10/11 19:06:43  №1494255 549
>>1475112 (OP)
оп че скажешь за уи1 ?
предлагают работу в конторе, вроде продуктовая что плюс но проект легаси тянет с уи1
говорят якобы мало что осталось, ну там екстеншены, компоненты, алиасы (???)
Ответы: >>1495299
Аноним 2019/10/11 19:55:50  №1494283 550
>>1493901
>>У меня такое чувство что ты тот чувак
Да, это я. Но не, я сейчас особо не велосипедю.
>>1493903
>>исключения умеют выбрасывать все модули слима
Как это происходит.
>>1493907
Это я понял. Меня что то заклинило на исключениях
Я что то не догоняю, либо переусложняю.

Допустим, в коде есть вызов не существующей функции:
f();

Eсть дефолтное исключение BadFunctionCallException, из доки: "Создается исключение, если callback-функция относится к неопределенной функции или если некоторые аргументы отсутствуют."
Что происходит когда я вызываю f() ? php автоматически выбрасывает исключение класса BadFunctionCallException?
У меня выбрасывается это:
Fatal error: Uncaught Error: Call to undefined function fg()
Где выбрасываемое исключение?

И перехватить это таким образом:
try{

fg();

}catch( Exeption $e){

echo $e->getMessage();

}

не получается.

Я естественно читал из оп поста, с хабра. И чето я буксую. пхп сам по себе выбрасывает исключения? Или все исключения пробрасываются вручную через throw?












Аноним 2019/10/11 19:58:27  №1494284 551
>>1494141
Пили отдельные таблицы, нечего перегружать таблицу избыточными данными.
Аноним 2019/10/11 20:26:46  №1494323 552
Аноним 2019/10/11 23:56:59  №1494433 553
Пишу просмотрщик Вики. Нужны ТЕСТовые страницы, по которым можно будет проверить его качество. Где искать?
Ответы: >>1495299
Аноним 2019/10/12 00:45:45  №1494439 554
>>1494283
>Как это происходит.
У гугла спрашивай - тут тебе не школа.
Ты вообще хуйню какую-то творишь.

Вали учить базу сперва.
Ответы: >>1494474 >>1495297 >>1495298
Аноним 2019/10/12 05:01:57  №1494474 555
>>1494439
>>У гугла спрашивай - тут тебе не школа.
Ебать ты тут маня-правила устанавливаешь. Нахуй пропутешествуй.

Ответы: >>1494587 >>1494590
Аноним 2019/10/12 05:05:19  №1494476 556
>>1494283
Разобрался, короче доки нужно читать не жопой.
Аноним 2019/10/12 09:11:26  №1494587 557
>>1494474
Это не маня-правила, нуб, а логичный ответ на твой тупой вопрос. Тебя везде нахуй посылать будут, если будешь спрашивать такое.
К чему ты вообще спросил это? Сотня статей в гугле есть, а ты ждёшь, что тебе тут кто-то рассказывать элементарные вещи будет.
Да ты просто охуевший долбоёб.
Ответы: >>1494680 >>1495299 >>1496272
Аноним 2019/10/12 09:15:52  №1494590 558
>>1494474
Алсо, ты не вкатишься - слишком много спеси для нуба.
Ответы: >>1494660 >>1494680
Аноним 2019/10/12 10:43:33  №1494633 559
>>1494051
В ванильном PHP нет ассинхронщины, и что важнее, возможное ассинхронное применение не учитывается в экосистеме. Ты можешь хоть заобмазываться промисами и корутинами, но если у тебя библиотека в синхронном режиме обрабатывает массив коллбеков - то ты уже ничего не сделаешь, страдай.
Самое стабильное, что можно сделать, это или вынести ассинхронщину во внешние системы (типа сервисов на ноде/го) или делать приложение в виде очередей задач с пулом воркеров и всю асснхронщину пихать в эти очереди. Ну по типу Celery из питона или Gearman в php.
Ответы: >>1494643
Аноним 2019/10/12 11:10:32  №1494643 560
>>1494633
почему так щас модно писать асинхронщину?там же много подводных,один косяк-и пиздец всему
Ответы: >>1495181
Аноним 2019/10/12 11:32:22  №1494660 561
>>1494590
Отсоси маня, я уже вкатился да-да, не заная как нормально работать с эксепшенами
>>Это не маня-правила, нуб, а логичный ответ на твой тупой вопрос.
Ты забыл где ты, петушок.

Ответы: >>1494680
Аноним 2019/10/12 11:51:34  №1494680 562
>>1494660
П.С.
Дополню, почему не нужно воспринимать подобные >>1494587
>>1494590 больше чем того они заслуживают. Первое и не важное - в них маня эмоции впрочоем они есть в каждом всегда и везде.
На мой взгляд можно спросить самую тупую вещь, потому что в правильно сформированном вопросе - половина ответа. Потому то спросить придется развернуто. Это можно вполне сравнить с этим:
https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0

И ожидание ответа стимулирует разбираться в вопросе.
Ответы: >>1494984
Аноним 2019/10/12 13:21:31  №1494797 563
>>1494153
Ты считаешь что slim сложный фремворк(я об аналогичных фреймворках-роутерах)? Я не о его эусплуатации, а о самом его коде, о парадигме на которой slim построен.

Аноним 2019/10/12 16:17:40  №1494977 564
пацаны, привет, знаю пыху на уровне циклы, условия, а также могу сделать простенький запрос к бд и вывести какую-нб инфу через foreach. а, и ещё могу форму обратной связи ебануть. но бля собираюсь засесть за изучение от а до я 7-ой версии. подскажите, сколько времени у меня это займет при занятиях 4 дня в неделю по 3 часа?
и если не впадлу, подскажите, Котерова стоит читать?
Ответы: >>1495018 >>1496276
Аноним 2019/10/12 16:32:43  №1494984 565
>>1494680
>На мой взгляд можно спросить самую тупую вещь, потому что в правильно сформированном вопросе - половина ответа
Да, я тоже часто хочу задать какой то тупой вопрос итт, но как только его напишу - спрашиваю у себя, правильно ли я его сформулировал, и понимаю ли я то, о чем написал. В большинстве случаев вопрос решается до нажатия копки "отправить".
А на счет эксепшенов я вообще нихуя не понимаю. То есть я понимаю как их кидать и хватать, но не понимаю зачем. Помню где то прочитал, что их на продакшене убирают, так ли это? Их используют всегда, или только в каких то случаях?
Ответы: >>1495298
Аноним 2019/10/12 17:30:02  №1495018 566
>>1494977
Бессмысленный вопрос
Ответы: >>1495034
Аноним 2019/10/12 17:38:02  №1495026 567
Молю, спа