«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Клуб изучающих PHP и webdev #100 ОП 2018/03/09 16:28:45  №1152267 1
15206021256410.png (33, 500x500)
500x500
15206021256411.jpg (157, 1024x683)
683x1024
15206021256432.png (792, 843x1200)
1200x843
15206021256493.jpg (156, 787x830)
830x787
Добро пожаловать. Тут мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет сделать себе блог, кто-то приобрести новую профессию, кому-то просто нечего делать.

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

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

Предыдущий тред был тут: >>1135053 (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/

Оформляй код аккуратно!!! — например пропусти через 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? — Да, однозначно. Посмотри любую вакансию.
ОП 2018/03/09 16:29:49  №1152268 2
15206021897090.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 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
- в именах классов используется 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
Аноним 2018/03/09 16:37:07  №1152276 3
Если я кому-то не ответил в прошлом треде, напомните о себе тут.

Проверена задача https://github.com/dsgaljkeguhodgiosetuhsegjposguh/studlist3/ вот тут вот: >>1152248

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

someApprentice 2018/03/09 17:21:47  №1152334 4
Заучиваю принцип SOLID

Читаю:
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D1%81%D1%82%D0%B8/%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D1%81%D1%82%D0%B8
>Принцип открытости/закрытости (англ. The Open Closed Principle, OCP) — принцип ООП, устанавливающий следующее положение: «программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения»;
Думаю -"Окей, должно быть имеется ввиду, что программная сущность должна принимать всегда только один и тот же набор типов параметров и возвращать всегда только один и тот же тип результата, а её содержание может меняться(расширяться) как угодно"

Например:
function(Type $type): Returnable
{
// Здесь могут происходить какие угодно расширения

return $returnable;
}


Перехожу дальше к описанию:
>Принцип открытости/закрытости означает, что программные сущности должны быть:
>открыты для расширения: означает, что поведение сущности может быть расширено путём создания новых типов сущностей
Думаю: "Должно быть здесь не правильный перевод - не понятно что за сущности имеются ввиду"

Открываю английскую версию вики:
https://en.wikipedia.org/wiki/Open/closed_principle
>A module will be said to be open if it is still available for extension. For example, it should be possible to add fields to the data structures it contains, or new elements to the set of functions it performs.
Thinking: -"What's kind of fields or elements is talking about?"

Гуглю: open/close principle php example
и получаю https://github.com/wataridori/solid-php-example/blob/master/2-open-closed-principle.php

И всё становиться понятно! Как я и думал ранее, сущность должна не поддаваться изменению со стороны получения и возврата данных, чтобы, например, как показано в примере, была возможность наследования от такой абстрактной сущности

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

Почему по коду понять проще чем по определениям? Это проблема источника или моя?
Ответы: >>1152832 >>1155108
Аноним 2018/03/09 18:26:31  №1152385 5
15206091920840.jpg (265, 1800x1160)
1160x1800
>>1152267 (OP)
Обожаю этот тред из-за авки с Юкинощитой ^^
Аноним 2018/03/09 19:36:34  №1152453 6
Так и знал, что разъебанная ширина в программаче - дело рук пхпшников.
Ответы: >>1152832
Аноним 2018/03/09 19:57:17  №1152465 7
Пачаны, такая ошибка, делаю регистрацию на сайте, но почему то проверка if (!$result) не срабоатывает, все время получается: MessageSend (1, 'Пользователь с таким E-mail адресом уже существует!');


$result = $pdo->query("SELECT mail FROM users WHERE mail='$mail'");
if (!$result){
$reg = $pdo->query("INSERT INTO users VALUES('$name','$mail','$password','0')");
}else {
MessageSend (1, 'Пользователь с таким E-mail адресом уже существует!');
}



Что не так делаю?
Ответы: >>1152602
Аноним 2018/03/09 20:42:36  №1152495 8
бля почему я не пошел учится на кодера в 17 лет. это же все просто что пиздец. я то думал... проебал кучу времени на хуйню
Ответы: >>1160735
Аноним 2018/03/09 22:05:09  №1152585 9
Пытаюсь сделать древовидные комментарии. Я правильно понял, что в Materialized Path, если длинна пути 000, то всего может быть 999 корневых комментов?
Ответы: >>1155110
Аноним 2018/03/09 22:18:13  №1152602 10
>>1152465
>Что не так делаю?
Потому что возвращается объект PDOStatement, а не результат. Результат, судя по всему, получается во время выполнения функции foreach, потому что PDOStatement это Traversable.
Чтобы получить результат нужно выполнить execute()

https://secure.php.net/manual/ru/pdostatement.execute.php

https://secure.php.net/manual/ru/pdo.query.php
https://secure.php.net/manual/ru/class.pdostatement.php

Так же,
У тебя можно выполнить SQL-инъекцию - чтобы её избежать, нужно использовать плейсхолдеры

См. функции:
https://secure.php.net/manual/ru/pdo.prepare.php
https://secure.php.net/manual/ru/pdostatement.bindvalue.php / https://secure.php.net/manual/ru/pdostatement.bindparam.php
https://secure.php.net/manual/ru/pdostatement.execute.php
Аноним 2018/03/10 07:58:41  №1152780 11
ДоброАнон, проверь пожалуйста задачку про кредитный ipad https://ideone.com/IIH3sL

В этой задаче, учел твои рекомендации по кредитному iphone.

>- прибавляем проценты и комиссию к остатку долга (!не >вычитаем ничего пока!)
>- если остаток маленький, выплачиваем сколько осталось и >уходим
>- иначе платим 5000

>«Платим» здесь значит уменьшаем долг и увеличиваем >общую сумму выплаченного.
Ответы: >>1155110 >>1167413
Аноним 2018/03/10 08:08:07  №1152781 12
Что-то я не могу вкурить про определение позднего статического связывания.
По ману
>особенность, которая может быть использована для того, чтобы получить ссылку на вызываемый класс в контексте статического наследования.
По Зандстре:
>в php 5.3 введена концепция позднего статического связывания, самым заметным ее проявлением является введение ключевого слова static.

Какие есть незаметные проявления, кроме как получения контекста вызова через ключевое слово static?
Ответы: >>1155110
Аноним 2018/03/10 10:56:40  №1152813 13
Как выкладывать допиленную версию сайта на вордпрессе на виртуальный хостинг? Если просто заменить файлы, то все сломается скорее всего, ведь есть еще база данных и разные настройки. Подскажите пожалуйста.
Ответы: >>1152814 >>1152826
Аноним 2018/03/10 11:00:54  №1152814 14
>>1152813
Ты забыл добавить вопрос в свой вопрос.
Ответы: >>1152826
Аноним 2018/03/10 11:38:21  №1152826 15
>>1152814
>>1152813
>Как выкладывать допиленную версию сайта на вордпрессе на виртуальный хостинг?

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

Мне нужно автоматизировать разработку на вордпрессе, хостинг - виртуальный, ОС на локальном компьютере - убунту. Нужно выкладывать допиленные версии сайта чтобы не возникало проблем с базой и т.д. Желательно автоматизировать версионность и обновление. В общем нужно решить эту задачу раз и навсегда, пока сайт на виртульном хостинге.
Ответы: >>1152832 >>1152843 >>1152856
Аноним 2018/03/10 12:12:46  №1152832 16
Ответы: >>1152856
Аноним 2018/03/10 13:01:41  №1152843 17
15206761020220.jpg (18, 484x484)
484x484
>>1152826
>Если просто заменить файлы, то все сломается скорее всего, ведь есть еще база данных и разные настройки.
>Нужно выкладывать допиленные версии сайта чтобы не возникало проблем с базой и т.д.
>Мне нужно автоматизировать разработку на вордпрессе
Ответы: >>1152856
Аноним 2018/03/10 13:28:54  №1152856 18
>>1152832
>>1152843

Это не чат в телеграме. Иди постить смешные картинки в какое-нибудь другое место.

>>1152826

Ты правильно делаешь, что хочешь автоматизировать рутинные вещи. Немного в общих чертах про деплой написано тут >>1143223

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

Что касается базы данных, то тут все непросто. Вообще, обычно изменения структуры БД (добавление таблиц и колонок) принято делать через миграции, вот их общее описание: https://www.google.ru/url?q=https://habrahabr.ru/post/121265/&sa=U&ved=0ahUKEwjN9I2KxOHZAhXmJ5oKHbxYBO8QFggUMAA&usg=AOvVaw1D9Ujm8m98F29f1y_Y1AaB

Они поддерживаются во многих фреймворках, например: https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html

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

Я когда-то делал так: дампил БД с продакшена, заливал локально, делал правки, делал дамп, заливал на продакшен. Но что, если кто-то в это время делал правки на сайте? Они потеряются. Плюс, если в БД может храниться конфиг, разный для dev и production.

Так что я бы искал какое-то специализированное решение именно для ВП.

Я погуглил, есть какие-то плагины (вроде WP migrate DB), но они по сути переносят тот же самый дамп БД.

То есть ВП сам по себе не очень заточен на традиционную разработку, он ведь сделан для не-программистов, которые правят сайт через админку.
Ответы: >>1152968
Аноним 2018/03/10 14:04:38  №1152878 19
Нужна шпаргалочка по специальным словам в ооп.
Поправьте меня если я где-то не прав.

public, private & protected - тут все понятно.

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

Вот пишу я кошечек-мышечек, и например делаю abstract class Animal, в нем например будут обычные методы, которые будут работать у потомков без переопределения, по типу
public function move() {
... ходит на выбраную клеточку
}

так и абстрактные, которые будут принудительно переписаны как для кошечки, так и для мышечки
abstract public function choseMove() {}
верно с этим?


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

например пишешь такое
class Helper {
static public function convertSqlDateToHuman ($sqlDate) {
...
}
}

Ну и в коде просто используешь когда хочешь в виде

$readableDate = Helper::convertSqlDateToHuman($sqlDate);


На этом этапе для начала правильно всё? Принцип использования всего этого верный у меня в голове?
Ответы: >>1155112 >>1156552
Аноним 2018/03/10 15:55:41  №1152967 20
Есть на сайт на дешевом виртуальном хостинге. В таких условиях в каком режиме ставить PHP предпочтительно, mod_php или php-cgi? Конечно хочется увеличения производительности и уменьшения нагрузки на сервер хостинга, так как есть ограничение нагрузки на CPU.
Ответы: >>1153113
Аноним 2018/03/10 15:59:07  №1152968 21
Аноним 2018/03/10 20:09:15  №1153113 22
>>1152967
из двух сортов говна выбирай mod_php, он быстрее. php-cgi это вообще штука из начала нулевых. в целом самая быстрая связка (при одинаковой версии языка) это nginx+php-fpm.

а вообще хостер часто предлагает несколько версий пхп на выбор, из них выбирай более новый.
Аноним 2018/03/11 10:47:20  №1153359 23
Кто-нибудь ставил капчу на формы или прочее? Как защитить от спама формы обратной связи простым способом? Какие есть варианты?
Ответы: >>1155112
Аноним 2018/03/11 11:07:38  №1153363 24
Товарищи. Подскажите, пожалуйста, это очень важно. Сам помогу взамен вам обязательно.

Как правильно работать с сертификатами Let's Encrypt. Допустим, у меня есть 1 домен example.ru
И я хочу периодически (несколько раз в день) добавлять новые поддомены. Для каждого поддомена нужен сертификат.

На сайте летсэнкрипт я вычитал:
>The main limit is Certificates per Registered Domain, (20 per week). A registered domain is, generally speaking, the part of the domain you purchased from your domain name registrar. For instance, in the name www.example.com, the registered domain is example.com. In new.blog.example.co.uk, the registered domain is example.co.uk. We use the Public Suffix List to calculate the registered domain.

То есть я могу делать только 20 доменов в неделю, райт?

Есть другой способ решения вопроса:
>If you have a lot of subdomains, you may want to combine them into a single certificate, up to a limit of 100 Names per Certificate. Combined with the above limit, that means you can issue certificates containing up to 2,000 unique subdomains per week. A certificate with multiple names is often called a SAN certificate, or sometimes a UCC certificate.

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

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

Но если мне нужно больше?
Ответы: >>1153364 >>1153366 >>1162896
Аноним 2018/03/11 11:09:36  №1153364 25
>>1153363
Тут еще в дубликатах проблема. Для тех, которые уже зареганы, можно пересоздать только 5 раз в неделю:
>We also have a Duplicate Certificate limit of 5 certificates per week. A certificate is considered a duplicate of an earlier certificate if they contain the exact same set of hostnames, ignoring capitalization and ordering of hostnames. For instance, if you requested a certificate for the names [www.example.com, example.com], you could request four more certificates for [www.example.com, example.com] during the week. If you changed the set of names by adding [blog.example.com], you would be able to request additional certificates.

Очевидным способом решения является откладывать выпуск сертификата на 0.5 суток и делать их кучей, но тогда у пользователя не будет возможности получить свой домен сразу.
Аноним 2018/03/11 11:11:45  №1153366 26
>>1153363

Тебе по идее нужен wildcard certificate на *.example.com. Начинается по моему от 100 долларов в год.
Ответы: >>1153369
Аноним 2018/03/11 11:18:41  №1153369 27
>>1153366
>wildcard
Да, сейчас загуглил, это именно то, что идеально бы подошло.
Аноним 2018/03/11 11:29:20  №1153370 28
>>1152267 (OP)
Истории успеха аноны могут поделиться. Ну там начал 3 месяца назад, сеичас зашибаю по 10к сие изучаю для подработка и на ништяк мне бы хватило, подкачал тело, появилась тян, за ипотеку выплатил и прочее....
Нужна мотивация аноны.
Ответы: >>1153372 >>1153379
Аноним 2018/03/11 11:34:40  №1153372 29
>>1153370
Начал изучать в 2016 по сайту опа. Оп сильно помогал здесь, да будет он здоров счастлив.
Сейчас живу в тайланде с няшным трапиком (я не гей). Зарабатываю на фрилансе около 2500 баксов в месяц. В 2015 я жил в ебенях севера, и мечтал о том, чтобы лето длилось дольше месяца. Лучшей мотивации и не надо.
Аноним 2018/03/11 11:42:35  №1153375 30
>>1153372
Расскажи что ли какой путь ты прошел? Я вот изучаю чет изучаю, поработал на всякие шараги где по сути нихуя не делаешь. Наверное я слишком медленно развивался за последние 2 года.
Ответы: >>1153413
Аноним 2018/03/11 11:53:54  №1153378 31
Антоны, как правильно развиваться? Я, как и анон выше, уже около 2-х лет в пхп, но заметил, что мое развитие как-то остановилось.
В том смысле, что я изучил пхп (его фишки и особенности) до этого писал на C++, поэтому на это ушло пару дней, выучил SQL, разобрался с ООП и всякими паттернами, посмотрел как устроены некоторые фреймворки, научился работать с Yii2, далее вкратце изучил алгоритмы, сети (ну это как дополнительно), написал пару сайтиков и что-то вроде собственного фреймворка (просто готовая архитектура, виджеты, модули, шаблоны, куча функций и всё такое), покурил безопасность и нашёл работу.

На работе как макака делаю одно и то же, однотипные вебсайты на yii2. Фронтенд знаю на уровне написать адаптивную верстку на бутстрапе и простенькие скрипты на JS.

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

Что вы сейчас изучаете, антоны, и как вам это помогает в повседневности?

Я вот думаю перекатиться в геймдев, т.к. C++
знаю на уровне разговорного, да и моделировать умею неплохо. Но в геймдеве знаний нужно гораздо больше,
поэтому будет стимул развиваться
Ответы: >>1153385 >>1154341 >>1155112
Аноним 2018/03/11 11:57:53  №1153379 32
Ответы: >>1153413
Аноним 2018/03/11 12:18:30  №1153385 33
Как вообще начать себя продавать помимо ходжения по собеседованиям и как искать работу по удаленке? Когда уже что-то знаешь и хочешь делать что-то сложнее чем шлепание хуеты на цмс.
>>1153378
я иногда смотрю вакансии, и на пхп такое ощущение, что вообще нет сложной работы, только веб студии ищут макак для хуяринья сайтиков на говноцмсках. Нет сложных сервисов или самописных проектов с тяжелым бэк-эндом. Либо есть но туда нужен синьор-помидор 100к зп в мухосрани и 5+лет опыта в крупных конторах.

В 90% вакансий льют тебе в глаза ссанину, что сложные задачи, всё интересно и много развития. А в итоге ты листаешь требования, видишь что там помимо стандартной заготовки из html+css+js+lamp на самом деле сидят такие замечательные пикрилы, которые как бы не обязательны, но хуй там плавал, поработав пару раз в подобных шарагах, ты понимаешь, что всё там написано только на таком, и "писать" ты тоже будешь только на этом. Никаких сложных проектов долгоиграющих с обширной логикой. Будешь сначала поддерживать старое говно, кому-то баннер поменять, кому-то метрику на форму прилепить и так далее, и со временем ты вырастешь в самостоятельного почетного говнолепа, который будет с 0 нахуяривать свеженькие сайты для новых клиентов изо дня в день. Такие вот истории.
Аноним 2018/03/11 12:27:10  №1153386 34
>>1153372
Вот значит дети не учите ПХП. Закончите жизнь эмигрантом в Азии в окружении трапов. Лучше учите питон, чтобы уехать в европку поебывать няшных шведок.
Ответы: >>1153399 >>1153402 >>1153413
Аноним 2018/03/11 13:04:20  №1153399 35
>>1153386
Вот согласен. Это история с одной стороны как нужно хуячить, а с другой — как не надо делать. Но если человек счастлив — то похуй.
Аноним 2018/03/11 13:13:41  №1153402 36
>>1153386
Питон сложнее пхп? ПЛАТИНА?
Ответы: >>1153403 >>1153866
Аноним 2018/03/11 13:19:34  №1153403 37
>>1153402
А хрен его знает! Я пхп макакен.
Ответы: >>1153405
Аноним 2018/03/11 13:30:30  №1153405 38
>>1153403
Плюс к тому мое диванное манямнение, что трудность переезда в европку не в языках программирования, а в человеческих языках: средний образованный европеец - полиглот.
Вот например работка в европке для пыхера http://knplabs.com/en/career/jobs/mission/paris - то бишь тебе нужен и английский и французский.
Ответы: >>1153410
Аноним 2018/03/11 13:42:54  №1153410 39
>>1153405
В Европку переехать один хуй проще, чем в СШАшку. И ровно настолько же бесполезней. Особенно во Францию бгг. Ну это если ты не ебанутый галломан, но таковые программисты давно уже там.
Аноним 2018/03/11 13:45:10  №1153413 40
15207651108740.jpg (71, 1040x780)
780x1040
>>1153375
Да особо нечего рассказывать. Попробовал силы у ОПа, выяснил что на уровне продвинутых задач уже сосу. Потом сделал пару сайтов для себя и пару чтобы было что показать. Поучился немного на вебинарах не буду рекламировать контору. Там мне подняли скилл, дали поработать с галпом, npn, PHPStorm, Composer, xDebug, PHPUnit, git, bitBucket, Eloquent, laravel и устроили на удалёнку за гроши. У меня была работа, а по удалёнке требовалось изредка пинать базу и редактировать кое что, так что ради опята я согласился. Спустя два месяца поступило предложение покруче. Ну как-то так прыгал с работы на работу.
>>1153379
Сперва я подумал оставить твой комментарий. Но потом я понял что если-бы мне это пруфанули в 2012, то я не потратил бы зря несколько лет своей жизни.
>>1153386
У каждого своя мечта бро, кому-то Европа, кому-то Тайланд, кому-то Канада, а кому-то и собаку норм.
Ответы: >>1153489
Аноним 2018/03/11 14:27:46  №1153457 41
15207676666510.png (196, 600x455)
455x600
Сам студент 1 курс, знаю HTML/CSS, хочу вкатиться в руби, но сейчас позарез нужно найти работу на лето и не ехать в мухосрань летомпроблемы с родителями на пыхе офк это easy modo, вкатиться смогу изи за 3 месяца на джуна. Теперь вопрос, не поглотит ли это меня? Смогу ли я вырваться и вкатиться в руби? Есть ли такие кто перекатывался потом в другие языки или наоборот из других языков в пыху?
Аноним 2018/03/11 14:30:55  №1153462 42
>>1153457
Это только от тебя зависит, бро.
Ответы: >>1153463
Аноним 2018/03/11 14:31:59  №1153463 43
>>1153462
Тоесть даже это может быть плюсом при перекате в рельсы?
Аноним 2018/03/11 14:34:51  №1153468 44
>>1153457
А что руби? Думаешь там за просмотр анимы платят?
Ответы: >>1153488
Аноним 2018/03/11 14:47:55  №1153488 45
>>1153468
Думаю просто у меня стереотипы к пыхе, вот и не хочу с пыхой долго ебаться
Аноним 2018/03/11 14:48:12  №1153489 46
>>1153413
А что за проекты на фрилансе например? Нужно что уметь что бы так вывозить? И еще у тебя чисто фриланс с рандомными заказами, или по факту просто удаленка с постоянным контрактом и 2500 на руки ежемесячно?
Аноним 2018/03/11 14:55:22  №1153501 47
ребята джуны, вы так говорите "все, пхп говно, я пойду учить питон/руби". важен не ЯП, а сфера разработки. современные бэкенд-ЯП на 90% похожи друг на друга (не считая го). если у вас на пхп есть 2+года опыта работы в нормальном хайлоаде, вы при желании куда угодно (в бэкенд) без проблем вкатитесь.
Ответы: >>1153531 >>1153539
Аноним 2018/03/11 15:14:42  №1153531 48
>>1153501
А кто говорит то? Я бы этому овощу >>1153457
лично на лицо нассал при встрече, благо мы анимусы все тут.
Ответы: >>1153553
Аноним 2018/03/11 15:19:30  №1153539 49
>>1153501
Проблема только в том, что ища работу на пхп, хз как найти тот самый бэкэнд с хайлоадом. Разве что игнорировать галеры на которых тебя по сути продают в рабство хуярить очередной сайт, а обращаться в совсем неит крупные компании, но которые ебашат свои собственные ресурсы для автоматизации бизнес-процессов.
Ответы: >>1153553
Аноним 2018/03/11 15:30:14  №1153550 50
Определите, что такое хайлоад на пыхе.
Ответы: >>1153556 >>1153558 >>1153563
Аноним 2018/03/11 15:33:53  №1153553 51
>>1153531
да появляются периодически такие заявления

>>1153539
>хз как найти тот самый бэкэнд с хайлоадом. Разве что игнорировать галеры на которых тебя по сути продают в рабство хуярить очередной сайт
вот ты сам и ответил
Аноним 2018/03/11 15:36:39  №1153556 52
Аноним 2018/03/11 15:37:21  №1153558 53
>>1153550
Когда пыхаскрипт падает от time limit exceeded
Ответы: >>1153827 >>1153837
Аноним 2018/03/11 15:41:43  №1153563 54
>>1153550
с т.з. того, о чем я говорил, это проект, в котором ты при решении задач должен держать в голове ограниченность доступных ресурсов.
Аноним 2018/03/11 17:52:18  №1153677 55
Как передать в echo сразу значение какого-то выражения без создания переменной pow_table, например
echo "{$i}x{$i} = {pow(&i, 2)} \n"; выводит просто значение
https://ideone.com/QEtH2w
Ответы: >>1153709 >>1155113
Аноним 2018/03/11 18:14:25  №1153709 56
Ответы: >>1153727
Аноним 2018/03/11 18:28:37  №1153727 57
Ответы: >>1153731
Аноним 2018/03/11 18:30:55  №1153731 58
>>1153727
Псст... так нельзя делать, дружок :)
Если язык позволяет тебе всё, не значит что ты можешь вертеть им как хочешь.
Ответы: >>1153785
Аноним 2018/03/11 19:11:28  №1153785 59
>>1153731
>ельзя делать, дружок :
Я уже понял, что тут как в С/С++ не сделаешь, а так как ты создал это хуево и без создания переменной не обойтись
Аноним 2018/03/11 19:24:08  №1153797 60
Хочу сделать кверинг к бд через redbeanphp, что бы потом циклом запомнить блок со статьей данными из бд и размножить его.

Команды из мана не запрос всей таблицы не работает:
$var = R::getAll( 'SELECT * FROM article' );
print_r($var['id']);

Работает только R::getCol
$menu_array = R::getCol('SELECT title FROM articles');
print_r($menu_array);
Но это мне не подходит.

mysqli юзать не хочется...
Ответы: >>1154470
Аноним 2018/03/11 19:38:44  №1153815 61
Сап пыхич. Как перестать плеваться синтаксисом и наконец понять его?
Ответы: >>1153963
Аноним 2018/03/11 19:45:19  №1153827 62
>>1153558

У нас на продакшене 12000 секунд в php.ini стоит. Но софт довольно специфический.
Аноним 2018/03/11 19:50:01  №1153837 63
>>1153558
Поставил 100мсек лимита времени выполнения, 10кбайт лимита памяти - и все! Теперь у нас и хайлоад, и бигдата.
Можно пиздеть о соответствующем опыте.
Аноним 2018/03/11 19:56:09  №1153844 64
>>1153372
Круто, рад за тебя. По сколько часов в день, дней в неделю трудишься?
А ты в офисе успел поработать? Где скилл набивал?
Если сразу на фриланс полез, то вангую, в рублях такой доход ты в ДСном офисе получать не сможешь.
Аноним 2018/03/11 20:24:38  №1153866 65
>>1153402
>Питон сложнее пхп?
Я начинал с питона, пару месяцев учил, потом сделал перекот на пхп.
Как по мне, то они оба легкие, просто что на питоне писать гораздо приятнее. И еще, как мне показалось, циклы в питоне реализованы на много лучше. Но с другой стороны пхп больше адаптирован для веба + его интерпретатор нативно работает с апачем, никакой ебли uwsgi и virtualenv.
Аноним 2018/03/11 20:26:24  №1153870 66
>>1152267 (OP)
Программач, выручай.
Абу новую парашу закрепил заместо списка досок сверху и снизу.
Добрый аноним через настройки пользовательский ЦСС вернул список досок взад наверх:
#boardNavBottom {position: absolute; top: 40px}
.logo {margin-top: 70px}

Вопрос: как подобное продублировать вниз? У меня есть вкладка, где список досок внизу есть а сверху нет. Может как-то через инспектор элементов можно понять? Или местные гуру смогут в пару изящных строчек это дело поправить без таких дебрей?
Благодарю за внимание.
Ответы: >>1154363
Аноним 2018/03/11 21:21:48  №1153921 67
кто-то может порекомендовать что почитать по оценке сроков для таска? я недавно пришел на новую работу, там проект весь такой незнакомый и сложный, мне дают тикет и я хз как его оценить. даже если декомпозицию задач делать, все равно непонятно, сколько каждая из них занимает.
Ответы: >>1153988 >>1155113
Аноним 2018/03/11 22:15:09  №1153963 68
>>1153815
Синтаксис примерно как жабе и c++, только проще, ничего такого.
Ответы: >>1154002
Аноним 2018/03/11 22:37:02  №1153988 69
>>1153921
Ничего. Оценить можешь только ты.
Аноним 2018/03/11 22:46:54  №1153999 70
ОП большой молодец!
Начинаю вкатываться потихоньку. А есть стори успешных?
Ответы: >>1154016 >>1154020
Аноним 2018/03/11 22:52:04  №1154002 71
15207979247380.png (74, 762x506)
506x762
Ответы: >>1154118
Аноним 2018/03/11 23:08:10  №1154016 72
>>1153999

Ну я вкатился с помощью ОПа. 2 года работаю. ДС.
Я тут не один такой.
Ответы: >>1154021
Аноним 2018/03/11 23:13:21  №1154020 73
>>1153999
я в прошлых тредах писал. вкатился в симфони, 90к, удаленка. 1.5 опыта. начинал с 30к на галере.
Аноним 2018/03/11 23:14:33  №1154021 74
>>1154016
Вот это круто! То есть знаний, которые передает ОП достаточно для вкатывания?
Самому нравится работа?
Ответы: >>1154029
Аноним 2018/03/11 23:20:17  №1154029 75
>>1154021

Да, как сделаешь файлообменник из шапки - смело можно начинать искать работу. Можно и раньше, я считаю.

Работа нравится, интересная предметка (форекс).
Тупо сайты делать, наверное, не так интересно.
Ответы: >>1155113
Аноним 2018/03/11 23:24:24  №1154034 76
Нужно ли учить линуксы для пхп?
Ответы: >>1154428
Аноним 2018/03/12 00:58:02  №1154118 77
>>1154002
Выглядит неплохо. Наверное, неприязнь к синтаксису проходит, когда несколько разных языков выучишь.
Аноним 2018/03/12 06:50:08  №1154341 78
>>1153378
Мне бы твои проблемы! Есть идея для продукта которая точно выстрелит и будет кормить годами, но не хватает знаний на его написание. Найти бы специалиста, который готов к сотрудничеству.
Аноним 2018/03/12 09:45:38  №1154363 79
Продолжение >>1153870
Доброкун запилил вот такую штуку, которая позволяет вернуть список досок вниз, сверху при этом остается пробел и пустое поле:
.cntnt__left_sticky {height: 120px}
ul.fm li {float: left}
.cntnt__left {position: absolute; top: 50px; height: 100px}
.logo {margin-top: 120px}
ul.fm li a{display: block; max-width: 34px; white-space: nowrap; overflow: hidden; margin-right: 5px; text-decoration: none}
.fm__header {display: none}
li.fm__item {float: left; margin: 0; display: inline}

Но если добавить код приведенный ранее- сверху список появляется, а снизу пропадает. Как работает данная магия?
Ответы: >>1155113
Аноним 2018/03/12 13:21:27  №1154428 80
>>1154034
нужно ли учить винду, чтобы сидеть на двачах?
Аноним 2018/03/12 14:21:54  №1154470 81
15208537151890.png (140, 405x649)
649x405
Анон, очень нужна твоя помощь, глянь на пикрелейтед, почему при переборе циклом пропускает по 2 блока?
Надо что бы поле с непарным айдишником бросало большим блоком в одну сторону, а с парным в другую.

кусок кода страницы
https://pastebin.com/S88kFq1P

Архив с исходником страницы
http://rgho.st/89NxY99WZ

>>1153797
Не актуально, уже разобрался.
Ответы: >>1154539 >>1155113
Аноним 2018/03/12 15:32:34  №1154539 82
>>1154470
Во первых ничего не видно на скрине и не понятно в чем проблема.
Сформулируй четко как ты хочешь что бы выстраивались блоки, и сделай четкий скрин, на котором видно будет.

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

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

Что у тебя прямо в файле создан руками такой вот например массив https://ideone.com/CGl3II
Который и разбирается в html'e в дальнейшем


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



Ответы: >>1154606 >>1154649
Аноним 2018/03/12 17:11:49  №1154606 83
15208639095650.png (90, 1417x1890)
1890x1417
>>1154539
У меня есть 2 разных ряда с блоками, в одном блок с комментариями слева а статьи справа, в другом наоборот. Я хочу наполнить эти блоки из бд циклом так, что бы сохранить эту структуру.

Для теста я обернул эту всю конструкцию в цикл, достал из бд id категорий, и по ним пытался сделать распределение этих блоков, парные id идут влево, непарные вправо.
Это сработало, но лишь частично, как видно на предыдущем скрине, идет id 2, затем id 3, а после 2 пустых ряда с блоками, и уже после них идет id 4 и id 5 и так далее.

Вот упрощенный код:
https://pastebin.com/zdnKAewR
Если добавить else или elseif противоположным условием, то пропусков не будет, но блоки продублируются (11 22 33 44 55 итд).
Аноним 2018/03/12 17:36:25  №1154625 84
Есть два стула задача:
Отаравить n http-запросов, но не сразу а в течение m минут. Между отправкой должны быть интервалы (примерно одинаковые).
Есть скрипт, который получает от клиента (веб-морды) и собирает в кучу данные для отправки. Но чтобы отправить, к примеру, 30 запросов в течение 20 минут при этом не повесить UI на это время нужно как-то изъебнуться.
Реально ли это запилить средствами php без применения доп. костылей вроде cron'а и т.п.?
Ответы: >>1154637 >>1155113
Аноним 2018/03/12 17:48:15  №1154637 85
>>1154625
Попробуй на сервере выставить время выполнения на 2000 секунд и юзай http://php.net/manual/ru/function.sleep.php между отправками запросов.

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

Аналогично предыдущему - можешь кроном дергать тот же самый пхп скрипт.

Ответы: >>1154638
Аноним 2018/03/12 17:52:37  №1154638 86
>>1154637
>дергай аяксом php-скрипт
Бля, а это идея.
Чойто я сразу не допёр.
Благодарю.
Аноним 2018/03/12 18:45:51  №1154649 87
15208695514810.png (7, 145x498)
498x145
15208695514811.png (6, 145x498)
498x145
>>1154539
Вот еще проще:

<?php
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
?>

<?php foreach ($array as $key => $item): ?>


<div style="border: 1px solid; width: 80px; height: 20px; margin-top: 5px;">
<?php
if ($item % 2 == 0) {
echo $item.'<br>';
}
?>
</div>

<div style="border: 1px solid; width: 80px; height: 20px; margin-left: 40px; margin-top: 5px;">
<?php
if ($item % 2 != 0) {
echo $item;
}
?>
</div>

<?php endforeach; ?>

Результат пикрелейтед. Как убрать пропуски и сделать как на пикрелейтед2 ?
Ответы: >>1154654
Аноним 2018/03/12 18:50:00  №1154650 88
Пользовался весьма интересным сервисом, после оплаты на определенный срок и привязки лицензии к домену он выдает нам папку с скриптом. Мы устанавливаем его к себе на вдс и создаем бд, прописываем запуск cron-файлов, потом специальный файл чекает конфигурацию php и прочие параметры.

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

Вопрос в том каким образом они передаются в интерфейс на сайте разработчика, как он получает данные из БД на моем вдс если ему известен только домен?
Ответы: >>1155114 >>1158420
Аноним 2018/03/12 19:04:37  №1154654 89
15208706781360.png (7, 203x833)
833x203
>>1154649
https://ideone.com/YpKCss

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

Ответы: >>1154677 >>1154700 >>1157572
Аноним 2018/03/12 19:40:42  №1154677 90
>>1154654
Немножко не так как я хотел, но в твоих словах определенно больше смысла, спасибо, буду дальше работать.
добра:3
Ответы: >>1154695
Аноним 2018/03/12 20:19:11  №1154695 91
>>1154677
ВСМЫСЛЕ БЛЯДЬ НЕ ТАК КАК ТЫ ХОТЕЛ? Ты картинку нарисовал - касарь долж... я тебе четко как на ней все вывел.

Если ты хочешь рисовать отдельно левый блок - и отдельно правый, то делай вот так.

https://ideone.com/IGnQmL

Если они у тебя кардинально отличаются и html код левого и правого блоков сильно разнятся - это ок, но в том простом случае который ты хотел - это просто копипаста, которую я вынес за пределы условия.
Аноним 2018/03/12 20:32:49  №1154700 92
>>1154654
Как то так вышло. https://pastebin.com/Fn6nEcwf
Интуитивно ткнул пальцем в небо и вставил перед блоками <?php if ($key % 2 == 1): ?>, а уже внутри if с ключами к массиву. Работает как надо, но чем до конца всю логику проследить не могу. Пиздец(

Ответы: >>1154862
Аноним 2018/03/13 02:51:30  №1154862 93
>>1154700
мой косяк, уже вроде бы разобрался.
Аноним 2018/03/13 12:38:10  №1154966 94
Вопросы покоду тут спрашивать ?
Ответы: >>1154971
Аноним 2018/03/13 12:55:55  №1154971 95
Ответы: >>1154974
Аноним 2018/03/13 12:59:31  №1154973 96
Какие существуют методы определения пользователей сайта?

Получил временный бан на сайте, теперь на любой поисковый запрос получаю код 429(too many requests). Поставил впн, сменил бразуер, а толку ноль.

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

Так вот, если получаю бан(консольно или через браузер), то никакие смены айпи и куков вообще не действуют. На самом сайте ни капчи, ни магик пикселей.
Ответы: >>1155122 >>1155529
Аноним 2018/03/13 13:01:11  №1154974 97
Аноним 2018/03/13 13:16:42  №1154981 98
Вопрос из книги рецептов по php

1.22

function tab_expand($text) {
while (strstr($text,"\t")) {
$text = preg_replace_callback('/^([^\t\n])(\t+)/m',
'tab_expand_helper', $text);
}
return $text;
}

function tab_expand_helper($matches) {
$tab_stop = 8;
return $matches[1] .
str_repeat(' ',strlen($matches[2])

$tab_stop - (strlen($matches[1]) % $tab_stop));
}
$spaced = tab_expand($obj->message);

Функция ,как я понял удлиняет части текста разделенные табуляциями до 8 символов "$tab_stop",
Вопрос за что отвечает выделенные выше фрагмент strlen($matches[2]),
Ответы: >>1154983 >>1154985 >>1155114
Аноним 2018/03/13 13:18:00  №1154983 99
>>1154981
>str_repeat(' ',strlen($matches[2])

после идет знак умножения

Аноним 2018/03/13 13:29:43  №1154985 100
Ответы: >>1154986
Аноним 2018/03/13 13:33:14  №1154986 101
Ответы: >>1154988
Аноним 2018/03/13 13:37:32  №1154988 102
Ответы: >>1154990
Аноним 2018/03/13 13:43:23  №1154990 103
>>1154988
если есть строка

aaa\t\tbbb\tccc\t

соответственно получется

$matches[0] - весь шаблон

$matches[1] - aaa затем, bbb...

$matches[2] - получается две табуляции \t\t,

Ответы: >>1154992
Аноним 2018/03/13 13:44:35  №1154992 104
Ответы: >>1154997
Аноним 2018/03/13 14:02:23  №1154997 105
>>1154992
Я не хочу сейчас разбирать сборник рецептов и конкретно эту регулярку, но вот тебе сайт, там вводишь регу, строки для проверки, всю хуйню, и он покажете тебе и фулматч, и что такое матч 1-2-10, и все свои действия объяснит. А так же в нем есть справочник по синтаксису регулярок.

https://regex101.com/

Если вводишь русский текст, не забудь флаг u поставить.
Ответы: >>1155005
Аноним 2018/03/13 14:13:04  №1155005 106
Аноним 2018/03/13 14:18:53  №1155012 107
15209399334750.png (5, 315x101)
101x315
15209399334751.png (30, 441x305)
305x441
Радуюсь как школьница от новых шмоточек, когда задачки решаю, понимаю, что это основы, но просто делюсь своими никому не нужными эмоциями. Ну и вопрос, по какому правилу и как вообще округляются/приводятся числа после запятой в Пыхе?
Ответы: >>1160477
Аноним 2018/03/13 14:31:32  №1155021 108
15209406932100.jpg (13, 275x183)
183x275
Аноны, это пиздец, ебучий php меня уже ЗАЕБАЛ НАХУЙ! Я нихуя не понимаю, что такое $_POST(глобальный массив...ЧТО ЭТО БЛЯТЬ ТАКОЕ?!), объясните мне, дауну, на пальцах, мол это нужно для того-то того-то, применять там-то там-то. А то обоссаный гугл нихуя не помогает, везде написано одно и то же с блядского официального мануала по ебучему php. Написано всё на непонятном мне дотракийском нахуй языке, объясните тупому ПО-РУССКИ БЛЯТЬ, ЧТО ЭТО!!11
Ответы: >>1155028 >>1160477
Аноним 2018/03/13 14:41:47  №1155028 109
>>1155021
>глобальный
виден из всего файла
В него автоматом попадают все данные из POST запроса.

Есть GET запрос, это когда вся хуйня передается в url'e
www.example.com?name=vasya&from=2ch
В этом случае в $_GET будет массив
'name' => 'vasya'
'from' => '2ch'

А есть POST запрос, типа более безопасный итд, не суть. Но его массив формируется по тому же принципу.
Ответы: >>1155036
Аноним 2018/03/13 14:50:00  №1155036 110
15209418007480.jpg (55, 998x665)
665x998
>>1155028
о, анон, у меня так полыхает, помоги мне с этим вопросом.
>Из всего файла
То есть, только из того файла где он используется?
>Автоматом попадают все данные из POST запроса
Хмхмхмхм, то есть, $_GET и $_POST это своего рода контейнер, куда АВТОМАТОМ попадают все данные исходя из их метода передачи. То есть, в $_GET попадают данные, переданные методом GET, и такая же хурма с $_POST?
Ответы: >>1155038 >>1160477
Аноним 2018/03/13 14:54:39  №1155038 111
>>1155036
>То есть, только из того файла где он используется?
Ну куда отправишь его, там и используй. Почитай еще, php.net какой-нибудь. По идее он отовсюду виден.

Остальное- да.
Ответы: >>1155042 >>1155059
Аноним 2018/03/13 15:03:18  №1155042 112
15209425986870.png (12, 522x268)
268x522
>>1155038
Добрый анонче, света и добра тебе в твой дом, ты спас одного безликого анона от пожара в квартире. Ещё пару вопросов хочу задать тебе:
1) $_POST['login'] - это значит, то есть, что в массив $_POST попадают данные из login? login, в данном случае, это атрибут формы ввода логина(атрибут name).
То есть, в это поле с именем login я ввожу имя ВАСЯНХХХ228, и это имя записывается в глобальный массив?

2) Смотри пик. Почему я указал в атрибуте формы метод POST, а данные всё равно видны в URL? То есть, логин, и имя кнопки. GET и POST мы можем указывать только в атрибуте формы, а массивы $_POST и $_GET, правильно?

Прошу прощения за тупость ещё раз, но пока я не разберусь в этом говнище, я не успокоюсь.
Ответы: >>1155048 >>1160478
Аноним 2018/03/13 15:11:35  №1155048 113
>>1155042
1. Перенеси method в <form>
2. Если в форме не указан явно метод, то по умолчанию используется GET
3. Закрой блять тег form
мимошел
Ответы: >>1155052 >>1155059
Аноним 2018/03/13 15:15:07  №1155052 114
15209433079220.jpg (30, 760x475)
475x760
>>1155048
блять, точно, лол. Проиграл как орк со своей же невнимательности. На эмоциях просто ебенил, вот и не заметил нихуя. Спасибо!
Аноним 2018/03/13 15:28:53  №1155059 115
15209441334670.jpg (70, 514x604)
604x514
>>1155038
>>1155048
Аноны, я опять бью тревогу! Как мне вывести или посмотреть весь массив $_GET или $_POST(ну это я думаю, вряд ли возможно на странице браузера)? То есть, можно ли как-то посмотреть чё я вообще туда навводил нахуй через эти формы блять ебучие? Это же массив всё-таки, и я хочу узнать его данные!
Ответы: >>1155065
Аноним 2018/03/13 15:37:41  №1155065 116
Аноним 2018/03/13 16:35:57  №1155108 117
>>1152334

Мне кажется, что принцип более-менее определен тут в начале: https://en.wikipedia.org/wiki/Open/closed_principle

> entity can allow its behaviour to be extended without modifying its source code.

Насчет примеров - есть статья http://blog.byndyu.ru/2009/10/blog-post_14.html

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

Но, конечно, мне этот принцип кажется довольно размытым, и я не уверен, что надо всегда ему следовать. Там в обоих примерах код в итоге усложняется и как бы тут не вышло то, что описано в статье про хлеб: https://habrahabr.ru/post/153225/

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

В твоем примере с функцией function(Type $type): Returnable - принцип предполагает, что когда тебе надо поменять поведение функции, ты не будешь ее переписывать, а например, напишешь функцию-обертку над ней. Это и будет "расширение без модификации исходного кода".

>>A module will be said to be open if it is still available for extension. For example, it should be possible to add fields to the data structures it contains, or new elements to the set of functions it performs.

Чтобы это понять, обрати внимание на примечание:

> At the time Meyer was writing, adding fields or functions to a library inevitably required changes to any programs depending on that library.

Я думаю, там речь о том, что в языках типа С++, если у тебя есть библиотека (.so или .dll) с классом и ты меняешь его код, то может понадобиться перекомпилировать и те библиотеки и приложения, которые ее используют (хотя я настолько хорошо Си++ не знаю). А расширение функционала с помощью наследования от класса позволяет этого избежать. Но это мое предположение.

> Почему по коду понять проще чем по определениям? Это проблема источника или моя?
Это прицип плохо софрмулирован.
Аноним 2018/03/13 16:36:22  №1155110 118
>>1152585

Что значит "длина пути 000"? Там путь составляется из кусочков фиксированной длины (для правильной сортировки) и если ты используешь 3 цифры на кусочек, то да, возможно не более 1000 ответов на один комментарий. И столько же корневых комментариев.

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

>>1152780

Все правильно.

>>1152781

self всегда относится к тому классу, внутри которого он написан. То есть в конструкции

class A
{
...
self::something();
...
}

self всегда ссылается на класс A.

При отсутствии наследования static равносилен self.
При наличии наследования static ссылается на самого дальнего потомка.

То есть в коде

class B extends A
{
...
}

$a = new A;
$b = new B;

При вызове вроде B::x(); или $b->y(); static будет указывать на класс B. Даже если это слово написано внутри класса A. А при вызове A::x() или $a->y() тот же static будет ссылаться на A.

Это в PHP назвали "поздним статическим связыванием". "связывание" расшифровывается как "определение, на какой класс ссылается слово". "статическое" - так как self/static указывают на класс, а не объект, и используются для обращения только к статическим полям или методам. "позднее" - так как имя класса определяется не в момент разбора кода (как для self), а позже - только в момент выполнения кода.
Ответы: >>1155127
Аноним 2018/03/13 16:36:47  №1155112 119
>>1152878

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

Абстрактный класс - это класс, который задуман как основа для наследования других классов (не доделанный до конца класс) и объекты которого нельзя создавать. Антоним слова "абстрактный" - конкретный класс.

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

> делаю abstract class Animal, в нем например будут обычные методы, которые будут работать у потомков без переопределения, по типу
> так и абстрактные, которые будут принудительно переписаны как для кошечки, так и для мышечки
> верно с этим?
Да.

> static - это когда тебе нужно без создания объектов прогонять что-то через функции.
Это метод/поле класса, а не объекта. Статическому методу не нужен объект и он не использует $this. Его можно вызывать, даже не имея ни одного объекта.

> Ну и в коде просто используешь когда хочешь в виде
> $readableDate = Helper::convertSqlDateToHuman($sqlDate);
Такие классы из статических методов называются Utility Class.

> Принцип использования всего этого верный у меня в голове?
Более-менее, да.

>>1153359

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

>>1153378

Симфони изучи. Или другие языки программирования.
Ответы: >>1155132
Аноним 2018/03/13 16:37:08  №1155113 120
>>1153457

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

>>1153677

Можно использовать специально для этого придуманный printf (подробности в мануале):

printf("%dx%d=%d\n", $x, $x, $x * $x);

Или echo "x=", pow($x, 2);

>>1153921

По предыдущему опыту. Посмотри, сколько предыдущие задачи заняли по ожиданиям и по факту.

>>1154029

А я-то думаю, куда все пропадают и почему никто не делает Тестхаб...

>>1154363

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

>>1154470

Чтобы в коде не было мешанины, почитай 2 урока

- https://github.com/codedokode/pasta/blob/master/php/templates.md
- https://github.com/codedokode/pasta/blob/master/arch/mvc.md

>>1154625

Нужна очередь фоновых задач вроде gearman. Веб-скрипты не должны долго работать. Ну или аякс, да.
Ответы: >>1155156 >>1160744
Аноним 2018/03/13 16:37:26  №1155114 121
>>1154650

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

>>1154981

Вообще, код довольно плохой. Ну например strlen не может корректно посчитать длину utf-8 строки с кирилицей: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md

Цикл while мне кажется, лишний.

> ($matches[2])
Сюда помещается та часть строки, которая при сопоставлении строки с шаблоном (регуляркой) соответствует вторым круглым скобкам, то есть (\t+). То есть строка с табами.
Ответы: >>1155121 >>1155123
Аноним 2018/03/13 16:51:40  №1155121 122
>>1155114
>strlen не может корректно посчитать длину utf-8
удваиваю, а с mb_strlen потрахаешься с кодировками
Аноним 2018/03/13 16:52:45  №1155122 123
>>1154973
Бамп вопросу, даже тор не помогает обойти.
По какому признаку еще можно забанить?
Ответы: >>1155529
Аноним 2018/03/13 16:55:07  №1155123 124
Аноним 2018/03/13 17:07:41  №1155127 125
>>1155110
>self всегда относится к тому классу, внутри которого он написан...
Про self, static я сразу понял.
Смутило это "самое заметное проявление". Если следовать твоему описанию, то тут же нет других проявлений именно в позднем статическом связывании.
Зойчем тогда используют такие обороты речи, только с толку сбивают или переводчики пидоры.
Ответы: >>1160478
Аноним 2018/03/13 17:22:40  №1155132 126
>>1155112
>Скрытое поле с названием email. Другие варианты - проверять наличие разных событий, например, нажатий клавиш, прокрутки, движения мыши.
Проблема в том, что уже в формах есть всякие телефоны и емейлы (считай что обычный говнолендинг с одинаковыми вездесущими формами по оставке своих контактов)

Вхуярил туда уже 2 скрытых инпута, в надежде что бот хоть 1 из них заполнит и нихуя пока. Переназывать реальные поля (которые юзеру показываются) на какой-нибудь мусор, а поля-уловки делать email, phone, name?



Ответы: >>1160478
Аноним 2018/03/13 18:39:43  №1155156 127
15209555836410.png (93, 333x475)
475x333
>>1155113
>А ты порешай наши задачи из шапки
Уже решаю, задачки норм, но к синтаксису PHP только привыкание идет туго, думаю с практикой привыкну быстрее
Ответы: >>1160750
Аноним 2018/03/13 18:46:45  №1155160 128
15209560061100.jpg (125, 1920x1080)
1080x1920
Сап веб-няши, пишу как есть, мне 14 лвл и я хочу влиться в веб-разработку. Какие книги/документации посоветуете для изучения HTML,CSS? Видео-уроки я не смотрю, считаю их вялыми и некачественными, возможно, вы посоветуете мне что-нибудь неплохое?
Ответы: >>1155169 >>1158585 >>1160478
Аноним 2018/03/13 18:57:16  №1155169 129
>>1155160
>Видео-уроки
и webref.ru
Ответы: >>1155177
Аноним 2018/03/13 19:07:21  №1155177 130
15209572413150.jpg (33, 640x640)
640x640
>>1155169
>webref.ru
Не рабочий сайт, нет никакой информации о HTML/CSS.
>видео-уроки
С каких видео-уроков лучше всего начать изучение языков разметки? ITVDN? LoftBlog?
Ответы: >>1155550
Аноним 2018/03/13 19:08:17  №1155179 131
15209572977840.png (9, 323x151)
151x323
Как сделать это задание через массивы? Не понимаю как старые рандомные элементы добавлять в новый массив, с array_push не получалось и как их склеить, через строки получилось https://ideone.com/jn4lGf и через массивы -
https://ideone.com/GPvMRe
Ответы: >>1160479
Аноним 2018/03/13 19:30:17  №1155192 132
Какой дистр линукса лучше всего учить для вебдева?
Ответы: >>1155200 >>1155244 >>1155251
Аноним 2018/03/13 19:44:54  №1155200 133
>>1155192
macOS, Debian Testing, Ubuntu LTS/Latest, CentOS, Fedora.
Ответы: >>1160760
Аноним 2018/03/13 20:50:35  №1155244 134
Аноним 2018/03/13 21:03:13  №1155251 135
15209641937450.png (449, 1884x3311)
3311x1884
>>1155192
На серверах стоит Debian, поэтому на домашний нужно либо его, либо более дружелюбные проитзводные Ubuntu, Mint.
Аноним 2018/03/13 21:10:23  №1155256 136
15209646237090.png (10, 582x371)
371x582
15209646237091.png (12, 304x485)
485x304
15209646237092.png (189, 1920x1080)
1080x1920
Здравствуйте,пришел к вам с вопросом.
Вкатываюсь в html и столкнулся с вот такой маленькой проблемой. я создал header,который по своей сути уже является блоком и в нем создал еще один блок left-part, которому для удобства задал определенный цвет фона. И когда я пытаюсь сместить блок в блоке,с помощью margin-... , то весь главный блок header смещается тоже. в сторону он не смещается как я понял,потому что я уже задал фиксированную ширину я уже сам догадываюсь,что 100% не указывают, а указывают всегда определенный размер в px. , но там тоже возникли некоторые вопросы,так что пока что для теста указал в 100% ,но когда я пытаюсь сместить голубой блок вниз,то весь header тоже съезжает вниз,пожалуйста объясните почему и как делается правильно.
Ответы: >>1155259 >>1155540
Аноним 2018/03/13 21:17:21  №1155259 137
>>1155256
я знаю,что еще запозиционировать с помощью position: relative; и дваигать блок с помощью top и left, то тогда все нормально, но я читал,что лучше всегда использовать margin, тогда отображения сайта на разных разрешениях будет точнее.
Ответы: >>1155262 >>1155540
Аноним 2018/03/13 21:23:46  №1155262 138
>>1155259
Это называется схлопывание границ - маргин дочернего вылазит через родительский. Если и у дочернего и у родителя есть маргин, то они не складываются, а берется большийесли в общем.
Отменяется - border для родителя/дочернего, padding для родителя/дочернего еще что-то, не помню, гугли
Ответы: >>1155263
Аноним 2018/03/13 21:26:16  №1155263 139
>>1155262
>схлопывание границ
отступов конечно же
fix
Ответы: >>1155338
Аноним 2018/03/13 23:24:12  №1155338 140
>>1155263
А не будет являться ошибкой позиционирования дочернего блока через relative? Не повлияет ли это на отображение страницы на других разрешениях/устройствах?
Ответы: >>1155360
Аноним 2018/03/13 23:56:49  №1155359 141
АНОН, ПОМОГИ, ПОЖАЛУЙСТА.
Такая хуйня: не знаю пхп и языки программирования вообще (пока что), но умудрился собрать из нескольких скриптов свой, рабочий причём. Его суть в том, что он транслирует музыку в статус во впашке. Собственно, вот код:
<?php
$access_token = 'ацес токен тута';
$audio = 'айди конкретной композиции (порыться в коде элемента (он в стиле 999999_999999';
$statusSet = curl( 'https://api.vk.com/method/status.set?audio='. urlencode( $audio ) .'&access_token='. $access_token );
function curl( $url ) {
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $ch );
curl_close( $ch );
return $response;
}
echo "Статус установлен на 2 минуты!";
?>
Он работал пол года, но потом что-то наебнулось. Толи с апи что-то сделали, то ли хостинг подвёл. Проверьте, ребят, подскажите.
Ответы: >>1160479
Аноним 2018/03/13 23:59:22  №1155360 142
>>1155338
Зойчем тебе релатив? Отодвинь паддингом прост и все, чего фигней маяться.
>ошибкой позиционирования
Во ты тут слова выдумываешь. Не повлияет, хотя все зависит от остальной верстки.
Аноним 2018/03/14 09:06:34  №1155529 143
>>1154973
>>1155122

Это тред про программирование, а не про обход банов.
Аноним 2018/03/14 10:16:22  №1155540 144
Аноним 2018/03/14 11:33:02  №1155550 145
>>1155177
>нет никакой информации о HTML/CSS.
ебобо? там справочник был хороший, вот его старая версия.
http://htmlbook.ru/

>С каких видео-уроков лучше всего начать изучение языков разметки?
хуй его знает, я смотрел webdesignmaster, а дальше сам.
Аноним 2018/03/14 15:23:05  №1155604 146
15210301861920.png (32, 920x246)
246x920
>>1152267 (OP)
Аноны, изучаю джаваскрипт. Добрался до массивов и объектов. Придумал себе задачку написать подобие рандомной обзывалки. (учу по джаваскрипт для детей) Есть несколько рандомных фраз, где все элементы массива с маленькой буквы. Порядок задан мной, рандомно выбираются лишь элементы каждого массива. Этот массив превращается в строку и выводится на экран. И в коде делается так, что первая буква первого слова становится большой (типа не мелкобуквенный). По идее. Но реализовать я этого не смог через .toUpperCase и .slice. Уже часик бьюсь, посоветуй решения
Стрелочкой показал на пике, куда хочу всунуть это "поднятие" первой буквы, это только для массива word.
Ответы: >>1155739 >>1155753 >>1160479
Аноним 2018/03/14 18:30:23  №1155739 147
>>1155604
>Аноны, изучаю джаваскрипт.
И поэтому зашел в php тред? Уважуха.
Ответы: >>1155741
Аноним 2018/03/14 18:32:03  №1155741 148
>>1155739
Но ведь написано, что тут изучают
>мы изучаем язык PHP а также JS
Не по адрессу? Ну ладно, тогда я пошёл...
Ответы: >>1160479
Аноним 2018/03/14 18:40:57  №1155753 149
Ответы: >>1155775 >>1155784
Аноним 2018/03/14 19:29:51  №1155775 150
>>1155753
Спасибо, от души, пригласил бы тебя на чашку чая...
Причём, блин, пытался вот точно также, как ты, делать, но проебался со слайсом
Аноним 2018/03/14 19:52:22  №1155784 151
>>1155753
А как для массива такое сделать?
Ответы: >>1155789 >>1160479
Аноним 2018/03/14 20:01:21  №1155789 152
>>1155784
Циклами же, форычем каким-нибудь, или от 0 до длины масива
Ответы: >>1155792
Аноним 2018/03/14 20:12:43  №1155792 153
>>1155789
Без них никак? Просто мне цикл тут кажется костылём.
Ответы: >>1155796
Аноним 2018/03/14 20:32:50  №1155796 154
>>1155792
Для обработки массивов цикл не костыль, или поищи функцию-аналог php'шной array_walk(), я JS функции так хорошо не помню.
Ответы: >>1160480
Аноним 2018/03/14 20:41:30  №1155800 155
Интересный пост на тему ИБ https://m.habrahabr.ru/post/351114/

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

Но я хотел бы обратить внимание еще на один момент. Эти "гении" в качестве uid использовали md5-хеш от номера телефона. Да, md5 труднообратимая функция, но если мы знаем, что исходные данные состоят из 10 цифр, то мы можем перебором проверить все возможные номера телефонов. И потому нет смысла хешировать номера телефонов, паспортов, имена-фамилии, так как их всех ограниченное количество и вскрыть такой хеш можно за несколько секунд. Хеш от номера телефона эквивалентен самому номеру.
Ответы: >>1155801
Аноним 2018/03/14 20:44:29  №1155801 156
>>1155800
А двойной хэш? Понимаю, что по сути те же яйца, но все же?
Ответы: >>1155803
Аноним 2018/03/14 20:45:38  №1155803 157
>>1155801

То же самое. Эквивалентен самому номеру телефона. Ты по моему принцип не понял.
Аноним 2018/03/14 22:05:58  №1155843 158
15210543587930.png (24, 1197x672)
672x1197
Ваша шапка самая приятная поэтому спрошу сюда
оффтоп
Ребята спасайте, ебусь со схемой
Есть викторины, есть игроки, есть вопросы и у вопросов варианты ответов (пока можно не смотреть даже).
Как приебланить ответы игроков
Прикрепляю схему, там вроде всё понятно по замыслу
Спасайте братцы
Ответы: >>1155867 >>1155949
Аноним 2018/03/14 22:45:58  №1155867 159
>>1155843
ответ в себе содержит id, questionId, text в твоем случае.

Когда нужно будет заселектить ответы для конкретного вопроса, то будешь select from answers where question_id = 5 (выбрать все ответы на 5й вопрос) например делать, ну или как-то так.
Ответы: >>1155872
Аноним 2018/03/14 22:59:54  №1155872 160
>>1155867
а как он в таком случае связан с игроком?
Ответы: >>1155884
Аноним 2018/03/14 23:15:44  №1155884 161
>>1155872
А, сори, я подумал что речь о вариантах ответов на вопрос, а у тебя уже есть variants - которые я по сути и описал тебе.
У меня просто встречный вопрос - а зачем варианты игроков хранить в этой же базе? У тебя подсчет идет как-то после или что?

ну если прям надо то храни answerId, questionId, playerId, variantId

когда нужно будет узнать какой игрок что ответил на какой вопрос, то будешь у базы спрашивать select from Answer where questionId = 5 and playerId = 3
- узнаешь какой вариант ответа дал игрок с id 3 на вопрос с id 5


Ответы: >>1155889 >>1155890
Аноним 2018/03/14 23:21:08  №1155889 162
>>1155884
Да схема вообще канеш неудачная получилась, %отношение Variant можно пока что откинуть%
Рассматриваем случай, когда вопросы открытые, т.е. игрок сам пишет ответ на вопрос (textAnswer)
Ответы: >>1155890
Аноним 2018/03/14 23:22:21  №1155890 163
>>1155889
>>1155884
То есть в викторине есть вопросы, а игрок должен давать на них письменные ответы!
Ответы: >>1155898
Аноним 2018/03/14 23:40:56  №1155898 164
>>1155890
тогда таблица answers выглядеть должна как-то так:
answerId, questionId, playerId, answerText тогда делаешь и хранишь.
Аноним 2018/03/15 08:55:50  №1155949 165
>>1155843

1) почему отношение question - quiz это многие-ко-многим, вопросы можно использовать в нескольких викторинах?

2) Ты сделал связь игрок - викторина. Но что, если игрок играет в викторину 2 раза? Нужно сделать сущность сеанс игры и привязывать игрока к нему.

3) Надо сделать ответы.
Аноним 2018/03/15 09:06:19  №1155953 166
Подскажите, какой командой в ssh можно пробросить порт для такого случая
1. Есть удаленный сервер, на котором запущен веб-сервер. На него через вебхуки могут приходить запросы. Например на адрес server.url/test1.php приходит POST-данные.
2. Мне нужно чтобы эти запросы по ssh переправлялись на сервер на локалхосте, чтоб этот POST пришел на локальную машину на условный адрес localhost.url/ test2.php
Ответы: >>1160480
Аноним 2018/03/15 19:13:51  №1156215 167
Пока писал, сам себе ответил. Давайте не забывать, что в грамотном вопросе уже половина ответа.
Аноним 2018/03/15 23:29:42  №1156411 168
JS-тред утонул, поэтому спрошу тут. Есть какая-нибудь хорошая обёртка над localStorage? В общем нужна дб в браузере, чтобы после перезагрузки страницы данные сохранялись, был нормальный поиск и т.д.
Ответы: >>1156493 >>1156511
Аноним 2018/03/16 01:40:01  №1156480 169
Интересная статья про то, как база данных sqlite обеспечивает атомарность коммитов (то есть изменения либо вносятся в базу целиком, либо не вносятся вовсе) даже при внезапных отключениях питания. На англ, довольно непростая: https://sqlite.org/atomiccommit.html

Полезно прочесть тем, кто хочет понять, как реализуется атомарность коммитов. В многопользовательских СУБД вроде MySQL используется другая схема - MVCC https://phpclub.tech/search/?q=mvcc
Аноним 2018/03/16 02:15:24  №1156493 170
Аноним 2018/03/16 04:23:06  №1156511 171
>>1156411
>, был нормальный поиск и т.д.
indexedDB для чего придумали, по-твоему?
Аноним 2018/03/16 06:24:07  №1156523 172
Ответы: >>1156538
Аноним 2018/03/16 08:12:02  №1156538 173
>>1156523
Сишарп, жс, или пхп?
Ларавель в ж*пу, надо брать симфони или slim, если пхп.
Ответы: >>1156613
Аноним 2018/03/16 09:24:11  №1156552 174
>>1152878
>кошечки, так и для мышечки
гори в аду, тварь. надеюсь ты сдохнешь от спида
Ответы: >>1156581 >>1156800
Аноним 2018/03/16 10:45:34  №1156581 175
>>1156552
Зачем ты рвешься в приличном месте, биомусор?
Ответы: >>1156589
Аноним 2018/03/16 10:57:45  №1156589 176
>>1156581
в том и дело, что место приличное, а этот даун обащеться, как в своем гей-клубе
Ответы: >>1156646 >>1156648 >>1156800
Аноним 2018/03/16 11:29:04  №1156613 177
>>1156538
Почему? Я слышал другую инфу, мол ларавель самый лучший из этих трех.
Аноним 2018/03/16 11:39:39  №1156623 178
Как лучше отображать в верстке уже отсортированные иерархические комменты? Я сделал так, если коммент не является корневым, то я высчитываю глубину вложенности и ставлю пробел в зависимости от уровня. Верстку и фронтенд совсем не знаю. Как вообще по уму это можно сделать?
Ответы: >>1156631
Аноним 2018/03/16 11:50:30  №1156631 179
>>1156623

Есть 2 варианта:

1) вкладывать в разметке все дочерние комменты внутрь родительского, после чего просто поставить такому блоку padding-left 20px

<div class="comment">
тело родительского комментария
<div class="comment">..дочерние комментарии..</div>
<div class="comment">....</div>
<div class="comment">....</div>
</div>

2) плоская система, но для каждого комментария мы вычисляем и выставляем отступ

<div class="comment" style="padding-left: ...">...</div>
<div class="comment" style="padding-left: ...">...</div>
<div class="comment" style="padding-left: ...">...</div>
<div class="comment" style="padding-left: ...">...</div>

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

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

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



Ответы: >>1156635
Аноним 2018/03/16 12:07:52  №1156635 180
Аноним 2018/03/16 12:59:25  №1156646 181
>>1156589
>сто приличное, а этот даун
>мелкобуквенное безграмотное биотопливо продолжает рваться, из-за того, что кто-то на дваче написал что-то не так как он в своем маня-мирке себе представлял

Успокой меня и скажи, что тебе просто 16 лет.
Ответы: >>1156648
Аноним 2018/03/16 13:01:10  №1156648 182
Ответы: >>1156669
Аноним 2018/03/16 13:49:02  №1156669 183
Ответы: >>1156800 >>1156802
Аноним 2018/03/16 14:57:17  №1156705 184
Ребят, хочу себе сайдбар который будет полностью прижат к левому или правому краю экрана. Но в бутстрапе эти дурацкие отступы по бокам. Как такое реализовать ?
Ответы: >>1156710 >>1160480
Аноним 2018/03/16 15:01:16  №1156710 185
Ответы: >>1156800 >>1156802
Аноним 2018/03/16 16:08:39  №1156762 186
15212057197380.png (112, 1357x423)
423x1357
Аноны, где я проебался?
Так же например в БД есть слово Doodo и он его ищет только если я ввoжу do, если doo, то нихуя. Doodo соответственно тоже не видит.
Ответы: >>1156794 >>1156817 >>1160480
Аноним 2018/03/16 17:23:53  №1156794 187
>>1156762
>где я проебался?
В ДНК.
Ответы: >>1156800 >>1156802
Аноним 2018/03/16 17:31:19  №1156800 188
15212106799900.jpg (38, 604x322)
322x604
>>1156669
>>1156710
>>1156794
>>1156589
>>1156552
Малолетнему уебищу нассали в рот и теперь он будет МСТИТЬ ВСЕМУ ТРЕДУ РЯЯЯЯЯЯЯЯ НАСРУ В ОТВЕТ НА КАЖДЫЙ ПОСТ ПОКАЖУ ИМ ДААААААААА СОСАТЬ ГОВНО БАТЯ ПРИШЕЕЕЕЕЕЕЛ
Выпились, мусор, ты самое жалкое чмо их тех что сюда затетало)
Ответы: >>1156802
Аноним 2018/03/16 17:33:19  №1156802 189
Ответы: >>1156816
Аноним 2018/03/16 17:51:08  №1156816 190
>>1156802
Так я тебе и писал, зайчик.
Аноним 2018/03/16 17:52:21  №1156817 191
>>1156762
Должно же работать? Покажи, как выводишь результаты.
Аноним 2018/03/17 00:14:00  №1157032 192
ОП, задачка про список сдутентов не такая уж и простая для тех, кто делает вообще первый свой проект такого рода. Сугубо моё субъективное замечение - в требованиях к знаниям в ней не указано, что знание жабаскрипта настоятельно реквестед. Благо, я предварительно осилил онлайн-учебник Кантора почти в полном объёме и это здорово облегчило жизнь.
Ответы: >>1157043
Аноним 2018/03/17 00:42:26  №1157043 193
>>1157032

Где оно нужно? она полностью решается без JS, или я что-то не так понял? Там даже CSS сильно знать не требуется - все делается на стандартных классах бутстрапа. HTML, конечно, немного знать надо.
Ответы: >>1157053 >>1157060
Аноним 2018/03/17 01:06:26  №1157053 194
>>1157043
В задаче не было обязательного условия использовать бутстрап, а очень хотелось поскорее попробовать свои силы именно собственно в кодинге, так что я по-быстрому напейсал свою таблицу стилей попроще (сделал фон поприятнее, навигационную панельку, кнопочки посимпатичнее и переключатель страниц стилизовал, благо CSS как раз знаю достаточно неплохо, бо не пожлобился на платные уроки у htmlacademy). Думаю, как только окончательно доведу до ума двигло "сайта", натянуть на него другие стили не очень уж и большая проблема. JS я использовал для того, чтобы при сортировке по кликам на заголовках рядом с ними появлялись стрелочки вверх-вниз (в зависимости от порядка сортировки) и модификации ссылок на переключателе страниц. Например, при первой загрузке таблицы без сортировки ссылка на запрос второй страницы таблички у меня имеет вид main.php?from=10 (я их по 10 вывожу). А при клике на заголовок для сортировки ссылка на вторую страничку приобретала вид вроде main.php?from=10&sort=grade&desc=true, чтобы порядок сортировки не прерывался при переключении страниц. Я это делал именно жабаскриптом. Защиту от произвольных данных в адресной строке тоже предусмотрел, если вбить несуществующий параметр, просто ничего не произойдёт. Может быть это дико кривой костыль, но работает нормально.
Аноним 2018/03/17 01:19:49  №1157060 195
>>1157043
зы. Я понимаю, что это можно было бы сделать и на php, особенно модификацию ссылок внизу. Но, например, добавлять по клику на заголовке столбца стрелочку порядка сортировки рядом с ним, на JS объективно удобнее, разве нет?
Ответы: >>1157073
Аноним 2018/03/17 01:50:01  №1157073 196
>>1157060

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

list.php?sort=+name
list.php?sort=-name
list.php?sort=+points
list.php?sort=-points

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

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

Или ты сделал сортировку данных при клике яваскриптом внутри страницы? Это вряд ли будет корректно работать, так как при смене вида сортировки данные на странице меняются.

То есть я плохо понимаю, что именно ты сделал.

> Но, например, добавлять по клику на заголовке столбца стрелочку порядка сортировки рядом с ним, на JS объективно удобнее,

Так страница после этого (клика по заголовку) сразу перезагружается и твоя стрелочка пропадает. Или нет?
Ответы: >>1157075 >>1157090
Аноним 2018/03/17 01:54:11  №1157075 197
>>1157073
Он про то дерьмо, когда у тебя таблица без пагинации выведена и ты сортируешь её прямо в браузере с помощью js сделав заголовки кликабельными. Вангую что на собеседовании за такое сразу отправят в лес.

С другой стороны я бы посмотрел на реализацию когда у тебя полностью выведена вся таблица на страницу, но при этом разбита на удобно читаемые блоки и пагинация + полная сортировка реализована на JS что бы не перезагружать каждый раз страницу при попытках посортировать что-то или бегая по страничкам.
Ответы: >>1157090 >>1157100
Аноним 2018/03/17 02:52:22  №1157090 198
>>1157073
>>1157075
Не совсем. Страница загружается с сервера новая и табличку сортирует по нужным значениям именно сервер, а не скрипт. Скрипт выдирает из адресной строки параметры sort и desc, (я напейсал соответствующую функцию), ищет среди ссылок в заголовке с параметром name, совпадающим с параметром sort и в зависимости от значения параметра desc проставляет ей класс "asc" или "desc", которые в css через псевдокласс after приписывают после ссылки соответствующую стрелочку. Порядок сортировки desc скрипт тоже меняет в свойстве href заголовка напрямую, в зависимости от его предыдущего значения, которое он опять-таки выдирает из адресной строки. Если щелкаешь по другому заголовку, происходит то же самое, только предварительно этот же скрипт убирает стрелочку с предыдущего и выставляет ему desc в свойстве href обратно в false. Так что после загрузки стрелочки не пропадают, бо информация о том, где их ставить скрипт тащит из адресной строки.
У меня проблема в том, что в шаблоне я заголовки таблицы изначально жестко прописал и они загружаются as is и теперь приходится так изъёбываться. Да и модификация переключателя страниц реально бредовая получилось, я только теперь это понял. Он и так генерируется на сервере, и модифицировать его как-либо нужно было там. Просто делал это задание именно сейчас, почти всю ночь, у нас уже 6 час утра и голова не варила совершенно. Алсо, я всю неделю до этого почти 2 недели хуярил learn.javascript.ru, прошел его почти полностью и решил большую часть задач. Соответственно, жабаскриптом у меня забита голова и меня на нём явно подклинило. Сам знаю, что черезжопно все получилось, так что теперь займусь переделкой.

В любом случае, прошу не судить строго, мне еще до этих ваших собеседований как до Китая раком. Это из-за сайта Кантора всё в башке смешалось, наверное.
Ответы: >>1157093 >>1160480
Аноним 2018/03/17 02:59:27  №1157093 199
>>1157090
>Скрипт
Здесь имеется в виду именно джаваскрипт, конечно.
Аноним 2018/03/17 04:00:02  №1157100 200
>>1157075

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

Не стоит говорить, что "X - плохо". Лучше говорить, вариант X имеет такие достоинства/недостатки, а Y - такие и в данной ситуации лучше подходит X.

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


Аноним 2018/03/17 17:20:52  №1157426 201
Кто нибудь может подсказать как организовать систему личных сообщений?
Например, как в вк.
Я просто не могу разобраться какую БД создавать, с какими значениями.
И как потом грамотно извлечь эти значения, что бы пользователи видели сообщения собеседника, а не все сообщения которые в БД.
Ответы: >>1157572
Аноним 2018/03/17 20:24:56  №1157572 202
>>1157426
Делаешь например таблицу messages:

id - id сообщения
fromUserId - id юзера который отправил
toUserId - кому послали сообщение
readen - было ли прочитано
timestamp - время отправки

Ну вот как бы простейший вариант. когда надо подгрузить беседу, то просто:
SELECT from messages where fromUserId = 4 and toUserId = 6 ORDER BY timestamp.
Выплюнет тебе все сообщения между юзерами с id 4 и 6 например.

Во вьюхе опять же простейшим вариантом можешь выводить так как тут челику советовали: >>1154654
Только например свои сообщения юзер будет видеть справа, а сообщения собеседника слева, провеку изменишь банально не на чет/нечет, а свойId/собеседникаId
Ответы: >>1157628
Карасик 2018/03/17 21:36:17  №1157599 203
15213117774980.png (79, 1088x711)
711x1088
Анон, ебашу адовые сайты нет. Пишу вот тестовое задание со списком студентов. Нужно сделать вывод данных в таблицу. Я скопипастил кусок текста с таблицей, но не могу понять, что у меня должно быть вместо $result['message'].
Ответы: >>1157600 >>1157601 >>1160480
Карасик 2018/03/17 21:37:41  №1157600 204
>>1157599
Очевидно, что мой $result до этого и этот совпали случайно.
Аноним 2018/03/17 21:39:52  №1157601 205
15213119924810.png (201, 674x224)
224x674
>>1157599
Отклеился вывод массивов.
Аноним 2018/03/17 22:10:07  №1157628 206
>>1157572
Спасибо, буду пробовать. Я сам что-то типа такого пытался сделать, но получилось херово.
Ответы: >>1158218
Аноним 2018/03/18 00:39:31  №1157768 207
15213227715240.jpg (13, 228x251)
251x228
15213227715251.jpg (115, 1000x822)
822x1000
Передаю своё почтение ОПу данного треда. Ты прекрасный человек, и я счастлив, что обитаю на одном анонимном форуме с тобой. Добра тебе.

И вот тебе задания на проверку:
Строки:
http://codepad.org/Kt0oetj8
http://sandbox.onlinephpfunctions.com/code/252d024b81b93ce460c2319bfcb12091fd091a28
Функции:
http://sandbox.onlinephpfunctions.com/code/5e6756da07a7d8c2e49b3cfba688ea227af8a46f

Спасибо.
Ответы: >>1157802 >>1160481
Аноним 2018/03/18 01:13:01  №1157802 208
>>1157768
да, Оп святой. был бы бабой отсосал бы ему
Ответы: >>1158151
Аноним 2018/03/18 01:20:18  №1157813 209
Чего не так с пыхой в 2018(2017)? Почему веб-дев до сих пор 'пытаются' унижать? Неужели мы действительно макаки? Грустно от этого становится. Поддержите меня что-ли, а то кажется, что вокруг все то и делают что пилят проги для ракет и марсоходов, а мы так, всего лишь сайтостроители. Мотивация к обучению пропадает, ещё и нагнетают со своим "веб скоро умрёт куда-дах-дах, работ не будет, спрос снизиться, вас и так много, ко-ко-ко".
Ответы: >>1157822 >>1158420 >>1160482
Аноним 2018/03/18 01:28:23  №1157822 210
>>1157813
На, почитай последнюю кулстори, как простые сайтостроители, ввиду своей некомпетентности, работы спустярукава, и не инженерного подхода к разработке (когда все как попало, без какого-либо цикла, разграничения прав, деплоя), вот так вот на ровном месте доставили убытки в 1 миллион рублей за день своему клиенту.

https://habrahabr.ru/post/351396/

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


Дело не в сфере,а в человеке.
Но ты почему-то стремишься за ярлычками, а значит глупец априори.
Ответы: >>1157898 >>1157941
Аноним 2018/03/18 06:09:25  №1157898 211
>>1157822
Так я понял что 1с говно на живом примере
Ответы: >>1157899
Аноним 2018/03/18 06:16:06  №1157899 212
>>1157898
Ну это выводы уровня - вася написал кривой софт, значит винда говно.
Ответы: >>1157900
Аноним 2018/03/18 06:19:15  №1157900 213
Ответы: >>1157941
Аноним 2018/03/18 09:11:35  №1157941 214
>>1157822
100% заказчик сайта хотел "подешевше и получше" вот и получил говна кусок, которое еще и ковыряли макаки безрукие.
Скупой платит дваждыа то и больше.
>>1157900
Если у тебя не получается забить отверткой гвоздь, это не значит, что отвертка говно.
Для всего свой инструмент.
Ответы: >>1160482
Аноним 2018/03/18 10:44:41  №1158002 215
Ответы: >>1158047 >>1160482
Аноним 2018/03/18 11:46:10  №1158047 216
Ответы: >>1160482
Аноним 2018/03/18 13:49:26  №1158151 217
Аноним 2018/03/18 14:46:21  №1158218 218
>>1157628
А что плохо у тебя получалось? Я тут зашел перечитал своё сообщение и подумал, что довольно слабое решение получается.

Во первых
>SELECT from messages where fromUserId = 4 and toUserId = 6 ORDER BY timestamp.

даст сообщения только от 1 юзера к другому, а полноценную беседу будет подсосать нужно как-то так
SELECT from messages where (fromUserId = 4 and toUserId = 6) OR (fromUserId = 6 and toUserId = 4) ORDER BY timestamp.
- то есть все сообщения от 4 к 6 или от 6 к 4 нам подходят (нужны для нормального отображения диалога)

Во вторых опять же много условий и я бы подумал, что по мере заполнения таблицы всё начнет дико тормозить со временем. Представь у тебя в одной таблице милион сообщений уже, и нужно вот так sql-ю бегать по всем и смотреть что бы 3 условия сочетались.

Поэтому можно попробовать каждой беседе назначить свой id
Например можно изобразить что-то типа столбца chatId - и в него складывать некую хитрую пару вида юзерСМеньшимИд_юзерСБольшимИД.
На первый взгляд наверное выглядит костыльно и вообще дублированием информации, но по факту такое простое решение во первых тебе наверное много мозгоебли сбережет.

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

(еще забыл в таблицу сам текст сообщения записывать)

id______chatId_______fromUserId______toUserId_____text___________readen_________timestamp
1_______4_6_________4______________6___________'ку'____________1____________1521371398
2_______4_6_________6______________4___________'суп'___________1____________1521371428
3_______4_6_________6______________4___________'как_дела?'_____1____________1521371488
4_______4_6_________4______________6___________'норм'__________0____________1521371573
5_______4_6_________4______________6___________'а_у_тебя?'_____0____________1521371592


Заметь что и когда юзер-4 шлет сообщения, то chatId будет выглядеть как 4-6, и когда юзер-6 шлет сообщения, то такое же chatId

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


Делаешь простую функцию которая будет тебе генерировать всегда одинаковый chatId для двух юзеров.
$chatId = returnChatId(4,6); //в $chatId ляжет строго 4_6
$chatId = returnChatId(6,4); //в $chatId ляжет строго 4_6

и подставляешь эти chatId в селект

Допустим юзер-4 хочет зайти в диалог с юзер-6 - в базу изи летит запрос
Select from messages where chatId = $chatId ORDER BY timestamp;

И всё у тебя будет охуенно и быстро летать имхо.

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

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

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


Сам 1 раз нечто подобное лишь писал и то давно и на старте работы, ща уже и не помню как там что было.
Ответы: >>1158349 >>1160482
Аноним 2018/03/18 17:36:35  №1158349 219
>>1158218
chatId нормальная тема, жаль сам не додумался. А так уже сделал сообщения эти, все работает. Вот только одна проблема, как отображать новые значения в таблице, без обновления странницы ?
Ответы: >>1158379 >>1158407
Аноним 2018/03/18 18:09:27  №1158379 220
Аноним 2018/03/18 18:40:08  №1158407 221
>>1158349
>Как отображать новые значения в таблице, без обновления странницы?

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

Простейшим дырявым и незащищенным решением мне сейчас видится такое:
У тебя когда ты грузишь вьюху, вообще нет никаких запросов в базу и селектов - тупо отдаешь html-заготовочку.
Далее в этой заготовочке у тебя лежит js, который сразу начинает работать и по аяксу долбится в нужный контроллер, от которого получает всю беседу в виде json-массива, и после этого уже её отрисовывает во вьюхе.
А потом он периодически спрашивает опять же твой контроллер о том, а сколько там в такой-то chatId-беседе сообщений всего?

Посылаешь например контроллеру chatID - собственно ид беседы по которой он спросит базу и messages.length - количество сообщений в текущей беседе. В ответ либо получаешь что всё так и осталось по прежнему, либо получаешь обновленную беседу целиком, или недостающие сообщения - тут уже как сам решишь действовать.

Ну и яваскриптом дорисовываешь новый html с новыми сообщениями под это дело.

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

Во первых сейчас не вспомню как защищать всё это дело, что бы хитрозадые челики изучив твой js не смогли слать тебе запросы посмотреть чужие беседы, ну точнее пусть шлют, но в ответ получают ровно нихуя. Далее еще какие-то проблемы с потерянными сообщениями были - но это наверное от недостатка знаний в js'e (они и сейчас околонулевые). Ну и что-то еще
Ответы: >>1158412
Аноним 2018/03/18 18:44:14  №1158412 222
>>1158407
ох блин, с JS не хочу связывать, сам его не знаю. Чтож. Видимо пока, что никак мне это не сделать.
Ответы: >>1158414
Аноним 2018/03/18 18:45:01  №1158414 223
>>1158412
связываться быстрофикс
Аноним 2018/03/18 18:52:08  №1158420 224
>>1157813
У каждого языка есть своя ниша. Я не программист и сейчас работаю в сфере, где почти все решения действуют на пыхе.

Как пример.
Задавал тут вопрос по сервису, написанному одним человеком и имеющим с месячной подписки по моим подсчетам не менее 400к/мес.
>>1154650

Аноним 2018/03/18 19:06:54  №1158433 225
Аноны, ПРОШУ ПОМОЩИ БЛЯТЬ!!! Вот есть поле ввода логина, куда я уже вводил некоторые данные. При нажатии на поле логина появляется выпадающий список того, что я уже вводил раннее. Так вот, есть какая-нибудь php команда для удаления этих данных? А то заебало уже видеть при вводе логина всякую поебень в стиле "asd, sdjakf, govno, hui"(я так проверял работоспособность сайте)
Аноним 2018/03/18 19:12:27  №1158437 226
>>1158433
эти данные хранятся в браузере, ctrl + shift + delete > Данные для автозаполнения
Ответы: >>1158438
Аноним 2018/03/18 19:17:03  №1158438 227
>>1158437
это я знаю, но хотелось бы не руками сидеть и убирать это говно, а одной командой это сделать. И можно ли вообще сделать так, чтобы логин вообще там не сохранялся
Ответы: >>1158444
Аноним 2018/03/18 19:23:35  №1158444 228
>>1158438
Пыха же на сервере работает, как она может изменять данные в нашем браузере?
Как вариант тестировать формы в браузерном режиме инкогнито.
Аноним 2018/03/18 19:50:33  №1158472 229
Подскажите по поводу путей для require/include - как правильно включать файлы? Как суметь в переносимость и независимость?
Постоянно использовать относительные пути вида __DIR__ . 'relative_path'?
Ответы: >>1158585
Аноним 2018/03/18 20:31:35  №1158517 230
15213942961230.png (51, 613x579)
579x613
Аноним 2018/03/18 20:34:31  №1158521 231
>>1158433
атрибут autocomplete поля поставь в off
Аноним 2018/03/18 20:38:49  №1158526 232
15213947292900.jpg (370, 604x424)
424x604
Ответы: >>1158548
Аноним 2018/03/18 20:39:23  №1158527 233
>>1158433
например <input type="name" autocomplete="off">
Ответы: >>1158528 >>1159574
Аноним 2018/03/18 20:42:02  №1158528 234
Аноним 2018/03/18 20:58:19  №1158545 235
>>1158433
И еще хром имеет блядскую привычку если рядом находится текстовое поле и парольное - он вставляет логин-пасс даже если autocomplete="off". Чтобы он этого не делал, нужно полю ввода пароля поставить атрибут autocomplete="new-password", а не off
Аноним 2018/03/18 21:07:09  №1158548 236
15213964295520.png (140, 791x386)
386x791
>>1158526
Ты ещё посмотри на то, какие этот пидор цены заламывает. Лендинг за 60 тыщ. Я ебал :D
Аноним 2018/03/18 21:21:05  №1158559 237
15213972656860.jpg (29, 720x720)
720x720
Аноним 2018/03/18 21:22:54  №1158560 238
>>1158548
В этой классификации SPA проходит как лендинг?
Аноним 2018/03/18 21:24:35  №1158561 239
>>1158517
>>1158548
>
Я не ошибаюсь, тут же требования на фулстек Сеньора-помидора?
Ответы: >>1158585
Аноним 2018/03/18 22:07:10  №1158585 240
>>1158472
Да, обычно всегда используют require_once . __DIR__ . '/path/'
Вот пример в Laravel: https://github.com/laravel/laravel/blob/master/public/index.php#L24+L38

>>1155160
https://htmlacademy.ru/

>>1158517
Может в перезвоним-тред с этим? Что ещё ты хочешь от веб-студии.

>>1158561
Нет, это обычные требования на джуна нормального, там же написано "умеешь делать джойн или даже подзапрос". Ты если в этом треде сделаешь пару задач на бек и фронт из шапки, то будешь знать больше, чем написано в той вакансии.
Ответы: >>1158590
Аноним 2018/03/18 22:22:06  №1158590 241
>>1158585
ОП это ты? Я уже узнаю тебя по почерку.
У меня глупенький вопрос, но все же спрошу.
Стоит ли параллельно ламповому учебнику, смотреть какой-либо курс? Например курсы PHP при МГТУ им. Баумана.
Ответы: >>1158602
Аноним 2018/03/18 22:45:32  №1158602 242
>>1158590
Я не оп, но насколько я знаю, при бауманке работает центр "Специалист", который и ебашит платные видеогайды. Так вот гайд Питона от них - это просто запредельный пиздец. Если пых тоже читает Перлин, то явно не стОит. Но если не он, то тогда уже к ОПу вопрос, насколько эти курсы хороши.
Ответы: >>1158623
Аноним 2018/03/18 23:28:26  №1158623 243
>>1158602
Спасибо за мнение, анон.

Понаскачивал разных курсов, думаю на какой стул сесть помимо учебника:
1. [Profit] А. Степанцев 1-3 уровень
2. Специалист пхп7 от бауманки, преподает некий Попов (везде его хвалят, прослушал первый урок % охуительных историй зашкаливает)
3. [ntschool] Стань PHP специалистом
4. [loftschool] Комплексное обучение разработке на PHP (думаю на нем остановиться, у автора годный канал на ютубе https://www.youtube.com/user/loftblog)

Могу дать ссылки на скачивание курсов, если кому нужно.
Ответы: >>1158626
Аноним 2018/03/18 23:34:08  №1158626 244
>>1158623
Я за профит. Там все как то приличней.
Аноним 2018/03/19 01:04:47  №1158651 245
Насколько удачно решение генерировать превьюху изображения на стороне клиента жс-ом в задаче про файлообменник? Или лучше все таки при загрузке, если файл является картинкой, делать его превьюху и сохранять на сервере?
Ответы: >>1158656 >>1160483
Аноним 2018/03/19 01:15:03  №1158654 246
Сап, изучал фронт-енд и уперстся в потолок знания английского языка. Такой вопрос, получится ли освоить пхп и найти работу, без инглыша?
Я понимаю, что разработчику он мастхев нужен, но насколько знаю бэк-енд не настолько динамичная сфера, в плане внедрения новых технологий и все нужные материалы уже переведены? Или нет?
Аноним 2018/03/19 01:24:40  №1158656 247
>>1158651
На клиенте можешь генерировать, чтобы показать клиенту, при загрузке, лишний раз не гоняя данные на сервер. Но при получении файла на сервере, генерируй превьюху там. Потому что если ты будешь получать превьюху от клиента, ничто не помешает ему подсунуть не настоящую превьюху.
Аноним 2018/03/19 10:48:16  №1158778 248
>>1158654
Или нет. Освоить и найти то получится, но в потолочек все равно упрешься. Проще поднажать на английский, чем пробовать ссать против этого ветра.
Аноним 2018/03/19 12:59:15  №1158843 249
>>1158654
Тут либо английский, либо PHP - 1С Bitrix
Аноним 2018/03/19 13:40:09  №1158857 250
>>1158654
Английский язык в прогерских учебниках сильно упрощён по сравнению с публицистическим и разговорным. Меньше слов, меньше оборотов речи. Школьного курса для старта более чем достаточно. Недельку посидишь, копипастя непонятные обороты в гуглопереводчик, а дальше знакомых фраз будет больше и в переводчик заглядывать уже почти не будешь, по себе знаю.
Аноним 2018/03/19 13:44:20  №1158858 251
Пачаны, можно ли составить такой SQL запрос?

SELECT * FROM messages WHERE chatid LIKE '1_2' (и что бы он не SELECTтил одинаковые значения chatid)
Ответы: >>1158859
Аноним 2018/03/19 13:46:21  №1158859 252
>>1158858
я объебался чутка
SELECT * FROM messages WHERE chatid LIKE '%2%' (и что бы он не SELECTтил одинаковые значения chatid)
Вот так более верно, но суть не в этом.
Ответы: >>1158861 >>1159007 >>1160483
Аноним 2018/03/19 13:48:16  №1158861 253
Ответы: >>1158969
Аноним 2018/03/19 16:35:16  №1158969 254
15214665167050.png (26, 798x383)
383x798
>>1158861
Да, подходит. Но надо, что бы выводил всю строку, а не только столбец
Ответы: >>1158992
Аноним 2018/03/19 16:43:23  №1158980 255
>>1152267 (OP)
Реально ли двигаться по шапке только со смартфона? На анальной работке на рабочем компе нихуя нельзя, а делать нехуй.
Аноним 2018/03/19 17:07:48  №1158992 256
15214684688900.png (6, 279x138)
138x279
>>1158969
Ну ты же 1 столбец селектишь, замени в вопросе chatid на астериск
Ответы: >>1158994
Аноним 2018/03/19 17:12:17  №1158994 257
15214687374660.png (54, 733x556)
556x733
>>1158992
Тогда весь смысл DISTINCT теряться.
Ответы: >>1159003 >>1159352
Аноним 2018/03/19 17:13:25  №1158997 258
Анон молю помоги, ибо я уже заебался. Браузерхром не реагирует на изменения в css, часто приходится заходить в девтулз и сбрасывать кэш.
Это что -то с апачем не то? Как пофиксить?
Ответы: >>1159000 >>1159005 >>1160483
Аноним 2018/03/19 17:15:57  №1159000 259
>>1158997
ctrl + f5 - перезагрузка станицы с очисткой кэша
Аноним 2018/03/19 17:26:33  №1159003 260
15214695938590.png (163, 649x361)
361x649
>>1158994
Ты хочешь наверное заселектить по последнему сообщению в каждой беседе? Что бы их в общую диалоговую вьюху выводить?

Спроси в соседнем mysql треде, там наверное быстро ответят, вангую что тебе нужно использовать group_by в запросе, но моих знаний не хватает сейчас на помощь :(
Ответы: >>1159011
Аноним 2018/03/19 17:28:26  №1159005 261
>>1158997
Тебе надо в html, там где ты подгружаешь css прописывать новую версию при изменении css
<link rel="stylesheet" href="style.css?v=1.1">
тогда браузер увидит что нужно подгружать теперь новую версию, и та что лежит у него в кеше уже не актуальна - и всё будет ок
Ответы: >>1159035 >>1160483
Аноним 2018/03/19 17:30:38  №1159007 262
Аноним 2018/03/19 17:38:11  №1159011 263
15214702916550.png (26, 798x383)
383x798
>>1159003
Хочу заселектить строчки с уникальным значение столбца chatid
Ответы: >>1159015 >>1159036
Аноним 2018/03/19 17:45:30  №1159015 264
>>1159011
Но они же не уникальны.
Аноним 2018/03/19 18:22:00  №1159035 265
>>1159005
Да так надо после каждого закрытия браузера делать или перезагрузки системы. У других такой хуйни не происходит...
Аноним 2018/03/19 18:22:51  №1159036 266
>>1159011
Ну тебя уже в принципе ткнули. Как ты хочешь селектить уникально chatId в подобной таблице:

1_______4_6_________4______________6___________'ку'____________1____________1521371398
2_______4_6_________6______________4___________'суп'___________1____________1521371428
3_______4_6_________6______________4___________'как_дела?'_____1____________1521371488
4_______4_6_________4______________6___________'норм'__________0____________1521371573
5_______4_6_________4______________6___________'а_у_тебя?'_____0____________1521371592
6_______2_3_________2______________3___________'hello'__________0____________1521371573
7_______2_3_________3______________2___________'sup nigga'______0____________1521371592


Какие ответы ты желаешь получить?
Ответы: >>1159044 >>1159339
Аноним 2018/03/19 18:24:18  №1159038 267
>>1152267 (OP)
Разве тот-же Руби на рельсах не быстрее ПхП ? Да и кодить легче, Элегантный код вся хуйня
Аноним 2018/03/19 18:32:56  №1159044 268
>>1159036
Все, сделал. Спасибо
Ответы: >>1159152
Аноним 2018/03/19 18:40:53  №1159049 269
Учу слим. Поставил их компонент csrf защиты, сделал все по инструкции, но почему-то иногда при отправке формы происходит проблема: "Failed CSRF check". С чем это может быть связано? Причем иногда все нормально - отправляю форму и прохожу проверку, а иногда нет.
Ответы: >>1160484
Аноним 2018/03/19 19:50:06  №1159099 270
15214782063220.png (151, 1213x547)
547x1213
15214782063231.png (98, 1366x650)
650x1366
Анон, как правильно приклеить картинку к правому краю?
Ответы: >>1160484
Аноним 2018/03/19 20:38:11  №1159151 271
>>1152267 (OP)
АНАНАСЫ, решил вкатиться и начать с верстки, но уже на простом хэдере меня начало тошнить от ксс. Если я буду только бустрапом пользоваться это нормально или считается зашкваром? Работодатели не обоссут? И подкиньте, пожалуйста, материалов по техникам верстки. Именно техникам, а не самой верстке.
Ответы: >>1159153 >>1160484
Аноним 2018/03/19 20:40:50  №1159152 272
>>1159044
Как сделал? Покажи решение, мне же тоже хочется понять.
Ответы: >>1159307
Аноним 2018/03/19 20:42:09  №1159153 273
>>1159151
Если ты делаешь админку или чисто приложение с какой-нибудь статистикой или прочим, то всё ок. ебашь бутстрап хоть везде, если же ты пытаешься что-то продать или делаешь сайт для клиента, то ясен хер на фасад нельзя бутстрап вываливать.
Ответы: >>1159218
Аноним 2018/03/19 21:07:08  №1159166 274
Аноны, удалив что-то из таблицы в бд следующее добавление будет переступать через пропущенный id. Я и дописывал вручную и удалял подряд несколько, а он сука все равно упрямо продолжает инкрементировать id. Что делать если я захочу без пробелов таблу?
Ответы: >>1159178 >>1160486
Аноним 2018/03/19 21:22:12  №1159178 275
>>1159166
Сбросить счетчик автоинкремента, очевидно же.
Ответы: >>1159203 >>1159204
Аноним 2018/03/19 22:07:14  №1159203 276
>>1159178
Галочку убрать и потом опять включить? Не робит чет
Аноним 2018/03/19 22:08:19  №1159204 277
Аноним 2018/03/19 22:27:51  №1159218 278
>>1159153
Чет не понял. Я думал бутстрап вообще мастхев.
Ответы: >>1159288 >>1159301 >>1160484
Аноним 2018/03/19 23:43:26  №1159288 279
>>1159218
Такой же мастхев как и вордпрес или джумла для пых-разработчика. Т.е. для человека не умеющего в верстку или в проекте, где внешний вид не настолько важен (энтерпрайз какой-нибудь), то мастхев, хотя кроме бутстрапа есть еще туча всякой другой шушеры.
Ответы: >>1159293 >>1159301
Аноним 2018/03/19 23:46:54  №1159293 280
>>1159288
Я лично для админок всяких юзаю материал дизайн от гугла. Намного приятней осточертевшего до коликов бутстрапа. Там правда нет внятных лэйаутов и гриды чуть-чуть странные, но я не представляю каким овощем надо быть, чтобы за один вечер не разобраться с флексбоксом или каким-нибудь инлайн блоком.
Ответы: >>1159523 >>1160486
Аноним 2018/03/19 23:57:53  №1159301 281
>>1159218
Он мастхэв для бэкэндеров, которые должны уметь изобразить админку вместо дефолтной серой вырвиглазной html'e-хуйни без изучения css+js в довесок. Там просто набор красиво оформленных заготовок (кнопочки, формочки, прогресс бары и т.д.)

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

Аноним 2018/03/20 00:04:18  №1159307 282
>>1159152
бля, я боюсь вы охуете от решения, скажите, что я поехавший.
Ответы: >>1159314
Аноним 2018/03/20 00:08:22  №1159314 283
>>1159307
Даже если у тебя там тупо селект всей таблицы а потом с помощью пхп выбор последних сообщений каждой беседы, то ниче такого в принципе для начала. Главное пометить в коде что требуется рефакторинг и пиздовать дальше делать.
Ответы: >>1159340 >>1159345
Аноним 2018/03/20 01:13:26  №1159339 284
15214976065280.png (26, 798x383)
383x798
>>1159036
Ну вообще, мне нужно было, что бы выбиралось уникальные значения chatid. Это получилось сделать. Но проблема, в том, что остальные строчки не стелились.
Ответы: >>1159342
Аноним 2018/03/20 01:14:27  №1159340 285
>>1159314
Я плохо работаю с массивами.
Аноним 2018/03/20 01:15:17  №1159342 286
Аноним 2018/03/20 01:23:16  №1159345 287
>>1159314
Я думаю так сделать:

Отправлять sql запрос "SELECT id,chatid FROM messages ORDER BY date DESC".
По средствам PHP и массива найти уникальные значения chatid.
И уже будет известно сколько диалогов у пользователя, последнее сообщение в переписке.

Это реально сделать с помощью массива ? Я так понимаю еще и цикл нужно делать?
Ответы: >>1159348 >>1159352
Аноним 2018/03/20 02:05:28  №1159348 288
>>1159345
SELECT CHATID, COUNT(ID), FROM MAKER GROUP BY CHATID - вернет два столбца, в первомбудет УНИКАЛЬНЫЙ chatID, во втором - количество сообщений, которые с ним связаны.

Анон, может тебе сначала sql-tutorial.ru покурить? Отличный интерактивный учебник по SQL с песочницей и огромным количеством задач разного уровня сложности.
Ответы: >>1159349 >>1159350
Аноним 2018/03/20 02:09:37  №1159349 289
>>1159348
>FROM MAKER
FROM MESSAGE
самофикс
Аноним 2018/03/20 02:16:39  №1159350 290
Аноним 2018/03/20 02:49:55  №1159352 291
>>1159345
>
Отправлять sql запрос "SELECT id,chatid FROM messages ORDER BY date DESC"
>id,chatid
нахуя толоько эти 2 столбца? Что бы потом по id еще раз селекты ебашить дополнительными запросами?
селекти все столбцы по chatid, что бы получить все сообщения которые написаны нашему юзеру или нашим юзером как тут делал >>1158994


дальше получаешь условный массив всех сообщений юзеров, из которых с помощю пхп потом выхуяриваешь последнее сообщение в каждой беседе вот таким вот простейшим способом.
https://ideone.com/PUeu3x
Вот накидал тебе в упрощенном виде. Если ты не будешь хуйней страдать, то ты можешь сразу всё что хочешь за 1 селект во вьюху выводить.
Ответы: >>1160486
Аноним 2018/03/20 06:13:06  №1159382 292
Сап, анонче. Хотелось бы услышать мнения.
Если бы вы писали что-то вроде семантического рабочего стола\семантической оболочки ОС, то какую бы СУБД выбрали в качестве хранилища метаинформации? Считай это все семантические связи между типа объектов, аналитическая информация, статистика, и прочее. НО. Это десктоп. То есть объемы, а самое главное, нагрузка не серверная - клиенты лишь сами сервисы\демоны одного пользователя\может пары девайсов, с учетом шаринга информации между ними. При этом есть потребность хранить\отслеживать отношения (следовательно можно задуматься о рдбмс), в тоже время данные - это в сущности объекты ссылающиеся друг на друга и храняшие друг друга (можно задуматься о графовых бд), есть так же потребность в атомарности записей, а потом приходится сомневать насчет носкюл-решений, ведь придется городить ее поверх.

Есть кому что сказать?
Ответы: >>1167983
Аноним 2018/03/20 10:26:58  №1159445 293
>>1158517
так это мухосрань, там в принципе наверное для джуна такие запралаты нормальны. плюс стек не битрикс
Аноним 2018/03/20 13:13:08  №1159523 294
>>1159293
я тот самый овощь. захотел сделать хэдер. сделал div с display: flex, в нем список ul и в каждом элементе li по ссылке a. захотел растянуть ссылку на всю высоту предка (div), но при этом чтобы текст был по центру. ушло дохуя времени, но решения лучше чем поставить padding сверху и снизу в пикселях не нашел. а высота хэдера у меня в процентах, получается, что на другом разрешении ссылка будет уже не по центру.
в общем, верстануть что-нибудь легко, но сделать так, чтобы это выглядело одинаково на всех разрешениях Я НЕ ЗНАЮ КАК, ПОМОГИТЕ ПОЖАЛУЙСТА, МЕНЯ УЖЕ НАХУЙ ТОШНИТ ОТ ВСЕГО ЭТОГО.
ну и еще, тот самый хэдер, у которого высота в процентах не меняет свои размеры при зуме (а ссылки меняют).
Ответы: >>1159540 >>1159571 >>1167983
Аноним 2018/03/20 13:35:16  №1159540 295
Ответы: >>1159553
Аноним 2018/03/20 13:54:05  №1159553 296
Аноним 2018/03/20 14:26:03  №1159571 297
>>1159523
А чем тебе display: table не пригодился?
Ответы: >>1159583
Аноним 2018/03/20 14:27:10  №1159573 298
Аноны, что делать когда после запроса $_GET отваливаются стили?
Ответы: >>1167983
Аноним 2018/03/20 14:27:56  №1159574 299
>>1158527
>autocomplete="off"
Я тот самый анон, что задавал этот вопрос. Спасибо за помощь, друг! Добра тебе с:
Аноним 2018/03/20 14:33:10  №1159577 300
15215455908140.jpg (108, 800x450)
450x800
Анончасы-амигосы, объясните на пальцах что такое stripslashes и htmlspecialchars? Мануал по пыхе написан, как мне кажется, для Анатолия Вассермана.
Ответы: >>1159579 >>1167985
Аноним 2018/03/20 14:37:01  №1159579 301
>>1159577
Пиздец конечно вопрос. Они убирают символы, с помощью которых можно передать инъекцию
Ответы: >>1167986
Аноним 2018/03/20 14:45:56  №1159583 302
Аноним 2018/03/20 15:15:29  №1159593 303
Есть ли какие-нибудь видосы по пыхе ?
Шоб воды было минимально
Ответы: >>1159608
Аноним 2018/03/20 15:43:16  №1159608 304
>>1159593
есть один хохол который делает подробно простой проект на пыхе вроде сайта регистрации, но он азов не поясняет вообще
Аноним 2018/03/20 16:22:29  №1159639 305
Аноны! Вот ещё очень важынй вопрос, как спрятать в Paginatore значения посередине?
Типа как тут? https://htmlacademy.ru/courses/55/run/7
Ответы: >>1159802 >>1159812 >>1173387
Аноним 2018/03/20 22:30:26  №1159802 306
>>1159639
Жабаскриптом же. Только не совсем понятно как этот пагинатор работает. Т.е., если даже текущее значение 99, то между ним и 100 все равно должен быть спан с многоточием или он переносится левее, если между текущим и конечным больше нет промежуточных элементов?
Ответы: >>1173387
Аноним 2018/03/20 22:42:11  №1159812 307
>>1159639
У тебя ж есть какой-то шаблон, собирающий страницу, которая отдается пользователю. Вот и добавь туда пару условий.
Аноним 2018/03/20 22:46:45  №1159816 308
Полгода учил пхп и немного жс. Во фронтенде ничего не понимаю, поэтому мне интересно, зачем нужны жс фреймворки? Как я понял, без них spa не сделать. А вот для таких мелких задач, которые на чистом жс-е легко делаются типа подргузки и добавления постов/комментов, всяких анимаций, всплывающих окон их тоже целесообразно использовать, даже если сайт не слишком интерактивный?
Ответы: >>1159902 >>1159948 >>1173387
Аноним 2018/03/21 02:24:08  №1159901 309
Аноны, я ньюфаг.

Есть 2 формы, у обеих метод POST. Обе ведут на одну и ту же страницу edit.php. Эта страница должна обрабатывать поля с обеих форм, но, мне нужно, чтобы при переходе с первой формы edit.php выполнялся одним способ, а со второй, другим. Методом GET я могу это сделать просто подставляя в action форм что-то типа "edit.php?type=1" и "edit.php?type=2" соответственно. А как это сделать при использовании POST?
Ответы: >>1159914 >>1173387
Аноним 2018/03/21 02:24:53  №1159902 310
>>1159816
>зачем нужны жс фреймворки?
Затем же, зачем они вообще нужны.
Аноним 2018/03/21 04:02:54  №1159914 311
Кто шарит, поясните можно сразу в поле объекта засунуть другой класс при описании? Я понимаю что можно объявить
public $a = [];
или
public $a = '';
А вот:
public $a = new A();
уже нельзя никак?
Только через конструктор получается надо туда засовывать в эту $a уже?
Попробовал изобразить что изначально спросил и такой фиал:
https://ideone.com/Lm6Yur

Попробовал через конструктор складывать - тоже самое:
https://ideone.com/lusCNo

В чем ошибки или где дыра в моем понимании?




>>1159901
в формах заведи как вариант
по аналогии с твоим гет-запросом в первой:
<input type="hidden" name="type" value="1">
а во второй:
<input type="hidden" name="type" value="2">

в пхп коде просто пишешь:
https://ideone.com/CpeVcz
Ответы: >>1159916 >>1159945 >>1173387
Аноним 2018/03/21 04:18:23  №1159916 312
>>1159914
>в формах заведи как вариант

Думал об этом, но мне показалось, что это уж совсем макакинг.
Ответы: >>1159925
Аноним 2018/03/21 05:09:38  №1159925 313
>>1159916
Где блядь там макакинг? Максимально просто и изящьно всё. Или ты думаешь есть другая блядь скрытая магия в таких задачах, которая доступна опытным челикам?
Делай как сказали и не беси меня сука, то что у тебя вообще существует некий edit.php - уже само по себе макакинг, даже не спрашивай почему, вырастешь - поймешь.
Ответы: >>1159945
Аноним 2018/03/21 06:24:54  №1159927 314
>>1152267 (OP)
Оцените, пожалуйста, мое решение задачи из учебника ОПа (тема "Условия и игра в кубики")
https://ideone.com/VAsuaE
Оформление верное?
Особенно интересует, верное ли оформление условия в этой строке:
> } elseif (($humanAll == $compAll) || ($humanDice1 == $humanDice2 && $compDice1 == $compDice2)) {
Надо ли было $humanDice1 == $humanDice2 и $compDice1 == $compDice2 заключать в еще одни дополнительные круглые скобки? при том, что и так все работает? На сайте у ОПа в примере этой задачи (который надо дописать) заключены.

Еще вопрос, зачем в примере этой задачи на сайте ОПа в 12 строке
> echo "У анона выпало {$anonDice1} и {$anonDice2}...
переменные спрятаны в фигурные скобки?
Ответы: >>1159942 >>1159943 >>1173388
Аноним 2018/03/21 08:45:32  №1159942 315
>>1159927
>Надо ли было $humanDice1 == $humanDice2 и $compDice1 == $compDice2 заключать в еще одни дополнительные круглые скобки?

Можно и не заключать. И - это логическое умножение, оно и так выполнится раньше, чем логическое сложение ИЛИ. Лишние скобочки просто нагляднее показывают порядок, я и сам их ставлю.
Ответы: >>1160037
Аноним 2018/03/21 08:51:04  №1159943 316
>>1159927
>Еще вопрос, зачем в примере этой задачи на сайте ОПа в 12 строке переменные спрятаны в фигурные скобки?

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

Любая скалярная переменная, элемент массива или свойство объекта, отображаемое в строку, может быть представлена в строке этим синтаксисом. Просто запишите выражение так же, как и вне строки, а затем заключите его в { и } . Поскольку { не может быть экранирован, этот синтаксис будет распознаваться только когда $ следует непосредственно за {. Используйте {\$, чтобы напечатать {$.

http://php.net/manual/ru/language.types.string.php
Ответы: >>1160033
Аноним 2018/03/21 09:02:29  №1159945 317
>>1159914
>>1159925
Ой посмотрите на него: "не беси меня сука..". Ты хоть без ошибок печатать научись для начала, constuct-ор.
Ответы: >>1160021
Аноним 2018/03/21 09:11:19  №1159948 318
>>1159816
Если они это позволяют, и ты разбираешься, и файлы получаются удобночитаемые и небольшие, то почему бы и нет? jQuery это тоже фреймворк. Согласись, проще использовать его, чем городить самому (уже сделано до тебя, компактнее код, в едином узнаваемом стиле и т.п.). плюс, разбираясь в фреймворках ты перед стартом можешь выбрать тот, который позволит твой "не очень интерактивный" сайт превратить легко и быстро в пупер-интерактивный.
Аноним 2018/03/21 09:20:05  №1159951 319
Ответы: >>1159953 >>1159957 >>1173388
Аноним 2018/03/21 09:28:36  №1159953 320
Ответы: >>1159957 >>1160517
Аноним 2018/03/21 09:57:45  №1159957 321
>>1159953
>>1159951
Кстати, насколько очешуенный дизайн там: только текст и чуть-чуть разметки, ничего лишнего, глаз радуется читать.
Ответы: >>1160502
Аноним 2018/03/21 10:30:48  №1159965 322
Я вот php занялся недавно, раньше сидел на js и java. Мне сразу показалось, что пхп (да вообще любой язык) учить лучше на реальных задачах. Взять тот же Laravel (как раз ковыряюсь в нем). Можно просто смотреть туториалы на ютубе и что-то там кодить, можно сразу попробовать что-нибудь замутить, будь-то сайт или что посложнее. И фиг с ним, что времени в 10 раз больше уйдет с перечитыванием мануала, зато разберешься.
Ну и я подумал, кто учит Лару или другой какой-то фреймворк и хочет попрактиковаться с реальными задачами, можете написать в телеграм @ruslan_peresy. Может совместно что-нибудь замутим))))
Ответы: >>1173388
Аноним 2018/03/21 13:45:22  №1160021 323
>>1159945
а разве edit.php не укладывается в схему MVC?
Ответы: >>1173388
Аноним 2018/03/21 14:10:56  №1160033 324
>>1159943
Правильно понял, что фигурные скобки нужно использовать тогда, когда в строку нужно вставить не только просто значение переменной, но и сразу произвести с этой переменной какую-то операцию в этой строке? Или еще что-то?
Ответы: >>1160330
Аноним 2018/03/21 14:16:06  №1160037 325
>>1159942
Спасибо.
Только еще вопрос, чтобы точно разобраться.
Без заключения в эти круглые скобки не может произойти так, что указанное условие будет выполнено таким образом, что $humanDice2 && $compDice1 равно $humanDice1 равно $compDice2?
Я правильно понял, что && имеет приоритет над || ? А == приоритетнее, чем &&?
Ответы: >>1160327 >>1160328 >>1173389
Аноним 2018/03/21 14:45:16  №1160072 326
https://ideone.com/TY1uG4

Условия описаны ведь криво? Поясните как проще это сделать ^^
Ответы: >>1160082 >>1173389
Аноним 2018/03/21 14:55:14  №1160076 327
Зачем использовать >exit(); при использовании оператора >if? Работает и без него же условие. Что я упускаю?
Ответы: >>1160085
Аноним 2018/03/21 15:07:56  №1160078 328
В каких случаях будет необходимо написать маркер ?> в конце скрипта?
Только начал изучение, сразу хочу понимать, сори за нубский вопрос.
Ответы: >>1160084 >>1173389
Аноним 2018/03/21 15:21:47  №1160082 329
Ответы: >>1160102 >>1160104
Аноним 2018/03/21 15:25:00  №1160084 330
>>1160078
>В каких случаях будет необходимо написать маркер ?> в конце скрипта?
когда php код вставляется в html, а когда файл полностью на php то маркер не нужон
Аноним 2018/03/21 15:27:28  №1160085 331
>>1160076
В этой задачке >exit(); нужен чтобы досрочно остановить выполнение скрипта при выпадении одинаковых чисел.
Ответы: >>1160094
le aigle 2018/03/21 15:29:50  №1160087 332
Насколько профитно работать в странах, в которых интернет не особо развитии и популеризован?
Ответы: >>1160090 >>1173389
Аноним 2018/03/21 15:35:21  №1160090 333
>>1160087
>
Не развит интернет > Нет айтишных компаний > Нет, компаний - нет работы
Аноним 2018/03/21 15:36:13  №1160094 334
15216357740760.png (24, 534x278)
278x534
Ответы: >>1160119
Аноним 2018/03/21 15:59:34  №1160102 335
>>1160082
Но у тебя же будет ошибка, если суммы у компа и у анона будут одинаковые (типа (4,3) и (3,4))
Ответы: >>1160103
Аноним 2018/03/21 16:04:20  №1160103 336
>>1160102
Это не имеет особого значения, вероятность что числа так выпадут минимальна. Не стоит так заморачиваться на простых задачках, главное чтобы работало.
Ответы: >>1160106
Аноним 2018/03/21 16:05:00  №1160104 337
15216375007590.png (11, 789x191)
191x789
Аноним 2018/03/21 16:06:14  №1160106 338
>>1160103
Лул, как не имеет то? Мне кажется это уровня, вытереть жопу, а потом обнаружить чиркаш на трусах, главное жопу вытер.
Ответы: >>1160114
Аноним 2018/03/21 16:08:26  №1160107 339
Я не понимаю, чем на практике MVC отличается от шаблонизации. Кто может пояснить в чем разница?
Ответы: >>1173389
Аноним 2018/03/21 16:13:33  №1160114 340
>>1160106
Время не ждет, пока ты будешь до победного блеска натирать жопу, другие уже перейдут к изучению ООП (у некоторых из них будет чиркаш на трусах).
Аноним 2018/03/21 16:23:02  №1160119 341
>>1160094
А зеленый скрипт тут у тебя не будет считаться как другой, независимый от первого?
Потому что если да, то >exit(); не повлияет на выполнение второго зеленого?
Ответы: >>1160122
Аноним 2018/03/21 16:30:52  №1160122 342
>>1160119
Они независимы друг от друга. При этом, если в первом присутствует >exit(); то скрипт останавливается и не выполняется далее. Все понятно?
http://php.net/manual/ru/function.exit.php
Аноним 2018/03/21 17:37:35  №1160157 343
Может быть вы в курсе, почему запуск демона из рслокал/кронтабов/сервисов может не работать, если руками та же самая команда на запуск - работает? Пути в норме, -e убрал.
Ответы: >>1160294
Аноним 2018/03/21 20:36:25  №1160278 344
Вкатываюсь в ваш тредик. Сегодня был на собеседовании. Мне сообщили что я со своим js + nodejs+ mobgobd не нужен . Охщи(
Объясните мне на пальцах отличия организации классов в пхп от жс?
Ответы: >>1160286 >>1173390
Аноним 2018/03/21 20:48:26  №1160286 345
>>1160278
Типы вместо ноды они хотел пэхэпэшника нанять?
Аноним 2018/03/21 21:11:15  №1160294 346
>>1160157
Путь полный пропиши /usr/bin/emacs
Аноним 2018/03/21 21:38:19  №1160311 347
>>1152267 (OP)
сап веб-макакены . Собираюсь написать блог для поднятия скилла. Хочу сделать его полноценным веб-приложением . правильно ли я понимаю данную штуку:

есть клиентская (VIEW) часть для нее я выбрал библиотеку React . состояние приложения я буду хранить в store Redux .

для серверной части :
нужен роутинг , для этого буду юзать react-router
база данных - MySQL . для взаимодействия с БД использовать планирую PHP .

Правильно ли я понимаю взаимодействие между клиентской и серверной частью ? не намудил ли с выбором инструментов ?
Ответы: >>1160401 >>1173390
Аноним 2018/03/21 21:50:08  №1160319 348
ОП, аноны, держитесь!
Буду фигачить тест хаб. Вот только выхи наступят.
Ответы: >>1160375
Аноним 2018/03/21 22:01:38  №1160327 349
>>1160037
Не совсем. Сравнение - это предикат, т.е. утверждение, которое может быть истинным или ложным. То есть, операция $humanAll == $compAll - это именно предикат. А "И", "ИЛИ", "НЕ" - это уже логические операции, порождающая новое утверждение на основе этих предикатов. Это дискретная математика 1 курса. Грубо говоря, представь себе выражение a + b c ; Здесь предикаты - это переменные, которые могут иметь любое значение, а логические операции - это математические операции. Так в и булевой логике. Отличие только в том, что здесь переменные-предикаты могут иметь только 2 значения, 1 - истина и 0 - ложь. Вообще, если ты не знаешь дискретку, то представь себе вместо || - знак ''+", вместо && - знак "", а вместо выражений вроде $humanAll == $compAll - единичку (истина) или нолик (ложь). Будет у тебя выражение 1 + 1 * 1. И попробуй потом вместо произвольных единичек поставить нолики и посмотреть, какое значение даст выражение с учетом приоритета операций. Я хз как проще объяснить, правда. Скачай книгу Хаггарти "Дискретная математика для программистов", там довольно доступно это изложено.

Ответы: >>1160328 >>1161308 >>1173389
Аноним 2018/03/21 22:02:54  №1160328 350
>>1160327
>>1160037
звездочки повываливались, ну ты понел.
Аноним 2018/03/21 22:10:54  №1160330 351
>>1160033
Выражения со вложенностью больше одной без скобок просто не вставить в строку. Например, в строке "Место жительства: user->address->city". Без фигурных скобок вокруг user->address->city пых подумает, что "user->address" - переменная для вставки, а -">city" - просто следующий за ней текст.
Аноним 2018/03/21 22:55:39  №1160369 352
Пожалуйста скажите что не так с ними?
они форматируют криво.
https://ideone.com/mVLcIX
Ответы: >>1173390
Аноним 2018/03/21 23:02:40  №1160375 353
>>1160319
шел бы лучше на собеседование
Ответы: >>1160524
Аноним 2018/03/21 23:30:30  №1160401 354
>>1160311
Может быть и так, как ты написал.
Вопрос, скорее, к тебе: понимаешь ли ты, как будут работать эти слои.
Аноним 2018/03/22 00:53:56  №1160437 355
15216692370700.png (132, 1080x1920)
1920x1080
Сап!
Нужна небольшая помощь, как сделать чтобы выводилось уже умноженное число?
Ответы: >>1160439 >>1160462
Аноним 2018/03/22 01:07:36  №1160439 356
Ответы: >>1160441
Аноним 2018/03/22 01:08:30  №1160441 357
Аноним 2018/03/22 02:45:02  №1160460 358
Сап, можно ли так делать?
https://ideone.com/M1Bxrb
Я так понимаю что это плохой тон, и надо бы по хорошему сразу передавать булеву переменную. Но как сделать это в цикле - я вообще не могу понять. Или и так нормально?
Ответы: >>1160503
Аноним 2018/03/22 02:57:39  №1160462 359
>>1160437
Ты выводишь не число, а букву.
правильно так
echo "$x=$x*$x \n";
Аноним 2018/03/22 03:36:00  №1160475 360
15216789602690.png (46, 636x380)
380x636
ДВАЧ СРОЧНО ВЫРУЧАЙ, ПХП ОПЯТЬ ВЫТВОРЯЕТ СТРАННУЮ ХУЙНЮ

есть скрипт генератор паролей 32 символа с использованием rand и словаря. в цикле генерирую по 500 паролей за выполнение и пишу в базу.
1024 пароля записало, ок, и УГАДАЙТЕ ШТО, следующие 1024 пароля такие же как и предыдущие. ДОБРО ПОЖАЛОВАТЬ, НУФАГИ, ВЫ УБЬЕТЕ ЛЮДЕЙ СВОИМ КОДОМ, ТУТ ВСЕ РАБОТАЕТ НЕ КАК ДОЛЖНО.

мимо все на локалке 5.6 ксампп, в хедерах кеш выключен,страница запрашивается по уникальному get
Ответы: >>1160485 >>1160491
Аноним 2018/03/22 03:38:35  №1160477 361
>>1155012

По умолчанию числа никак не округляются и выводятся как есть. Но тут надо учесть, что дробные числа в PHP (как и в большинстве языков программирования) хранятся в формате IEEE754, это числа с плавающей запятой в двоичном виде: https://habrahabr.ru/post/112953/

Из этого вытекает 2 особенности:

- хранится только определенное число знаков и следующие за ними знаки теряются. Условно говоря, 123456789123.456789 может сохраниться как 123456789000
- некоторые дроби принципиально нельзя представить в виде конечной дроби в двоичной форме. Ну например, 1/3 - это бесконечная дробь в десятичной форме, а 1/5 - конечная. Но в двоичной форме 1/5 тоже становится бесконечной дробью

Числа можно округлять явно - с помощью функций round, ceil, floor. Также, их можно выводить с определенным числом знаков, используя printf() и спецификацию формата вроде %.3f - выводить с 3 знаками после запятой.

>>1155021

Для начала, а ты знаешь, что такое POST-запрос? Когда ты в браузере заполняешь и отправляешь форму, у которой указан атрибут method="POST", браузер берет данные из нее и формирует HTTP POST запрос, который отправляет на сервер. Данные, введенные в форму, помещаются в тело этого запроса.

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

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

- параметры из query string (то, что идет после знака вопроса) в URL помещаются в массив $_GET. Ну например, при разборе URL script.php?a=1 PHP поместит в $_GET элемент с ключом 'a' и значением '1'.
- если пришел POST-запрос, то параметры из его тела помещаются в массив $_POST
- наконец, некоторые настройки веб-сервера и заголовки пришедшего запроса помещаются в массив $_SERVER, они описаны в мануале http://php.net/manual/en/reserved.variables.server.php

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

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

>>1155036

"Суперглобальная переменная" значит, что она доступна в любом месте кода. Обычные глобальные переменные доступны только снаружи функций, а локальные - только внутри. Почитай мануал http://php.net/manual/ru/language.variables.scope.php

> Хмхмхмхм, то есть, $_GET и $_POST это своего рода контейнер, куда АВТОМАТОМ попадают все данные исходя из их метода передачи.

Перед запуском твоего скрипта PHP разбирает пришедший HTTP запрос и помещает данные из него в эти переменные.

> То есть, в $_GET попадают данные, переданные методом GET,

Нет, в $_GET попадают данные из query string в URL, независимо от метода. Он просто назван неудачно.

> и такая же хурма с $_POST?

$_POST заполняется только при использовании HTTP метода POST, да.
Аноним 2018/03/22 03:38:57  №1160478 362
>>1155042

1) Не ставь пробелы у атрибутов, пиши слитно name="..."
2) Атрибут method пишется у формы, а не у поля
3) Избегай br, его используют те, кто CSS не знает

> То есть, в это поле с именем login я ввожу имя ВАСЯНХХХ228, и это имя записывается в глобальный массив?

Ты пропустил важные шаги. Тебе надо почитать про протокол HTTP. Происходит такое:

- ты заполняешь форму и жмешь кнопку отправки
- браузер формирует HTTP POST запрос, помещая в него введенные в форму данные
- запрос отправляется на сервер
- на сервере PHP извлекает данные формы в $_POST

И да, то, что ты введешь в поле, окажется в итоге в $_POST.

В случае, если у формы стоит method="GET", то браузер ведет себя по другому. Он берет URL из атрибута action, и добавляет в него после знака вопроса данные формы, закодированные процентным кодировнием. Получается URL вроде script.php?x=1&y=2&z=%20%$20%30trd . И затем формирует GET запрос на сервер.

> GET и POST мы можем указывать только в атрибуте формы,
Потому что method указывается для всей формы сразу.

>>1155127

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

>>1155132

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

>>1155160

В ОП посте кстати есть курс задач на HTML, и там же какие-то ссылочки есть.
Аноним 2018/03/22 03:39:14  №1160479 363
>>1155179

У тебя тут ошибка:

> $arrName[] = '{$randomText}';

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

Далее, ты пишешь

> $name = implode($randomText);
Но в implode надо указывать массив, значения элементов которого ты хочешь склеить в строку. Ты наверно написал в скобках не ту переменную.

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

>>1155359

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

>>1155741

В принципе, по JS тоже можно задавать вопросы.

>>1155604

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

>>1155784

А зачем тебе в массиве заменять первую букву? Ее можно заменить когда ты составишь предложение.
Аноним 2018/03/22 03:39:38  №1160480 364
>>1155796

В ES5 появился .map()

>>1155953

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

Команды для этого легко гуглятся, там 2 варианта: открыть порт на удаленном сервере и пробрасывать соединения на него к себе, или наоборот.

>>1156705

1) не использовать бутстрап
2) почитать исходный код или мануал бутстрапа. Там есть вариант сетки, который занимает 100% ширины без полей

>>1156762

Скорее всего, дело в регистре букв. В MySQL по крайней мере для каждой таблицы и поля задан collation - правило сравнения строк на равенство (а также правило сортировки). Если у тебя у колонки регистрозависимый collation, то поиск по do не найдет "DO".

- http://itif.ru/kodirovka-mysql-kak-izbezhat-oshibok/
- https://dev.mysql.com/doc/refman/5.7/en/charset-general.html

>>1157090

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

Яваскрипт можно использовать, например, для сортировки данных внутри страницы или для сортировки с обновлением данных аяксом, а у тебя это просто костыль из-за слабого знания PHP.

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

>>1157599

Ну не надо копипастить код бездумно. Давай разбираться построчно.

> $connection = mysqli_connect(...) - что помешщается в переменную $connection ? (ответ в мануале)
> $result = mysqli_query(...) - что помещается в $result, значение какого типа? (ответ в мануале)

Может быть тогда тебе будет понятнее, как что выводить.

Ну и я сразу скажу, что тебе надо почитать комментарии к задаче про студентов, у тебя сейчас очень много чего нарушено, например, нет разделения на логику и шаблон, нет защиты от XSS. Не обрабатываются и не выводятся ошибки работы с базой данных.
Аноним 2018/03/22 03:40:02  №1160481 365
>>1157768

> ${"word".$j}
Вот тут уже проблемы. Не надо использовать "переменные переменные" вроде $$name. В такой ситуации надо использовать массив, то есть сделать массив

$sets[1] = ...
$sets[2] = ...

И писать $sets[$j].

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

Далее, у тебя там 2 вложенных цикла, тоже сложно их понять:

для (i от 4 до 5) {
генерируем и выводим строку;
генерируем слово для последней строки;
}

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

для (i от 1 до 2) {
генерируем и выводим строку;
}

генерируем и выводим последнюю строку;

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

палиндром

> [^а-я]
ё не входит в диапазон а-я и его надо указать отдельно.

Вообще, если ты захочешь написать "любой символ, кроме буквы любого алфавита", то тебе стоит почитать про Юникодные свойства символов: http://php.net/manual/ru/regexp.reference.unicode.php Так как вручную ты замучаешься перечислять все диапазоны символов.

> intdiv(mb_strlen($text), 2)
Можно просто floor($x / 2)

> for($halfLength = intdiv(mb_strlen($text), 2), $i = 0;
Отсюда лучше вынести вверх вычисление $halfLength, чтобы шапка цикла была короче и читабельнее. Не надо тесниться и засовывать в одну строку много действий.

> goto end;
Надо использовать break. Он гораздо понятнее тут.

функции

Вообще, тут проще было бы без цикла и массива, сравни сам:

$result[] = calculateCredit('Bank1', 30000, 200, 5);
$result[] = calculateCredit('Bank2', 35000, 300, 10);
...

> function calcDebt($bankName, $percent, $servicePayment, $openPayment) {
Не очень понятно, как на расчет кредита влияет название банка. Хотя я не считаю это ошибкой.

В остальном, решено верно.

> if($creditBalance >= $monthlyPayment) {
> $paymentTotal += $monthlyPayment;
Здесь вместо if можно использовать функции min/max.
Аноним 2018/03/22 03:40:20  №1160482 366
>>1157813

Большинство разработчиков пилят только деньги инвесторов, если тебя это успокоит.

>>1157941

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

> Скупой платит дважды
А нескупой трижды.

>>1158002

$result = 0; можно было не писать,а так все верно.

>>1158047

> $balance = $balance + $balance $percent;
$balance += ... или $balance = ....

Решено верно. В условии цикла можно было как раз прописать $balance >= 1000000.

>>1158218

> SELECT from messages where (fromUserId = 4 and toUserId = 6) OR (fromUserId = 6 and toUserId = 4) ORDER BY timestamp.
OR не ложится на индексы

> Представь у тебя в одной таблице милион сообщений уже, и нужно вот так sql-ю бегать по всем и смотреть что бы 3 условия сочетались.
Нужны индексы: https://ruhighload.com/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D1%8B+%D0%B2+mysql

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

> Например можно изобразить что-то типа столбца chatId - и в него складывать некую хитрую пару вида юзерСМеньшимИд_юзерСБольшимИД.
Не надо так делать - это нарушает приницп нормализации (атомарность значений в ячейках).

То есть идея завести chatId неплохая, но городить там строки не стоит - выгоднее использовать либо число, либо пару колонок и индекс по ним.
Аноним 2018/03/22 03:41:15  №1160483 367
>>1158517

> Пост-процессоры
Горите в аду.

> ECMAScript6
Горите в аду, как же достали сайты, которые ломаются в браузере 2-летней давности

Вот что меня жутко раздражает - "фронтент-специалисты" осваивают "пост-процессоры", а вот освоить искусство правильно разбивать CSS на файлы, верстать независимыми блоками, не городить в less/scss лестницы стилей - они не могут.

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

>>1158548

Делай лендинги за 70 000.

>>1158651

Какая цель? Показать пользователю файл, который он выбрал для загрузки? Тогда вполне можно.

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

>>1158654

Также для привыкания к техническому англ. можно читать news.ycombinator.com

>>1158859

Это жутко неэффективно так как требует полный обход таблицы.

>>1158997

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

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

>>1159005

Проще разобраться с кеширующими заголовками.
Ответы: >>1160979
Аноним 2018/03/22 03:41:36  №1160484 368
>>1159049

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

Мне кстати их защита не нравится, она очень переусложненная. Проще использовать многоразовый токен в куке или просто проверку Referer/Origin.

>>1159099

Какую? У тебя их несколько. но обычно для этого подходят float, или position absolute в зависимости от ситуации.

Какой кошмарный код.

Зачем ты везде ставишь overflow? Прочитал в какой-то статье от не разбирающегося в CSS человека? overflow обрезает выходящие за предел блока части, например, длинные слова.

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

>>1159151

Ты не можешь нормально пользоваться бутстрапом, не зная CSS. Бросай эти глупости, бери мои задачи на CSS из ОП поста и решай.

>>1159218

Бутстрап хорошо подходит для стандартный сине-белых сайтов. Если у тебя нестандартный дизайн, то не подходит.
Аноним 2018/03/22 03:42:25  №1160485 369
>>1160475
тобиш rand просто берет 32768 цифр и все время их беребирает мол рандомные, нате
Ответы: >>1160489
Аноним 2018/03/22 03:42:36  №1160486 370
>>1159166

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

>>1159293

Я сталкивался с материал дизайн в админке Google Analytics, господи, как же это ужасно. Все огромное, рассчитано на огромные мониторы, и тормозит как будто там 3д игра запущена. И что меня больше всего раздражает, так это дизайн от андроида. Он хорошо смотрится на смартфоне, но ужасно на ноутбуке.

> один вечер не разобраться с флексбоксом
Ты серьезно? Я наверно час листал спецификацию и забил в итоге: https://www.w3.org/TR/css-flexbox-1/ - ты ее всю за один вечер освоил? А ты учел, что там еще есть баги в реализации? А как твой флексбокс будет выглядеть в неподдерживающих браузерах?

>>1159352

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

Аноним 2018/03/22 03:44:17  №1160487 371
15216794575640.png (46, 636x380)
380x636
ало блять, предупреждаю

ДВАЧ СРОЧНО ВЫРУЧАЙ, ПХП ОПЯТЬ ВЫТВОРЯЕТ СТРАННУЮ ХУЙНЮ

есть скрипт генератор паролей 32 символа с использованием rand и словаря. в цикле генерирую по 500 паролей за выполнение и пишу в базу.
1024 пароля записало, ок, и УГАДАЙТЕ ШТО, следующие 1024 пароля такие же как и предыдущие. ДОБРО ПОЖАЛОВАТЬ, НУФАГИ, ВЫ УБЬЕТЕ ЛЮДЕЙ СВОИМ КОДОМ, ТУТ ВСЕ РАБОТАЕТ НЕ КАК ДОЛЖНО.

тобиш rand просто берет 32768 цифр и все время их беребирает мол рандомные, нате

мимо все на локалке 5.6 ксампп, в хедерах кеш выключен,страница запрашивается по уникальному get
Ответы: >>1160488 >>1160491 >>1160492
Аноним 2018/03/22 03:45:17  №1160488 372
>>1160487
ну ссука щас возьму microtime и последнюю цифру как рандомную заюзаю ссука
Ответы: >>1160490
Аноним 2018/03/22 03:45:31  №1160489 373
>>1160485

rand использует линейный конгруэнтный генератор: https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D0%B3%D1%80%D1%83%D1%8D%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4

mt_rand использует вихрь мерсенна: https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%85%D1%80%D1%8C_%D0%9C%D0%B5%D1%80%D1%81%D0%B5%D0%BD%D0%BD%D0%B0

random_int/random_bytes берет данные из /dev/random. Их туда кладет ОС, собирая энтропию из случайных событий вроде времени прихода пакетов по сети.

Чем надежнее метод, тем медленнее он генерирует числа.

Также, существуют аппаратные ГСЧ.
Ответы: >>1160494
Аноним 2018/03/22 03:46:15  №1160490 374
>>1160488

Код покажи, есть подозрение что это могут быть твои кривые руки.
Ответы: >>1160493
Аноним 2018/03/22 03:48:17  №1160491 375
Аноним 2018/03/22 03:49:05  №1160492 376
>>1160487
пацаны бля mt_rand спас ахуеная вещь спасибо
Аноним 2018/03/22 03:49:47  №1160493 377
>>1160490
ты долбоеб я 5 лет уже хуярю коды, просто функция rand реально полная хуйня
Ответы: >>1160495
Аноним 2018/03/22 03:50:23  №1160494 378
>>1160489
mt_rand написано в 4 раза быстрее rand на пхп.нет
Аноним 2018/03/22 03:52:57  №1160495 379
>>1160493
>Код покажи
>ты долбоеб я 5 лет уже хуярю коды,
Зачем ты такой грубый?
Ответы: >>1160497
Аноним 2018/03/22 03:53:48  №1160497 380
Аноним 2018/03/22 05:17:30  №1160502 381
>>1159957
Теку от таких дизайнов. Не то, что современное, вроде 9000 свистелок и перделок, а на деле с простой задачей "ПОКАЖИ ТЕКСТ И ДАЙ ПОЧИТАТЬ" - не справляются.
Аноним 2018/03/22 05:25:07  №1160503 382
>>1160460
Не понял куда ты хочешь передавать переменную. Так то нормально но лучше все условия перевернуть и continue у тебя тут вообще не нужен
https://ideone.com/ovUzfA
Ответы: >>1160505 >>1160507
Аноним 2018/03/22 05:31:06  №1160505 383
>>1160503
Отдавать как результат работы функции. Просто непонятно можно ли при этом использовать переменную, или лучше сразу ставить
return true;
Просто в последнем случае я не понимаю как это делать в цикле. Поэтому у меня костыль с переменной.
Ответы: >>1160508
Аноним 2018/03/22 05:51:22  №1160507 384
>>1160503
>continue у тебя тут вообще не нужен
Это задание онлайн школы. Без него проверку не прозодило O_o;
Аноним 2018/03/22 06:14:33  №1160508 385
>>1160505
Короче это не костыль, такая переменная называется флаг и по другому без ебли ты не сделаешь
Ответы: >>1160515
Аноним 2018/03/22 06:56:37  №1160515 386
Аноним 2018/03/22 07:03:28  №1160517 387
15216914087170.jpg (160, 773x595)
595x773
>>1159953
Чот история притянутая за уши. И код явно неадекватный.
За такое в 2000 году даже чел из майкросфта нехило так по шапке получил (даже где-то журнал со статьёй валяется). А на практике такая вёрстка случалась только когда тётя Срака страничку в microsoft word 1997 верстала и постила её. В основном все клепали стиль для таблицы и применяли его. Никто не пилил стили для каждого тега каждой ячейки таблицы. Это во первых глупо, во вторых долго, в третьих весит овер дофига, в четрёртых область применения -1 ячейка.
Ответы: >>1173388
Аноним 2018/03/22 07:57:20  №1160520 388
Приветствую. Хочу удаленную работу с навыком полученным через самообучение. Навык должен расти вместе с опытом.
Прошу объяснить без категоричных высказываний - туда ли я зашел?
Если мне придется работать не удаленно определенное время для стажа - я готов, не критично. Важна первоначальная цель.
Ответы: >>1160523 >>1160531 >>1160541
Аноним 2018/03/22 08:13:47  №1160523 389
>>1160520
>Прошу объяснить без категоричных высказываний - туда ли я зашел?
Нам тебя на работу устроить? Или что ты хочешь от PHP треда?
Ответы: >>1160527
Аноним 2018/03/22 08:16:31  №1160524 390
Аноним 2018/03/22 08:37:46  №1160527 391
>>1160523
Пользуясь шапкой я получу в перспективе возможность работать удаленно плюс дальнейшее развитие навыка?
Я нудный и мне трудно конвертировать мысли в текст, бывает.
Ответы: >>1160529 >>1160530
Аноним 2018/03/22 08:39:27  №1160528 392
Котаны, стоит ли создавать разметку HTML&CSS если пока не знаешь PHP? Хочу по быстрому сделать интернет магазин на Drupal, потом по мере изучения PHP буду его улучшать, а потом переведу на собственный сервак на Linux.

Так стоит ли игра свеч?

Беру квалификацию Red Hat пока и параллельно учу раковины, C и все что связано с шлинуксом. Если будут советы то прошу закинуть их сюда.
Ответы: >>1160543 >>1173390
Аноним 2018/03/22 08:40:15  №1160529 393
>>1160527
Конечно. В позапрошлом треде отписывались с десяток анонов которые на работу устроились благодаря обучению.
Ответы: >>1160532
Аноним 2018/03/22 08:44:56  №1160530 394
>>1160527
нет. мы тут все по приколу сидим. как хобби это у нас.
тебе в университет, высшее образование получать, потом по распределению.
Ответы: >>1160539
Аноним 2018/03/22 08:45:32  №1160531 395
>>1160520
Универсального вопроса на твой ответ нет, как говорил мне учитель математики Пока ты сидел печатал эту кучу текста, ты мог решить уже 100 конвертации из 0x в 0
Ответы: >>1160534 >>1160539
Аноним 2018/03/22 08:47:15  №1160532 396
>>1160529
Последнее: актуальность через n лет есть? Насколько я понял с набором знаний из шапки можно более плотно заняться JS, например. Если будет нужно, разумеется.
Буду отписываться здесь, чтоб не потерять мотивацию.
Ответы: >>1160533 >>1160535
Аноним 2018/03/22 08:48:17  №1160533 397
Ответы: >>1160539
Аноним 2018/03/22 08:49:08  №1160534 398
>>1160531
Через 1,5 года все это будет не актуально. не трать время. иди обучайся чему-нибудь другому, например шитью или кузнечному делу
Ответы: >>1160535 >>1160546 >>1160551
Аноним 2018/03/22 08:49:28  №1160535 399
Ответы: >>1160539
Аноним 2018/03/22 08:59:45  №1160539 400
>>1160530
>>1160533
>>1160535
Что-то посты по мнениям отличаются чуть более, чем полностью. Получается ты нетерпеливая желчная выскочка, желаю тебе зла, впрочем это взаимно.
>>1160531
Это правильно. У меня есть время подумать, вот и задаю общие вопросы. Почему тред не в /web, кстати?
Ответы: >>1160540 >>1160548
Аноним 2018/03/22 09:02:50  №1160540 401
>>1160539
Не превращайте тред в чатик. Не отвечайте на толстоту. Лучше идите код писать.
Ответы: >>1160550
Аноним 2018/03/22 09:04:03  №1160541 402
>>1160520
Не трать время на пхп и бэкэнд. это стезя девствеников и чуханов.
вкатывайся в JS
вот ссылка тебе сюда. не благодари
https://2ch.hk/pr/res/1157660.html
Аноним 2018/03/22 09:06:03  №1160543 403
>>1160528
Подскажите, кто знаком с schema? Она актуальна?
В WhatWG пишут, что использование schema улучшает поисковые способности.

Пишу под своим постом
Ответы: >>1173391
Аноним 2018/03/22 09:10:11  №1160546 404
Аноним 2018/03/22 09:12:21  №1160548 405
>>1160539
Потому что /web/ это /b/ только в другом виде.
Аноним 2018/03/22 09:14:38  №1160550 406
>>1160540
Пришел какой-то залетный хуесос, который ни дня не учился и ни сделал ни одной задачи и сходу начинает спрашивать про работу и перспективы.
Ответы: >>1160552
Аноним 2018/03/22 09:15:09  №1160551 407
>>1160534
Я это с 2007 слышу. Самый смак был как раз в 2007, когда всё на C++ собирались переписать, Потом поспели джависты, потом Рубисты, потом питонисты, Потом приехал GO, а сейчас в моде node.js
При этом я как получал основной доход от PHP, так и получаю. А все эти говнофорсы улетают раз в 2 года в помойку.
Ответы: >>1160636 >>1173391
Аноним 2018/03/22 09:17:51  №1160552 408
Аноним 2018/03/22 13:01:39  №1160636 409
>>1160551
Поддерживаю. Ебусь на php больше 10 лет. Постоянно изучаю что-то новое, но как был весь доход с PHP так и есть, остальное поиграться. Наверное лучше бы довел владение PHP до уровня Кришны.
Аноним 2018/03/22 15:51:26  №1160735 410
>>1152495
Почему-то все думают, что сложно. Другое дело - что заёбывает делать одно и то же
Аноним 2018/03/22 16:03:58  №1160744 411
>>1155113
> printf("%dx%d=%d\n", $x, $x, $x * $x);
Oche наглядно
Ответы: >>1173391
Аноним 2018/03/22 16:08:20  №1160750 412
>>1155156
> но к синтаксису PHP только привыкание идет туго
Чё там привыкать. Всё как во всех си-подобных языках. Только что function, -> вместо . (хотя в c++ есть и ->), строки склеиваются точкой, $ в названиях переменных и типы параметров функций декларируются своеобразно. Ну и всё вроди. Я после после паскаля и бейсика за день привык к синтаксису.
Аноним 2018/03/22 16:18:00  №1160760 413
>>1155200
> macOS
Заебёшься фиксить конфликты homebrew, macports и приблуд, которые ставит XCode (если будешь ставить XCode, конечно). Многое придётся конпелировать, а не ставить apt-get'ом. Не рекомендую. macOS - конечно модно хотя хайп уже не тот, но для похапе - ну такое
Аноним 2018/03/22 16:24:42  №1160767 414
подскажите, возможно ли как то достать первый файл под замочком, файл с закрытым доступом. Очень нужно его достать, как это сделать? Спасибо

https://dspace.vsb.cz/handle/10084/91028
Ответы: >>1160772
Аноним 2018/03/22 16:27:34  №1160772 415
>>1160767
Вводишь юзернэйм и пароль и скачиваешь.
Ответы: >>1160776
Аноним 2018/03/22 16:30:25  №1160776 416
Аноним 2018/03/22 16:54:05  №1160803 417
Какое минимальное железо для работы с пхп?
Ответы: >>1160825
Аноним 2018/03/22 17:34:47  №1160825 418
>>1160803
Для сервера или для разработки?
Ответы: >>1160828
Аноним 2018/03/22 17:39:29  №1160828 419
Ответы: >>1160829
Аноним 2018/03/22 17:43:42  №1160829 420
>>1160828
Конфигурация разная бывает. Но обычно смотрят на требования IDE. Будешь в нотпад++ писать, хоть целерон бери с 512 метрами и XP, Будешь PHPstorm юзать - готовь 8гиг и i5 минимум.
Ответы: >>1161194 >>1161551
Аноним 2018/03/22 18:50:46  №1160865 421
Вопрос про задачу на файлообменник. На всех файлообменниках обычно есть лимит дней, в течении которых файл пользователя хранится на сервере, а потом он удаляется. Я правильно понял, чтобы сделать такое надо написать на php скрипт, который будет искать и удалять загруженные n-дней назад файлы и их модели в бд и запускать его через крон каждый день?
Ответы: >>1173391
Аноним 2018/03/22 20:02:08  №1160892 422
>>1152267 (OP)
В шапке задание 2 по ксс/хтмл: https://github.com/codedokode/pasta/blob/master/html/html.md#%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-2

Как сделать так, чтобы блок занимал столько места, сколько есть по высоте? max-height: 100% не помогает - скролл бар все равно появляется. overflow: hidden тоже - блок просто отрезается, а не подстраивается под height.
Ответы: >>1160943 >>1160944 >>1173391
Аноним 2018/03/22 21:30:50  №1160943 423
>>1160892
Показал бы хоть код что ли, я сам не спец, но как раз в силу того что мало опыта, самому стало интересно. Поковырялся бы сейчас, а нету. Вангую что у тебя блок в неправильном родителе сидит, и когда ты ему ставишь 100% то он берет высоту равную 100% от высоты родителя. Но при этом в родителе у тебя два блока друг над другом и вот такой вот конфликт выходит.
Ответы: >>1160956 >>1173391
Аноним 2018/03/22 21:32:28  №1160944 424
>>1160892

Такой задачи нет. В задаче 2 высота блока определяется его содержимым (текстом).

Но, если стоит задача сделать блок по высоте не менее чем высота окна, то делается это примерно так: ставим heigth 100% на html/body и min-height 100% на блок. Дело в том, что высота в процентах работает только если у всех родителей высота тоже задана в процентах или пикселях и может быть легко вычислена.

То, что ты пишешь, что появляется линейка прокрутки - это скорее всего из-за того, что у родительских блоков html или body есть margin или padding, а они не входят в высоту и получается с ними высота более 100%.
Ответы: >>1160956
Аноним 2018/03/22 22:09:33  №1160956 425
>>1160943
>>1160944
https://jsfiddle.net/1zzyan6w/24/

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

> ставим heigth 100% на html/body и min-height 100% на блок
не работает
Ответы: >>1160972
Аноним 2018/03/22 22:31:45  №1160972 426
>>1160956

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

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

>> ставим heigth 100% на html/body и min-height 100% на блок
> не работает
А ты попробуй. Ты ведь даже не выполнил мой совет, не поставил ни height 100% на html/body, ни min-height.
Ответы: >>1161006
Аноним 2018/03/22 22:50:10  №1160979 427
>>1160483
>как же достали сайты, которые ломаются в браузере 2-летней давности
Объясните, пожалуйста, убогому, покорнейше прошу, для чего нужны браузеры 2-летней давности? Я еще понимаю браузеры 10-летней давности в б/у телефонах купленных на рынке у барыг. Но это вопрос выжывача, а не веб разработки.
Ответы: >>1161018 >>1161022 >>1161025
Аноним 2018/03/22 23:28:32  №1161006 428
Ответы: >>1161026
Аноним 2018/03/22 23:39:54  №1161018 429
>>1160979

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

Но речь вообще не обо мне. Факт в том, что в мире есть разные браузеры. Ответь теперь ты мне на вопрос, а какая выгода делать сайт только под последнюю версию хрома, а не такой, который будет работать везде?
Ответы: >>1161195
Аноним 2018/03/22 23:45:22  №1161022 430
>>1160979

Или возьми тот же стабильный дебиан: там весь софт не новый. Там предпочитают стабильные и проверенные программы, а не наспех слепленные новые версии.

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

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

function x(a=1) { }.

Гнать надо вас всех на мороз, "фронтенд специалисты".
Ответы: >>1161195
Аноним 2018/03/22 23:49:14  №1161025 431
>>1160979

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

Вот пример: какой-то не очень умный автор радостно пишет 5 страниц про нововведения, и только в конце вскользь замечает, что это не везде работает: https://frontender.info/es6-in-depth-rest-parameters-and-defaults/

Это надо писать не вскользь,а большими буквами в начале: это не работает.
Ответы: >>1161097 >>1161195
Аноним 2018/03/22 23:49:55  №1161026 432
>>1161006

На html кто высоту ставить будет, Пушкин?
Аноним 2018/03/23 03:51:28  №1161097 433
>>1161025
Разве babel не решает эту проблему?
Аноним 2018/03/23 11:49:56  №1161188 434
Ответы: >>1171879 >>1172029 >>1172030
Аноним 2018/03/23 11:56:29  №1161194 435
>>1160829
Минимального просто не существует.
Но если хочется комфортной работы, добавь памяти. IDE ее любят жрать.
Аноним 2018/03/23 11:59:25  №1161195 436
>>1161018
>>1161025
>>1161022

Ты конечно прав, но с таким подходом ничего нового бы никогда не внедрялось.
Ответы: >>1161268
Аноним 2018/03/23 13:35:19  №1161246 437
Насколько зашкварно использовать всякие sleeping owl, voyager и прочие надстройки над голой Ларой? Не откат ли это в макакинг уровня друпал и модыкс?
Ответы: >>1173392
Аноним 2018/03/23 14:12:55  №1161268 438
>>1161195

Лет через 5, после массового внедрения фичи, можно ее использовать. Зачем эти "фичи" нужны, если основной результат их использования - лишение части пользователей доступа к сервису?

Посмотри на ту же историю флексбокса. Они сделали 2 (!) ревизии, первая им чем-то не понравилась, они ее закопали, и все равно в браузерах есть баги с его поддержкой. Зачем так вообще делать?

Также, флексбоксом не умеют пользоваться. Я сам видел 2 случая, когда в верстке с флексбоксом размеры элемента высчислялись в ноль, и он исчезал. Решил проблему удалением флексбокса :)

Все должно внедряться не спеша и продуманно.
Аноним 2018/03/23 15:16:57  №1161296 439
>>1152267 (OP)
Ребята, не лезьте в это дело. Это дно. Все php-шники, исключая единицы, являются навозными жуками, которые разбирают кучу какашек, скатывают отдельные кусочки в шарик и переносят в другое место. Большинство из вас будет работать с 1С-Битрикс, Joomla, Wordpress и другими тошнотворными проектами. Вы будете делать одно и тоже из дня в день. Настанет момент, когда спадёт вся романтика и вы застрянете, не будет мотивации для развития (если, конечно, крупно не повезёт сходу). Не совершайте ошибок, которые совершил я. Стремитесь к изучению другого инструмента. Даже рядовым специалистов на каком-нибудь Java вы будете более ценными и высокооплачиваемыми. А так вас ждёт только разочарование. Да, в первый год или два, будет интересно, будет невероятный подъём сил, но дальше только пустота и однотипные заказы.
Аноним 2018/03/23 15:52:15  №1161308 440
Аноним 2018/03/23 16:30:37  №1161321 441
Аноним 2018/03/23 16:31:01  №1161322 442
Аноним 2018/03/23 16:35:54  №1161325 443
ОП, ну ты и козлина.
ты нагло лгал в лицо мне и всем тут. Твое учение отстой. свой учебник засунь себе в гузно.
>>1161296 этот открыл мне глаза.
Я пошел отсюда.
Все за мной в с++ тред

Аноним 2018/03/23 17:05:33  №1161354 444
Есть функция внутри класса:

function connect() {
$dbc = new mysqli_connect('localhost', 'root', '', 'testsDB');
if ($dbc->connect_errno) {
echo ("Connect failed: '%s\n'", $dbc->connect_error);
exit();
}
return $dbc;
}

Выдаёт ошибку: Parse error: syntax error, unexpected ',' in C:\OSPanel\domains\studentlist\scripts.php on line 7

Двач, помогай, я сейчас с ума сойду, блять.
Ответы: >>1161356
Аноним 2018/03/23 17:07:03  №1161356 445
>>1161354
>echo ("Connect failed: '%s\n'", $dbc->connect_error);
Собственно в этой строчке вся проблемы, но я не пойму, что тут не так
Ответы: >>1161368
Аноним 2018/03/23 17:23:22  №1161368 446
>>1161356
Здесь автор наверно хотел printf вместо echo
Аноним 2018/03/23 17:28:51  №1161370 447
Стоит ли везде по дефолту врубать строгий режим - declare(strict_types=1) ?
Ответы: >>1161402 >>1161551
Аноним 2018/03/23 18:22:24  №1161399 448
На самом деле echo - это не функция (это языковая конструкция)

или так
echo "Connect failed:", $dbc->connect_error,"\n";
или так
echo ("Connect failed:". $dbc->connect_error."\n");
или раз уж по форматы
printf ("Connect failed: '%s'\n", $dbc->connect_error);

И обрати внимание на '
Аноним 2018/03/23 18:28:21  №1161402 449
>>1161370
Если все сам с нуля пишешь, то да. Но так не бывает.
Будешь брать чужие куски, а там в 99% случаев на это хуй ложили. Значит заебешься в них исправлять.
Ответы: >>1161551 >>1161601
Аноним 2018/03/23 23:51:48  №1161551 450
>>1161402
Нет, declare(strict_types=1) работает только в пределах текущего файла, поэтому и тайп-хинты скалярных типов будут проверяться на строгость только для тех функций/методов, которые объявлены в текущем классе.

>>1161370
Да, надёжнее всегда использовать, чтобы избежать нежелательных конвертаций типов. Советую для автоматизации всего этого дела использовать PHP-CS-Fixer, он может сам проставлять declare(strict_types=1) для всех файлов. Ещё есть вариант настроить Class Template в PHPStorm, но это удобно только если у тебя абсолютно все проекты на PHP7+: https://plugins.jetbrains.com/plugin/9640-php-class-templates

>>1160829
> Будешь PHPstorm юзать - готовь 8гиг и i5 минимум.
Я пользовался PHPStorm'ом на двухъядерном Intel Pentium + 4 RAM. Если отрубить кучу ненужных плагинов, чекеров, синхронизаций - то вполне юзабельно, в сети есть уйма статей по оптимизации. На i7 сейчас PHPStorm, конечно, летает.
Аноним 2018/03/24 01:16:50  №1161594 451
>>1161296

У меня только спустя два года подъем сил, а до этого - сплошное уныние и безнадёга.
Ответы: >>1161610
CTN 2018/03/24 02:03:52  №1161600 452
Ять, за любимку еще кто-то радеет! Пишу на пох.net и всем остальноам ++. Здоровья друзья и железных жоп:)
CTN 2018/03/24 02:07:35  №1161601 453
>>1161402
В 90% случаев проще самому 30 минут потратить и написать с блэкджеком и дамысфривольнымотношениемкморали. Чем с гита разбирать ваяние очередного вендора.
Ответы: >>1162200
Аноним 2018/03/24 03:26:54  №1161610 454
>>1161594
Расскажи свою стори что ли. Я вот уже пол года хуи пинаю без работы и сейчас накатило что-то типа тревоги и не могу уснуть. Сижу вот боюсь, что как начну ходить по собеседованиям - так нахуй ни кому в свои 30 буду не нужен.
Ответы: >>1161693
Аноним 2018/03/24 06:52:24  №1161631 455
foo($arr){ $arr['bar'] = bazz; return $arr; }

или

foo(&$arr){ $arr['bar'] = bazz; }

Что предпочтительней? Или вообще без разницы?
Ответы: >>1173392
Аноним 2018/03/24 11:48:57  №1161693 456
>>1161610
Зубов бояться - в рот не давать. Вообще-то, собеседования на то и собеседования, чтобы проверить скилл претендента. Если бы отбирали по возрасту, достаточно было бы указать в требованиях "иметь при себе паспорт". Другое дело, что тебе может быть психологически некомфортно выполнять ЦУ тимлида, который младше тебя на 10-12 лет. Или ему будет некомфортно командовать великовозрастным джуном. Интервьюер, разумеется, должен это учитывать и там уже имеют значения не только твои навыки, но и то, как ты себя поставишь в процессе беседы. Это сугубо моё имхо, бо я в свой 31 смог устроиться по знакомству, да и выгляжу как первокурсник ебаный, особенно если сравнить с нынешними детишками-акселератами.
Аноним 2018/03/24 13:43:41  №1161751 457
Сап анон, как сделать счетчик, считывающий и выдающий количество выборов fish?
<?
if($_POST['category']=="fish"){
$ft +=1;
}

echo "you have chosen ft" .$ft. "times";
?>
<form action="p1.php" method="POST">
<select size="3" name="category">
<option type="checkbox" value="fish"> Fishing </option>
</select>
<input type="submit" name="sub" value="choose">
</form>

И да, нужна именно эта html форма.
Ответы: >>1161794 >>1161807
Аноним 2018/03/24 14:26:53  №1161794 458
>>1161751
1. Если значение должно жить только пока пользователь не закроет вкладку в браузере, добавить input type="hidden" и держать значение там. Сломается если пользователь будет тыкать "Назад" в браузере.
2. Ставить куку с текущим значением.
2а. Ставить куку с идентификатором пользователя. Хранить на сервере в БД.
Будет сохранено пока пользователь не почистит куки.
3. Прикрутить систему авторизации. Будет сохранено пока жив сервис.
Аноним 2018/03/24 14:40:04  №1161807 459
>>1161751
Можно через сессию сделать.
<?php

session_start();

if($_POST['category'] == 'fish'){
$_SESSION['category'] ? $_SESSION['category']++ : $_SESSION['category'] = 1;
echo "you have chosen ft {$_SESSION['category']} times";

}

Будет помнить значение до тех пор пока не закроешь страницу.
Ответы: >>1161817 >>1161820 >>1161858
Аноним 2018/03/24 14:50:45  №1161817 460
>>1161807

Только в условии перед первым $_SESSION['category'] поставить @, иначе при первом вызове выдаст варнинг. Вот так:
@$_SESSION['category'] ? $_SESSION['category']++ : $_SESSION['category'] = 1;
Ответы: >>1161822
Аноним 2018/03/24 14:52:12  №1161820 461
>>1161807
А сессию хранить в SQLite или отдельном файлике. HTTP он такой - ни чего не помнит. И еще юзверя надо сохранять по иду.
Аноним 2018/03/24 14:53:18  №1161822 462
>>1161817
Дружище, не надо гасить вывод. Сделай проверку.
Ответы: >>1161831
Аноним 2018/03/24 15:02:23  №1161831 463
>>1161822
вот так?
isset($_SESSION['category']) ? $_SESSION['category']++ : $_SESSION['category'] = 1;
Ответы: >>1161836
Аноним 2018/03/24 15:10:11  №1161836 464
>>1161831
Ога. Сессию отдельно храни, сборщик мусора у пыхи ни разу не девелоперфредли.
Аноним 2018/03/24 15:14:06  №1161839 465
Я прост алкоту в глотку лью и не хочю в код, за неделю рабочую надоел. php.net погляди PDO и filter_input
Аноним 2018/03/24 15:49:11  №1161858 466
>>1161807
Странная херня, выводит только "1". Похоже через куки придется делать.
Ответы: >>1161889
Аноним 2018/03/24 16:57:36  №1161889 467
>>1161858
У меня работает нормально. Скорее всего, тебе сессионная кука не передаётся почему-то. Или пробел перед кодом скрипта или BOM
Аноним 2018/03/24 19:57:44  №1161980 468
Перехожу с питона в чем блядь проблема???????
<?php
$year = 16;
$yearAll = 0;
for($i = 10000; $i <= 1000000; $i *= 0.1) {
$year++;
$yearAll++;
}
echo $year,$yearAll
?>
Ответы: >>1161984
Аноним 2018/03/24 20:02:43  №1161984 469
>>1161980
> $i *= 0.1
Может границы наоборот надо поставить?
Ответы: >>1161985
Аноним 2018/03/24 20:04:57  №1161985 470
>>1161984
Я уже ничего не понимаю
можешь работающий код прислать
Ответы: >>1161987
Аноним 2018/03/24 20:07:52  №1161987 471
>>1161985
<?php
$year = 16;
$yearAll = 0;
for($i = 10000; $i <= 1000000; $i *= 10) {
$year++;
$yearAll++;
}
echo $year,$yearAll
?>

Например так. У тебя границы цикла и шаг такие, что он бесконечный.
Ответы: >>1161990
Аноним 2018/03/24 20:10:41  №1161990 472
Аноним 2018/03/24 20:30:27  №1161997 473
Почему не сортирует?

$tbl=$dbConn->prepare('SELECT * FROM `students` ORDER BY :sort ');
$tbl->execute(array('sort' => $_GET['sort']));
$students=$tbl->fetchALL(PDO::FETCH_ASSOC);

в гете лежит строка с названием колонки
Ответы: >>1162001
Аноним 2018/03/24 20:37:47  №1162001 474
>>1161997
Потому что имя колонки не может подставляться через переменные связывания. У тебя в итоге работает так:
/?sort=cpprulez

SELECT * FROM `students` ORDER BY 'cpprulez'
- то есть сортировка идёт по строковой константе, одинаковой для всех записей.
Ответы: >>1162003
Аноним 2018/03/24 20:44:42  №1162003 475
>>1162001
спасибо
заработало так
$tbl=$dbConn->prepare('SELECT * FROM `students` ORDER BY '.$_GET['sort']);
Ответы: >>1162020 >>1162025 >>1173392
Аноним 2018/03/24 21:18:05  №1162020 476
Ответы: >>1162021
Аноним 2018/03/24 21:18:46  №1162021 477
>>1162020
* - лишняя, и сега приклеилась
Аноним 2018/03/24 21:22:55  №1162025 478
Аноним 2018/03/24 21:26:42  №1162029 479
Ответы: >>1175880
Аноним 2018/03/24 21:48:39  №1162044 480
Продублирую из соседнего треда:
Аноны, хелп.
Делаю парсер на jquery.
Есть сайт с таблицей, количество колонок в которой меняется от 2 до 6 в зависимости от <select></select>. После смены значения - страница перезагружается и количество столбцов меняется. Нужно парсить значения со всех 6 столбцов. Делаю так:
$("select[name='DatesNum']").val(6)
$("select[name='DatesNum']").trigger('onchange')
Циферка в меню <select> меняется, но количество столбцов нет. Как решить проблему?
pChart Аноним 2018/03/24 23:30:13  №1162106 481
15219234138240.png (80, 903x432)
432x903
Нужно вывести линейный график и столбчатую диаграмму. Создал просто $myData1 с данными для столбчатой диаграммы и рисую ее после линейной. Как изменить ее цвет и сделать подпись на графике?
Говнокод: https://pastebin.com/QDMGAgZN
Ответы: >>1162124 >>1175880
Аноним 2018/03/25 00:58:08  №1162124 482
>>1162106
Подпись сделал, теперь надо разобраться с цветом.
Аноним 2018/03/25 01:29:29  №1162132 483
Почему когда сохраняешь php файлик в utf-8 - у тебя каракули, а когда в utf-8 with BOM - то всё нормально
Ответы: >>1175880
Аноним 2018/03/25 02:51:50  №1162145 484
15219355106760.png (62, 607x664)
664x607
15219355106771.png (70, 815x645)
645x815
15219355106772.png (87, 774x711)
711x774
Сап двощь, я скоро ебанусь. Пытаюсь написать свой нано DI контейнер, по гайдам опа. Короче в чем суть, ОН РАБОТАЕТ, но меня смущает одна вещь, вардамп выдает лютую хуйню когда я добавляю файлы "определений". Первый пик это файл определений, второй и третий это просто я хз, мне опыта не хватает чтобы разобраться в этом говне, мб там какие-то связи ссылки и вот это все. У меня еще есть файл-конфиг для создания ПДО, так вот там нет анонимных функций, и нет этой проблемы с дампом.

Вот полный класс контейнера - https://text-share.com/view/56b73461

Может там проблема с this на 49 строке, и оно как-то влияет на класс хелпер? очень сложна
Ответы: >>1162154
Аноним 2018/03/25 03:38:11  №1162154 485
>>1162145

В PHP анонимная функция хранится как объект встроенного класса Closure. Потому, когда ты пытаешься сдампить массив с функциями, ты получаешь массив объектов Closure. В каждом объекте сохранены захваченные функцией переменные (они указаны в use) и значение $this на момент создания функции.

Это можно легко проверить, например

$x = function () {};
var_dump($x);
var_dump($x instanceof \Closure); // true
Ответы: >>1162160
Аноним 2018/03/25 04:28:40  №1162160 486
>>1162154
Меня смущала рекурсия этих функций в дампе, this в анонимных функциях я не юзаю, контейнер нормально все возвращает, так может его так и оставить? Я так подумал что в данном контексте мне должно быть немного похер к какой области видимости принадлежит анонимная функция.
Ответы: >>1175881
Аноним 2018/03/25 10:11:32  №1162200 487
>>1161601

> В 90% случаев проще самому 30 минут потратить
Вот тебе список пару из тысячи real-world задач, а ты напиши, как за 30 минут справишься со всем этим без сторонних библиотек:

1) Раньше все картинки хранились на том же сервере, что и сайт, но сейчас картинок стало очень много и оказывается выгоднее их хранить на каком-нибудь Digital Ocean Spaces или DropBox. Если бы для работы с файлами в проекте изначально использовалась сторонняя библиотека - flysystem ( https://github.com/thephpleague/flysystem ) - то в коде потребовалось бы очень мало изменений для переноса, так как flysystem предоставляет общий интерфейс для работы над множеством разных хранилищ файлов, а настраивается только через конфиг. То есть нужно спрыгнуть с DropBox на Amazon S3 - поменял пару строк в конфиге, а не код, который по всему проекту размазан. Конечно, это не работает, когда нужны специфичные особенности конкретного хранилища, но времени для правки всё равно ушло бы в разы меньше - в итоге работа выполнилась быстрее, бизнесу выгоднее, так так меньше платить разработчику за изменения, ты - хороший специалист, быстро решающий проблемы.

2) Нужно написать бота, то есть нужно взаимодействовать с каким-то API, слушать вебхуки. При этом важно, чтобы бота можно было без особых усилий переписать на другую платформу, например раньше в моде был ВК, теперь - Телеграм. Значит нужна какая-то абстракция для бота, ты можешь написать её сам и всё равно всего не учесть, а можешь взять готовую - BotMan: https://botman.io/
Популярная всесторонне оттестированная библиотека, в которую коммитили люди со всего мира, когда находили какие-то несостыковки или проблемы, не обнаруженные автором. Библиотека по-прежнему активно поддерживается, ты будешь свою поделку через 2-3 года поддерживать, когда API Телеграма или ВК поменяется?

Меня расстраивает, что есть такие люди как ты, да ладно вы бы молча сидели, так ещё распространяете свои недальновидные, дурные подходы среди других людей, не имея опыта написания и поддержки больших и сложных программ.
Аноним 2018/03/25 10:48:36  №1162210 488
15219641162240.jpg (55, 998x665)
665x998
Аноны, почему все обсирают с ног до головы веб-разработку, php, js, html/css, хотя вакансий на веб в сотни раз больше, нежели вакансий на какой-нибудь ебучий c#, java и т.д?
Ответы: >>1162463
Аноним 2018/03/25 12:45:05  №1162264 489
Вопрос от новичка. Скачал простую (и малоизвестную) цмс. В этой цмс мало строчек кода, вроде не говнокод. Затем постоянно жму F5 на локалхосте, смотрю за процессом апача в диспетчере задач. Загрузка ЦП прыгает от 1 до 9 %. Как это понимать? Много людей не потянет? Почему? Как снизить загрузку? Там всего-то отрисовка простой страницы из шаблона, и пара обращений к БД, для получения нескольких цифр, подставляющихся в шаблон. Мой процессор средний по производительности, заметно только в играх.
Ответы: >>1162281 >>1162332 >>1162376
Аноним 2018/03/25 12:59:47  №1162280 490
Итак, изучаю тут потихоньку ваш вэб, пилю вот макет по образу и подобию нашего любимого кудахта (нет, не делаю убицу вк, просто тренируюсь с позиционированием и тд).
Макет тянется, всё красиво, подстраивается под разрешение экрана. Но вот есть тут пара вопросов, да и может посоветуете чего, подскажете.

Почему колонка 2 стоит неравномерно относительно 1й, приходится подстраивать top: 8.9%; и прочее, чтобы стояли ровно. Но у 1й же именно 10 отступ, а со 2й колонкой отступ margin не работает, так как позиция абсолютная, поэтому использую top. В общем может подскажите почему я такой долбоем и как красиво оформлять в данном случае.

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

http://cssdeck.com/labs/natibfns а вот собсна и оно
Ответы: >>1175881
Аноним 2018/03/25 13:01:06  №1162281 491
>>1162264
а зачем ты судишь о производительности апача по его работе на домашней машинке и далеко не самой мощной? Или ты на ней хочешь хостить реальный сайт?
Ответы: >>1162283
Аноним 2018/03/25 13:02:32  №1162283 492
>>1162281
просто не буду арендовать мощную машину
Аноним 2018/03/25 13:25:31  №1162312 493
Кочаны кто делал е-коммерс сайт на Drupal?
Аноним 2018/03/25 13:46:55  №1162332 494
>>1162264
Залей на вебсервер.
Потом, хотя бы просто при помощи "ab", сделай 1000 по 100 запросов. Получишь стату.

AWS все еще дает EC2 бесплатно на год
Аноним 2018/03/25 15:12:37  №1162376 495
>>1162264

Загрузка ЦП показывает лишь, что процессор работает и используется по назначению. Чтобы выяснить, какую нагрузку выдержит сайт, надо провести нагрузочное тестирование (желательно не локально, а на реальном хостинге). Для этого можно использовать программы apache benchmark или siege, например.
Аноним 2018/03/25 16:11:50  №1162455 496
@htmlweb
Я тут создал конфу в телеге, жду анонов для совместного изучения веба.
Ответы: >>1162498 >>1162717
Аноним 2018/03/25 16:19:13  №1162463 497
>>1162210
Рутина, школокодеры, низкий порог входа, курсы попова и вообще пыха это как школьный омеган, уже никто и не помнит почему его ненавидят.
Аноним 2018/03/25 17:10:57  №1162498 498
>>1162455
>для совместного изучения веба.
Скучно.
Аноним 2018/03/25 21:15:06  №1162669 499
Никак не пойму почему условие заставляет цикл бесконечно печатать массив.

<?php
$count = 0;
$arr = array();
for ($i = 0; $i < 5; $i++){
echo '<br>';
for ($j = 0; $j < 5; $j++){
$arr[$i][$j] = rand(0, 1);
echo '&nbsp'.$arr[$i][$j];
if ($arr[$i][$j] == 1 || $arr[$i][--$j] == 1 && $arr[--$i][$j] == 1){
$count++; }
}
}
Ответы: >>1162687 >>1162713
Аноним 2018/03/25 21:39:55  №1162681 500
При сабмите формы методом ГЕТ хочу, чтобы кроме этого поля в ГЕТ попадали также и другие переменные
как это сделать?
Ответы: >>1162730
Аноним 2018/03/25 21:44:08  №1162687 501
>>1162669
Декремент счетчиков циклов не смущает?
Ответы: >>1162690
Аноним 2018/03/25 21:55:42  №1162690 502
>>1162687
Недавно вкатываюсь в пхп, изучал c++ и там это работало так.
Аноним 2018/03/25 22:29:05  №1162708 503
15220061458120.jpg (79, 1080x1080)
1080x1080
Кисть руки профессионального PHP разработчика.
Ответы: >>1162789
Аноним 2018/03/25 22:35:46  №1162712 504
У ОПа где-то была задачка про гостиницу, не могу найти, где она?
Ответы: >>1162719
Аноним 2018/03/25 22:38:06  №1162713 505
>>1162669
В чем здесь проблема? При чем тут декремент все же должно работать
Ответы: >>1162716
Аноним 2018/03/25 23:07:45  №1162716 506
15220084661620.jpg (119, 1162x509)
509x1162
>>1162713
Условие опускает индекс массива до -1 и цикл бесконечно повторяется.
Ответы: >>1162721
Аноним 2018/03/25 23:10:52  №1162717 507
>>1162455
Аноны, ну зайдите хоть кто-то. Я там 1 в группе. Давайте вместе изучать. Я выложил пару сверстанных мной макетов
Аноним 2018/03/25 23:14:15  №1162719 508
Аноним 2018/03/25 23:14:41  №1162721 509
Аноним 2018/03/25 23:26:04  №1162722 510
Чем button отличается от input type="submit" ?
Ответы: >>1162726 >>1162728
Аноним 2018/03/25 23:36:17  №1162726 511
>>1162722
>
>Чем button отличается от input type="submit" ?

гораздо лучше поддаётся стилизации и можно прилепить на неё картинку.
Аноним 2018/03/26 00:02:38  №1162728 512
>>1162722

Внутри него могут быть текст и DOM элементы (теги). Картинки например.
Ответы: >>1162732
Аноним 2018/03/26 00:08:27  №1162730 513
Аноним 2018/03/26 00:23:04  №1162732 514
>>1162728
Валидатор ругается
Ответы: >>1175882
Аноним 2018/03/26 00:37:10  №1162738 515
Нубский вопрос: зачем нужны memcached, redis и какие данные они кешируют, всякую статику типа шаблона?
Ответы: >>1162744
Аноним 2018/03/26 00:51:17  №1162744 516
>>1162738
Нубский ответ:
У тебя логика хромает. Разве есть смысл кэшировать шаблоны? Шаблон не нагружает твоё приложение.

По мне так кэшировать нужно как-то так: возьмем на примере социальной сети.

Вот ты грузишь страничку пользователя например.
У тебя подгрузились из одной таблицы все его личные данные: фоточки там, даты, имя, места и прочее.
Из другой список его друзей, из третьей список постов на стене, из четвертой паблики на которые он подписан, из пятой музыка которая у него добавлена и так далее. Там очень много кода и запросов в базу и по базе всё это в гигантских таблицах тоже ищется со всякими джойнами и прочим.
Далее наш код собирает его страничку в виде html и отдает юзеру.
Ну и представь что ты можешь всегда таким дерьмом заниматься на каждый запрос и на каждую перезагрузку юзером его страницы, либо ты можешь например после первой загрузки весь собраный html сложить в отдельную таблицу на хранение, как стенку текста. И когда юзер в очередной раз спросит свою страничку - сделать простейший селект быстренько и отдать заранее собранный html без выполнения кучи кода и селектов с джойнами. Профит? определенно.
Ответы: >>1162778
Аноним 2018/03/26 04:51:54  №1162778 517
>>1162744

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

По моему, кеш - это последнее средство, когда невозможны другие оптимизации. У него много недостатков: поддержка актуальности кеша, прогрев.

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

Друг пользователя поменял имя - надо сбрасывать кеш. Удалил друга из друзей - надо сбрасывать кеш. И так далее.

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

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

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

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

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

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

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

- http://lib.custis.ru/images/6/6d/WebAppCache.pdf
- https://habrahabr.ru/company/oleg-bunin/blog/320044/

Ответы: >>1163276
Аноним 2018/03/26 05:05:29  №1162779 518
Прочитал релиз 10 Java и мне припекло. Каждый джавист говорил про неявную типизацию в PHP, каждый кто говоит про недостатки PHP, упоминает в первой тройке неявную типизацию. И что я вижу в релизе Java10? Им завозят неявную типизацию, но все воспринимают это как фичу. Причём ситуация ровно такая-же как например с руби, где тоже такая типизация но там это хорошо, а тут плохо потому-что я так скозал. У меня бомбит.
Ответы: >>1162790 >>1164241 >>1165598
Аноним 2018/03/26 06:22:11  №1162789 519
>>1162708
И не такие чудеса вытворять умеем!
Аноним 2018/03/26 06:22:58  №1162790 520
>>1162779
Не понял, Java или JavaScript?
Ответы: >>1162792
Аноним 2018/03/26 06:31:56  №1162792 521
>>1162790
Ну ты соня. У JS версии 3. У java 10. Enjoy your ORACLE. Причём джависты от радости прыгают "ряяяяяя не надо больше писать определения в миллиард символов, такая то экономия времени".
Ответы: >>1162796 >>1162797
Аноним 2018/03/26 07:09:45  №1162796 522
>>1162792
Наркоманы.
Релизы Java
1.0
1.1
1.3
1.4
1.5
6
7
8
9
10
В голосину просто.
Ответы: >>1162798 >>1162824
Аноним 2018/03/26 07:12:13  №1162797 523
>>1162792
Наркоманы.
Релизы Java
1.0
1.1
1.3
1.4
1.5
6
7
8
9
10
В голосину просто.
Ответы: >>1162798
Аноним 2018/03/26 07:13:07  №1162798 524
>>1162797
>>1162796
Вакабы вылетела с ошибкой FASTCGI а потом запостила 2 поста. Интересный баг.
Аноним 2018/03/26 07:33:01  №1162801 525
>>1152267 (OP)
Онооон. Поставил интерпритатор ПХП себе на линупс, читаю урок про строки. Дошел до функций mb_, этот пиздюк ругается, что не знает таких. ЧЯДНТ?
Лень гуглить спрошу анона.
Ответы: >>1162803 >>1162804
Аноним 2018/03/26 07:38:21  №1162803 526
>>1162801
Версия PHP? Какие функции mb_? На что ругается и как? Что пишет?
Щас бы изучать PHP на линуксе, чтобы с каждой ошибки по 4 часа гуглить.
Ответы: >>1162809
Аноним 2018/03/26 07:40:44  №1162804 527
15220392447810.jpg (33, 612x181)
181x612
>>1162801
Что именно тебе непонятно, спрашивай?
Ответы: >>1162809
Аноним 2018/03/26 07:51:28  №1162809 528
>>1162803
>Щас бы изучать PHP на линуксе, чтобы с каждой ошибки по 4 часа гуглить
Да не более 3х минут заняло, няш.
>>1162804
Спасибке, все решилось
Ответы: >>1162810
Аноним 2018/03/26 07:52:42  №1162810 529
>>1162809
>Да не более 3х минут заняло, няш.
Ну хз, мне страшновато так-то. Вылезает такое и я хз это от PHP или от линукса ошибка.
Ответы: >>1162811
Аноним 2018/03/26 07:54:05  №1162811 530
>>1162810
Тут просто опыт нужен, когда я только перекатился и стал учить си все и правда занимало время. А теперь ок
Ответы: >>1162813
Аноним 2018/03/26 08:04:24  №1162813 531
>>1162811
Чет вспомнил как вычислял биты.
Ответы: >>1162821
Аноним 2018/03/26 09:04:02  №1162821 532
>>1162813
Ну и как оно было, колись
Ответы: >>1162837
Аноним 2018/03/26 09:24:54  №1162824 533
>>1162796
На самом деле так.
1.0
2
1.1
1.3
1.4
1.5
6
7
8
9
10
Аноним 2018/03/26 09:52:18  №1162829 534
15220471385960.png (23, 764x286)
286x764
Аноны, выдаёт ошибку: "mysql_fetch_array() expects parameter 1 to be resource, boolean given in..(путь файла) on line 15"
На пике код. Не могу понять в чём проблема. И в чём суть ошибки?
Ответы: >>1162832 >>1162846 >>1175882
Аноним 2018/03/26 09:55:00  №1162830 535
Ананас, написал тут задачку про палиндром. 26 строк. Можно ли короче? На пистоне то раз - и квас. Подскажите просто, можно ли
Ответы: >>1175882
Аноним 2018/03/26 09:58:11  №1162832 536
15220474913820.png (23, 746x316)
316x746
>>1162829
Изменил код, но всё равно не меняется ничего! Ебучая пыха
Ответы: >>1162833 >>1162846
Аноним 2018/03/26 09:59:56  №1162833 537
>>1162832
>Ебучая пыха
Ну то что ты тупой не делает из пыхи
>Ебучая
Ответы: >>1162834
Аноним 2018/03/26 10:02:32  №1162834 538
>>1162833
ну так объясни тупому, умник хуев
Аноним 2018/03/26 10:07:34  №1162837 539
>>1162821
Голове было больно, да.
Аноним 2018/03/26 11:13:32  №1162846 540
>>1162829
Ну тебе же всё написано. Ожидает логин, вместо логина получает хрен пойми что. В чём суть вопроса? Хочешь подробностей - кидай нормально код.
>>1162832
Причём тут PHP? Ты используешь mysql_fetch_array, который вообще использовать не рекомендуется. А теперь ещё и жалуешься. Да ты ахуел.
Аноним 2018/03/26 11:23:32  №1162849 541
Лудший тред всего pr кроме реверс треда
Ответы: >>1162850 >>1162851
Аноним 2018/03/26 11:24:27  №1162850 542
>>1162849
Есть еще линуксотред.
Аноним 2018/03/26 11:24:38  №1162851 543
>>1162849
Ну про трапов треды всегда были популярнее чем PHP.
Ответы: >>1162852
Аноним 2018/03/26 11:25:37  №1162852 544
15220527376640.png (223, 388x489)
489x388
Ответы: >>1162856
Аноним 2018/03/26 11:31:12  №1162856 545
>>1162852
А ты думал что мы там программирование обсуждаем, глупышка )))
Ответы: >>1162857
Аноним 2018/03/26 11:32:03  №1162857 546
>>1162856
Не траль плиз, у байтоебов и так жизнь не сахар
Аноним 2018/03/26 12:30:58  №1162896 547
>>1153363
у них с 14 марта вроде появилась возможность делать вайлдкард на все поддомены бесплатно. сам еще не пользовался
Ответы: >>1163195
Аноним 2018/03/26 17:33:21  №1163026 548
15220748019260.png (367, 3280x2044)
2044x3280
Постарался учесть все замечания.
Вот прям нравится теперь, спасибо, ОП.
Ответы: >>1163194 >>1175882
Аноним 2018/03/26 19:36:35  №1163085 549
Шоб на пыхе сделать, чёт идей нету ;d
Ответы: >>1163196
Аноним 2018/03/26 22:21:42  №1163159 550
Кто нибудь может подсказать как сделать подгрузку сообщений из базы данных без перезагрузки страницы? Искал про jquery ajax но ничего годного не нашел или нашел и не разобрался.
Ответы: >>1175882
Аноним 2018/03/26 23:42:29  №1163194 551
>>1163026
Это таблицы и их отношения в бд?
Ответы: >>1164243
Аноним 2018/03/26 23:43:35  №1163195 552
>>1162896
Сделай сайт-надгробие Мавроди
Ответы: >>1163196
Аноним 2018/03/26 23:44:05  №1163196 553
Ответы: >>1163299
Аноним 2018/03/27 04:48:55  №1163276 554
>>1162778
>Вообще, ты сильно все упростил и это вредно, так как ты запутал новичка.
Я понимал, что нужно будет при каждом чихе актуализировать как-то кэш, но это уже действительно более сложный для меня был вопрос и не стал ничего про него писать, на то я ответил с пометкой о том, что мой ответ едва-ли чуть менее нубский чем сам вопрос и наделялся на какое-то более развернутое пояснение в треде.

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

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

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

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

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

Печально, что за пару лет опыта я сижу на каких-то макако-задачах в среде таких же не шарящих ребят и не с кем даже банально на теоритическом уровне по обмениваться подобным опытом, не говоря уже о том что бы писать вместе с кем-то сложный проект и всякие вот такие вот задачи решать, а не просто прикручивать всякие перделки к лендингам и костыли к старым сайтам на cms-ках.
Ответы: >>1175883
Аноним 2018/03/27 05:27:17  №1163298 555
ОП, как думаешь, возможно ли сделать оптимизацию под старые IE и Lynx?
Ответы: >>1175883
Аноним 2018/03/27 05:27:39  №1163299 556
Ответы: >>1163312
Аноним 2018/03/27 07:04:57  №1163312 557
>>1163299
А ты сам как себе сайт про мавроди представляешь, скажем на питоне или на руби?
Ответы: >>1163346 >>1163349 >>1163371
Аноним 2018/03/27 10:01:31  №1163346 558
>>1163312
<h1>Вступай в МММ братуха-борцуха</h1>
Как то так?
Ответы: >>1163349
Аноним 2018/03/27 10:19:35  №1163349 559
Аноним 2018/03/27 12:15:36  №1163371 560
>>1163312
<table bgcolor="#ba639C"><tr><td align="center">Как легко заработать с нашей компанией</td></tr></table>
Ответы: >>1163373
Аноним 2018/03/27 12:19:10  №1163373 561
>>1163371
Ты забыл cellspacing=0 cellpadding=0 border=0.
Аноним 2018/03/27 17:52:37  №1163562 562
Cейчас стал с sql разбираться. Какой collation в постгрес лучше всего ставить?
Ответы: >>1165607
Аноним 2018/03/27 21:07:35  №1163672 563
Аноны, нужно получить второй символ (или третий, не в этом суть) в первом значении массива, но латиницей вариант ниже не работает, какой есть правильный аналог?
$arr = ["Привет", "Двач"];
$arr[0][2];
Ответы: >>1163676
someApprentice 2018/03/27 21:18:20  №1163676 564
Ответы: >>1163677
Аноним 2018/03/27 21:24:19  №1163677 565
>>1163676
Даа по сравнению с $arr[0][2] такой костыль конечно, не перестаю удивляться пыхе.
Анонче, респект и уважуха
Аноним 2018/03/28 01:22:25  №1163823 566
Аноны помогите ньюфагу, как запилить на сайт постинг от пользователя, ну там задать форму где будет весь текст, что бы посты распределялись сами, в блоке где пост распределить куда и какая информация идет, мне нужно именно ссылка на урок\гайд\и т.д., я не могу загуглить не правильно видимо это делаюЗаранее спасибо.
Ответы: >>1163934
Век живи - век учись Аноним 2018/03/28 05:16:42  №1163848 567
Если кто не слышал про букмарклеты, то расскажу. Это закладки в браузере, в которых вместо URL указан скрипт на JS. Ну например, вот как можно сделать букмарклет, который подсвечивает посты в треде без ответов.

Щелкните правой кнопкой на панели закладок (чтобы показать ее в Хроме, используйте Ctrl + Shift + B) или найдите в меню пункт "добавить закладку". В поле "название" введите что хотите, в поле URL введите:

javascript:var t = document.querySelectorAll('.post-wrapper:not(.watched-posts-marker)');Array.prototype.map.call(t, function (el) { var ref = el.querySelectorAll('.ABU-refmap a'); if (!ref.length) { var bg = el.querySelector('.post'); bg.style.backgroundColor = '#fbfb9d'; } });

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

После этого сохраните закладку. Теперь при нажатии на эту кнопку запустится скрипт в контексте страницы и подсветит неотвеченные посты желтым.
Ответы: >>1163867
Аноним 2018/03/28 08:26:38  №1163867 568
>>1163848
В хроме работает легко, а вот как этим в лисе пользоваться что-то не понял сразу. В любом случае спасибо - крутая штука.
Аноним 2018/03/28 10:08:37  №1163899 569
Как лучше реализовать аутентификацию для API?
Ответы: >>1163945 >>1175883
Аноним 2018/03/28 11:29:04  №1163934 570
>>1163823
В шапке есть задача на Студентов, где как раз полно советов по этой теме.

>- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
Ответы: >>1164373
Аноним 2018/03/28 11:43:31  №1163942 571
Без регуляр_очек никуда, как я погляжу?
Ответы: >>1175883
Аноним 2018/03/28 11:48:13  №1163945 572
>>1163899
С помощью протокола OAuth2.

Аноним 2018/03/28 14:46:16  №1164001 573
Насколько ужасен вордпресс? Есть ли от его изучения хоть какой то толк? Я открыл его исходник, вообще ничего не понял, какая там структура/архитектура.
Ответы: >>1175884
Аноним 2018/03/28 16:11:04  №1164050 574
15222426646990.jpg (96, 500x589)
589x500
ОП, ОП, глянь глянь раскритикуй https://ideone.com/NvITFi

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

У меня не сильно запутано. Достаточно ли комментариев натыкал для ясности?

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

Там ещё ideon.com жалуется на str_repeat() и mb_strlen(). Ни чего с этим поделать не могу. На компе с апачем нет ни каких проблем. Пришлось с русского на английский текст всё заменить и stlen() испльзовать.

И ещё смотрю как фреймворки написаны голова взрывается что сильно запутано. Пока разбираю одну часть, успеваю забыть для чего она предназначена. Как их читать что б разобраться?
Аноним 2018/03/28 17:58:15  №1164108 575
>>1164050

> Как их читать что б разобраться?

А их не надо читать, их надо писать.

мимо из JS треда
Аноним 2018/03/28 18:20:15  №1164112 576
>>1164050
на 65 строке почему не return $this->professions ? Сразу за ним в следующем методе getData почему бы просто не возвращать список департаментов, а уже в классе рапорта гетами выводить содержимое?
Ответы: >>1164128
Аноним 2018/03/28 19:19:00  №1164128 577
15222539403760.jpg (92, 640x480)
480x640
>>1164050
>>1164112
https://ideone.com/rn2Js5
Ты смотрика и вправду так можно. Спасибо за подсказку.

Всё было так потому что функции я не сразу написал так как она есть. Несколько раз там переправлял логику. Опыта видать мало. Ну и так получилась что образовались бесполезные конструкции. На которые не обратил внимание или забыл почистить.
Ответы: >>1164218
someApprentice 2018/03/28 21:11:50  №1164218 578
>>1164050
>>1164128

Не ОП, но замечания внесу.

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


Подробней о денормализации, если интересно:
https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
https://ruhighload.com/%D0%94%D0%B5%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85


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

* Исключение: Аннотации для составления документации и т.п.

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

https://ideone.com/rn2Js5
Небольшие придирки к оформлению кода:


>class Report{
>Открывающие фигурные скобки классов НЕОБХОДИМО переносить на следующую строку, а закрывающие фигурные скобки переносить на следующую строку после тела.

>public function writeTable(Company $company){
>public function pushDepartmen(Department $department){
>и т.д.
>НЕДОПУСТИМО объявлять методы с пробелом после названия метода. Открывающую фигурную скобку НЕОБХОДИМО располагать на отдельной строке; закрывающую фигурную скобку НЕОБХОДИМО располагать на следующей строке после тела метода. НЕДОПУСТИМО оставлять пробел после открывающей круглой скобки и перед закрывающей.

>$departmentsCompany = $company->getDepartments();
Здесь правильнее было бы написать $departmentsOfCompany или $companyDepartments. Или если никакие другие Департаменты не используются, то можно написать просто $departments.

>public function createEmloye
Название функции написано с опечаткой.
Везде employee написано с одной e на конце.


https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md


>public function __construct(string $name, array $d, Company $company)
Сразу не понятно что за параметр $d

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

>public function createEmloye(string $professionName, int