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

Ответить в тред Ответить в тред
Check this out!
Клуб изучающих PHP #121 /php/ Аноним 21/01/21 Чтв 17:28:37 19172601
php-noob-1.png 32Кб, 500x500
500x500
cat-cafe-osaka.jpg 140Кб, 1024x683
1024x683
welcome-to-php.png 187Кб, 853x480
853x480
cat-sad.jpg 194Кб, 1024x768
1024x768
Здесь мы изучаем язык PHP (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

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

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

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

С чего начать

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

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

Ты прошел весь учебник? Молодец, но это были лишь основы языка 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
- Еще более сложная и долгая задача на Laravel/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony или Laravel
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.

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

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

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

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

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

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

Что почитать

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

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

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

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

- Почему PHP? Потому что вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Clone or Download -> Download ZIP, распакуй на рабочий стол и получи личную копию сайта, не требующую интернетов.
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу (ищи в архиве по слову "устроился").
- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Аноним 21/01/21 Чтв 17:30:52 19172652
grammar.png 55Кб, 500x644
500x644
Код стоит писать аккуратно и оформлять, как принято. Потому, что другой человек, который будет смотреть твой код, вряд ли обрадуется, когда ему придется разбирать слипшиеся строчки, разбросанные в беспорядке скобки и написанные русскими словами названия переменных. Особенно плохо будет если это, например, код тестового задания, которое ты сделал, чтобы устроиться на работу. Если он будет неряшливым, это будет большой минус.

Для этого достаточно вставить код на http://beta.phpformatter.com/ и нажать «format». Робот оформит все как надо. Если ты используешь IDE, то там есть горячая клавиша для этого. Список клавиш для IDE: https://gist.github.com/codedokode/8759492

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

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

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

PSR-1 (рус.): https://svyatoslav.biz/misc/psr_translation/#_PSR-1
PSR-12 (англ.): https://www.php-fig.org/psr/psr-12/
Аноним 21/01/21 Чтв 17:40:35 19172793
>echo "Добро пожаловать товарищь ($_SESSION['name']) из города ($_SESSION['city']) !";
где тут ошибка?
Аноним 21/01/21 Чтв 17:49:05 19172874
А шапка не устарела?
вкатыш
Аноним 21/01/21 Чтв 17:53:24 19172955
Аноним 21/01/21 Чтв 17:56:09 19173036
ertftg.jpg 22Кб, 458x298
458x298
Какая разница в использовании return вместо end если результат тот же?
Аноним 21/01/21 Чтв 18:05:09 19173107
>>1917303
Ты какую-то хуйню написал, end вообще не о том.
То что оно работает лишь результат пехоповости пехопе.
Аноним 21/01/21 Чтв 18:06:59 19173118
>>1917287
устарела

анонсы. поясните по хардкору как билдить morphMany связи в ларавской eloquent orm. вот допустим есть две сущности: режиссер и фильмы которые он снял. и у каждой из них есть оценки например от 1 до 10. как мне блять сделать orderby по средней оценке каждого режиссера допустим? пробовал через простой whereHas и нихуя. в доке тоже нет ниче особого. копать их ларавель апи юзаю версию 8.2 если что ?
Аноним 21/01/21 Чтв 18:11:33 19173169
15653376807570.jpg 196Кб, 1080x1080
1080x1080
>>1917200 →
>а там оформлено красиво учетка,где можно загрузить фоточку или заебенить пост
Сделай у пользователяодна таблица отношение один-к-одному на его профильвторая таблица, где ты будешь хранить его фоточку и прочие данные.
По маршруту получаешь айдишник юзеря, у него берёшь профиль и выводишь на страницу что надо.
Я б так зделол.
Аноним 21/01/21 Чтв 18:18:25 191732410
Снимок экрана ([...].png 144Кб, 1366x768
1366x768
облом,объект не найден
Аноним 21/01/21 Чтв 18:21:11 191732711
>>1917324
Не так, слепой штоле?
Аноним 21/01/21 Чтв 18:21:45 191732812
>>1917324
Мужик, ты б уроки в шапке прошёл сперва - там много полезных советов по работе с шаблонами. Хуйню же пишешь.
Аноним 21/01/21 Чтв 18:27:49 191733313
Снимок экрана ([...].png 154Кб, 1366x768
1366x768
Аноним 21/01/21 Чтв 18:33:21 191734014
>>1917328
конкретней о хуйне
Аноним 21/01/21 Чтв 18:36:28 191734215
>>1917340
>конкретней
Конкретей есть в уроках. Сейчас бы каждому залетевшему нубу, который RTFM не хочет делать из-за лени разжёвывать всё.
Аноним 21/01/21 Чтв 19:04:37 191738416
>>1917324
>download master
блять в голос. ты раньше в питонячих тредах срал, а теперь тут. шо, не получилось войти в айти через джангу?
Аноним 21/01/21 Чтв 19:05:45 191738517
>>1917384
я питоном никогда не занимался.
а что это уникальный менеджер для одного человека?
Аноним 21/01/21 Чтв 19:37:11 191742418
>>1917333
Вообще не понимаю этого дрочева с голой пыха.
Сам голой пыхой не занимался, сразу полез в Laravel, а там и работу нашел.
Аноним 21/01/21 Чтв 19:42:29 191742819
>>1917424
а что плохого в том,что я пишу простой сайт на чистом,попутно изучая его базовые возможности?
Аноним 21/01/21 Чтв 19:48:34 191743420
>>1917428
Это плохо в плане работы, т.к. стоит далеко от того, где находится коммерческая разработка.
Аноним 21/01/21 Чтв 19:49:39 191743621
>>1917434
а может я любитель?
Фриланс Аноним 21/01/21 Чтв 20:02:21 191744322
16059953327450.png 162Кб, 500x500
500x500
Здравствуй, Анон.

Задам вопрос прямо, ответь на него честно, отталкиваясь от своего опыта: возможен ли фриланс для джуниора?
Можно ли зарабатывать хоть какую-то копейку удалённо, имея знания новоиспечённого джуна? Не на забугорном фрилансе, это важно. Хотя я и так понимаю, что там платят больше.

Другой вопрос(если вопрос выше имеет положительный ответ): сколько можно зарабатывать в месяц на фрилансе? 20к выйдет хотя бы? Или доход будет колебаться от существующих подходящих заказов и моего старания?

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

Нужна или удалёнка(а джуниоры на удалёнке не нужны(!)), или фриланс(что тоже вызывает кучу вопросов: возможно ли, какая плата месячная и т. д.)

Ответь как есть, анон. Хочу услышать правду, даже если она хуёвая.


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

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

Второй пункт оставим, речь идёт о первом.

Есть два вопроса(помимо тех, что выше спойлера): какой фреймворк выбрать в процессе изучения навыка для работы: laravel, или symfony?

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

-----------------
Второй вопрос: если же фриланс мне как-то и доступен будет, то какие биржи(наши) сможете посоветовать? Где проще найти заказ и заработать себе на кусок хлеба?
Аноним 21/01/21 Чтв 20:03:29 191744523
>>1917424
Дрочево с голой пыхой в первую очередь это азы программирования и полезно, как миниму для общей эрудиции в ИТ. Если у тебя уже есть опыт разработки, то ок - можно и на Лару сразу залезать, а если ты с нуля полез - соболезную мартыхану.
Аноним 21/01/21 Чтв 20:09:20 191745024
>>1917443
>а джуниоры на удалёнке не нужны
this
Аноним 21/01/21 Чтв 20:11:50 191745225
>>1917450
Ага, на хх.ру сейчас висит 7 вакансий пхп джуна удаленно, дс
Аноним 21/01/21 Чтв 20:13:13 191745326
15853386148760.jpg 9Кб, 168x300
168x300
>>1917443
>фриланс(что тоже вызывает кучу вопросов: возможно ли, какая плата месячная и т. д.)
>какая плата месячная
Шта? Какая тебе плата? Сколько заработал - столько получил. К этому прибавь время поиска заказчиков, обсуждение работы и проч.
Постоянно надо быть на стрёме чтоб не кинул. Нервная работа в общем, и особенно поначалу. Ещё хрен заказ вырубишь на первых порах и приходится работать со всяким говном, которое двух слов связать не может, но гораздо в отзывы насрать.

Где искать работу не скажу - сам ищи. Где найдёшь - там и работай.
Аноним 21/01/21 Чтв 20:16:05 191745427
>>1917452
>хх.ру
>7 вакансий пхп джуна удаленно
Лол.
Многие вакансии там годами висят по причинам:
1. хрюшки зарплату отрабатывают и рынок мониторят
2. кидалы с тестовыми - будешь бесплатно на кого-то работать под видом тестового
3. там ждут человека на позицию джуниора с навыками мидла
Аноним 21/01/21 Чтв 20:16:58 191745528
>>1917453
> Где искать работу не скажу - сам ищи. Где найдёшь - там и работай.
Но ведь даже так - ты признаёшь, что джуну что-то, да может перепасть на фрилансе, кроме пиздюлей:D

Хорошо сэр, вас понял, сэр. Именно этот ответ мне и нужен был превыше всего. А нервной работы не боюсь, всякой хуйни уже в жизни насмотрелся. Добра тебе, анон.
Аноним 21/01/21 Чтв 20:18:27 191745729
чет я намудрил я,логин и пароль постоянно висит в форме
Аноним 21/01/21 Чтв 20:22:09 191746130
а как избавиться от того.чтобы в формах не висели постоянно все что я вводил?
Аноним 21/01/21 Чтв 20:25:14 191746331
>>1917461
Предлагаю не отвечать этому персонажу пока он не начнёт по теме уроков спрашивать, а то заебёт тупыми вопросами по каждому пуку.
Пусть сам гуглит.
Аноним 21/01/21 Чтв 20:33:14 191747032
>>1917463

Это тред для вопросов, так что пусть задает. Будем отвечать.
Аноним 21/01/21 Чтв 20:34:47 191747333
>>1917461
Братик, мой тебе дружеский совет: найди в интернете методичку от Дмитрия Трепачёва и учись по ней. У него есть всё что требуется, вся необходимая база, а чего нет в методичке - есть на его ютуб-канале.
Вопрос, который ты задал - лёгок и глуп. Будь молодцом, иди учись.
Аноним 21/01/21 Чтв 20:44:08 191749434
Снимок экрана ([...].png 120Кб, 1366x768
1366x768
>>1917473
последняя просьба, оцени код
Аноним 21/01/21 Чтв 22:41:07 191757435
Аноним 21/01/21 Чтв 23:41:37 191762736
>>1917494
Говнокод как есть. Такое даже школота на вордпрессе не пишет.
Иди на завод.
Аноним 21/01/21 Чтв 23:48:05 191763437
So, guys.

Есть у меня в ларке в контроллере

$request->validate([
]);

А если я хочу добавить какое-то лютое правило? О том что Одно поле плюс другое умнжить на третье должно быть меньше 42, как это сделать?
Аноним 21/01/21 Чтв 23:49:07 191763838
Аноним 22/01/21 Птн 00:31:07 191769439
>>1917638

Спс, сказал куда гуглить. Решил вопрос.
Аноним 22/01/21 Птн 00:34:10 191769640
>>1917461
Пиздец ты умеешь формулировать.

autocomplete="off" может помочь. Или не может. ХУЙ ЗНАЕТ ЧЁ ТЕБЕ НАДО
Аноним 22/01/21 Птн 00:46:29 191770241
>>1917303

Тут не надо использовать end и else.

>>1917342

Если ты не хочешь пояснять, что не так, может быть и пост писать не стоило?

>>1917424

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

Аноним 22/01/21 Птн 00:51:22 191770642
>>1917461

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

>>1917494

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

Аноним 22/01/21 Птн 01:23:46 191772843
>>1917702
>Если ты не хочешь пояснять, что не так, может быть и пост писать не стоило?
Я смотрю ты сам дохуя ему пояснил.
Аноним 22/01/21 Птн 01:33:17 191773044
>>1917424
Сколько времени ушло на вкат?
Аноним 22/01/21 Птн 01:34:11 191773145
Я понимаю, что тред не только для опытных, но и нубов, но давайте его в детский сад не превращать по ёбнутому доброчановскому принципу "потому, что". Если спрашиваешь, то хоть сам сперва поищи решение с полчаса - имей совесть.
Всё таки он не только для нубов, но и для всех остальных.
Аноним 22/01/21 Птн 02:00:03 191773746
Screenshot.png 32Кб, 649x637
649x637
>>1917260 (OP)
"Итак, сделав последнюю выплату по кредиту, наш школьник собрался было идти домой и направился к ст.м. Площадь Восстания, как вдруг его взгляд привекла реклама нового планшета Apple New Ipad 32Gb (всего за 39999 р). Понятно, что вскоре наш незадачливый любитель яблок уже держал в руках и поглаживал новый девайс аки кота-манула и чуть слышно шептал «моя прелесть». Поскольку денег у нашего героя уже не было, он решил воспользоваться услугой «покупка в кредит без первого вноса». Кредит предлагают 3 банка, и все на разных условиях:

кредит за 4% и (мелким шрифтом) 500 р комиссии в месяц от HomoCredit
кредит за 3% и 1000 р комиссии в месяц от того же банка (Softbank), что и в первой задаче
нереально вкусное предложение от StrawberryBank за 2% в месяц, без комиссии, но с платой в размере 7777 р за открытие счета (эту сумма прибавляется к сумме долга)
Задание: воспользовавшись ранее купленным айфоном (и полученными на сами знаете каком сайте знаниями), определи наиболее выгодный кредит. Платить школьник, как и прежде, может не более 5000 р. в месяц. Сначала начисляются проценты и комиссия, а только потом происходит выплата."

ИТОГИ МОЕГО РЕШЕНИЯ:
Итоговая сумма кредита SoftBank: 46198.97
Итоговая сумма кредита HomoCredit: 46598.96
Итоговая сумма кредита StrawBerry: 53575.98

Я гений кодинга?...
Аноним 22/01/21 Птн 02:01:37 191773847
>>1917737
РЕШАЛ БЕЗ ПОДСКАЗОК
Аноним 22/01/21 Птн 02:26:32 191774148
>>1917738
Молоца - теперь возьми пирожок за щеку.
Аноним 22/01/21 Птн 02:27:15 191774249
GornichniyHueso[...].png 117Кб, 515x728
515x728
Аноним 22/01/21 Птн 02:39:53 191774650
>>1917737
Чот сложно. Вот я накидал быстро https://ideone.com/QN1ix0
Как минимум ты проебался с оплатой до начисления процентов и с добавлением 7777 в конце, а не в начале.
Аноним 22/01/21 Птн 02:48:37 191774951
>>1917746
>и с добавлением 7777 в конце
Так 7777 не добавляется к подверженной процентным изменениям и комиссии сумме кредита, это единичный платёж за открытие счёта.
Аноним 22/01/21 Птн 02:48:53 191775052
Аноним 22/01/21 Птн 02:49:29 191775153
>>1917749
> но с платой в размере 7777 р за открытие счета (эту сумма прибавляется к сумме долга)
> прибавляется к сумме долга
Аноним 22/01/21 Птн 02:50:26 191775254
>>1917751
Зачем ты так мощно меня приложил?...
Аноним 22/01/21 Птн 03:10:52 191775955
>>1917750
Решений может быть больше одного. Зачастую нужно выбирать наиболее удачное под конкретную ситуацию.
Аноним 22/01/21 Птн 03:17:12 191776156
>>1917759
Ебать ты квантовый компуктер.
Аноним 22/01/21 Птн 05:12:50 191778057
>>1917424
Пипец. Сорри, но ларавельщик - не программист. следующий шаг - писать сайты на winx или tilda. Хотя. Подход мне нравится. Нам надо больше сироток (с).
Пусть будет побольше ларавельщиков и прочих имитаторов. Толпы джуниоров с высшим образованием, которые пятистрочный обработчик формы обратной связи даже без композера и ларавела не могут поставить. И при любом намеке на написание какого либо элементарного класса начинают пространно рассуждать про масштабируемость, совместимость и пугают всех плохими велосипедами да неизбежными костылями.
Тогда у меня постоянно будет работа - переделывать их перегруженных и кособоких кадавров в более менее юзабельные веб приложения в четверо урезанные сроки и с десятикратным ценником, так как за дурость следует платить, а не нравится - пусть походят по рынку поищут спецов.
ЭТо почти как с мобильными приложениями последнее время - где верх мастерства - это засунуть в шаблон вебвьюхи сайт, без малейшего понимания сишарпа или свифта, но с выученным наизусть расположением кнопок интерфейса конструктора.
Аноним 22/01/21 Птн 05:35:35 191778558
>>1917494
Код новичка как код. Работает и работает. Оценивать нечего. Нет структуры приложения как такового - непонятно, чего хочешь достичь. Оценивать можно, когда что-то сделаешь путное. То есть представишь задачу, продумаешь и создашь ее решение. Вот исходя из того, как ты сделаешь и можно будет что-то оценивать.
А то как ты строки оформляешь, как записи типа "==false" да в хтмл пхп запихиваешь для меня просто показатель того, что ты новичок.
У прожженых пхпшных тварей таких конструкций не увидишь
Будет вроде $_SESSION['name']&&$_SESSION['city']?$this->hello:$this->nafig; как минимум, и соотв. строки будут
как 'бла-бла ' . $name . 'бла - бла'; без извратов с переменными внутри двойных и фигурными скобками, так как чревато.
Аноним 22/01/21 Птн 05:56:24 191778859
>>1917750
Правильно у 1917746 так как там более-менее грамотно сделана
структура кода - функция с входящими как универсальный метод.
Код 1917737 явно новичок, создает кучу ненужных переменных.
В пыхе чем меньше переменных, тем лучше. Логически - есть переменная - процент. У банков она разная, и всего то.
Чел же создал три по сути переменные, которые вообще-то как бы константы. и соотв черти что а не код. А если банков не три, а семьсот к примеру - семьсот переменных будешь создавать? Я своих "коллег" за такое морально унижаю даже если в первый раз. При рецидивах - и физически.
То есть косяк на уровне понимания алгоритма.
Переменные - процент, комиссия, взнос. = больше нет и быть не может. И на основании их строится функция метод.
Как то так.
Аноним 22/01/21 Птн 08:08:44 191781760
>>1917780
Тоже так считаю. Пока есть такие "програмиисты" у меня будет большая зарплата. Они для себя новый мир открывают, когда говоришь им, что в ларе можно свои классы писать и в папочку апп складывать. Видел километровые контроллеры в которых написан код всего приложения.
Аноним 22/01/21 Птн 09:24:33 191784561
Раз такое дело, аноны, посмотрите и мое решение задачки ОПа про айпад
https://ideone.com/LBdizC
Аноним 22/01/21 Птн 09:32:00 191785062
>>1917845
$paymentTotal = 0 + $openingAccountPayment;
Аноним 22/01/21 Птн 09:32:16 191785163
Аноним 22/01/21 Птн 10:30:48 191787264
>>1917311
ну же, анон, помоги. куда двигаться то?
Аноним 22/01/21 Птн 10:35:40 191787665
>>1917436
Любитель покопаться в говне? без обид
Аноним 22/01/21 Птн 10:37:37 191787766
>>1917443
Тебе еще в том треде расписали всё.
Нулевым идти на фриланс - не вывезешь.
Устраивайся в офис/на удаленку, наврав про опыт в рогах-копытах.
Аноним 22/01/21 Птн 10:38:34 191787967
>>1917452
Ты хоть представляешь, какой там конкурс?
Аноним 22/01/21 Птн 10:39:35 191788068
>>1917463
Он хотя бы что-то пытается делать.
Уже за это уважуха
Аноним 22/01/21 Птн 10:43:08 191788369
>>1917730
Около года.
Сначала были питон/джанга. Едва осилив основы питона, полез в джангу писать тудулист. Пробовал удаленку на джанге - не зашло.
Потом полез в пхп/ларавел, тоже сразу полез писать пет на фреймворке
Аноним 22/01/21 Птн 10:44:39 191788570
>>1917817
>Видел километровые контроллеры в которых написан код всего приложения
Видел такое на проде... Просто пиздец
Аноним 22/01/21 Птн 10:48:26 191788771
>>1917780
К слову я уже давно вышел за рамки и фреймворка и языка. Умею создавать папочки.
Я форшу фреймворки, потому что это скорейший путь выхода на работу. А там уже встанут реальные задачи и будет понятно, в каком направлении расти.
Всяко лучше, чем сидеть что-то невнятное лепить на голой пыхе. Такое мб лет 20 назад актуально было. Но не сейчас, когда всё делается херак-херак, слепил из готовых компонентов и в прод.
А те, кто хотят что-то своё с нуля писать, вряд ли выберут пыху.
Аноним 22/01/21 Птн 11:57:52 191792172
16085435067050.png 37Кб, 293x326
293x326
>>1917788
>Я своих "коллег" за такое морально унижаю даже если в первый раз. При рецидивах - и физически.
Аноним 22/01/21 Птн 13:24:46 191797973
Сап двощь, если для сайта мне нужны две глобальные роли, например Продавец и Покупатель, имеет смысл для них делать отдельные сущности со своими логинами, может даже отдельные таблицы (у продавца больше инфы должно быть о себе), чтобы как-то избежать в коде вот этого вот if $user->isSeller(), и разграничить это явно на уровне приложения
Аноним 22/01/21 Птн 13:26:50 191798074
>>1917883
А отдельно на пхп/ларавел сколько ушло? Сложно было?
Аноним 22/01/21 Птн 13:28:34 191798475
16105702053693.png 215Кб, 521x937
521x937
>>1917260 (OP)
А я напомню вайтишникам, что вкатываясь в IT через пхп вы навсегда станете низкоквалифицированным таджиком от мира современной разработки и никогда не увидите ни 300к/наносек, ни ламповой удаленки за доллары, ни релокации в Европу.
Аноним 22/01/21 Птн 13:30:07 191798676
>>1917984
Что мешает выучить PHP, подрабатывать и в то-же время учить другие языки?
Аноним 22/01/21 Птн 13:36:43 191799077
>>1917986
Представил как свеженький пыха даун джун приезжает домой после восьми часов мозгоебли и пытается читать условный Core Java, и люто проиграл.
Аноним 22/01/21 Птн 13:39:25 191799378
>>1917990
Ну ок, предложи более лучшие языки для веб-разработки.
Аноним 22/01/21 Птн 13:41:09 191799479
>>1917980
Месяца 3 мб. Сложно не было, т.к. MVC фреймворки очень похожи
Аноним 22/01/21 Птн 13:45:51 191800380
>>1917993
мне поебать что в вашем вебговне сейчас лучшее, я мимошел двачнуть господина >>1917984
Аноним 22/01/21 Птн 13:46:56 191800481
>>1917984
> вы навсегда станете низкоквалифицированным таджиком

А можно устроиться в фейсбук или в наш вк, им норм на php.

> никогда не увидите ни 300к/наносек

Наоборот, на php проще стартап сделать. И монетизировать веб приложуху проще чем что-либо ещё.

> ни ламповой удаленки за доллары

Удалёнки на похапе сколько хочешь.

> ни релокации в Европу.

В Европе пишут на php

Аноним 22/01/21 Птн 13:47:39 191800582
>>1917994
Посоветуй курсики какие-нибудь, через что осваивал.
Аноним 22/01/21 Птн 13:47:44 191800683
Аноним 22/01/21 Птн 14:06:54 191802584
>>1918005
laracasts
и у елисеева есть мастер класс, где с 0 пилит клон авито на ларавеле
Аноним 22/01/21 Птн 14:10:30 191802885
Аноним 22/01/21 Птн 14:21:14 191804086
a90e99932b334ab[...].png 159Кб, 400x173
400x173
Аноним 22/01/21 Птн 14:34:48 191805287
>>1918004
>на php проще стартап сделать
Это какие?
Аноним 22/01/21 Птн 14:42:35 191805888
>>1918052

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

Просто добавил и индексируештся.

Второй по простоте стартап это мобильная приложуха, наверно.
Аноним 22/01/21 Птн 14:43:37 191805989
>>1918052
А наклепать проще всего на Rails или Laravel. Но рельсы мертвы и руби сложнее пыхи
Аноним 22/01/21 Птн 14:45:06 191806190
>>1918059
>руби сложнее пыхи
В чём?
Аноним 22/01/21 Птн 14:46:23 191806391
>>1918059
Рельсы живы,не надо тут
Оч крутой фреймворк
Аноним 22/01/21 Птн 15:03:43 191806992
На пхп можно зарабатывать больше 100к? Есть два знакомых, которые на реакт с нуля вкатились и один уже 170к имеет, а другой 210к. При том первый имеет пол года опыта, а другой полтора. Вот с пхп такое возможно? Или 70к для пхп предел?
Аноним 22/01/21 Птн 15:19:35 191807793
>>1918061
> В чём?

В руби своя атмосфера. Надо уметь ебаться с магией и с DSL'ями, там ООП по заветам ИльичаКэя. А php это почти тот же си. Иногда такой же дырявый. Ну проще он бля ну хуй знает. И непривычный пиздец. В этом плане пхп проще.

Хотя я люблю руби, вопросов нет.

>>1918063

Производительность занесите плез

>>1918069

Можно. Но зависит от города. В Москве получают.


Аноним 22/01/21 Птн 15:21:31 191808194
Аноним 22/01/21 Птн 15:21:41 191808295
>>1918077
>Производительность занесите плез
Ты новый твиттер собрался пилить
для малого и среднего он крут
Ларавел тоже для сильных нагрузок тоже не айс
Аноним 22/01/21 Птн 15:23:39 191808496
Аноним 22/01/21 Птн 15:24:48 191808797
>>1918069
Сегодня получил офер на 120к.
Еще смотрел ваки удаленки. На сеньерских позициях вполне себе можно до 200к поднимать.

Но насчет реакта ты прав, сейчас там платят больше и вкат проще.
Аноним 22/01/21 Птн 15:27:36 191809098
>>1918084
>>1918087
Что для работы с реактом надо помимо самого реакта знать?
Аноним 22/01/21 Птн 15:28:10 191809199
Аноним 22/01/21 Птн 15:28:52 1918092100
>>1917984
На чистом пхп никто не работает как правило, всегда требуется знание баз данных и фронта, затем подтягивается по любому js node react и так далее. Все зависит от конкретного случая. Но вкатиться на минималках на вебе через понимание апач+пыхи+js однозначно проще, чем искать вакансии джуниора на java или си, т.к спрос на порядок выше и реально больше прикладных задач можно сделать. Потом по любому подключаются всякого рода редиски, Всегда есть куда расти, подключать массу сервисов - амазон, азюре, всевозможные дап, и т.п. Рано или поздно вывозит на необходимость освоения java и cи при необходимости серверных решений для медиа - данных и тп. То есть прямиком в фулл-стек. Другой вопрос - это застрять на пхп. Тогда да, таджик. Но тут не в пыхе уже дело, а в отстутствии сферы применения навыков и знаний или тупо в лени.
Но так же можно застрять где угодно. И из моего опыта фул-стекеров, которые начинали с пыхи даже больше, чем оверпродвинутых фанатов си++ и java, и особенно питонщиков,застрявших в поисках максимально теплого места и перебивающихся фрилансом, которых пруд пруди, и которым планку сбили - работы нормальной по их запросам у них постоянно нет, поскольку их навыки слишком узкие для решения востребованных задач.
Аноним 22/01/21 Птн 15:29:51 1918093101
>>1918087
На собесе сильно дрочат? Есть вопросы, которые нужно звучить?

мимо собираюсь менять работу, до этого два раза устраивался по знакомству
Аноним 22/01/21 Птн 15:34:25 1918096102
>>1918082

Ну по-моему рельсы даже ларавелю поддерживает.
А по чистой скорости php с джавой тягается.
Аноним 22/01/21 Птн 15:36:14 1918098103
>>1918069
блять опять этот даун уже третий тред подряд засирает
Аноним 22/01/21 Птн 15:36:19 1918099104
>>1918096
Ну вы же на чистом не пишете,а исп фреймворки с кучей абстракций и слоев
Аноним 22/01/21 Птн 15:37:10 1918100105
>>1918090

Джаваскрипт, css+html, webpack/gulp/ещё какую-то поеботу.

Ещё нужно немного понимать как бэк работает.
Аноним 22/01/21 Птн 15:48:18 1918112106
Screenshot.png 15Кб, 453x562
453x562
Почему не работает? Начинаю злится.
Аноним 22/01/21 Птн 15:50:44 1918115107
Аноним 22/01/21 Птн 15:55:12 1918119108
>>1918091
Как раз таки нода не нужна
Аноним 22/01/21 Птн 15:55:58 1918123109
>>1918100
Галп устарел.
Вебпак редко когда используют.
Для реакта есть cra, который в большинстве случаев справляется
Аноним 22/01/21 Птн 15:57:51 1918124110
>>1918087
>На сеньерских позициях вполне себе можно до 200к поднимать.
Я недавно смотрел сеньерские вакансии по пыху в своей мухосрани, отфильтровал чтобы показывало только с указанием зп. Малость охуел, самая нижняя граница которую я увидел - 4k$. Вроде бы пиздеть не должны, до этого был уверен что для пыхера 3к$ не достижимы.
Аноним 22/01/21 Птн 15:58:44 1918125111
>>1918099

Пишем, ещё как пишем. Что-то серьёзное только на чистом с библиотеками.
Аноним 22/01/21 Птн 15:59:09 1918128112
>>1918093
В этот раз несильно дрочили.
Спросили пару фич пхп, за ООП и СОЛИД.
Дали написать сортировку - написал пузерык и назвал алго сложность 1 вариант улучшения.

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

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

Мне например было интересно услышать, как они справляются с легаси, поэтому задал на эту тему несколько вопросов.
Аноним 22/01/21 Птн 16:00:06 1918131113
>>1918123

Я через слэш написал потому что не в теме чё там у этой фронтент петушни в тренде. У нас webpack везде.

У фронтенд петушни каждый год что-то устаревает, ещё следить за их трендами
Аноним 22/01/21 Птн 16:00:16 1918133114
>>1918128
А что делает контора?
Аноним 22/01/21 Птн 16:01:40 1918135115
>>1918124
>для пыхера 3к$ не достижимы
Если знать разговорный английский и не такие суммы достижимы
Аноним 22/01/21 Птн 16:02:14 1918136116
>>1918133
Интегратор казино/рулеток/ставок на спорт. Чешская контора.
Аноним 22/01/21 Птн 16:03:59 1918137117
>>1918124

Та дело в том что в принципе в теории зарплаты сеньоров не ограничены. Когда речь идёт о сеньорах, тут очень сложно говорить о сравнении одного с другим. От Синьора вообще зависит будут ли джуны писать говнокод или нет. Хороший сеньор просто не допустит говнокода и даст жунам конкретные задачи, укажет best practices и тд.

Там вообще доходы очень разные. И в hh не так легко их найти, так как чаще всего на эти доходы не берут людей с улицы а повышают. Всё таки синьор из другой фирмы это не то. Ему нужно время вникнуть в проектоту.
Аноним 22/01/21 Птн 16:10:32 1918144118
>>1918137
Чем отличается джун от мидла и мидл от сеньора? Где проходят грани?
Аноним 22/01/21 Птн 16:17:08 1918149119
>>1918144
Джун - говно без задач, ему можно давать только самые простые таски и пристально следить, чтобы в код не насрал.
Мидл - рабочая лошадка. Берет задачи из беклога и делает, все подробности выясняет сам.
Синьор - следит за качеством проекта (раздает пиздюлей джунам и мидлам), работает с бизнесом (выясняет требования, оформляет в таски), изредка что-то сам пишет
Аноним 22/01/21 Птн 16:21:14 1918153120
>>1918144
>Чем отличается джун от мидла и мидл от сеньора? Где проходят грани?

Сеньор просто может написать убер с нуля сам, так как уже набил руку в различном проектировании, просто в разработке, в девопс хуйне. Миддл обычно тупо гребет таски и пока не писал убер с нуля сам, поэтому напишет его через жопу или примитивно не в плане кода, а в плане архитектуры и юзания инфраструктуры, джун это такой миддл только который еще мало получает и может не знать о существовании каких-то подходов и практик, не знает каких-то вещей о языке или инфраструктуре, то есть типа он не в курсе что типа что-то надо делать через очереди или ивенты или многопоточно, кругозора нет
Аноним 22/01/21 Птн 16:27:15 1918154121
>>1918144

Проще всего - уровнем вовлеченности и менеджментом.
То есть если тебе скидывают задачи в жЫре или ещё где вы там сидите, спрашивают сроки - ты жун.

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

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

Ну ты понел. А зарплата Синьора может зависить напрямую от успеха проекта. Премии и тд не редки.
Аноним 22/01/21 Птн 16:38:27 1918157122
>>1918149
>Синьор - следит за качеством проекта (раздает пиздюлей джунам и мидлам), работает с бизнесом (выясняет требования, оформляет в таски),
Этим разве не отдельный человек должен заниматься? Продакт менеджер или как его там
Аноним 22/01/21 Птн 16:52:11 1918166123
Screenshot.png 16Кб, 280x375
280x375
Что означает разная подсветка у текста снизу?
Аноним 22/01/21 Птн 16:53:47 1918168124
>>1918157
Бывает такой косяк, когда "отдельный человек" пытается справиться, нихера не разбираясь в программировании. Как правило такие проекты заканчиваются тем, что проект намертво встает колом или ползет медленнее улитки, так как хитрожопые яйцеголовые прогеры всегда убедят его, что "так невозможно сделать, а для этого надо еще дофига и больше времени и не факт что получится" и т.п., злоупотребляя доверием тупого магла и разводя его и начальство как школьников ради веселого оплачиваемого шлангования и активного ибд со скоростью три строчки кода на четверых в неделю. Как правило, от жадности глупого начальства такое делается. Иногда существует неограниченный период времени. Сам знаю фирмы и компании со штатом из 50+ прогеров, верстальщиков и дизайнеров, которые дружно "поддерживают" пятистраничный корпоративный сайт на вордпрессе, и смена адреса электронной почты на странице контактов занимает полторы недели совещаний и планерок, а затем еще неделю выяснения, кто будет исполнителем и собственно само исполнение. Мне лично очень нравятся такие коллективы.

Опытные же люди давно в курсе, и ставят на эту роль сеньора-помидора, который бы и сам тупо мог собрать бы весь проект, если бы фактор времени был бы не важен. Тогда все более менее рационально получается. Но это как правило только тогда, когда контора действительно делает серьезный проект. А для обычных кобанчиков даже опытные сеньоры быстро смекают, что в глобальных масштабах вариант 1 более правилен. Потому что маглы это маглы, им не дано понять, как и почему правильно делать их проекты, поэтому их дело - платить и повиноваться прогеру, и за каждый косяк на корачках ползать, чтобы починили. Так всегда было и будет. :)
Аноним 22/01/21 Птн 17:13:27 1918179125
16106562387890.jpg 115Кб, 645x912
645x912
>>1917877
Ты меня с кем-то спутал, анон, я тут впервые пишу. Сомневаюсь, что у кого-то аналогичная мне проблема. Слишком маловероятно. Хотя шансы есть всегда и везде.
> ООО "Рога и Копыта"
— "Анон Битардов, а доказать это сможете?"
— "Анон Битардов, это означает, что вы можете заниматься полноценными проектами сразу же?"

А у Анона Битардова клок в горле и жопе застрял.
Аноним 22/01/21 Птн 17:20:01 1918185126
>>1918090
React, Redux, Router, Saga.
Какой-нибудь ui-kit типа react-bootstrap, ant, и другие
Опционально сервер-сайд рендеринг.
Ну и офк адаптивная верстка.
Аноним 22/01/21 Птн 17:22:16 1918186127
16059683299340.png 98Кб, 609x609
609x609
>>1918179
— "Анон Битардов, а доказать это сможете?"
— "Анон Битардов, это означает, что вы можете заниматься полноценными проектами сразу же?"

— "Буду краток. Вы знаете, буквально на днях я был на /pr/, провёл беседу со многими программистами, в том числе молодыми, кстати,
очень грамотные ребята. Так вот мы обсудили, в частности и данную
проблему, поговорили о текущей экономической обстановке в стране; они
так же рассказали о своих планах на будущее. Конечно, в первую очередь
их волновала проблема востребованности; не менее остро встал и вопрос по
ипотечным кредитам, но могу заверить, все эти проблемы решаемы и мы
направим все усилия, чтобы решены они были в самом ближайшем будущем. В
том числе это касается и темы, затронутой в вашем вопросе."
Аноним 22/01/21 Птн 17:22:59 1918187128
>>1918157
От размера конторы зависит.
В моей первой конторе синьором был дирек, соответственно, он базарил с клиентами, выяснял требования и нарезал таски для меня и других разрабов.
В крупных фирмах уже появляются всякие пмы, продакты, аналитики
Аноним 22/01/21 Птн 17:25:49 1918189129
image.png 55Кб, 994x350
994x350
Аноним 22/01/21 Птн 17:46:42 1918200130
>>1917443
>не могу работать официально
от армейки плохо гаситься, айайай
по поводу твоего вопроса: ищи или удаленку в любых городах естественно, благо во время пандемии это ок либо офис, фриланс для джуна гиблое дело.
поверь дохуя контор кто в черную работает. накрайняк можешь договориться чтобы ты ип оформил или же работать по договору гпх как наемный рабочий.
и если все таки собираешься на фриланс то со знаниями ларки или симфонии ты там нахуй никому не вопрешься, тем более будучи ждуном. зачастую такие проекты на фриланс абы кому не отдают. так что учи всякие битриксы, вордпрессы, джумлы, опенкарты и вот эти всякие сорта говна если действительно такой путь себе выберешь
Аноним 22/01/21 Птн 17:47:40 1918201131
>>1918200
>от армейки плохо гаситься
А где связь?
Аноним 22/01/21 Птн 17:54:35 1918205132
>>1918201
обычно люди мужского пола ищут целенаправленно неофициальную работу только в таком случае. ну или ты от алиментов гасишься, кто знает тебя
Аноним 22/01/21 Птн 18:32:09 1918238133
image.png 106Кб, 633x924
633x924
Пчелик, там справа в этой хуйне пояснение)))
Аноним 22/01/21 Птн 18:32:39 1918239134
Аноним 22/01/21 Птн 19:04:13 1918265135
Screenshot.png 18Кб, 787x594
787x594
И в чём эта ошибка ебаная?
Аноним 22/01/21 Птн 19:28:43 1918281136
>>1918265
Слепой штоле, там всё написано.
Аноним 22/01/21 Птн 19:28:49 1918282137
image.png 45Кб, 925x394
925x394
>>1918265
Учись гуглить ошибки
Аноним 22/01/21 Птн 19:36:32 1918286138
>>1918282
>>1918281
"The "Unknown modifier X" error usually occurs in the following two cases:

When your regular expression is missing delimiters.

When you use the delimiter inside the pattern without escaping it."

У меня такого нет.
Аноним 22/01/21 Птн 19:40:34 1918291139
>>1918286
У меня на скрине с гугла решение твоей проблемы.
В php функции preg_replace не нужно указывать модификатор g, т.к. он задается через параметр $limit. По умолчанию g "включён".
Аноним 22/01/21 Птн 19:41:08 1918292140
>>1918286
У тебя написано, что нет конкретно g.
Потому что его нет, ибо наколхозили отдельную функцию preg_match_all вместо него.
Аноним 22/01/21 Птн 19:47:57 1918302141
Ясно.
Аноним 22/01/21 Птн 20:26:09 1918341142
Screenshot.png 23Кб, 717x645
717x645
Как добавить в массив все найденные соответствия в тексте?
Аноним 22/01/21 Птн 20:43:29 1918355143
Аноним 22/01/21 Птн 20:45:37 1918356144
Screenshot.png 24Кб, 668x654
668x654
>>1918355
Оно создаёт подмассивы.
Аноним 22/01/21 Птн 21:30:01 1918384145
Аноним 22/01/21 Птн 21:50:45 1918393146
image.png 21Кб, 1036x115
1036x115
>>1918356
Когда научишься гуглить и доку читать?
Аноним 22/01/21 Птн 21:52:33 1918398147
>>1918384
Я гуглил, мне не выскакивало.
Аноним 22/01/21 Птн 22:49:58 1918478148
>>1918398
Что ты гуглил?
Заходишь на пхп.нет и вбиваешь свой метод, чтобы понять как он работает.
В пыхе, к сожалению, многие методы работают неочевидно
Аноним 22/01/21 Птн 23:22:24 1918521149
>>1918478
>Что ты гуглил?
Не помню... Щас посмотрим!
>php Как добавить в массив все соответствия шаблону
Вот.
Аноним 22/01/21 Птн 23:31:27 1918535150
Screenshot.png 23Кб, 647x597
647x597
>>1918356
>>1918341
>>1918521
Мы додумались как сделать хорошо! Пофиг на подмассивы уже в принципе.
Аноним 23/01/21 Суб 00:20:27 1918624151
Такие вещи как Vue используют только для создания одностраничных приложений? Или могут быть еще какие-нибудь применения?
Аноним 23/01/21 Суб 00:42:39 1918654152
>>1918624
Не обязательно одностраничники. Компонентики можно по разному использовать. Например, кнопка лайка на посте
Аноним 23/01/21 Суб 09:01:50 1918905153
>>1918535
В принципе сойдет, т.к. ты не по группам ищешь.
Тогда можно убрать круглые скобки из регулярки, т.к. ты её не используешь
Аноним 23/01/21 Суб 10:03:59 1918914154
w.jpg 54Кб, 591x422
591x422
Не могу запустить сайты на Denwer вместо моих сайтов висит эта хрень, в phpmyadmin не могу зайти тоже она висит. Что делать?
Аноним 23/01/21 Суб 10:06:49 1918915155
>>1918914
>Denwer
Ты из какой пещеры вылез, дедуль?
Аноним 23/01/21 Суб 10:23:35 1918919156
>>1918914
Так останови сервис iis, он захапал порт.
Аноним 23/01/21 Суб 10:30:45 1918921157
>>1918915
А что сейчас? В последний раз сайт делал в институте в 2006
>>1918919
Где?
Аноним 23/01/21 Суб 10:51:27 1918928158
>>1918921
Опенсервер на крайний случай. Я думал уже давно все докером научились пользоваться, а тут бля денвер, ололо
Аноним 23/01/21 Суб 11:16:07 1918929159
>>1918928
>Размер до/после распаковки 835 МБ / 5.81 ГБ
Что за адов пиздец?
Аноним 23/01/21 Суб 11:19:15 1918931160
Аноним 23/01/21 Суб 12:03:53 1918947161
>>1918931
Какой-то зверьсд для макак.
Аноним 23/01/21 Суб 12:38:23 1918960162
>>1917260 (OP)
Почему на второй картинке так много котиков?
Аноним 23/01/21 Суб 12:41:20 1918963163
>>1918928
>давно все докером
Нахуй нужен - не хватало ещё контейнер для сайтиков тащить, который ещё и далеко не везде работает - ему только 10винду подай.
Жирно будет с виндой целый день трахаться ради этого.
Аноним 23/01/21 Суб 13:00:38 1918976164
>>1918963
Оло, на чем ты там сидишь? На семере что ли?
Аноним 23/01/21 Суб 14:42:01 1919053165
>>1918963
Как раз сейчас докер отлично работает на 10 винде.
Если ты сидишь на некроговне - твои проблемы
Аноним 23/01/21 Суб 16:07:31 1919139166
Посоветуйте чего для портфолио и дрочки скилла на ларке склепать более-менее интересного. Пока что из идей только сайт объявлений типо авито и поиска работы типо hh.
Аноним 23/01/21 Суб 16:18:49 1919155167
>>1919139
>авито
Елисеева что ли смотришь?
Аноним 23/01/21 Суб 16:38:39 1919171168
>>1919155
Нет, не люблю всякие курсы ( особенно в видеоформате ), но эту идею мне принес анон этим >>1918025 постом.
Аноним 23/01/21 Суб 20:32:59 1919342169
>>1918914
Челы, а как под вайном денвер запустить?
Аноним 23/01/21 Суб 21:11:29 1919362170
Какая по канону должна быть структура директории views в ларке? Я пока что для себя представляю такой вариант:
- Конечные шаблоны, которые будут генерироваться для пользователя, в корне папки
- Папка layouts для базовых шаблонов, которые будут наследоваться
- Папка partitions для шаблонов, которые будут включаться через @include
Правильно мыслю?
Аноним 23/01/21 Суб 21:37:34 1919378171
>>1919342
>под вайном денвер
Развелось наркоманов
Аноним 23/01/21 Суб 23:53:31 1919533172
Аноним 23/01/21 Суб 23:54:14 1919534173
Трудоустроенные аноны, а у вас на работе интересные проекты вообще, или одни интернет-магазины? Можете рассказать конкретнее о последних проектах?
Аноним 24/01/21 Вск 01:49:19 1919635174
>>1919534
Международный достаточно крупный финтех. До этого околобанковские, тоже связанные с финансами, проекты. Платёжные шлюзы.
Аноним 24/01/21 Вск 02:16:25 1919643175
Какая функция приводит первый символ строки к верхнему регистру?
Аноним 24/01/21 Вск 02:23:51 1919645176
Аноним 24/01/21 Вск 02:47:56 1919659177
Screenshot.png 36Кб, 801x670
801x670
По какой причине первая буква строки-значения $string не приводится к верхнему регистру?
Аноним 24/01/21 Вск 02:55:46 1919660178
>>1919659
Дикарские наречия не поддерживаются.
Аноним 24/01/21 Вск 02:57:38 1919662179
>>1919660
Ебать, и как тогда это решать?

"Дан неграмотно написанный текст, состоящий из нескольких предложений на русском языке. Ошибки заключаются в неправильной расстановке пробелов и отсутствии заглавных букв. Исправь текст так, чтобы все предложения в нем начинались с большой буквы, а после знаков запятая, точка, точка с запятой, двоеточие, восклицательный и вопросительный знак стоял ровно один пробел (а перед ними — ни одного). Составные знаки вроде многоточия или 2 вопросительных знаков подряд должны сохраняться."
Аноним 24/01/21 Вск 02:58:35 1919663180
>>1919662
Погугли и узнай как решается, хули ты сразу бежишь в тред.
Аноним 24/01/21 Вск 03:21:07 1919670181
>>1919663
>хули ты сразу бежишь в тред.
Хочца.
Аноним 24/01/21 Вск 03:31:49 1919675182
Screenshot.png 40Кб, 835x682
835x682
Не работает решение из поисковика.
Аноним 24/01/21 Вск 09:44:33 1919735183
>>1919675
Почему каждую твою проблему я могу прогуглить за минуту, а ты нет?
Аноним 24/01/21 Вск 10:44:54 1919770184
>>1919735
Ленивый, либо глупый, либо все вместе
Аноним 24/01/21 Вск 10:52:00 1919783185
>>1919675
Какая твоя цель? Если научиться кодить - учи лучше ооп и прочие вещи.
Хочешь таки регулярки освоить - начни с малого и сам, без чужого кода.
Аноним 24/01/21 Вск 10:56:25 1919789186
>>1919783
Ему еще не помешает учиться гуглить, читать доку, дебажить и прочий программистский проблем-рисерч
Аноним 24/01/21 Вск 10:57:51 1919792187
>>1919534
Только интересные крупные проекты конечно же.
Мне кажется везде так, если ты нормальный бэкендер, а не клепальщик говна на вордпрессе.
Аноним 24/01/21 Вск 11:06:40 1919804188
>>1919792
>интересные крупные пректы
>везде так
>на php
Лол
Аноним 24/01/21 Вск 11:09:49 1919808189
>>1919792
Нормальный бэкендер пишет интересные крупные проекты на go/python/net, а не на пхп.
Аноним 24/01/21 Вск 11:12:55 1919813190
Аноним 24/01/21 Вск 11:18:30 1919818191
>>1919534
В прошлом году была платформа для нескольких интернет магазинов на моднявом стеке.
Но я свалил уволили, т.к. был не согласен с направлением развития этого говна и принятыми архитектурными решениями.
До этого был сервис постинга автообъявлений на всякие площадки типа авито.

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

Так-то любая бизнес идея может выстрелить и понадобится что-то умнее лэндинга или странички в соц сетях.
Аноним 24/01/21 Вск 11:19:56 1919821192
>>1919813
Сейчас модно пилить говно на го.
И хорошо, если это говно пилят в виде микросервисов. А то ведь попадаются макаки, которые пытаются на го писать как на пхп в монолитном стиле
Аноним 24/01/21 Вск 12:18:02 1919853193
>>1919821
О, кстати, поясните пожалуйста вкатуну за совмещение php и go. Когда такое может пригодиться, и как это вообще реализовывается?
Аноним 24/01/21 Вск 12:21:30 1919860194
>>1919853
Когда у фирмы есть старый монолитный продукт на пхп, он приносит прилично денег, а на поддержку это говна уже никаких нервов не хватает.
Тогда берут это монолитное говно и потихоньку распиливают на микросервисы, которые поддерживать на порядки проще.

Тебе как вкатуну это всё нахрен не надо. Бери один язык и катись. Оставь распил легаси говна тем, кому это интересно.
Аноним 24/01/21 Вск 12:45:12 1919864195
>>1919860
>>1919808
>>1919804

С пруфом показываешь какой крупный ВЕСЬ проект пишешь на GO/тобой перечисленное, или идёшь учить уроки.
Аноним 24/01/21 Вск 13:06:43 1919876196
image.png 195Кб, 1920x1040
1920x1040
>>1919864
Что сказать то хотел, мань?
Аноним 24/01/21 Вск 13:16:06 1919884197
Когда имеет смысл SPA?
Аноним 24/01/21 Вск 13:24:28 1919889198
T-Vp4MNeuqk.jpg 34Кб, 537x162
537x162
Что это за хуйня? Как имя переменной может что-то ускорить?
Аноним 24/01/21 Вск 13:27:03 1919890199
>>1919889
Это не имя переменной, а запись в конец массива.

$foo[] = $boo;

Так, например.
Аноним 24/01/21 Вск 13:27:03 1919891200
Аноним 24/01/21 Вск 13:27:54 1919892201
>>1919884
Когда фронт сложнее парочки форм
Аноним 24/01/21 Вск 13:29:29 1919897202
>>1919892
VK уже можно считать spa?
Аноним 24/01/21 Вск 13:33:18 1919899203
>>1919897
VK - гребаный монстр. Он не поместится в один spa.
На мобилке уже начали фронт вк распиливать на отдельные сервисы
Аноним 24/01/21 Вск 13:37:58 1919900204
>>1919876

> postgress
> крупный проект
Засмеялся-проиграл тред? В больших проектах на таких СУБД только хранят всякую мелочь.
Ну-ка покажи количество строк в этой базе данных.
Аноним 24/01/21 Вск 13:41:13 1919901205
Аноним 24/01/21 Вск 13:47:25 1919906206
>>1919901
Вот для чего нужен GO - это тупо дома для себя что-то там поделать на выходных и забыть, ну ещё впарить на говнокурсах. Так нахуй никому не нужен, говорю)

У меня в базах в одной таблице по 300 миллионов данных, со связями с другими таблицами - у меня за одну-две секунды это всё переваривается на PHP. Я хуй знает для чего GO)
Аноним 24/01/21 Вск 13:49:16 1919907207
>>1919900
Там neo4j основная база
В постгре только учетки лежат
Аноним 24/01/21 Вск 13:49:25 1919908208
>>1919899
Но по сути,там от пыха уже мало что осталось?
Уж слишком много интерактива,реалтайма...
Аноним 24/01/21 Вск 13:49:58 1919909209
>>1919901
Надо было в папочку work закинуть - солидно бы смотрелось, да?
Аноним 24/01/21 Вск 13:51:11 1919911210
>>1919906
>для чего GO
Осваивать инвест бюджеты
Аноним 24/01/21 Вск 14:18:00 1919940211
>>1919735
Хз, а что ты гуглишь?
Аноним 24/01/21 Вск 14:35:58 1919945212
>>1919940
Загуглил метод php mb_ucfirst
И не обнаружил его в офф доке. Там был другой метод для преобразования регистра
Аноним 24/01/21 Вск 15:19:47 1919975213
>>1919945
>Там был другой метод для преобразования регистра
В офф.доке? Какой?
Аноним 24/01/21 Вск 16:08:41 1919998214
Аноним 24/01/21 Вск 19:17:41 1920211215
>>1917737

У тебя ошибка в условии цикла. Там пишут не условие завершения, а условие продолжения. У тебя это $creditSum <= 0, то есть выполнять цикл пока $creditSum <= 0. Цикл в итоге не выполняется ни разу.

Ты можешь в этом убедиться, поставив echo "Loop"; внутри цикла.

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

Еще ошибка тут: $creditSum = $creditSum -= $payout. Надо либо -= заменить на -, либо убрать $creditSum = ... слева.

Еще ошибка тут: if ($creditPay = 1.03) - ты использовал присваивание значения переменной (=) вместо сравнения (==).

По одному из кредитов общая сумма выплаты равна 61270.

В общем, переделывать надо весь код.
Аноним 24/01/21 Вск 19:29:22 1920226216
>>1917845

> if ($creditSum < $payout) {

Этот if можно убрать, используя функцию min/max для вычисления размера оплаты:

оплата = меньшее из (стандартной оплаты, остатка по кредиту).

А так, верно.

>>1917979

Вообще, такая ситуация, когда есть однотипные, но разные сущности, называется наследование таблиц. Есть три стандартных паттерна: Class Table Inheritance, Single TI, Concrete TI.

Single TI, например, это и есть складывание всего в одну таблицу.

Наверно, вместо отдельных сущностей лучше использовать один из трех паттернов.
Аноним 24/01/21 Вск 19:56:18 1920244217
>>1919890
И что она должна делать здесь например?

$arr = ['sfg','werwer','ww'];

$foo[] = $boo;

foreach ($arr as $val) {

echo "$val";
}
Аноним 24/01/21 Вск 20:45:43 1920297218
Сап, двач. Вопрос следующий, касается ларавеля. У меня например есть моделька.

У этой модельки довольно сложная логика проверки валидности.

Это требует запросов в базу и тд. Следующий вопрос:
Куда это запихнуть?

Я это пока для тестов запихнул в request в валидацию, но оно там явно не пренадлежит. Это бизнес логика.

Такое чувство, что мне надо оверрайдить create в модели.

Вся же бизнес логика должна быть в модели, верно?
Аноним 24/01/21 Вск 20:50:51 1920301219
>>1920297
Или это надо в сервис захуярить?
Аноним 24/01/21 Вск 21:03:45 1920310220
Аноним 24/01/21 Вск 21:06:14 1920311221
>>1917737
Тебе уже расписали твои ошибки, и даже показали правильное решение: >>1917746
Но на момент прохождения урока "Функции и новый айпад" мы еще не знали о возможности создания циклов через while. Так что у меня получилось так: https://ideone.com/i6Vwdb

Ответы сверил с >>1917746 , однако не понял, где в коде >>1917746 проверяется, не превышает ли константа меньшего платежа остаток по кредиту. Может быть, неведомое мне колдунство скрыто в строке return $paid + $sum; ?
Что это обозначает, поясните, пожалуйста.
>>1917984
То-то у тебя жизнь сладкая, насыщенная и не лишенная смысла: катаешься по пхп-треду и изливаешь говно. Ради такого стоит постичь С++, да.
>>1918115
А я вот не понял. Вернее понял, где ты ошибся, но не понял, нахуя ты в регулярке пишешь [а-яёА-ЯЁ], если у тебя после нее стоит ключ i?
Аноним 24/01/21 Вск 21:20:16 1920317222
>>1920311
>Может быть, неведомое мне колдунство скрыто в строке return $paid + $sum; ?
Цикл останавливается с суммой в нуль или переплатой-минусом, вот он и добавляется к выплатам для правильного счета.
Аноним 24/01/21 Вск 22:12:57 1920355223
>>1920317
Теперь понял. Просто забыл, что итогом функции является именно то, что return.
Мудрый Анон, взгляни, пожалуйста, на мое решение первой бонусной задачи про клавишу Shift: https://ideone.com/4JJzk6
Не перемудрил ли я чего? Что в коде режет глаз? Что посоветуешь?
Специально писал с подробными комментариями. Правильно ли я понимаю действия, выполняемые строками кода? Спасибо.
Аноним 24/01/21 Вск 23:16:44 1920412224
Аноним 24/01/21 Вск 23:35:56 1920436225
А как администратор попадает на свою панель управления сайтом?
Аноним 25/01/21 Пнд 01:56:41 1920625226
>>1920436
Со страницы логина.
Аноним 25/01/21 Пнд 03:47:15 1920702227
>>1920436
>панель управления сайтом
Кстати, а зачем веб админка нужна, по крайней мере в мелких бложеках или интернет магазинах? Не безопаснее ли прямо в базу грузить данные или для десктопа приложение написать, если гуи так нужно. Если что, сорри за нубский вопрос.
Аноним 25/01/21 Пнд 03:50:59 1920708228
>>1920702
Чтобы девачьки могли хуярить, а не кампунктерщики.
Ну и зачастую просто берут готовый движок, более продвинутый чем требуется, в котором это уже есть, так хули не пользоваться.
Аноним 25/01/21 Пнд 04:56:54 1920758229
>>1920702
Чтобы разные криворукие овнеры могли добавлять на сайт всяку разную херню и ничего при этом не поломали.
Аноним 25/01/21 Пнд 05:02:47 1920759230
Screenshot.png 25Кб, 794x729
794x729
Почему не работает суперкод который я насоображал гигамозгом? Решал задачу на считалочку. В функции идёт переборка элементов, при каждом переборе к переменной $i прибавляется 1, при значении $i в 5 элемент перебирающийся в данный момент должен стираться и переменная $i обнуляется. Что не так?
Аноним 25/01/21 Пнд 05:04:04 1920760231
>>1920759
А, стопэ... Щас попробую сам разобраться...
Аноним 25/01/21 Пнд 05:12:01 1920761232
Screenshot.png 26Кб, 833x742
833x742
>>1920759
>>1920760
Исправил все ошибки но не полегчало. Вопросы, предложения?
Аноним 25/01/21 Пнд 05:58:51 1920766233
>Эти дегенераты до сих пор решают задачки для имбецилов вместо того, чтобы верстать сам сайт, как нормальный белый человек
Аноним 25/01/21 Пнд 09:29:50 1920794234
>>1920625
но там получается должен быть отдельный кусок кода именно для админа,что бы вместо обычного акка юзера загрузилась панель админа?
Аноним 25/01/21 Пнд 09:38:38 1920799235
>>1920759
В типах разбираешься? Сразу используй строгую типизацию, привыкай.
после <?php
declare(strict_types=1)
function(string $str, array $arr) например

нормально называй функции и на английском. Визуально разбивай код на блоки - хотя бы отступом отделяй.
Аноним 25/01/21 Пнд 09:42:14 1920801236
>>1920794
Ну да. Отдельная страница логина в админку. Отдельные страницы (контроллеры) самой админки. Технически это может быть вообще другой сайт (веб-приложение), просто с доступом к базе собственно сайта который админят. Если хочется совсем необычного, скажем если у тебя десятки лендингов в них можно придумать какое-то простенькое api и админить все эти лендинги с одной универсальной админки (для лендингом много функционала не нужно, максимум там какие-то счетчики метрик рекламы обновлять).
Аноним 25/01/21 Пнд 09:42:25 1920802237
>>1920794
В базе должна быть роль у юзера, админ или юзер.
Ты можешь выбрать кто может в админку вообще заходить.
Если есть разные админки для юзера и админа, то либо можно их вынести в разные роуты, либо разделить куски,
дальше в шаблоне или контроллере if($user->getRole() === 'admin') { то вывести панель админа} else {вывести панель юзера}
Аноним 25/01/21 Пнд 10:11:13 1920815238
>>1920801
но тогда в коде уже должен заранее быть логин и пароль админа?
там где проверяют логины и пароли юзеров должен быть отдельный if($user==$admin)?
ну это если на чистом
Аноним 25/01/21 Пнд 10:31:29 1920829239
Аноним 25/01/21 Пнд 12:40:43 1920974240
Аноним 25/01/21 Пнд 12:50:21 1920987241
>>1920974
А не, заметил что неправильно сделал вторую часть, позже скину.
Дайте код Двача 25/01/21 Пнд 13:55:06 1921048242
Дайте код двача и все его плюшки
Аноним 25/01/21 Пнд 15:42:23 1921210243
>>1918976
>>1919053
Перепись маняхипстеров от пхп ИТТ.
Вы там по 20 проектов каждый ведёте на разных платформах, макаки? А ничего, что он далеко не везде и не для всех задач нужен вообще?
Даже удивлён, что всего 2 дебила нашлось на весь тред.

>>1918963
Если не нужен в твоей работе - не юзай. Это не такая необходимая вещь, как тот же гит.
Аноним 25/01/21 Пнд 16:42:04 1921301244
>>1919860

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

Это дрянь, от которой лучше держаться подальше.

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

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

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

Другой пример. Микросервисам A, B и C надо работать с одной и той же сущностью (например: Пользователь). Что делать? Копипастить код и поддерживать 3 варианта одного и того же кода? Когда у юзера появятся новые поля, добавлять их в три микросервиса? Выносить в библиотеку и мучаться с тем, что одному сервису нужна одна версия библиотеки, а другому - другая? Сплошная боль и мучение. А в монолите такой проблемы просто нет.

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

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

Микросервисы требуют большего расхода рабочего времени на разработку и поддержку. Потому они и подходят большим компаниям, где много рабочей силы.
Аноним 25/01/21 Пнд 17:05:23 1921338245
>>1918960

Потому что это кошачье кафе.
Аноним 25/01/21 Пнд 17:08:04 1921342246
Аноним 25/01/21 Пнд 17:09:14 1921344247
>>1920829
Чтоб считалочка была.
Аноним 25/01/21 Пнд 17:10:03 1921346248
>>1920799
>В типах разбираешься? Сразу используй строгую типизацию, привыкай.
Нет, меня не учили в курсе с ОП-поста.
Аноним 25/01/21 Пнд 18:45:50 1921481249
Screenshot.png 28Кб, 831x726
831x726
>>1920799
Сделал как ты сказал, не помогло. ЧЯДНТ ЧЯДНТ ЧЯДНТ???
Аноним 25/01/21 Пнд 19:06:51 1921504250
951367c657bb3bb[...].jpg 57Кб, 1280x720
1280x720
Аноним 25/01/21 Пнд 19:22:40 1921528251
Аноним 25/01/21 Пнд 20:03:23 1921585252
Как передать переменную внутрь html?
Аноним 25/01/21 Пнд 20:06:16 1921589253
>>1921342
>отрезать от строки первую букву, переводить ее в верхний регистр и приклеивать остаток
нахрена? там кирилица utf - mb_ucfirst юзай и все
Аноним 25/01/21 Пнд 22:00:16 1921716254
Аноним 25/01/21 Пнд 22:04:40 1921719255
Котята, если в проекте, написанном на ларавеле, вся бизнес логика находится в основном в контроллерах, то это автоматически считается признаком дурного тона? Даже если этот код в контроллерах написан грамотно?
Аноним 25/01/21 Пнд 22:32:29 1921744256
>>1921719
Думай не о призраках дурного тона, а о том чтобы не наступить себе на яица
Копипастишь одни и теже проверки в разные места - однажды наступишь
Зависимости между сущностями делаешь не через интерфейсы - однажды наступишь.
Делаешь слишком умные объекты знающие все обо всем - однажды наступишь.
Делаешь слишком открытые объекты позволяющие ебать себя во все щели - однажды наступишь.
И так далее...
Аноним 25/01/21 Пнд 22:33:22 1921745257
Аноним 25/01/21 Пнд 22:33:30 1921746258
>>1921481
Помогите пожалуйста мне...
Аноним 25/01/21 Пнд 22:42:51 1921755259
>>1921744
И не всегда нужно писать хороший код. Иногда нужно говнокодить. Особенно когда ты не в состоянии убедить начальство выделить тебе время на нормальный код. Тебе и так выдели много времени, почему ты хочешь целую неделю? Вот Петя не жалуется постоянно на нехватку времени, всегда все успевает.
Аноним 25/01/21 Пнд 22:54:22 1921765260
>>1921755
Тут код не поможет. Тут надо с начальством вопрос решать. Если начальство выделывается - увольняй его нафиг. Время определяешь только ты. Не устраивает их - пусть другие им говнокодят. Пока расклад такой - пользуйтесь. Начальство баловать нельзя категорически.
Аноним 25/01/21 Пнд 23:20:30 1921774261
Аноним 25/01/21 Пнд 23:21:51 1921777262
>>1921774
Они тебе помогли теперь помоги мне...
>>1921481
А то будут плохие сны снится...
Аноним 25/01/21 Пнд 23:31:08 1921790263
>>1921719
>считается признаком дурного тона?
Нет никаких признаков дурного тона. Мы ж не на балу во дворце, а приложухи пилим каждый во что горазд.

Рекомендую делать через сервисы\менеджеры - так банально удобнее. На самом деле контроллер не имеет ничего общего с логикой приложения, а является точкой входа из веб, и не более.
В контроллерах вызываются сервисы, которые и содежат логику приложения - пользователя там можно, например, зарегистровать или забанить. При работе через сервисы ты можешь забанить этого пользователя и через консольку - только напиши обработчик команды, где вызови этот сервис с нужными параметрами, полученными из командной строки. А как ты контроллер вызовешь из консольки?
Хотя тот же Опенкарт использует грязные контроллеры и вездесущий копипаст и всем норм. Но это плохой пример.
Аноним 25/01/21 Пнд 23:36:01 1921798264
>>1921765
>Начальство баловать нельзя категорически.
Двачую. Хотят говна - делай говно. Чтоб падало периодически, глючило и не работало как надо. Ну а что? Хотели быстро - НАТЕ быстро.
Если делать быстро и хорошо - будешь в мыле весь. Через год выгоришь к хуям.
Аноним 25/01/21 Пнд 23:39:35 1921803265
>>1921798
А вообще мне как-то повстречалось выражение что-то вроде "Любишь быстро-быстро всё делать? Это мама из тебя шныря такого воспитала?". Может немного по-АУЕшному, но суть отражает - быть шнырём это унизительно и неправильно. Работать надо плавно с расстановкой.
Аноним 25/01/21 Пнд 23:56:43 1921806266
>>1921481

unset($place) удаляет не элемент массива, а переменную $place. Чтобы удалить элемент массива, надо писать unset($array[$key]).

Обрати внимание, что при удалении элемента ключи и значения других элементов не пересчитываются. То есть если ключи шли как 0, 1, 2, 3 и ты удалил номер 2, то останется массив с ключами 0, 1, 3.
Аноним 26/01/21 Втр 00:00:46 1921807267
>>1921806
Спасибо добрый сэр!!!
Аноним 26/01/21 Втр 00:23:13 1921817268
Аноним 26/01/21 Втр 01:12:01 1921830269
Screenshot.png 23Кб, 455x694
455x694
Мы завершили считалочку!!!
Гуро ПХП-кода, оцените мастерство исполнения.
Аноним 26/01/21 Втр 01:12:45 1921831270
Аноним 26/01/21 Втр 01:38:39 1921836271
>>1921830
Я так и не понял, что это за хуйня и что она должна делать.
Это для какого-то конкурса непонятной хуйни?
Аноним 26/01/21 Втр 02:05:34 1921845272
Screenshot.png 404Кб, 801x765
801x765
>>1921836
Нет мы решали задачу!
Аноним 26/01/21 Втр 02:27:19 1921852273
>>1921845
Кстати прикольная тема, я думаю неплохо покидать сюда пхпшных всяких задач, максимально шизанутых, чисто для развлекухи, и предложить желающим выкладывать свои варианты решений, а потом можно будет устраивать развеселые срачи с метанием кала друг в друга, на тему у кого решение толще и длиннее!
Аноним 26/01/21 Втр 03:40:14 1921867274
>>1921845
Так у тебя же не тот результат, лол.
Аноним 26/01/21 Втр 03:42:43 1921868275
>>1921867
НУ И В ЧЁМ Я ОШИБСЯ?!
Аноним 26/01/21 Втр 03:47:20 1921869276
>>1921868
Подозреваю, что всё ломается, когда ты на ходу изменяешь итерируемый массив.
Аноним 26/01/21 Втр 04:42:21 1921879277
Хорошо раз вы такие умные - покажите как правильно...
Аноним 26/01/21 Втр 06:00:23 1921885278
Аноним 26/01/21 Втр 07:15:40 1921900279
asasas.png 13Кб, 969x369
969x369
Прорабатываю курс по ларавелу. Там начало на 5.7, потом переход на 5.8, и вот теперь на 6.0. А у меня ошибка. Вот поставил свежий Ларавел 6.20, добавляю аутентификацию - а она не ставится. Ничего путного не нагуглил. Что сделать, чтобы заработало?
Аноним 26/01/21 Втр 09:34:36 1921940280
image.png 115Кб, 638x417
638x417
Аноним 26/01/21 Втр 09:35:31 1921941281
>>1921589
>mb_ucfirst
Можно ссылку на документацию по этой функции?
Аноним 26/01/21 Втр 09:40:02 1921942282
>>1921852
Что определяет "пехапешность" задачи?
Аноним 26/01/21 Втр 09:43:08 1921943283
>>1921900
Хоть бы на гитхаб страничку пакета зашел и прочел предупреждение...

Почему в пхп треде люди настолько нелюбознательные?
Аноним 26/01/21 Втр 09:48:13 1921947284
>>1917260 (OP)
Как пхп себя чувствует в мире победивших SPA?)0)
Аноним 26/01/21 Втр 10:06:14 1921952285
>>1921947
Ну как, апишки на нем клепают, а что? В чем разница с другими бэкенд языками в этом отношении?
Аноним 26/01/21 Втр 10:34:34 1921966286
>>1921947
И какие ты можешь навскидку назвать популярные большие сайты
в виде SPA?
Мне приходит в голову только какая-то инфографика и такие идиотские сайтики с скроллингом вниз, по уёбищности примерно как почивший флэш.
Аноним 26/01/21 Втр 15:09:58 1922274287
Аноним 26/01/21 Втр 15:35:12 1922290288
>>1922274
>Facebook
Там не SPA, а гибрид.

И да - SPA довольно сомнительная хуйня, мало где нужная.

мимо
Аноним 26/01/21 Втр 15:36:57 1922293289
>>1921952
Сейчас он тебе за ноду расскажет. На деле же, писать бэк на ноде - ярчайший признак профнепригодности к бекенду. Одно дело когда пхпшник на ноде пишет и совсем другое когда жс-вронтенд-макака.
Аноним 26/01/21 Втр 16:15:57 1922323290
>>1922274
>Facebook
Они уже отказались от пыхи?
Аноним 26/01/21 Втр 17:11:52 1922372291
анонсы, кто нибудь работал с магенто 2 ? какой там вообще подход? читаю доку и нихуя не понятно блять. еще и со вторым композером не работает сука
Аноним 26/01/21 Втр 17:13:19 1922374292
>>1921947
нахуя вы кормите этого долбоеба? регулярно из треда в тред срет про свою ноду и js с частотой раз в неделю
Аноним 26/01/21 Втр 17:44:39 1922402293
>>1922372
>магенто 2
Как тебя угораздило так вляпаться?
Аноним 26/01/21 Втр 18:40:03 1922461294
>>1921943
Так в том-то и дело, что я не понимаю, что вообще тут происходит. Требуется пакет ххх, он найден, но конфликтует с другим пакетом. И что вообще в таких ситуациях делать? Я не сеньёр-помидор и не мидл, я просто хочу пересесть с вордпресса и голого пхп на ларавел. Смотрю уроки, выполняю то, что в них описано.

То есть, мне нужно было зайти на https://github.com/illuminate/console, увидеть, что там пусто, зайти на https://github.com/laravel/ui, увидеть табличку "Supported Versions", сообразить, у меня ставится 3.2, а с Ларавелом 6 совместима только 1.х, понять, как указывать композеру номер версии и написать composer require laravel/ui "1.*" и после этого получить установленный с пакет? Шаманство какое-то. Везде кричат, что композер это круто и рулез форева. А на деле даже не может выбрать совместимые пакеты. Как так-то?
Аноним 26/01/21 Втр 18:46:26 1922470295
Имеется блок heder и в нем блоки для лого(слева),имени юзера(ближе к право),сообщение и блок выйти
Чтобы это было красиво и в одну линию,я поставил display: inline-block и все вроде встало(все с отступами)
но если уменьшить окно браузера,все блоуи справа начинаю съезжать вниз в левую сторону.
Как исправить на сжимание в одной строке до талого?
Аноним 26/01/21 Втр 18:49:44 1922474296
>>1922470
До талого ещё долго - енварь наносу.
Аноним 26/01/21 Втр 18:51:22 1922476297
>>1922402
да соль то в том что как раз и пытаюсь свалить с этого говна. полтора года отгреб на всяких cms парашах, хотя в конторе были норм проекты на адекватном стеке. сказал в том месяце что не хочу работь на этом кале а хочу норм проекты на норм стеке. в итоге подкинули эту хуйню как новый сирьезный проект благо не легали хуета. вот пытаюсь в ней как то освоиться и изучить ))) параллельно конечно же ищу нормальную галеру с адекватным стэком чтобы съебаться в закат
Аноним 26/01/21 Втр 19:19:21 1922489298
>>1922474
разобрался,надо было без отступов и задать ширину
Аноним 26/01/21 Втр 19:20:55 1922491299
>>1922476
>отгреб на всяких cms парашах
Говновебстудия на фриланс-заказах что ли?

>ищу нормальную галеру
Так может и нахуй эти шаражки - в говне-то и самому копаться можно. И не кормить хозяина конторы. Опыт ковыряния в помоях у тебя уже есть вроде.
Аноним 26/01/21 Втр 20:42:19 1922567300
>>1922491
>Говновебстудия на фриланс-заказах что ли?
да тут двоякая ситуация. с одной стороны да, а с другой есть большие сложные системы даже из других стран есть заказчики лол а с другой вот такое вот дерьмо .
>в говне-то и самому копаться можно.
да впизду этот фриланс. не хочу копаться в этом говне + фрилансить и ебаться с заказчиками. хочу на норм галеру или контору со своим продуктом где будет фреймворк. а на фрилансе заказов на фреймворке с гулькин хуй. так что не выход. ну а чтобы пилить свой стартап на ларе пока средств нет чтобы тууда вкладываться и развивать хотя проектик то есть, что то же я показываю хрюшам чтобы без мыла пролезть на фреймворк по факту не имея на нем коммерческого опыта
Аноним 27/01/21 Срд 12:07:41 1923059301
>>1922567
Так может стоит приврать насчет коммерческого опыта на фреймворке?
Хрюши то не проверяют, правда ли работал на нем. Им лишь бы услышать нужную цифру N+ лет на фреймворке-нейм.
Аноним 27/01/21 Срд 12:56:37 1923098302
>>1923059
А что толку? Ну пойдёт он этап с хрюшей, потом на техническом собесе его приложат.
Аноним 27/01/21 Срд 13:00:39 1923103303
>>1923098
Раз он говорит, что писал на ларе, то не факт что приложат.
А даже если на паре вопросов приложат - запишет вопросы, подучит и на следующем собесе не приложат.
Аноним 27/01/21 Срд 13:06:27 1923114304
>>1923103
А ну, если так, то да. В принципе немного приврать про опыт, когда это необходимо, не страшно, главное чтобы был готов к тех собесу нормально, чтобы дизмораль не словить.
Аноним 27/01/21 Срд 13:12:14 1923121305
>>1923114
>В принципе немного приврать про опыт, когда это необходимо, не страшно
Сейчас это маст хэв, чтобы перепрыгнуть толпу вкатунов
Аноним 27/01/21 Срд 13:21:23 1923127306
>>1923114
>приврать про опыт
Только если петы делал. Туториалы с хелловорлдом не в счёт.
Т.е. если можешь взять рандомное тестовое на этой платформе и сделать его в приемлимые сроки - тогда есть смысол приврать про опыт.
Иначе обосрёшься обидно.
Аноним 27/01/21 Срд 13:35:44 1923157307
>>1923121
Ну вот, допустим, что приврал ты про опыт, а как же опыт работы в команде? Жиру на пет прджектах не потрогаешь, умение оценивать таски тоже.
Аноним 27/01/21 Срд 13:41:59 1923166308
>>1923157
Джиру во-первых все по разному готовят. Во-вторых осваивается за 1 день, т.к. тебе всё пояснят при онбоардинге.
А умение оценивать таски из разряда фантастики
Аноним 27/01/21 Срд 15:58:41 1923321309
Есть тут работающие симфонисты?
Аноним 27/01/21 Срд 16:17:36 1923341310
Аноним 27/01/21 Срд 17:08:20 1923458311
<div id="logo">
<a href="index.php">
<img srs="/imgages/logo.PNG" alt="logo"></a>
</div>
почему картинка не отображается?
в папке htdocs есть папка app. а в ней images
Аноним 27/01/21 Срд 17:09:59 1923461312
Аноним 27/01/21 Срд 17:10:01 1923462313
Аноним 27/01/21 Срд 17:10:55 1923466314
>>1923461
а что не так,вроде верно?
Аноним 27/01/21 Срд 17:11:22 1923468315
>>1923059
>>1922567
Вот поэтому и говорят умные дядьки - учите нативный пхп сначала, без всякого дерьма типа фреймворков-ларавелов и кмс-ов. Потому что все это дерьмо - и фреймворки типа магнет, джулм вордпрессов и всяко-разных движков на нативном пхп-js-sql и построено.
Дохуя развелось "ларавелщиков" которые на деле не в сасывают, как все работает, а тупо зубрят шаблоны. Потому что "нахуя нативный пхп нужен то?". Потому и нужен, что если нативный знаешь, то тебе похеру потом, какой движок, фреймворк или кмс. Ты изнутри их видишь, и понимаешь, как и что делать в любом случае. И в теории сам можешь собрать под себя и свой собственный ларавел, и свои кмс, и свои любые движки.
И не будет херни типа "а, это магента 2 - я не работал никогда вообще с таким, хз, не потяну, я только по битриксу и вордпрессу, и немного джулму" - когда вопрос тупо добавить кнопку или таблицу данных в базу.
Как то так. Я как раз работаю (точнее подрабатываю как хобби) в конторе где половина ларавельщиков, и половина реактеров. И я отдельно, потому что я пхп-шник, node-js ник. Вне системы типа, потому что постоянно приходится корректировать их "работу", когда у них "глаза не видят, руки делают" - то есть шаблоны не работают так, как хочет заказчик, а понимания внутренней структуры - нет и в помине. Так как "некогда объяснять - хуячь шаблоны"... а все что за рамками - типа никак.
Аноним 27/01/21 Срд 17:13:29 1923473316
Аноним 27/01/21 Срд 17:16:58 1923479317
>>1922290
Просто бывает такая штука, что делаешь себе шаблончики на пыхе ридонли и горя не знаешь, потом появляется какая-то йоба форма динамическая, думаешь ну тут нужен жаваскрипт, подрубаешь вью/реакт потому что так банально продуктивнее, потом с ростом таких динамических страниц замечаешь что дублируешь верстку у компонентов, задумываешься над тем чтобы перенести общие компоненты на вью, или оставить как есть. В итоге получается что у тебя 70% фронта всё равно работает на жсе, 30% на пхп, при этом собирается всё непонятно как, хотя можно было взять какой-то nuxtjs и горя не знать, хотя усложняется деплой, это да.
Сразу адептам жиквери или чистого жса, которые считают что для простых задач вью/реакт не нужен, во первых он весит даже больше чем вью, это если мы говорим о размере ассетов, пхпшниками жиквери код пишется обычно на один раз, потом чтобы что-то добавить, нужно сидеть и 15 минут просто вникать в этот императивный поток сознания какие классы у кого включаются/выключаются, при этом непонятно на чем мы сэкономили (наверное что не нужно вебпак запускать, ну это сильно)
Аноним 27/01/21 Срд 17:27:55 1923501318
>>1923103
адекват в треде. если в течении месяца не найду работу то планирую так и поступать. но на самом деле как показывает практика то тут про фреймворк редко что то спрашивают. в основном по теории, паттернам, языку, бд. вот на этом легко сфелится на самом деле. да и то иногда и этого бывает мало. на той неделе был собес где вместо тестового вот решал задачки + вопросы по теории. в итоге правильно ответил на всю хуйню что спрашивали, и как итог на след день сказали сори вы нам не подходите))) хуй знает че им надо лол. тут все мега относительно
>>1923468
так соль то в том что с нативного и голого пхп я как раз и начинал. не будь этих знаний - не смог бы тут все это дерьмо в короткие сроки осваивать и выполнять. даже сейчас кстати по работе встречаются задачи когда надо юзать голый пхп тк средств цмски той же не хватает. а по поводу магенты2 - потому что тупо нихуя не понятно. это пиздец какой-то. я в первые структуру увидел и выпал. уровень битрикса блять. дока какая то хуевая. какие то phtml расширения которые как я понял как раз отвечают за вьюху ? везде эти ебучие xml'ки. пиздец кароче
магенто2-кун
Аноним 27/01/21 Срд 17:43:50 1923511319
>>1923501
да, магента мрачный жесткач, очень дохрена всего наворотили, чтобы "максимально мощный функционал был". Получился блять реально трактор, собранный из велосипедов. Там за один день хрен разберешься реально. И да, xml бесит реально, так как то, что по идее должно быть в базе, вынесли в файлы типа для "облегчения работы" юзерам и админам. Причем, даже не json, потому что извращенцы блин. Я когда разобрался, посносил их нахрен и заменил таблцами постгресса, урезав часть ненужного функционала. Но нервов и времени убил массу. В процессе я потом все таки собрал заказчику свой движок, и импортировал базу в него. Слишком уж дохера там всего ненужного и лишнего всобачено, и интерфейс пизданутый на выходе по своей тяжести.
Аноним 27/01/21 Срд 17:48:13 1923514320
на чистом css можно вменяемый дизайн сделать?
ну мож чутка рисованого в пейнте
Аноним 27/01/21 Срд 17:48:54 1923516321
Аноним 27/01/21 Срд 17:50:01 1923518322
Аноним 27/01/21 Срд 18:18:15 1923547323
>>1923511
во во. сейчас пытаюсь только завести его. окружение настроить надо + поебстись с бд. я в ахуе просто целый день на это убил. и то только для того чтобы внятно сюда эластик поставить. скучаю по докеру.
Аноним 27/01/21 Срд 18:29:47 1923562324
>>1923341
Долгое время писал проекты на ларавел. Думаю, имеет ли смысл перекатываться на симфони.
Хотел поинтересоваться как обстоят дела с работой на симфе (удаленка) и зарплатами?
Судя по хх примерно 1к1 в сравнении с ларой
Судя по хабразарплатам на симфе денег больше, правда хз из-за чего
Есть ли фриланс на симфони или это скорее исключение?

И что обычно спрашивают на собесах и ждут от условного мидла симфониста?
Аноним 27/01/21 Срд 18:35:01 1923574325
>>1923501
Из задачек на собесах были всякие физ-базы и простенькие алгоритмы (сортировка, списки, матрицы).
По теории часто спрашивают ООП и СОЛИД. Это надо прям чтоб от зубов. К ним еще пол десятка паттернов проектирования назвать и пару примеров привести.

Больше всего не люблю, когда дрючат кишками бд, когда я с ними только на уровне орм в основном общаюсь.
Аноним 27/01/21 Срд 18:56:55 1923590326
>>1923574
>солид на зубок
это нахуя? вообще никогда не понимал
>К ним еще пол десятка паттернов проектирования
и это тоже надо если хочешь получать 50к ? )))
Аноним 27/01/21 Срд 19:03:07 1923599327
>>1923590
>солид на зубок
>это нахуя? вообще никогда не понимал
Ходят легенды, что где-то пишут код по солиду.

>К ним еще пол десятка паттернов проектирования
>и это тоже надо если хочешь получать 50к ? )))
Это было на собесе на 120к
Аноним 27/01/21 Срд 19:18:09 1923613328
><input type="submit" name="send" value="Отправить">
как мне оформить кнопку?
Аноним 27/01/21 Срд 19:35:49 1923634329
>>1923599
Это для мидлов и джуниоров легенды. А для сеньоров здравый смысл и банальная повседневность. Тоже жестко топлю за солид-стандарты всегда, ибо без них жопа потом полная наступает.
хотя, это важно если вы сами проект от а до я делаете. С собственными фреймворками, в нативе.
А для ларавельщиков и принеси-подайщиков это нафиг не надо, т.к. у них и так коридор возможностей еще уже, чем солид-стандарты.
Аноним 27/01/21 Срд 19:38:49 1923641330
>>1923562
>Судя по хабразарплатам на симфе денег больше, правда хз из-за чего
Так симфони это почти что джава, а ларка почти что вордпресс. Разве нет?
Аноним 27/01/21 Срд 19:40:09 1923643331
Аноним 27/01/21 Срд 21:36:33 1923752332
Читаю PHP 7 в подлиннике. Около 1000 страниц. Остановился пока на генераторах, и уже прямо дохуя инфы в голову поступает. Часто приходится возвращаться к некоторым темам (особенно функции). Иногда даются нетривиальные примеры, по типу функции dumper. Норм книжка или нет?
Аноним 27/01/21 Срд 22:13:53 1923795333
>>1923641
Нет. Просто ларка продвинутее и новее симфы, и когда новички все тотально юзают ларку, потому что она новее и перспективнее, то на старых проектах симфы с кадрами напряг, и все.

"Кривонаписанность" и глючность не делает из фреймворка резко джаву, а более менее понятный интерфейс не делает из него же примитивщину. То есть - один хер и то и другое. Но на симфе меньше народа пишет, потому что он - говно если честно, и сосет у ларавела. А проектов на симфе осталась гора - поэтому асинезаторы, вынужденные в этом говне ковыряться, зарабатывают больше, чем те кто в ларке хуи пинает без особого напряга.
Аноним 27/01/21 Срд 22:22:41 1923813334
>>1923752
Норм, но сейчас учатся не так. Пролистай общие принципы, самые общие, посылай нахер все непонятности и забивай, заверши ознакомление как можно скорей. Затем возьми минимальный хорошо структурированный рабочий проект любой, изучи его, поставь на хостинг как демо-полигон, умеющий блять все, и принимайся за заказы. Если возникнут вопросы по ходу - тебе полюбому примеры и задачки из учебника не помогут. Ток гугл и стаковерфлоу. применяешь на своем шаблоне и реализуешь. Сразу как сеньор, посылая всех нахер, поскольку у тебя есть готовый собственный сложный проект-модель, типа того. А лучше штук пять таких, да штук десять лотов на кодекайон поставить в продажу. Только так. Это лучше, чем тратить вагоны времени на бесполезное штудирование учебников, чтобы потом заниматься вообще хер знает чем как сраный мидл или джуниор. Чтобы общаться напрямую с кабанчиками и по своему бюджету работать, а не через три пизды и третьего-пятого менеджера айти по разработке шестого отдела логов и кеширования хз пойми чего с доступом только по хп и зряплатой долбоеба. Ну это так, мое мнение, сорри если кого задел.
Аноним 27/01/21 Срд 22:40:16 1923841335
>>1923795
Почему тогда недавно здеся местный анон назвал Ларавел колхозом и призывал учить Симфони? Честно говоря, он звучал убедительно. Не помню, какие он аргументы приводил в пользу Симфони.
Аноним 27/01/21 Срд 22:43:07 1923845336
>>1923468
Анончик, дай советов мудрых, как постигнуть дзен нативности и быть как ты?
Аноним 27/01/21 Срд 23:10:47 1923881337
>>1923562

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

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

Удалёнка есть, сам сижу на такой щас. 240k, миддл.

Зачем вообще нужен фриланс?
Аноним 27/01/21 Срд 23:57:48 1923915338
>>1923813
>Затем возьми минимальный хорошо структурированный рабочий проект любой
Скажи, пожалуйста, где его достать.
Аноним 28/01/21 Чтв 00:00:12 1923917339
>>1923841
>>1923845
Потому что симфони сложнее и требует так или иначе знать натив, без которого тупо не вкатишься. А ларавел тупо конструктор, даже дурак справится, ну и никто особо не растет на нем, поскольку как оно работает и что там внутри нихера не нужно знать - работает и хер с ним. Хотя по сути, лара даже продвинутее симфы, именно простота ее освоения и позволяет макакам считать себя прогерами.

Таким образом да, симфони прокачает, так как чтобы ее освоить надо посообразительнее макаки быть, а зенд тогда еще круче
прокачает.
Но опять таки, если по чесноку, для того кто шарит в нативном пхп это две абсолютно однохуйственные по сути вещи.
Аноним 28/01/21 Чтв 00:01:11 1923918340
>>1923915
Я тупо покупал на том же кодекайоне скрипты движков приложений, или скачивал с торентов, если был варез.
Аноним 28/01/21 Чтв 00:02:20 1923920341
>>1923918
>или скачивал с торентов
Что в поиск вбивать?
Аноним 28/01/21 Чтв 00:20:31 1923932342
>>1923920
Чел, я хз что тебе больше нравится.
Ну как пример попроще https://codecanyon.net/item/premium-media-script/9324018 - если найдешь варез то поставь, а нет, так и купи для интереса - я купил, не нищий, хуле - посмотри что и как работает, поковыряй, добавь свои свистелки и перделки, попробуй поподключать другие бд, поставить доп плюшки на сервер, и т.д. и т.п. Таких штук пять скриптов, написанных на хорошем пхп с соблюдением solid-стандарта расковыряешь - научишься в миллион раз большему, чем по всяким книжкам и т.п.
Аноним 28/01/21 Чтв 00:21:40 1923933343
>>1923932
А вы не дадите нам то что купили?...
Аноним 28/01/21 Чтв 00:35:39 1923943344
>>1923932
>>1923920
И да, продукты от KBRmedia как правило написаны на хорошем пхп, но не без глюков и всегда есть что улучшать внутри. По мне, так самое то учиться нативному пхп именно на таких скриптах.
И только когда разберешься и сам сможешь на коленке воспроизвести тот же уровень или лучше, имхо, следует лезть в освление фреймворков типа зенда, симфы, лары.
И кстати, в качестве вспоможения неплохо найти попутно кабанчика, который хочет типа "собственный типа ютуб, или в этом духе что нибудь" и готов за это забашлять. Когда все оплачено наперед, учиться оно приятнее и веселее. :)
Аноним 28/01/21 Чтв 00:37:38 1923944345
>>1923933
Сорри, поищите плиз, если кто спер этот скрипт до меня. На варезах должен быть. Мне как бы никомильфо красть у благодетелей, прошу меня понять. Тем более я уверен, что до меня уже украли.
Аноним 28/01/21 Чтв 00:39:28 1923947346
>>1923944
Ладно хорошо не будем обижаться что ты не поделился...
Аноним 28/01/21 Чтв 00:40:33 1923948347
Аноним 28/01/21 Чтв 01:39:44 1923974348
8ffcce58e3a83e1[...].jpg 17Кб, 480x360
480x360
>>1923932
>>1923944
Лол, помню, попалась на фрилансе задачка поскрапить какой-то список хуиток с привзякой к карте.
Ну а там лимит на количество результатов и максимальный радиус в пару километров, короче, надо ебаться с брутфорсом параметров для поиска.
Ну я погуглил этот скрипт, а он там продается и гуляет уже спижженый. Внутри совершенно через жопу всё, на вид середина нулевых, а всё торгуют и причем покупают.
Ну я за пару минут нашел инъекцию и получил всё сразу, лол.
Аноним 28/01/21 Чтв 10:08:33 1924082349
>>1923943
>>Когда все оплачено наперед, учиться оно приятнее и веселее. :)
Это немного не так. Когджа заплачено - пиздато делать быстро и правильно.
А учиться, особенно когда заказчик который уже "оплачено" постоянно докидывает "а давайте сюда чет добавим" - так себе. Помимо изучения прогинга сразу приходится решать и кучу других вопросов. Прокачиваешься как сам себе кабанчик.
Но это тяжело, рили тяжело. Я сейчас в подобной ситуаци.

Кстати вопрос - мне нужно в елоквенте составить запрос такого плана:
у модели есть свойство "платно" и свойство "бесплатно".
Модель должна доставаться из БД когда: "платно" или "бесплатно" больше 0, но если и "платно" и "бесплатно" равны нолю - то доставаться данные не должны
Аноним 28/01/21 Чтв 10:11:22 1924084350
>>1923932
Как живется в нулевых с кастомными cms?
Это ваш хваленый нативный пхп?
Аноним 28/01/21 Чтв 10:13:44 1924085351
>>1923881
Спасибо.
Проф развитие, наличие работы и рост по зп.
Значит перекатываться есть смысл.
Аноним 28/01/21 Чтв 10:15:30 1924087352
куки или сессии?
Аноним 28/01/21 Чтв 11:12:55 1924135353
Мне 33, и я не то что бы вкатывальщик, вышка профильная, в ВУЗе прогал, но потом долго (8 лет) сисадмином работал деградировал. Заебало. Фактически начинал с ноля. И вот уже три года работая прогером в гос-шараге ( за три копейки ) я типа вкатываюсь в коммерческую разработку. Хочу сказать что наступил на все возможные грабли похоже, лол.
Ну и да, процентов 80% доступного времени за эти год я пинал хуй. Из чего следует что важна личность человека. Что бы вкотиться я думаю есть два варианта. Первый - программить лет с 15, и быть психологически и поведенчески кривым и косым, но опыт задротства решает. Второй - полностью нахуй переработать свои привычки и поведение, развить волю, дисциплину, решительность. Я за 4 года нихуя не смог, все делаю долго и на отъебись. Кривое поделие на слим с кривой архитектурой и ORM елоквент в качестве БД слоя, и кривые самопальные классы JS и компонетны реакт собранные вэбпаком на фронте - мой потолок, все кривое косое и работает через пизду. Весь явнарь хуй пинал, при этом имею заказ который имеет не закрытые таски.
Вот такой вот средний вкатывальщик за 30. Не будте такими как я.
Думаю что большинство вкатывальщикв такие же далбоебы как я.

замечу что и в жизни у меня все так же на отъебись
Аноним 28/01/21 Чтв 11:15:53 1924138354
>>1924135
п.с.
добавлю что орд вкатывальщиков старше лет 27 врядли стоит ждать, психика и привычки формируются плотно, и их изменить пиздец как сложно. Если чел -неорганизованный еблан - то с 90% вероятностью таким и будет до конца жизни. Я врал себе что я типа на дисциплине, иногда так и было. Но пропинав хуй весь январь я понял что хуй, я все тот же деградирующий сисадмин. Печаль ебаная.
Аноним 28/01/21 Чтв 11:26:13 1924148355
>>1924135
>Кривое поделие на слим с кривой архитектурой и ORM елоквент в качестве БД слоя, и кривые самопальные классы JS и компонетны реакт собранные вэбпаком на фронте - мой потолок, все кривое косое и работает через пизду
Описал средний говнопроект на галере.
Аноним 28/01/21 Чтв 11:33:39 1924151356
>>1924082
>постоянно докидывает "а давайте сюда чет добавим"
В таких случаях принято оставлять эти добавки после основных работ. Т.е. есть обговорённый и оцененный функционал - он и делается в текущий момент, а всё, что сверху - уже потом. Иначе рили тяжело будет всё сразу делать и оценивать.
Кабанчику-то похуй - у него фантазия пошла фантанировать, а ты закапываешься.
Аноним 28/01/21 Чтв 11:41:52 1924155357
>>1924148
На фрилансах так же делают обычно - лишь бы сдать, а там пусть сами ебутся.
Аноним 28/01/21 Чтв 11:43:37 1924157358
>>1924148
Это тонкий намек на то что мне пора пиздовать в "коммерческую разработку"?
Аноним 28/01/21 Чтв 11:45:16 1924160359
>>1924157
Ты собесы хоть проходил? Или так и сидишь учишь?
Аноним 28/01/21 Чтв 11:52:12 1924166360
>>1924157
Это тонкий намек на то, что ты как-то слишком идеализируешь код работающих разрабов. Редко где можно встретить качественный код.
В основном такие же васяны пишут подобный говнопроект с нуля. Потом нанимают еще пачку васянов допиливать этот проект. Исключительной удачей будет, если среди нанятых васянов окажется прошаренный чел, который построит остальных васянов, не даст им больше срать в код и потихоньку вытащит проект из говен.

Думаю, ты вполне можешь на удаленке получать соточку
Аноним 28/01/21 Чтв 12:09:12 1924178361
>>1924157
Иди проходи собесы, устраивайся и получай уже норм зп.
Аноним 28/01/21 Чтв 12:21:39 1924193362
>>1924166
>слишком идеализируешь код работающих разрабов
Себя вспомнил - как тоже всё хотел чтобы было чистенько и красиво, как по нотам, короче. Потом пришлось поработать на реальных работающих проектах и у меня эту детскую дурь из головы быстро вынесло.
Если писать красиво и идеально - результатов внуки только дождутся.
Аноним 28/01/21 Чтв 14:15:44 1924269363
>>1924084
А я знал, что нечто такое обязательно всплывет :) Обязательно какой нибудь особо современный начнет интересоваться.
Есть такие, которые считают что ларавел это правильный пхп,
Ну а конструкт2 это js. А Unity это C++. Потому что "есть современные стандарты и библиотеки, и не нужны велосипеды, ибо будет несовместимость, немасштабируемость, уязвимости, а главное скорость разработки современного продукта" и т.п.
Как китайцы, которые собирают авто на конвеере из присланных им деталей, которые спроектированы немцами. Собрать, а не создать. По инструкции, а не с пониманием.
Могу только пожелать вам успехов, коллеги. С китайцами так и надо. Пока делаете пустую демку типа "хелло ворд" в самой современном фреймворке и продвинутой идешке с весом в пол гига подключенных через композер кодов, папок и библиотек,не понимая для чего они нужны (не нужны) и получаете по итогам вылетевшую кодировку, у меня всегда будет работа.
А если серьезно, то я просто указал, на каких примерах вкатываться в пхп, чтобы знать минимальные основы построения приложений, необходимое как раз для того, чтобы вам было плевать, какие фреймворки или кмс использовать, так как сами они построены на тех же принципах.
Аноним 28/01/21 Чтв 14:21:03 1924273364
Что скажете за laracasts? В каком порядке смотреть? А то официальная документация, как я вижу, на порядок скуднее чем у Symfony.
Аноним 28/01/21 Чтв 14:45:23 1924290365
>>1924082
>Кстати вопрос - мне...
Вот почему я и говорил, что лара зло.
По существу, логика условия должна быть вне oem, просто
в методе класса. Если условие 1 оем выполняется или не выполняется если условие 2. Внутри самой оем никаких иных логик, кроме реализации запросов бд быть в принципе не должно. Поэтому сам вопрос как минимум непонятен, но увы, типичен. Если бы у вас была практика создания кастомных бд классов на нативном пхп прошлого века, то таких вопросов не возникало бы в принципе, поскольку логика в елоквенте нарушает принципы единой ответственности. Ну это так, к слову.
Аноним 28/01/21 Чтв 15:16:13 1924317366
>>1924082
>у модели есть свойство "платно" и свойство "бесплатно"
>должна доставаться из БД когда: "платно" или "бесплатно" больше 0
А если "бесплатно" больше 0, то продавец ещё и доплачивает что-ли за покупку дайте мне этого продавца сюда - я миллионером стану? У тебя тут с логикой какие-то траблы кажется.
Бесплатно это когда "price" == 0. Тогда и достаётся из БД элементарно всё.

Аноним 28/01/21 Чтв 15:36:20 1924332367
>>1924269
>фреймворки или кмс использовать, так как сами они построены на тех же принципах
Фреймворк и cms это несколько разные уровни. Х.з. как ты всё в одну кучу валишь. Сдаётся мне, что на фреймах ты не работал ни разу и не догоняешь, что они для разных типов разработки используются.

>>1924290
>практика создания кастомных бд классов на нативном пхп прошлого века
У Лары очень даже годная библиотека для работы с БД, как и подходы.

>логика в елоквенте нарушает принципы единой ответственности
В твоих CMSках это всё ещё хуже реализовано чаще всего. Гораздо, гораздо хуже.
Аноним 28/01/21 Чтв 15:40:52 1924336368
>>1924273
Несколько лет назад начинал с основ пхп (пхп, пхп 7, ооп), потом серию Laravel from scratch для самой последней версии лары.
Аноним 28/01/21 Чтв 15:47:48 1924344369
Аноним 28/01/21 Чтв 15:52:15 1924352370
>>1924344
Твоя или взял у кого?
Аноним 28/01/21 Чтв 16:00:39 1924367371
>>1924352
просто вбил в гугле и вышло это. это важно ?
Аноним 28/01/21 Чтв 16:09:55 1924375372
>>1924317
>тно" больше 0, то продавец ещё и доплачивает что-ли за покупку дайте мне этого продавца сюда - я миллионером стану? У тебя тут с логикой какие-то траблы кажется.
Кстати, хоть и хохма это, но такие продавцы есть :)))
Так что имхо не важно тут - может это булевый нуль, я хз как там все в ларавеле, но именно в том и засада двойственности - с одной стороны готовые фреймворки как бы содержат в себе надежные и проверенные решения высокого уровня, так что даже макака, почитав мануал может более менее легко разобраться что и как делать. даже без особого знания корневого нативного языка и соображалки по части алгоритмов. По итогам получается как будто бы быстро и добротно сделанный проект, и юное хвостатое дарование сияет от собственной невьебенности. Дескать, во какой проект слепило. Но на деле - это чужой проект, и слепили его те же, кто слепил ларавел, а ты только сделал тюнинг по инструкции из запчастей, не особо разбираясь в сути.
Но это как правило только начало. Макак много, они все разные, и все хотят как можно больше всяких функционалов, свистелок и перделок, подключений к херовой туче саасок и т.п.. По итогам система развивается, и народ ее активно хвалит, но мануалы становятся все сложнее и сложнее, подключаемых висюлек и пиздюлек типа плагинов становится настолько много, что хер разберешь, плюс к каждому из них свой мануал, который пока изучишь, фреймворк снова устареет. А потом выдут новые релизы постгресса или, пхп, всплывет куча деприкатов, и - правильно, опять курить раздутые мануалы, юзать сырые бета-версии обновлений, все работает по итогу черти как и хер знает как, и умельцы дабы исправить положение втыкают костыли и патчи, написанные на скорую руку и через жопу, и так далее. По итогам пятистраничный сайт администрирует сорок прогеров, которые 90 процентов времени читают мануалы к аддонам к патчам, которые к плагинам, которые для такой-то версии, которая скоро депрекатед потому что выйдет следующая более современная.
О каком нативном пхп может идти тут речь, если по мануалу можно собрать сразу мегапортал с блекджеком и шлюхами, тупо нажав с десяток кнопок типа "сделать песдато" и "подключить звезду смерти с музыкой и сканером сетчатки к иконке sucks".
Как итог, господа рубисты, пхпшники, сишники и джавошники с печалью, но не без злорадства наблюдают, в какой пиздец превращается индустрия, потирая ручки в предвкушении удовольствия от военно спортивных разьебов всей этой хуйни, так как прекрасно видят аналогию с инженерной революцией прошлого века.
Когда начав с азов и основ, инженеры от проектирования паровозов смогли дойти до создания космических кораблей, но зумеры тех лет решили, что это не эффективно, и гораздо быстрее использовать "наработки из коробки" - по итогам, когда то США построило во время войны за два года боле 5000 военных кораблей самого современного на тот момент уровня, а теперь они тратят миллиарды, но уже больше четырех лет не могут тупо даже починить два корабля, которые были построены еще в 70х, просто потому что "умники" рвали жопу на продвинутых технологиях конструирования из коробки.
Которые как бы быстрее, мощнее и проще, и которые даже макаки освоят. Вот и дорвались - просрали фундаментальные знания основ, потеряли специалистов, которые специально были заточены на то, чтобы из говна и песка делать инженерные шедевры, которые просто перестали воспроизводиться, а теперь сидят и тыкву чешут, типа - какого хера все падает и не работает?
В мануалах же написано все верно должно быть, ан нет - не работает нихера. Потому что понимания того, как и почему работает - не было и нет. Есть тупо заученные мануалы.
И что самое интересное - эти мануалы в миллион раз уже сложнее и запутаннее, чем основные принципы, лежащие в их основе, которые просто следовало бы освоить. Но - нет. Это медленно, неэффективно, там нет кнопки "сделать песдато", там из коробки нихрена нет, и за это скорее всего платить не будут.
Шикарно в общем.
Поэтому и делают сегодня программисты в десять раз больше работы, скачивая патчи и обновления, юзая косячные оемки типа елоквента и куря мануалы, как тут >>1924273, вместо того, чтобы один раз почитать мануал по бд и создать метод в три строки, который просто выполнит произвольный query через PDO. Но - для этого надо знать как работают бд! А в елоквенте пофигу, поэтому все быстрее и проще - возразят мне. И хуй что возразишь.
Но по итогам - "ускорение" программирование получается "в отрицательную сторону", так как необходимость курить все новые и новые мануалы и делать новые и новые патчи, да потом еще совещаться на консилиумах несколько дней на тему "допустимо ли использовать обработку массивов средствами пхп, или необходимо преобразовать все обработчики в методы, а массивы в объекты?". Как итог, народ вешает потом эластик на постгресс, причем блять через плагин вордпресса, и когда мы начинаем истерично ржать, с удивлением спрашивает "не, ну а чо такого?"..


Аноним 28/01/21 Чтв 16:13:21 1924377373
>>1924332
Дело не в том, как там что реализовано, а в том, способен ли ты сам реализовать что нибудь хотя бы на этом уровне, или без фреймворка даже формы обратной связи собрать не в состоянии.
Потому что миллион таких уже случаев, когда чел типа собирает мега-проект, но вот суко передвинуть кнопку в футере на два пиксела вправо - не в состоянии от слова совсем. Не говоря уже о каких либо нестандартных задачах. По мануалам - не учатся, старик.
Аноним 28/01/21 Чтв 16:38:11 1924419374
>>1924377
могу реализовать некоторые вещи только на пыхе, без фрейма. но есть вещи которые могу реализовать и там и там. это ок?
>но вот суко передвинуть кнопку в футере на два пиксела вправо
а знаешь почему так ? потому что там блять в проекте насрато так что как не срали даже в индийские помойки да-да, именно сральники, а не проекты как ты мог подумать. и вот ты блять иди ищи по эти шаблонам и лазь по 30 папкам чтобы найти тот css файл который у тя подключается. помню в декабре была ситуация где нахуй были следующие файлы в папке моей темы которые подключает битрикс: style.css, styles.css, _style.css, _styles.css. и угадай где из них была разметка для навбара? ВООБЩЕ НАХУЙ В ДРУГОМ СОВЕРШЕННО ШАБЛОНЕ ОТ ДРУГОГО БЛЯТЬ САЙТА. вроде бы таска плевая, на хуй там, из за такого говна встречаешь на два часа для того чтобы просто найти
Аноним 28/01/21 Чтв 16:55:55 1924424375
>>1924367
Порвало нафиг. Своего рода жизненный путь какого нибудь миддла, который постоянно был вынужден менять работу и так толком и не понял, чем же ему заняться, запомнил только заголовки. Печальный и трудный путь. Судя по всему написано по примеру мануалов - бестолково, непонятно, неюзабельно, но внушает ужас и уважение окружающим. Такие слова умные прям пипец. Вордпресс, хететепе-хедер. Расшифрую, примерно, чтобы поняли глубину маразма.
Пишем - хирург - роудмап.
Потом рисуем квадратики и от балды пишем внутри них термины.
Типа - регистратура - карточка - бахилы - санитария - мыло
перевязочные материалы - клизма - кровотечение - термометр - аутоимунное - наркоз - солутан - примочка - пинцет - тахикардия - ухо-горло-нос - нога-жопа-кариес - анамнез - зеленка - пальпация вульвы - гидроцефал - мошонка - минздрав - анальгин - сыпь - опорожнение судна - десна - кварцевание - залысины - эпикантус копенгагенская декларация - воспаление блуждающего нерва - пигментация ногтей - лазерная терапия - профилактика копрофагии методом черветерапии - монокль.
Ну, примерно так это бы выглядело. Наглость и бесстыдство прогеров, особенно тех, которые в двадцать втором веке душой и телом, не имеет никаких пределов. А хуле делать. Такова селяви.
Аноним 28/01/21 Чтв 16:59:09 1924427376
>>1924419
Именно. Вот поэтому и есть стандарты - где стили должны лежать, где скрипты, как должны быть написаны и оформлены. За это собственно и ебут миддлов, особенно симпатичных. Поэтому я как правило просто смотрю на такой проект, и если там насрано - сношу к ебанной матери и делаю с нуля ракетой. Иначе потом не разгребешься.
Аноним 28/01/21 Чтв 17:00:22 1924429377
>>1924375
Чем чтение мануалов для фреймворка отличается от чтения оного для CMS? Актуальных фреймворков на тот же ПХП в разы меньше чем велосипедных CMS и реализованы они плюс-минус одинаково. К тому же не бонусом идёт понимание правильной архитектуры приложения, что в ЦМС зачастую вообще не так.
Да и код на фреймах хорошо документирован через php-doc и комментарии. Не вижу проблемы.

Имел дело и с теми и с другими и моё мнение таково, что фреймворками пользуются именно программисты, а ЦМСками чаще всего вебмастеры\верстальщики.

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

Но начинать и правда обязательно с чистого ПХП, иначе макака и дурачок с гранатой.
Аноним 28/01/21 Чтв 17:06:02 1924432378
>>1924419
>могу реализовать некоторые вещи только на пыхе, без фрейма. но есть вещи которые могу реализовать и там и там. это ок?
Естественно. Я о тех, которым "пыха не нужна вааще", так как "в ларавеле все есть". Типа игроделов, которые работают в Юнити без малейшей попытки вката в си++ - то есть обреченные на убой.
Аноним 28/01/21 Чтв 17:09:23 1924439379
>>1924429
>Но начинать и правда обязательно с чистого ПХП, иначе макака и дурачок с гранатой.
Вот, именно об этом и речь. :)
Аноним 28/01/21 Чтв 17:13:25 1924447380
>>1924432
>Естественно. Я о тех, которым "пыха не нужна вааще", так как "в ларавеле все есть".
курсодебилы, хуле с них взять. нассали в уши что вот выучите все побыстренькому за 3 месяца и будете крутыми спецами с зп в 100к
>Типа игроделов, которые работают в Юнити без малейшей попытки вката в си++
так там же с# нужен. чому кресты то ?
Аноним 28/01/21 Чтв 17:23:30 1924451381
>>1924447
Так на 100к большего и не надо.
Аноним 28/01/21 Чтв 17:30:23 1924456382
>>1924447
>там же с# нужен. чому кресты то ?
угу. скрипты там на c#, а сам юнити на крестах, прикинь :)
но да, тут я признаю что перетолстил сильно, т.к.
такой уровень закапывания уже для ярых олдов.

И кстати да - тоже по той же схеме роудмапа пхп -
не понял сперва, что каждый их квадратик это типа
отдельный обучающий курс или его компоненты.
Походу да, комерсы инфоцыгане портят все.
Аноним 28/01/21 Чтв 18:11:37 1924482383
>>1924456
аж хрюкнул с коммерсов
>>1924451
да чет по собесам я этого нахуй не вижу. при том хочу сумму в джва раза больше
Аноним 28/01/21 Чтв 18:17:08 1924487384
>>1924482
в два раза меньше
быстрофикс
Аноним 28/01/21 Чтв 18:21:03 1924491385
Выдали проект на 500к строк 470к, если быть точным.
Начинался он на yii1, частично подключен ларавель.
Хз как к нему подступиться.
Аноним 28/01/21 Чтв 18:26:31 1924498386
Аноним 28/01/21 Чтв 18:27:21 1924500387
Аноним 28/01/21 Чтв 18:28:43 1924505388
>>1924487
Что такого спрашивают на собесах за 50к? Там же главное, чтобы собеседуемый в штаны не насрал и как зовут не забыл. Не понимаю, напиши плиз, что спрашивают. Мне аж иетересно стало.

мимо стронг джун зп 120к
Аноним 28/01/21 Чтв 18:30:23 1924510389
>>1924491
По мере поступления задач
Аноним 28/01/21 Чтв 18:31:38 1924511390
>>1924510
Скажут оценить - я же обосрусь
Аноним 28/01/21 Чтв 18:39:02 1924521391
>>1924511
Тебе сразу сложные таски кидать начнут? Первое время приглядывать же должны, чтобы не обосрался.
Аноним 28/01/21 Чтв 19:29:50 1924546392
>>1924505
ну вот я ищу галеру на ларке/симфонии которые работают. про фреймворки вообще ниче не спрашивают. в основном по теории, ооп, про язык, про бд иногда. все. в принципе ниче сложного и все посильно. адекватно и правильно отвечаешь и в итоге мы вам перезвоним. хуй знает че им не нравится лол. бывают оч редко специфичные вопросы чтобы загасить это вот прямо сразу видно т.к. никто никогда такое не спрашивает а тут решили спросить но это скорее исключение чем правило. если только из за этого. одни напрямую сказали что вот у вас с теорией и практикой все ок, но мы вам откажем потому что у вас опыт широкий, а не глубокий. как то так. другие просто молча слились. вот ждем сегодня завтра ответа от еще одних
Аноним 28/01/21 Чтв 19:34:39 1924547393
>>1924505
а, ну и мб это у вас в ваших дсах ниче не спрашивают. в замкадьях тя за каждую копейку выдрачивают видимо. проверю завтра эту теорию, собес будет с какой то галерой с дс2.
>>1924546 - кун
Аноним 28/01/21 Чтв 19:39:28 1924550394
>>1924546
>у вас опыт широкий, а не глубокий
Если ответили таким образом - значит считают, что знаешь только по верхам. У тебя есть проекты на фремворках с композером? Не хелловорлды с туториалов, а свои какие? Юнит-тесты умеешь, гит как? Они твой код смотрели?

А вообще сливаться после удачного собеса - обычное дело у херочек, привыкай. Хоть сайт пиши с отзывами по таким конторам - чтоб люди время не теряли.
Аноним 28/01/21 Чтв 20:13:32 1924580395
>>1924547
Может стоит попробовать на удаленку? Возьми и пройди хотя бы один собес на 100к, не обязательно дс.
Аноним 28/01/21 Чтв 20:22:47 1924589396
>>1924580
так я и ищу удаленку. в нашем задрищенске 700к 2 конторы работают с таким стеком. все остальные на всяких битриксах, вп, и тп скаме
>У тебя есть проекты на фремворках с композером?
конечно есть. один просто бложик по классике который открытый и я показать могу. но там прямо вообще самая база. и есть другой проект, там уже полноценный проект, но он закрытый, показать не могу. вот там то уже все по взрослому
а что в гите именно знать то надо? а то везде пишут знания гита. и что это имеется в виду? простые пуш/пул команды? или знания правил ведения разработки при работе с гитом? я лично считаю что последнее.
>А вообще сливаться после удачного собеса - обычное дело у херочек, привыкай
а нахуя так собсно делать? че за бред? при том вот меня послали полгода назад они же хотя все было ок, и сейчас допустим заново работу ищу. и они меня не зовут хотя косяк то с их стороны
>Хоть сайт пиши с отзывами по таким конторам - чтоб люди время не теряли.
Годная идея. мб намучу такое когда буду Vue изучать
Аноним 28/01/21 Чтв 20:39:39 1924609397
>>1924589
>а нахуя так собсно делать? че за бред?
Мониторят рыночек - если много прокачанных джунов, то можно зряплаты понизить например. А если хороший мидл-дурак пойдёт на зарплату джуна, то его даже можно взять. Им, один хуй, делать нечего больше - так хоть какая-то деятельность. Да и начальники работу требуют, а не сидения вконтактике весь день.
Такая вот симуляция деятельности за чужой счёт. На наше с тобой время им глубоко насрать.
Аноним 28/01/21 Чтв 21:13:06 1924657398
допустим есть страничка с формой регистрации и код для регистрации.И есть стили для этой страницы
как бы их всех назвали?
Аноним 28/01/21 Чтв 21:18:02 1924658399
Аноним 28/01/21 Чтв 21:38:34 1924678400
>>1924491
Со смазкой и лаской, аккуратно сзади) Я бы начал потихоньку в сторону Лары переписывать, чтобы в один прекрасный день от Легаси ничего не осталось, этакая каша из топора
Аноним 28/01/21 Чтв 21:43:12 1924685401
>>1924511
>Скажут оценить - я же обосрусь
>500к строк
Я б с полгода времени попросил - я ж не волшебник.
Аноним 28/01/21 Чтв 22:24:20 1924708402
Аноним 28/01/21 Чтв 23:19:07 1924748403
>>1924708
Если у тебя на работе это единственный ответ в таком случае, то и правда - нечего там делать. Ну или оценивай перенос многолетних проектов за неделю, а потом в мыле весь обсирайся со сроками и нагрузкой, и точно так же вылетай с работы.
Аноним 28/01/21 Чтв 23:27:05 1924755404
>>1924748
Мы вам за что 120 тысяч платим? А если серьёзно, то про перенос там ни единого слова не было. Анон так и будет ковырять легаси код. Не думаю, что его взяли на работу, чтобы с yii на лару переносить.
Аноним 29/01/21 Птн 02:56:43 1924863405
1611878219365.png 339Кб, 1920x1080
1920x1080
Решил сделать сайт с рецептами блюд. Набросал тут пикрил схему для базы данных. Красным выделил индексы. Так как до этого мне не приходилось делать так много таблиц с разными отношениями, вангую что мог где-то проебаться. Не прокомментируете, норм или нет? Вроде бы все должно быть понятно, но на всякий случай уточню:
- Пользователи создают рецепты.
- Пользователи могут добавлять рецепты в избранное
- Пользователи могут присваивать чужим рецептам оценку от 1 до 5. Средняя оценка будет выводиться на странице рецепта
- У рецептов, помимо указанных колонок, есть шаги приготовления ( таблица steps ). Их количество неограниченно.
Аноним 29/01/21 Птн 03:06:02 1924864406
>>1924863
Бля, забыл в рецепт добавить category_id. Пора спать идти.
Аноним 29/01/21 Птн 03:14:09 1924866407
А, ну и похоже в favorites и recipes_ingredients индексы работать не будут. Там же уникальных полей нету.
Аноним 29/01/21 Птн 04:12:28 1924874408
>>1924866
база какая, мускуль или постгресс?
Аноним 29/01/21 Птн 04:15:39 1924875409
>>1924866
хотя по любому, таблицы категории и рейтинг лишние, так как это свойства рецептов. они только мешать будут, разве что только в качестве справочников, если постгрес
Аноним 29/01/21 Птн 09:24:06 1924927410
>>1924609
>На наше с тобой время им глубоко насрать.
Это точно. Были люди которые 4 раза собес блять переносили. После этого нахуй их послал. Хотя околотоп контора нашего задрищенска была.
Аноним 29/01/21 Птн 09:27:38 1924928411
>>1924927
>Были люди которые 4 раза собес блять переносили.
ЗАЧЕМ ОНИ ЭТО ДЕЛАЮТ?
Аноним 29/01/21 Птн 10:12:51 1924947412
>>1924928
На галеру надо идти, где будет собеседовать главный разраб, а не с хрюшами в офисах болтать.
У хрюш работа состоит:
- База программистов, чем больше, тем лучше. Потому они её собирают.
- Палочная система. Чем больше позовут на собесы - тем больше зп.
- Спам. Рассылают всем приглашения на собес, чем больше спама, тем выше зп.

95% офисных вакансий в айти - липовые. А на галере если срочно нужен разраб - сегодня же уже ищут и берут первого адекватного.
Аноним 29/01/21 Птн 10:51:51 1924955413
>>1924947
>95% офисных вакансий в айти - липовые. А на галере если срочно нужен разраб - сегодня же уже ищут и берут первого адекватного.
это откуда такая инфа? справедливости ради среди них есть и адекваты. помню летом звали на сеньора в какую то литовскую или латвийскую компанию за 3к евро. я честно сказал что не подойду туда в виду своего низкого опыта и знаний но если ей надо набить базу и количество то могу уделить время и прийти. она в итоге извинилась, сказала что все ок и не надо и слилась.
Аноним 29/01/21 Птн 11:08:47 1924970414
>>1924955
Это единичный случай.

Мне постоянно пишут с предложением пройти собес на симфони, хотя в резюме указана лара. Когда говорю им об этом, то начинают уговаривать. Некоторых даже в чс кидал, особо не пробиваемых.
Аноним 29/01/21 Птн 11:09:03 1924971415
>>1924678
Как чуть позднее выяснил. Часть функционала они перенесли в отдельные вендорные модули примерно 200к строк.
Видимо хотят до конца легаси распилить. На всякий случай и лида спросил что они хотят с этим проектом сделать в конце концов.
Аноним 29/01/21 Птн 11:10:53 1924973416
>>1924755
>взяли на работу, чтобы с yii на лару переносить
На собесе речь была про это.
А как оно обернется хз. В целом конечно интересно с такой легаси ебой поработать. Если освоюсь - другие легаси проекты покажутся изичными.
Аноним 29/01/21 Птн 11:13:24 1924978417
>>1924970
Что характерно потом эти же херки спрашивают по анкете, узнают, что у тебя на симфони всего 0.5 года опыта и обещают перезвонить.
Аноним 29/01/21 Птн 12:19:08 1925065418
>>1924970
абсолютно так же было. только на битрикс зазывали.
>>1924978
дристанул.

ну все анчоусы, поздравьте, дали оффер на 70к на лару. не дс. со след недели там грести начинаю
Аноним 29/01/21 Птн 12:25:47 1925073419
>>1925065
Грац. С нуля на 70к вкатился?
Аноним 29/01/21 Птн 12:37:23 1925086420
>>1925073
да какой с нуля? год греб на всяких говноцмс это магенто2 кун если что со всякого разного рода говнотасками. летом заебало и понял что надо качать фреймворк. начал ларку освоивать. вот делал свои проектики, + тестовые. пытался срулить в сентябре - не вышло, зато набрался опыта. осенью еще теории поднатаскал, к дкабрю свои проекты закончил и отшлифовал. в середине ноября начал искать работу. как то так
Аноним 29/01/21 Птн 12:41:52 1925090421
>>1925086
блять а, в середине января, а не ноября.
фикс
Аноним 29/01/21 Птн 12:56:28 1925098422
Аноним 29/01/21 Птн 13:00:46 1925103423
>>1924874
Постгрес. А какая разница принципиальная? Раньше его не юзал.
>>1924875
Почему категории лишние? Как мне иначе дерево из них составить?
Насчет рейтинга, сначала я думал хранить в рецепте средний рейтинг и количество проголосовавших. Но ведь тогда один пользователь сможет хоть сотню раз проголосовать за тот же рецепт, да и оценки своей увидеть не сможет.
Аноним 29/01/21 Птн 13:10:33 1925111424
>>1924875
И еще. Даже если бы категории были бы не древовидными, они ведь повторяются. Предлагаешь енамы юзать или вообще варчары для обозначения категорий? Это же всрато, разве нет?
Аноним 29/01/21 Птн 13:30:43 1925118425
>>1925086
Все равно неплохо, через пол годика можешь следующую работку искать, если зп не апнут. Эх была бы конфочка с двачерами пхпшниками, в которой бы обсуждали зпшки, собесы и галлеры, то было бы проще. Знаю одну конфу с жсниками, где помогают и не токсят,но на жс переписываться желания пока нету.
Аноним 29/01/21 Птн 13:50:49 1925125426
>>1925118
я тоже про это думал. мне вот интересно как там в этих ваших дсах? там же в каждой конторе наверное как минимум по одному двачеру сидит. и многие из них вышли из этого треда
Аноним 29/01/21 Птн 13:51:56 1925129427
>>1925118
на жс перекатываться желания пока нету
Аноним 29/01/21 Птн 13:59:21 1925135428
>>1925118
>Эх была бы конфочка с двачерами пхпшниками
Тоже хочется.
Когда-то давно создавал такую для вкатунов. По началу было поровну на фронт и бек. Сейчас там доминирует фронт реакт. Ливнул оттуда в итоге.
Аноним 29/01/21 Птн 14:18:48 1925157429
>>1925135
Почему бы не попробовать сделать, если есть уже опыт?

>доминирует фронт реакт
Ну, тут понятно. В реакт проще вкатиться и все скатывается в таких чатиках к хейту пыхи.
Аноним 29/01/21 Птн 14:23:39 1925162430
>>1925157
Тут в основном вкатуны сидят. Что вы собрались с ними обсуждать? Так же как итт будут срать тупыми вопросами, вместо того, чтобы загуглить.
Аноним 29/01/21 Птн 14:33:13 1925171431
>>1925157
>Почему бы не попробовать сделать, если есть уже опыт?
Морально устал конфы держать. Сейчас еще с работой траблы.
Да и не знаю каналов для привлечения людей. Из треда придет максимум 1.5 тела и всё на этом.
Аноним 29/01/21 Птн 14:33:55 1925172432
>>1925162
Предыдущая конфа так же начиналась как сборище вкатунов. Теперь там считай мидлы сидят
Аноним 29/01/21 Птн 14:55:15 1925185433
>>1925171
а ты кого собрался туда звать?) пост на пикабу делать или под постами абу в твиттере срать? кор аудитория отсюда должна быть же как никак
Аноним 29/01/21 Птн 15:19:36 1925205434
>>1925118
>Эх была бы конфочка с двачерами пхпшниками
Бля, вы за 121 тред не смогли запилить конфу в телеге? Как вы тут вкатываетесь вообще? Пиздос, я думал уже давно есть.
Аноним 29/01/21 Птн 16:00:50 1925245435
Аноним 29/01/21 Птн 16:02:13 1925246436
>>1925245
А чего в шапку конфу не добавили?
Аноним 29/01/21 Птн 16:04:46 1925247437
>>1925205
Есть даже в дискорде конфа, просто всем по хуй
Аноним 29/01/21 Птн 16:05:16 1925249438
>>1925246
Потому что это не ОП-конфа
Аноним 29/01/21 Птн 16:06:30 1925250439
>>1925246
Тут шапку миллион лет не обновляли.
Аноним 29/01/21 Птн 16:34:08 1925272440
>>1917984
Таджичу за 100к на удаленочке на пхп, мне норм, учитывая, что работы на пару часов в день и такого соотношения работы к оплате ты хуй найдешь в моей днищесранске. Плюс если припичет, как выше писали, вполне можно расширить своей стек (до размеров ануса твоей мамки) и перекатиться на еще более сладкие условия.
Аноним 29/01/21 Птн 16:41:48 1925279441
>>1925245
зашел туда и глянул участников - хрюкнул от того, что увидел там человекас которым в реале коммуницировал лол
Аноним 29/01/21 Птн 16:44:53 1925281442
А вот если я фуллстек-спец аппер-мидл левела, который спокойно может в одно рыло (опционально нанять двух-трех дурачков в помощь) с небольшой помощью гугла клепать интернет-магазины и прочие широко распространенные на рынке пыха-продукты, но при этом продолжаю работать на дядю за мягко говоря не супер-большое бабло, я сильно дебил?
Аноним 29/01/21 Птн 16:45:49 1925285443
Аноним 29/01/21 Птн 16:47:00 1925288444
>>1925285
Соу-соу, на пальцах объясниться смогу и словарный запас широкий, но грамматика хромает.
Аноним 29/01/21 Птн 16:49:17 1925292445
Сначала сломал локально репу хаотичным обновлением веток и запуском make команд. А теперь впн лежит и не могу заного скачать чистую репу из гитлаба.
Охуенно день проходит.
Аноним 29/01/21 Птн 17:36:20 1925343446
Аноним 29/01/21 Птн 17:36:40 1925344447
Аноним 29/01/21 Птн 18:04:37 1925372448
>>1925344
Коммерческого - 7 лет, а так сайтики на хтмл первые простейшие в 12 лет делал, а после стал с кодингом разбраться, так это получается уже 17 лет прошло.
Аноним 29/01/21 Птн 18:05:58 1925373449
>>1925344
>>1925372
Но я очень ленив и неамбициозен, поэтому такой слабый результат. Чуваки, которые меня в универе просили помочь с кодингом и были на голову слабее меня, сейчас например кто в Германии, кто в США уже пашут за серьезные деньги.
Аноним 29/01/21 Птн 18:18:29 1925385450
>>1925373
Вот именно, что пашут. Если тебе с твоими 100к комфортно, то зачем напрягаться?
Аноним 29/01/21 Птн 18:34:11 1925407451
Как реализовать такую функ,когда в одной форме можно ввести или мыло или логин?
Аноним 29/01/21 Птн 19:02:14 1925437452
>>1925407
Допустим в таблице учеток у тебя два поля: логин и имейл.
Сначала ищешь по логину, потом по имейлу. Если ни то, ни другое не нашел - посылаешь юзера.
Самый простой вариант
Аноним 29/01/21 Птн 19:05:46 1925442453
>>1925437
тут фишка,как прицепить обработчик к одной форме?
что передавать в POST?
Аноним 29/01/21 Птн 19:10:05 1925445454
>>1925442
user
потом проверяешь select from users where name=user or email=user and pass=pass limit 1;
Аноним 29/01/21 Птн 20:21:36 1925519455
>>1925272
>что работы на пару часов в день
Это как? На проде вечно ломается, нужно закрывать таски, лить, быть на связи, делать ревью. Чем старше разработчик, тем больше ответственности, особенно на удалёнке.
Аноним 29/01/21 Птн 20:25:24 1925520456
>>1925281
Надо расти, а не быть фулстеком и кнопки прикручивать. В серьёзных(денежных) проектах нет никаких фулстеков.
Аноним 29/01/21 Птн 21:09:17 1925546457
>>1925442
Одно общее поле для логина и для мыла
Аноним 29/01/21 Птн 21:13:12 1925550458
Какой ОСью пользуетесь для кодинга?
Седня чет виндовый всл2 мне знатно в штаны насрал.
Вчера всё работало, проект через мейк с докером развернулся.
А седня баг на баге, так и не поставил заново проект. Думаю убунту накатить второй осью.
Аноним 29/01/21 Птн 21:31:26 1925572459
1611945102849.png 136Кб, 536x740
536x740
Скрин из ларакаста по отношению Many to Many.
Это так и должно быть, что для промежуточной таблицы не делается отдельная миграция? Возможно он где-то об этом говорит, но я просто сейчас без звука, а в документации тема не раскрыта.
Аноним 29/01/21 Птн 21:33:51 1925574460
>>1925572
Включи звук или ты сюда за субтитриами зашёл?
Аноним 29/01/21 Птн 21:34:32 1925575461
>>1925550
>баг на баге
Не думаю, что это из за wsl.
Аноним 29/01/21 Птн 21:35:09 1925576462
>>1925572
Ну сделай отдельной миграцией.
Так то эти две таблицы по смыслу очень тесно связаны
Аноним 29/01/21 Птн 21:36:03 1925578463
>>1925575
>это из за wsl
Да, всё так. Даже ишью нашел под свой кейс и советы уровня "перезапустите докир и всл"
Аноним 29/01/21 Птн 22:48:37 1925619464
>>1925519
>На проде вечно ломается
Ну да, раз в неделю где-то приходят оттуда таски ворохом
>нужно закрывать таски
За пару часов закрываю на день-два вперед.
>быть на связи
Я на связи, капчую сижу, только параллельно в игоры играю, кино смотрю.
>Чем старше разработчик, тем больше ответственности, особенно на удалёнке.
Так поэтому и 100к, что я не старший и не стремлюсь в менеджмент, с другой стороны головняка минимум, что мне и нравится.
Аноним 29/01/21 Птн 22:49:22 1925620465
>>1925574
Какие же двачеры дегенераты, господи.
>>1925576
>Ну сделай отдельной миграцией.
Спасибо что разрешил, но я просто поинтересовался, как люди делают на практике.
Аноним 30/01/21 Суб 00:07:49 1925656466
Есть один стрим на ютубе. Как из скрипта можно сделать скриншот стрима? Я думал через какой-нибудь headless браузер, но может есть какой-то клиент ютуба на php или еще что-то.
Аноним 30/01/21 Суб 00:22:57 1925666467
>>1925656
Youtube-dl такого не умеет часом?
Аноним 30/01/21 Суб 00:34:48 1925673468
>>1925666
>Youtube-dl
Да, как-то забыл про него. Вроде как умеет. Спасибо!
Аноним 30/01/21 Суб 08:24:50 1925773469
>>1925572
Бля, как смешно выглядит Ларавель по сравнению с Симфони.
В симфони в консоли(в мэйкере) прям пишешь название поля и вбиваешь название к какой таблице приджойнить. Занимает 5 секунд и миграции тебе сгерерит.
Аноним 30/01/21 Суб 08:43:29 1925779470
>>1925550
Только убунтой пользуюсь. Имхо, бэкендер не на линуксе - шо тракторист без трактора.
Аноним 30/01/21 Суб 08:45:43 1925780471
>>1925779
Лол, тут вообще без комментариев
Аноним 30/01/21 Суб 12:15:55 1925891472
>>1925779
Да если б wsl мозги не ебал.
Так то до этого 2 года на винде работал и на пхп и на голанге и всё ок было кроме одного случая когда долго ебался с установкой одного расширения в пхп, а проект был не под докером
Аноним 30/01/21 Суб 12:31:08 1925897473
tutorials24x7-m[...].png 137Кб, 890x1395
890x1395
Это норм схема БД для интернет-магазина? А то я гуглю и везде они, сцуко, разные. Казалось бы, задача-то одна. Но нет, нихрена, каждый лепит, кто во что горазд.
Аноним 30/01/21 Суб 12:32:07 1925898474
1611999143287.png 368Кб, 1920x1080
1920x1080
>>1924863
Хоть всем и похуй, но я решил что для заметок и оценок нужно добавить автоинкремент и сделать из них элоквентовские модели/сущности. Хрен знает, правильно ли это.
Аноним 30/01/21 Суб 13:19:27 1925921475
>>1925897
Так оно и понятно, почему везде разные схемы - требования и функционал везде разные.
А почему бы с нуля не запилить и добавлять миграциями необходимые таблицы и поля?
Аноним 30/01/21 Суб 13:45:11 1925962476
>>1925921
Надо же с чего-то начинать. Лучше сразу представлять, как оно всё будет выглядеть. Понятно, что в процессе будет доработка, но всё же. Да и мне на самом деле накласть на доработки - это просто проект для гитхаба, чтобы было куда посылать на вопрос "а покажите ваш пример кода".
Аноним 30/01/21 Суб 13:50:11 1925976477
>>1925897
В реале таблиц в несколько раз больше под всякие прикладные и системные фичи. Но как каркас и основа такая схема сойдет.
Аноним 30/01/21 Суб 13:51:30 1925979478
Аноним 30/01/21 Суб 14:17:04 1926009479
>>1925897
Берёшь а4 лист и рисуешь. Потом реализуешь, докидывать будешь чего не хватает.
Аноним 30/01/21 Суб 14:49:18 1926049480
1612007375521.png 85Кб, 760x539
760x539
>>1925897
Да кто такой этот ваш slug?
Аноним 30/01/21 Суб 14:54:51 1926058481
>>1926049
Это часть url. Обычно генерируемая. Например, ты создаёшь страницу товара "Сталин-3000" и она доступна по адресу xxx.ru/products/stalin-3000. "stalin-3000" - это и есть слаг.
Аноним 30/01/21 Суб 17:29:00 1926263482
>>1925550
>>1925578
>>1925891

Поебался еще немного с всл. Так и не завел проект. То одна ошибка выскакивает, то другая. Пробовал разворачивать проект на в смонтированном диске (вместо /mnt/c/ в ~/ директории) - установка прошла чуть дальше, потом меня послали из-за прав. А с судо мейк вообще не работает.

По ходу совсем не остается вариантов кроме накатывания убунты второй осью. Если и там будут неразрешимые проблемы - минус работа... А так хотелось поучаствовать в крупном проекте...
Аноним 30/01/21 Суб 17:40:34 1926275483
>>1926263
А ты писал, что у тебя проект не разворачивается? Или только на двочах спрашиваешь сидишь?
Аноним 30/01/21 Суб 18:03:58 1926311484
>>1926275
Вчера пока рабочий день был - писал.
Сегодня нерабочий - не писал.

Самое странное, что в четверг удалось мейком поставить проект. А в пятницу мейк наебнулся.

Там у них есть пара тел на винде, но как я понял большая часть сидит на лине.
Аноним 30/01/21 Суб 18:06:18 1926318485
>>1926311
Ну попробуй на убунте. В любом случае тебя не уволят за то, что проект не смог развернуть
Аноним 30/01/21 Суб 18:39:48 1926364486
какой подход популярнее,
$user = new User("Вова", "Пупкин");
echo $user -> show_name();
или
$user = new User();
echo $user -> show_name("Вова", "Пупкин");
?
Аноним 30/01/21 Суб 18:48:27 1926374487
>>1926364
>echo $user -> show_name("Вова", "Пупкин");
Это че вообще? Что значит какой подход популярнее? Второй вариант не несет в себе смысла. Таким образом имеем не метод показа имени, а обычный принт/эхо на два поля.

Ну и
>echo $user -> show_name();
явно избыточно

Уж лучше делай $user->printName(); и внутри печатай куда надо
Либо $user->getFullName(); который вернет строку
Аноним 30/01/21 Суб 19:02:03 1926387488
>>1926364
$user = new User();
$user->setName('Вася');
$user->setLastname('Пупкин');

echo $user->getName(); или преобразовать объект в массив и вывести массив.
Аноним 30/01/21 Суб 19:06:24 1926394489
>>1926387
я щас почитал,с конструктором как бы более компактно и лаконичнее выглядит
Аноним 30/01/21 Суб 19:19:19 1926403490
>>1926394
Да ты шо? А если у тебя будет 30 полей?
$user = new User('asd', asdad, asdasd, asd asd,,asd aadas, asdas ,,sadas dasd,a dasd as,asd asd ,asd asd as,asd asd a,as das )
Будет анти-паттерн телескоп.

Делай как я. Почитай что такое сущность, в сущности нельзя в конструкторы пихать. Сущность должна быть пустой при создании объекта.
Дальше если ты хочешь параметры вложить - делай это через фабрику, и вот в фабрику можешь уже положить что хочешь.
Либо в конструктор, либо в параметры метода а-ля build(array $params)
Аноним 30/01/21 Суб 19:21:09 1926407491
>>1926394
В сущность в конструктор инъекции вкладывают или авто-генерацию чего-либо, никаких параметров чтоб не было при new User();
Аноним 30/01/21 Суб 20:12:11 1926446492
Кто нибудь работал с Зенд фр в реале?
Аноним 30/01/21 Суб 20:20:03 1926458493
>>1926407
Это ты где такое узнал? Зачем нам создавать пустую сущность?
Аноним 30/01/21 Суб 23:14:46 1926615494
1612037702526.png 284Кб, 801x410
801x410
че это за пиздец куда я попал
Аноним 31/01/21 Вск 01:00:04 1926652495
>>1926364

Второй пример неудачный, так как у объекта обычно есть свойства, которые хранятся внутри объекта. И show_name() берет имя из свойств объекта. А у тебя во втором примере зачем-то имя передается снаружи. Зачем тебе такой объект вообще, если ты в нем ничего не хранишь?
Аноним 31/01/21 Вск 01:16:06 1926664496
>>1926263

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

>>1925962

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

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


Аноним 31/01/21 Вск 01:27:16 1926669497
>>1925445

Только пароли надо солить и хешировать, потому проверка будет чуть сложнее. Сначала извлекаем из БД хеш пароля по условию name = :login OR email = :login, затем проверяем пароль и хеш на соответствие.

>>1925103

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

>>1924866

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

Аноним 31/01/21 Вск 01:36:24 1926671498
>>1924863

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

>>1924657

style.css если совсем фантазии нет. Если есть то register.css.

>>1924375

> вместо того, чтобы один раз почитать мануал по бд и создать метод в три строки, который просто выполнит произвольный query через PDO. Но - для этого надо знать как работают бд! А в елоквенте пофигу, поэтому все быстрее и проще - возразят мне

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

В реальности обычно используется и ORM (для рутинных операций), и прямые SQL запросы там, где ORM неэффективна.
Аноним 31/01/21 Вск 01:50:18 1926683499
>>1923643

Гугли FizzBuzz

>>1923613

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

>>1923514

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

Аноним 31/01/21 Вск 13:58:01 1926924500
Аноним 31/01/21 Вск 14:09:33 1926938501
>>1926924
>как толчок в правильном направлении
Если успеешь добежать.
Аноним 31/01/21 Вск 14:15:42 1926943502
image.png 208Кб, 1151x428
1151x428
>>1926924
Если хочешь научиться делать как деды завещали, то вперед.
Аноним 31/01/21 Вск 14:33:43 1926958503
>>1926943
Многие годы работал дата энтри девачькой, а теперь дохуя профессионал?
Аноним 31/01/21 Вск 14:34:31 1926959504
>>1926943
Эти допотопные визитки лучшая антиреклама пыхи sooqa
Аноним 31/01/21 Вск 15:44:44 1927025505
>>1926943
а как модно стильно и молодежно сейчас?
Аноним 31/01/21 Вск 15:54:35 1927042506
>>1927025
TDD, DDD, Symfony, Event Sourcing, CQRS, Microservices, Hexagonal Architecture
Аноним 31/01/21 Вск 16:21:08 1927087507
>>1927042
если не в падлу кинь ресурсы которые тебе кажутся толковыми. Но желательно что-то с нуля
Аноним 31/01/21 Вск 17:02:50 1927116508
>>1927087
Нулевым надо учить пхп и стандартную библиотеку. Еще ООП и SOLID. Книгу Patterns of Enterprise Application Architecture Фаулера почитать и refactoring.guru

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

Остальное просто бессмысленно читать не имея работы и не зная как проекты нормальные смотрятся и работают.
Аноним 31/01/21 Вск 19:11:30 1927248509
зачем нужен ::parent, если можно вызвать род метод и так?
Аноним 31/01/21 Вск 19:24:16 1927264510
>>1926943
Ахахахах. В совершенстве владеет опенкартом, вордпрессом и БУСТРАПОМ. Ору.
Аноним 31/01/21 Вск 19:27:23 1927266511
>>1927116
>Книгу Patterns of Enterprise Application Architecture Фаулера

Анончик, можно поподробнее, почему именно эту книгу?
Аноним 31/01/21 Вск 19:51:31 1927281512
Аноним 31/01/21 Вск 20:08:14 1927297513
Сап pr. Пишет безработный студент. 3 года учил пыху, писал для себя в удовольствие, немного на фрилансе подрабатывал. Недавно прошёл курс от вуза по автоматизированному тестированию на питоне, зашло очень хорошо мне, опыт веб разработки пригодился.

Так вот вопрос. надо бы уже искать работу, на какой стул сесть? Php разраб или qa python? Нравится все одинаково, где больше перспективы?
Аноним 31/01/21 Вск 20:22:40 1927309514
>>1927266
Она по базовым архитектурным концептам и не оч далека от собственно кода, а то остальные книги по архитектуре либо не по базовым, либо вода и тупо слова, либо и то и то
Аноним 31/01/21 Вск 21:53:02 1927363515
>>1927309
Если выбирать между этой книгой и Совершенным кодом, что лучше прочитать в первую очередь?
Аноним 31/01/21 Вск 22:03:52 1927369516
>>1927363
Конечно совершенный код, он про ифы и прочую дребедень
Аноним 31/01/21 Вск 22:32:23 1927401517
А где в этом вашем ларавеле принято логику держать? В сущностях элоквентовских ( эктив рекорд же ) или как?
Аноним 31/01/21 Вск 23:41:53 1927458518
>>1927297
>Нравится все одинаково, где больше перспективы?
Дам тебе самый базовый совет - учись принимать решения самостоятельно. Работать будешь ты, а не двач.
И самый заезженный совет - напиши все плюсы и минусы на листочке, и посмотри где чего больше.
Какой бы ты стул не выбрал - везде хлебнешь свою долю говна.
Аноним 01/02/21 Пнд 00:10:28 1927470519
>>1927363
Обе.
Сначала Совершенный код, т.к. он описывает более примитивные вещи вроде грамотного названия методов.
Потом Паттерны, т.к. они затрагивают крупные системы.
Аноним 01/02/21 Пнд 00:13:14 1927471520
>>1927401
Создаешь папочку надеюсь, ты умеешь в шторме папки создавать services в папке App и кладешь туда бизнес-логику.
А елоквент модели лучше держать максимально пустыми, т.к. туда и без того напихали логики актив рекорда перейди в базовый класс елоквент модели и почитай исходники
Аноним 01/02/21 Пнд 05:15:36 1927538521
Сап, двучик.

Подскажи, почему никто не посылает пароль через POST уже в хэшированном виде? Какие в этом подводные камни?

Вот это я для примера накидал
https://pastebin.pl/view/015b0408

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

Поэтому таким образом, если база утечёт, народ не проебёт пароли. Много людей использует один пароль на всё. Это конечно хуёво, но людей не изменишь.
Аноним 01/02/21 Пнд 05:21:53 1927540522
Аноним 01/02/21 Пнд 08:27:38 1927562523
Ремесленники, какие вы знаете методы расстановки скобок { и } ? Какой из них считаете наиболее удобночитаемым и гармоничным?
Аноним 01/02/21 Пнд 08:38:12 1927564524
Screenshot.png 7Кб, 307x250
307x250
>>1927562
Такой метод пришёл мне сегодня на ум, и он весьма красив и гармоничен.
Аноним 01/02/21 Пнд 09:10:11 1927573525
Screenshot.png 42Кб, 823x718
823x718
Прошу объяснить, почему конструкт getOverWorkedHours не считывает значение массива $this->$hours и не считает с него.
Аноним 01/02/21 Пнд 09:23:48 1927591526
>>1927564
По psr один расово верный вариант
Аноним 01/02/21 Пнд 09:39:14 1927593527
>>1927538
Потому что это ничего не меняет по сути и не дает преимуществ.
Никто уже давно не хранит пароли в чистом виде в базе.
Аноним 01/02/21 Пнд 09:52:40 1927598528
>>1927573
Сравни 23 и 28 строки
Аноним 01/02/21 Пнд 10:35:25 1927613529
>>1927297
С чего ты решил что тут тебе подскажут про питон? Перспективы от тебя зависят, насколько будешь стремиться и чего хочешь.
Аноним 01/02/21 Пнд 10:44:19 1927627530
16120732970430.jpg 43Кб, 720x530
720x530
>>1926943
>владеет знаниями AJAX

Всегда проигрываю. Никогда бы не взял на работу и не имел бы дело с тем, кто пишет что "владеет навыком аякс".
ВОТ ЭТО ДОСТИЖЕНИЕ, НАУЧИЛСЯ ОТПРАВЛЯТЬ ЗАПРОС, НИЧЕГО СЕБЕ.
Аноним 01/02/21 Пнд 10:45:51 1927629531
>>1926943
> много лет работал модератором, лил картинки и удалял комментарии
> счас я вас обучу веб-программированию!

Сплошные лулзы
Аноним 01/02/21 Пнд 13:35:20 1927785532
>>1927593
Хранят. И эти базы вскрывают, к сожалению. Я когда фрилонсером подрабатывал видел вполне говнопроекты которые так делают
Аноним 01/02/21 Пнд 14:27:45 1927883533
>>1927627
Ну херки же пишут в требованиях знания REST API, XML, JSON, AJAX
Аноним 01/02/21 Пнд 16:44:02 1928084534
Парни интересно у какого какая вилка, я пхп мидл 120к. Вот думаю искать что то новое, так как на моей галере поднимать не хотят
Аноним 01/02/21 Пнд 17:44:49 1928137535
>>1928084
Чего по собесам не походишь, глядишь, где-нибудь дадут оффер посолиднее?
Аноним 01/02/21 Пнд 19:32:37 1928262536
Аноним 01/02/21 Пнд 20:59:06 1928353537
https://sql-academy.org/ru/guide/number-data-type

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

Я пишу
SELECT room_id, SUM(total) AS count FROM Reservations
GROUP BY room_id
HAVING count % 2 = 1;

Что не так, аноны ?
Аноним 01/02/21 Пнд 22:32:22 1928419538
>>1927538

Если соединение защищено SSL, а сервер не взломан, то пароль защищен от перехвата.

Если используется не SSL, то атакующий может встроить в скрипты кейлоггер (перехват нажатий кнопок клавиатуры) и украсть пароль. Если сервер взломан - то же самое, атакующий может внедрить кейлоггер.

То есть толку от этого особо нет. Разве что защитить пароль от логгирования по ошибке.
Аноним 01/02/21 Пнд 23:09:00 1928443539
Что можно использовать как альтернативу phpstorm, кроме например vscode или sublime? Что еще популярно? Кто-то пользуется eclipse, netbeans? Они популярны вообще? Что сейчас самое используемое?
Аноним 01/02/21 Пнд 23:25:29 1928455540
>>1928443
А чем тебе пхпшторм с вскодом не угодили?
Аноним 01/02/21 Пнд 23:30:59 1928459541
>>1928455
Первый платный, а второй может не угодить например нелюбителям майкрософта.
Аноним 02/02/21 Втр 01:48:09 1928522542
Phpstorm работает на виндовс 7?
Аноним 02/02/21 Втр 05:21:08 1928550543
>>1928522
Да, идет. Но я суко сколько всего только не перепробовал - бесит все своей кривизной и мегатоннами глючной ненужной хрени. Поэтому в итоге юзаю ток notepad++ и очень изредка онлайн-идешки для тестов и отладки, т.к. на серваке все равно все удобней и быстрее.
Аноним 02/02/21 Втр 08:05:18 1928568544
Аноним 02/02/21 Втр 08:42:44 1928572545
Аноним 02/02/21 Втр 08:44:32 1928573546
>>1928459
Тебе лень сбросить раз в месяц триал на шторме? ПХПшторм многие не покупают, пользуются триалом бесконечным.
Аноним 02/02/21 Втр 09:49:45 1928594547
>>1928573
Есть прямая связь с доходами и "экономностью". Дохера жадные и хитрожопые, которые не платят в интернетах, как правило зарабатывают мало, именно потому, что им нахер не надо много, так как они все равно нихера не платят и тырят варез. Те кто платит за контент - тем надо много. А чем больше надо, тем больше и дают.
Купил ютуб премиум, успокоил нервы, улучшилось либидо, больше стал зарабатывать. Программисты блин, поддерживайте друг друга. Не козлитесь на копейки уже!
Аноним 02/02/21 Втр 09:51:04 1928595548
Аноним 02/02/21 Втр 10:27:12 1928605549
>>1928594
>которые не платят в интернетах, как правило зарабатывают мало
Типичная хуйня от инфоцыган, а бараны ведутся, лол.
Аноним 02/02/21 Втр 11:00:51 1928630550
image.png 13Кб, 386x374
386x374
>>1928459
Китайцы даже плагин для шторма запилили, чтобы сбрасывать триал и всячески поддерживают пиратство.
>>1928594
В адекватных фирмах тебе оплатят шторм. А пока пользуемся в образовательных целях, так сказать.

А для особо совестливых шторм покупается на год с первой зп. На второй и третий год идет скидка.
Аноним 02/02/21 Втр 11:01:19 1928632551
>>1928550
А чего вим не накатишь?
Аноним 02/02/21 Втр 11:02:03 1928633552
>>1928572
Это в какой вебстудии мидл столько получает?
Аноним 02/02/21 Втр 11:22:54 1928654553
>>1928633
Мухосраньское ООО "Рога и копыта". Почти 3 года опыта работы.
Аноним 02/02/21 Втр 11:24:59 1928658554
>>1928654
Земля пухом.
Я бы после полугода без апа зп свалил
Аноним 02/02/21 Втр 11:32:54 1928662555
>>1928654

Бля, чел, вали оттуда. У меня в мухосрани ждун вилка 30-50к это норма. Причём ждун самый ждуновый. Без опыта работы вообще. Знать базовые конструкции языка.
Аноним 02/02/21 Втр 11:36:20 1928667556
удаленка или релокейт в дс
Аноним 02/02/21 Втр 11:37:09 1928669557
Аноним 02/02/21 Втр 11:39:27 1928672558
>>1928669
Все проекты на ларе
Аноним 02/02/21 Втр 11:40:19 1928674559
>>1928662
>>1928658
Это единственная контора есть в моем городе. Куда мне валить?
Аноним 02/02/21 Втр 11:42:59 1928676560
>>1928674
Удаленка.
Тебя с ларой с руками оторвут на 100к+
Аноним 02/02/21 Втр 11:44:11 1928678561
>>1928672

СУУУКА, ЧЕЛ. Если ты мидл ЛАРЫ, твой ЗП это 100к+
В ДС 200к на изи.

Где такие города искать? Я хочу лет через 5-10 открыть свою кабанью контору, и платить стафу в сумме столько сколько один мидл получает...
Аноним 02/02/21 Втр 11:46:40 1928681562
>>1928678
Есть города в провинции, где вот так мало платят. Думаю, что через лет 5-10 ничего не изменится. Так что можешь попробовать
Аноним 02/02/21 Втр 11:47:23 1928682563
>>1928676
Окей, попробую на удаленку. Может действительно получиться найти
Аноним 02/02/21 Втр 11:47:55 1928683564
>>1928678
В любом околомиллионнике полно гречневых, готовых мидлами веслать всего за х2 от средней по региону.
В моем городе до сих пор есть ваки ниже 50к для сеньоров всякие вебстудии с битриксом
Аноним 02/02/21 Втр 11:49:40 1928685565
>>1928682
Открываешь хх, поиск Laravel фильтр по удаленной работе. Получаешь около 300 вак часть из них дубли и нерелевант - откликаешься
Аноним 02/02/21 Втр 11:52:11 1928686566
>>1928681
>Думаю, что через лет 5-10 ничего не изменится
Не факт. Прошаренные кабанчики с жирными клиентами апают ставки, чтобы хантить разрабов получше вчерашних студентов.
Моя первая галера, где закончил на зп 40к, сейчас набирает людей за 100к+.
На их фоне вебстудии с микрозарплатами смотрятся блекло
Аноним 02/02/21 Втр 11:52:32 1928687567
>>1928678
Мне недавно в ДС предложили 70к за ларавел-мидлосеньёра. Я не ответил, потому что едва тяну на джуна.
Аноним 02/02/21 Втр 12:02:05 1928696568
>>1928687
С чего решил что не тянешь?
Аноним 02/02/21 Втр 12:12:56 1928703569
>>1928696
У меня проектов на ларе толком не было. Сделал один простенький сайт, плюс видеокурс посмотрел, повторяя то, что описывали. Сейчас делаю пет-проект для гитхаба. Идёт медленно и печально.
Аноним 02/02/21 Втр 12:44:44 1928735570
>>1928703
Почему медленно? В чем затыки?
Аноним 02/02/21 Втр 12:59:17 1928747571
стоит ли реализовать вход помимо пароля на секретном слове?
Аноним 02/02/21 Втр 13:31:20 1928764572
>>1928735
Старый я. 36 лет. Все эти фасады-мидлверы-обсерверы-реквесты-модели-абстракции не то что "сложные", а просто как-то это всё угнетает.

Ну и вообще. Вот сейчас начал делать проект интернет-магазина. Он был в одном из прошлых тестовых. И мне говорили, что это типа дня на три максимум. Даже скорее на три вечера после работы. И вот начал делать. Сначала установка чистой лары со всеми прибамбасами. Тут композером, тут npm, тут пхпшторм настроить. Нет такого, что из коробки поставил и пользуешься. Потом придумывание схемы БД, создание кучи моделей, миграций, заполнение их тестовыми данными через сидеры и фабрики - это всё вроде э-ле-мен-тар-но, но почему-то у меня уходит дохера времени. Дальше контроллеры, вьюхи и прочее. И у меня при написании кода такое ощущение, что я ядерный реактор пытаюсь приспособить для подзарядки телефона. Типа, вот заготовка из ядерных элементов, вот графитовые стержни, пара тонн электроники, бетонные бункера - а дальше кидай проводку сам, делай что хочешь. И делаешь. Каждый шаг только поле изучения толстенного мануала и постоянно ощущение, что сделал всё неправильно. И если даже не ебанёт, то придёт опытный человек и будет долго и обидно ржать над КАЖДОЙ строчкой кода. Мол, контроллер толстый, проверки надо делать в мидлварах и т.д. А другой придёт и скажет, что проверки должен делать обсервер. Короче, ебанина какая-то. Слишком монструозно всё.
Аноним 02/02/21 Втр 13:48:10 1928788573
>>1928764
>говорили, что это типа дня на три максимум
Они все так говорят. 3 дня нужно, если у тебя есть готовые либы под рукой и ты знаешь, как делается аналогичный проект.
А так разработка интернет магазина на ларе дело небыстрое.

На первых порах будет сложно. Потом всё как по накатанной.

Ну и основной показатель для бизнеса - работоспособность кода, кто бы что ни говорил. Нужно запилить МВП и выйти на рынок, а потом уже код причесывать.
Аноним 02/02/21 Втр 15:35:09 1928887574
Первый раз пилю что-то на ларе. Соответственно впервые столкнулся с такой вещью как вебпак ( да и вообще с npm пакетами ), а точнее с такой оболочкой над ним как Laravel Mix.
Весь день пытаюсь понять как и для чего его использовать, доки разные читаю - но везде лишь сырая информация об использовании отдельных функций.
Вот только нигде я не смог прочитать, а какая общая картина должна выстроиться в итоге?
Вот без этих всех штучек я делаю для каждой страницы ( или раздела ) отдельные css и js файлы, и один общий - для повторяемых элементов, например для навигационной панели и т.д.
А что мне с этим вашим миксом делать? Конечно я могу сделать то же самое, просто компилируя все файлы из resources в public, но по-моему это как-то не так должно работать.
Вроде должно быть на выходе по одному css и js полностью для всего приложения? Если так, то я сомневаюсь что люди сразу так и пишут все в один файл, неудобно же.
Значит, мне нужно как-то получить по одному css и js файлу на выходе с множества на входе?
Аноним 02/02/21 Втр 15:42:39 1928898575
>>1928887
>Значит, мне нужно как-то получить по одному css и js файлу на выходе с множества на входе?
Для этого и нужен микс/вебпак и прочие сборщики
Аноним 02/02/21 Втр 16:15:50 1928923576
>>1928685
>>1928676
>>1928678
Как же сложно откликаться на вакансии 100к+, когда у самого зп в три раза меньше, пездос. Такое ощущение, что меня на собесе засмеют. Ещё если руководитель моё резюме увидит, то будут неловкие вопросы...
Аноним 02/02/21 Втр 16:27:07 1928927577
>>1928887
>Вроде должно быть на выходе по одному css и js полностью для всего приложения? Если так, то я сомневаюсь что люди сразу так и пишут все в один файл, неудобно же.
Так в том и фишка, что ты пишешь всё в каталоге resources, как тебе удобно. 20 файлов - значит 20 файлов. А лара сама скомпилирует всё это в минифицированный объединённый код и кинет в public, в один файл. Причём, ты можешь писать на scss каком-нибудь, а скомпилится в css. То же самое с js.
>отдельные css и js файлы, и один общий
Настрой так, чтобы на выходе был не один общий, а так, как нужно. Конкретно как, не подскажу, пока что сам знаю микс только на уровне "скомпилируй мне всё в один файл". Я тоже нуб.
Аноним 02/02/21 Втр 16:37:30 1928936578
Аноны, подскажите по елоквент. Нужно создать модель, и в связанной с ней отношением belongsTo() таблице уменьшить счетчик на еденицу.
Как это сделать?
Создаю модель, сохраняю ее методом
save()
а после через свойство звязанной моджели меняю в ней счетчик?
А это все делается в рамках одной транзакции? А то создам я модель, после буду менять счетчик, а счетчик на этот момент уже 0.

Аноним 02/02/21 Втр 16:42:06 1928939579
>>1928898
>>1928927
Окей, хоть один пазл сложился. А как это сделать то, не подскажете?
Я догадался пока что склеивать файлы через combine() в один, после чего проводить компиляцию получившегося файла в public.
И если со стайлами это работает хорошо, то что делать со скриптами? Просто склеить скрипты не вариант - тогда сценарии, предназначенные для разных страниц будут просто идти один за другим.
Может нужно какой-то внутренний роутер в js писать, чтобы скрипт запускался только на нужной странице? Я то не знаю, как нормальные люди делают.
Аноним 02/02/21 Втр 16:43:52 1928941580
>>1928764
Фигня это.
мимо 34лвл, кун >>1924135

Привели мысли и привычки в порядок в первую очередь. Порядок в ежедневном тащит за собой порядок в мыслях.
Аноним 02/02/21 Втр 16:47:34 1928944581
>>1928939
У меня написано тупо по дефолту.
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps();

И в app.scss просто импортирую дополнительные файлы стилей: @import 'main.scss'; Наверное это не тру, но работает.
Аноним 02/02/21 Втр 16:57:20 1928950582
КАК же задолбал ЛАРАВЕЛ
Всё у него через жопу хитровывернуто. Сегодня весь день делал список из БД. На Yii2 за пол часа сгенерировал бы код и всё, а тут... писда
Аноним 02/02/21 Втр 16:59:43 1928953583
> public function __construct ($name, $surname) {
// Вызов конструктора наследуемый класса
parent::__construct($name, $surname);
не понимаю смысла,разве он не насл автоматом?
Аноним 02/02/21 Втр 17:02:08 1928954584
>>1928923
Какая разница, какая у тебя зп? Говоришь "Рассматриваю зп 120к белыми".
>Ещё если руководитель моё резюме увидит, то будут неловкие вопросы...
Ебать ты... Ну увидит и что? Мб одумается, что второго такого за 30к не найдет, апнет зп
Аноним 02/02/21 Втр 17:02:30 1928955585
>>1928887
Смотря что используешь. Если только jQuery то в принципе не сильно важно собираешь или нет. Микс(вебпак на самом деле преконфиженный) дает тебе возможность писать новый жс(или даже тайпскрипт) для старых браузеров, транспилируя и вставляю нужные полифиллы, например если ты используешь промисы то ие11 охуеет от такого поворота. Если у тебя на сайте 50 страниц разных, то не сильно много смысла пихать все стили и скрипты в один бандл. Тут несколько стульев, можно делать несколько entry поинтов, по каждому на разную страницу типа, ты должен сам их подключать в нужных местах. Можно через жс организовать модульность, вебпак это может делать, например я наговнякал сейчас вот так как вариант: https://pastebin.com/bpp3eEk0 , в таком варианте проще делать .extract() на какие-то тяжелые либы(твой бандл сплитится на app.js, vendor.js и manifest-runtime)
Аноним 02/02/21 Втр 19:11:30 1929040586
>>1928887

Склеивать все в один файл - это подход, который работает только для маленьких сайтов. Это тупой подход, который выдает на выходе огромные JS/CSS файлы с кучей ненужного.

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

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

То есть, вместо огромных скриптов ты делаешь компоненты, а сборщиком из них собираешь итоговые скрипты.
Аноним 02/02/21 Втр 19:14:14 1929042587
>>1928953

Нет, по умолчанию новый конструктор в наследнике заменяет конструктор в предке (как и любой метод в наследнике заменяет метод предка).
Аноним 02/02/21 Втр 19:21:11 1929049588
>>1929042
>>1929042
ну в теории да,если имя одинаковое,то будет переопределение.
а здесь нафига обратились к род конструктору из дочернего с теми же аргументами?
Аноним 02/02/21 Втр 20:51:50 1929125589
>>1928353
>SUM(total)
Зочем ты тоталы суммируешь?
Аноним 02/02/21 Втр 22:35:03 1929248590
>>1928594
Ты не умеешь управлять деньгами. А американец, который тебя нанимает за копейки на галере - умеет.
Вот именно что прямая связь, меньше тратишь - больше денег в кошельке, простая арифметика

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

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

Аноним 02/02/21 Втр 23:33:45 1929295591
image.png 593Кб, 535x528
535x528
>>1929248
>Ты попал в обычную ловушку нищего, раньше ты довольствовался поездкой на автобусе и супом домашним, теперь ты больше зарабатываешь и тратишь кучу денег на такси и рестораны.
Аноним 03/02/21 Срд 02:20:46 1929375592
Подскажите минималистичный DI контейнер. Пимпл, который рекомендовал ОП, вроде как больше не будут обновлять, я раньше на нем делал. Или все таки несмотря на это его можно юзать во всяких микро-проектах?
Аноним 03/02/21 Срд 02:41:33 1929385593
Где лучше всего реализовать создание какой-то более-менее сложной модели в ларавеле? Просто сервис сделать, или через какие-то эвенты-обсерверы-черта лысого?
Аноним 03/02/21 Срд 09:52:01 1929456594
>>1929375
PHP-DI

пимпл кстати не DI контейнер, но сервис-локатор по сути. Типа антипаттерн, скрывает требуемые для класса зависимости и все такое.
Аноним 03/02/21 Срд 11:27:47 1929515595
Все эти разговоры про ООП, СОЛИД, ТДД, ДДД...
Захожу в исходники symfony console. Главный файл Application строк так 1.5к с кучей методов маленьких и побольше (до 2х экранов).
И это ваш красивый код?
Аноним 03/02/21 Срд 13:58:53 1929591596
Мне нужно создать фабрику в ларавеле, которая заполнит таблицу. Там три поля: productId, cartId и quantity. Казалось бы, пиши
$productId = $this->faker->numberBetween(1, 20);
$cartId = $this->faker->numberBetween(1, 10);
$quantity = $this->faker->numberBetween(0, 3);
Но есть важное условие: в таблице не должно быть одинаковых productId и cartId. То есть, отдельная корзина может упоминаться много раз с разными товарами, но вот двух записей, у которых одной и той же корзине соответствует один и тот же товар быть не может.

Как это вообще сделать? Я пытался в фабрике делать проверки, типа
Cart_item::all()->where('cartId', $cartId)->where('productId', $productId)->isNotEmpty(), но они не срабатывают, потому что фабрика сначала формирует данные, и только потом записывает единовременно в базу. Поэтому проверять базу бессмысленно.
Аноним 03/02/21 Срд 14:09:53 1929603597
>>1929591
В фабрике ты можешь написать любой код.
Сначала собери консистентные данные не записывая их в бд. Потом делай запись.

Конкретно здесь: тебе нужны уникальные пары карт_ид и продукт_ид. Ок, запили их на чистом пхп. Потом сгенеренные данные пиши куда надо.

P. s. прав по ходу был тот анон, что про нативный пхп говорил...
Аноним 03/02/21 Срд 14:14:21 1929606598
>>1929603
Но ведь мы вызвываем фабрику каждый раз, как в первый. Разве нет?
Cart_item::factory(20)->create();
То есть, мы загружаем фабрику 20 раз. Я понимаю, что данные, сгенерированные между вызовами где-то сохраняются, но не в самой же фабрике?
Аноним 03/02/21 Срд 14:30:32 1929621599
Ну пусть твоя фабрика за один вызов генерит весь набор данных.
Указали ей сгенерить N записей - она лезет в бд, достает существующие пары, на основе них генерит новые N пар и отдает тебе пачкой.
Cart_item::factory(1)->create(); // за один вызов фабрики генерим набор записей
Аноним 03/02/21 Срд 14:35:28 1929631600
>>1929591
Я конечно хуй знает, но почему бы просто не сделать в базе этот набор уникальным?
Аноним 03/02/21 Срд 14:37:54 1929633601
>>1929631
Это надо в кишках лары полазить на предмет того, учитывает ли она уникальные ключи в фабрике.
Мне кажется, что нет.
Аноним 03/02/21 Срд 15:01:06 1929650602
>>1929631
Как? Есть параметр unique(), но он относится к генерируемому значению. То есть можно сгенерировать 20 несовпадающих чисел. Но в том-то и дело, что им по условию не запрещено совпадать. Совпадать запрещено их комбинации с другими числами.

Например,
4 8
5 9
4 9
- это нормально. А
4 8
5 9
5 9
уже нет.
Аноним 03/02/21 Срд 15:21:51 1929672603
>>1929650
unique можно поставить на несколько полей - т.е. создать уникальный составной индекс
Например, ставим на два первых поля (еще какое-то третье поле)
(4 8) 1
(5 9) 5
(5 9) 4 - уникальность нарушена
Он будет чекать пару целиком
Аноним 03/02/21 Срд 15:41:21 1929684604
>>1929672
>unique можно поставить на несколько полей
Как?

У меня вообще лажа какая-то. Запускаю
Cart_item::factory(13)->create(); //создать 13 товаров в корзинах
В самой фабрике написано
$cartId = $this->faker->unique()->numberBetween(1, 15); //ссылка на корзины

И валится ошибка:
Maximum retries of 10000 reached without finding a unique value

То есть фейкер за 10к попыток не смог подобрать 13 уникальных значений из промежутка от 1 до 15? Бред какой-то.
Аноним 03/02/21 Срд 15:50:22 1929693605
>>1929684
Тааак. У меня несколько фабрик. И такое ощущение, что faker->unique() как-то сохраняет инфу о "занятых" значениях между вызовами. Доходит до того, что запускаю фабрику 1 (один) раз, но она не может найти уникального значения. гуглил эту тему, пытаясь разобраться, как вообще работает фейкер, но не смог. Везде чисто обзорные статьи. Даже в документации. Ну или я плохо искал. Ебанина какая-то. Будь оно всё проклято.
Аноним 03/02/21 Срд 16:12:18 1929716606
>>1928923

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

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

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

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

Аноним 03/02/21 Срд 16:29:44 1929738607
>>1929693
А залезть в кишочки фейкера религия не позволяет?

Ну и я бы не завязывался на внутренности либ, сделал бы всё своими силами, если не уверен, как оно там внутри устроено
Аноним 03/02/21 Срд 16:31:16 1929740608
>>1929684
Уже бы описал это дело в сидере и дальше ебашить пошел... Застрял на херне.

Какая задача стоит? Сгенерить для базы 20 позиций?
Аноним 03/02/21 Срд 17:28:10 1929799609
>>1929738
Не умею.
Нашёл, что unique() упоминается в генераторе
* @method Generator unique($reset = false, $maxRetries = 10000)
Но больше там ничего про него нет и как вообще понять, как оно устроено, я не знаю.

>>1929740
>Какая задача стоит? Сгенерить для базы 20 позиций?
В общем, да. Сгенерировать для одной таблицы штук 20 корзин, а для другой 20 товаров в корзинах (т.е. в таблице только ид товара, ид корзины и количество товара).

Дальше надо ещё заполнить таблицу Order и Order_item, но это уже точно ен смогу, потому что заполнять нужно не просто левыми данными, а так, чтобы цифры совпали. И данные... Короче, ну его нахуй. объяснить что-то и тяжело и нахрен никому не нужно, всё равно делать нужно мне, а не интернету. Забейте.
Аноним 03/02/21 Срд 18:13:40 1929828610
>>1929799
>Дальше надо ещё заполнить таблицу Order и Order_item, но это уже точно ен смогу, потому что заполнять нужно не просто левыми данными, а так, чтобы цифры совпали
Так в фабриках можно создавать связанные модели. В доке про это есть
Аноним 03/02/21 Срд 18:18:00 1929838611
>public function __construct(Bar $bar)
что за Bar?
Аноним 03/02/21 Срд 18:23:51 1929842612
Аноним 03/02/21 Срд 18:55:55 1929867613
>>1929842
ты мне скажи,че за тема
Аноним 03/02/21 Срд 18:58:44 1929870614
>>1929867
У тебя вырвано из контекста.
Приложи скрин, где этот код увидел.
Аноним 03/02/21 Срд 22:31:27 1930010615
Почаны, привет. Решаю потихоньку задачку с преобразованием чисел в прописной вид. Нужно разделить число на части по 3 цифры. Правильно ли я поступаю, используя этот код?:

$n=51651654165123;

$spelN=[];

for ($i=$n; $i>=1; $i=$i+0) {
$i=$i/1000;
$t=floor(1000fmod($i,1));
$spelN[]=$t;
}

$spelN=array_reverse($spelN);

Алсо, поясните, почему fmod выдает, например, первым числом 0,12300109863281 , а не 0,123? Ведь дробный остаток от деления $i/1000 по модулю 1 должен равняться именно 0,123. Именно потому, что пыха возвращает длинное число, использую 1000
fmod с функцией floor.
Какие еще могут быть варианты с разделением числа на группы?
Аноним 03/02/21 Срд 22:32:21 1930013616
>>1930010

<?php

$n=51651654165123;

$spelN=[];

for ($i=$n; $i>=1; $i=$i+0) {
$i=$i/1000;
$t=floor(1000*fmod($i,1));
$spelN[]=$t;
}

$spelN=array_reverse($spelN);

Обосрался с разметкой
Аноним 03/02/21 Срд 22:36:47 1930018617
>>1929838
Это тайпхинты, при запуске проверяется тип переменной $bar, который должен соответствовать типу Bar, то есть в $bar должен быть передан класс Bar или класс который наследует класс Bar, либо класс который имплементирует интерфейс Bar. Если переданный тип будет не Bar или значение будет null то у тебя все упадет.
Аноним 03/02/21 Срд 22:45:13 1930023618
Посоны, насколько важна однопоточная производительность для пыхи, влияет ли конкретный фреймворк, типа Битрикса? Если нет, то к чему хостинги толкают свои YOBA 5GHz VDS именно для него?
Аноним 04/02/21 Чтв 01:04:14 1930117619
16092664793410.png 4Кб, 112x112
112x112
>>1930023
> Битрикса? Если нет, то к чему хостинги толкают свои YOBA 5GHz VDS именно для него?
Битрих бренд. А по факту низкопроизводительное говно. ему нужно дохуя мощности + пердолинга с конфигами пхп.
И поэтому хостинг провайдеры подготавливают для него все настрречки и накидываю деньжат. Бизнес в РФ он такой.
Аноним 04/02/21 Чтв 08:10:26 1930188620
>>1930023
При запуске скрипта php-fpm создаёт отдельный процесс и на одном ядре могут крутится несколько процессов, этакая однопоточная многопоточность, вот именно для этого нужны еба процессоры, если будет меньше ядер и герц то эти запросы будут висеть в очереди nginx. А Битрикс это говно которое под капотом содержит в себе жрущего ресурсы монстра, у меня простая страница вывода статей через news.list делала 260 запросов к базе, что там за магия такая хуй его знает, а про чтение тысяч при каждом запусуе файлов я уже молчу.
Аноним 04/02/21 Чтв 08:12:50 1930189621
>>1930117
>Бизнес в РФ он такой.
Да он везде такой, если тебе нужно запустить говно которому нужны дополнительные ресурсы и ебля с конфигами, то нужно дополнительно оплачивать своим админам и докупать железки, именно поэтому и накидывают ценник
Чубопель 04/02/21 Чтв 08:44:00 1930191622
15693536418480.png 888Кб, 756x715
756x715
hh.ru/vacancy/42061716 — думаете утка? Так он может 1000 кандидатов взять, это же слишком низкий порог. Выглядит как мошенник.
Аноним 04/02/21 Чтв 09:19:31 1930197623
>>1930191
>думаете утка?

>Вас ждет интенсивное обучение основам PHP и CMS Bitrix framework.

>Описание стажировки PHP и CMS Bitrix (1 месяц). 1 этап :

> Прохождение сертификации 1С-Битрикс в несколько этапов (в том числе мы оплачиваем за вас $ВСЕ платные$ экзамены уровня Базовый и Профессионал;
Тут вся подъебка за месяц ты хуй эти 2 экзамена сдашь, либо тебе нужно сидеть задрачивать этот битрикс сутками, поскольку там все через жопу, а сам экзамен заключается в том на сколько ты умеешь кликать мышкой в админке и делать ctrl+c и ctrl+v. А еще экзамен представляет собой подключение к удаленному серверу, где все будет адово тормозить, установлена древняя версия CentOS с древним гномом, короче от инфраструктуры для сдачи стресса больше чем от самого экзамена. После пары месяцев интенсивной работы над новыми проектами вполне вероятно сдашь, а так сходу без знакомства с этим поделием я не уверен, либо тебе нужно дрочить билеты.

> Стажировка не оплачивается и является удаленной. Если у вас нет компьютера, можно в офисе компании (Краснодар) проходить обучение.
> При успешном прохождении следует трудоустройство в штат (2 этап) с испытательным сроком (3 месяца). Также у вас на руках остаются именные сертификаты разработчика 1C-Битрикс Framework
Короче такой инкубатор, если из тебя получился битриксоид, то милости просим, если нет, то иди нахуй без денег.

> CMS Bitrix
Это самый наиглавнейший подъеб, для примера разверни эту хуйню у себя локально, поюзай чуток, а потом сравни с той же ларой.
Аноним 04/02/21 Чтв 09:24:53 1930200624
>>1930188
> 260 запросов к базе
Наебал 160, но тем не менее не понятно нахуя
Аноним 04/02/21 Чтв 10:41:36 1930225625
На w3schools есть уроки в РНР tutorial? Как считаете? Там годнота? Збс проходить уроки туториала РНР в w3schools? Или это говно, старье и в рот ебать это все?
Аноним 04/02/21 Чтв 11:30:31 1930253626
>>1930225
Там самые основы основ, причем не особо свежие (7 и 8 версии пыхи не раскрыты)
Уж лучше по гайду из шапки идти
Аноним 04/02/21 Чтв 11:43:45 1930258627
>>1930253
Спасибо огромное за ответ. Тогда выходит, что если там самые основы основ, то можно их залпом пройти за относительно недолгое время.
Аноним 04/02/21 Чтв 11:45:20 1930259628
>>1930258
Ну да, там материала максимум на день.
Аноним 04/02/21 Чтв 14:03:32 1930370629
А можно как-то отлавливать ошибки, которые могут возникнуть при выполнении команд через exec? Еще часто вижу мнение, что вообще использовать exec такой же зашквар как и eval. Я бота делаю, который через exec скачивает видос из ютуба и делает с ним кое-какие манипуляции через ffmpeg, если что.
Аноним 04/02/21 Чтв 17:19:23 1930586630
Аноним 04/02/21 Чтв 18:06:57 1930620631
>>1930370

Есть такое понятие, как код завершения процесса. Обычно. если все успешно, он равен 0, а если произошла какая-то ошибка, то не равен. Ты можешь проверять код завершения, который вернет exec().

Также, обычно при ошибке программа выводит какую-то информацию в стандартный поток ошибок (stderr). Через exec() ты его не перехватишь, потому лучше использовать библиотеку Symfony Process, которая умеет перехватывать выводимые запущенной программой данные.
Аноним 04/02/21 Чтв 18:21:13 1930629632
>>1930188
Я имел ввиду, насколько он может распараллелить запросы по разным ядрам/потокам? Судя по встроенному тесту Битрикса, кол-во попугаев не зависит от кол-ва ядер.
Аноним 04/02/21 Чтв 18:30:56 1930639633
>>1930010

> почему fmod выдает, например, первым числом 0,12300109863281 , а не 0,123?

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

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

К примеру, var_dump(123456789012345678901234567890) выведет:

double(1.2345678901235E+29)

(E+29 значит "умножить на 10 в 29 степени). Как видно, сохранились лишь 14 значащих цифр, остальные были потеряны.

Более того, числа в памяти хранятся не в десятичном, а в двоичном виде, как N * 2 ^M (где N и M - целые). Если приглядеться к формуле, то с ее помощью можно точно представить лишь некоторые дробные числа (кратные 1/2, 1/4, 1/8, 1/16 и тд.), а большинство дробных чисел представить точно нельзя:

0,5 - можно точно представить как 1/2 или 1 * 2 ^ -1
0,125 = 1/8 = 1 * 2 ^ -3

А вот другие дроби, вроде 0,1 или 0,123 точно представить нельзя. Из-за этого они представляются в памяти как 0,10000000001... или 0,09999999999999... и возникает погрешность при вычислениях.

В твоем случае 0.0000010986... - это именно такая погрешность. От нее лучше избавляться не с помощью floor(), а с помощью round(), так как погрешность может быть и отрицательной и у тебя может получиться 0,1229999999 и floor() выдаст тут 122 вместо 123.
Аноним 04/02/21 Чтв 18:54:37 1930652634
>>1929693

Тут надо не статьи читать, а исходный код.

Разберемся, как работает код

Factory::create()->unique()->randomNumber

Можно открыть исходники фейкера и посмотреть, как он работает. Начать с Factory::create(): https://github.com/fzaninotto/Faker/blob/master/src/Faker/Factory.php#L11

Видно, что она создает объект Generator и запихивает в него кучу провайдеров.

Затем смотрим код объекта Generator, в нем метод __call(), так как именно он вызовется в ответ на вызов ->unique().

Видно, что в Generator есть "форматтеры" - это конкретные методы для генерации значений вроде randomNumber и "провайдеры" - это классы с набором форматтеров.

Видно, что он ищет метод с именем unique во всех провайдерах и, когда найдет, вызывает его. Такой метод есть в классе Base, от которого наследуются другие провайдеры: https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/Base.php#L561

Этот метод "оборачивает" объект Generator в обертку UniqueGenerator: https://github.com/fzaninotto/Faker/blob/master/src/Faker/UniqueGenerator.php

Дальше, я думаю, можно понять.

Тут еще важно, что после первого вызова $faker->unique() объект UniqueGenerator сохраняется в поле $this->unique и второй вызов $faker->unique() вернет тот же объект (с теми же сохраненными значениями).

В твоем случае, возможно что ты использовал faker->unique()->numberBetween в нескольких местах кода, сделал более 15 его вызовов и он перебрал все возможные числа от 1 до 15 и потому не может найти новое.

В общем, я думаю, полезно покопаться в коде, умение разбираться в чужом коде тебе понадобится не раз.
Аноним 04/02/21 Чтв 18:57:32 1930655635
>>1929591

У тебя какой-то странный подход к заполнению таблиц. Во-первых, поле id часто автогенерируемое (заполняется в БД само), нельзя ли тут это использовать? Во-вторых, нельзя ли сначала сгенерировать отдельно список товаров, потом список корзин, cсохранить их в БД, а потом уже выбирая из них, сгенерировать список CartItem?
Аноним 04/02/21 Чтв 19:00:01 1930657636
>>1929456

Pimple это DI контейнер.

Сервис-локатор это класс, который передается в конструктор вместо зависимостей:

function __construct($serviceLocator)
{
$this->x = $serviceLocator->getX();
}

Pimple так не используется, он является DI контейнером.

Аноним 04/02/21 Чтв 19:03:20 1930662637
>>1929049

Допустим, есть класс A с полями a, b, c и его наследник B c полями d, e, f. Конструктор A отвечает за заполнение полей a, b, c а конструктор B за поля d, e, f. Если в конструкторе B не вызвать конструктор A, то поля a, b, c останутся незаполненнными.
Аноним 04/02/21 Чтв 19:09:14 1930668638
>>1930655
>Во-первых, поле id часто автогенерируемое (заполняется в БД само), нельзя ли тут это использовать?
Да, оно заполняетса само. И как это использовать?
>сначала сгенерировать отдельно список товаров, потом список корзин, cсохранить их в БД, а потом уже выбирая из них, сгенерировать список CartItem?
Именно так и происходит. Но вот с правильным заполнением полей таблицы Cart_item проблма.
Аноним 04/02/21 Чтв 20:52:25 1930782639
что такое JSON понятным языком и с чем его едят?
Аноним 04/02/21 Чтв 21:35:07 1930828640
>>1930782
Мне кажется определение из вики вполне исчерпывающе.
JSON (англ. JavaScript Object Notation, обычно произносится как /ˈdʒeɪsən/ JAY-sən[2]) — текстовый формат обмена данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан Дугласом Крокфордом[3].

Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.
Аноним 05/02/21 Птн 07:33:35 1931007641
Похвалите меня, я маленько научился чуть-чуть по-английски читать с помощью гугл переводчика. Сейчас прохожу w3cschools туториал по РНР.
Аноним 05/02/21 Птн 11:18:45 1931102642
>>1931007
есть русская версия
Аноним 05/02/21 Птн 12:16:44 1931155643
>>1931102
Ну, ебать. А я уже прошел туториал с помощью гугл переводчика.
Аноним 05/02/21 Птн 12:35:17 1931173644
>>1931155
начни лучше просто с англ
Аноним 05/02/21 Птн 12:44:05 1931187645
Кто-нибудь может направить на статью/видео о том как сделать поиск на сайте? Делаю для Интернет-магазина, но пока готова только сама строка и кнопка поиска.
Аноним 05/02/21 Птн 13:10:18 1931218646
>>1931187
Что искать собрался?
Аноним 05/02/21 Птн 13:49:23 1931239647
>>1931187
Берешь эластик, прикручиваешь, радуешься охуенному поиску, охуеваешь от нехватки памяти.
Аноним 05/02/21 Птн 13:53:38 1931248648
ДА блин, запостить вопрос не могу
Аноним 05/02/21 Птн 13:54:07 1931250649
Аноны, как в елоквент создать новую модель, и сразу же инкрементировать\декрементировать связанную отношением belongsTo модель?
Меня беспокоит атомарность этого действия.
Я создаю модель, и сохраняю ее методом save().
После этого я должен декрементировать связанную отношением модель, это можно сделать через свойства.
Ну будет ли это все в рамках одной транзакци?
?
Аноним 05/02/21 Птн 13:58:24 1931253650
>>1931250
Ну оберни в транзакцию
Аноним 05/02/21 Птн 17:39:46 1931490651
>>1931248
Если тебе не хватает интеллекта даже запостить вопрос, то я советую тебе забросить веб программирование.
Аноним 05/02/21 Птн 18:01:26 1931510652
А как понять, что ты ООП достаточно изучил? Я вот начал читать про ООП, текста дохуя, нихуя не запоминается. Если каждый пример кода запускать, то я еще 100500 лет буду разбираться.
Аноним 05/02/21 Птн 18:46:56 1931546653
>>1931510
>А как понять, что ты ООП достаточно изучил?
Никогда не будет достаточно. В ООП нужен баланс и чуйка, где хороший код, где говнокод, а где вынужденный говнокод
>Если каждый пример кода запускать, то я еще 100500 лет буду разбираться.
Как ты собрался программированием заниматься без написания кода?
Аноним 05/02/21 Птн 18:50:25 1931549654
>>1931546
>Как ты собрался программированием заниматься без написания кода?
Ну, я Мэтта Зандстру начал читать. Там задач нет. На глаз код читаю, описанные примеры, вроде, все понятно, однако там 738 страниц, то что прочитал 70 страниц назад из головы выветривается.
Аноним 05/02/21 Птн 19:02:07 1931560655
>>1931549
Такие книги стоит читать, если есть опыт написания хотя бы одного проекта. Без наработанного опыта ничего не поймешь.
Читал когда-то давно Зандстру. Не сказать, что сильно помогло.
Аноним 05/02/21 Птн 19:05:16 1931563656
>>1931560
Ну, в шапке треда написано Зандстру читать. А я человек простой, ОП приказал, я читаю.
Аноним 05/02/21 Птн 20:24:19 1931630657
>>1930639
Спасибо, Анон! Ты как всегда очень добр к мимохую. Счастья тебе и удачи.
Аноним 05/02/21 Птн 22:10:13 1931722658
>>1931510
Видосики смотри, видео-курс какой по созданию сайта на ооп пройди.
Аноним 06/02/21 Суб 01:08:33 1931861659
Дорогие аноны, нужен совет. Делаю задачу про сайт тестирования. Как можно реализовать таймер на стороне сервера, чтобы юзер не мог обрубить его через фронт?
Аноним 06/02/21 Суб 01:12:14 1931863660
>>1931861
Сохраняешь в мемкешеде/редисе таймстамп времени окончания, потом проверяешь.
Аноним 06/02/21 Суб 01:14:31 1931868661
>>1931861
Создаёшь в базе запись такой-то юзер начал проходить тест в такое то время, когда он отсылает отвёты сверяешь время получения ответов и время старта прохождения + лимит по времени теста
Аноним 06/02/21 Суб 02:41:13 1931896662
Аноним 06/02/21 Суб 04:15:35 1931930663
Снимок.PNG 3Кб, 475x46
475x46
Почему так не работает, а если вызову $function, то всё нормально?
Аноним 06/02/21 Суб 05:24:32 1931947664
У хтмлакадемии есть базовый интенсив по РНР, там учат кодить на голой пыхе без фреймвороков. И там отсутствует от слова совсем тема ООП. ООП проходят только на продвинутом интенсиве по РНР, где изучают Yii.

Вопрос: а почему хтмлакадемия не дает изучать ООП на голой пыхе? В этом есть какой-то сакральный смысл? Или они тупо пожалели зажопили полезную важную тему для новичков?
Аноним 06/02/21 Суб 08:11:28 1931963665
image.png 43Кб, 558x934
558x934
Аноним 06/02/21 Суб 09:48:32 1931993666
А че надо читать? Официальный мануал по РНР? И РНР зе ригхт вау the right way?
Аноним 06/02/21 Суб 10:28:41 1932002667
>>1931947
Имхо потому что ООП бессмысленно изучать в отрыве от создания приложений, а приложения должны иметь какую-то основу и структуру по минимуму. А писать основу и структуру самим с нуля - это как изобретать велосипед. По идее они должны давать введение в солид принципы и начинать с примера какой-либо основы. А основа и есть фреймворк. Там оно уже все реализовано как бы. Поэтому и такой скачок, одни выберут к yii, другие к зенд, третьи симфу, четвертые лару, а на деле все это - просто варианты структурной организации приложения, построенного на опп принципах. Хотя по умному, они должны не только дать несколько примеров структур, но и предложить создать свою для начала, но это затягивает время по сути, т.к. хер ты создашь что-то лучше, чем уже создано. В этом конечно есть серьезный косяк - фреймворки НЕ УНИВЕРСАЛЬНЫ, и когда берут основу типа симфони для приложухи, которая три строки кода в беке заняло бы, если бы сами писали, получаются говнопроекты.
Но так как после курсов выпускают джунов, в задачу которых не входит самостоятельная разработка, до для макаки более чем.
Аноним 06/02/21 Суб 10:42:50 1932007668
>>1931993
По моему опыту учебники следует пролистывать максимально по диагонали, прогнав немного тесты и задачки, но втыкать в них - ток зря время читать - нихера не запомнится и не поможет, т.к. голая теория нихера не усваивается - ток зря время теряешь.
По любому надо ковырять чужие коды рабочих приложений и stackoverflow, создавая и тестируя свои. когда натыкаешься на понятки - гуглишь что читать по теме уже. То есть хотя бы с элементарного начать, собственного сайтика со свистоперделками со встроенным порнхабом, тестами, парсерами всего, что можно стырить и т.п. Пока не включится интерес к ваянию всяко-разной херни, башка останется пустой а руки кривыми. Это как лепить из пластелина - надо суко лепить, а не читать книжки по лепке.
Аноним 06/02/21 Суб 11:14:23 1932018669
Переменные генерируют рандомное слово (одна буква одно переменное). Как это сохранить?
Аноним 06/02/21 Суб 11:14:50 1932019670
>>1932018
В смысле сделать из отдельных переменных одну со словом
Аноним 06/02/21 Суб 11:21:43 1932022671
>>1931947
Потому что говнокурсы. ООП обязательно надо изучать на голой пыхе, чтобы вообще понимать как примерно работают фреймворки изнутри. Самостоятельно составить MVC-структуру, изучить автолоадер, роутер как работает, нэймспейсы, цепляются конфиги, наследование и прочее.
Поймёшь как это работает - легче будешь понимать фреймворки.

ООП - это база, это не продвинутый уровень.
Я в своё время проходил его, рекомендую, он сначала учит ООП на голой пыхе с созданием CMSке, а потом даже YII обучает, если хочется.
https://www.youtube.com/c/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%97%D0%B8%D0%BD%D1%87%D0%B5%D0%BD%D0%BA%D0%BE%D0%90/playlists
Аноним 06/02/21 Суб 13:16:05 1932177672
>>1931930
Полный код и ошибку можно?
Аноним 06/02/21 Суб 13:19:05 1932183673
Аноним 06/02/21 Суб 13:21:01 1932186674
Аноним 06/02/21 Суб 14:56:47 1932265675
tipidor.jpg 50Кб, 905x317
905x317
Почему он не даёт мне добавить?
Аноним 06/02/21 Суб 16:46:11 1932352676
Пиздец. Как легко на PHP с PDO и mysql создавать базы данных, таблицы и вообще.

Я помню в шараге мы проходили базы данных на C Builder, это был пиздец, все отключалось, ломалось, нихуя не работало, был ахуй и пиздец нахуй.
Аноним 06/02/21 Суб 17:03:30 1932362677
>>1932352
Тогда не могу представить твой ахуй от элоквента.
Аноним 06/02/21 Суб 17:12:44 1932371678
>>1932352
доктрина + symfony maker. Ты тупо по словам накидываешь в консоли сущность, дальше создаёшь миграцию, выполняешь миграцию - всё в базе.
Аноним 06/02/21 Суб 17:15:41 1932374679
>>1932371
Причём миграции тоже генерятся мэйкером, не надо как в ларавеле их писать)
Аноним 06/02/21 Суб 17:25:13 1932384680
>>1932374
И чего, мейкер см телепатией знает, что нужно создать такие-то таблицы с такими-то полями таких-то типов?
Аноним 06/02/21 Суб 18:21:55 1932426681
Аноним 06/02/21 Суб 19:01:18 1932456682
Как в php помечать возможные промежутки между числами?
Например у меня есть переменна $a со значением 1000.
Нужно сделать так чтоб если $a == (промежуток между 1000-700 т.е. от 700 до 1000) то давало true, если 300 или меньше то false.
Аноним 06/02/21 Суб 19:01:51 1932457683
>>1932456
>1000-700 т.е. от 700 до 1000
Оц то-есть от 300 до 1000. Я всё напутал но надеюсь вы поняли что мы хотим)
Аноним 06/02/21 Суб 19:02:04 1932460684
если в бд есть колонка где есть дефолт значение,то нужна команда update?
Аноним 06/02/21 Суб 19:41:22 1932536685
>>1932456
какое-то шизло. А если от 300 до 700?
Аноним 06/02/21 Суб 19:44:22 1932546686
>>1932536
Нет надо от 300 до 1000... Но можешь и вариант от 300 до 700 предпложить... Там в примере - условные цифры. Короче поомгайтк!
Аноним 06/02/21 Суб 21:07:11 1932635687
Аноним 06/02/21 Суб 21:10:19 1932637688
>>1932546
$b=false;
if($a>=300&&$a<=1000) {$b=true;}
на всяк более понятную запись кинул.
Аноним 06/02/21 Суб 21:35:55 1932664689
>>1931930

$this->function() это попытка вызвать метод с именем function. А такого метода нет, отсюда ошибка.

А вот ($this->function)() это уже вызов анонимной функции, хранящейся в поле function.
Аноним 06/02/21 Суб 21:38:50 1932667690
>>1932265

Если я не путаю, CURRENT_TIME можно указывать только для полей типа TIMESTAMP.
Аноним 06/02/21 Суб 22:51:25 1932694691
>>1932637
$b = 300<=$a && $a<=1000, чому не так?
Аноним 07/02/21 Вск 03:17:13 1932868692
>>1932694
Хз. По логике так логично быть должно - слева переменная, справа логическое выражение из двух неравенств. Но по опыту хер там пыха пустит, тем более седьмая, она за скобки параноит как шизло, там тупо обычные сокращения вложенных условий без них не прокатят, и присваивание булевых там другим синтаксисом делается. Хотя пробуй. Может оно и прокатит, если не запятую, а ; d конце влепить. Хотя я почему-то все таки сомневаюсь, поймет ли компилятор. По идее ты тысячу раз мог бы протестить уже, чем тут от нехуй делать кидать подобные вопросики по части алфавита блин. Типа почему жопа, а не жёпа. я хз, не я пыху писал. Да и хуй уже помню, какие там правила.
Аноним 07/02/21 Вск 03:20:35 1932871693
>>1932667
Путаешь. Для любых полей с датой.
И перестаньте пользоваться phpmyadmin уже, дикое говнище оно.
Есть же дохера попроще и потолковее инструментов. типа того же adminer. А то больно бл. смотреть, аж яйца крутит, на такие извраты.
Аноним 07/02/21 Вск 08:22:36 1932906694
Пиздец! Я дебил! Я шараге привык все с доски переписывать в тетрадь. У нас джва компьютерных класса со старыми компами. А учащихся дохуища. На учащихся постоянно не хватает компьютерных классов. Преподы говорят, что компьютерные классы - это архаизм и что в 2к21 году учащиеся обязаны носить с собой ноутбуки. КАКОЙ ТАМ НАХУЙ! Я не мажор нету у меня ноутбуку. Хоть дома некропека есть и то хорошо.

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

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

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

Теперь я запускаю код на пеке, не записывая в тетрадь. И процесс пошел гораздо быстрее. В разы быстрее. ПИЗДЕЦ Я ДЕБИЛ, СТЫДНО БЫТЬ МНОЮ!!! КАКОЙ ЖЕ Я ТУПОЙ!

Спасибо, что есть умные аноны!
Аноним 07/02/21 Вск 10:57:19 1932962695
Screenshot.png 57Кб, 1439x762
1439x762
Аноним 07/02/21 Вск 12:48:21 1933048696
Аноним 07/02/21 Вск 12:51:02 1933051697
Аноним 07/02/21 Вск 12:51:53 1933053698
Аноним 07/02/21 Вск 16:13:59 1933326699
111.jpg 17Кб, 488x88
488x88
А что, в php есть максимальное возможное число?
Аноним 07/02/21 Вск 16:15:13 1933329700
Как сделать так чтоб echo выдавало сумму сложения? Например echo "$a+$b" и выдавало результат $c .
Аноним 07/02/21 Вск 16:17:57 1933334701
Когда выводил $num = 99999999999999999999999999999; В консоли выдало вот такое: 1.0E+29, это он типа слишком большие числа в другой формат выдает?
Аноним 07/02/21 Вск 16:57:27 1933384702
>>1933334
да, гугли типы данных, в какой формат переводить такие числа, чтобы не было ошибки. там интеджер мелкие слишком надо делать флоат чтобы столько девяток втащить. А с js там вообще танцы с бубнами. https://www.php.net/manual/ru/language.types.php
https://www.php.net/manual/ru/language.types.integer.php
Подсказка - гугл отвечает быстрее
Аноним 07/02/21 Вск 16:58:58 1933385703
>>1933329
Ой не ну результат перменную а просто результат. Короче помогайтек!!!!
Аноним 07/02/21 Вск 17:15:05 1933400704
Аноним 07/02/21 Вск 17:17:46 1933405705
Аноним 07/02/21 Вск 19:05:10 1933520706
1933329
Вы серьёзно помогли этому долбаёбу? Он ведь даже не прочитал ОСНОВЫ ОСНОВ, но всё равно спрашивает гениев из этого треда о помощи в такой простой задаче. Я разочарован в вас.
Аноним 07/02/21 Вск 19:35:30 1933569707
>>1933326

Да, есть. В PHP числа могут храниться в 2 форматах: int - целое и double (иногда называют float) - число с плавающей запятой.

В формате int на 64-битных машинах можно представить только целые числа примерно от -9 * 10^18 (10 в 18-й степени) до +9 * 10 ^ 18. Точные максимальное и минимальное значения int хранятся в константах PHP_INT_MAX и PHP_INT_MIN, можешь вывести их с помощью echo. Числа в формате int хранятся точно, без погрешности.

Если число дробное или выходит за пределы int, то оно представляется в формате double. Это неточный, приближенный формат, который сохраняет лишь первые 15-17 значащих цифр и порядок числа (положение запятой и сколько за числом идет нулей). То есть, длинное число 12345678901234567890 сохранится как 1,2345678901235 * 10 ^ 19 - часть идущих в конце цифр теряется.

В формате double можно представить числа примерно от 10 ^ -308 до 10 ^ 308. Это, получается и есть "максимально возможное число".

Если тебе нужно работать с еще большими числами, или нужно точное представление без потери цифр, то стоит посмотреть на расширения BCMath и GMP. Они позволяют выполнять операции со сколь угодно большими целыми числами.
Аноним 07/02/21 Вск 19:37:42 1933574708
>>1933334

1.0E+29 обозначает "умножить 1.0 на 10 в 29 степени", или передвинуть запятую вправо на 29 разрядов, добавляя нули по мере необходимости. Как видишь, из-за преобразования в формат double число сохранилось с погрешностью.
Аноним 07/02/21 Вск 20:37:19 1933627709
загружено (3).png 455Кб, 1917x991
1917x991
загружено (2).png 348Кб, 1913x989
1913x989
загружено (1).png 179Кб, 1874x912
1874x912
Ребят, траблы с пыхой. Проблема ясна, а вот что делать вообще хз. Вся проблема на скринах. Если словами, то phpStorm всрато работает с namespace'ами. Когда создаю класс в другом namespace он напрочь отказывается создавать его экземпляр в исходном namespace. Пытался гуглить, но всё что находил это обычную теорию по пространствам имён. Не могу двигаться дальше в обучении из-за этой проблемы. Вроде всё правильно делаю, но может где то просто тупая ошибка закралась?(p.s если при создании класса подключать namespace через use, а не напрямую как на скрине эффект тот-же).
Аноним 07/02/21 Вск 21:13:56 1933647710
>>1933627
один слэш точно лишний
Аноним 07/02/21 Вск 21:17:54 1933652711
>>1933647
Перед Ass? Попробовал без него, то же самое
Аноним 07/02/21 Вск 22:44:51 1933686712
>>1933627

А как ты, собственно, пытаешься создать инстанс, когда не подключил класс User в свой index.php ?
Мне кажется, тебе нужно для начала получше ознакомиться с немспейсами
Аноним 07/02/21 Вск 22:53:15 1933690713
воть.jpg 215Кб, 1920x1080
1920x1080
>>1933686
Не совсем понял, вот так имеешь ввиду? Через use?
Аноним 07/02/21 Вск 22:57:40 1933694714
>>1933690
Use всего лишь даёт алиас для пространства имен, а не подключает. В данный момент в твоём файле нет класса User, откуда по-твоему php должен его взять ?

Подключить файл можешь через require ‘User.php’ в самом начале.
Аноним 07/02/21 Вск 23:05:46 1933700715
>>1933694
И вправду, заработало. Спасибо большое. Действительно, стоить больше почитать про namespace. Я думал что "use" как раз и выполяет эту функцию. Спасибо анон.
Аноним 07/02/21 Вск 23:06:22 1933701716
>>1933627

Когда ты запускаешь index.php то в нем не определен класс User, потому PHP не может создать объект этого класса.

use не "подключает" класс, а лишь создает синоним (то есть use \Ass\User лишь говорит, что имя User это синоним для полного имени \Ass\User).

Тебе нужно либо руками через require подключить файл с классом, либо разобраться в автозагрузке. Начать лучше с первого, а потом переделать на второе. Вот урок про автозагрузку (так кстати и require упомянут): https://github.com/codedokode/pasta/blob/master/php/autoload.md
Аноним 08/02/21 Пнд 09:46:47 1933936717
Я прошел sql туториал в w3schools. Я - молодец!
Аноним 08/02/21 Пнд 11:34:47 1934039718
изображение2021[...].png 11Кб, 602x388
602x388
Делаю меню с выбором пунктов и вылезающим окном, но есть 2 проблемы: 1) Между меню и окном есть небольшой пробел и, если курсор попадёт на него, то окно исчезнет, я могу это починить приблизив окно к меню впритык, но тогда будет некрасиво; 2) Когда появляется окно, снизу от пункта появляется огромное белое пространство, что печалит меня.
Код css (menuleft это меню слева, а showmenu это окно справа):
.menuleft{
position: absolute;
margin-left: 50px;
margin-top: -300px;
border-radius: 8px;
width: 255px;
box-shadow: 0 1px 2px 0 rgba(0,0,0,0.16);
background-color: rgb(255, 255, 255);
}
.menuleft li{
border-bottom: 1px solid #f5c800;
}
.menuleft li:hover{
color: #ffc222;
transition: all ease 0.5s;
cursor: pointer;
}
.showmenu{
color: #000000;
display: none;
margin-left: 230px;
width: 300px;
margin-top: -31px;
background:#f3f3f3;
height:200px;
box-shadow:0 5px 5px rgba(0,0,0,0.3);
}
.menuleft li:hover .showmenu{
display: block;
}
Аноним 08/02/21 Пнд 11:57:22 1934056719
Валидатор тоже надо в стиле ООП писать?
Мне кажется это будет оверинженеринг
Аноним 08/02/21 Пнд 12:00:44 1934059720
>>1934056
А как ты его писать собирался?
Аноним 08/02/21 Пнд 12:02:00 1934062721
>>1934059
процедурно по классике
Аноним 08/02/21 Пнд 12:43:34 1934110722
>>1934062
Ну пиши процедурно, потом покажешь
Аноним 08/02/21 Пнд 13:02:53 1934121723
Screenshot.png 36Кб, 839x633
839x633
Помогайте быстре!!!!! Как сделать так чтоб хернюшка на строке 65 ссылалась на скорлупу b значения 2? Или просто на значение 2 в скорлупе b.
Аноним 08/02/21 Пнд 13:04:52 1934124724
>>1934121
А всё мы додумались...
Аноним 08/02/21 Пнд 14:58:53 1934281725
image.png 375Кб, 600x255
600x255
Аноним 08/02/21 Пнд 16:44:05 1934430726
>>1934056
на вордпрессе пиши, оверинженегринг)) что тут происходит, ахах, рил
Аноним 08/02/21 Пнд 16:55:16 1934450727
image.png 378Кб, 400x400
400x400
Я тут вам чистый код принес
Аноним 08/02/21 Пнд 20:40:55 1934762728
>>1934039

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

Чтобы подменю не растягивало исходный пункт, нужно использовать такой способ позиционирования, который не влияет на размеры родителя. Например, абсолютное позиционирование.
Аноним 08/02/21 Пнд 22:57:34 1934899729
Никак не могу понять, как в ларавеле работать с чекбоксами?

Допустим, пишем во вьюхе
<input name="isPublished" type="hidden" value="0">
<input name="isPublished" type="checkbox" class="form-check-input" value="{{$item->isPublished}}" {{ old('isPublished', $item->isPublished) ? 'checked="checked"' : '' }} >

А в правилах валидации
'isPublished' =>'boolean'

И получается фигня какая-то. Если не менять галочку, то всё ок. Если снимаем, то в контроллер попадает 0 и всё тоже ок. Но вот поставить обратно её не получается, в контроллер всё равно уходит 0. Я уже и так и сяк с этими полями шаманил, никак не могу понять логику. По идее же у нас тупо два поля. если чекбокс не стоит, то это поле просто не учитывается и контроллеру улетает 0 из скрытого поля. А если галку ставим, то значение чекбокса перебивает скрытое поле и контроллеру идёт 1. Но такое ощущение, что если её снять, то это работает, а если поставить, то нет.
Аноним 08/02/21 Пнд 23:10:27 1934911730
>>1934899

Стоит сначала разобраться, как передаются чекбоксы. Если галочка поставлена, то браузер передает имя (name) и значение (value) чекбокса в POST-данных (например: isPublished=x). Если галочка не поставлена, то значение чекбокса вообще не передается на сервер.

Тебе надо всегда передавать в value одно и то же, например, значение 1.

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

Также, гугл выдает такую статью: https://5balloons.info/working-with-checkbox-input-in-laravel-form/
Аноним 08/02/21 Пнд 23:36:18 1934939731
>>1934911
>Стоит сначала разобраться, как передаются чекбоксы.
Так в том-то и дело, что я знаю, как они передаются. и даже полностью объяснил это в своём посте (и ты повторил то, что я написал).

>Тебе надо всегда передавать в value одно и то же, например, значение 1.
Нет. Мне нужно передавать 1 только если чекбокс установлен.

>передается параметр isPublished дважды.
И снова нет. Можно создать сколько угодно полей с одинаковым name, и значение последнего значащего перепишет прдыдущие, на сервер отправится строго одно поле.

> гугл выдает такую статью: https://5balloons.info/working-with-checkbox-input-in-laravel-form/
Я её уже читал. Там не совсем то. Там написано, что можно сваять в контроллере костыль в виде проверки на существование параметра if($request->has('isPublished')), но к нему ещё придётся прописывать изменение данных в реквесте перед записью в бд. Как-то это криво, не думаю, что должно так быть.
Аноним 08/02/21 Пнд 23:37:15 1934942732
>>1934939
>на сервер отправится строго одно поле.
Сразу уточнение: если оно установлено. Если ни одно поле не установлено, то на сервер оно не передастся вообще.
Аноним 08/02/21 Пнд 23:43:18 1934945733
>>1934939
И моя проблема, по итогу, в том, что если галочка изначально не стоит, но мы её ставим, то уходит "isPublished" => "0", а должно быть "isPublished" => "1". Я не понимаю, где я накосячил.
Аноним 09/02/21 Втр 00:48:08 1934981734
Аноним 09/02/21 Втр 02:06:10 1934997735
изображение2021[...].png 47Кб, 764x736
764x736
изображение2021[...].png 18Кб, 431x666
431x666
Я все правильно сделал?
09/02/21 Втр 15:12:08 1935340736
Проснулись и улыбнулись.

Предыстория.
Учил swift для вкатывания на ios, на нем друзья уже программируют и работают уже не один год. Но что-то не задалось с ним, прошел 1 собес, выполнил все тестовые задания, но были проблемы с теорией. Обговорили зп и договорились, что подучу и выхожу на работу. А тут началась учеба, родичи заболели короной было не до этого и я забил на время как я думал. После всей хуйни нарисовался вариант пойти в небольшую фирму PHP программистом БИТРИКС 24. Долго думал идти или нет, но пошел. Уже были куплены курсы на GeekBrains, дали их и сказали учи. Уже месяц прошел, курсы эти не особо нравятся. А нормальных учебников так и не нашел. На swift было все просто открыл xcode, нашел видеоуроки, есть хорошие учебники. Одно и тоже, но в видеоформате и в текстовом, про сто и доступно. А с PHP ебать сложно. Одни говорят сразу учить пхп в одном редакторе, другие говорят нужно с началу HTML с CSS учить в других редакторах. Я уже запутался. Есть предложения каких-нибудь адекватных курсов, уроков, книг с чего стоит начать.

Если что в будущем нужно будет не сайты клепать, а приложения под CRM Битрикса 24.
Аноним 09/02/21 Втр 16:49:45 1935504737
>>1935340
>приложения под CRM Битрикса 24
В знатное говно вляпался. Лучше бы на свифте сидел
Аноним 09/02/21 Втр 16:52:50 1935507738
1257603280452.jpg 45Кб, 600x600
600x600
>>1934981
Спасибо. Контроллер я менять не стал и хидден поле оставил, а вот value="1" в чекбоксе прописал. И всё заработало правильно.
Аноним 09/02/21 Втр 17:26:49 1935531739
>>1935340
>CRM Битрикса 24

Земля пухом, это самое дно отрасли, пробуй свифт пока есть возможность
09/02/21 Втр 17:35:03 1935539740
>>1935504
>>1935531
Да бля, если в свифт то незнаю когда смогу устроится, а я студент и тут нормально относятся к тому, что хожу не каждый день. В планах пока тут хуярить, пока учебу не закончу еще 1.5 года. Если по окончанию учебы будут хорошо платить то останусь, если нет то устрою перекат на свифт + какой-то опыт будет в разработке.
Аноним 09/02/21 Втр 17:37:31 1935542741
>>1935539
Не судьба договориться со свифтерами на парт тайм?
Пхп само по себе дно, Битрикс еще большее дно
09/02/21 Втр 18:12:35 1935583742
>>1935542
Я не сидел за сфитом уже месяца 3 и уже подзабыл что там к чему. Так еще в городе всего 2 вакансии на свифт джуна, хуй знает можно ли будет у них студентику работать.

А тут уже платят, сиди учи получай бабосы. Так дальше вроде как больше должно быть.
Аноним 09/02/21 Втр 19:00:21 1935675743
>>1935583
>тут уже платят, сиди учи получай бабосы
Погнался за 10 рублями сегодня, чтобы не идти за 100 рублями завтра...
Аноним 09/02/21 Втр 20:48:13 1935857744
>>1935340
Классическая ошибка для начинающего пхп разработчика. Пойми, что ты так в сторону веб-мастера катишься. Убегай на свифт давай, бака!
Аноним 09/02/21 Втр 21:23:06 1935916745
>>1935542
>Пхп само по себе дно
А js тоже дно? Или нет? Если нет, то чем php доннее js'a?
Аноним 09/02/21 Втр 21:23:29 1935918746
>>1935916
И почему это php дно?!
Аноним 09/02/21 Втр 21:34:20 1935931747
>>1935916
За жс хотя бы платят хорошо
Аноним 09/02/21 Втр 21:35:18 1935933748
>>1935918
Низкие зп, тонны легаси, цмски и е-комерс движки. Пхпшники - джамшуты от мира айти
Аноним 09/02/21 Втр 21:36:10 1935935749
>>1935933
И симфонисты тоже джамшуты?
Аноним 09/02/21 Втр 22:04:32 1935966750
Сап, двач.

Допустим у меня api выглядит так, то что оно принимает метод вызываемого контроллера через get параметры.

В таком случае лучше index метод контроллера должен звать остальные, или лучше сделать это через middleware?
Аноним 09/02/21 Втр 23:10:37 1936011751
>>1935935
Симфонисты занесены в красную книгу как редкий вид адекватного пехапешника
Аноним 09/02/21 Втр 23:11:23 1936012752
>>1935966
>api выглядит так, то что оно принимает метод вызываемого контроллера через get параметры
Это на какой галере такие выкрутасы?
Аноним 09/02/21 Втр 23:33:18 1936021753
Допустим есть товар, у товара есть категории. Что делать с товаром при удалении категории через админку? Я себе такие варианты представляю, что наверное лучше вообще не вводить возможность удаления категории, в которой существуют товары. Хотя это тоже так себе вариант.
Аноним 09/02/21 Втр 23:48:41 1936035754
>>1936021
Удалять товар вместе с категорией. Гугли delete cascade.
Аноним 10/02/21 Срд 00:07:13 1936044755
>>1936011
А ларавелисты наполовину джамшуты или полностью? А энтерпрайз проект например на друпале это тоже для джамшутов?
А вот паттерны в пхп стали тоже джамшутовыми от того, что они на пхп? Паттерны на сишарпе от них как-то отличаются? А фронтедер - это джамшут или нет? А битрикс ладно, это возможно частный случай проект для банка - джамшутинг?
Откуда вообще такое разделение на джамшутов?
Аноним 10/02/21 Срд 00:13:05 1936048756
>>1936044
>А ларавелисты наполовину джамшуты или полностью?
Из тех, с которыми работал 50/50. Были, кто откровенно говно в прод льет, были среднячки, хороших ларавелистов, увы, не встречал.
>А вот паттерны в пхп стали тоже джамшутовыми
Если бы их часто видел. Так нет, средний пхп проект - процедурщина, обернутая в классы моделей или контроллеров
>А битрикс ладно, это возможно частный случай проект для банка - джамшутинг
Учитывая начинку битрикса - да
Аноним 10/02/21 Срд 00:48:03 1936085757
>>1936035
Да знаю я что это такое, как по мне самый худший варик.
Аноним 10/02/21 Срд 00:58:17 1936106758
>>1936021

Это вопрос к тебе (ну или к заказчику), а не к нам: что должно происходить?

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

Вариант 3 самый неудачный, так как сотрудник может удалить категорию, думая, что она пустая, а по факту удалит пол-магазина с заказами.
Аноним 10/02/21 Срд 01:03:10 1936117759
>>1935966

Лучше сделать нормальное API с URL вроде http://example.com/products/list.

>>1934997

$b, $test, $str1 - плохое название переменной. Учись выбирать более говорящие названия.

Также, используя функции array_map и max можно найти макс. длину строки без написания цикла foreach.

Писать if ($value[$i]) неправильно, так как в массиве может не быть элемента $i и будет выдано предупреждение. Надо проверять, что такой элемент есть с помощью isset, array_key_exists или count.

в остальном решено верно.
Аноним 10/02/21 Срд 01:13:45 1936138760
>>1932906

Раз ты изучаешь ООП, то можешь глянуть как-нибудь нашу задачку про ООП-гостиницу: https://arhivach.net/thread/302511/#1082529

>>1932460

Не понял вопрос.

>>1931861

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



Аноним 10/02/21 Срд 01:19:53 1936147761
>>1931510

Попробуй решить задачу про ООП-Гостиницу, например: https://arhivach.net/thread/302511/#1082529 . Если не решается, значит, надо изучать ООП еще.

Еще есть задача про ООП-скидки: https://www.cyberforum.ru/php-oop/thread1459985.html

Более сложная задача - парсер математических выражений (сделанный на ООП), которому дается на вход математическое выражение вроде x(2a + b) + 5 + 3bx и он его упрощает до 2ax + 4bx + 5. Ну это конечно сложная задача, новичок над ней может месяц голову ломать. Но полезная. Там много классов получается. Я могу дать подсказку, если что.

Аноним 10/02/21 Срд 01:22:21 1936153762
>>1936106
Да, в принципе я поразмыслил, вопрос изначально дурацкий. Если оставить товар без категории каким то образом, то что, писать в графе "категория" [ДАННЫЕ УДАЛЕНЫ], чишо? Да и множество других неудобств сразу же вскрывается. Наверное лучше вместо этого просто предоставлять максимально широкие возможности редактирования категории.
Аноним 10/02/21 Срд 01:24:50 1936159763
>>1931187

1) Самый простой способ - использовать полнотекстовый поиск в БД (это через WHERE ... MATCH AGAINST ).Делаешь в таблице колонку, помещаешь туда текст для поиска, делаешь полнотекстовый индекс и используешь MATCH AGAINST

2) Уровень покруче - это внешний движок вроде Sphinx. Вот урок https://gist.github.com/codedokode/10539366

Ты настраиваешь запуск индексатора, например, раз в час, а также при желании можешь сделать realtime-индекс и при изменениях в БД слать в него данные в реальнмо времени. После чего ищешь через sphinx.

3) Elasticsearch, это по принципу работы как sphinx, только с 1000 разных ручек и переключателей, можно искать что угодно как угодно, группировать, сортировать данные, итд. Возможностей море.
Аноним 10/02/21 Срд 01:46:09 1936186764
>>1936159
Мне как раз сегодня задача пришла поиск на сайта потвикать как-то чтобы ЛУЧШЕ было. Сейчас сфинкс спокойно себе работает, но у меня сильное желание навернуть эластиксерч, просто потому что по нему больше инфы можно найти в инете (сфинкс как я понял это от снг разраба), обмазаться всякими морфологическими словарями и вообще апи удобное, DX так сказать. Боюсь только что он на джаве работает и могут возникнуть подводные камни, о которых я еще не догадываюсь. Говорят что память жрет как падла, но на сайте нужно примерно 3-5к итемов индексировать, я надеюсь что он будет до 1-1.5гб использовать
Аноним 10/02/21 Срд 03:13:55 1936219765
123.png 21Кб, 1029x174
1029x174
Для пыхи на расстоянии вытянутой руки существуют какие-то космические вещи. Вот понадобилось сделать фильтр по полу юзеров, который они нигде не вводят, и просто сразу по первой ссылке. Представляю как бы я ебался
Аноним 10/02/21 Срд 08:29:09 1936295766
Попал в тупик. Мне нужно получить переменные $nameitem[0], $nameitem[1] и $nameitem[2], но почему-то когда заканчивается цикл while, единственная переменная, что остаётся это $nameitem[2] (остальные становятся пустыми). Я даже понимаю, что дело в особенности цикла while, но не знаю как это исправить и получить все переменные.

while ($row = mysqli_fetch_row($result)) {
for ($j = 0 ; $j < 3 ; ++$j)
{
$nameitem[$j] = $row[$j];
};
}
Аноним 10/02/21 Срд 09:08:17 1936309767
>>1936295
Инициализируй переменную до цикла.
$nameitem = [];
Аноним 10/02/21 Срд 10:05:57 1936324768
>>1935340
Вернусь к вопросу, посоветуйте книги по ПХП
Аноним 10/02/21 Срд 19:08:28 1936955769
>>1936044
>А битрикс
Джамшуты отдыхают здесь.
Это ебучее говно из портала в ад, который в дырке сельского туалета куда срали каждый день без оставновки со времён Екатерины II.
Как такое можно было сотворить я не представляю, простые вещи которые в той же ларе сделаешь за минут 20 на этом говне можешь делать несколько дней. Даже сука проект развернуть не так просто, можно целый день проебаться, структуры базы нет, все в инфоблоках, id которых встречаются по всему коду, качаешь базу себе, то кодировка 1251, то mbstring.func_overload надо, то не надо, то блядь база проекта с новым ядром не совместима, выкачивать папку /bitrix по фтп с прода весом пару гигов чтобы сука оно просто развернулось локально.
Аноним 10/02/21 Срд 20:13:23 1936992770
Vvv.png 368Кб, 600x720
600x720
>>1917260 (OP)
Кто-нибудь уже делал задачу про компанию "Вектор" в ООП-части гайда?
Аноним 10/02/21 Срд 21:26:48 1937053771
Аноним 10/02/21 Срд 21:55:00 1937078772
image.png 269Кб, 463x408
463x408
Пацаны, помогите.

В Laravel response()->json(['value' => (float)$value]) возвращает цифру в научной нотации, то есть 5.54e6

Как пофиксить?

json_encode так не делает.
Аноним 10/02/21 Срд 22:56:12 1937144773
Аноним 11/02/21 Чтв 00:42:26 1937224774
Как в ларавеле работать с файлами по фен-шую? Допустим, есть товары, у которых есть название, цена, описание и картинка. Я гуглил и нашёл что-то такое:
if ($request->hasFile('image')) {
$input['image'] = time() . '.' . $request->image->getClientOriginalExtension();
$request->image->move(public_path('images'), $input['image']);
}

Картинка при этом сохраняется в папку /public/images/, а путь к ней ($input['image']) записываем в базу отдельно, через create($input).

Однако, в документации описан другой способ:
$newFileName = time() . '-' . $request->file('image_url')->getClientOriginalName();
$path = $request->file('image_url')->storeAs('public', $newFileName);

Он записывает файл в каталог /storage/public/ и если сделать сразу $item->update($data), то в базу запишется путь к временному каталогу файла (на кой хрен - непонятно), поэтому я подшаманиваю название:
$data['image_url'] = $newFileName;
$result = $item->update($data);
И затем, чтобы сторедж был доступен из паблика, прописываю
php artisan storage:link
И обращаюсь из вью так:
<img src="{{asset("storage/$item->image_url")}}">

Вопрос: Какой способ более правильный? Или я вообще дичь тут какую-то нагнал?
Аноним 11/02/21 Чтв 00:50:50 1937231775
>>1937224
А если придет не изображение? Тут же ни в одном из вариантов не проверяется что за файл.
Аноним 11/02/21 Чтв 00:53:15 1937232776
>>1937231
Проверяется.
$this->validate($request, [
'title' => 'required',
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);

Меня просто интересует сама концепция, куда лучше загружать файл? В сторедж или паблик? И конструкция file('image_url')->storeAs('public', $newFileName) - она, получается свежая, раньше не было? Раз нигде не упоминается, кроме документации.
Аноним 11/02/21 Чтв 02:46:53 1937262777
>>1936117
А можешь пояснить чем плох этот api?
Аноним 11/02/21 Чтв 09:23:54 1937328778
>>1936117
Только бля, без хуйни. Просто аргументированно скажи почему это плохой дизайн. Какие у него могут быть проблемы и тд. Я хочу разобраться
Аноним 11/02/21 Чтв 14:33:37 1937549779
Как работает процесс оплаты на сайтах?
Аноним 11/02/21 Чтв 18:40:15 1937896780
>>1937224
В первом варианте ты руками копируешь файл в public/ папку сайта
Во втором ты сохраняешь файл в свой публичный диск(концепция ларавела, который по дефолту находится в storage/public/. Нюанс в том что ты можешь в конфиге поменять "драйвер" публичного диска на какое-то облако, и тебе особо ничего не нужно будет менять в коде, а в первом случае придется переписывать. Всё это дело можно посмотреть в config/filesystems.php
Аноним 11/02/21 Чтв 18:56:25 1937929781
>>1937896
>storage/public/
То есть, по фен-шую нужно закачивать картинки в /storage/public/ и линковать это хранилище в /public, так? Окей, понял, принял.
Аноним 11/02/21 Чтв 19:14:08 1937965782
>>1918124
>Вроде бы пиздеть не должны

С чего бы? Потом хрюша скажет что это не для вас написано и вообще вы нам не подходите, много спрашиваете
Аноним 11/02/21 Чтв 19:19:31 1937972783
>>1918124
Сеньор по определению мультиязычник, а не пыхарь. То есть может делать побольше существенно, и похеру на каком языке. Так что тут как бы сам вопрос не совсем корректно стоит.
Аноним 11/02/21 Чтв 19:20:12 1937975784
>>1918168
>Так всегда было и будет. :)

А потом кабанчик нанимает ребят в кожанке чтобы тебе дали пиздюли для повышения работоспособности
Аноним 11/02/21 Чтв 19:23:57 1937981785
я совсем новый и тупой.

{"user_id":10,"session_id":"2c2l3h4ii271aojentejtdcmh3","products":[{"product_id":15,"options":{"15":[45,47],"18":52},"quantity":1,"price":1500},{"product_id":16,"options":{"15":[47,48],"18":51},"quantity":2,"price":1000}]}

как с этого получить именно products > product_id > значение?
Аноним 11/02/21 Чтв 19:41:10 1938015786
>>1937975
Ох блт, в каком ужасном мире ты живешь. Сочувствую тебе искренне.
Аноним 11/02/21 Чтв 20:27:00 1938089787
>>1937981
Если представить что это пхп массив то products[0]['product_id']
Аноним 12/02/21 Птн 19:09:12 1938893788
Объясните как выводить эту хуйню чтобы было видно все буквы

$arr = ['d' => ['f', 'e' ],'a' => ['c', 'b'] ];

А ещё как сортировать по алфавиту - чтобы в а были б и ц и т.д.
Аноним 12/02/21 Птн 19:37:28 1938905789
>>1936147
Первая ссылка не рабочая
Аноним 12/02/21 Птн 20:59:50 1938955790
Допустим, есть магазин товаров. У них цена в долларах. Нужно сделать возможность посетителю менять отображаемую цену на рубли и обратно. Как это лучше сделать?

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

Какой подход более правильный? У меня ощущение, что меня за любой будут ругать.
Аноним 12/02/21 Птн 21:06:03 1938963791
>>1938955
Б лучше. Взять какую-то валюту за базовую и на основе неё считать цены в других валютах.
При варианте А придется следить за 2мя полями (при 2х валютах) в таблице, в которых считай одна цена лежит. И при росте кол-ва валют соответственно будет расти кол-во таких полей.
Аноним 12/02/21 Птн 21:09:26 1938969792
>>1938963
Зато обновление цен будет проходить один раз при смене цены товара (или курса) в админке. А при первом варианте сервер будет пересчитывать все цены на каждом запросе. При хайлоаде будет гораздо выгоднее добавить бесплатное поле в таблице (пусть даже сотню полей), чем нагружать проц.

Ну, мне кажется, что так ответят гуру.
Аноним 12/02/21 Птн 21:53:35 1939020793
>>1938963
>>1938969
Скажешь гуру, что они оторванные от жизни долбодятлы.
В реальности у продавцов могут быть разные цены для разных валют, не согласованные с курсом, к примеру потому, что по каким то причинам им предпочтительнее одна валюта чем другая, и цена с учетом курса может различаться. Логики особой тут нет, но обычно это именно так. Поэтому должно быть множество цен - для каждой из валют. Рассчет по курсу применим только при предварительной договоренности с конкретным продавцом, так как их "а вот у меня курс лучше!" будет в каждом втором случае. Ну, это скорее из реального "коммерческого опыта" соображение.
я делал вообще всегда отдельной таблицей - ид товара - ид валюты - цена.
Аноним 12/02/21 Птн 22:25:36 1939043794
Аноним 12/02/21 Птн 22:59:20 1939077795
>>1938969

То, что касается производительности, надо измерять, а не гадать. Я сомневаюсь, что пересчет валюты (одно умножение) хоть как-то повлияет на время выполнения запроса.
Аноним 12/02/21 Птн 23:01:48 1939079796
>>1938905

Она рабочая, просто надо домотать до задачи. Скопирую тогда сюда:

Есть Гостиница, в ней есть Номера. Для каждого Номера известен его номер, количество Гостей, которое в него влезет, а также цена за сутки. В Гостиницу приезжают Гости. Нужно сделать ООП-модель Гостиницы с такими возможностями:

- получить список свободных номеров на определенную дату
- получить список свободных номеров, которые будут свободны в определенный диапазон дат (от A до B)
- дан список Гостей и диапазон дат, в которые они хотели бы заселиться. Необходимо подобрать им самый дешевый и маленький Номер, который их вместит и который свободен в это время.
- то же самое, но при отстутствии одного подходящего номера для Гостей разрешается заселить их в несколько номеров, опять же, начиная с самых дешевых. Например, приехало 3 Гостя, но все 3-местные номера заняты и мы выделяем 2 2-местных, или 3 1-местных или 1-местный + 2-местный.
- зарегистрировать проживание данных Гостей в данных Номерах на данный период
- получить историю заселения Номера (кто в нем когда жил)
- получить историю заселения Гостя (в каких номерах он жил)
- получить статистику доходов Гостиницы за данный диапазон дат (в день A отдель заработал X тугриков, в день B - Y тугриков и так далее)

То есть надо создать классы, и сделать в них методы, которые вычисляют то, что описано выше.
Аноним 12/02/21 Птн 23:06:29 1939082797
>>1938893

var_dump($arr);
print_r($arr);
echo json_encode($arr, JSON_PRETTY_PRINT);

Сортировать с помощью функций типа sort, usort.

>>1937549

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

Периодически тебе приходит на почту отчет со списком оплат: за такой-то заказ получено столько-то денег. И периодически тебе на счет переводят деньги.
Аноним 12/02/21 Птн 23:19:27 1939087798
>>1937328

Он плох тем, что некрасивый и негибкий. Сравни сам:

/index.php?controller=product&method=list&price_from=2000
/product/list?price_from=2000

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

А так, использовать можно, не думаю, что тут требуется middleware. Оно вообще не для этого, а для того, чтобы поменять что-то в запросе или что-то в ответе (заголовок какой-нибудь добавить).
Аноним 12/02/21 Птн 23:20:44 1939088799
>>1939020
В конечном счете пляшем от бизнес требований.
На какой-нибудь бирже нужны динамичные цены, зависящие от какой-то базовой валюты.
В маркете тот же стим нужны фиксированные цены
Аноним 12/02/21 Птн 23:28:23 1939098800
>>1939088
ну в принципе да, речь шла именно об обычных маркетах барахолках. у бирж там отдельная тема вообще.
Аноним 13/02/21 Суб 00:57:23 1939145801
Сап, а как лучше сделать удаление тестов в задаче на тестхаб? Удалять полностью из базы или делать отдельное поле isDeleted? Если удалять, то оставлять ли в базе вопросы и ответы, теги? Не знаю, насколько такой запрос будет нагружать бд, не легче ли все оставить? Алсо, еще вопрос про порядок вопросов - в базе есть поле sequence_number, и если допустим при редактирование юзер меняет местами вопросы или удаляет их, то просто обновлять всем вопросам это поле или может есть какой-нибудь хитрый алгоритм?
Аноним 13/02/21 Суб 15:34:12 1939625802
>>1917260 (OP)
Как сделать так чтоб при объявлении (создании нового ) объекта он автоматически добавлялся в глобальный массив?
Аноним 13/02/21 Суб 15:53:39 1939639803
>>1939625
ПОМОГАЙТЕ БЫСТРЕЕ!!!!!
Аноним 13/02/21 Суб 17:02:46 1939727804
Screenshot.png 25Кб, 754x506
754x506
В классе нельзя просто так новые переменные объявлять чи шо?
Аноним 13/02/21 Суб 17:36:51 1939750805
Screenshot.png 18Кб, 554x299
554x299
Хочу сделать так чтоб исходя из одной переменной объекта (profession) выдавались значения всем остальным переменной путём if profession (константа) тогда...

ПОЧЕМУ НЕ ДАЁТ и как это тогда сделать?
Аноним 13/02/21 Суб 17:48:39 1939764806
Аноним 13/02/21 Суб 17:51:59 1939770807
>>1939764
>и ты должен вызывать эту функцию за пределами класса
Так это ведь постоянно функцию вызывать придётся после объявления объёкта. И функций тоже наверное дохера надо, оно же только 1 return сможет сделать.
То-есть нужны будут функции define salary, define coffee, define papers... Жесть?!
Аноним 13/02/21 Суб 18:07:14 1939797808
ВЫ СПИТЕ ШТОЛИ???? ПОМОГИТЕ БЫСТРЕЕЕ!!!!
Аноним 13/02/21 Суб 18:10:19 1939803809
>>1939770
Да ничего сложного

Создаёшь класс
class Zalupa {
// Тут твои переменные класса, с модификаторами доступа
public function huita () {
// Вот тут твой if
}
}

А потом создаёшь экземпляр и вызываешь метод
$zalupa =. new Zalupa();
$zalupa->huita();
Аноним 13/02/21 Суб 18:13:00 1939810810
>>1939803
После $zalupa->huita(); у всех показателей залупы выставятся нужные значения? А можно сделать так чтоб они выставлялись сразу при создании новой залупы обозначением професси в конструкте (скобочках), без строчки с вызовом функции?
Аноним 13/02/21 Суб 18:14:09 1939812811
>>1939810
Гугли конструктор класса
Аноним 13/02/21 Суб 18:31:05 1939832812
>>1939812
Хмммммм.......... Наверное - понял!!!
Аноним 13/02/21 Суб 19:27:52 1939917813
Подскажите ПОЖАЛУЙСТА в какой програмке можно НОРМАЛЬНО писать и ПРОВЕРЯТЬ/ТЕСТИРОВАТЬ код на PHP? А то мне больше не нравятся - интернетные штучки!
Аноним 14/02/21 Вск 00:51:06 1940300814
>>1939145

Удалять может быть плохо, так как теряются результаты прохождения. Человек старался, проходил тест, а результаты удалили. Проще использовать isDeleted (этот подход называется soft delete). Или можно заморочиться и смотреть: есть результаты прохождения? Если нет - то удалять целиком, если есть - то скрывать.

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

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

Наверно, придется обновлять все значения.
Аноним 14/02/21 Вск 00:53:54 1940303815
>>1939727

Внутри конструкции class { ... } идут только определения констант, полей и методов.

class A
{
// константа
private const X = 1;
// поле
private $x = 1;
// метод
public function doSomething($a) { ... }
}

Там нельзя писать произвольный код, определять переменные или писать слово if. Произвольный код и создание переменных пишут внутри методов.
Аноним 14/02/21 Вск 00:56:10 1940304816
>>1940303
Мы пока вот так сделали... Понадеемся што - сработает!

class Employee
{
const PROFESSION_MANAGER = "Менеджер";
const PROFESSION_MARKETER = "Маркетолог";
const PROFESSION_ENGINEER = "Инжинер";
const PROFESSION_ANALISER = "Аналитик";

public $name;
protected $workPlace; // В какой департамент назначен работник
protected $profession; // Профессия работника
protected $rank; // Ранг работника
protected $isLeader; // Руководитель ли работник
protected $salary; // Зарплата работника
protected $coffeConsumption; // Объём потребляемого сотрудником кофе в литрах
protected $papers; // Количество производимых работников отчётов

public function __construct()
{
$this->name = $name;
$this->workPlace = $workPlace;
$this->profession = $profession;
$this->rank = $rank;
$this->isLeader = $isLeader;
if ($this->profession = Employee::PROFESSION_MANAGER)
{
$this->salary = 500;
$this->coffeConsumption = 20;
$this->papers = 200;
}
elseif ($this->profession = Employee::PROFESSION_MARKETER)
{
$this->salary = 400;
$this->coffeConsumption = 15;
$this->papers = 150;
}
elseif ($this->profession = Employee::PROFESSION_ENGINEER)
{
$this->salary = 200;
$this->coffeConsumption = 5;
$this->papers = 50;
}
elseif ($this->profession = Employee::PROFESSION_ANALISER)
{
$this->salary = 800;
$this->coffeConsumption = 50;
$this->papers = 5;
}
}
}
Аноним 14/02/21 Вск 02:47:16 1940339817
Имеется объект с свойством-массивом в нём.
Имеется объект, который при определённом значении одного из своих свойств должен залазить в свойство-массив первого объекта.

КАК ЭТО СДЕЛАТЬ?
Аноним 14/02/21 Вск 03:12:18 1940341818
>>1940304
>$this->name = $name;
>$this->workPlace = $workPlace;
>$this->profession = $profession;
>$this->rank = $rank;
>$this->isLeader = $isLeader;
Конструктор это из воздуха должен брать? Добавь аргументы в метод. И да, за такой elseif по рукам бьют. Мало того что выглядит плохо, так еще всё на магических числах.
Аноним 14/02/21 Вск 03:44:32 1940346819
Вопрос по вебпаку/миксу. Допустим, я в своем app.css делаю импорт bootstrap.scss. Из-за этого мне при изменении любой строчки приходится ждать по 6-7 секунд пока все скомпилится чтобы глянуть на изменения. Можно ли как-то закешировать этот bootstrap.scss или что-то около того?
Наткнулся на функцию mix.extract, вроде бы для чего-то похожего предназначена, но хз, профита из нее извлечь не получается.
Аноним 14/02/21 Вск 09:24:59 1940410820
>>1917260 (OP)
>тебе надо установить Апач
А почему Апач, а не nginx? Апач намного лучше?
Аноним 14/02/21 Вск 10:36:36 1940450821
Аноним 14/02/21 Вск 10:37:37 1940451822
>>1940341
>Конструктор это из воздуха должен брать?
Да, эти штучки будут задаваться в скобках при объявлении объекта.
>И да, за такой elseif по рукам бьют. Мало того что выглядит плохо, так еще всё на магических числах.
Не понял ничего.
Аноним 14/02/21 Вск 11:39:58 1940483823
>>1940450
Ну, ОП в шапке же пишет - тебе надо установить Апач. А че, почему?
Аноним 14/02/21 Вск 12:06:09 1940508824
>>1940483
ОП человек занятой, бабки зашибает. Нет у него времени гайды и шапку 10-летней давности на форуме для анимешников переписывать.
Аноним 14/02/21 Вск 12:14:08 1940514825
>>1940508
Ну, тогда че, лучше nginx?
Аноним 14/02/21 Вск 12:30:28 1940517826
>>1940339
ПОМОГИТЕ БЫСТРЕЕЕ!!!!
Аноним 14/02/21 Вск 13:11:03 1940552827
>>1940339
>КАК ЭТО СДЕЛАТЬ?
При определённом значении одного из своих свойств имеющегося объекта, залезаешь в свойство-массив первого объекта.
Аноним 14/02/21 Вск 13:21:31 1940559828
>>1940552
ТАК СРАБОТАЕТ?

<?php

error_reporting(-1);

class Department
{
public $workers = array();
}

$procurementDepartment = new Department;

$sellDepartment = new Department;

$adDepartment = new Department;

$logisticDepartment = new Department;

class Employee
{
public $name;
protected $workPlace; // В какой департамент назначен работник
protected $profession; // Профессия работника
protected $rank = 1; // Ранг работника
protected $isLeader = "Не руководитель"; // Руководитель ли работник
protected $salary; // Зарплата работника
protected $coffeConsumption; // Объём потребляемого сотрудником кофе в литрах
protected $papers; // Количество производимых работников отчётов

public function __construct()
{
$this->workPlace = $workPlace;
}
if ($this->workPlace == "Закупки")
{
$procurementDepartment->workers = $this;
}
}
}
Аноним 14/02/21 Вск 13:59:21 1940568829
>>1940346
Я не шарю, но scss всегда почему-то весь пересобирается, тут как вариант импортировать не весь бутстрап а отдельные модули его, например grid, table и т.д.
Аноним 14/02/21 Вск 14:01:08 1940571830
>>1917260 (OP)
А оп кстати все еще пхпшник или на голанг/джаву ушел?
Аноним 14/02/21 Вск 15:34:41 1940648831
Я решил задачу про кубики.

<?php

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

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

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

echo "У Анонче выпало $anonDice1 и $anonDice2. У Компухтера $compDice1 и $compDice2.\n";

if (($anonDice1 == $anonDice2) && ($compDice1 == $compDice2)) {
echo "2 дабла. ПОВТОРНЫЙ РАУНД!";
exit();
} elseif ($anonDice1 == $anonDice2) {
echo "Компухтер выиграл.";
exit();
} elseif($compDice1 == $compDice2) {
echo "Анонче выиграл.";
exit();
}

if ($anonSum > $compSum) echo "Анонче выиграл.";
else echo "Компухтер выиграл.";


Скоро я начну получать деньги?
Аноним 14/02/21 Вск 15:58:51 1940687832
>>1940648
elseif ($anonDice1 == $anonDice2) {
echo "Компухтер выиграл.";
exit();
} elseif($compDice1 == $compDice2) {
echo "Анонче выиграл.";
exit();
}
Это что и зачем?
Аноним 14/02/21 Вск 16:03:48 1940692833
>>1940687
если выпадает дабл, то этот игрок проиграл
Аноним 14/02/21 Вск 16:07:10 1940697834
>>1940692
Это ты от себя придумал? Там такого не было вроде
Аноним 14/02/21 Вск 16:09:21 1940700835
Screenshot.png 95Кб, 1297x775
1297x775
Не понял??? Шо за наёб?
Аноним 14/02/21 Вск 16:09:49 1940701836
Аноним 14/02/21 Вск 16:37:33 1940733837
Аноним 14/02/21 Вск 17:37:49 1940783838
Устанавливать линукс или оставить винду? Что предпочтительнее? Надо ли будет знать на работе линух? Если да, то хотел бы тогда поставить ubuntu, она подойдет? Спс
Аноним 14/02/21 Вск 17:59:00 1940816839
>>1940700
Переменные класса объявлять надо вне функций, до конструктора.
И поменяй местами выражения, тумкало - ты присваиваешь неизвестно чему неизвестно что.

Аноним 14/02/21 Вск 18:03:29 1940824840
>>1940700
>>1940816
Поясняю - в мануале аргументы в конструкторе видишь?
А у тебя - у тебя аргументов нет. Есть неведома херня,
которая возникла из ниоткуда.
плюс ни там, ни там нет переменных класса.
так что я хз что ты хотел добиться.
Аноним 14/02/21 Вск 18:22:27 1940847841
>>1940783
>Устанавливать линукс или оставить винду?
Что нравится, единственно что в линуксах пориятнее терминал и большинство кто занимается бекендом сидят либо на линуксе, либо на маке. У нас на работе с виндой в основном фронтендеры сидят.

>Что предпочтительнее?
Linux

>Надо ли будет знать на работе линух?
Да

>Если да, то хотел бы тогда поставить ubuntu, она подойдет?
Лучше начинать с убунты или минта
Аноним 14/02/21 Вск 18:54:41 1940900842
Screenshot.png 41Кб, 842x706
842x706
>>1940552
Не работает - твоя магия... Не хочет оно к массиву внешнего объекта приписывать объект.
анон 14/02/21 Вск 19:43:33 1940966843
JS или PHP, какой язык сложнее?
Аноним 14/02/21 Вск 19:49:32 1940971844
>>1940966
Почти одинаково, скриптовые языки. Правда на РНР еще надо безопасность маленько знать, чтобы тебя не хакнули, не бэкдорнули, не эксплоитнули, не инъекцировали.
Аноним 14/02/21 Вск 20:19:14 1940996845
>>1940971
Короче, был наполеоновский план запилить несколько своих сайтов, перед этим выучив верстку и js. Бэк мечтал написать на ноде. С фронтендом разобрался, запилил несколько страниц шаблонов, и после признался самому себе, что у меня к куям отсутсвтует дизайнерский талант и выглядят мои страницы не очень. Решил мозга не ебать, и запилить на вордпрессе, взяв готовую тему (уже нашел красивую). Для вордпресса говорят пхп нужно знать. JS я типа как синтаксис и обращение с DOMом "выучил", в той степени, что могу всякие выпадающие меню и слайдеры делать сам с нуля. Потому и спросил что сложнее. Буду сейчас пыху учить.

Какие вообще знания php нужны для вордпресса? Какой учебник актуален для последней версии? Можно и на английском. Спасибо.
Аноним 14/02/21 Вск 20:35:31 1941011846
>>1940996
Если ты пиздец как торопишься, то смотрит обучающие всякие видео по вордпрессу.

А если не торопишься и хочешь хорошо подготовиться, то тогда надо идти по шапке треда, учить голую пыху по задачам, мануалам, ООП пыхи учить. Про безопасность читать, а то вдруг тебя хакнут https://www.youtube.com/watch?v=dOaGvMaFkbY

Аноним 14/02/21 Вск 20:55:24 1941027847
>>1941011
В шапке что-то совсем беда, кроме мануала все лохматых годов...

Вот это вот Learn PHP 8: Using MySQL, JavaScript, CSS3, and HTML5 читал кто-нибудь, аноны, стоящая книжка?
Аноним 14/02/21 Вск 20:58:47 1941029848
>>1941027
Как по мне лохматость не слишком страшна. Не так уж много изменилось. Базовые принципы остались те же. ИМХО!
Аноним 14/02/21 Вск 22:35:55 1941105849
>>1941027
Почитай котерова и симдянова рнр 7. Именно по языку большой охват. Гит, композер, бд. Хтмл и цсс это лучше отдельно посмотреть.
Аноним 14/02/21 Вск 22:51:53 1941113850
Призываю доброанона, который постоянно рейтит мои первые потуги в пхп!
Решал задачу из гайда для нюфанек на написание суммы прописью.
Тужился около двух недель, в перерывах между основной работой и семейными делами, но упрямо не бросал ее. В итоге родил вот что:
https://ideone.com/Pw4DPm
Постарался кратко, с максимально необходимыми комментариями.
Подскажите, где я хуй?
p.s. Где поучиться клинкодингу? Чувствую, если сейчас буду упускать какие-то моменты, потом переучиться будет ОСНЕ сложно.
p.p.s. Платиновый вопрос: почему phpformatter, пидорас такой, не пропускает запись массива вида $x=[] ?
Аноним 14/02/21 Вск 23:01:00 1941123851
>>1940648
Условия задачи жопой читал?
Если дабл у обоих- ничья, и смысла играть дальше нет.
Выпадение дабла у одного из игроков ничего не меняет, сравниваются суммы.
Что выдаст твоя программа, если суммы очков Анона и компьютера будут равны?
Аноним 14/02/21 Вск 23:07:18 1941131852
>>1939917

Согласен, программы больше чем на 20-30 строк удобнее запускать у себя, а не через сайты. Для этого тебе надо:

1) установить PHP, вот один из (немного устаревших) гайдов: https://github.com/codedokode/pasta/blob/master/soft/php-install.md

2) установить IDE или редактор кода на твой выбор. Платно: PhpStorm, бесплатно: VS Code (+ плагины для PHP), Sublime Text, Eclipse for PHP.

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

Если все сделать правильно, то ты сможешь запускать программу одной кнопкой из редактора.
Аноним 14/02/21 Вск 23:10:48 1941137853
>>1941113
Дружище, дрочить 2 недели такую задачу, пусть и по вечерам, это пиздец. Ты же понимаешь, что у тебя проблема с реализацией алгоритма? Программирование для знающих математику. Кто бы что не говорил. Все эти разговоры, что на деле хватает начальной алгебры — бред. Я даже не знаю как тебе помочь. Ну, реализовал ты кривоработающий код, спиздил куски, а толку? Ты же себя не наебешь, дружаня. Математика качает мозг. Решение подобных задач не должно вызывать решения в течении 2х недель.
Аноним 14/02/21 Вск 23:11:59 1941139854
>>1940304

Вместо гигантского elseif можно сделать массив, вида

[профессия => [зарплата, кофе, страницы]]

и брать данные из него. Будет компактнее.

Также, будь внимательнее. Здесь:

($this->profession = Employee::PROFESSION_MANAGER)

Нужно писать не =, а == или ===.

Когда допишешь, советую запостить код тут на проверку.

>>1940410

Возможно, совет немного устарел.

Вообще, чтобы запускать у себя на компьютере код, проще всего использовать встроенный в PHP сервер без всяких Апачей. А если хочется заморочиться то да, можно поставить nginx + php-fpm, это будет конфигурация как на продакшене.
Аноним 14/02/21 Вск 23:13:01 1941143855
>>1939917
Качаешь с сайта рнр архив под винду, если ты под виндой, запускаешь консоль из папки с разархивированным пхп дистрибутивом, пишешь php -a и выполняешь код прямо в консоле в интерактивном режиме.
Аноним 14/02/21 Вск 23:25:29 1941153856
>>1940559

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

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

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

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

// Создаем свободного работника
$e= new Employee(....);
// принимаем его на работу в Департамент
$someDepartment->addEmployee($e);

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

Также, нехорошо, что ты залезаешь внутрь объекта Департамента и напрямую что-то добавляешь в массив. Правильнее вызывать метод addEmployee, как описано в коде выше, а массив закрыть от прямого доступа снаружи. Почему? Ну например, может быть Департаменту надо обновлять какую-то информацию при добавлении Работника, и если добавлять его напрямую в массив, Департамент об этом не узнает. Прочти-ка про инкапсуляцию: https://github.com/codedokode/pasta/blob/master/php/encapsulation.md
Аноним 14/02/21 Вск 23:29:19 1941157857
>>1940571

Не ушел.

>>1940648

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

>>1940697

Да, не было, но в принципе можно и добавить такое правило.

>>1940700

У тебя в определении конструктора нет аргументов в скобочках:

public function __construct($x, $y, $z <-- вот тут) { ... }
Аноним 14/02/21 Вск 23:34:13 1941160858
>>1940733

Вместо числа 3 (непонятно, что это) лучше было бы использовать переменную $percent, равную 3. И число 5000 тоже заменить на переменную.

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

>>1940783

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


Аноним 14/02/21 Вск 23:45:55 1941168859
>>1941153
Благодарю за развёрнутый ответ. Буду - пробовать!
Аноним 14/02/21 Вск 23:58:01 1941176860
>>1941137
Ни одного куска кода нигде спизжено не было, к каждой строчке пришел сам.
Вместо хейта можно было бы указать на слабые стороны, не? Если кроме "все хуёво" нечего сказать, то и говорить необязательно.
Аноним 15/02/21 Пнд 00:03:56 1941180861
>>1941113

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

> $splitArray=[];
Лучше назвать это $groups

> $i=$i+0
Если ничего не требуется делать, то тут можно оставить пустое место.

Брать 3 последние цифры числа проще через $i % 1000 (остаток от деления на 1000). А все, кроме последних цифр получается как floor($i / 1000).

> $regexpLastNumber1='/^[1]$/';
Это очень корявенько, работать с числами через регулярки. Правильнее использовать математические выражения, например

$lastDigit = $n % 10; // последняя цифра
if ($lastDigit == 1) ...

> discharge_sum ($dischargeValue,$x)
Если вместо $x передавать 3 формы слова, то получилась бы универсальная функция, которая умеет выбирать формы для любых слов, а не только тысяч, миллионов, рублей.

> $spelN
Лучше $number

> $spelN=array_reverse($spelN);
Это коряво. Лучше передавать массив в функцию в правильной форме, чтобы она не занималась его переворачиванием. Более того, переворачивание логичнее всего сделать в splittingIntoGroups(), чтобы она сразу возвращала массив в правильном порядке.

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

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

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

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

> $textArray[]
Лучше назвать $words

> Эта функция меняет фразы "один тысяча" и "две тысяча" на "одна тысяча" и "две тысячи" соответственно
Это очень коряво. Правильнее было бы передавать род в функцию, которая преобразует число в текст, чтобы она брала "одна" вместо "один". То есть у функции 2 аргумента - число и род.

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

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

Например: функция принимает 3-разрядное число и возвращает массив слов (или строку, тоже можно).

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

Например, так:

слова = [];
для каждого 3-разрядного числа:
если это число > 0, то:
добавляем в слова[] написание этого числа
доабвляем в слова[] нужную форму слов рубль, тысяча, миллион

> delete_double_space
> splittingIntoGroups

Нужно использовать единый стиль в именах.

> $regexpDoubleSpace='/(\\s){2,}/ui';
> $textAfterDeleteDoubleSpace=preg_replace($regexpDoubleSpace,' ',$textForDeleteSpace);
> return $textAfterDeleteDoubleSpace;

Тут можно написать короче:

return preg_replace('/(\\s){2,}/ui', $text);

> $dischargeArraySpelN[roubles]
Пропущены кавычки у roubles.

> if ($splitArray[0]==0){
> $wordAfterRoubles='рублей';
Это (выбор формы слова) ответственность функции discharge_sum и это должно быть написано в ней, а не тут.

В общем, код стоит доработать. Он станет и короче, и читабельнее.
Аноним 15/02/21 Пнд 00:05:56 1941181862
>>1941137

Но в этой задаче нет математики сложнее, чем деление с остатком. Не думаю, что изучение матанализа тут как-то поможет. Тут надо уметь грамотно разбивать код на функции, определять их входные аргументы и результаты, а математика тут особо не нужна.
Аноним 15/02/21 Пнд 00:33:53 1941226863
Вопрос к рабочим анонимусам. Как на галерах обстоит вопрос с рабочими ПК? У каждого свой личный? Мне никто не запретит, к примеру, накатить на рабочий комп любимый арчик с тайловым wm и поставить аниме на заставку?
Аноним 15/02/21 Пнд 00:37:31 1941232864
>>1941176
Анон, никакого хейта. Ты над примитивной задачей ломал голову 2 недели. Тебе определённо стоит задуматься над тем нужно ли тебе программирование. Если уж так сильно хочется, то определись, что ты хочешь программировать. Может стоит взглянуть в сторону бухгалтерии с их 1С? Есть неплохая книга https://www.labirint.ru/books/723474/ попробуй из неё для начала решить хоть сколько-то задач, чтобы затем браться за то, что в шапке. У тебя проблема с пониманием и решением задачи и её переноса на код.
Аноним 15/02/21 Пнд 00:40:54 1941237865
>>1941181
Математика тут не нужна? Математическое мышление и комплексный подход к решению задачи нужен. Увы, но математику не зря считают основной всех наук. Без этих вещей никуда.

Важна не выученая формула, а принцип работы. Понимаешь, что я хочу донести? У человека проблемы с алгоритмом и пониманием. Это не связанное с программированием напрямую действие.
Аноним 15/02/21 Пнд 00:43:02 1941241866
>>1941226
BYOD давним давно в моде. У нас программисты себе заказали топовые 27 iMac. Охуели в край. Я себк ноут для рвботы просил — купили НР, но по характеристикам не плохой. Матрица говно. Вдмины всё орали, чтобы не удалял винду по корпоративным правилам, но я из послал назуй и накатил то, что мне нужно.
Аноним 15/02/21 Пнд 00:49:22 1941248867
>>1941241
Загуглил что такое BYOD, не совсем понял как это соотносится с тем, что вам ноуты покупают.
Аноним 15/02/21 Пнд 00:51:17 1941253868
>>1941248
Это к тому, что ты можешь со своим девайсом приходить на работу. Я же написал про ноут как пример, что смог накатить самостоятельно, что мне нужно для работы. Но учти, что далеко не везде такая свобода.
Аноним 15/02/21 Пнд 01:02:22 1941269869
>>1941180
Анон, не знаю, зачем ты этим занимаешься, но очень надеюсь, что закон кармы сработает и добро вернется к тебе. Спасибо.
>>1941232
Две недели над задачей- это две недели с учетом наличия основной работы и семейных дел. В итоге далеко не каждый день удавалось вырвать по часу-два на обдумывание кода и его написание. Порой даже не успевал сконцентрироваться и вспомнить, какая переменная для чего мне нужна.
Программирование пока рассматриваю просто как баловство, как кроссворд, над которым интересно поломать голову. После того, как Анон указал мне, что пользоваться регулярками для чисел- дурной тон, у меня случился фейспалм от того, что я сам до этого не додумался.
Я просто учусь, мне незнакомы нормы и приемы, кажущиеся тебе очевидными и базовыми.
Аноним 15/02/21 Пнд 12:19:34 1941619870
Прохожу ваши уроки
https://ideone.com/8Rn7BN это нормальная проверка на палиндром или php не для меня?
Аноним 15/02/21 Пнд 13:12:10 1941729871
анон, помоги
если есть запрос в SQL типа такого "WHERE something LIKE %some%"

тут ясно как работакет LIKE %%.

А как что-то такого зделатть в парсинге JSON.

$wheredata = array(
"something" = %some внутри строки%)
Аноним 15/02/21 Пнд 14:26:30 1941844872
Аноним 15/02/21 Пнд 14:30:04 1941848873
>>1941844
ой, оказывается на английском палиндром будет palindromE, но теперь уже ничего не изменить
Аноним 15/02/21 Пнд 15:46:10 1941936874
>>1931963
Не понял предпоследний вопрос. Чего из этого нет в PHP? Вроде всё есть.
Аноним 15/02/21 Пнд 15:59:39 1941947875
>>1941269
Ты словно не понимаешь про что я пишу. 2 недели даже в неспешном темпе это долго. Я не говорю, что ты должен алгоритм за секунду построить в уме и воплотить его в коде.

Для себя программирование это дело полезное, пригодится в любом случае, но лучше поеби мозги с решением задач из книги, которую я тебе скинул. Почитай книгу: грокаем алгоритмы. Программирование это не про написание кода, это про размышление как реализовать это в коде.
Аноним 15/02/21 Пнд 17:14:02 1942039876
>>1941936
я так понимаю "официального" множественного наследования нет как такового, но в целом сделать возможно
Аноним 15/02/21 Пнд 17:19:53 1942047877
>>1941947
я читал, что грокаем алгоритмы это очень слабая книга, типа для детей прям, она точно меня продвинет хоть насколько-нибудь к пониманию, как использовать программирование для решения задач?
если что я не он

>>1941269
кстати, вначале, когда только начал изучать программирование, задачи очень тяжело шли, у меня в школе/вузе не было никогда его, наверное поэтому
постепенно я начал решать их быстрее, потом начал удивляться, как вообще я мог так долго решать такую чепуху?
Аноним 15/02/21 Пнд 17:25:54 1942059878
>>1942047
Если ты знаком с алгоритмами и структурами данных, то не нужна.
Аноним 15/02/21 Пнд 17:39:31 1942080879
Анчоусы, а что принято делать в ларавеле если логика создания модели сложнее, чем "просто впихнуть валидные данные из реквеста в базу данных"?
Оборачивать создание модели в метод сервиса? Переопределять метод create()? Или может поместить всю эту логику в еще в какое-то место, о котором я даже не подозреваю?
Аноним 15/02/21 Пнд 18:16:30 1942185880
>>1942080
>что принято делать в ларавеле если логика создания модели сложнее
То же, что и не в ларавеле.

>Оборачивать создание модели в метод сервиса? Переопределять метод create()? Или может поместить всю эту логику в еще в какое-то место, о котором я даже не подозреваю?
Выносить куда-нибудь, например в сервисный слой. А в особо сложных случаях - в доменный слой
Аноним 15/02/21 Пнд 18:18:43 1942187881
>>1942047
Если туго с алгоритмическим мышлением, можно порешать задачки, например с кодварса.
При решении задач сначала описываешь решение (хоть на бумаге), затем переводишь в код.
Аноним 15/02/21 Пнд 18:23:34 1942189882
>>1942187
согласен, кодварс хорошая тема, можно в конце чужие решения прочекать, много нового узнаешь
Аноним 15/02/21 Пнд 18:32:58 1942203883
>>1942185
>То же, что и не в ларавеле.
>Выносить куда-нибудь, например в сервисный слой.
Окей, спасибо за ответ. Изначально так и сделал.
Аноним 15/02/21 Пнд 18:33:31 1942204884
>>1941947
Спасибо. Учту и ознакомлюсь с книгой, обязательно. Вообще, еще до того, как начал эту задачу, решил, что нужно расширить кругозор, а не просто задрачивать гайд Анона.
Скоро еще должен подъехать php 7 в подлиннике, на бумаге.
Аноним 15/02/21 Пнд 18:54:40 1942235885
>>1942189
> можно в конце чужие решения прочекать, много нового узнаешь
Нашел там только говнокод и всякие хаки, которые делают код write-only
Аноним 15/02/21 Пнд 23:53:47 1942595886
>>1942204
У меня рнр в подлиннике есть еще 5 версии. В 2009-2010 годах собирался вкатываться в программирование по ней))) 7 тоже покупал, но так и не вкатился.
Аноним 16/02/21 Втр 00:54:55 1942659887
Начал изучать Laravel, малость охренел с такой вещи как фасады. Их часто вообще используют ИРЛ? Подозреваю что на аутсорсе да, ибо это попросту намного быстрее. А в продукте? Вроде понимаю что это дичайший антипаттерн, но и кажется что глупо их не использовать, если уж предоставляют такую возможность. В итоге у меня все сервисы получаются статическими, это вообще нормально? Не стыдно будет такое на гитхабе для портфолио держать?
Аноним 16/02/21 Втр 13:27:45 1943057888
>>1942659
>кажется что глупо их не использовать, если уж предоставляют такую возможность
Спорный момент. Фасады нужны для быстрой разработки, но они так же ухудшают поддерживаемость кода. Так что нужно знать, когда их применять.

>В итоге у меня все сервисы получаются статическими, это вообще нормально?
Можешь вместо использования фасадов явно инжектить свои сервисы куда надо
Аноним 16/02/21 Втр 16:07:51 1943281889
Подскажите, пожалуйста, в чем может быть причина. Есть видеохостинг на ларавел, видео сжимаются с помощью ffmpeg. Видео, которые весят больше 50мб тормозят. Сервер на ssd, порт 1Gbit/s. Качество видео 1920x1080 30fps.
Аноним 16/02/21 Втр 16:43:01 1943302890
Хочу научиться делать сайты на пыхе, в шапке про апач написано, можно ли через опенсервер пробовать скрипты выполнять? И в чем писать код, в блокноте?
Простенькие примеры я выполнял через онлайн интерпретатор.
Аноним 16/02/21 Втр 17:09:25 1943331891
>>1943057
Окей, а как более правильно будет организовать доступ к базе данных, если не через фасады?
Аноним 16/02/21 Втр 17:26:31 1943348892
>>1943302
>Хочу научиться делать сайты на пыхе, в шапке про апач написано, можно ли через опенсервер пробовать скрипты выполнять?

Если речь про бекенд, то вот варианты:
- Встроенный php сервер
- XAMP
- OpenServer
- Docker

Выбирай любой удобный способ

Для выполнения консольных скриптов - соответственно из консоли запускаешь.

>И в чем писать код, в блокноте?
PHPStorm
Аноним 16/02/21 Втр 17:31:58 1943353893
Аноним 16/02/21 Втр 18:34:30 1943423894
Аноним 16/02/21 Втр 18:53:18 1943449895
>>1943331
Речь про более высокий уровень. Не про "доступ к базе данных", а про "доступ к доступу к базе данных".

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

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

Поэтому в ларавеле и придумали "фасады". Вообще фасад это неправильное название, по факту это сервис локатор, но все как-то привыкли. Фасад позволяет получить доступ к любой части матрешки напрямую, прямо здесь и сейчас, без чертежей и конфигов. Это быстро, думать нихуя не надо, знать о программе нихуя не надо. Но при этом никакой "картины в целом" больше не существует. Чертеж размазан по программе со всеми вытекающими последствиями. Если ты пишешь софт на заказ и больше его никогда не увидишь, то просто идеальный вариант. Поэтому собственно лара вообще и взлетела.
Аноним 16/02/21 Втр 19:52:57 1943511896
>>1943449
Спасибо за широкий ответ, он скорее относится к моему первому вопросу >>1942659
Второй вопрос >>1943331 как раз о низшем уровне. О том, что именно будет правильнее внедрять в сервис для доступа к БД. Не инстанс модели же?
Вообще, я был бы очень рад не задавать здесь дебильных вопросов, но нормальных примеров просто нету. В доках лары одни фасады.
Решил чекнуть опенсорсные проекты на ларе - так вообще веру в человечество потерял. В одних толстейшие контроллеры в которых по 50 use в самом верху. В других сервисы напрямую взаимодействуют с реквестом и т.д.
Если у кого-то есть пример хорошего кода на Laravel, буду очень признателен если поделитесь.
Аноним 16/02/21 Втр 21:19:36 1943571897
Screenshot.png 138Кб, 1439x858
1439x858
Скачал PHP и установил VScode.
Что дальше?
Как запускать и тестировать файлы?
Аноним 16/02/21 Втр 21:38:22 1943589898
А че вообще делоть на уровне после того как только только установил опенсервер. только только прошелся по основам языка есть основы еще и других языков грубо говоря на JS и Python написано по калькулятору. Есть базовое представление о HTML/CSS. Хочется взять да и захуячить какой нибудь проект, но есть чувство что первая задача из шапки будет сложновата список учеников
Аноним 16/02/21 Втр 22:12:44 1943614899
Где определять логику CRUD-а в ларавеле? Есть куча статей, что паттерн репозиторий лучше не ипользовать, но где тогда все прописывать? Прямо в контроллере?
Аноним 16/02/21 Втр 22:24:18 1943629900
>>1943614
Я на первой работе писал логику в контроллер, на одну сущность один контроллер.
Аноним 16/02/21 Втр 23:09:47 1943679901
>>1943629
Потом после таких вот котроллеристов говно разгребать
Аноним 16/02/21 Втр 23:12:30 1943684902
>>1943614
У тебя какая-то каша в голове.
Сначала где-нибудь пропиши логику, потом видно будет, куда её выносить, когда начнешь переиспользовать код
Аноним 16/02/21 Втр 23:18:28 1943689903
Аноним 16/02/21 Втр 23:22:56 1943690904
Аноним 16/02/21 Втр 23:24:43 1943692905
Аноним 16/02/21 Втр 23:36:41 1943697906
Аноним 16/02/21 Втр 23:50:02 1943701907
>>1943697
Если бы приходилось разгребать проекты, где вся логика в контроллерах, не задавал бы таких вопросов
Аноним 17/02/21 Срд 01:05:38 1943747908
<script src="https://ideone.com/e.js/KaHFrM" type="text/javascript" ></script>
Личинка прогера ползет к успеху в этом итт.
Аноним 17/02/21 Срд 01:06:13 1943749909
>>1943747
<?php

$money = 10000;
$years = 16;

for (;;){
$money += $money/10;
$years += 1;
if ($money >= 1000000){
break;
}
}
echo "Мы накопили {$money} за {$years} лет, поздравляем!" ;
Аноним 17/02/21 Срд 01:40:32 1943760910
>>1943571
Судя по тому, что ты написал, тебе надо скачать microsoft excel/1C.
Аноним 17/02/21 Срд 05:40:54 1943806911
Аноним 17/02/21 Срд 14:06:48 1944137912
Аноны, читаю сейчас пасту ОПа про алгоритм обработки данных с формы, а именно ООП подход
https://github.com/codedokode/pasta/blob/master/forms.md
И что-то не могу до конца понять посыл ОПа. В плане того, что он предлагает нам сделать отдельный класс UserForm, хранить в нем сущность User, отдельный класс валидации и проводить валидацию непосредственно в классе UserForm после заполнения уже изначально невалидными данными.

Вот его пример:
$post = new Post;
$postForm = new PostForm($post, $postValidator);
Сначала заполняется изначально невалидными данными: $postForm->fill($_POST);
После он проверяет: $errors = $postForm->validate($post);

Какой смысл в том, чтобы изначально создавать объект, в котором уже находятся невалидные данные ? И что делать в случае, если у нас у сущности Post на свойствах стоят тайп хинты, тогда каким образом мы будем ее заполнять, если у нас прилетит вместо строки условно массив, при попытке записать в это свойство вылетит ошибка. Аноны, объясните, это я тупой и не понимаю, что пытается донести ОП или какой правильный подход в таких ситуациях
Аноним 17/02/21 Срд 14:36:11 1944161913
>>1944137
Тайп хинты на свойствах появились буквально вчера, раньше такого не было. Ну и у ОПа видно что пример сильно вдохновлён симфони формами, где один контроллер и отрисовывает форму по GET, и обрабатывает по POST, вот из-за этих вариантов и получается что интерфейс немного странно выглядит. Вообще лучше представить что объект $post или $user в таких примерах это не прям сущность из бд, а объект, который представляет поля формы, просто в несложных формах можно срезать и сделать это дело одной сущностью, чтобы потом руками не писать например $user->changeName($userForm->name) и т.д. (представь что таких полей много)

>Какой смысл в том, чтобы изначально создавать объект, в котором уже находятся невалидные данные ?
Если объект представляет собой данные из формы, а не настоящего юзера или пост, значит он может находиться в невалидном состоянии, просто для простоты в тех же доках симфони эти понятия совмещаются, всё херачится прямо в контроллере в нескольких ифах и как бы на этом ок. Когда у тебя очень много разных форм и сущностей то такой подход конечно намного быстрее
Аноним 17/02/21 Срд 14:50:21 1944181914
>>1944161
>Вообще лучше представить что объект $post или $user в таких примерах это не прям сущность из бд, а объект, который представляет поля формы
Так у ОПа там вроде бы идет явное разделение, что Post это сущность, а PostForm это объект, которые представляет именно данные из формы (в который непонятно зачем передается еще и сама сущность)
И как в итоге лучше делать в таких ситуациях, не убирать же тайп хинты ?

У меня есть идея, что у нас есть сущность, есть объект (данные, которые ожидаются из формы) в который мы передаем валидатор и сами данные, что-то вроде:
$postData = new PostData($validator, $_POST)
Там уже сразу проверяем, валидные данные или нет. Если все данные валидные, то заполняем свойства этими данными, а если нет, то заполняем к примеру свойство с ошибками. И вроде бы так же остается разделение ответственности валидации, о чем ОП и говорил, что валидации без разницы, какие данные она валидирует.
Потом уже проверяем, если это свойство пустое, то отправляем этот объект в сущность
$post = new Post($postData);
И делаем дальше необходимые действия. Правильный ли это подход ? Если нет, то как правильно это нужно сделать
Аноним 17/02/21 Срд 23:11:14 1944657915
Аноним 17/02/21 Срд 23:18:24 1944667916
>>1943571
Запускать php tvoyFail.php
Можно поставить сервер и запускать, тестировать phpunit, но тебе далеко ещё и судя по тому какие вопросы задаешь и вовсе не придется
Аноним 18/02/21 Чтв 00:04:23 1944682917
Screenshot.png 286Кб, 937x497
937x497
>>1944667
Запустил с помощью php.exe. Что дальше ну?!
Аноним 18/02/21 Чтв 01:19:44 1944712918
>>1944682
Оставь, это не твоё.
Аноним 18/02/21 Чтв 02:20:52 1944731919
>>1944682
Такими темпами мб к пенсии вкатишься
Аноним 18/02/21 Чтв 02:31:27 1944736920
Аноним 18/02/21 Чтв 02:43:04 1944739921
>>1944736
Зачем тебе PHP? Это мертвый язык, посмотри в любую статистику - например от хабра или dou. Оплата труда самая низкая после 1C, вакансий становится меньше, новых проектов меньше. Медианный опыт работы php разраба - 6 лет. Да и люди в этом треде как видишь злые, бесплатно хрен помогут тебе. Питон или js намного круче сейчас, даже сам Хауди Хо об этом говорит. Го к нам в питон тред: https://2ch.hk/pr/res/1943168.html#1944728
Аноним 18/02/21 Чтв 02:44:27 1944740922
Screenshot.png 36Кб, 808x644
808x644
Screenshot.png 9Кб, 489x117
489x117
Почему происходит division by zero если в массиве $workers содержатся хуйнюшки с значением 400 в $papers?
Аноним 18/02/21 Чтв 02:45:11 1944741923
>>1944739
Меня от туда послали учить PHP.
Аноним 18/02/21 Чтв 05:49:19 1944777924
>>1944739
Всё верно - пхп умер фактически. Остались только легаси проекты на нём - остальные на ноду перешли, или Питон.
Я сам после пяти лет работы с ПХП перекатился на Го.

>>1944741
Пошли их в ответ!
Аноним 18/02/21 Чтв 05:53:36 1944782925
>>1944736
Тебе сперва надо SICP прочитать чтоб понимать что делаешь.
Аноним 18/02/21 Чтв 07:02:36 1944834926
>>1944740
...->workers = $Иванов <<< не добавляет Иванова в массив workers.
Аноним 18/02/21 Чтв 12:19:32 1945072927
>>1944741
Наверняка за подобные вопросы
Аноним 18/02/21 Чтв 12:22:47 1945077928
>>1944740
А IDE бы подсветила, что херню делаешь, присваивая одному свойству разные значения
Аноним 18/02/21 Чтв 12:23:09 1945078929
Аноним 18/02/21 Чтв 12:23:36 1945079930
Аноним 18/02/21 Чтв 12:24:19 1945080931
Аноним 18/02/21 Чтв 12:25:02 1945081932
Хоть бы валидировали картинки. Непонятно, почему не грузит...
Аноним 18/02/21 Чтв 12:26:09 1945084933
>>1945080
Убери галку в Настройки -> Медиа -> Удалять eXiF
Аноним 18/02/21 Чтв 12:27:55 1945088934
image.png 86Кб, 782x117
782x117
Аноним 18/02/21 Чтв 12:28:17 1945089935
анон 18/02/21 Чтв 13:28:31 1945173936
А в чем отличия между обновлениями "целой части числа" (например с 7.4 до 8) и дробной части (7.3 => 7.4)? Первые более масштабны?
Аноним 18/02/21 Чтв 13:49:59 1945185937
Аноним 18/02/21 Чтв 14:07:19 1945207938
>>1945173
>например с 7.4 до 8
В мажорных ломают обратную совместимость
>7.3 => 7.4
В минорных вводят новые фичи
Аноним 18/02/21 Чтв 15:22:02 1945319939
что значит много стрелок в одной строке,объект вызывает разные методы в одну строку?
Аноним 18/02/21 Чтв 15:55:37 1945366940
>>1945319
Приведи пример кода
Аноним 18/02/21 Чтв 15:58:47 1945370941
Аноним 18/02/21 Чтв 16:06:04 1945375942
>>1945319
Объект вызывает метод, тот что-то возвращает, у этого чего-то вызывается метод, который тоже что-то возвращает и так далее.
https://en.wikipedia.org/wiki/Method_chaining
Аноним 18/02/21 Чтв 16:11:37 1945380943
>>1945370
Добавление элемента в массив:
$arr[] = $elem;

А теперь сравни со своим кодом.
Аноним 18/02/21 Чтв 16:14:52 1945386944
>>1945380
Подозреваю нужно сначала сделать
$arr[] = $someDepartment->workers;

А потом
$arr[] = $elem;
Аноним 18/02/21 Чтв 16:17:54 1945389945
>>1945386
Полный код бы привел.
По тем двум обрывкам непонятно, что хочешь сделать.
Аноним 18/02/21 Чтв 16:19:33 1945392946
>>1945389
{
const PROFESSION_MANAGER = "Менеджер";
const PROFESSION_MARKETER = "Маркетолог";
const PROFESSION_ENGINEER = "Инжинер";
const PROFESSION_ANALISER = "Аналитик";

protected $name;
protected $profession; // Профессия работника
protected $rank = 1; // Ранг работника
protected $isLeader = ""; // Руководитель ли работник
protected $salary; // Зарплата работника
protected $coffeeConsumption; // Объём потребляемого сотрудником кофе в литрах
protected $papers; // Количество производимых работников отчётов

public function __construct($name, $profession, $rank, $isLeader)
{
$this->name = $name;
$this->profession = $profession;
$this->rank = $rank;
$this->isLeader = $isLeader;

if ($this->profession == Employee::PROFESSION_MANAGER)
{
$this->salary = 500;
$this->coffeeConsumption = 20;
$this->papers = 200;
}
elseif ($this->profession == Employee::PROFESSION_MARKETER)
{
$this->salary = 400;
$this->coffeeConsumption = 15;
$this->papers = 150;
}
elseif ($this->profession == Employee::PROFESSION_ENGINEER)
{
$this->salary = 200;
$this->coffeeConsumption = 5;
$this->papers = 50;
}
elseif ($this->profession == Employee::PROFESSION_ANALISER)
{
$this->salary = 800;
$this->coffeeConsumption = 50;
$this->papers = 5;
}

if ($this->rank == 2)
{
$this->salary = 1.25;
}
elseif ($this->rank == 3)
{
$this->salary
= 1.50;
}

if ($this->isLeader == "Руководитель")
{
$this->salary = 1.50;
$this->coffeeConsumption
= 2;
$this->papers = 0;
}
}
}

$ИванПетров = new Employee("Иван Петров", "Маркетолог", 1, "");
$ИванПетров2 = new Employee("Иван Петров2", "Маркетолог", 1, "");
$ИванПетров3 = new Employee("Иван Петров3", "Маркетолог", 1, "");
$procurementDepartment->workers = $ИванПетров;
$procurementDepartment->workers = $ИванПетров2;
$procurementDepartment->workers = $ИванПетров3;

var_dump($procurementDepartment->countAll());
Аноним 18/02/21 Чтв 16:20:22 1945393947
>>1945389
Ой извините...

<?php

error_reporting(-1);

class Department
{
public $workers = array();
public function countAll() // Считает зарплату, потребление кофе, производство бумаг и расход валюты на 1 бумагу
{
$salaryTotal = 0;
$coffeeTotal = 0;
$papersTotal = 0;
$moneyPerPaper = 0;
foreach ($this->workers as $employee)
{
$salaryTotal += $employee->salary;
$coffeeTotal += $employee->coffeeConsumption;
$papersTotal += $employee->papers;
}
$moneyPerPaper = $salaryTotal / $papersTotal;
$returnMassive = array(0 => $salaryTotal, 1 => $coffeeTotal, 2 => $papersTotal, 3 => $moneyPerPaper);
return $raturnMassive;
}
}

$procurementDepartment = new Department;
$sellDepartment = new Department;
$adDepartment = new Department;
$logisticDepartment = new Department;

class Employee
{
const PROFESSION_MANAGER = "Менеджер";
const PROFESSION_MARKETER = "Маркетолог";
const PROFESSION_ENGINEER = "Инжинер";
const PROFESSION_ANALISER = "Аналитик";

protected $name;
protected $profession; // Профессия работника
protected $rank = 1; // Ранг работника
protected $isLeader = ""; // Руководитель ли работник
protected $salary; // Зарплата работника
protected $coffeeConsumption; // Объём потребляемого сотрудником кофе в литрах
protected $papers; // Количество производимых работников отчётов

public function __construct($name, $profession, $rank, $isLeader)
{
$this->name = $name;
$this->profession = $profession;
$this->rank = $rank;
$this->isLeader = $isLeader;

if ($this->profession == Employee::PROFESSION_MANAGER)
{
$this->salary = 500;
$this->coffeeConsumption = 20;
$this->papers = 200;
}
elseif ($this->profession == Employee::PROFESSION_MARKETER)
{
$this->salary = 400;
$this->coffeeConsumption = 15;
$this->papers = 150;
}
elseif ($this->profession == Employee::PROFESSION_ENGINEER)
{
$this->salary = 200;
$this->coffeeConsumption = 5;
$this->papers = 50;
}
elseif ($this->profession == Employee::PROFESSION_ANALISER)
{
$this->salary = 800;
$this->coffeeConsumption = 50;
$this->papers = 5;
}

if ($this->rank == 2)
{
$this->salary = 1.25;
}
elseif ($this->rank == 3)
{
$this->salary
= 1.50;
}

if ($this->isLeader == "Руководитель")
{
$this->salary = 1.50;
$this->coffeeConsumption
= 2;
$this->papers = 0;
}
}
}

$ИванПетров = new Employee("Иван Петров", "Маркетолог", 1, "");
$ИванПетров2 = new Employee("Иван Петров2", "Маркетолог", 1, "");
$ИванПетров3 = new Employee("Иван Петров3", "Маркетолог", 1, "");
$procurementDepartment->workers = $ИванПетров;
$procurementDepartment->workers = $ИванПетров2;
$procurementDepartment->workers = $ИванПетров3;

var_dump($procurementDepartment->countAll());
Аноним 18/02/21 Чтв 16:22:46 1945394948
>>1945393
К этому моменту
$procurementDepartment->workers = $ИванПетров;
массив workers уже проинициализирован. Так что можешь смело пушить в массив свои работничков.

Ну и у пхп такое поведение, что при добавлении в непроинициализированный массив, он создаст новый массив хотя так лучше не делать, т.к. неявное поведение
Аноним 18/02/21 Чтв 19:56:10 1945602949
Screenshot.png 35Кб, 825x613
825x613
>>1945394
>Так что можешь смело пушить в массив свои работничков.
???
Аноним 18/02/21 Чтв 21:36:35 1945684950
Вопрос по принципу подстановки Барбары Лисков. Допустим есть абстрактные классы AbstractA и AbstractB. От них наследуются A и B соответственно.
AbstractA в конструкторе требует AbstractB. И если я в конструкторе A пропишу что аргументом должен быть не какой-нибудь AbstractB, а конкретно B, все будет хорошо работать и даже IDE ругаться не будет ( будет ругаться если не выполнить parent::construct($b) ).
Это нарушение LSP? Потому что если я проведу аналогичные действия не с конструктором, а каким-нибудь другим методом, выбрасывается Fatal Error: Declaration of A::method(B $b) must be compatible with BaseA::method(BaseB $b)
Аноним 18/02/21 Чтв 21:44:40 1945698951
>>1945684
И еще вопрос. Возможно есть какой-нибудь паттерн, по которому я смогу осуществить желаемое ( не копипастить у множества классов одинаковые методы, которые отличаются лишь требуемым типом аргумента при неверном типе безоговорочно должно выбрасываться исключение )?
Вроде видел как в джаве что-то похожее через дженерики реализуется, но это не точно.
Аноним 18/02/21 Чтв 22:06:29 1945722952
>>1945684

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

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

А вот обычные методы в наследнике должны быть совместимыми с предком. Потому нельзя при наследовании заменить тайп-хинт AbstractB на B - это сломает код, который передает в этот метод объект, отличный от B. Раз предок принимает такие объекты, то и наследник должен.

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

Боюсь, что такого в PHP нет.
Аноним 18/02/21 Чтв 22:07:00 1945723953
Аноним 18/02/21 Чтв 22:14:17 1945729954
>>1945602

Слово array в строке с ошибкой лишнее.

>>1945393

Плохо, когда код снаружи залезает внутрь объекта и что-то меняет в массиве. Тебе лучше сделать в классе Department метод addEmployee(Employee $e) и с его помощью добавлять работников, а прямой доступ к массиву $workers закрыть.

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

> $isLeader = ""
тут для обозначения, является ли человек лидером, лучше использовать значения типа bool, то есть true и false.

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

Аноним 18/02/21 Чтв 22:17:16 1945730955
>>1945729
>Слово array в строке с ошибкой лишнее.
Как я должен был это понять?

>Тебе лучше сделать в классе Department метод addEmployee(Employee $e)
Да, ты прав. Хороший совет.

>Из-за этого тебе будет сложно пересчитывать зарплату при смене ранга или статуса босса.
Почему?
Аноним 18/02/21 Чтв 22:24:55 1945735956
Аноним 18/02/21 Чтв 22:25:11 1945736957
>>1944777

Фуу, что хорошего в ноде? Нечитаемая лапша с 10 уровнями вложенности, везде уродливые промисы вместо линейного синхронного кода, по 10 анонимных функций вложены друг в друга. Нет тайп-хинтов, потому читать код невозможно. Нет private/protected, костыли (прототипы) вместо нормального ООП. Если ошибиться в написании свойства (this.errror), то никаких ошибок не выдастся. Нет Доктрины и Симфони, потому собирают из сотен библиотек самодельный фреймворк.

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

Аноним 18/02/21 Чтв 22:40:12 1945742958
>>1944682

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

Судя по тексту ошибки, тебе надо установить Visual C Redistributable (распространяемый компонент Visual Studio, не саму Visual Studio) версии 14.28 или выше с сайта майкрософт.

Ссылки на него есть тут: https://support.microsoft.com/ru-ru/topic/%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8-visual-c-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BA%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-2647da03-1eea-4433-9aff-95f26a218cc0

Выбери vc_redist.x64.exe или vc_redist.x86.exe в зависимости от разрядности (32-битный или 64-битный) PHP. Если не уверен, можешь поставить оба.


Аноним 18/02/21 Чтв 22:41:32 1945743959
>>1945736
>Нечитаемая лапша с 10 уровнями вложенности
Как напишешь - так и будет.

>везде уродливые промисы вместо линейного синхронного кода, по 10 анонимных функций вложены друг в друга
Наверное даже именно поэтому в 8 версию пхп не завезли поддержку стрелочных фукнций. Ой падажжи...

>Нет private/protected
А ты каждый объект рвёшься вывернуть наизнанку или документацию к библиотеке не читаешь?

>костыли (прототипы) вместо нормального ООП
Тайпскрипт, алло.

>Нет Доктрины и Симфони, потому собирают из сотен библиотек самодельный фреймворк.
>Симфони
Который сам по-сути набор независимых библиотек? Неожиданно.
Аноним 18/02/21 Чтв 22:44:36 1945745960
>>1945722
Благодарю за ответ :3
Забавно конечно, что об этой особенности почти нигде не пишет.
Аноним 18/02/21 Чтв 22:58:50 1945761961
>>1945698
>( не копипастить у множества классов одинаковые методы, которые отличаются лишь требуемым типом аргумента при неверном типе безоговорочно должно выбрасываться исключение )?
Не совсем понятно что ты имеешь ввиду. У меня сильное подозрение, что у тебя что-то пошло не так с архитектурой.
Аноним 18/02/21 Чтв 23:06:38 1945763962
>>1944137

>В плане того, что он предлагает нам сделать отдельный класс UserForm

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

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

Если список полей в User и в форме совпадают, то в принципе может хранить данные формы в объекте User, без использования UserForm.

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

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

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

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

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

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

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

public function fill(array $data)
{
$this->name =strval($data['name'] ?? '');
...
}

В более сложном случае мы можем не писать руками эти присваивания, а использовать библиотеку JMSSerializer или Symfony Serializer, которая умеет заполнять объект свойствами из массива с преобразованием типов (типы прописываются в объекте как аннотации).

>>1944161

> Ну и у ОПа видно что пример сильно вдохновлён симфони формами, где один контроллер и отрисовывает форму по GET, и обрабатывает по POST

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

>>1944181

> а PostForm это объект, которые представляет именно данные из формы (в который непонятно зачем передается еще и сама сущность)

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

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

Момент с валидацией тут основной. Если мы напишем валидатор для PostForm, то мы получим намертво привязанный к форме валидатор, которым нельзя проверять приходящие из других источников объекты Post, например, из БД. Потому валидатор лучше делать для объекта Post. И для этой цели Post вкладывается в PostForm - чтобы можно было передать его валидатору.

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

> Там уже сразу проверяем, валидные данные или нет. Если все данные валидные, то заполняем свойства этими данными, а если нет, то заполняем к примеру свойство с ошибками

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

> $post = new Post($postData);

Тут косяк в том, что с таким конструктором Post намертво привязан к форме (PostData) и невозможно создать его без формы, например, программно.




Аноним 18/02/21 Чтв 23:12:26 1945768963
>>1945602
Поставь уже phpstorm. Пусть он тебя по рукам за кривой синтаксис бьет
Аноним 18/02/21 Чтв 23:12:27 1945769964
>>1943749

Здесь непонятно волшебное число 10. Лучше сделать переменную $percent = 0.1 и использовать ее для читаемости. Вместо $years += 1 можно писать $years++; Условие $money < 1000000 можно поместить в заголовок цикла и тогда if будет не нужен.

>>1943629

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

А вот если бы он был в сервисе и изолирован от $_POST и тд, то его можно было бы вызывать откуда угодно. И тестировать проще. И читабельность выше.
Аноним 18/02/21 Чтв 23:21:09 1945777965
>>1943571

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

Тут описано, где прописать путь к PHP в базовой конфигурации (без плагинов): https://code.visualstudio.com/docs/languages/php Это, правда, годится только для проверки кода по мере набора.

Чтобы запускать PHP программу одной кнопкой F5, надо прописать другие настройки. А в них путь к PHP. Как, описано тут: https://www.codewall.co.uk/how-to-run-php-code-directly-in-the-visual-studio-code-console-terminal/

Аноним 18/02/21 Чтв 23:31:18 1945785966
>>1943511

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

Лучше было бы передавать нужные параметры (вроде текущего пользователя) явно через аргументы.

> О том, что именно будет правильнее внедрять в сервис для доступа к БД. Не инстанс модели же?

Если тебе нужен прямой доступ к БД , то внедрять надо объект Illuminate\Database\Connection (взял из таблицы отсюда: https://laravel.com/docs/8.x/facades#facade-class-reference )




Аноним 18/02/21 Чтв 23:44:07 1945794967
>>1943423

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

Имя функции лучше начинать с глагола. Имена переменных начинаются с маленькой буквы.

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

>>1941619

Решение неправильное. Во-первых, нельзя пытаться получить букву из строки с помощью скобок: $text[$i]. Это возвращает не i-ю букву, а байт, а одна буква может состоять из нескольких байт. Вот урок про это: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md

Далее, это неправильное сравнение: if ($count == $words) так как ты сравниваешь число совпавших букв с числом слов в тексте. Они не обязаны быть равны.

>>1941844

Выглядит верно.

>>1941729

Можно писать WHERE JSON_VALUE(....) = '....'. Функция JSON_VALUE выделяет один элемент из JSON-объекта.

Аноним 18/02/21 Чтв 23:51:59 1945802968
>>1945730

>>Слово array в строке с ошибкой лишнее.
> Как я должен был это понять?
Ты должен знать синтаксис PHP или использовать проверку в редакторе кода, которая подчеркнет ошибку. Слово array использовалось в старых версиях PHP для создания массива, например array(1, 2, 3) (сейчас пишут просто [1, 2, 3]), непонятно, зачем оно там вписано в коде.

>>Из-за этого тебе будет сложно пересчитывать зарплату при смене ранга или статуса босса.
> Почему?

Ну попробуй сейчас в Employee сделать метод changeRank() и чтобы после его вызова все зарплаты, кофе, страницы пересчитывались корректно. У тебя вряд ли получится, так как в некоторых случаях ты сбрасываешь this->papers в ноль и теряешь исходное значение числа произведенных страниц.

>>1945743

>> Нет private/protected
> А ты каждый объект рвёшься вывернуть наизнанку или документацию к библиотеке не читаешь?
А у тебя к каждому объекту отдельная документация, где написано, что с ним можно делать и что нельзя? В PHP неправильный доступ невозможен на уровне языка.

Аноним 19/02/21 Птн 00:05:24 1945815969
>>1945761
>>1945761
У тебя отличная чуйка. Пока я пытался расписать тебе всю задуманную архитектуру, я сам понял что в ней не так и почему она говно. Еще раз спасибо)
Аноним 19/02/21 Птн 12:29:35 1946069970
>>1917780
>>1917785
>>1917788
такой вопрос написание нейросетки для написания сайта (интернет магазина,визитки,бложика) насколько реально?
фронт энд уже преставил но чуствую с бекэндом ебнусь
Аноним 19/02/21 Птн 12:44:22 1946080971
>>1946069
Когда научат нейросети угадывать, что на самом деле нужно заказчику.
Пока это даже людям неподвластно
Аноним 19/02/21 Птн 12:52:07 1946086972
>>1946080
на чем тогда зарабатывает wix
Аноним 19/02/21 Птн 12:58:57 1946092973
Аноним 19/02/21 Птн 18:51:50 1946636974
https://www.codewars.com/kata/54b724efac3d5402db00065e

интересная ката, помогает потихоньку осиливать встроенные функции методы? strtr/str_replace и всё такое, но можно и через циклы (как я и решил, так как очередной вкатун)
Аноним 19/02/21 Птн 21:20:53 1946788975
>>1946069

Нейросеть - это же не искуственный интеллект, который будет за тебя работать. Это просто алгоритм, который обучают при подаче на вход набора чисел выдавать на выходе другой набор. Так что генерировать твоя нейросеть сможет только то, что в нее перед этим заложили.
Аноним 20/02/21 Суб 12:34:22 1947214976
Всем привет! Решил попробовать себя в веб-программировании. Подскажите, пожалуйста, сколько примерно времени у меня может уйти на изучение стека PHP, JS, MySQL на базовом уровне, если я буду заниматься ежедневно по 6-8 часов? Пока только освоил HTML/CSS. В шапке написано 6-8 месяцев нужно изучать, но не указано, сколько при этом нужно часов в день заниматься.
Аноним 20/02/21 Суб 12:45:51 1947224977
Аноним 20/02/21 Суб 12:48:19 1947230978
Аноним 20/02/21 Суб 12:49:54 1947233979
>>1947230
99% что бросишь и еще негатив останется
Аноним 20/02/21 Суб 12:51:10 1947235980
>>1947233
выгорю, занимаясь по 6-8 часов в день, или веб в целом не зайдет?
Аноним 20/02/21 Суб 12:53:36 1947239981
>>1947235
выгорают на работе.
а так не зайдет.
начало зайдет,мож даже чет простое сделаешь,а потом усё
Аноним 20/02/21 Суб 12:55:59 1947242982
>>1947239
понял, спасибо
На самом деле у меня других вариантов нет, я живу в городе 300к населения и в городе мало контор, и чтобы вырваться в мск и другие сферы программирования, я должен хоть с чего-нибудь начать, хотя бы с веба
Аноним 20/02/21 Суб 12:57:47 1947244983
Аноним 20/02/21 Суб 13:00:46 1947250984
>>1947244
хочу когда-нибудь вкатиться в биоинформатику, сделать хоть что-то полезное
Аноним 20/02/21 Суб 13:01:40 1947251985
>>1947250
ну этот тред не про это
Аноним 20/02/21 Суб 13:04:26 1947254986
>>1947251
да, но на данный момент я заинтересован в веб-программировании, буду изучать)
Аноним 20/02/21 Суб 13:05:05 1947256987
Аноним 20/02/21 Суб 13:09:32 1947262988
Вопрос остается открытым. Подскажите, пожалуйста, сколько у меня может уйти времени на изучение?
Аноним 20/02/21 Суб 16:14:41 1947467989
>>1947214
>Подскажите, пожалуйста, сколько примерно времени у меня может уйти на изучение стека PHP, JS, MySQL на базовом уровне, если я буду заниматься ежедневно по 6-8 часов?
У всех очень по-разному идёт. Непонятно как у тебя вообще с ИТ и информатикой, какой бэкграунд, как быстро обучаешься, способность к самообучению и тд. Неясно так же что подразумевается под "на базовом уровне" - на этом уровне ты никакую работу уже не найдёшь, скорее всего.
Просто дай себе месяц регулярных ежедневных занятий, а там посмотри - нравится или нет.
Аноним 20/02/21 Суб 16:18:13 1947470990
>>1947214
>Пока только освоил HTML/CSS.
С этим тоже осторожнее - я такое слышал от таких, которые по-факту ничего не умеют и работу им не доверить.
Аноним 20/02/21 Суб 16:21:16 1947472991
>>1947467
>дай себе месяц регулярных ежедневных занятий
И не по 6-8 часов. Сдуру и хуй сломать можно. По 2 часа 5\7 будет за глаза - больше и не надо.
Аноним 20/02/21 Суб 19:24:03 1947712992
Я правильно понимаю алгоритм-
что при любом занесении к-л изменений в БД,
после этого идет код, где в сессии запихиваем то,что запихивали в БД,чтобы потом лазя по страничкам все было сохранено?
Аноним 20/02/21 Суб 20:23:16 1947771993
Пыхозавры, вам где-нибудь в реальном проекте приходилось использовать функцию session_regenerate_id()?
В чем ее профит?
Аноним 20/02/21 Суб 20:24:07 1947772994
Кстати, почему не перекатываете?
Тред уже в бамплимите.
Аноним 20/02/21 Суб 21:13:53 1947842995
>>1947712

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

Сессия вообще ненадежное место для хранения данных. Если человек зайдет на сайт с другого компьютера, то у него будет новая пустая сессия. Потому те данные, которые надо сохранять надежно и надолго, стоит помещать в БД.
Аноним 20/02/21 Суб 22:34:28 1947908996
Аноним 20/02/21 Суб 22:44:03 1947923997
>>1947842
так они и так в бд.
вот я вхожу на сайт,аутентификатор ищет меня,а потом извлекает из бд имя,фамилию,город в сессию,что бы была страничка юзера(как в ВК)
Аноним 21/02/21 Вск 01:00:24 1948033998
>>1947908

Эта уязвимость давно уже неактуальна, она возможно только если разрешить передавать id сессии через GET-параметры (/script.php?SESSION_ID=1234). Сейчас по умолчанию это отключено и уязвимость не сработает, если только специально не поменять настройки.

При этом, session_regenerate_id никак от этого не спасет.

>>1947771

Это можно делать при разлогинивании (или при логине) пользователя. Чтобы при новом входе получалась гарантированно новая сессия.

>>1947923

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

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

По моему, так это глупая идея.
Аноним 21/02/21 Вск 01:11:40 1948041999
>>1948033
>Сейчас по умолчанию это отключено и уязвимость не сработает, если только специально не поменять настройки.
Но ведь PHPSESSID передается в куках, а куки можно украсть.
Аноним 21/02/21 Вск 03:32:47 19480661000
>>1948041

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

Если ты можешь украсть куки, ты и любые запросы можешь делать от имени пользователя. Session fixation тебе просто не нужна. Ну и regenerate_session_id тут никак не поможет.
Аноним 21/02/21 Вск 09:45:28 19481211001
>>1948033
>По моему, так это глупая идея.
везде для начинающих именно такой подход.
про кеширование я вообще не знаю
Аноним 21/02/21 Вск 12:16:03 19482131002
ПЕРЕКАТУХ ПИЛИТЕ!
Аноним 21/02/21 Вск 13:26:47 19482991003
Не понимаю, как организовать корзину в ларавеле.
Допустим, у нас есть таблицы
Cart (id, user_id, session_id, name, email, phone, address)
и
Cart_item (id, product_id, cart_id, quantity)
Вот юзер зашёл на сайт, стартовала сессия, в куку записали session id. Юзер нажал "добавить в корзину" некий товар. Сработал аякс(!) скрип и в специальный аякс контроллер ушёл запрос на добавление. Контроллер проверяет, существует ли для этого session_id запись в Cart, если не существует, то создаёт. Ок, на этом этапе всё вроде более-менее логично. Но дальше надо проверить, существует ли уже такой заказ в Cart_item? Если нет, со создать, если есть, то инкрементировать в нём quantity. То есть из аякс контроллера управлять Cart_item моделью. Херня какая-то. Или это норма? То же самое с уменьшением количества, нужно либо уменьшить quantity, либо (если оно было равно 1) вообще удалить всю запись из Cart_item.

Однако, это же круд получается. Добавить/редактировать/удалить сущность. И, по идее, для этого нужно использовать рест контроллер. Аякс рест контроллер. Но таких нет. Я нагуглил решение на мидлвере https://coderoad.ru/28970350/%D0%9A%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-restful-ajax-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B0%D0%BC%D0%B8-%D0%BA-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0%D0%BC-%D0%B2-Laravel-5 ,но эта ссылка чуть ли не единственная. Поэтому у меня ощущение, что я что-то делаю глобально не так. А как надо?
Аноним 21/02/21 Вск 13:33:41 19483131004
>>1948299
А что смущает конкретно? Я не понял.
Вообще в контроллере логично создавать модели и управлять ими.
Для красоты можешь в класс Cart добавить метод addItem() и внутри него уже делать операции с CartItem.
Аноним 21/02/21 Вск 14:06:08 19483491005
>>1948313
Смущает то, что фактически я пишу рест контроллер, когда они есть из коробки. Но только обычный, без аякса. Вот и подумал, что пишу велосипед.
Аноним 21/02/21 Вск 14:08:07 19483531006
>>1948349
А в коробочном РЕСТ-контроллере для экшонов можно задать поведение, чтобы отдавать результат в ajax-формате? JSON какой-нибудь.
Аноним 21/02/21 Вск 14:53:41 19483871007
>>1948353
Задать-то можно, но фишка рест контроллера в том, что он оперирует с пост/пут/патч/делет реквестами (то есть, роутер посылает автоматически нужный тип запроса к нужному методу контроллера). А аякс только пост посылает. Вот как раз прикручиванию этого костыля пример по сылке выше и посвящён.
Аноним 21/02/21 Вск 15:04:45 19483961008
>>1948387
А зачем тебе нужна вообще РЕСТ-концепция в твоем проекте?
Аноним 21/02/21 Вск 16:02:57 19484611009
>>1948299
>Однако, это же круд получается. Добавить/редактировать/удалить сущность. И, по идее, для этого нужно использовать рест контроллер. Аякс рест контроллер. Но таких нет.

Ты пытаешься понять то, что тебе сейчас не нужно. У тебя есть урл, и его програмный обработчик, это твой route. Дальше ты можешь делать что угодно. В твоём кейсе, у тебя есть какой-то CartController, и у него много разных методов, например addItem(item_id),
incrementItem(item_id) и т.д. Ты у себя в рутах и пишешь что-то на уровне Route::post('cart/add', 'CartController@addItem'), понятное дело с разными проверками на авторизацию(это можно писать прямо в контроллере, можно выносить в мидлвары и группировать руты как AuthOnly, суть ты понял. В самом контроллере делаешь что тебе нужно. Если ты знаешь что твой CartController@addItem будет вызываться только через аякс, то возвращаешь json ответ, если не только через аякс, то можно сделать проверку в самом конце обработчика вроде if ($request->wantsJson()) { ... } else { redirect(...) }, wantsJson вроде проверяет как и Accept заголовок, так и Requested-With: XMLHttpRequest, можешь вообще явно на каждый рут передавать доп. параметр вроде format, который по дефолту равен html. Если тебя смущает то, что ты базу дрочишь прямо в контроллере, то не смущайся, если хочешь то сделай отдельный сервис(отдельный пхп класс в отдельной папочке, у которого может быть или небыть богатая логика и вот это всё) и дергай всё через него
Аноним 21/02/21 Вск 16:34:21 19484931010
На сайте есть алерт, сообщение которого зависит от некой переменной. Сейчас такой кейс, что таких алертов может быть несколько и различаются они только сообщением алерта. Вынести весь html код алерта в отдельный файл и просто подключать его или лучше сделать что-то типа AlertUtil и просто дергать у него статический метод, который будет принимать дескрипшн алерта и выплевывать html код. Что посоветуете, аноны ?
Аноним 21/02/21 Вск 20:10:44 19486521011
Не отображается этот код пыхи на странице, пхп.ини чекал, в теге мета прописывал кодировку, запускаю через опен сервер

<!DOCTYPE HTML>
<html>
<head>
<title>Список студентов</title>
<meta>

</head>
<body>
<? echo $_SERVER['HTTP_USER_AGENT'];?>
</body>
</html>
Аноним 21/02/21 Вск 21:20:41 19486841012
Можно ли мешать код-сверху php,ниже html?
Просто учебные примеры кишат этим
Аноним 22/02/21 Пнд 00:20:43 19487631013
>>1948213

Погоди немного, всего 1000 постов.

>>1948299

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

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


Аноним 22/02/21 Пнд 00:22:07 19487641014
>>1948652

Надо использовать <?php вместо <?

>>1948684

Если у тебя все программа умещается в один файл на 200 строк, то можно. Если приложение большое, то надо разделять файлы с бизнес-логикой и с отображением данных.
Аноним 22/02/21 Пнд 02:24:45 19488241015
>>1948121

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

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

Хороший учебник должен объяснять, зачем это делается, а не предлагать копировать код, не понимая, зачем он нужен.
Аноним 22/02/21 Пнд 09:03:43 19488791016
>>1948764
>Надо использовать <?php вместо <?

Пробовал, так же
Аноним 22/02/21 Пнд 11:20:22 19489571017
Какая CMS самая удобная? Вротпресс? Поэтому на ней куча сайтов?
Аноним 22/02/21 Пнд 11:33:24 19489791018
А какой РНР-фреймворк быстрее всего изучить для нуба? Yii? Я прав?
Аноним 22/02/21 Пнд 12:38:46 19490341019
>>1948979
> Yii?
Yii безбожно устарел + там хватает своих неочевидностей и магии.
Если хочется окунутся в легаси 10летней выдержки, то бери этот фреймворк, работы на наш век хватит

>А какой РНР-фреймворк быстрее всего изучить для нуба?
Зависит от твоего подхода к разработке.
Если склонен к хуяк-хуяк, то ларавел.
Если к тырпрайзу - симфони
Аноним 22/02/21 Пнд 13:07:09 19490641020
для админа нужна отдельная таблица в БД?
Аноним 22/02/21 Пнд 13:08:34 19490651021
>>1949064
и нужна ли отдельная форма для админа?
Аноним 22/02/21 Пнд 13:14:09 19490691022
>>1949064
В простейшем случае можно ограничится одним полем в таблице юзеров is_admin, можно поставить enum или даже внешний ключ на список ролей.
Можно завести систему ролей и прав RBAC (права к ролям, роли к юзерам).
Аноним 22/02/21 Пнд 13:14:28 19490701023
Аноним 22/02/21 Пнд 13:20:05 19490721024
>>1949069
> можно поставить enum или даже внешний ключ на список ролей.
шта?
>>1949070
для админа.где нибудь ссылка мелким шрифтом на основной странице внизу,которая переведет на форму ввода его логин(мыло) и пароль
Аноним 22/02/21 Пнд 13:41:48 19490841025
Снимок экрана 2[...].jpg 72Кб, 701x630
701x630
накатал черновой вариант.
Аноним 22/02/21 Пнд 13:42:54 19490861026
>>1949072
>для админа.где нибудь ссылка мелким шрифтом на основной странице внизу,которая переведет на форму ввода его логин(мыло) и пароль
Ну сделай так. Либо просто отдельным роутом вида site.com/admin без явно кнопки/ссылки если юзеру не положено знать про админку

> можно поставить enum или даже внешний ключ на список ролей.
>шта?
enum в таблице user поле role и варианты: user, admin
либо вынести доступные роли в отдельную таблицу user_role
в ней будет 2 записи - роли user и admin
в таблице user поле role_id fk на таблицу user_role
Аноним 22/02/21 Пнд 13:45:17 19490891027
image.png 30Кб, 919x272
919x272
Кажется, автор задачи сам неправильно решил, ведь при его решении "а" будет тоже искаться, а по условию такого не должно быть.
Сам решил вот так:
echo preg_replace('#a[^\\sa]+a#', '!', 'aba acacca azzza wwwwa aaa');

Что скажете? Я что-то не так понял, или все-таки я сделал правильно?
Аноним 22/02/21 Пнд 13:45:26 19490901028
>>1949086
не user_role, а просто role
Аноним 22/02/21 Пнд 13:53:25 19491021029
>>1949086
>enum в таблице user поле role и варианты: user, admin
либо вынести доступные роли в отдельную таблицу user_role
в ней будет 2 записи - роли user и admin
в таблице user поле role_id fk на таблицу user_role
как эта тема называется(хочу почитать)
Аноним 22/02/21 Пнд 14:01:18 19491061030
>>1949102
Это основы реляционных баз данных
Аноним 22/02/21 Пнд 16:35:37 19492051031
$pdo=new PDO('mysql:host=localhost;dbname=webapp;charset=utf8','root', '');

$sth = $pdo->prepare('SELECT* FROM users');
$sth->execute();
$sth->setFetchMode(PDO::FETCH_ASSOC);

while($row=$sth->fetch()){
$id=$row['id'];
$login=$row['login'];
$email=$row['email'];
}
почему он выводит только одно поле?

}
Аноним 22/02/21 Пнд 21:09:09 19494111032
>>1949205
через foreach тоже самое
Аноним 22/02/21 Пнд 21:22:28 19494181033
Я где-то слышал, что если мы перебираем в foreach результат какой-то функции, ну например:
>foreach ( $model->all() as $model )
То эта функция будет вызываться при каждой итерации. Это правда?
Аноним 22/02/21 Пнд 21:39:18 19494301034
Аноним 23/02/21 Втр 10:02:15 19496661035
А насколько сложно научиться писать эксплоиты и бэкдоры в вордпресс?
Аноним 23/02/21 Втр 16:18:13 19499251036
Аноны, подскажите по архитектуре.
Суть такова - есть приложуха на slim, пытался васянить чистую архитектуру, active-domain-responder, eloquent ORM, но получилась хуита такого плана - экшены вызывает сервис из слоя домен, а в сервисе у меня полнейший венегрет. Я стараюсь делать провайдеры которые в сервисе вызываются, и которые в себе уже вызывают ORM классы ( которые у меня в отдельной папке в условно одну кучу, так как нужны в каждом сервисе).
Но чет мне это все не нравится.
Че почитать что бы правильно сделать.
Про всякие "сущности" вообще нихуя не понимаю.
Аноним 23/02/21 Втр 17:20:27 19499781037
Иваны, есть одна проблема, смежная с ПХП.
Недавно, ради интереса и опыта, связался с одним челом, который предложил вместе сделать сайт - типа он верстает, а я сделаю функционал и натяжку его вёрстки. Мне делать было нех и я согласился неглядя. Ну там речь шла о небольшом блоге-статейнике, как мы с ним уговорились.
Первые звоночки прозвенели когда он начал рассказывать какие сайты как много зарабатывают, не сверстав даже главную. Потом он начал мочить по функционалу - какой-то форум захотел, разделы блядь, ещё какую-то неведомую срань. Как выяснилось этот перец вообще ни в зуб ногой по сайтам и вебдеву и тупо копирует увиденное у других.
Ну а потом он дал свою вёрстку - чтобы её натянуть мне нужно будет всё перевёрстывать т.к. она запилена в каком-то визуальном редакторе под другую CMS. Я ему предлагал тупо взять левый дизайн и вёрстку и делать на ней, но он сам хочет верстать.
Теперь вопрос - как мне его слить по-тихому? Я придумал пока 2 варика: 1 - ебать ему мозг правками по вёрстке пока сам не свалит, 2 - сказать ему прямо, что я ебал работать с его материалом и без чёткого плана он составить его точно не сможет. Что лучше?
Аноним 23/02/21 Втр 17:35:01 19499911038
>>1949925
>active-domain-responder
Какой ещё ADR, если Слим на MVC работает? Сдаётся мне, что ты не совсем понимаешь что делаешь - для ADR сам фрейм пиши. Да и вообще он бесполезная хрень, если подумать - в норме контроллеры тонкие, и если ещё и разделять на экшон и респондер логику, то там по 2 строчки кода будет. И по 25 бойлерплейнта из неймспейсов и структур ООП.
Из контроллера вызывай сервис, где содержится логика работы приложухи. Всё.
Аноним 23/02/21 Втр 18:01:42 19500181039
>>1949978
Работаешь бесплатно? Если да, то сливай как хочешь, ты ему ничем не обязан.
Аноним 23/02/21 Втр 18:05:52 19500271040
>>1950018
>Работаешь бесплатно?
Думал попрактиковаться немного, и, если получится, то сесть на поддержку этого сайта. Теперь хуй подпишусь на такое - гемор один.
Аноним 23/02/21 Втр 18:31:57 19500641041
>>1950027
зачем такой "коллега" нужон? капец, что сложного просто сверстать адаптив 1 страницы за день? даже не зная ничего не уйдет больше трех дней
короче, тебе проще самому взять все сверстать и натянуть это дело, как нравится
Аноним 23/02/21 Втр 18:51:07 19500791042
>>1950064
>зачем такой "коллега" нужон?
Я подразумевал, что он ещё и контент пилить будет - сайт по тематике которую он знает.

>что сложного просто сверстать адаптив 1 страницы за день? даже не зная ничего не уйдет больше трех дней
Ну вот он не знает и верстает 3 дня одну страницу, а на выходе меню из <label> без <a>, стили впердолены прямо в разметку блоками, причём перекрывая друг-друга мне это разгребать весь день придётся при натяжке, 2 футера и прочий трэш, который хочется развидеть.

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

Не связывайтесь с нулевыми, Иваны.
Аноним 23/02/21 Втр 19:33:43 19501241043
>>1949991
>>Сдаётся мне, что ты не совсем понимаешь что делаешь - для ADR сам фрейм пиши.

Так и есть, если не в напряг распиши в чем суть ADR? Или статью какую.
Я когда пердолился со слоистой архитектурой, особенно как пример отделения логики приложения от реализации БД - вроде как типа понял. Но потом дошел до реализации, с ORM моделями елоквента ( в которых как часто в гайдах и показывают - какая то бизнес-логика живет обычно ) - и понял что хуита у меня а не слои.
Аноним 23/02/21 Втр 20:35:04 19501741044
>>1950124
>в чем суть ADR?
Там методы из контроллера в объекты инкапсулируются, которые и вызывают бизнес-логику, потом результат уже отдают респондеру, который подгружает шаблон и тд. Я сейчас даже не вспомню конкретику.
Такое есть смысл пилить при толстых контроллерах - чтобы их хоть как-то разгрузить, а при тонких если писать нормально это не имеет смысла. В тонких только валидация реквеста, отработка логики приложения и формирование ответа, что там отдельно выносить?

>статью какую
Я в гугле неплохие статьи находил.

>ORM моделями елоквента ( в которых как часто в гайдах и показывают - какая то бизнес-логика живет обычно
Я туда только всякие небольшие преобразования данных пишу, вроде вывода отформатированной даты. Не любитель я всё в модель пихать - через сервисы\менеджеры делаю.
Аноним 24/02/21 Срд 09:15:08 19504121045
Screenshot.png 34Кб, 588x259
588x259
ПАРНИ, есть какой-то способ красиво и быстро запихнуть всех Ивашек в массив? Если пушать их через одну строку то строка гигантская получится.
Аноним 24/02/21 Срд 12:13:23 19504891046
Аноним 24/02/21 Срд 12:15:47 19504901047
>>1950489
Нет, надо по нормальному.
Аноним 24/02/21 Срд 12:18:50 19504921048
>>1950490
Не делает никто так, как на скрине.
Данные берутся из каких-то источников. Например, можешь представить, что тебе пришел json с сотрудниками - парси из json-а
Аноним 24/02/21 Срд 12:22:47 19504941049
>>1950492
Я новичок. Объясни как сделать это со стандартным php 8.0, без джсонов и факеров.
Аноним 24/02/21 Срд 12:24:46 19504951050
>>1950494
У тебя какая задача стоит?
Сгенерить 16 рандомных сотрудников, чтобы код потестить?
Аноним 24/02/21 Срд 12:29:25 19504961051
>>1950495
Запихуть 16 сотрудников в массив объекта в наиболее компактной и удобной форме.
Аноним 24/02/21 Срд 12:44:01 19505051052
>>1947467
>>если я буду заниматься ежедневно по 6-8 часов?

Ох уж эти фантазии. Я все это проходил.
Чел если ты до сего момента не имел подобного опыта и дисциплины на это - у меня для тебя оче плохие новости.
Через пару лет "обучения" ты вдруг поймешь что проебывался 70% времени, и это еще хорошо. Потому что скорее всего забьешь хер.
Аноним 24/02/21 Срд 12:51:12 19505101053
>>1950174
Скинь, если не сложно, как у тебя все это организованно. Хоть кривой жепег картинкой.
Где сервисы хранишь, каждый сервис уникален для отдельного контроллера? Но полюбасу есть такие которые инкапсулируют общуюю какую то логику. Их в отдельном общем каталоге? А потом от них наследуешь сервис для конкретного контроллера?
А то у меня уже ORM моделей наплодилось блядь. И в разных "контроллерах" постоянно почти одинаковые вещи всплывают, типа получить выборку по модели, с определенным набором отношейний.
По хорошему нужно какую то прослойку сделать, в которой будут какие то общие бизнес-логические задачи реализовываться, а орм-ки будут в этой прослойке. Что то типа "сущности", но пока что как то не понятно.

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

на последний вопрос если что можешь не отвечать, понимаю что это чето совсем не конкретное, это больше мысли в слух
Аноним 24/02/21 Срд 12:54:29 19505131054
>>1950412
ПОМОГИТЕ ЕСЛИ НЕ ГАДЫ
Аноним 24/02/21 Срд 12:56:05 19505141055
>>1950496
Никак компактнее не сделаешь. У тебя объекты не объединены никак, так что по ним не пройти как по коллекции.
Можно сразу создавать объекты и писать в массив:
$employes = [
new Employe(...),
new Employe(...),
...
]

Либо так же как создал 16 строками, еще 16 строками запихнуть в массив
Аноним 24/02/21 Срд 14:14:20 19505551056
Аноны, подскажите правильный порядок действий в такой задаче:

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

и кстати , сколько на свободном рынке стоит такой небольшой сервис, в котором зареганные пользователи создают записи,с разными данными, а потом эти записи достаются статистическими запросами, по разным полям записи, для сотрудников небольшого бизнеса сделал. Типа в системе записывается некая работа, и расходники которые на нее потрачены. Потом по этим работам, по исполнителям, по расходникам и т.п. стат. отчеты за период по времени
Аноним 24/02/21 Срд 14:45:16 19505621057
>>1950555
>Но уникальные рандомные симфолы - это не красиво как то.
таймстеп + пару рандомных символов как вариант

>Второе как удалять? Кроном запускать скрипт который данный котолог проверяет, и удаляет файлы отчетов дата создания которых старше чем 15 минут. Это то что я сделал.
Норм, если уверен что данные формируются быстро <1с то можно на лету генерить не сохраняя никуда(ссылка скачать превращается в форму), но лучше так не делать

>котолог
Аноним 24/02/21 Срд 15:34:52 19506041058
>>1950513
$ИваныПетровы[] = new Empolye(...);
$ИваныПетровы[] = new Empolye(...);
...
$ИваныПетровы[] = new Empolye(...);
Аноним 24/02/21 Срд 15:50:28 19506111059
>>1950604
А потом прилетает таска: добавьте еще 100500 ИвановПетровых
Аноним 24/02/21 Срд 15:52:40 19506131060
>>1950513
Ты бля в цикле можешь их добавить в массив или вообще поехал уже?
Аноним 24/02/21 Срд 16:09:29 19506331061
image.png 7Кб, 335x174
335x174
Аноним 24/02/21 Срд 16:10:44 19506351062
Аноним 24/02/21 Срд 17:28:20 19507011063
Аноним 24/02/21 Срд 17:36:11 19507101064
image.png 35Кб, 760x163
760x163
Аноним 24/02/21 Срд 18:36:57 19507751065
>>1950701
Я возьму фейкер и нагенерю скок хочешь.
А тот анон не может в фейкер и будет сидеть построчно выводить $employe138542 = new Zalupa(hui, vkachus);
Аноним 24/02/21 Срд 18:47:17 19507841066
Снимок экрана 2[...].jpg 39Кб, 738x431
738x431
Снимок экрана 2[...].jpg 52Кб, 652x602
652x602
почему извлекает только одну запись,а не все?(без хтмл работает норм)
Аноним 24/02/21 Срд 18:55:41 19507881067
image.png 136Кб, 534x230
534x230
>>1950784
Что ты пытался этим сказать?
Аноним 24/02/21 Срд 18:57:13 19507921068
Аноним 24/02/21 Срд 18:57:46 19507941069
>>1950784
А как насчёт того, чтобы думать немножечко перед тем, как постить итт?
Аноним 24/02/21 Срд 18:58:01 19507961070
>>1950792
Ну перебрал.
А делать что с ним собрался?
Аноним 24/02/21 Срд 18:58:52 19507981071
Аноним 24/02/21 Срд 19:00:22 19508011072
>>1950798
Твой код вообще работать не должен
Аноним 24/02/21 Срд 19:03:36 19508041073
image.png 6Кб, 256x184
256x184
Не знал, что такой сайдэффект есть
Аноним 24/02/21 Срд 19:03:56 19508051074
image.png 1Кб, 141x74
141x74
Аноним 24/02/21 Срд 19:04:22 19508061075
Снимок экрана 2[...].jpg 34Кб, 1078x276
1078x276
Аноним 24/02/21 Срд 19:05:34 19508081076
>>1950784
Убери форич и твой код сломается
Аноним 24/02/21 Срд 19:07:59 19508121077
>>1950806
Ну вот он вывел вне таблицы перед хтмл твои эхо.
А как это же вывести в таблице в хтмл?
Аноним 24/02/21 Срд 19:10:17 19508151078
>>1950812
але,про это я и спрашиваю сначала.
где облом,просто точно укажите,а не глумится
Аноним 24/02/21 Срд 19:11:24 19508171079
>>1950815
Простейшая задача. Если и такое не можешь решить - бросай вкат, это не твоё
Аноним 24/02/21 Срд 19:12:25 19508181080
>>1950817
сделать всю таблицу частью пхп кода?
Аноним 24/02/21 Срд 19:13:00 19508191081
Аноним 24/02/21 Срд 19:13:55 19508211082
>>1950818

Еще подсказка:
php - шаблонизатор, можешь прямо в хтмле ебашить пхп код сколько хочешь
Аноним 24/02/21 Срд 19:14:03 19508221083
>>1950510
>как у тебя все это организованно
Сервисы делаются элементарно - есть у тебя толстый контроллер, где ты с моделями делаешь манипуляции всякие непотребные. Так убери эти манипуляции в метод какого-то класса. Этот класс и будет сервисом. А в контроллере просто вызывай этот метод с нужными параметрами. В результате таких манипуляций с кодом в архитектуре появится слой сервисов, который содержит всю логику приложения, а контроллеры только обрабатывают запросы.

>если не брать в расчет контейнеры зависимостей
>можно организовать чем то типа фабрик с тайпхинтами?
Контейнеры и есть фабрики. Но так да - я тоже люблю получать зависимости так:
function funcName(App\Namespace\SomeClass $object)
или даже так:
function funcName(App\Namespace\SomeClassInterface $object)
Аноним 24/02/21 Срд 19:31:24 19508411084
>>1950821
засунуть таблицу в цикл?
Аноним 24/02/21 Срд 20:08:51 19508701085
Снимок экрана 2[...].jpg 82Кб, 1048x614
1048x614
а теперь другая проблема,нужно чтобы для каждого поля была ссылка на удаление
Аноним 24/02/21 Срд 20:33:44 19508791086
>>1950870
не,это чушь.
как тогда код поймет,что именно эту запись надо будет удалить?
Аноним 24/02/21 Срд 21:01:57 19508891087
Как в этом вашем PHP работают области видимости?
Как грамотно заполнить массив, объявленный глобально, через функцию?
Что-то мне подсказывает, что использовать global <var> это какой-то быдлокод.
Аноним 24/02/21 Срд 21:24:54 19509111088
echo"<a href='delete.php?id=row['id']'>delete</a>";
поправьте пжл
Аноним 24/02/21 Срд 21:30:48 19509151089
echo"<a href='delete.php?id=$id'>delete</a>";
echo"</td>";
переделал,но td в запросе висит
Аноним 24/02/21 Срд 21:58:03 19509391090
Снимок экрана 2[...].jpg 54Кб, 711x492
711x492
короче,получилось.
удаление тоже работает
Аноним 25/02/21 Чтв 00:27:57 19510181091
>>1950939
ты красава, я еще регулярки изучаю, к полноценной практике еще даже не прикасался
Аноним 25/02/21 Чтв 01:41:21 19510431092
Screenshot7.png 37Кб, 733x866
733x866
Анон, я не понимаю как декомпозировать задачу на разные функции, делегировать им обязанности, я понимаю что мой код пикрелейтед это говнокод, но как разбить это все дело с использованием пространства имен, что бы общая логика была в одном месте, а сама функция не росла как дворец путина.

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

Я прихожу к удручающему выводу, что 5 месяцев проебал не понятно на что, и надо было сразу лезть на юдеми какой нибудь и наваливать англоязычные материалы.
Аноним 25/02/21 Чтв 02:00:16 19510481093
>>1950939
Ты уверен, что нельзя вывод прописать единожды ?
Погугли print_r, может поможет локаничнее прописать.
Аноним 25/02/21 Чтв 02:16:12 19510541094
>>1951043
>разбить это все дело с использованием пространства имен
Если код до 200 строк то нефиг ничего разбивать.
Обычно выносят либо повторяющийся код, либо вложенные циклы, условия, либо просто для понятности 1 функция со внятным именем вместо десятка невнятных строк делает код читабельнее.

>уже 5 месяцев учу ПХП(книги, ютубчик, халявные скаченные курсы)
Самостоятельно хоть что-то сделал, или только по туториалам и задачкам учишься?
Пили про студентов таблицу - из ОПпоста, если ещё не.
Аноним 25/02/21 Чтв 03:45:19 19510651095
Screenshot10.png 20Кб, 216x397
216x397
Screenshot9.png 312Кб, 661x289
661x289
>>1951054
Решил сделать простейшие игры, одна спрашивает четное ли число, а другая рандомно выдает мат выражение, в обоих случаях приветствует тебя, проверяет твой ответ и прощается после 3 раундом. Если ответ не верный, игра завершается.

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

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

Вообще я мечу на фриланс в будущем(в неопределенном), но я так понимаю без ебучей бесконечной верстки(и JS) там никак? Или есть задачи?
Аноним 25/02/21 Чтв 04:13:02 19510661096
>>1951054
>Пили про студентов таблицу - из ОПпоста, если ещё не.

Спасибо анон, ознакомился, выглядит не плохо, надо будет взяться.
Аноним 25/02/21 Чтв 08:38:58 19510881097
Всем привет.
Собираюсь вкатиться работать на заводик (через год там будет зп 50к при работе 2/2. Параллельно хочу вкатиться в wordpress разработку. В идеале зарабатывать хотя бы 500-1000 в день. Каковы шансы? Или таких как я миллиард и лучше даже не пытаться?
Аноним 25/02/21 Чтв 08:50:41 19510971098
Бля, подскажите далбоебу как с помощью константы __DIR__ скакануть на два каталога наверх относительно скрипта в котором нужен доступ.
Такое
$dir = __DIR__ . "/../../catalog/test.txt";

чет не работает. ОС - шиндовс пок что.
Аноним 25/02/21 Чтв 08:52:20 19510981099
>>1951088
Скажу по себе - сложно потому что не пхп сложен, а потому что будет тяжело себя заставить учиться. А потом будет тяжело себя заставить инициативно искать работу, выполнять таски и все такое.
Если ты таким никогда не был - умножай вероятность слива на 10
Аноним 25/02/21 Чтв 10:39:42 19511491100
>>1951098
Я рофла ради освоил верстку в вузе (онли html/css) за месяц где-то на уровне 4/10. Сейчас хватает, чтобы верстать сайты типа (okna-ramenskoye.ru). Сверстал его за 3 вечера, не особо торопять. Багов много, но заказчику по сути вообще на всё похуй. Нужен был сайт шоб был как говорится. Мог бы сверстать лучше, по бэму, кроссбраузерность норм поправить и всё такое. Заплатили за него 5к, т.к. сам предложил ценник. Могли бы заплатить больше, как оказалось)
Так что, думаю, с пыхой проблем не будет в изучении, да и в вп уже ковырялся. Могу сделать кастомные поля для записи, например. Самое жесткое, что я делал это кастомные записи (полдня гуглил). Хочу просто брать заказы, чтобы вешать верстку на вп и прикручивать вукомерс. Это половина заказов на фрилансе. И потрачу на изучение этого где-то полгода не больше.
Аноним 25/02/21 Чтв 12:29:46 19512111101
>>1950939
У тебя кусок шаблона в контроллер уехал.

А вы говорите, надо сначала базу, не надо MVC.
Аноним 25/02/21 Чтв 13:04:13 19512441102
как сделать ссылку,чтобы произошел переход из папки на верх дериктории в другой файл?
Аноним 25/02/21 Чтв 13:16:40 19512491103
>>1951097
Строчка из автолоадера:
require __DIR__ . '/../vendor/autoload.php';
Всё работает (шиндоус)
Аноним 25/02/21 Чтв 15:18:47 19513611104
Аноним 25/02/21 Чтв 16:25:42 19514211105
>>1951149
А потом спрашивают почему сайты такое глючное лагающее говно
Аноним 25/02/21 Чтв 17:00:35 19514651106
>>1951421
А ему и отвечают: "Плати больше, будет меньше багов"
Аноним 25/02/21 Чтв 17:26:28 19515031107
Снимок экрана 2[...].jpg 122Кб, 1310x590
1310x590
в лучших традициях Темы Л
Аноним 25/02/21 Чтв 17:34:44 19515131108
>>1951361

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

>>1951244

Можно попробовать <a href="../file.php">. Вот урок про относительные URL: https://github.com/codedokode/pasta/blob/master/network/urls.md

>>1951097

Должно работать. Еще можно попробовать dirname(__DIR__), чтобы подняться на один уровень выше.

Аноним 25/02/21 Чтв 17:54:34 19515371109
>>1951065

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

>>1951043

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

Можно попробовать сделать так. Опиши кратко алгоритм и по нему пиши код, вынося шаги алгоритма в функции. У тебя алгоритм будет:

- узнать имя пользователя
- N раз подряд:
- сгенерировать выражение
- узнать ответ на выражение
- проверить ответ
- попрощаться с пользователем

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

Также, не очень понятно, почему greetUser и question это разные функции. Они ведь только выводят подсказку и ждут ввода ответа?

Неймспейс лучше было назвать не General, а по имени программы. Последний if ($i ==General\COUNT_ROUNDS) не имеет смысла.

Могу посоветовать тебе больше решать задач, где требуется разбивать код на функции. Если ты дошел до ООП, то у нас есть задачки, где это требуется: >>1936147 >>1939079

Если ты не дошел до ООП, то можешь решить такую задачку: напиши функцию, которая принимает число от 0 до 999 999 999 и возвращает его прописью, например "десять тысяч (10 000) рублей". Тут понадобится разбивать код на функции, чтобы не получилась лапша.

Аноним 25/02/21 Чтв 18:02:17 19515521110
>>1950939

Замечания.

Параметры соединения с БД не надо копипастить в каждый файл, лучше вынести их в конфиг. HTML-код надо вынести в шаблон, как описано тут https://github.com/codedokode/pasta/blob/master/php/templates.md

Данные при выводе в HTML надо экранировать для предотвращения XSS.

Удаление делается не GET-, а POST-запросом (отправка формы кнопкой, например). GET запрос не должен менять состояние сервера и что-то на нем удалять.

>>1950889

Лучше всего так:

$array = some_function();



Аноним 25/02/21 Чтв 18:08:52 19515651111
>>1950939

Вообще, у нас в шапке есть задача про список студентов ( https://github.com/codedokode/pasta/blob/master/student-list.md ). Она очень похожа на то, что ты делаешь, но к ней идет много полезных комментариев, как это лучше делать. Советую ее почитать.

>>1950804

Код очень корявый, но сайд-эффектов тут нет. Переменная $item создается при выполнении цикла и так как ее никто не удаляет, то она остается доступной. Но писать так не стоит.

Строчка $item['field']; получает значение элемента и ничего с ним не делает, просто отбрасывает его. Она вообще никаких эффектов не делает, ее можно убрать и ничего не изменится.

>>1950784

Тебе надо перенести foreach в HTML-файл.
Аноним 25/02/21 Чтв 18:14:14 19515751112
>>1951552
>Данные при выводе в HTML надо экранировать для предотвращения XSS.

Удаление делается не GET-, а POST-запросом (отправка формы кнопкой, например). GET запрос не должен менять состояние сервера и что-то на нем удалять.
экранирование я забыл,тут ты прав
гет я взял,чтобы не возиться с кнопкой,а так гет не безопасен
>Тебе надо перенести foreach в HTML-файл.
сделал ранее на замечание анона выше
Аноним 25/02/21 Чтв 18:16:46 19515831113
>>1950710

Можно так, но вместо этого:

[^a-zA-Z0-9]

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

>>1950633

Это неправильный код. Если тебе хочется обратиться к переменной по имени, составленному из другой переменной (${"var".$i}), то тебе нужна не переменная, а массив: $var[$i].

>>1950555

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


Аноним 25/02/21 Чтв 18:24:11 19515901114
>>1950412

Можно сделать массив с описанием сотрудников, такого вида:

$people = [
// имя, должность, ранг, босс, количество
["Иван Петров", "Менеджер", 1, false ,5],
["Иван Петров", "Менеджер", 2, false , 3],
....
]

Далее на основе массива создать объекты-сотрудники.

>>1950510

> каждый сервис уникален для отдельного контроллера?

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

А контроллеры создаются по страницам/разделам сайта. Их количество и названия не обязаны совпадать с сервисами.

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

> и не брать в расчет пимпл, который есть сревис локатор -
pimple это DI container. Не надо его использовать как Service Locator.

Аноним 25/02/21 Чтв 18:37:19 19516031115
>>1949925

А тебе не подойдет архитектура MVC, описанная тут: https://github.com/codedokode/pasta/blob/master/arch/mvc.md ?

>>1949089

У него там есть тонкий момент. По умолчанию квантификаторы вроде плюса жадные - они стремятся захватить максимально возможное число символов (но чтобы при этом регулярка совпадала со строкой). А там в решении используется нежадный квантификатор +?, который стремится захватить минимальное число символов. Потому выражение .+? не совпадет с буквой a. За одним исключением: так как даже нежадный плюс требует минимум одно совпадение, то в строке "aaa" совпадение все же будет.

Получается, у автора ошибка: https://ideone.com/Ai5K7G

Аноним 25/02/21 Чтв 18:38:26 19516061116
l1-bonus-surviv[...].jpeg 364Кб, 800x908
800x908
Дайте подсказку на решение
Аноним 25/02/21 Чтв 18:40:55 19516081117
>>1948493

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

<?php

function alert(...) {
?>
тут HTML-код
<?php
}

Корявенько, потому лучше использовать шаблонизатор с макросами.
Аноним 25/02/21 Чтв 18:43:08 19516111118
>>1948879

А в адресной строке браузера идет что-то вроде http://localhost:8000/file.php или file:///c:/file.php ? Если второе, то ты не запускаешь PHP код, а просто открыл исходник браузером. Адрес должен начинаться с http. Файл должен иметь расширение .php
Аноним 25/02/21 Чтв 18:44:41 19516141119
>>1951606

Можно создать массив с номерами от 1 до N. Затем проходиться по нему и удалять из него элементы, пока не останется нужное количество.
Аноним 25/02/21 Чтв 18:46:48 19516161120
почему,если извл только отдну запись из бд,то fetchAll and fetch ведут себя по разному?и приводят к ошибкам
Аноним 25/02/21 Чтв 19:17:09 19516401121
<?php
$x=1;
while($x<=49){
echo "<div>".$x."</div>";
$x++;
}
?>
как мне сделать 5 блоков в ширину и 6блоков в высоту?
или это не рабаотает так?
Аноним 25/02/21 Чтв 19:41:48 19516671122
>>1951421
Все по-разному делают, на самом деле. Можно сделать на Вордпрессе и Элементоре и будет тормозное говно, но быстро и дёшево. А можно взять чистый фреймворк и пилить на нём целый месяц - будет ответ за 10-100 мс от сервера, везде асинхронность и сопли девственниц, и цена как за хату в хрущёвке.
Аноним 25/02/21 Чтв 19:54:08 19516731123
>>1951640
>как мне сделать 5 блоков в ширину и 6блоков в высоту?
Я бы сделал просто - вывалил 30 блоков в хтмл, а потом через стили\жс ограничил ширину в 5 блоков, и всё бы само встало как надо.
Но тебе лучше делать через 2 вложенных цикла for.
Аноним 25/02/21 Чтв 19:55:09 19516751124
>>1951673
я забил уже,читаю grid
я на верном пути?
Аноним 25/02/21 Чтв 20:00:01 19516791125
>>1951675
Слишком быстро забил.
Аноним 25/02/21 Чтв 20:27:12 19516921126
>>1951673
я не знаю жс.
а на гриде я уже сделал
Аноним 25/02/21 Чтв 20:33:32 19516971127
такой вопрос
вот я что то ввел и я хочу чтобы в колонке рядом за пару секунд в появилось то что я написал.
это решается на жс,так?
Аноним 25/02/21 Чтв 21:02:57 19517121128
>>1951614
Тоже так думал, но как реализовать хз
Аноним 25/02/21 Чтв 22:39:26 19517861129
>>1951590
>pimple это DI container. Не надо его использовать как Service Locator.

На сколько помню пимпл в принципе в контроллере слим передается как свойство this. В себе он в замыкании которое мы добавляем в контейнер вызывает класс ( не помню как он разрешает зависимости этого класса ) , создает экземпляр класса и сохраняет его.

А вообще всей этой петрушки с инверсией управления и низкой связностью не до конца и не понял пока что.

Аноним 25/02/21 Чтв 23:51:10 19518161130
>>1951786
В контроллеры - пофиг, можно и целиком передавать. А вот внутренние зависимости лучше руками конфигурить.
Аноним 26/02/21 Птн 03:23:51 19519071131
16122877404970.png 480Кб, 772x798
772x798
>>1951606
>>1951614
>>1951712
https://ideone.com/lDV275
Почти три часа решал, а все из-за того, что при присвоении переменной массива временной переменной, ключ(индекс) последний оставался тем же значением, что и до удаления элемента. Поэтому иф во вложенном цикле никогда не работал и из-за некста индекс улетал за пределы массива. Поэтому ласт ветвление я добавил в самом конце. Хз, мб из-за того шо рубит так плохо думалось, но почему-то никак не мог найти эту деталь.
Сори за говнокод посоны.
Аноним 26/02/21 Птн 03:29:33 19519081132
>>1951907
как я понял, можно и без временной переменной сделать с помощью array_key_last, но похоже не везде работает эта функция
Аноним 26/02/21 Птн 09:39:11 19519631133
Screenshot.png 27Кб, 832x378
832x378
Как сделать так чтоб echo последней строки выводило сумму сложения значений из двух массивов в объектах? А то оно уравнение выводит как есть.

echo "Среднее (({$procurementDepartment->countAll()[0]} + {$sellDepartment->countAll()[0]} + {$adDepartment->countAll()[0]} + {$logisticDepartment->countAll()[0]}) / 4)";
Аноним 26/02/21 Птн 11:38:18 19520241134
>>1951963
Помогите, пожалуйста.
Аноним 26/02/21 Птн 11:39:15 19520251135
>>1951963
>из двух массивов
Вернее 4, там 4 объекта с 1 массивом.
Аноним 26/02/21 Птн 11:57:53 19520391136
>>1951963

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

Внутри строки в кавычках нельзя писать произвольные выражения и суммировать.
Аноним 26/02/21 Птн 15:02:29 19523241137
Как сделать просмотр своих ответов и ошибок в задаче на тестхаб после прохождения теста вне рамок текущей сессии? Дело в том, что в актуальном тесте могут же удалить некоторые вопросы, добавить новые или поменять их порядок. У меня есть табличка test_results, где записан просто общий балл за пройденный тест. Я использую постгерс, может мне json-колонку answers и туда вообще все добавить - и тексты вопросов, и ответы пользователя?
Аноним 26/02/21 Птн 15:11:51 19523331138
>>1952324
>табличка test_results, где записан просто общий балл за пройденный тест
Очевидно, что такой вариант не подходит для
>просмотр своих ответов и ошибок в задаче

Стоит хранить данные по ответам на тесты в более первозданном виде: юзер, на какой вопрос, как ответил, правильно/не правильно, и уже на основе этих данных получать данные об ошибках
Аноним 26/02/21 Птн 17:51:50 19524841139
Курс Дмитрия Полоса по Вордпрессу - годнота или хуета ебаная?
мимо хочу стать верстаком под цмс вордпресс
Аноним 26/02/21 Птн 19:50:16 19526601140
Пилю сейчас сортировку для таблицы из задачи про список студентов. Допустим, мы кликнули на заголовок какого-то столбца -> у нас по нему отсортировались данные (т.е. кликнули мы на него, произошла сортировка asc, соответственно линк изменился на desc). И такой вопрос, линк сортировки на противоположную должен меняться только для текущего (по которому кликнули) столбца или для всех остальных в том числе ?
Аноним 26/02/21 Птн 20:15:31 19526841141
>>1952660
Только для текущего, конечно. Делать кнопки, которые сами по себе меняют поведение — плохая идея, имхо.

Аноним 26/02/21 Птн 20:28:33 19526991142
>>1952684
Спасибо, Анон. Так и сделал изначально, потом решил чекнуть, так или не так. Погуглил, нашел примеры, так там у типов при клике на какой-либо столбец (н-р. asc сортировка) линк на desc меняется у всех, а не только у того, по которому кликнули. Вот и решил уточнить.
Аноним 26/02/21 Птн 20:47:10 19527091143
>>1952699
>нашел примеры, так там у типов при клике на какой-либо столбец (н-р. asc сортировка) линк на desc меняется у всех, а не только у того, по которому кликнули
Похоже на баг
Аноним 26/02/21 Птн 21:07:47 19527191144
>>1952333
>Стоит хранить данные по ответам на тесты в более первозданном виде: юзер, на какой вопрос, как ответил, правильно/не правильно, и уже на основе этих данных получать данные об ошибках
Так и думал делать, но что если автор теста изменит вопрос или удалит его, поменяет правильный ответ?
Аноним 26/02/21 Птн 21:23:27 19527301145
гребаные блоки,как мне пичет от позиционирования!
Аноним 27/02/21 Суб 00:46:35 19528171146
>>1952719
Создавай новый, а старый помечай как измененный или удаленный.
Аноним 27/02/21 Суб 01:40:26 19528311147
Тред тонет.
У курсе?
Аноним 27/02/21 Суб 12:29:32 19529621148
button.jpg 17Кб, 625x114
625x114
помогите сделать кнопу для скрипта,который будет выводить подробные сведения о записи
Аноним 27/02/21 Суб 13:23:31 19529911149
>>1952817
А не замусорит ли это базу, если на каждое редактирование запятой в вопросе или ответе, создавать еще одну запись?
Аноним 27/02/21 Суб 14:04:47 19530311150
>>1952991
Тебе пары килобайт жалко?
Аноним 27/02/21 Суб 15:33:37 19531181151
батон.jpg 36Кб, 709x249
709x249
короче с кнопкой спустя кучи времени получилось.
но вот в чем прикол-если посмотреть исходник,там видны значения id,как если бы делал через get.
это же не безопасно?
Аноним 28/02/21 Вск 20:50:10 19540421152
Господи, какой кусок говна мой код. Что php, что js на клиенте.
Смотрю и плачу блядь.
Аноним 28/02/21 Вск 22:04:28 19541051153
>>1954042
Поздравляю - у тебя прогресс.
Аноним 01/03/21 Пнд 01:30:21 19542691154
16042061732130.jpg 103Кб, 500x500
500x500
Сделал задание "Опечаточники" на регулярки.
Обводит первую букву в квадратные скобки — https://ideone.com/wz2Aus

Заменяет английские буквы на русские — https://ideone.com/nplOGz

Не до конца сделал, как я понял. Но я не понял, как сделать так, чтобы код сумел понять, что это именно русское/английское слово. Потому что, например, регулярка подходящая под английское слово так же подойдет и под русское, а для русских слов надо писать отдельную программу, как и для английских. Получается, что регулярка найдет и в программе для изменения русских букв на английские английское слово, и в программе для изменения английских на русские. В итоге получится каша. Как сделать так, чтобы определить, что это именно русское слово, а не английское, и наоборот? Возможно, до меня что-то очень простое не доходит, а я и не вижу. Сори за говнокод.
Аноним 01/03/21 Пнд 07:37:37 19543221155
>>1954269
>Как сделать так, чтобы определить, что это именно русское слово, а не английское, и наоборот?
Можно пройтись пройтись слову, если в нем английских букв больше (или, например, есть буква, характерная только для английского, типа Q J W V F и подобные), то значит это инглиш.
Аноним 01/03/21 Пнд 12:02:52 19544541156
Аноним 01/03/21 Пнд 14:44:15 19546501157
>>1954322
Точняк. Второй вариант больше подходит. В первом же случае, слово, например, "соус" может целиком состоять из английских букв, но это же русское слово. Хотя и второй вариант не поможет с такими словами. Но все-таки это уже что-то, ведь и правда, в русском слове не будет таких букв. Спасибо.
Аноним 01/03/21 Пнд 15:38:39 19546941158
Сап, слонолюбы. Сразу говорю, что я свежее мясо, а по сему возможны глупые вопросы, так что если у вас на них аллергия, то не читайте дальше.

- Почему у пыхи самое няшное коммунити ( сужу по сосачу ). В других тредах все обкидывают друг друга говном на любой почве, аж глаз дергается.
- Почему некоторые рофлят над пыхой? Если язык спустя столько времени популярен и активно используется, разве это не говорит о том, что он по крайней мере хорош?
- Как я понимаю пыха - это easy to learn hard to master? Для меня при подобном занятии важно созерцание того, что я наклепал, хочется видеть какие-то результаты сразу, пусть и хуевые. В пыхе это возможно? Ну как бэ хочеца через какое-то время сделать свое поделие, кривое, косое, но я сделаль, а не дрочить теорию овер9000 лет, дабы увидеть первый рабочий проектик.

Заранеее спасибо за то, что прочитал мою простыню. <3
Аноним 01/03/21 Пнд 15:41:38 19546961159
>>1954694
> хочеца через какое-то время сделать свое поделие, кривое, косое, но я сделаль
Смотря что ты хочешь сделать. К ЯП это отношения не имеет.
Аноним 01/03/21 Пнд 15:50:55 19547081160
>>1954696
>Смотря что ты хочешь сделать. К ЯП это отношения не имеет.
Что угодно юзабельное и в теории нужное другим людям
Аноним 01/03/21 Пнд 16:06:11 19547241161
>>1954694
комунити в треде хорошее из-за ОПа, он приходит и отвечает на вопросы, чекает код и поправляет, где надо, хочется сказать ему спасибо
Аноним 01/03/21 Пнд 16:07:17 19547271162
>>1954694
> няшное коммунити
Не няшное,а такое же
Аноним 01/03/21 Пнд 16:07:54 19547301163
>>1954694
>- Почему у пыхи самое няшное коммунити ( сужу по сосачу ). В других тредах все обкидывают друг друга говном на любой почве, аж глаз дергается.
Это ты не был в телеграм чатах по пыхе. Вот где друг друга хуями обкладывают. Причем делают это 30+ васяны

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

>- Как я понимаю пыха - это easy to learn hard to master?
easy to learn относительно других бекенд языков
hard to master больше про архитектуру и ифраструктуру

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

>Ну как бэ хочеца через какое-то время сделать свое поделие, кривое, косое, но я сделаль, а не дрочить теорию овер9000 лет, дабы увидеть первый рабочий проектик.
С этим проблем нет. Пыха в целом про хуяк-хуяк-в-продакшен
Аноним 01/03/21 Пнд 16:23:22 19547521164
https://ideone.com/FLycbZ — каждое предложение с заглавной буквы.

Не понимаю, как работает строка
$new_string .= ($key & 1) == 0?
mb_ucfirst(strtolower(trim($sentence))) :
$sentence.' ';

Как понять $key & 1? То есть побитовый оператор. Я посмотрел, там же получается нумерованный массив из элементов, которые являются предложениями. Но элемент с индексом 1 получает $sentence.' '; так ведь не должно работать, предложение с индексом 1 не получит заглавную букву. Но все работает, все предложения в тексте становятся с заглавной буквы. Не ПоНемАю!
Аноним 01/03/21 Пнд 16:30:20 19547621165
>>1954694
>у пыхи самое няшное коммунити
Зависит от платформы - у Битриксоидов вполне себе обычное, как и у ВП-разрабов. Но в среднем на ПХП оно просто более профессиональное и уравновешенное - сам язык уже довольно зрелый и на нём пишет много бывших говнокодеров, а ныне уважаемых синьоров с многолетним опытом. Хотя тож всякое бывает.

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

>easy to learn hard to master?
Это любой современный ЯП вроде пхп, жс, пистона и тд.

>Для меня при подобном занятии важно созерцание того, что я наклепал
Бекенд про данные, а не созерцание. Хочешь сразу видеть результат - иди на фронтенд, а на беке принято передёргивать на структуры, архитектуру и абстракции.
Аноним 01/03/21 Пнд 16:35:57 19547691166
>>1954752
>Как понять $key & 1?
Возможно это такая проверка на наличие. Вообще это порядочный говнокод и такие сокращения пишут только идиоты.

>mb_ucfirst(strtolower(trim($sentence))) :
Завернул аж в 3 функции, в одну строку - чтоб окончательно всех запутать. Говнокодер детектед.
Аноним 01/03/21 Пнд 16:56:28 19547831167
>>1954769
> Завернул аж в 3 функции, в одну строку
А как нужно?
Аноним 01/03/21 Пнд 17:04:37 19547901168
>>1954783
Надо не пытаться всунуть максимум функционала в одну строку, а писать понятно. Он же сам охуеет через месяц это читать и скажет >>1954042
Или хотя бы расставлять комментарии для такой каши.
Аноним 01/03/21 Пнд 17:09:51 19547951169
1614607788433.png 37Кб, 762x569
762x569
>>1954752
($X & $Z) возвращает те биты, которые включены (равны 1) одновременно у обоих переменных. Если общих битов нету, то возвращается 0.

1 в двоичном виде это 0001. То есть ($key & 1) возвращает 1, если у $key первый бит включен, или 0, если выключен. Примеры:
0 — 0000 | 0 & 1 = 0
1 — 0001 | 1 & 1 = 1
2 — 0010 | 2 & 1 = 0
3 — 0011 | 3 & 1 = 1
4 — 0100 | 4 & 1 = 0
5 — 0101 | 5 & 1 = 1
...
То есть, для каждого чётного числа, включая 0, возвращается 0, для нечётного — 1.
https://www.w3resource.com/php/operators/bitwise-operators.php
Аноним 01/03/21 Пнд 17:10:28 19547971170
image.png 85Кб, 1179x401
1179x401
Аноним 01/03/21 Пнд 17:11:43 19548001171
>>1954797
тогда я синьор лол-пишу максимально топорно
Аноним 01/03/21 Пнд 17:18:14 19548101172
>>1954800
А надо писать максимально очевидно. В идеале чтобы твой код даже бабасрака поняла.
Аноним 01/03/21 Пнд 17:19:06 19548141173
>>1954795
ну я понял, но не понял только, как он делает так, что каждое предложение с заглавной начинается, ведь по такому принципу не каждое предложение будет обрабатываться mb_ucfirst
Аноним 01/03/21 Пнд 17:27:39 19548251174
>>1954795
>То есть, для каждого чётного числа, включая 0, возвращается 0, для нечётного — 1.
>1 в двоичном виде это 0001. То есть ($key & 1) возвращает 1, если у $key первый бит включен, или 0, если выключен. >Примеры:
>0 — 0000 | 0 & 1 = 0
>1 — 0001 | 1 & 1 = 1
>2 — 0010 | 2 & 1 = 0
>3 — 0011 | 3 & 1 = 1
>4 — 0100 | 4 & 1 = 0
>5 — 0101 | 5 & 1 = 1
А нужно-то было всего лишь пройти циклом for по всем $sentences, проверяя кратность счётчика двойке в виде if($i % 2 == 0). Куда вы в биты-байты поехали?
Аноним 01/03/21 Пнд 17:27:53 19548261175
1614608870672.png 14Кб, 688x195
688x195
>>1954814
Функция до этого разбивает предложение так, что в нечётных ключах оказываются точки, а в чётных предложения.
Аноним 01/03/21 Пнд 17:29:03 19548291176
>>1954825
Хз, мб так быстрее получается? Вместо деления просто проверяется первый бит. Ну или тот чел пришёл из крестов, и там такие штуки часто используются.
Аноним 01/03/21 Пнд 17:30:37 19548311177
>>1954829
>так быстрее получается
Думаешь он там гугл пишет?
Аноним 01/03/21 Пнд 17:39:15 19548361178
>>1954826
ААААААА, теперь понял, спасибо. Час сидел и пялился в код, не мог увидеть этого. Это из-за PREG_SPLIT_DELIM_CAPTURE, да?
Аноним 01/03/21 Пнд 17:40:48 19548381179
Аноним 01/03/21 Пнд 17:41:36 19548391180
Аноним 01/03/21 Пнд 17:44:03 19548401181
>>1954838
Без ООП может выйти такая лапша, что в голове не уложится
Аноним 01/03/21 Пнд 17:44:10 19548411182
>>1954838
ООП наоборот упрощает. С бабой сракой я образно выразился.
Джун синьорский код легко прочитает, а вот джунский код зачастую без бутылки не разберёшь.
Аноним 01/03/21 Пнд 17:45:02 19548421183
>>1954838
Если ООП не можешь, то рано тебе про качество кода думать - сперва базу выучи.
Аноним 01/03/21 Пнд 17:46:46 19548431184
>>1954842
седня попробую сделать к-л круд на ООП
Аноним 01/03/21 Пнд 17:52:04 19548471185
>>1954790
В чем охуевание? Три встроенные функции прекрасно читаются. Комментарий да, не помешал бы, но тут и по самим функциям можно понять что происходит, комментарии стоит писать когда там какие-то нетривиальные вещи делаются.

>>1954797
Твой пик несет нулевую полезную нагрузку, пример можно? Вот перепиши эту конкретную строку так чтобы она из джунской стала сеньорской.
Аноним 01/03/21 Пнд 18:05:29 19548551186
>>1954724
Скажем спасибо ОПу же! Я тоже подумал, что он няшный. Хотя здесь особо не бываю.

>>1954727
Может быть, дес. Но мне показалось няшным.

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

>Работа на пыхе есть,
Был удивлен тому, что даже в моей мухосране нужен джун на пыху.

>Да, как и в любом интерпретируемом языке.
Спасибо, дес. Учту.

>easy to learn относительно других бекенд языков
Помимо жабы что-то активно используется? А жаба разве сильно сложнее?

>С этим проблем нет. Пыха в целом про хуяк-хуяк-в-продакшен
Слава пыхобожеству.

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

А правда. что большинство пыхеров начинали с параш вроде битрикса и вордпресса?

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

Но такой стереотип же и может в негативную сторону работать, привлекая Васянов.

>Это любой современный ЯП вроде пхп, жс, пистона и тд.
Учту. Спасибо, дес.

>Бекенд про данные, а не созерцание. На беке принято передёргивать на структуры, архитектуру и абстракции.

И все же я попробую, вдруг зайдет же.

>иди на фронт

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


Аноним 01/03/21 Пнд 18:09:16 19548591187
Господа, слонолюбы. У меня к вам нубовопрос.

Почему при $anonDice1 && $anonDice2 = mt_rand(1, 6) комплятор отправляет меня кушать хуйцы, а при

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


Всё заебись?
Аноним 01/03/21 Пнд 18:15:33 19548621188
>>1954855
>Видел только один чат по какой-то конференции пыхеров, довольно няшно общались.
Конфачеры как раз норм, т.к. ирл общаются, им нужно лицо держать. Есть пара других чатов на пару тысяч тел. Вот там треш и угар.

>Помимо жабы что-то активно используется? А жаба разве сильно сложнее?
Что угодно тащят на бек: пхп, питон, руби, нода жс, жава, шарп, скала, го
За сложность джавы не скажу

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

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

>иди на фронт
>Туда каждый первый вкатывальщик вкатывается, это меня отпугивает.
Потому что там достаточно простой вкат и высокий спрос на спецов, т.к. фронт у всех один - жс (в основном реакт)
Аноним 01/03/21 Пнд 18:48:08 19548831189
внешний ключ должен быть связан только с первичным ключом?
Аноним 01/03/21 Пнд 18:53:50 19548871190
>>1954847
>перепиши эту конкретную строку так чтобы она из джунской стала сеньорской
Я это уже сделал в общих чертах >>1954825
Если тебе прям подай полноценный рефракторинг, то жирно будет - сам думай.
Аноним 01/03/21 Пнд 19:12:09 19548981191
>>1954855
>А правда. что большинство пыхеров начинали с параш вроде битрикса и вордпресса?
Не - я сразу на фреймворки полез.
Имел дело с вордпрессом и не понравилось - после фреймворков и нормальных архитектур отдаёт протухшими помоями.
Вместо ВП использую October.

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

>Туда каждый первый вкатывальщик вкатывается, это меня отпугивает
Значит запрос есть, наверное.
Аноним 01/03/21 Пнд 19:35:23 19549191192
Хранить массив в БД изврат?
Аноним 01/03/21 Пнд 19:39:13 19549221193
>>1954919
текстом что-ли ? да , и зачем если есть json в БД
Аноним 01/03/21 Пнд 19:42:06 19549271194
>>1954922
я вообще выше спрашивал про последовательность чисел,но не слитных.чтобы потом была сверка.
первая мысль была про массив,но почитав-пишут что это изврат и надо либо жсон или сериализация
так жсон?
Аноним 01/03/21 Пнд 20:08:03 19549481195
>>1954855
>А жаба разве сильно сложнее?
Сам язык нет, почти тот же пхп, только коллекции и дженерики нужно подучить. А вот все остальное, это лютый трешпиздец, jdbc hibernate, spring и прочее, в это когда окунаешься вообще нихуя не понятно, простые вещи сложными путями делаются, если готов к трудностям первое время, то можно попробовать
Аноним 01/03/21 Пнд 20:17:57 19549581196
>>1954762
>у Битриксоидов вполне себе обычное,
Пробовал как-то спросить одну хуйню по каталогу и корзине, мне сказали что я долбоеб и не умею это говно в фантики от конфет заворачивать и продавать по цене шоколада. Короче наколхозил что-то в библиотеке BX для фронта, уже не помню что и оно вроде как заработало и запушил к ебеням. Сейчас к этому говну не притрагиваюсь, пусть другие развлекаются.
Аноним 01/03/21 Пнд 21:03:17 19549841197
Снимок экрана ([...].png 134Кб, 1366x768
1366x768
$ticketnumber=mt_rand(1000000000000, 9900000000000);
почему он генерирует один и тот же набор при новой записи?
Аноним 01/03/21 Пнд 21:08:01 19549911198
Снимок экрана 2[...].jpg 62Кб, 1277x426
1277x426
Аноним 01/03/21 Пнд 22:20:30 19550631199
>>1954991
может мне сделать инкремент с 1000000000000?
Аноним 01/03/21 Пнд 22:55:46 19550821200
>>1954991
А ничего, что он генерит максимальное значение 32 разрядного инта (со знаком)?
Аноним 01/03/21 Пнд 22:57:17 19550851201
>>1954887
> полноценный рефракторинг жирно будет
Жирно сделать рефакторинг одной строки? Ну ок.
Аноним 01/03/21 Пнд 23:31:06 19551071202
>>1955085
>одной строки
>$new_string .= ($key & 1) == 0?
mb_ucfirst(strtolower(trim($sentence))) :
$sentence.' ';
Это не строка, а говно. Пиши на нормальном ЯВУ, а не на байтоёбской хуйне. Такое код-ревью нигде не пройдёт.
Свободен.
Аноним 02/03/21 Втр 01:20:34 19551631203
>>1954984
Зачем генерить номер тикета пыхой? Используй автоинкремент в базе, если нужен тикет определенной длины просто добей нулями в начале.
Аноним 02/03/21 Втр 09:04:23 19552051204
>>1955107
Если убрать байтоёбство, то получится
$new_string .= ($key % 2 == 0)
    ? mb_ucfirst(strtolower(trim($sentence)))
    : $sentence.'';

То есть, строка с тремя функциями никуда не делась. А именно к ней у тебя и были претензии
Аноним 02/03/21 Втр 09:12:33 19552091205
>>1955082
я не в курсе.
вы тут просветленные
Аноним 02/03/21 Втр 11:42:08 19552841206
>>1954984
С pdo не работал напрямую, такой код разве не даст SQL инъекцию? Или там в pdo все фильтруется?
Аноним 02/03/21 Втр 12:11:36 19553061207
>>1954984
я забыл добавить фильтр для чисел и только 7 значений
Аноним 02/03/21 Втр 12:15:39 19553111208
Аноны, есть таблица с сортировкой и пагинация. Как правильно составить sql запрос, чтобы происходила сортировка только для текущих выводимых записей, т.е. если у нас LIMIT 5, 5 то сортировка должна работать только к этим записям, а не ко всем
Накидал что-то такое, хз правильно ли это (но вроде работает), но может можно как-то лучше сделать
SELECT * FROM (
SELECT columns FROM table ORDER BY column DESC LIMIT 5, 5
) as s ORDER BY columnt
Аноним 02/03/21 Втр 14:29:09 19554271209
Есть ли смысл в 2021 изучать php или лучше Питон или лучше Node.js?
В моей мухосрани есть только вакансии по PHP, хотя в двух часах езды есть миллионник с вакансиями и по Питону и по JS. Если основной критерий простота трудоустройства, то лучше PHP, я правильно понимаю? Или начать изучать новомодные JS или Питон, с расчетом на большую стабильность и востребованность в будущем?
Аноним 02/03/21 Втр 14:32:22 19554291210
>>1955427
Алсо насколько будет глупо и сложно начать например с PHP, а потом перейти например на JS или Питон? Какова вероятность что PHP устареет и будет заменен ими?
Аноним 02/03/21 Втр 14:33:33 19554301211
>>1955429
>JS или Питон? Какова вероятность что PHP устареет и будет заменен ими?
Это пророчили php еще лет 10 назад. Как видишь, сейчас php так же прочно стоит на ногах и продолжает развиваться.
Аноним 02/03/21 Втр 14:36:42 19554381212
>>1955430
Но если УЖЕ 10 ЛЕТ НАЗАД ему это пророчили, то что если вот вот еще чуть чуть и всё пиздец?
Вот эксперты программирования на ютюбе говорят, что в PHP 8 как-то все новомодные фичи криво прикрутили и вообще обосрались и это была отчаянная попытка что-то стапасти, и она провалилась.
Аноним 02/03/21 Втр 14:55:03 19554511213
>>1955438
>Вот эксперты программирования на ютюбе
Эксперты программирования работают в топ проектах, фичи релизят, а не на ютубе вещают

Тебя никто идти в пхп не заставляет. Веришь в мантры про скорую смерть пыхи - иди учи что-нить новомодное. Не мешай людям вкатываться и работать
Аноним 02/03/21 Втр 15:01:54 19554631214
>>1955427
Яб всё изучал. Начни с похапе, как более-менее освоишься - окунись в путон и ноду. Это все актуальные технологии, их знание лишним не будет.

> начать изучать новомодные JS
Опять же, это все веб, без JS ты в любом случае далеко не уедешь, так что нужно будет так же изучать. Как и HTML+CSS, хотябы базово.
Аноним 02/03/21 Втр 15:05:11 19554681215
>>1955438
Пророчить могут что угодно, но задачи есть и их нужно решать сейчас. И не всегда новомодные технологии подходят для их решения. Ты удивишься, но множество сайтов до сих пор создаются на технологиях десятилетней давности, а то и старше. И все вполне себе работает.
Аноним 02/03/21 Втр 15:54:52 19554981216
>>1955107
какое код ревью еще на сиэмэсках тебе? скажешь тоже, главное чтоб работало, красиво рассказать, завернуть и продать, всё
Аноним 02/03/21 Втр 15:58:32 19554991217
>>1955427
>>1955429
на ноде.жс берут с опытом, вакансий без опыта почти нет, на путхоне во множестве вакансий для новичков есть требование вышки, в то время как на пхп почти нигде такого требования нет, соответственно, сначала залетаешь на пхп (но html, css, js, jquery, sql все равно надо), через год перекатываешься в пайтон или ноду.жс или в ror/go и тд
Аноним 02/03/21 Втр 16:02:22 19555021218
>>1955499
> на путхоне во множестве вакансий для новичков есть требование вышки
Кто сейчас требует вышку на программерские должности, кроме всяких госконтор?
Аноним 02/03/21 Втр 16:05:44 19555051219
>>1955499
Спасибо анон. Еще заметил такую странную херню, когда работодатель выставляет вакансию "Разрабочик PHP/бекэнд" и далее в требованиях к ней указывает "Знать Node.js, Python и т.д." Это работодатель долбоеб и не понимаешь что пишет или тебе действительно нужно владеть кучей разных взаимоисключающих технологий?
Аноним 02/03/21 Втр 16:16:03 19555091220
>>1955505
Да, зачастую наниматель или HR просто не разбираются в теме и берет описание должности из интернета тупо копипастой. В идеале нужно общаться с человеком который непосредственно занят разработкой. Ну и иногда действительно бывают случаи что нужен человек-оркестр.
Аноним 02/03/21 Втр 16:28:55 19555181221
>>1955509
На пыхе ты по дефолту человек-оркестр блджад
Аноним 02/03/21 Втр 16:44:37 19555261222
>>1955502
Любая галера с айти отделом больше десятка человек. Все из-за наплыва нулевых голддигеров с курсов программирования.
Аноним 02/03/21 Втр 17:30:09 19555691223
>>1955526
В чем проблема проверить человека на собеседовании? ВО для программиста это ничего не определяющий маркер. У нас же нет учебных заведений которые готовят именно программистов.
Аноним 02/03/21 Втр 17:53:45 19555971224
>>1955569
А ты отсобесь каждого из 200 вкатунов, среди которых 190 выпускники говнокурсов
Аноним 02/03/21 Втр 18:41:21 19556421225
>>1955597
Даешь удаленно задание, после выполнения предлагаешь созвониться и поговорить о том как ты его делал. Тот кто делал сам с удовольствием все расскажет. Тот кто нагуглил готовое сразу же сольется.

А 200 чел на вакансию это больше похоже на влажные мечты HR.

Ну, и наконец, как тебе тут поможет твой фильтр в виде ВО? Просто уменьшит количество соискателей? Так ты сам можешь отвечать например каждому пятому, это будет тоже самое.
Аноним 02/03/21 Втр 18:53:03 19556521226
>>1955163
Так почему не работает ГСЧ и как сделать правильно объясните?
Аноним 02/03/21 Втр 19:00:26 19556601227
>>1955642
>Даешь удаленно задание
Тут уже 90% отвалятся. Причем среди них будут как вкатуны, так и норм соискатели

>А 200 чел на вакансию это больше похоже на влажные мечты HR
Всякие петровичи после курсов по верстке лендингов и туду листа на жопаскрипте так и валят. Иначе чем объяснить повальное засильное всяких курсов?

>Ну, и наконец, как тебе тут поможет твой фильтр в виде ВО?
Если вышка близка к програмистской, тот же физмат - таких кандидатов можно смотреть в первую очередь, т.к. они идут в индустрию не просто за длинным рублем
Аноним 02/03/21 Втр 19:15:39 19556761228
>>1955652
Сам генератор должен работать нормально, походу у тебя проблема в другом, при записи используется старое значение.

ps. Ты же в курсе что теоретически существует вероятность что генератор тебе два одинаковых значения выдаст?
Аноним 02/03/21 Втр 19:20:53 19556791229
>>1955660
> Тут уже 90% отвалятся
Лол, а как, по твоему, нужно собеседовать? Телепатически или по звездам?

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

> Если вышка близка к програмистской, тот же физмат - таких кандидатов можно смотреть в первую очередь
Хуйня полная, связь между физматом и программированием это распространенный стереотип. Ладно, если там вакансия на что-то прикладное, но блядь в вебе то это всё зачем?
Аноним 02/03/21 Втр 19:42:37 19556891230
>>1955679
>Лол, а как, по твоему, нужно собеседовать?
Честно, хз. Я бы наверно ничего умнее не придумал и взял бы существующие методы:
для кандидатов без опыта - обязательное тестовое (с докером, тестами, ридми и чтобы одной командой поднималось с тестовой бд)
для джунов (до 2 лет опыта) - ебля теорией на собесе и задачки с литкода + про работу рассказать
для мидлов+ - разговор за опыт и рабочие кейсы

>Хуйня полная, связь между физматом и программированием это распространенный стереотип. Ладно, если там вакансия на что-то прикладное, но блядь в вебе то это всё зачем?
Как минимум наличие желания ковыряться в какой-то сложной технической хуйне. Далеко не у всех это желание есть. Это и отличает разраба от макаки.
Аноним 02/03/21 Втр 20:11:49 19557111231
почему 10млдр не хочет записываться в int(11)?
а 1 млдр может?
Аноним 02/03/21 Втр 20:17:57 19557181232
>>1955711
можете не отвечать,это я не прочитал о максимальном значении лол
Аноним 02/03/21 Втр 20:24:12 19557261233
А если сделать свой интернет-магазин, например, статей. Будет ли это считаться коммерческой разработкой?
Аноним 02/03/21 Втр 20:47:16 19557591234
>>1955726
Если для резюме, то любой проект можно описать как коммерческую разработку, если скзаать, что делал знакомому/на фрилансе
Аноним 02/03/21 Втр 21:05:22 19557711235
Каким образом будет правильно отправить AJAX реквест от имени юзера? Использую ларавел, аутентификацию реализовал с помощью Fortify, если что. Я так подозреваю, что нужно какой-то токен внедрять?
Аноним 02/03/21 Втр 21:18:09 19557771236
>>1955771
Хм, или может вместо токена просто впихивать в реквест айди юзера и его хешированный пароль, вытянутый из базы? Нормально так будет, или нет?
Аноним 02/03/21 Втр 21:51:10 19557931237
>>1955771
>нужно какой-то токен внедрять
Да.
Аноним 02/03/21 Втр 22:23:19 19558281238
>>1955793
Окей, спасибо за ответ. Я так понимаю, этот токен необходимо просто генерировать при регистрации юзера, в джаваскрипт пробрасывать через скрытый input ( или может лучше через мета тег? ), а на бекенде просто находить юзера с таким токеном, верно?
Аноним 02/03/21 Втр 22:57:13 19558511239
Есть в треде битриксобоги? Имеется напрочь ебанутый шаблон со всякими гугл и яндекс метриками прямо в коде. Как в такой ситуации подключить amp?
Нужно выдрочить все скрипты из шаблона в файлы и подключать их?
Аноним 03/03/21 Срд 00:36:52 19558961240
>>1955828
Использовать один токен с самой регистрации несекурно. Если он уплывет, то всё. Генери при каждом логине, добавь им время протухания еще. Заодно почитай про oAuth, сегодня он повсюду.
Аноним 03/03/21 Срд 10:36:33 19560021241
>>1955896
А что за Sanctum и Passport скажешь? Если я планирую в будущем внедрять аутентификацию через сторонние сервисы, то может лучше сразу через Passport это дело проделывать?
Аноним 03/03/21 Срд 13:33:22 19562311242
Привет, хочу вкатиться в php.
Может кто подскажет, с помощью чего изучать этот ЯП?
Самому 25 лет, раньше верстал, с помощью гугла пилил формы обратной связи на php, слайдеры на js, но как таковые языки эти я не знаю, поэтому он будет у меня первым.
И отсюда вытекает следующие вопросы: не поздно ли в 25 вкатываться в пхп, чтобы в 25.5 или 26 пойти джуном и как вообще отразится на мне в будущем, если выберу этот ЯП как первым языком? Где-то читал, что пхп как первый яп - хуёвый тон. В дальшнейшем планирую работать в вебе, поэтому плюсы, джавы всякие отпадают.
Аноним 03/03/21 Срд 13:45:26 19562511243
>>1956231
>джавы всякие отпадают
На джаве тоже бек пишут

>не поздно ли в 25 вкатываться в пхп
Не поздно. Самое время

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

>с помощью чего изучать этот ЯП?
С прочтения шапки треда. Там достаточно материала, чтобы до джуна дойти
Аноним 03/03/21 Срд 15:11:29 19563651244
>>1956231
С PHP гораздо легче вкатиться в вебдев, где помимо самого ЯП нужно разбираться в куче смежных областей (работа сервера, протоколов, БД, желательно фронтенд базово, методологии разработки, mvc, гит, различные пакетные менеджеры, тестирование). Имея эти знания в багаже (не теоретические, а уже практические) ты потом легко перепрыгнешь с PHP на любой другой ЯП.
Аноним 03/03/21 Срд 18:21:55 19566461245
>>1956365
а слышал, что пхп уже опять умирает, 8 версия обратно в болото увела пыху.
допустим, если засяду учить пыху, какую версию учить?
Аноним 03/03/21 Срд 18:24:10 19566501246
если нужно отфильтровать и проверить 10 импутов-это на писать кучу кода на каждый импут?
Аноним 03/03/21 Срд 18:28:34 19566621247
>>1956646
Я тебе по секрету скажу - полным полно проектов которые до сих пор работают на 5 версии и на 7 просто не запустятся. Учить нужно не конкретную версию, а язык в целом. Когда прокачаешься - уже будешь заморачиваться с новомодными фишками свежих версий.
Аноним 03/03/21 Срд 18:32:32 19566691248
>>1956646
>8 версия обратно в болото увела пыху
Какие из изменений увели в болото?
Сейчас пыха взяла курс на более строгую типизацию, атрибуты завезли. Вот вот енумы завезут, заживем.
Аноним 03/03/21 Срд 18:34:54 19566721249
>>1956662
Спасибо за совет.
>>1956669
>Какие из изменений увели в болото?
Не помню точно, я ж пока не шарю. Вроде что-то про JIT сказали и что в пыхе он как-то ваще не оч (Хауди посмотрел, извините, пожалуйста).
Аноним 03/03/21 Срд 19:04:58 19567061250
>>1956672
В джит можно запихнуть папочку вендор, т.к. её содержимое меняется крайне редко. А в остальном да, джит перфоманса не добавил. Но там и без него в 7ке пыху неплохо оптимизировали. И узкое место тут как обычно бд и внешние сервисы, а не рантайм пыхи.
Аноним 03/03/21 Срд 19:29:25 19567271251
>>1956706
Че то щас просмотрел вакансии php-разработчика: джуна, миддла и т.д. везде блять требуедсят js. Причём пишут так: "Обязательно отличные знания PHP/MySQL/HTML/CSS/JS".
Можете сказать, нахуя мне отличные знанич js, если я буду на пыхе писать?
Или хрки на сегодняшний день вообще ебанулись массово?
Аноним 03/03/21 Срд 19:35:20 19567301252
>>1956727
Много вакансий на пыхе предполагают частичный фуллстек. Фронтенд на уровне - сверстать формочку и оживить на ванильном жс. Более сложная херь вроде реакта явно обозначается как фулстек вака.
Сейчас вот тоже немножко жс шатаю в соотношении 80 бека и 20 фронта.
Аноним 03/03/21 Срд 19:49:16 19567381253
>>1956730
да я ни пыху, ни джс не знаю, просто хотел в бэк онли окунуться, т.к. фронт пиздец там. верстаю-то я нормально, флексбокс, бэм всякие понимаю, но короче заебала ебля эта с классами, семантикой и прочей поебистикой.
Хочу через какое-то время просто брать заказы по вп какому-нибудь и хотя бы 40к получать с фриланса. Хз, достижимо это за 4-6 месяцев изучения пыхи или нет
Аноним 03/03/21 Срд 21:30:34 19568031254
https://ideone.com/7pZX1Y — сделал калькулятор по заданию из "Повторим?".

Не совсем так, еще надо докрутить ввод пользователем и проверку на число и все такое. Но меня интересует, в целом должно быть примерно так?
Аноним 03/03/21 Срд 22:23:09 19568371255
Аноны, а как принято проверять права на какие то действия? Типа бест практикс?
Если дело на этапе контроллера - то тут понятно, нет прав - заворачиваем с уведомлением.
А если мне нужно в зависимости от прав какую либо кнопку сделать видимой / или не видимой?

В ларавел есть хелпер который прямо в разметке шаблона вызывается.
У меня слим4 + твиг и я не понял как делать такой хелпер.
Но мне даже скорее интересно как такое сделать без хелперов которые проверяются прямо в коде.
Переменную с логическим значением передавать? Но таких переменных может быть несколько. Можно конечно передать, в массиве что бы не хламить.
Но как то не особо красиво что ли.
Аноним 04/03/21 Чтв 15:02:50 19572241256
Аноны, такая странная трабла - в базе хранится имя отчетсво человека полностью. В виде строки.
Мне нужно сделать из этого инициалы , такое: "Иван Иванович" в "И.И."
Собственно проблем нет никаких. Трабла в том что в браузере если фио полностью отрисовывается - то все норм.
А если созданные мною инициалы отрисовать - почему то черный ромб с вопросом внутри.
Че это за херня?
Аноним 04/03/21 Чтв 15:22:45 19572411257
>>1957224
п.с.
дело прояснилось - короче доступ к символу в строке в которую я из базы достаю, допустим 'Вася', как к массиву в таком виде:
$name = 'Вася';
echo $name[0]
не работает потому что в базе у меня строки хранятся занимая место - два байта на одну букву. Поэтому я букву получить могу только допустим с помощью substr();
А я чет затупил в этом вопросе.
Пхп всегда, если рассматривать строку как массив, на одно значение массива из строки берет не более одного байта?

Аноним 04/03/21 Чтв 15:28:47 19572441258
Аноним 04/03/21 Чтв 15:33:23 19572471259
>>1957241

Ты правильно нашел проблему. $name[0] берет не первый символ, а первый байт символа и потому его использовать нельзя. Надо использовать mb_substr. Подробнее в отдельном уроке https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md
Аноним 04/03/21 Чтв 15:37:21 19572521260
>>1956837

Можно сделать объект ПроверяльщикПрав и передавать в twig его. А там делать вызовы вроде if ($accessChecker->can(AccessChecker::EDIT_ARTICLE)) { ... }.

Можно сделать как в симфони. Там есть twig-хелпер {% if is_granted('ACCESS_EDIT_ARTICLE') %}.

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

if ($security->isGranted(SomeClass::SOME_ACTION, $object))
Аноним 04/03/21 Чтв 15:43:20 19572571261
>>1954984

В мануале по mt_rand упоминается функция mt_getrandmax(). Она возвращает максимальное число, которое можно передавать в mt_rand. Попробуй выполнить код var_dump(mt_getrandmax()); У меня он возвращает 2 миллиарда.

А ты передаешь 1 триллион. От этого mt_rand ломается. Как я понял, он работает только с числами от 0 до 2 млрд. Используй 2 вызова mt_rand, если тебе нужно сгенерировать длинное число.
Аноним 04/03/21 Чтв 15:49:30 19572651262
>>1957257
Это же вроде как в настройках PHP указывается. Я проверял его числа в песочнице - там рандом нормально работает.

6051441335772
6139515971580
1001079545172
4806508211446
1196189095429
2364670928361
9178557967093
7900054432436
3104628173548
4715106407596
Аноним 04/03/21 Чтв 15:50:23 19572701263
>>1955205

Вообще, эта идея полагаться на то, что точки будут всегда в четных или нечетных элементах, выглядит довольно хлипко. Я бы лучше сделал проверку через preg_match('/^[.?!]+$/') - может, это чуть помедленнее, но зато читабельнее.
Аноним 04/03/21 Чтв 16:02:08 19572861264
>>1954859

Потому что в PHP нельзя написать "присвоить a и b случайные значения". Можно присвоить 2 переменным одинаковое значение, написав так:

$a = $b = 1;

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

Чтобы присвоить разные значения, надо писать так:

$a = 1;
$b = 2;

У тебя же выражение выполняется так:

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

Сначала выполняется присваивание $anonDice2 случайного числа (допустим, это 5), это число передается дальше и получается выражение:

$anonDice1 && 5

Это выражение не получится вычислить, так как переменной $anonDice1 не существует. Отсюда ошибка.

То есть интерпретатор PHP не способен понимать произвольные команды, команды должны делаться по жестко заданным правилам. Люди также делают другую ошибку: когда хотят написать условие "a и b равны 1" они пишут

// неправильно
if ($a && $b == 1)

А надо писать "a равно 1 и b равно 1":

// правильно
if ($a == 1 && $b == 1)


Аноним 04/03/21 Чтв 16:08:43 19572971265
>>1954883

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

>>1954919

Зависит от ситуации. Вообще, принципы нормализации требуют атомарности ячеек, то есть в 1 ячейке хранится одно значение, а не список. Но в реальности иногда удобнее сохранить массив. Можно хранить значения через запятую, некоторые СУБД вроде Постгрес поддерживают хранение массивов, и можно туда засунуть JSON.

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

>>1955284

Он подставляет значения не напрямую ("INSERT .. $x"), а через плейсхолдер ("INSERT :x"). Значения автоматически экранируются и заключаются в кавычки и инъекции не будет.
Аноним 04/03/21 Чтв 16:11:28 19573011266
>>1957297
> с уникальными значениями.
ты имеешь ввиду ключ unique key?
Аноним 04/03/21 Чтв 16:16:07 19573111267
>>1955652

Ты передаешь в mt_rand слишком большие числа. Он на такое не рассчитан.

>>1955689

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

>>1955711

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


Аноним 04/03/21 Чтв 16:17:55 19573171268
>>1957311
>Ты передаешь в mt_rand слишком большие числа
я уже понял
я переделал вообще на авто инримент с длиной 10
Аноним 04/03/21 Чтв 16:23:37 19573311269
>>1956650

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

>>1957265

Ты выполни код var_dump(mt_getrandmax()); у себя. Может, в песочнице 64-битная версия PHP, а у тебя например 32-битная или еще какие-то отличия есть.

>>1957301

Я имею в виду, что они должны быть уникальными, и хорошо если это дополняется уникальным ключом.
Аноним 04/03/21 Чтв 16:26:23 19573331270
>>1957331
я как то пробывал ссылаться на логин в осн таблице,не завелось.
только id примари кей
Аноним 04/03/21 Чтв 16:31:28 19573421271
>>1957331
>Если же ты по каким-то странным причинам пишешь формы руками,
таким макаром,вообще можно сильно не замарачиваться.как оно работает
Аноним 04/03/21 Чтв 18:41:36 19574581272
>>1956803

$numArr - плохое название. Тогда уж надо писать $numbers, но там ведь не только числа. Лучше назвать $parts, $tokens.

Плохо, что повторяются эти строки много раз:

unset($numArr[$i + 1]);
unset($numArr[$i - 1]);
$numArr = array_values($numArr);
$i = 0;

Лучше бы без копипасты, например, можно сделать функцию выполнитьОперацию(операция, арг1, арг2) и вызвать её (перенести switch в эту функцию, убрав его из цикла).

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

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

1) с помощью готового алгоритма преобразовать в обратную польскую нотацию и вычислить её
2) распарсить рекурсивным спуском выражение на AST - Abstract Syntax Tree - дерево узлов (узел - это например: узел числа или узел операции, причем узел операции может содержать в аргументах другие узлы). Затем вычислить значение в дереве. Узлы обычно реализуют с использованием ООП.

Оба этих подхода для начинающего довольно сложны (но интересны). Потому в задаче разрешается игнорировать приоритеты операций.
Аноним 04/03/21 Чтв 18:44:09 19574591273
>>1957342

Если хочется именно заморочиться, то можно написать свою библиотеку для форм. Делаем объект, представляющий один элемент формы, делаем такие элементы вкладываемыми друг в друга (чтобы можно было собрать из них форму). Делаем объекты, представляющие ограничения и условия проверки. Очень полезно для саморазвития, хотя и будет сложно поначалу.
Аноним 04/03/21 Чтв 19:54:28 19575081274
валидатор.jpg 83Кб, 783x662
783x662
>>1957459
оцени ущербность валидатора
Аноним 04/03/21 Чтв 20:08:26 19575241275
1614877743528.png 395Кб, 814x343
814x343
Аноним 04/03/21 Чтв 20:09:52 19575251276
Аноним 04/03/21 Чтв 20:11:46 19575281277
>>1957508
У тебя какой-то пиздец с отступами, ты хоть плагин какой-нибудь поставь, который будет автоматом все расставлять, если самому лень

> Недостаточной длины логин или пароль!
Зачем выдавать ошибки на языке Йоды?
Аноним 04/03/21 Чтв 20:22:22 19575431278
Аноним 04/03/21 Чтв 20:36:04 19575551279
>>1957543
PhpStorm. Не забудь купить подписку, все же JetBrains нехило инвестирует в развитие PHP, оплачивая работу Никичу.
мимо-Рома Пронский
Аноним 04/03/21 Чтв 20:41:29 19575581280
а if клепать внутри методов класса норм?
Аноним 04/03/21 Чтв 21:01:33 19575831281
>>1957459
создавать на каждое поле формы класс с методами проверки?
Аноним 04/03/21 Чтв 22:40:07 19577321282
Аноним 05/03/21 Птн 14:11:22 19581001283
>>1957543

Гугление выдает такие плагины для VS Code:

https://marketplace.visualstudio.com/items?itemName=kokororin.vscode-phpfmt
https://marketplace.visualstudio.com/items?itemName=Sophisticode.php-formatter

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

>>1957508

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

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

Также, у тебя в коде есть недостатки:

- неправильно делается экранирование данных. htmlspecialchars надо вызывать при выводе данных в шаблоне, а не там, где ты их вызываешь.
- при ошибке надо показывать форму с введенными в нее данными, а ты это не делаешь и заставляешь человека заново заполнять форму.
- надо использовать mb_strlen, а не strlen. strlen не умеет считать длину текста с русскими буквами.

Могу посоветовать урок про работу с формами: https://github.com/codedokode/pasta/blob/master/forms.md

Аноним 05/03/21 Птн 14:21:49 19581221284
>>1957583

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

$form = new Form;
$form->addField('name', [
new TextLength(20),
new Regexp('/^[a-z]+$/')
]);
...

$form->handleRequest($_POST);
if ($form->isValid()) {
echo "Все верно";
} else {
print_r($form->getErrors());
}

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

Вот, как сделано в Симфони (отсюда: https://symfony.com/doc/current/components/form.html ):

$form = $formFactory->createBuilder()
->add('task', TextType::class, [
'constraints' => new NotBlank(),
])
->add('dueDate', DateType::class, [
'constraints' => [
new NotBlank(),
new Type(\DateTime::class),
]
])
->getForm();

Здесь есть классы, обозначающие тип поля (TextType, DateTYpe) и классы, задающие ограничения (NotBlank, Type).

В Симфони много готовых типов полей с разными опциями, и много классов-ограничений, потому тебе часто хватает их возможностей.
Аноним 05/03/21 Птн 14:27:59 19581321285
Снимок экрана 2[...].jpg 48Кб, 515x572
515x572
>>1958122
а я вчера такое накодил неработающее г-но
Аноним 05/03/21 Птн 14:34:18 19581411286
>>1958100
насчет экранирования согласе
2е я не умею в жс
3е-русский не нужен
Аноним 05/03/21 Птн 14:39:43 19581481287
>>1958132
Зачем в return у функции создавать переменную?
Почему нельзя просто написать return strlen($this->$login);
Аноним 05/03/21 Птн 14:51:36 19581611288
>>1957558

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

>>1955311

Так и надо делать.

Аноним 05/03/21 Птн 15:00:45 19581701289
>>1954269

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

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

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

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

Или так:

- находим слова из смеси алфавитов
- в каждом таком слове определяем язык
- находим посторонние буквы

> https://ideone.com/wz2Aus
Регулярку можно было написать проще, в таком стиле:

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

Такая регулярка захватит все слово, в котором встречаются буквы разных алфавитов.

> https://ideone.com/nplOGz
Замену проще сделать без привлечения регулярок, с помощью массива соответствий и функции strtr().

Аноним 05/03/21 Птн 15:08:48 19581841290
>>1953118

Не вижу никакой опасности. А вот выводить HTML через echo неудобно, лучше использовать шаблон.

>>1952324

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

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


Аноним 05/03/21 Птн 15:12:30 19581881291
>>1958148
это мелоч
логика кода в целом ущербна
Аноним 05/03/21 Птн 15:17:04 19581981292
>>1951907

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

Можно было поступить еще так:

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

>>1951786

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

Аноним 05/03/21 Птн 15:18:19 19581991293
>>1958132
У тебя присвоение вместо сравнения
Ну и методы какие-то бессмысленные. Либо делай более общими, либо удаляй - тупо лишняя абстракция.
Ну и название check ни о чем не говорит, что она делает, какой тип вернет.
Еще косяк: ты создаешь форму, но не передаешь туда логин, хотя внутри методов проверяется логин этой формы, т.е. он у тебя пустой будет.

Крч перепиши это говно. Проще с нуля сделать, чем тут что-то править.
Аноним 05/03/21 Птн 15:23:55 19582031294
>>1951616

Не должны. Различие только в том, что fetch возвращает массив полей, а fetchAll() - массив записей, где каждая запись это массив полей.

Аноним 05/03/21 Птн 15:24:24 19582041295
>>1958199
я сомневаюсь,что смогу это переписать в ООП стиле,тк херово понимаю это вреале,а не на учебных примерах про машины
Аноним 05/03/21 Птн 15:33:13 19582201296
>>1958132

Это не совсем ООП. В ООП объект - это объединение данных (полей вроде $login) c методами (функциями) для работы с ними. Соответственно, в ООП ты не вызываешь вручную check_length, check_empty и не передаешь туда данные, а ты создаешь объект и вызываешь $form->validate() и он сам все проверяет и возвращает все ошибки (при этом validate может конечно вызвать check_empty, но эту функцию надо сделать private, чтобы снаружи ее вызвать было нельзя). Ты же код, который должен быть внутри объекта, пишешь снаружи его.

Если тебе сложно писать ООП код, начни хотя бы с разбиения на функции. Сделай отдельно функцию для чтения данных из $_POST, а отдельно функцию для валидации данных, отдельно функцию записи данных в БД.

Также, вместо strlen надо использовать mb_strlen. Незачем использовать в наши дни кодировку ASCII вместо UTF-8.

И еще, у нас в шапке есть задача про студентов, к ней идет куча полезных советов по архитектуре. Стоит их почитать.
Аноним 05/03/21 Птн 15:38:50 19582381297
>>1958204

А ты не хочешь порешать нашу задачу про ООП? У нас в шапке есть ссылка на учебник, там есть глава про ООП и задача про ООО Вектор. Можешь попробовать ее решить.

Также, есть задача про ООП-Гостиницу тут >>1939079

Есть задача про ООП-скидки: https://www.cyberforum.ru/php-oop/thread1459985.html

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



Аноним 05/03/21 Птн 15:41:15 19582441298
>>1958204

То есть, я предлагаю не делать класс конкретно под твою форму, а сделать более универсальное решение - набор классов, из которых можно собрать любую форму.
Аноним 05/03/21 Птн 15:47:11 19582601299
>>1958220
>Если тебе сложно писать ООП код, начни хотя бы с разбиения на функции. Сделай отдельно функцию для чтения данных из $_POST, а отдельно функцию для валидации данных, отдельно функцию записи данных в БД.
каждая функ на один файл,а потом в главном файле все это подкл через реквер?
Аноним 05/03/21 Птн 15:58:35 19582871300
Аношки, этот тред закончился. Переходите в новый тред >>1958281 (OP)

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

>>1958260

Можно пока что писать в одном файле, если функции небольшие. В отдельные файлы обычно выносится то, что можно подключать из нескольких мест, чтобы не копипастить.
Аноним 07/03/21 Вск 17:44:54 19599611301
>>1917817
>в ларе можно свои классы писать
А это разве делается не через механизм создания собственных сервис-провайдеров и фасадов?
Аноним 08/03/21 Пнд 18:52:36 19612031302
Что лучше mariadb или mysql? Вы сами какую юзаете?
Высрал код Аноним 09/03/21 Втр 20:46:54 19622531303
image.png 75Кб, 1434x924
1434x924
Здраствуйте аноны в общем я хотел написать на laravel с 0 знаниями форму где динамически добавляются новые строки в таблице по нажатии кнопки. Добавление и удаление я сделал, но получилось крайне хуево, можете дать совет. Как обойтись без смешивания js, html, php
Аноним 09/03/21 Втр 21:19:41 19622891304
>>1962253
Прочитай, что такое шаблонизатор blade. Его использует лара. Пишешь в контроллере
return view('index', compact('paginator', 'categoryList'));
и тебе во вью с именем index.blade.php передаются две переменные из контроллера: $paginator и $categoryList. Ну или какие захочешь. А во вью уже вся разметка.

Что касается жабаскрипта, то его пишут в resources/js/xxxxx.js
Подключаешь его в resources/js/app.js и перед выкладкой конпелируешь командой npm run dev (ну или npm run watch, так удобнее). Как это всё работает - читай про auth
Или, если читать не хочешь то земля тебе пухом, выполни предварительно
composer require laravel/ui
php artisan ui:auth
php artisan ui vue --auth
Аноним 03/05/21 Пнд 13:13:56 20174551305
>>1937972
так то нет , хороший мид ми может пилить сносный мид код , по той простой причине что 7 летний опыт похапе внезапно не так и релевантный в том же go пайтон и тд, очевидно что базовые вещи структуры for if навернуть можно быстро , но теже паттеры которые хорошо ложатся на похапе могут быть совершенно не нужны в том же пйтоне
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов