24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

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

 Аноним 04/02/24 Вск 21:09:58 #1 №3034858 
изображение.png
изображение.png
изображение.png
изображение.png
Кто-то уже празднует, а мы изучаем язык PHP (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

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

Предыдущий тред был тут: >>2975215 (OP)

Старые треды тут https://2ch.hk/pr/arch/ (искать по слову php), а также на архиваче и в гугле по словам по словам "клуб изучающих PHP".

С чего начать - основы PHP

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

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

Какой редактор использовать

Простые задачки можно решать в онлайн-песочницах вроде https://onlinephp.io/ , https://paiza.io/en/projects/new?language=php , https://www.programiz.com/php/online-compiler/ , но для программ посложнее лучше установить редактор. Есть (дорогая) IDE PhpStorm, есть бесплатный Netbeans и VSCode, условно-бесплатный Sublime Text. Чтобы в последних получить автодополнение для PHP, нужно установить и настроить PHP language server.

Вот инструкции по установке PHP на компьютер: https://github.com/codedokode/pasta/blob/master/soft/php-install.md
Гайд по командной строке: https://github.com/codedokode/pasta/blob/master/soft/cli.md

Что изучать дальше

Зная лишь основы PHP, сайт ты не сделаешь и работу не найдешь. Обычно от начинающего требуют чуть-чуть больше:

PHP, ООП, основы HTTP, HTML/CSS (основы верстки), JS, SQL, PDO, MVC, git, composer, какой-нибудь фреймворк (Laravel или Symfony), основы автоматического тестирования, основы linux, английский.

Вот неофициальный роадмап (карта того, что можно изучать): https://miro.com/app/board/o9J_lbUUBBQ=/

По многим из этих тем у нас есть уроки или задачки:

- для понимания, что такое веб-сервер, прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- для понимая MVC, работы с БД и формами, реши задачу про студентов, в ней много полезных советов: 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
- почитать про паттерны можно тут https://designpatternsphp.readthedocs.io/ru/latest/ (если ты не изучил ни одного фреймворка, то это будет рановато). Если хочешь увидеть примеры использования паттернов в реальном коде - ковыряй исходники Симфони, например Symfony Forms. Ну и скажем честно, начинающему без опыта, который не видел сложный код, паттерны понять будет сложно.
- для улучшения английского можно читать news.ycombinator.com - там много статей на тему IT.

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

- задачи на HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- хороший учебник по JS: https://learn.javascript.ru/
- задачи на 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/
- задачки на SQL: https://www.sql-ex.ru/ (нужна регистрация), https://sql-academy.org/ru/trainer и немного наших задачек: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что еще почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- https://phptherightway.com/
- Книга: Профессиональное программирование на PHP Джордж Шлосснейгл
- Книга: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- Про Git: https://git-scm.com/book/ru/v2
- Задачи на алгоритмы: https://codeforces.com/problemset

Дополнительно

- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html
- что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- сколько времени надо изучать все это? - все зависит от тебя, в районе 12-24 месяцев
Аноним 04/02/24 Вск 21:11:28 #2 №3034861 
>>3034858 (OP)
первый
Аноним 04/02/24 Вск 21:11:55 #3 №3034862 
Не щупал пыху уже несколько лет, ну как там у вас 8 версия прижилась или плюётесь?
Аноним 04/02/24 Вск 22:08:13 #4 №3034966 
>>3034862
в проде 8.0 на всех проектах, подводных нет как и дженериков
Аноним 04/02/24 Вск 22:26:28 #5 №3035015 
Screenshot 2024-02-04 222248.png
Screenshot 2024-02-04 222410.png
>>3034966
>в проде 8.0 на всех проектах
На всех 18.5% проектах

>подводных нет
Будут
Аноним 04/02/24 Вск 22:52:02 #6 №3035076 
Спасибо за перекат, как раз зашёл попросить
Аноним 04/02/24 Вск 23:38:34 #7 №3035163 
>>3035076
Не за что)

>>3035015
Какой любопытный сюрприз, который выстрелит в ногу из глубины зависимостей
Аноним 05/02/24 Пнд 00:15:08 #8 №3035219 
>>3035015
>>3035163
Почему в PHP нельзя сделать символ доллара опциональным?
Аноним 05/02/24 Пнд 00:16:06 #9 №3035220 
изображение.png
Попалась картинка в ньюфаг треде. Работал с полгодика на старте карьеры в студии, звали на ларавель, а в итоге занимался проституцией битриксом. Всегда поигрывал с архитектуры этих инфоблоков, это сути как таблица в БД, но через жопу, какой-то сверхразум додумался до этой хуеты в своё время.
На сколько я помню там 4 таблицы в первой хранятся данные об инфоблоке (типа информации о таблице), в другом таблица с элементами (собственно записи в таблице), в третьей проперти (тип столбцы в таблице их название, тип и id инфоблока) и четвертая таблица с теми самыми значениями проперти где есть id инфоблока и id проперти из третьей таблицы. Вместо того чтобы создать таблицу с нужными столбцами делается эта хуйня, ты можешь добавить сотню инфоблоков, но все данные будут в 4 таблицах. При 100 000 записей начинает всё адово тормозить.

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

Сука, как и почему до этого додумались? Почему до сих пор не переделали? Где экоактивисты, это столько электроэнергии улетает вникуда?
Аноним 05/02/24 Пнд 01:18:48 #10 №3035283 
>>3035220
Ты в принципе имеешь в виду заменить много запросов вида `where id = ?` на один запрос вида `where id in(?, ?, ?, ...)` ?
Аноним 05/02/24 Пнд 01:22:10 #11 №3035286 
>>3034663 →
https://3v4l.org/OVVIA
Вроде работает.
Аноним 05/02/24 Пнд 02:10:04 #12 №3035341 
image.png
image.png
Ебаать
Аноним 05/02/24 Пнд 02:13:01 #13 №3035343 
>>3035283
>Ты в принципе имеешь в виду заменить много запросов вида `where id = ?` на один запрос вида `where id in(?, ?, ?, ...)` ?
Без принципа, там не всё так просто, попробуй развернуть у себя эту хуйню что уже весело при инсталяции возьми какой-нибудь магазин из примеров, как эта хуйня поставится она создаст пару тестовых инфоблоков и заполнит данными для примера. Собственно на это говно можешь полюбоваться в базе
Аноним 05/02/24 Пнд 02:13:23 #14 №3035345 
У меня есть файл, в котором объявляются функции, нормально ли то, что я использую одинаковые имена переменных в объявлениях нескольких функций?
Аноним 05/02/24 Пнд 03:26:25 #15 №3035409 
>>3033914 →
>пик1 и пик2
Нахуя ты сравниваешь язык и фреймворк? Поставь php и фильтр 200к+ для обоих языков, как я и написал изначально. Что самое смешное, что даже в этом варианте вакансии не гошные, а в связке пхп + го или питон + го и тд.

>пик 3
Это не продакшн сервак, довн. Я на ларе могу также запустить через serve команду. Либо могу запустить продакшн на franken еще меньшим количеством команд, чем на твоем пике.

Ах да:
>bun
Как там с дено дела обстоят?

>доля срынка опять упала. Не 77, а 76.5
Ого, на пол процента за 20 лет? Ну пыхе пизда однозначно

>половина серваков из 80 (76.5) % серваков в мире на апаче и это аргумент, а то, что почти весь интернет на пыхе - не аргумент
Ну ясн)))

>шизофазия, шизофазия, а вот го, го вот это да
Манька, как займёт го место пыхи, тогда и приходи. 10 лет назад, ты говорил, что это сделает нода. Ещё через 10 появится новый яп и он то уж точно всех победит, знаю, слышал
Аноним 05/02/24 Пнд 03:33:42 #16 №3035414 
>>3035409
Пыха отличный язык?
Аноним 05/02/24 Пнд 03:36:53 #17 №3035415 
>>3035409
> Как там с дено дела обстоят?
Пилит другая команда, работает на расте, ts из коробки и глубоко под капотом v8. Обновления выходят чуть ли не каждый день, по крайней мере у крейта deno_core. А так довольно шустрая штука, правда нет полной обратной совместимости с node.js из стандартной библиотеки всё чуть-чуть разное.
Аноним 05/02/24 Пнд 03:40:38 #18 №3035417 
>>3035415
>нет полной обратной совместимости с node.js из стандартной библиотеки всё чуть-чуть разное
хи-хи-хи
Аноним 05/02/24 Пнд 04:07:11 #19 №3035425 
>>3035409
>Это не продакшн сервак, довн. Я на ларе могу также запустить через serve команду.
И высрешь 60к RPS? Все ты можешь, но не будешь. Это сразу было ясно когда ты начал всю эту чухню в пример приводить.
Пидор тупой, речь с самого начала шла про то что ждет пхп вкатуна на этом говноязыке. Он будет ебаться с нжинксом, точка. Никаких бинарников, никакого встроенного сервера, никакого сервера на этом ебаном языке у него не будет.

>Манька, как займёт го место пыхи, тогда и приходи
Хуесосина тупорылая, несколько лет назад вакансий на го было НОЛЬ. Зеро блядь. А сегодня на каждом пхп собесе спрашивают знает ли кандидат го.
Ты можешь рваться сколько угодно. Большая часть вакансий на го это сервисы, которые не будут написаны на пхп. А большая часть го программистов это бывшие пхп сеньоры.

Короче положняк по пхп в 2к24 такой:
1) Статистика доли рынка пхп дутая, 90% там это CMS, которые нормальных вакансий на актуальном стеке не создают.
2) Большая часть кода на пхп это легаси говно. А большая часть вакансий это поддержка написанного кем-то пять лет назад кала. Актуальная версия это 18% рынка.
3) Джаваскрипт лезет изо всех щелей. У этих дебилов каждый месяц новый фреймворк. Как только звезды сойдутся и высрутся какие-нибудь новые "рельсы" вся дешевая разработка бекэнда улетит жс макакам.
4) Все действительно сложные и интересные бекэнд задачи утекают в го. Старые сервисы, которые приносят бабки на го переписываются, а новые сразу идут мимо пхп.

Все что остается пхп макакам сегодня - это сидеть на каловом ларавеле и заниматься перекладкой джейсончиков из актив рекорда и обратно. В ожидании когда их место займут еще более тупые джаваскрипт макаки. А ну да, еще остается пердеть что пхп стронг и с ним-то как с руби никогда не будет, твердо и четко.
Аноним 05/02/24 Пнд 04:37:54 #20 №3035431 
>>3035425
>можешь рваться сколько угодно
Эти проекции🤭

>булет, точно вам говорю, будет, суки
Поживём, увидим)))

>как с руби буит
Он 80% срынка занимал?)))
Аноним 05/02/24 Пнд 05:05:57 #21 №3035432 
>>3035431
>Поживём, увидим)))
>)))
Сразу потянуло одноклассниками и вбыдлятней. Про лужайку еще че-нить перни, дифиченто.

Вордпресс изучай, у него доля рынка большая. А лучше сразу битрикс. Бессмертная тема.
Аноним 05/02/24 Пнд 05:13:25 #22 №3035433 
>>3035432
Успокаивайся, выдыхай))) скоро го как разъебет пыху, вот тогда мы пососем, а все деньги и интересные проекты потекут к тебе))) уже потекли, мы поняли))))
Аноним 05/02/24 Пнд 05:35:41 #23 №3035436 
изображение.png
Подскажите, как посчитать на php сколько места на экране занимает рандомный символ.

Например, у меня есть символы:
A
@

На дваче это, мб, не видно, но у меня на странице визуально видно, что @ занимает больше места, чем буква А.

Как мне посчитать, аноны? Или хотя бы привести оба символа к одному размеру?
Аноним 05/02/24 Пнд 05:48:48 #24 №3035439 
>>3035436
А какое отношение пхп имеет к тому как что выглядит на твоей странице? Символы браузер отображает, а не пхп.

Ты бы почитал хоть что такое шрифт вообще.
https://ru.wikipedia.org/wiki/Компьютерный_шрифт#По_ширине_символа
Аноним 05/02/24 Пнд 05:51:42 #25 №3035440 
>>3035439
>какое отношение пхп имеет к тому как что выглядит на твоей странице
Я думал, мб есть функция, которая считает.

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

Но вот сейчас подумал и вспомнил, что есть тег в html, связанный с таблицами, попробую, мб получится то, что надо.
Аноним 05/02/24 Пнд 05:53:17 #26 №3035441 
>>3035439
Спасибо за ссылку.
Аноним 05/02/24 Пнд 09:53:58 #27 №3035622 
>>3035286
> $ref = &$i['CHILD'][$lastIndex];
> $parents[$lvl] = &$ref;
Ааа, опять ссылочки, анон. Плохо, что сейчас я не пойму, как ты решил эту задачу, но спасибо огромное за решение
Аноним 05/02/24 Пнд 12:53:12 #28 №3035760 
Что можно почитать для понимания ОРМ? Пытался через фреймворк сразу учить, то не догоняю все эти мэни-ту-мэни, дто какие-то, коллекции.
Аноним 05/02/24 Пнд 16:56:40 #29 №3036102 
Анончик, с которым мы поругались на счет регулярок в прошлом треде, я прекрасно понимаю, что ты человек далеко умнее среднего. Поэтому интересно твое мнение. Что сейчас можно сделать в рамках PHP-шной темы? Куда ее двигать? Очередной фреймворк, который выбросят на помойку через 5 лет? Я не выманиваю у тебя идеи, у самого их девать некуда.
Аноним 05/02/24 Пнд 17:14:16 #30 №3036165 
>>3035760
>не догоняю
Давай ссылку на доку, что не понятно?
Аноним 05/02/24 Пнд 17:20:33 #31 №3036187 
>>3036165
Доку читают только те, кому уже все понятно, для уточнения деталей.
Аноним 05/02/24 Пнд 18:37:45 #32 №3036340 
>>3035760
В ларакастах есть курс по в элоквенте. Дто это паттерн, про него можешь почитать в "Архитектура cложных веб
приложений" Adel F
Аноним 05/02/24 Пнд 19:24:46 #33 №3036424 
>>3035219
Честно я кайфую от него. Нравится и эстетически, и практически удобочитаемо. А как же прекрасно на секунду отвлечься от всего чтобы просто написать заветный ламповый символ
Аноним 05/02/24 Пнд 19:33:48 #34 №3036442 
>>3035345
Гораздо лучше создать класс со статическими методами для каждой зоны ответственности. По типу класс ProductUtilite, где будут статические методы SumProductsPrice(), GetProductsCount().

Ты имеешь ввиду объявленные переменные в аргументах функции? Одинаковые названия это норма даже если типы разные, главное чтобы понятный смысл отображали.
Аноним 05/02/24 Пнд 19:41:56 #35 №3036445 
Сразу отмечу: вопрос скорее методологический, нежели чисто технический. То есть, всяких костылей вроде Refleсtion API и debug_backtrace() мы, по большей части, избегаем.

Есть класс A, от него наследуется B, от него наследуется C. Правильно ли я понимаю, что с точки зрения ООП, я не могу в классе A реализовать метод, который, например, будет выводить все protected свойства класса? Если класс C объявляет новое свойство, класс A по логике не может обращаться к нему, не может его вывести.

https://3v4l.org/RjMCt

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

Верно?

https://3v4l.org/am7LT

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

Верно?
Аноним 05/02/24 Пнд 20:20:53 #36 №3036510 
>>3035436
Как тебе уже сказали, с такими вопросами не к серверному PHP, а скорее к клиентскому JS. Этодругое немного, но я года пол назад реализовывал функцию, которая проверяет, поддерживается ли соответствующий emoji в ОС и браузере человека, или нет. С оговорками, решаемо через canvas. Я сейчас слишком заёбан, чтобы искать этот код, так что надеюсь, по подсказке ты сам смекнёшь, что к чему. Если нет, бампани к концу недели, посмотрю конкретнее. По памяти примерно - берёшь canvas, пишешь в нём текст (это делается через JS, гетконтекст2д и филтекст что-то там). В твоём случае - смотришь, какой последний символ по оси X окрасился в цвет. Условно, для 'A' это будет (14, 16). Для '@' (20, 14). 20 больше 14, значит, '@' шире.
А вообще, используй моноширинный шрифт для своей таблицы, а не городи эту хуйню. Элементарно.
Аноним 05/02/24 Пнд 20:29:58 #37 №3036541 
>>3036445
Почему? Протектед свойства доступны классам наследникам. Или в чем твой доеб? Читал твой пост жопой, впадлу вчитываться
Аноним 05/02/24 Пнд 20:39:14 #38 №3036563 
>>3036541
Мне сказали так. Технически, оно работает. Технически, можно и типизированному свойству изменить значение на значение другого типа через Reflection, потому что PHP позволяет выстрелить себе в ногу миллионом способов. Но с точки зрения ООП, это код говна, всякий класс должен быть инкапсулирован и исходить из того, что он содержит в себе все нужные свойства и методы. В Java, типа, ты так не сделаешь. И если второе с огромной натяжкой терпимо (где get_object_vars), потому что get_object_vars в любом случае получает только те свойства, которые фактически в объекте есть. Но лучше делать это через трейт. То за первое вообще нужно убивать. Вот, пришёл верифицировать эту информацию.
Аноним 05/02/24 Пнд 20:45:04 #39 №3036570 
>>3036445
>с точки зрения ООП, я не могу
У ООП нет никакой "точки зрения". Это "подход", способ создавать программы. Ты либо ему следуешь, либо нет.

>Если класс C объявляет новое свойство, класс A по логике не может обращаться к нему, не может его вывести.
Что значит "не может"? По чьей "логике" не может?
Ты ведь сам на себя накладываешь дополнительные ограничения. Сам решаешь что делать, а что не делать.

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

Да и в целом почему ты считаешь что Refleсtion API и debug_backtrace() это костыль,
а выводить все protected свойства класса это нормальное адекватное действие?
Это точно такое же "мета программирование". Ты добавляешь поверх логики работы с данными логику работы с программой. Вопрос тот же: стоит оно того? Зачем пытаться статическую структуру класса сделать динамической, если она для этого не предназначена?

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

А чтобы подобные перечисления было удобно выводить и использовать и сделали enum в php. До этого все пользовались либами.
Правильный код должен выглядеть так: https://3v4l.org/hQAbU
Аноним 05/02/24 Пнд 22:32:48 #40 №3036811 
>>3036424
Я вчера видел сон, как будто пишу очень много кода на PHP, а $ нажимается только через Ctrl+Alt+Shift.
Аноним 06/02/24 Втр 02:52:32 #41 №3037117 
>>3036510
Спасибо за ответ, но я думаю, что это вне моей компетентности (я все-таки еще вкатун с посредственными знаниями, а в JS не ушел дальше Объектов).
Моя задача более простая и менее требовательная, чтобы подходить к ней с таким решением.
Аноним 06/02/24 Втр 06:57:25 #42 №3037166 
Любое поле для ввода должно иметь XSRF-защиту?
Аноним 06/02/24 Втр 08:38:39 #43 №3037198 
>>3037166
Сама эта защита - просто скрытое поле с токеном в форме. Следовательно, она не может быть для каждого поля, а только целиком для формы.
Аноним 06/02/24 Втр 08:45:04 #44 №3037200 
>>3037117
Значит, font-family: monospace в CSS и пойдёт.
Аноним 06/02/24 Втр 12:15:53 #45 №3037385 
>>3036570
>У ООП нет никакой "точки зрения". Это "подход", способ создавать программы. Ты либо ему следуешь, либо нет.

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

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

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

> А чтобы подобные перечисления было удобно выводить и использовать и сделали enum в php
Про enum я знаю и использую их, это вообще не то, что мне нужно в этой задаче.

> ...

Касаемо всего твоего остального поста. Во-первых, меня посетила мысль о том, что метод, который выводит все protected-свойства, это вообще не совсем то, что может рассматриваться с точки зрения ООП. Это уровень не бизнес-логики, а чего-то ниже. Соответственно, в этом методе можно себе позволить сослаться на свойства дочерних классов. Потому что этот метод особенный. Он оперирует не абстрактными сущностями, характерными для данного проекта, а на техническом уровне работает. Во-вторых, в целом, из твоего сообщения сложилось впечатление, что всё не так однозначно. И писать код, который на 100% соответствует принципам ООП, ты ебанёшься. Нужно смотреть по ситуации, по конкретному контексту. Типа, злоупотреблять использованием свойств, которые будут определены в потомке, не стоит, но в некоторых ситуациях это именно то, что нужно, иначе придётся писать сотню классов. И в данной ситуации выбор между трейтом и тем, что описал я, скорее дело вкуса.
Правильно понял тебя?
Аноним 06/02/24 Втр 15:31:44 #46 №3037638 
Внимание!Чёрный ящик.mp4
>>3037385
>писать код, который на 100% соответствует принципам ООП, ты ебанёшься
Невероятно сложные принципы. Создавай объекты, наследуй поведение, используй полиморфизм. Заебешься следовать.
Тебе о том и написано что ООП само по себе никаких ограничений на то как ты будешь эти объекты использовать не накладывает. А даже то что писано это не "правила ООП", а скорее описание "как объектно ориентированный подход может выглядеть". И описание это скорее для создателей языков, а не для рядовых программистов.

Джаву зачем-то приплел. Ясен хуй в джаве это не работает, потому что джава язык компилируемый и компилятор не позволяет ссылаться на свойство, которого не существует. А в пхп можно, потому что ошибки возникают только когда код выполняется. Для этого даже не надо никакого ООП https://3v4l.org/7tFaR язык так устроен. Пока ты метод, в который насрал, не вызовешь - ошибки не увидишь https://3v4l.org/0gb3O .

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

>Про enum я знаю и использую их, это вообще не то, что мне нужно в этой задаче.
Ну это платина. Игра в черный ящик, это главное развлечение программача. Я делаю какую-то хуйню, но какую - не скажу. Угадайте что в черном ящике и дайте правильный ответ.
Пчел. Для списков неизвестной длины существуют массивы. Для списков известной длины существуют энумы. Предельная тупость использовать для этого структуру класса.
Аноним 06/02/24 Втр 17:25:56 #47 №3037798 
Бля, погодите, то есть, readonly свойства мало того, что должны устанавливаться в конструкторе, так ещё и в конструкторе того же самого класса, где они объявлены? То есть, это скорее штука чисто для DTO и VO, а пытаться использовать этот модификатор для всех свойств, которые просто по логике работы в течение жизни объекта не должны меняться, это создавать себе проблемы? Тогда уж типа

private ?int $prop = null;

И в сеттере кидать исключение, если prop !== null, а ты пытаешься его переопределить?
Аноним 06/02/24 Втр 18:14:59 #48 №3037912 
>>3037798
Во, такая аналогия посетила. В JS есть рекомендация по-умолчанию писать const вместо let, если ты не уверен на 100%, что значение этой переменной должно меняться. Подумал, что в PHP аналогично: пиши везде readonly, где нет уверенности, что это точно будет меняться. Видимо, стрелочка не поворачивается и в PHP всё не так?
Аноним 06/02/24 Втр 18:54:49 #49 №3037985 
>>3037798
>это создавать себе проблемы?
Какие проблемы? Ты переломишься этот ридонли убрать если вдруг понадобится или че?
Аноним 06/02/24 Втр 19:28:53 #50 №3038050 
>>3037985
Значение ридонли можно задать только в конструкторе - раз. Только в конструкторе того класса, где данное свойство было объявлено - два.
Аноним 06/02/24 Втр 20:24:26 #51 №3038145 
>>3038050
И? Понадобилось - убрал ридонли и задал. Ты тупой?
Аноним 06/02/24 Втр 20:50:15 #52 №3038212 
>>3038145
>Ты тупой?
Пошел нахуй, пидорас.
Аноним 06/02/24 Втр 20:56:46 #53 №3038217 
>>3038145
А может это ты тупой? Да, это так охуенно удобно, задавать значения 80% свойств в конструкторе. И лишаться возможности переопределить их в дочернем классе без пердолинга parent::construct() в каждом наследнике. А если вдруг окажется, что этому свойству таки не надо быть readonly, потом ещё и менять его. Ты сюда повыёбываться пришёл, или есть что по делу сказать? Сам используешь readonly для большинства свойств? Как, удобно?
Аноним 06/02/24 Втр 22:46:30 #54 №3038348 
>>3038217
Мудила гороховый. Что тебе мешает убрать ридонли когда появятся наследники? Вы внатуре ебанутые? Или угашенные? Ну стало неудобно - так убери блядь и сделай опять удобно.

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

В нормальных языках уже додумались и вообще всю эту требуху нахуй выкинули. Одной строчкой это все объявляется и создается.
Аноним 06/02/24 Втр 23:25:14 #55 №3038376 
image.png
image.png
Решил сегодня начать учиться новому и попытаться освоить это ваше пограмирование. И встрял вот тут.
У меня почему то ничего не делает команда justify .Как я понимаю она должна равномерно распределять текст на экране. Уже полтора часа мозги себе трахаю, но не понимаю в чём же дело. Более опытные люди, подскажите, как это исправить?
Аноним 06/02/24 Втр 23:27:57 #56 №3038377 
>>3038376
Че подчеркнуто у тебя там, программист?
Аноним 06/02/24 Втр 23:33:27 #57 №3038384 
>>3038377
Спасибо, не заметил
Аноним 06/02/24 Втр 23:35:43 #58 №3038389 
image.png
>>3038377
Аноним 07/02/24 Срд 01:03:07 #59 №3038469 
>>3037198
Я неправильно выразился.
Я имел ввиду формы.

Любая форма на сайте должна иметь XSRF-защиту?

Если нет, то для каких надо делать, а для каких нет?
Аноним 07/02/24 Срд 02:05:46 #60 №3038556 
>>3038469
А какая разница? Делаешь один раз сразу для всех и мозги не ебешь.
Аноним 07/02/24 Срд 03:31:49 #61 №3038564 
Если мне тупо нужно написать капчу для сайта визитки.

Когда я сохраняю пароль сгенерированной капчи, то что быстрее будет - сохранять её в БД, или в static ?
Аноним 07/02/24 Срд 03:34:31 #62 №3038566 
>>3038469
Если ты хочешь чтобы пользователю этой формы твоего сайта могли передать ссылку, открыв которую он отправит какие-то данные на твой сайт будто бы от самого себя (на самом деле это ссылка такая хитрая).

То можешь не ставить защиту на эту форму.
Аноним 07/02/24 Срд 04:24:03 #63 №3038571 
Я уже в отчаянии, аноны, помогите!

Как настроить .htaccess

Что писать в этой ебале?

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

Но у меня нихуя не получается связать 2 + 2.

Читаю-читаю одно и тоже, а в голове пусто.

RewriteEngine on
RewriteRule .htaccess - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /index.php

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

Я понимаю, что я долбаеб и тут и так все очевидно, но объясните на пальцах как понимать все эти [F], -f и т.д.

И подскажите уже код, блять.
Аноним 07/02/24 Срд 04:25:27 #64 №3038572 
>>3038566
У меня там будет поле для поиска.

Ну будут от некого пользователя запросы о том, чтобы найти какую-нибудь ебалу и что? Сильно вредно? Я ж не ебу с какими хуйнями придется столкнуться в будущем.
Аноним 07/02/24 Срд 08:24:50 #65 №3038617 
>>3038571
Я уже смог сам сделать.
Аноним 07/02/24 Срд 11:33:00 #66 №3038795 
>>3038617
Молодец, держи с полки пирожок
Аноним 07/02/24 Срд 11:39:06 #67 №3038804 
Есть у кого-нибудь слитые курсы Михаила Каморина?
Аноним 07/02/24 Срд 11:40:31 #68 №3038808 
>>3038804
А документацию для кого придумали? Тем более говорят что у симфони заебатая документация
Аноним 07/02/24 Срд 11:41:53 #69 №3038809 
>>3038808
Картинки проще смотреть, чем букавы читать
Аноним 07/02/24 Срд 12:07:05 #70 №3038829 
>>3038809
так тебе в рисование надо вкатываться а не в IT
Аноним 07/02/24 Срд 12:22:04 #71 №3038871 
>>3038829
Уже поздно метаться
Аноним 07/02/24 Срд 17:35:42 #72 №3039468 
>>3038829
Это смешно но линивым и безинициативным вкатываться в рисование ещё сложнее чем в программирование.
Аноним 07/02/24 Срд 20:04:29 #73 №3039675 
>>3035015
>18.5
откуда статистика? выглядит прилично
Аноним 07/02/24 Срд 21:14:58 #74 №3039776 
Screenshot 2024-02-07 211358.png
il570xN.50540383981kr3.webp
>>3039675
Аноним 07/02/24 Срд 21:33:59 #75 №3039798 
Фасолевой няша, который пытается понять суть readonly-свойств, снова выходит на связь. У меня сформулировалась ещё пара тезисов.

1. Модификатор readonly не стоит читать просто как "значение этому свойству можно задать один раз" (аналог const из JS), оно обладает дополнительной семантикой. Между обычными свойствами и readonly отличия не только в "значение этому свойству можно задать один раз". И дело тут не в технической реализации, а в том, что использование readonly-свойств подразумевает немного другую архитектуру, если угодно. Нельзя просто взять и добавить/убрать это ключевое слово. Ну, убрать скорее всего можно, а добавить - нет. Это надо учитывать.

2. У меня вообще отношение к конструктору (__construct), было... ну, не то чтобы его надо избегать, но я его редко использовал. Типа, нахуя? Значение по умолчанию я могу определить в классе при объявлении свойства. Переопределить его с помощью сеттера, если надо. А обязывать себя всё это установить на этапе создания объекта... нахуя? При этом, насколько мне известно, в многих других языках программирования, в отличии от PHP, свойства (и их аналоги, у разных языков разный понятийный аппарат) просто тупо задаются в конструкторе. Например, оно так в JS и Python. Из чего у меня рождается предположение о том, что конструктор это база, это хорошо, он должен быть у большинства классов. Это, типа, стандартная практика в многих языках. И то, что PHP заставляет присваивать значения readonly-свойствам в конструкторе, это указание на то, что PHP тоже пытается двигаться в эту сторону.

Я к правильным выводам пришёл, или опять обосрался?
Аноним 08/02/24 Чтв 01:49:07 #76 №3040070 
>>3039798
>пытается понять суть readonly-свойств
Все у тебя через очко. Все задом наперед. Ридонли свойства решают конкретную ПРОБЛЕМУ. Семантика, хуянтика это следствие.

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

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

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

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

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

Ридонли нужно чтобы писать только это https://3v4l.org/dd2fl вместо вот этого https://3v4l.org/Uolm4 . Наследования-хуедования какие-то блядь выдумал. Наследования свои в очко себе засунь, да. Всё, забыли. Не использует никто наследование, не работает оно. Еще в 2004 когда паттерны хайповали все забили на наследование и начали композицией пользоваться.
Аноним 08/02/24 Чтв 06:13:30 #77 №3040099 
Тупой вопрос, но все же, название таблицы, в которой что-то нужно сделать и название столбца, нужно передавать в плейсхолдерах?
Аноним 08/02/24 Чтв 07:19:33 #78 №3040113 
А вот что делать, если у меня есть метод в TDG, который принимает название колонки, значение и айди, проверяет название колонки по белому листу. Что мне делать, если название колонки оказалось вне белого листа? Делать header внутри TDG на страницу ошибки?
У меня не может быть в этом методе значения по умолчанию, если присланное значение не является значением из белого списка.
Аноним 08/02/24 Чтв 09:37:46 #79 №3040147 
>>3040113
>>3040099
Прими таблетки, шиз
Аноним 08/02/24 Чтв 11:42:41 #80 №3040231 
>>3040070
То есть, по сути, readonly это сорт оф асинхронная видимость с дополнительной гарантией того, что и внутри класса мы случайно не изменим значение?
Аноним 08/02/24 Чтв 11:43:48 #81 №3040232 
>>3040231
Бля, какая асинхронная. Асимметричная, перепутал слова.
Аноним 08/02/24 Чтв 12:30:34 #82 №3040266 
>>3040147
Посущественней ответа не будет? Или лишь бы что-нибудь высрать?
Аноним 08/02/24 Чтв 13:05:00 #83 №3040296 
изображение.png
Правильно понимаю, что это устаревшая информация?
https://www.php.net/manual/en/language.references.return.php

https://3v4l.org/HPlJT#v8.3.2 работает
https://3v4l.org/HPlJT#v5.0.0 нет
https://3v4l.org/qKM5p#v5.0.0 а без скобок да
Аноним 08/02/24 Чтв 13:07:30 #84 №3040299 
>>3040296
Чёт как-то через жопу этот ваш 3v4l.org работает, версия PHP в ссылке есть, а он выбирает неправильную.

Ну, короче, возьмите код с первой ссылки, и запустите его на какой-нибудь нормальной версии (последней, например), а потом на древней (5.0.0, например).
Аноним 08/02/24 Чтв 14:16:12 #85 №3040372 
>>3040266
Ты тупой блядь, аж взбесил. Иди убейся нахуй
Аноним 08/02/24 Чтв 14:29:07 #86 №3040377 
>>3040296
Информация не устаревшая, просто в новых версиях пхп убирает скобки во время компиляции, походу считает что они не нужны, раз нихуя не делают. Можешь багу им на багтрекере написать.

А с выражением по ссылке все нормально https://3v4l.org/I4KcF#v8.3.2 как не работало так и не работает.

Ну и не могу не добавить, что возвращать что-то по ссылке, тем более из объекта это полная хуйня и говнокод.
Аноним 08/02/24 Чтв 14:31:44 #87 №3040380 
>>3040372
Ты в РНР-треде вообще-то. Тут уровень дискуссий не такой высокий как в джава, го или даже питоне.
Аноним 08/02/24 Чтв 14:33:23 #88 №3040383 
>>3040380
Двачую. По факту мы ничем не отличаемся от битриксойдов которых поливаем здесь говном
Аноним 08/02/24 Чтв 15:07:26 #89 №3040417 
>>3040383
Я вот жду, что сольют курсы Михаила Каморина и тогда можно будет повысить уровень дискуссий.
Аноним 08/02/24 Чтв 20:45:53 #90 №3040959 
image.png
>>3038376
Ну и на сколько наносеков тянет?
Аноним 08/02/24 Чтв 21:19:21 #91 №3041056 
>>3040959
Мы вам перезвоним.
Аноним 08/02/24 Чтв 21:30:00 #92 №3041079 
image.png
>>3041056
Хорошо, я буду ждать...
Аноним 08/02/24 Чтв 22:39:46 #93 №3041195 
изображение.png
изображение.png
изображение.png
>>3035283
>>3035220
Поставил демо магазин и охуел 913 таблиц сука пустой сайт в котором 3 инфоблока.
290 sql запросов для детальной страницы товара, если он насрёт кэш из тысяч пхп файлов, то всего 23.
Аноним 08/02/24 Чтв 22:50:11 #94 №3041208 
>>3034858 (OP)
>>1008826 (OP)
Есть роут, который отвечает за вывод новой модели карточки товара. После этого роута сработает этот метод
ProductPage::get(
$productFieldValue,
request()['field']
);

Вот как выглядит упрощенный вариант контроллера
class ProductPage
{
...
public static function get($productFieldValue, string $getByField): array
{
//Какая-та логика
//...

$arProduct= Product::getMainProduct($productFieldValue, $getByField);
$arProduct = Product::getPreparedProduct($arProduct);
self::setProductInfo($arProduct);

//...
//Какая-та логика
}
...
}
Product это класс сущности.
Он содержит метод getMainProduct, который совершает запрос в базу данных.
getPreparedProduct просто приводит полученные данные в нужный вид.
setProductInfo - это метод ProductPage, который использует related сущности, чтобы получить другую информацию, нужную для вывода карточки товара.

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

Сперва я хотел сделать метку $isOldModel (которое получает свое значение от параметра в запросе) внутри метода get, и там при определенных условиях использовать либо одни методы getMainProduct и getPreparedProduct, либо другие методы getMainProductForOldModel и getPreparedProductForOldModel.
Потом мне сказали, что эту метку нужно переместить непосредственно в роут, а от ProductPage отнаследоваться и создать OldProductPage. И в зависимости от метки в роуте вызывать метод get либо от ProductPage, либо от OldProductPage.
Я так и сделал, но потом понял, что от ProductPage мне не особо много методов нужно. Один массив констант из трех элементов и один-два метода. Метод get, setProductInfo нужно переопределить.
Так же нужно было добавить два дополнительных параметра в метод get для старой модели, так как старая модель содержит поле отзывов, которому нужны эти параметры. Но проблема заключается в том, что сигнатура метода get в ProductPage содержит два параметра, а не четыре, как это нужно для OldProductPage .

Вот я и хотел спросить, может можно сделать какой-то другой вариант, чтобы поделить логику между старой и новой карточкой товара? Тот же самый вопрос для класса сущности Product. Спасибо
Аноним 08/02/24 Чтв 22:53:38 #95 №3041212 
>>3034858 (OP)
ТУт нет битриксойдов? Не знаете ка перевести нижний вариант в D7 для getList ORM ElementTable?
CIBlockElement::GetList(
[$arSortType['TYPE'] => $arSortType['BY']],
$this->arFilter,
false,
[
'nTopCount' => false,
'nPageSize' => $obPagination->size,
'iNumPage' => $obPagination->page,
'checkOutOfRange' => true
],
['*', 'CODE', 'PROPERTY_PAGE_TITLE']
);
Аноним 09/02/24 Птн 01:16:18 #96 №3041274 
>>3038376

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

.justify {
text-align: justify;
}

Этот блок вместе называется правило. Правило состоит из селектора (selector) - в данном примере это ".justify" и набора свойств (properties) - в данном примере свойство одно, text-align: justify. Свойство состоит из названия (text-align) и значения (justify).

Таким образом, justify это не команда, а значение свойства text-align.

Почему текст не растягивается? Потому, что ты написал вместо text-align слово text-aling. И редактор намекает тебе на это зеленым подчеркиванием.

Будь внимательнее к каждой букве. Я вижу, ты вместо lesson пишешь leasson, а вместо index пишешь idex. Так ты постоянно будешь получать непонятные ошибки.
Аноним 09/02/24 Птн 01:28:45 #97 №3041288 
>>3041208
А че ты забздел-то? Заебись же перло.
Хуяришь какие-то статические методы в контроллере, да побольше. Называешь актив рекорд модель "сущностью". Че ты вдруг побежал "логику делить"?

Ну и ебашь наследование, добавишь пару необязательных полей, ну и похуй. Тут все равно говно такое, что только выкинуть нахуй и заново написать.
Аноним 09/02/24 Птн 03:41:27 #98 №3041310 
>>3040372
Пошел нахуй, пидорас, к тебе с нормальным вопросом обратились, а ты хуйню отвечаешь. И кто еще тут тупой? Сидят долбаебы, либо срутся, либо хуйню пишут. Тред говна.
Аноним 09/02/24 Птн 04:25:46 #99 №3041317 
>>3041310
>нормальным вопросом
>метод в TDG по белому листу header внутри TDG присланное значение не является значением
>Тред говна
Потому и тред говна, что собираются сюда дегенераты, которые двух слов связать не могут. Тебе правильно написали: не TDG, а ТГК. Попустись и внятно изъясняйся.
Аноним 09/02/24 Птн 08:15:44 #100 №3041354 
>>3041288
Это же не я писал, что вы так реагируете на код. Я джун, увидел класс карточи товара ProductPage, сделал такой же класс для старой карточки товара. Но вот метод не так называю. Если можно сделать получше, не сильно изменяя код старой карточки товара, почему бы и нет
Аноним 09/02/24 Птн 08:16:57 #101 №3041355 
>>3041317
>внятно изъясняйся
Что там невнятного?
Мне уже похуй на вопрос, потому что я его решил, но там серьезно ничего нет сложного для понимания.
И какое, блять, ТГК?
Table Data Gateway, TDG, не?
Аноним 09/02/24 Птн 08:18:05 #102 №3041357 
>>3041354
>что вы так реагируете на код
Не удивляйся, тут одни озлобленные люди сидят.

Реально нормальных людей тут 1,5 анона.
Аноним 09/02/24 Птн 08:30:34 #103 №3041360 
>>3041355
>Их ебанутые иероглифы
>Наши очевидные аббревиатуры
ТГК хотя бы гуглится, чучело. Если это гейтвей к базе, то откуда нахуй у тебя берутся хедеры какие-то блядь? Какие-то сука вайтлисты. Бред шизофреника, о чем тебе сразу и написали.

Правильно тебе отхуесосили. Пытаться писать какие-то гейтвеи, но не знать что такое исключения - это каким же уебнем надо быть? Ты пхп по тиктокам учишь что-ли, сука? Покажи мне блядь пхп курс где тему исключений скипнули.
Аноним 09/02/24 Птн 08:36:55 #104 №3041361 
>>3041360
>откуда нахуй у тебя берутся хедеры
Так я и думаю, что они в TDG не нужны.

>Какие-то сука вайтлисты
Я читал, что нужно использовать плейсхолдеры для значений, которые вставляются в SQL запрос, но если название столбца тоже лежит в переменной, то ее значение нужно проверять по белому листу (содержит список названий столбцов, с которыми разрешено проводить этот метод). Я не стал делать 10 методов: обновить одмн столбец, обновить второй, я просто сделал один метод, где можно передавать название столбца.

>что такое исключения
И кому нужны эти исключения? Пользователю, который захочет пошалить с моим кодом? Разве сайт не должен выгонять на страницу ошибки, а не сообщать что не так в коде, пользователю?
Аноним 09/02/24 Птн 08:39:20 #105 №3041362 
>>3041354
Нельзя там сделать лучше.
Вот тебе аналогия чтобы было понятно:
Ты приперся в обоссанный обблеванный бомжатник. По разбитым бутылкам и использованным шприцам добрался до забитого в прошлом году толчка попытался посрать, и так и эдак - нихуя.
И ты полез на двач спрашивать совета как лучше спроектировать санузел: раздельно или вместе?

Да похуй как. Чтобы посрать - надо толчек прочистить. А чтобы что-то тут проектировать надо выгнать нахуй бомжей и пол года чистить эти авгиевы конюшни.
Аноним 09/02/24 Птн 08:40:44 #106 №3041363 
>>3041361
>И кому нужны эти исключения? Пользователю
Ты хочешь чтобы я тебе тут высрал курс по проектированию веб приложений на пхп?

Ловятся блядь все исключения специальной функцией, которая и перенаправляет пользователя на страницу ошибки или куда там тебе блядь надо.
Аноним 09/02/24 Птн 08:43:42 #107 №3041364 
>>3041363
>все исключения специальной функцией, которая и перенаправляет пользователя на страницу ошибки
Ну и закончим на этом.
Спасибо, что навел на мысль.
Аноним 09/02/24 Птн 09:13:31 #108 №3041372 
>>3041364
Вот так должны работать "вайтлисты" https://3v4l.org/fugVD .
Спрашивать надо какие колонки есть, а какие нет, у того кто знает список этих колонок.

А вот так работает ловля ошибок https://3v4l.org/KUCBB .
Разумеется никто пользователю содержимое ошибки не показываеn, просто записывают в лог. А пользователя редиректят на 404.

Я не знаю по каким тиктокам ты пытаешься учить язык. Но найди блядь себе нормальный курс. И не еби мозги анонам. Выпытывать у тебя че ты там на самом деле хотел по несколько постов никому нахуй не упало.
Аноним 09/02/24 Птн 09:13:34 #109 №3041373 
Могу дать консультацию.
Мимо сенька, 10 лет в вебе.
Аноним 09/02/24 Птн 09:14:11 #110 №3041374 
>>3041373
Дай.
Аноним 09/02/24 Птн 09:15:55 #111 №3041379 
>>3041374
Дал, проверяй.
Аноним 09/02/24 Птн 09:25:19 #112 №3041390 
16432039664700.png
>>3041379
Аноним 09/02/24 Птн 09:26:16 #113 №3041393 
>>3041390
Не пости этот баян. Им уже давно никого не насмешить
Аноним 09/02/24 Птн 09:29:08 #114 №3041398 
>>3041393
Насмешил, проверяй.
Аноним 09/02/24 Птн 10:24:24 #115 №3041462 
16946796652791.mp4
>>3041390
Аноним 09/02/24 Птн 12:15:50 #116 №3041564 
>>3041212
Сколько тебе платят как битриксойду?
Аноним 09/02/24 Птн 12:49:47 #117 №3041582 
>>3041462
Откуда? Это типа интервью какого-то?
Аноним 09/02/24 Птн 12:56:40 #118 №3041589 
Поясните за перечисления (enum).
Допустим, у меня есть RoleEnum, который содержит RoleEnum::admin RoleEnum::moderator RoleEnum::user
В каких-то ситуациях, мне нужно трансформировать роль в string. Типа: "Ваша роль: (RoleEnum::admin > администратор)".
В каких-то ситуациях, мне нужно трансформировать роль в int. Типа, битовая маска для понимания того, достаточно ли у пользователя прав для выполнения того или иного действия.
Мне лучше использовать не типизированный enum и добавить в него методы типа toStringRole toSecurityBitmask?
А типизированные enum это как синтаксический сахар для тех ситуаций, где мы знаем, что данный enum будет трансформироваться в один скалярный тип? Типа, всегда string, и чтобы не нужно было делать лишние методы, мы можем прямо весь enum типизировать как string и нехуй.
Аноним 09/02/24 Птн 13:11:46 #119 №3041612 
>>3041589
Нет, нихуя.
У тебя есть роль. Есть энум со списком возможных ролей. И есть представления этой роли в разных процессах.
Аноним 09/02/24 Птн 13:13:44 #120 №3041616 
>>3041212
А тебе это зачем?
Аноним 09/02/24 Птн 13:19:17 #121 №3041626 
>>3041616
Чтобы кабанчика удовлетворить и он дал денег на комбикорм
Аноним 09/02/24 Птн 18:03:52 #122 №3042003 
>>3041626
А зачем тебе запрос чере d7 если у тебя уже есть выборка через старое апи? И в чем конкретно проблема?
Аноним 09/02/24 Птн 18:12:16 #123 №3042013 
>>3041612
Я нихуя не понял из твоего ответа. Что нихуя-то? Типа, ты к тому, что трансформацию этого enum под разные цели стоит пихать не в сам enum, а в те места, где он используется?
Аноним 09/02/24 Птн 18:58:54 #124 №3042073 
>>3041462
Слушай, так не смешно же...
Аноним 09/02/24 Птн 19:09:53 #125 №3042095 
16726944928710.mp4
>>3042013
>Допустим, у меня есть RoleEnum
>Я делаю им все, а потом еще и жопу им вытираю
>Нет, нихуя.
>У тебя есть
>роль
>энум со списком возможных ролей
>И есть представления этой роли в разных процессах
Аноним 09/02/24 Птн 19:25:43 #126 №3042119 
>>3042095
https://www.php.net/manual/en/language.enumerations.methods.php

Ну а чем это отличается от примеров из документации? Как я должен понять, что трансформация enum-значения в "нариман/мочух/анон" должна производиться в классе, в котором это происходит, а вот в документации
Suit::Hearts, Suit::Diamonds => 'Red'
прямо в методе enum и заебись.
Какие критерии? Нахуя тогда вообще нужны методы в enum, если не для этого?
Аноним 09/02/24 Птн 19:32:14 #127 №3042139 
>>3042119
Тяжело с дебилами, но походу других тут нет.
Давай начнем сначала. Зачем нужен enum? Для чего его используют?
Аноним 09/02/24 Птн 19:39:27 #128 №3042166 
Снимок экрана в 2024-02-09 19-37-44.png
Почему он не может просто остановится? Мне блять на каждый контейнера ctrlC + ctrlV делать?
Аноним 09/02/24 Птн 19:50:14 #129 №3042203 
>>3042139
Сорт оф собственный тип переменной. Чтобы можно было не

if ($user->role === 1) {}
else if ($user->role === 2) {}
...

И поди разбери, кто тут 1, а кто тут 2. А гораздо более явно:

if ($user->role === RoleEnum::ADMIN) {}
else if ($user->role === RoleEnum::MODERATOR) {}
...

Ещё и сам $user->role хранит не условное 1 (что это нахуй такое), а RoleEnum::ADMIN (всё сразу понятно).
Аноним 09/02/24 Птн 20:04:31 #130 №3042232 
Screenshot 2024-02-09 195320.png
>>3042203
Возвращаемся в наш пхп детсад для альтернативно одаренных и в сотый раз учимся читать. Открываем пикрелейтед и читаем по слогам.

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

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

Если тебе нужна информация или свойства чего-то, то ты блядь за этой информацией и свойствами лезешь в это что-то, а не в энум. О чем, между прочим, тебе было уже несколько раз написано блядь.
Аноним 09/02/24 Птн 20:14:30 #131 №3042240 
>>3042232
За каким хуем тогда нужны типизированный enum и методы в enum?
Аноним 09/02/24 Птн 20:19:29 #132 №3042242 
>>3042232
>типизированный enum
А что есть какой-то другой?

>методы в enum
Ну разумеется чтобы продублировать туда содержимое моделей, наебенить побольше логики, желательно разной и бизнес и отображения и конфига, и вызывать все это через статику в любом месте кода. Нахуя ж еще?
Аноним 09/02/24 Птн 20:20:10 #133 №3042244 
>>3042240
>>3042242
Аноним 09/02/24 Птн 20:27:26 #134 №3042251 
>>3042242
>А что есть какой-то другой?
В русских доках "Backed enumerations" переведены как "Типизированные перечисления". Хорошо, зачем нужны Backed enumerations?

>Ну разумеется чтобы продублировать туда содержимое моделей, наебенить побольше логики, желательно разной и бизнес и отображения и конфига, и вызывать все это через статику в любом месте кода. Нахуя ж еще?
Какой, блядь, логики? Ты что за хуйню несёшь? Я где-то говорил про логику? Нет, я сказал про сопоставление типа
RoleEnum::ADMIN => "администратор"
или
RoleEnum::ADMIN => 1
Всё, блядь. Никакой логики.
Ты на вопрос ответишь? Или они нужны как раз для того, чтобы бака из /pr/ мог повыёбываться?
Аноним 09/02/24 Птн 20:34:22 #135 №3042258 
>>3042166
Не работай под рутом, он тебе так и пишет что не может найти контейнер "all", может у тебя другое имя контейнера?
Аноним 09/02/24 Птн 20:35:58 #136 №3042260 
>>3042003
>А зачем тебе запрос чере d7 если у тебя уже есть выборка через старое апи?
Потому что Рыжиков на конференции сказал что D7 готов и это заебись, а старое использовать не нужно
Аноним 09/02/24 Птн 20:37:57 #137 №3042263 
Screenshot 2024-02-09 203130.png
>>3042251
>За каким хуем тогда нужны методы в enum
>Чтобы можно было засрать enum лишней логикой
>Я где-то говорил про логику? Нет, я сказал про сопоставление типа
>методы в enum
Ну я пока терплю. Издержки общения с дебилами.

>"Backed enumerations"
Продолжаем учиться читать. Открываем пикрелейтед, читаем по слогам.

Что непонятно? Нужны чтобы идентификаторы хранить. Ссылки на содержимое элемента перечисления. Перечисление это не список элементов, с названиями, датами и именами. Это список ВОЗМОЖНЫХ элементов, по сути список идентификаторов элементов.
Аноним 09/02/24 Птн 21:45:28 #138 №3042347 
изображение.png
>>3042263
Ты на вопрос отвечай, а не жопой крути, как тяночка в тиктоке. Если ЕДИНСТВЕННОЕ предназначение backed enumerations - приведение к какому-то типу, который можно сохранить в БД, то нахуя добавлять в enum методы? И нахуя писать в доках, что обычно методы возвращают сопоставление через match?
И ты, получается, это считаешь логикой? Да, охуенная логика. Прям столько параметров и условий, аж 1, если считать значение enum условием.
Аноним 09/02/24 Птн 23:33:44 #139 №3042421 
>>3042347
>приведение к какому-то типу, который можно сохранить в БД
Тупорылое животное блядь. Где я это писал? Что вообще означает "можно сохранить в бд"? Ты там угашенный, сука?
Ну да, ну да - издержки переписки с дебилами.

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

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

А тыкать еблом в то что уже было написано по три круга, это мне нахуй не надо. Я не учитель из класса коррекции, у меня нет доброго сердца и терпения возиться с увечными и недоразвитыми. Помогать надо тем, кто может воспользоваться этой помощью. А слепошарых долбоебов, которые два предложения прочитать не могут надо слать нахуй.
Аноним 10/02/24 Суб 02:38:59 #140 №3042502 
изображение.png
>>3042347
>приведение к какому-то типу, который можно сохранить в БД
Открою секрет, под капотом библиотек для работы с БД все типы приводятся к нужным типам для БД, даже обычные примитивы. Те же int в пыхе зависит от архитектуры, работает примерно как isize в расте для x64 будет 64 бита, что для постгреса будет как bigint. А хотя у того же постгреса есть куча других типов, которые имеют разную длину и они под капотом преобразуются туда-сюда. С остальными типами еще веселее, тот же uuid передается байтиками, а не строкой.
Аноним 10/02/24 Суб 16:11:36 #141 №3042881 
Чему по дефолту равен CURLOPT_CONNECTTIMEOUT? Куда смотреть в исходниках PHP? В гугле противоречивая информация, от 300 (5 минут) до 0 (бесконечность и далее).
Пытался сам затестить, но не получается. Если поставить секунду - да, через секунду отваливается. А вот если, скажем, минуту, то отваливается раньше по другим причинам. Пытался и через гулагнет подключиться к линкедин (рвёт раньше по Recv failure), и без подключение к сети (рвёт раньше по Could not resolve host), и к http://google.com:1234 (рвёт раньше по Failed to connect).
Аноним 10/02/24 Суб 17:03:49 #142 №3042957 
>>3042881
А тебе не приходило в голову что ждать коннекта и приконнектиться получив в ответ ошибку это мальца разные вещи?
Аноним 10/02/24 Суб 18:29:31 #143 №3043040 
Косяк.png
Помогите пожалуйста, почему у меня на таблице эта линия снизу справа появляется? Делал всё по гайду из видоса, но у автора этой линии нет, а меня появляется и я хз как с этим справиться. Укажите на ошибку в коде.
Аноним 10/02/24 Суб 19:00:52 #144 №3043083 
>>3043040
А нажать правой кнопкой и посмотреть какие стили там применены тебе автор из видоса запретил?
Аноним 10/02/24 Суб 19:06:43 #145 №3043092 
>>3043083
куда конкретно нажать правой кнопкой?
Аноним 10/02/24 Суб 20:04:34 #146 №3043175 
>>3042957
Да хуй знает, я понимаю, что там миллион вариантов, а я про работу HTTP знаю на уровне нихуя. Какие варианты в голову и пришли, так и попробовал.
Аноним 10/02/24 Суб 20:10:10 #147 №3043179 
>>3043092
Ну хорошо хоть не спросил что за правая кнопка и где она находится. Забыли про кнопку, сложно.

Погугли как посмотреть стили элемента на странице. Подсказка: прямо на твоем скриншоте, в гайде пол окна браузера занимает какая-то хуйня. Что бы это могло быть?
Аноним 10/02/24 Суб 20:13:48 #148 №3043182 
>>3043175
Ну тогда держу в курсе: оно нормально коннектится и таймаут нормально работает.

99% что твой коннект просто нахуй не обосрался тем к кому ты пытешься коннектиться и они шлют тебя нахуй рвя соединение.
Аноним 10/02/24 Суб 20:49:36 #149 №3043222 
>>3043179
А, ты об этом. Я смотрел уже там, все возможные стили отключал и включал поочереди, эффекта нет, точнее он есть, но всё ещё хуже становиться.
Аноним 10/02/24 Суб 20:55:23 #150 №3043233 
>>3043222
Ну все. Заканчиваем вкат. Надули, обманули. Стили не работают, а зачем учить то что не работает.

Пчел.
Ты реально хочешь чтобы я просил у тебя скриншот, потом тыкал тебя еблом в модификатор, который добавляет этот border? Потом ты такой: ой бля, НЕ ЗАМЕТИЛ.

Может ты просто сразу будешь внимательно читать что написано?
Аноним 10/02/24 Суб 22:42:54 #151 №3043335 
Посоветуйте докер образ для запуска пхп в связке с мускулом
Аноним 10/02/24 Суб 22:51:03 #152 №3043340 
>>3043335
Докер не предназначен для запуска как виртуалка с ахулиардом процессов. У тебя будет php-fpm в одном контейнере, а myql другом. Так правильно. Иначе тебе нужно в контейнер пихать систему инициализаци или какой-то демон который следит за дочерними процессами типа supervisord
Аноним 10/02/24 Суб 22:58:48 #153 №3043343 
>>3043335
Тебе надо минимум 3 контейнера, php-fpm, nginx и mysql. Если какие-то привязки к версиям не требуются возьми последние версии.
https://hub.docker.com/_/php
https://hub.docker.com/_/nginx
https://hub.docker.com/_/mysql
И лучше используй docker-compose для этого всего
Аноним 11/02/24 Вск 08:03:05 #154 №3043520 
>>3043182
>99% что твой коннект просто нахуй не обосрался тем к кому ты пытешься коннектиться и они шлют тебя нахуй рвя соединение.

Что-то ты как-то вообще не понял вопроса. Я нормально коннекчусь, куда нужно, просто хотел проверить работоспособность этого таймаута. А как её проверять - хер знает.
Поставлю вопрос иначе. Я правильно понимаю, что CURLOPT_CONNECTTIMEOUT это время, которое даётся на установку соединения, а CURLOPT_TIMEOUT это время ожидания ответа от сервера (запрос послать получилось, ждём ответа)?
https://itecnote.com/tecnote/php-curl-curlopt_connecttimeout-vs-curlopt_timeout/ Я просто нагуглил такую херню, и здесь сказано вообще другое. Однако, провёл тесты, и мои результаты вроде как опровергают написанное там.
CURLOPT_CONNECTTIMEOUT 10 секунд
CURLOPT_TIMEOUT 25 секунд
Сервер отвечает через 20 секунд
И подключение нормально происходит.
Если CURLOPT_CONNECTTIMEOUT это максимальное разрешённое время для соединения с сервером, то ничего не должно работать, сервер отвечает через 20, а ограничение 10. Сайт стрёмный, ясное дело, но, вероятно, это копипаста ответом со стаковерфлоу какого-нибудь, кто-то это где-то изначально написал же.
Аноним 11/02/24 Вск 15:47:54 #155 №3043828 
Screenshot 2024-02-11 153207.png
Screenshot 2024-02-11 153058.png
Screenshot 2024-02-11 154624.png
>>3043520
>CURLOPT_TIMEOUT это время ожидания ответа от сервера
>Что-то ты как-то вообще не понял
Да нет. Это ты нихуя не понял. Открываем документацию и читаем по слогам.

Если хочешь нормально проверить задержку - проверяй её локально, на СВОЕМ сервере, который ты настроишь как надо. Как симулировать медленный коннект гуглится в секунду.
Аноним 11/02/24 Вск 16:16:05 #156 №3043874 
Снимок экрана2024-02-1119-13-57.png
Какой же ахуенный редактор, подсвечивает все ошибки (подсвечивает любую хуйню рандомно)
Аноним 11/02/24 Вск 16:23:58 #157 №3043881 
изображение.png
>>3043874
Я не то чтобы хорошо помню, но, по-моему, это нихуя не валидный YAML. Попробуй напиши null после image и добавь пробел перед myadmin.
Аноним 11/02/24 Вск 16:25:40 #158 №3043884 
изображение.png
>>3043874
Хотя, погоди, это чё за хуйня вообще? myadmin как раз на первом уровне вложенности. А куда у тебя image упиздохал? Ты что сказать этим хотел?
Аноним 11/02/24 Вск 16:39:26 #159 №3043898 
>>3043881
>>3043884
Да все, поправил, зря быканул сорри
Аноним 11/02/24 Вск 16:46:43 #160 №3043903 
>>3041212
Бамп
Аноним 11/02/24 Вск 17:25:03 #161 №3043929 
>>3043874
Дорогой Малыш.
У каждого ахуенного редактора есть специальный баг трекер. Если ты нашел критическую ошибку, то специальные люди на зарплате прочтут твой репорт, воспроизведут баг и исправят его ближайшим недельным релизом.

Вот так выглядит баг трекер шторма https://youtrack.jetbrains.com/issues/WI . Если у тебя хватит сил и терпения долистать до конца первой страницы, то ты увидишь что все это были репорты с 6 (шестого) февраля, то есть за 5 (пять) дней.

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

Я уже даже не говорю про фичи редактора. Я говорю только про экспертизу в нюансах языка и работы с ним. Бесплатные альтернативы отстают на несколько лет минимум.
Аноним 12/02/24 Пнд 07:29:42 #162 №3044455 
>>3043929
Все эти баги - результат работы создателей шторма, которые добавляют всякую бесполезную херотень, о которой никто не просит.
Аноним 12/02/24 Пнд 10:36:07 #163 №3044583 
Правильно понял, что вызывать curl_error после curl_close в >=8 можно, потому что curl_init теперь возвращает объект, а не ресурс, и curl_close в этих версиях вообще не имеет смысла и какого-либо эффекта?
Аноним 12/02/24 Пнд 13:05:26 #164 №3044929 
изображение.png
Информация устарела же?
Аноним 12/02/24 Пнд 16:14:43 #165 №3045265 
>>3044455
>никто не просит
Вкатусик, фичи в шторм добавляются как раз по настойчивым просьбам.
https://youtrack.jetbrains.com/issues/WI?q=Type:%20Feature&p=600
Пользователи сами голосуют за то чего хотят больше.

Маленьким вкатуночкам, впервые познающим мир, это не очевидно. Но то что ненужно им - нужно кому-то другому. И наоборот.
А по моему опыту, всё это на самом деле нужно, просто ты об этом не знаешь. Чем выше твой грейд - тем больше тебе надо от шторма, тем больше времени он тебе экономит.
Аноним 12/02/24 Пнд 18:08:11 #166 №3045464 
>>3045265
Если выше грейд, то уходят на вс код или вим
Аноним 12/02/24 Пнд 18:37:01 #167 №3045527 
16884917041260.webm
>>3045464
А с самым высоким грейдом пишут в блокноте.
Аноним 12/02/24 Пнд 18:50:23 #168 №3045557 
>>3045527
Я после пяти лет в пыхашторме перекатился в вскод. Вимом пользуюсь для админских задач. Вскоде поддерживал большой беттинговый проект, например и не умер...

мимо
Аноним 12/02/24 Пнд 21:09:50 #169 №3045884 
16918144259350.mp4
>>3045557
>и не умер...
Ну жить можно кароч. ТЕРПИМО.
Аноним 13/02/24 Втр 01:26:54 #170 №3046246 
>>3045557
Хочу также, заебал этот жыдбейнс, пользуюсь разными ide и с каждой новой версией они пихают все больше говна, то какой-то голландский штурвал code with me, то новый интерфейс, то какую-то нейронку.Теперь этот монстр глючит и тормозит покруче ide написанной на жопаскрипте. Но перелазить тяжело когда ко всему привыкнешь, прям как курить бросаешь
Аноним 13/02/24 Втр 01:58:39 #171 №3046262 
Как правильно создать простой докер композе пхп + мускул + пхпмайадмин? Два дня ебусь с этими конфигами и каждый раз какая-то ошибка. Может есть максимально простой и правильный пример, в интернете только отсебятина с персональными высерами от каждого.
Аноним 13/02/24 Втр 02:44:13 #172 №3046276 
>>3046262
https://devilbox.readthedocs.io/en/latest/getting-started/install-the-devilbox.html
Аноним 13/02/24 Втр 03:29:01 #173 №3046291 
Screenshot 2024-02-13 031219.png
Screenshot 2024-02-13 031319.png
Screenshot 2024-02-13 031442.png
>>3046246
Вот уж действительно, пхп макаки это самые тупорыле существа на земле.
Вместо того чтобы просто снять галочку с плагина ты занимался какой-то хуйней, менял иде, страдал, привыкал. Ебать ты тупой.

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

На фоне этих охуительных историй претензии про иконки и скучные обои хотя бы реальными выглядят.
Аноним 13/02/24 Втр 04:11:54 #174 №3046297 
>>3046291
>пхп макаки
Я просто мимо проходил

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

>Ебать ты тупой.
А ты наверное умный, только окружающие этого не понимают, да?

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

Зачем ты так трясешься как чихуахуёныш?
Аноним 13/02/24 Втр 04:20:00 #175 №3046298 
1524214279166297364.jpg
>>3046297
Все, иди нахуй, заебанный жизнью.

Дальше я тебе показываю как это делать водин клик, ты пиздишь что уже заебался в один клик, дальше я тебе говорю что можно вообще не кликать, ты лечишь что устал ВОЗИТЬСЯ.

И поэтому уже сто лет как переехал в иде где нет багов, не надо нихуя настраивать и обновлять. Менюхи там из молочной пены, а кнопки из киселя.
Газку оформляй, малой.
Аноним 13/02/24 Втр 04:44:57 #176 №3046300 
>>3046298
Лол, сегодня ночь открытых дверей в психушке? Вон жс треде один изливает душу всю ночь. Ты тут чего-то кукарекнул, за меня тут додумываешь какую-то кисельную малафью. А в растотреде вообще один шиз прописался.
Аноним 13/02/24 Втр 05:03:36 #177 №3046304 
>>3046300
>сегодня ночь
Ебать дебил.
Аноним 13/02/24 Втр 08:24:25 #178 №3046377 
Надо ли учить алгоритмы для РНР-вакансий?
Аноним 13/02/24 Втр 09:34:02 #179 №3046441 
>>3046377
Надо.
Аноним 13/02/24 Втр 10:20:53 #180 №3046486 
Даже не знаю, стоит ли спрашивать.

У меня такая ситуация:
В объявлении метода написал, что первый аргумент должен иметь тип array.

100 раз перепроверил функцией gettype, что переменная, которую я передаю первой в метод, имеет тип array.

Все работает, все ахуенно, все отображается как надо.

Но код почему-то настойчиво пишет (в error_log) об ошибке, что первый аргумент вышеназванного метода должен быть массивом.
Аноним 13/02/24 Втр 10:25:16 #181 №3046489 
>>3046486
Ладно, похуй, даже не гадайте.
Аноним 13/02/24 Втр 10:35:06 #182 №3046496 
>>3046377
Не надо
Аноним 13/02/24 Втр 10:39:32 #183 №3046497 
>>3046441
А как вообще пишутся алгоритмы на РНР? Я вот даже не представляю как сделать связный список, потому что у нас нет ни структур, ни ссылок. По сути работаем с таблицами самого РНР, а не настоящей памятью.

>>3046496
Тогда надо заучивать стандартные функции РНР?
Аноним 13/02/24 Втр 10:47:04 #184 №3046499 
>>3046497
Надо.
Аноним 13/02/24 Втр 10:47:39 #185 №3046501 
>>3046497
>Тогда надо заучивать стандартные функции РНР?
Ты их никогда не выучишь лол, в пыхе они коварным образом с разной сигнатурой и спасает только подсветка ide. Но основные для работы с массивами, строками и файлами лучше знать
Аноним 13/02/24 Втр 11:40:02 #186 №3046551 
>>3046501
>>3046497
Что там, блять, заучивать?
Если ты работаешь с кодом, то все само заучивается.
Если не помнишь сигнатуру метода - гуглишь "как сделать хуйню нейм php" и первым результатом высвечивается мануал.
Если и тут нет удачного конца, то гуглишь "функции работы с хуйня нейм php". Все.

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

Какое же школярское отношение к программированию. Не надо ничего зубрить, все само со временем присосется, а если не помнишь, мануал для этого и написан!
Аноним 13/02/24 Втр 12:45:06 #187 №3046697 
>>3046551
На собесе как на экзамене спрашивают и надо рассказать, иначе сделают вывод, что не знаешь РНР и не возьмут на работу. Сейчас даже на Битрикс на собесах дрючат.
Аноним 13/02/24 Втр 14:39:57 #188 №3046841 
>>3046377
Для говнособесов не помешает. Для работы не надо
Аноним 13/02/24 Втр 17:50:50 #189 №3047177 
> Обратите внимание, что любые необязательные аргументы должны быть указаны после любых обязательных аргументов, иначе они не могут быть опущены при вызове. Рассмотрим следующий пример:

А чё, если я использую синтаксис именованных аргументов, ситуация не меняется? Я должен в объявлении метода указать их после обязательных? Типа, чтобы те, кто не именованные используют, могли нормально работать с методом?
https://3v4l.org/NToiL#v8.3.2
Аноним 13/02/24 Втр 20:42:53 #190 №3047473 
>>3047177
>А чё, если я использую
Ошибка на 16 строке, а не там где ты "используешь".
Аноним 13/02/24 Втр 21:06:23 #191 №3047493 DELETED
Аноним 13/02/24 Втр 22:12:57 #192 №3047571 
>>3047493
Пшел вон, животное.
Аноним 13/02/24 Втр 23:36:35 #193 №3047675 
Бля как же заебало нихуя не делать, ебанись просто. С этого момента возобновляю вкат, отпишусь в тредике через неделю, надесь не уебут за вниманиеблядство и дневничкизм
Аноним 14/02/24 Срд 01:23:51 #194 №3047730 
изображение.png
Ну как там, прикручиваете алису к Битриксу? лол
Аноним 14/02/24 Срд 01:26:48 #195 №3047731 
>>3047730
Зачем ты такое смотришь? Ты битриксойд что ли?
Аноним 14/02/24 Срд 01:32:56 #196 №3047732 
>>3047731
Попалось на просторах ютюба
Аноним 14/02/24 Срд 09:20:30 #197 №3047833 
>>3047730
>прикручиваете алису к Битриксу
звучит эротично
Аноним 14/02/24 Срд 10:16:18 #198 №3047902 
Помогите понять в чем я туплю.

Есть класс, допустим TestClass.

Все его методы - статические.

Его неймспейс - App\Test;

Есть скрипт - test.php, который подключает test.html, test.html в свою очередь использует методы TestClass так: <?= TestClass::someMethod() ?>

В самом скрипте test.php прописан use App\Test\TestClass.

И...test.html не знает класс TestClass.

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

Что не так? Где я зеваю?
Аноним 14/02/24 Срд 11:27:24 #199 №3047984 
Кто тебя учил.mp4
>>3047902
Все смешалось. Ты как вообще язык учишь? По какому гайду?

1) Программа на пхп это один большой файл. Все что мы хотим в этой программе использовать: функции, классы; должно быть включено в этот файл.

2) Отдельные файлы в этот общий файл подключаются с помощью спец команд типа include и require.

3) Неймспейс - это просто индивидуальный идентификатор класса в нашем общем файле, чтобы была возможность иметь два класса с одинаковым названием.

4) use это "импорт" в том смысле что мы "импортируем" ИМЯ класса из его неймспейса в наш "текущий" неймспейс. Это просто АДАПТАЦИЯ ИМЕНИ. Он ничего никуда не подключает.

5) Соответственно имея это "адаптированное имя" нам все ещё нужно подключить файл с этим классом. Чтобы не делать это руками для сотен и тысяч классов в пхп есть механизм АВТОЗАГРУЗКИ КЛАССОВ. https://www.php.net/manual/en/language.oop5.autoload.php

6) В современной пхп разработке используется автозагрузка предоставляемая менеджером пакетов composer на основе стандарта psr-4 https://www.php-fig.org/psr/psr-4/ .
Если коротко, то это нужно чтобы нормально автозагружать любые чужие классы из чужих библиотек полученных через менеджер пакетов.

Это основа, ЭТО БАЗА. Если ты собрался писать на пхп, то ты должен уметь пользоваться композером и сетапить свой проект под работу с ним, подключать автозагрузку итд. Если этого в твоем курсе/гайде нет - выкинь его нахуй и найди нормальный.
Аноним 14/02/24 Срд 13:25:25 #200 №3048132 
изображение.png
А чего так запарно сделать аккаунт на гитхабе?
Посчитать, конечно легко, но не 10 же раз!
Аноним 14/02/24 Срд 15:53:22 #201 №3048310 
>>3047902
>use
Значение знаешь?
Аноним 14/02/24 Срд 17:15:17 #202 №3048439 
>>3047984
Я все это знаю. И автозагрузка классов у меня есть через композер. У меня все работает кроме этого момента.

В TestClass.php:

namespace App\Test;

class TestClass
{
public static function someMethod(): string
...
}

В test.php:

use App\Test\TestClass;
require_once('test.html');

В test.html:
<?= TestClass:: someMethod() ?>

Текст ошибки: test.html не нашел класс TestClass

Но ведь test.php прописал для автозагрузки use в начале своего скрипта и потом уже подключил test.html
Аноним 14/02/24 Срд 17:49:32 #203 №3048525 
IMG20240214174907.jpg
>>3048439
https://www.php.net/manual/ru/language.namespaces.importing.php
Аноним 15/02/24 Чтв 01:13:43 #204 №3049102 
>>3047984
Про Богдана Хмельницкого забыл душнила
Аноним 15/02/24 Чтв 01:19:08 #205 №3049104 
Screenshot 2024-02-15 001347.png
Screenshot 2024-02-15 001422.png
Screenshot 2024-02-15 003658.png
Screenshot 2024-02-15 003824.png
>>3048439
>Я все это знаю.
>require_once('test.html');
HTML же не понимает пхп теги. У тебя там даже подсветки в редакторе нет, лол. Как ты код-то этот писал вообще?
Шаблоны тоже должны быть в .php файлах. Вот так бы выглядело то что ты понаписал в пхп файле. Тебе сразу показывается что ты "адаптированное имя" из пункта 4) >>3047984 не указал. А для HTML твоё имя класса это просто текст, который преобразуется в пхп код в момент подключения. На втором пике то как должен выглядеть код после фикса.

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

Это не какие-то секретные знания. Это натурально база. Шаг ноль в проектировании приложения. Автозагрузка, работа через Index.php, шаблонизация, роутинг. Это бейби степ. Это все ПЕРЕД началом работы.
Шаг один будет MVC. Потом DI, ORM, PSR-7, Middleware, Event Loop. Только на этом моменте у тебя будет современное php приложение.

Поэтому "Я все это знаю" сомнительное утверждение. Рекомендую перепроверить.
И очень рекомендую убедиться что ты учишься по актуальному материалу, составленному компетентным специалистом.
Аноним 15/02/24 Чтв 07:02:39 #206 №3049164 
>>3049104
Окей, спасибо за развернутый ответ.

Я не понимаю когда я должен писать use + неймспейс класса.

Я думал так:
Если файл содержит упоминание класса, трейта или интерфейса из другого неймспейса, то я должен вверху файла прописать use.

А что насчет переменных, в которых хранится экземпляр класса?

т.е. на TestClass::doSomething() html поругается (что класс в html не найден), а на
$testClass->doSomething() уже нет.

>Шаблоны тоже должны быть в .php файлах.
Не знал об этом, если это действительно так, то буду держать в уме.

>пик2
Да, прикольно, мне почему-то не приходила в голову мысль прописывать use в самом html файле.
Аноним 15/02/24 Чтв 10:03:52 #207 №3049242 
>>3049164
>мне почему-то не приходила в голову мысль прописывать use в самом html файле
Потому что use это конструкция ПХП. Нет никаких юзов в html, але.
Ты можешь хоть txt файл создать. Хоть .py питоновский. Пхп парсит текстовый файл во время инклуда и если видит свои теги, то пытается выполнить текст, в них обернутый, как код.

Вот и вопрос: нахуя в питоновском файле, в питоновской ide писать код на пхп?
Ответ: за тем же зачем в html файле писать код на пхп - нахуй не надо.
Если ты пишешь пхп код, то делай это в пхп файле чтобы ПОДСВЕТКА СИНТАКСИСА И ОШИБОК блядь была. Самому-то пхп поебать, для него весь код это текст. Это ТЕБЕ надо.

>Я не понимаю когда я должен писать use + неймспейс класса.
>Я думал так
Нет не так.
Ты должен указать имя класса, который ты используешь. Неймспейс - это тоже часть имени. Ты можешь в каждой строчке писать полное имя класса App\Test\TestClass::someMethod(), а можешь один раз сделать импорт и дальше писать TestClass::someMethod().
Тебе уже рассказали >>3048525 что твоя ошибка в том что ты не знал что use работает только для текущего файла.

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

Короче, ты тратишь и мое и свое время.
У тебя в каждом файле должен быть класс, каждый класс должен быть в своем неймспейсе и подгружаться автозагрузкой. Единственный файл-исключение из этого правила Index.php - входная точка твоего приложения. ВСЕ. Все проблемы с импортами и подключением файлов ЗАКРЫТЫ раз и навсегда. Большая часть пхп макак в душе не ебет какой там скоуп у use. И правильно - есть вещи поважнее.
Аноним 15/02/24 Чтв 10:47:23 #208 №3049282 
>>3049242
Окей, спасибо за ответ.
Аноним 15/02/24 Чтв 11:00:54 #209 №3049295 
>>3017266 →
Я закончил задачу список студентов.
Не идеально, конечно, но закончил.
Имеет смысл показывать код, чтобы ты сказал, что мне следовало бы сделать лучше?
Если тебе влом смотреть, то ок. Я не против. :^)
Я начал курс по Laravel и собираюсь решать задачу с файлообмеником с помощью Laravel, а не Slim.
Наверное уже пора, учить фреймворк?
Аноним 15/02/24 Чтв 12:14:20 #210 №3049369 
>>3046276
Говно какое-то
Аноним 15/02/24 Чтв 17:45:17 #211 №3049844 
>>3034858 (OP)
Допустим есть метод, где мы получаем определенные поля, по типу
...
$arProduct['REVIEWS'] = Review::getProductReviews($arProduct['ID']);
$arProduct['QUESTIONS'] = Question::getProductQuestions($arProduct['ID']);
...
Нужно сделать так, чтобы клиент мог указать какие поля не нужно загружать из бд.
То есть, если $fieldsToLoad = [REVIEWS, QUESTIONS], значит их не нужно передавать клиенту. Как это возможно сделать? Есть такой вариант:
$fieldsToLoad = [
'REVIEWS' => function () use ($arProduct, $reviewsSize) {
$arProduct['REVIEWS] = Review::getProductReviews($arProduct['ID']);
},
'QUESTIONS' => function () use ($arProduct, $questionsSize) {
$arProduct['QUESTIONS'] = Question::getProductQuestions($arProduct['ID']);
}
]

foreach ($fieldsToLoad as $fieldName => $fieldLoader) {
if (!in_array($fieldName, $notLoadFields)) {
$fieldLoader();
}
}

Но проблема в том, что возможно нужно будет добавить общее условие для каких то полей, как пример:
...
if ($block == 60) {
$arProduct['REVIEWS'] = Review::getProductReviews($arProduct['ID']);
$arProduct['QUESTIONS'] = Question::getProductQuestions($arProduct['ID']);
}
...
И тогда получается не очень, так как для каждого элемента массива $fieldsToLoad придется писать отдельное условие. Есть ли более лучшее решение вопроса?
Аноним 15/02/24 Чтв 18:00:25 #212 №3049914 
>>3049844
Лучше показывать код через онлайн редакторы кода, например: https://3v4l.org/
Более читаемо.
Аноним 15/02/24 Чтв 21:46:51 #213 №3050256 
>>3049914
>>3049844
Если так легче
https://3v4l.org/hKCiV
Аноним 15/02/24 Чтв 22:32:17 #214 №3050365 
>>3049844
Горе луковое.
У тебя же АКТИВ РЕКОРД для этого и есть. С построителем запросов. Фреймворк какой у тебя?
Вот так работа со связями в Yii2 происходит https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#lazy-eager-loading . Ты можешь указать релейшен, который нужно загрузить, с помощью with().

В ларавеле немного по другому, но суть та же. Берется пользовательский запрос и с помощью актив рекордского билдера преобразуется в запрос в базу, а ответ просто преобразуется в json. И все. Никто ничего не собирает руками по массивам как долбаеб.
Аноним 15/02/24 Чтв 23:01:15 #215 №3050440 
>>3050365
Он битриксойд
Аноним 15/02/24 Чтв 23:33:30 #216 №3050493 
17018840242140.png
>>3050440
Ну так пусть битриксовский билдер использует. Он для того и предназначен чтобы динамически данные выбирать.
Аноним 16/02/24 Птн 01:56:44 #217 №3050605 
>>3050493
Какой билдер? Там кусок говна в бд, вываливается таким же куском говна в виде массивов в которых ключи написаны капслоком
Аноним 16/02/24 Птн 02:22:49 #218 №3050615 
>>3050605
Ну тогда сосать не разгибаясь, хули.

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

Давать джуну самому придумывать динамическое формирование запросов, да еще и поверх битриксовой уебищной орм. Это надо иметь уровень похуизма ПОЕБАТЬ АБСОЛЮТЛИ. Хоть сгори, хоть взорвись нахуй.
Аноним 16/02/24 Птн 02:54:02 #219 №3050622 
unnamed.jpg
>>3050605
Битриксопроблемы
Аноним 16/02/24 Птн 14:24:22 #220 №3050979 
>>3050615
>Я бы как минимум элокент прикрутил
Хуй у тебя чего получится. Там у битриксов основная проблема что данные не хранятся просто как обычные данные у нормальных людей, а по большей части инфоблоки это типа таблиц в БД но с нюансом есть исключения всякие другие модули, там каждый модуль может по своему колхозить с БД, но в основном используется инфоблок.
Список инфоблоков хранится в одной таблице, элементы инфоблока и часть его полей в другой, список свойств (property) для инфоблоков это аналог поля в таблице хранится в третьей, а значения по propertyId для iblockId хранятся в четвертой, пятой, десятой пятидесятой таблице, они там колхозили решение чтобы не тормозило и размазали проперти по таблицам. А есть еще 1 и 2 версия инфоблоков, там внутри много говнокода костылей чтобы они туда-сюда были совместимы.

В итоге чтобы получить список новостей в разделе "О компании" нужно сделать минимум 4 запроса под капотом. С товарами еще веселее.

Это хуйня тянется из 00х, когда были популярны вебмастера, которые мышкой через админку всю хуйню делали и собственно именно поэтому такая хуйня была придумана. Столько времени прошло, они уже там ML для рекомендаций прикручивают, а как была жопа при работе с данными так и осталась.
Там была какая-то orm, но пока я работал там она была говняная, чего-то как-то генерировалось в рантайме, а документации как оно работает не было нихуя. Как сейчас хз 3 года это говно не трогал, скорее всего ничего не изменилось, а это поделие сделали чтобы дополнить список фич.
Аноним 16/02/24 Птн 22:40:33 #221 №3051728 
На пхп откликов хуева туча. А говорили что он умер иди туда там конкуренции нет. По итогу ебланы питонисты теперь и в пхп полезли и создали огромные числа в откликах. Как жить как жить
Аноним 17/02/24 Суб 03:03:33 #222 №3051849 
>>3051728
Нихуя себе открытие. Оказывается там где можно поднять относительно легких денег возникает конкуренция. И все пиценосцы города мечтают сидеть в теплом офисе и буковки на клавиатуре набирать.

Иди в пятерочку, там щас жуткий дефицит кадров.
Аноним 17/02/24 Суб 04:57:27 #223 №3051867 
>>3051849
Нихуя ты долбоёб. Ещё недавно на пхп конкурс был раз в 10 меньше. Про это речь. Петухонеры поняв что у себя они не устроятся потому что там только гениев с 15 летним стажем берут пришли в пхп
Аноним 17/02/24 Суб 07:32:23 #224 №3051876 
>>3051728
>Как жить как жить
Теперь только фуллкеком.
Аноним 17/02/24 Суб 09:54:42 #225 №3051921 
>>3051867
С чего ты взял что это именно питонщики?
Аноним 17/02/24 Суб 10:04:24 #226 №3051925 
Обязательно использовать Api Platform для создания REST API приложения? Почему нельзя просто свои контроллеры написать, которые возвращают жсоны?
Аноним 17/02/24 Суб 10:06:45 #227 №3051926 
>>3051925
Не обязательно.
Аноним 17/02/24 Суб 10:13:34 #228 №3051930 
>>3050979
Ну задача не для джуна конечно, но осиливаемая. Я писал подобное поверх 1с-ной параши, там тоже регистры, реестры, списки свойств. Короче не реляционная дрисня. Современные орм достаточно гибкие чтобы даже с таким работать.
Аноним 17/02/24 Суб 12:02:34 #229 №3052018 
Заходим на стрим Валентина с канала Пых
https://www.youtube.com/watch?v=ZPGjJDIZm4Y
Аноним 17/02/24 Суб 12:16:25 #230 №3052027 
>>3052018
Зачем пыхомакакам алгоритмы?
Аноним 17/02/24 Суб 12:35:52 #231 №3052039 
>>3052027
Чтобы перекатиться с пыхи на нормальный стек. Очевидно же...
Аноним 17/02/24 Суб 12:45:07 #232 №3052043 
>>3051728
Если они не осили питон, то и пхп не осилят
Аноним 17/02/24 Суб 12:45:43 #233 №3052044 
>>3052027
Чтобы повысить уровень дискуссий в пхп-сообществе
Аноним 17/02/24 Суб 13:46:02 #234 №3052067 
>>3051728
Выход есть всегда. Например, Ruby, Scala. Огромный спрос на Delphi и т.д.
Аноним 17/02/24 Суб 13:47:26 #235 №3052068 
>>3052067
Perl забыл. Ажиотаж лютый.
Аноним 17/02/24 Суб 14:18:37 #236 №3052086 
image
image
image
>>3052043
Они не осилили конкуренцию из миллиард гениев на место
Аноним 17/02/24 Суб 14:56:24 #237 №3052098 
>>3052086
Такие отклики следствие неадекватных требований в вакансии (неграмотная хрюша).
Нет опыта - это красная тряпка. Ведь любой вкатун уверен, что этому критерию он соответствует, что люди там очень нужны, его всему обучат, а базу он уже посмотрел в видосах на ютубе.
По факту им нужен джун+, что соответствует 1-3 годам коммерческого опыта в других вакансиях.
Аноним 17/02/24 Суб 14:59:35 #238 №3052105 
>>3052098
И где им неопытным взять 1 3 года опыта?
Аноним 17/02/24 Суб 15:10:35 #239 №3052116 
>>3052105
Сам знаешь. Не мы такие - жизнь такая. Хочешь сотыги, умей крутиться, умей крутить.
Аноним 17/02/24 Суб 20:49:50 #240 №3052754 
>>3052086
Вронтенд это сейчас любая проститутка с курсами дизайнера.
Аноним 18/02/24 Вск 09:29:32 #241 №3053414 
>>3052754
Так и там нужно дохуя знать, вряд ли проститутка осилит эту хуйню до конца, а если каким-то чудом чудом вкатится то через полмесяца сама съебет
Аноним 18/02/24 Вск 10:58:51 #242 №3053453 
>>3053414
Часто кто-то ноет о том, что сейчас кто ни попадя суется в программирование.
Мне кажется, что достаточно иметь опыт самостоятельного обучения программированию, чтобы понять, что программирование это сложно.

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

Короче, проходит тот, у кого больше свободного времени (или хорошее здоровье и развитая сила воли), у кого больше терпения.
Аноним 18/02/24 Вск 11:06:43 #243 №3053455 
>>3053453
Или если у тебя Pussy pass и к тебе толпами бегут анальники на помощь ничего не требуя взамен. Или если ты Ерохин альфач и анальники от страха писаются в штаны и бегут тебе на помощь чтоб угодить своему харизматичному господину
Аноним 18/02/24 Вск 11:10:09 #244 №3053460 
>>3053455
Тнусы и альфачи как всегда поднасрали
Аноним 18/02/24 Вск 11:42:33 #245 №3053468 
>>3053460
Правда жизни, щито поделать
Аноним 18/02/24 Вск 12:24:05 #246 №3053490 
>>3053414
Ну они и не осиливают, мой посыл что сейчас любая тупая пизда которая даже винду переустановить не может, называет себя фронтендером потому что купил курсы где рассказали что такое хтмл, или закончила шарагу на дизайнера где показали красивые картинки на слайдах. Вот они и создавют все эти отклики.
Аноним 18/02/24 Вск 12:29:41 #247 №3053494 
>>3053490
МЯУ я такой тупой пизд, я шарагу по ИВТ закончил и откликался, хотя нихуя не шарил, и сейчас нихуя не шарю, пытаюсь подготовиться.
Аноним 18/02/24 Вск 12:30:20 #248 №3053495 
>>3053494
>пытаюсь подготовиться
через аниме и доту 2?
Аноним 18/02/24 Вск 12:42:06 #249 №3053505 
>>3053495
Типа того
Аноним 18/02/24 Вск 23:10:05 #250 №3054038 
>>3051728
Ну на битриксе ещё не совсем жопа, но отклики тоже подросли. На стажировке раньше было 60 челов, щяс 100. А на другой стажировке было 15 челов, щяс 40. Такие дела.
Аноним 18/02/24 Вск 23:15:25 #251 №3054042 
Кстати что думаете о битриксе? Шансы-то в целом есть? Я вот знаю, что надо знать, да и курсы нарыл. Вот, что необходимо знать: HTML, CSS, JS, JQUERY, PHP, SQL и вкратце теорию БД, ООП, вкратце MVC, паттерны. Ну и по мелочи типа базовых знаний: работа с файлами, шо такое фтп, хттп, веб-сайт, как парсить, фреймворки для парсинга.

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

Всё это изучаете кароче, делаете тупой пет-проект тупого интернет-магаза с гитом и гитхабчиком. Всё.

У нормального человека это занимает около 2 месяцев. Теперь вы джуниор-битриксоид с великой зряплатой 35 тысяч рублей до вычета налога.

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

Ну так что. Шансы есть? Гои везде прогреты, но на битриксе кажется не до конца! Влетаем, гои!!!
Аноним 19/02/24 Пнд 00:05:32 #252 №3054070 
>>3054042
Ну что ж. Ждём 5к откликов теперь и на Битрикс.
Просто какой-то глюк вселенной. Людям уже пофигу куда вкатываться, главное чтобы айти. Вместо того чтобы заняться делом прыгают с одного лобка на другой как блоха шлюхи
Аноним 19/02/24 Пнд 10:21:56 #253 №3054174 
>>3041195
Расскажи, как ты количество запрос в базу смотришь
Аноним 19/02/24 Пнд 12:14:09 #254 №3054288 
>>3054174
Уже удалил эту хуйню, точно не помню в каком месте, если авторизоваться под админом, то вверху будет панель где можно включить отладку
Ещё один рудимент для вебмастеров 00х лол
Аноним 19/02/24 Пнд 20:51:10 #255 №3055047 
изображение.png
https://3v4l.org/jhfJU#v8.3.3

Такого из коробки в PHP нет, да?
Аноним 20/02/24 Втр 00:34:56 #256 №3055379 
Скажите пожалуйста, реально ли вкатиться в битрикс на удаленку за условно пол года или джунов вообще не берут. Сам живу в мухосрани, 0 вакансий ирл.
Аноним 20/02/24 Втр 07:57:46 #257 №3055506 
>>3055047
Да нет.
https://3v4l.org/Vt9F5#v8.3.3
Аноним 20/02/24 Втр 08:48:09 #258 №3055565 
>>3055379
Если сможешь заниматься по 8 часов в день, то сможешь за полгода.
Аноним 20/02/24 Втр 11:00:16 #259 №3055703 
>>3055506
Про это знаю, это другое.

case one = "one";
case two = "two";
case three = "three";
...

Вот нахуя это дублирование? У меня уже есть one two three в непосредственно именах кейсов.
Аноним 20/02/24 Втр 11:14:46 #260 №3055721 
>>3055379
Да, я в прошлом году 2 таких работы стажером удаленно нашел
Аноним 20/02/24 Втр 11:22:57 #261 №3055740 
>>3055565
>Про это знаю, это другое.
Да нет, нихуя не другое. Просто у тебя название и значение СОВПАЛИ. А так бывает почти никогда. https://3v4l.org/XF8aZ#v8.3.3

>Вот нахуя это дублирование?
Лол, так у тебя то же самое дублирование.
>function fromName (string $caseName): static
Ты значение $caseName откуда-то взять должен. И убедиться что оно правильное. Логично что правильные значения хранятся в самом энуме.

А вообще проблема в том что ты не понимаешь зачем энум в принципе нужен. Какие проблемы он решает. Это вообще сложный концепт даже для ооп. Энум это не просто значение, это концепция выбора. Это одновременно и выбранный вариант и список всех вариантов. https://3v4l.org/mFmjF#v8.3.3
Аноним 20/02/24 Втр 11:23:28 #262 №3055741 
>>3055703
>>3055740
Аноним 20/02/24 Втр 11:52:40 #263 №3055783 
>>3055740
>Просто у тебя название и значение СОВПАЛИ. А так бывает почти никогда

Почему? Почему вот ты решил, что hex это каноничное значение? Почему не так? https://3v4l.org/rskpC#v8.3.3
Аноним 20/02/24 Втр 13:38:48 #264 №3055930 
>>3055783
Ну и зачем ты пытаешься превратить enum в обычный class? Энум тебе для твоего конвертора цветов зачем нужен вообще?

Энум это не хранилище значений. Хранилище значений это обычный объект. Энум сам по себе вообще ничего не делает. Это способ заставить клиентский код СОВЕРШИТЬ ВЫБОР. А как этот выбор интерпретировать, энума уже не касается - это та самая БИЗНЕС ЛОГИКА. https://3v4l.org/ibrZL#v8.3.3

А возможность в энуме задавать "значения" нужна для другой ситуации. Когда нужно enum сохранять в хранилище. https://3v4l.org/b028I#v8.3.3
В этой ситуации варианты энума нужно сопоставлять с тем что мы сохраняем. Потому что офк мы сам объект энума сохранить не можем. То есть мы создаем ИДЕНТИФИКАТОРЫ вариантов энума, по которым можем этот энум в нужном нам выборе ВОССТАНОВИТЬ. Метод потому и называется from(). https://dbfiddle.uk/tudenGfk

Соответственно 1, 2 и 3 это никакие не "значения". Энум это по сути способ в пхп коде создать конструкцию REFERENCES colour(id). Правильно это называется CONSTRAINT.
Аноним 20/02/24 Втр 22:22:05 #265 №3056773 
Всем привет.

Есть ли какой-то способ проверить одинаковый ли контент в двух файлах excel?

Если бы не метаданные, то можно было бы использовать хэш.

Вопрос не относится к PHP, но планирую сравнивать excel файлы в PHP. поэтому решил задать здесь.
Аноним 21/02/24 Срд 08:23:59 #266 №3057163 
>>3056773
А чего там метаданные потереть нельзя? Привести файлы к общему виду
Аноним 21/02/24 Срд 15:59:11 #267 №3057941 
Проработал год макакой, ебал это все в рот. В планах съебаться в село и жить на доход от продажи овощей. Ебал это ваше айти в рот, делать тут нехуй.
Аноним 21/02/24 Срд 17:14:31 #268 №3058051 
>>3057941
Ебать за год не смочь пхп осилить. Нервничал и потел поди, когда просили что-то пофиксить?
Аноним 21/02/24 Срд 17:16:32 #269 №3058054 
>>3057941
>доход от продажи овощей
Солидно. А где покупать овощи на продажу планируешь?
Аноним 21/02/24 Срд 20:22:10 #270 №3058297 
>>3058054
>А где покупать овощи на продажу планируешь?
Проиграл.
Аноним 21/02/24 Срд 21:33:03 #271 №3058413 
>>3058051
Если и да, то что?
Аноним 21/02/24 Срд 23:28:39 #272 №3058630 
>>3058413
Ну ты тупой
Аноним 21/02/24 Срд 23:33:54 #273 №3058635 
>>3058630
Почему?
Аноним 21/02/24 Срд 23:54:34 #274 №3058661 
>>3058635
Тебе же тупому ответили, тупой
Аноним 21/02/24 Срд 23:56:12 #275 №3058665 
>>3058661
Потому что я Нервничал и потел поди, когда просили что-то пофиксить ?
Аноним 22/02/24 Чтв 02:49:51 #276 №3058724 
>>3058665
Потому что ты первую часть поста прочитать не можешь, тупой
Аноним 22/02/24 Чтв 10:33:42 #277 №3058828 
Научился писать круды на фреймворке, но не понимаю куда писать свой код. Везде пишут, что нельзя всё пихать в контроллеры, потому что они становятся слишком толстыми. А куда писать тогда этот код?
Аноним 22/02/24 Чтв 10:34:49 #278 №3058830 
>>3058828
А какой у тебя код? Может твой код крудам и нахуй не нужон?
Аноним 22/02/24 Чтв 11:00:22 #279 №3058864 
>>3058828
Не то что нельзя, просто со временем это будет выглядеть некрасиво. По идее, вся логика, не зависящая от того как к тебе пришёл запрос, выделяется в сервисы.
Аноним 22/02/24 Чтв 12:03:23 #280 №3058921 
изображение.png
>>3058828
Аноним 22/02/24 Чтв 12:18:32 #281 №3058941 
>>3058828
В сервисы
Аноним 22/02/24 Чтв 13:44:48 #282 №3059076 
А уметь писать гидраторы тоже нужно для первой работы?
Аноним 22/02/24 Чтв 16:41:07 #283 №3059355 
>>3058921
Почему по Ларавелю столько всего пишут интересного, а по Симфони кроме доки нифига нет? Даже та единственная книга от автора Симфони и то про что угодно, но не про Симфони.
Аноним 22/02/24 Чтв 16:41:30 #284 №3059356 
>>3059076
Нет.
Ничего не нужно.
Приходишь, падаешь на порог и молишь их, чтобы тебя взяли. Они увидят твое отчаяние и возьмут на работу Джуниор php программист за 15 тысяч рублей.
Аноним 22/02/24 Чтв 16:43:19 #285 №3059358 
>>3059356
Сейчас даже для Битрикса стали Лару за каким-то фигом требовать.
Аноним 22/02/24 Чтв 16:43:38 #286 №3059359 
>>3059356
>за 15 тысяч рублей
Ну не дорого так-то.
Аноним 22/02/24 Чтв 16:43:56 #287 №3059360 
>>3059358
Правильно, пора переходить на нормальный вариант
Аноним 22/02/24 Чтв 16:51:48 #288 №3059365 
>>3059360
Я этого чела посмотрел, он там берёт интервью у битриксоида
https://www.youtube.com/watch?v=KZ5LbE5G4Jw
Вкратце, работать можно, но Ларавель там не нужен, на нём всё равно не дадут программировать. А реально нужны сертификаты по Битриксу.
Аноним 22/02/24 Чтв 16:59:23 #289 №3059371 
image
Здравствуйте, сильно не ругайтесь, я питонист. Я учил питон год каждый божий день после тяжёлой смены на вахте, учил жагну, но когда я пришел на хх ру там меня ждало разочарование ... Никто мне даже оттуда не написал и не позвонил....
Можно к вам? Кажется вкат через пхп имеет больше шансов... Пхп всегда стоял особняком в гордом одиночестве от остальных языков. Возможно в этом есть спасение? Ларавел норм?
Аноним 22/02/24 Чтв 17:06:11 #290 №3059382 
>>3059355
Потому что простое всегда побеждает сложное
Аноним 22/02/24 Чтв 17:11:48 #291 №3059397 
>>3059371
Наслушался долбоебов теоретиков? Тут по тредам бегает такой го-даун на пхп обиженный.

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

Если захочется в микросервисы, то можно спираль посмотреть - лонг ранинг пхп фреймворк, со своим сервером написанном на goвне и со всеми psr стандартами
Аноним 22/02/24 Чтв 17:16:58 #292 №3059409 
>>3059371
Нет смысла менять язык. Вкат в пхп легче не будет, а времени ты потратишь больше на изучение нового языка. К тому же будут проблемы с запоминанием, так как будет путаница между двумя языками, и падение мотивации, когда столкнёшься со сложностями в пхп.
Если уверен в знаниях по питону, то просто нарисуй себе год опыта и вкатывайся. В пхп сейчас тоже приходится год опыта рисовать, потому что на собесы не приглашают без него.
Аноним 22/02/24 Чтв 17:17:11 #293 №3059410 
>>3059365
Чел на интервью работает с битрикс24, а это немного другое.
Аноним 22/02/24 Чтв 17:18:23 #294 №3059412 
>>3059410
Есть ещё разные битриксы? В чём разница?
Аноним 22/02/24 Чтв 17:21:51 #295 №3059416 
>>3059397
Стал жертвой маркетинга что у питона большое сообщество что легко учить что нужны прогеры питонисты (
Аноним 22/02/24 Чтв 17:34:30 #296 №3059426 
>>3059371
В автотесты пиздуй, если питон знаешь - деньги теже, геморроя меньше
Аноним 22/02/24 Чтв 17:36:49 #297 №3059429 
>>3059412
Есть 1с-битрикс, CMS в которой можно накликивать интернет-магазины мышкой. На ее основе сделали битрикс24 - полноценная CRM со всякой аналитикой и прочей хуетой
Аноним 22/02/24 Чтв 18:00:11 #298 №3059471 
>>3059426
Везде где есть слово питон там очень большой конкурс
Аноним 22/02/24 Чтв 21:25:55 #299 №3059780 
>>3059397
>лара норм
А что с остальными двумя фреймворками - yii и симфони ? они устарели или что ?
Аноним 22/02/24 Чтв 21:28:53 #300 №3059784 
>>3059471
В зоопарке например?
Аноним 23/02/24 Птн 02:20:28 #301 №3059950 
>>3059360
>Правильно, пора переходить на нормальный вариант
Студия через которую я вкатывался в итоге перешла на лару, а битрикс только на поддержку доить заказчиков. Я тут с менеджером переписывался перед НГ праздниками, она у меня спрашивала про знакомых ios и гоферов, хотя когда я там работал несколько лет назад были все битрикосиды 10-12 человек, которые красили кнопки, а каким-нибудь второсортным магазином гордились как охуенным проектом. Сейчас уже за такую хуню не берутся, а сидят на крупных контрактах, видать дела в гору пошли как слезли с этой хуйни, а когда я там был зарплаты ниже чем у скуфов на заводе и текучка пиздец.

>>3059365
>Вкратце, работать можно, но Ларавель там не нужен, на нём всё равно не дадут программировать. А реально нужны сертификаты по Битриксу.
Лол когда в студии работал так и было, на ларе писали избранные. Остальные искали вкушали говно, самый прикол что я первый месяц проходил ебучие курсы, ни строчки кода не написал, потом пытался сдавать экзамены и оба раза проебался там надо делать как правильно с точки зрения этого говна в какой-то ебучей ide на тормозящем удаленном рабочем столе хотя этот проёб экзаменов не мешал мне ковырять ядро и размотать обфусцированный includes.php чтобы убрать проверку лицензии лол. Но ты там будешь деградировать, хуй тебе дадут нормальную задачу, за полгода что там был ни разу ничего другого не трогал и почти всё были правки верстки по фтп с треканьем каждых 15 минут и еблей мозгов если что-то делаю не так быстро как это оценил кто-то другой.
Аноним 23/02/24 Птн 02:21:49 #302 №3059952 
>>3059410
Та же ссанина на том же ядре, прикрутили к говно цмс говно CRM, смысл примерно один и тот же
Аноним 23/02/24 Птн 05:31:21 #303 №3059987 
>>3059780
Yii наименее популярный из всех, что мы вспомнили и по факту не имеет никаких преимуществ. Забей на него.

Симфони второй по популярности, после лары, но типа самый серьезный из всех, для энтерпрайза такто. По факту он даже более современный чем лара что не значит, что лара не современный. Просто он более сложный и менее популярный и если ты вкатун, то лучше брать лару
Аноним 23/02/24 Птн 07:46:37 #304 №3060013 
>>3059987
С симфони проблема, что материалов очень мало. Пришлось даже смотреть всех сподря на ютубе, но там челики в основном пересказывают мурзилки с документации. Как писать правильный код узнаешь случайно и урывками в отдельных статейках.
Аноним 23/02/24 Птн 10:35:22 #305 №3060067 
В рамках обучения сейчас пытаюсь скопировать двачик от и до. Пишу на Nextе фронт и бэк на ларке.

И встал вопрос. Как на дваче работает система авторизации пользователя? Понятно что её нет, но сайт запоминает твои посты, созданные тобой треды и так далее. За счёт чего и каким образом это работает. Я так понимаю это идёт через IP? . До этого имел дело только с обычной JWT авторизацией по логину, паролю. Максимум еще взаимодействовал с Google API.
Аноним 23/02/24 Птн 10:48:15 #306 №3060073 
>>3060067
Лучше бы бложик запилил, а то копию двача стыдно будет показывать работодателю
Аноним 23/02/24 Птн 11:05:43 #307 №3060094 
>>3060067
Так посмотри блядь заголовки. Это же открытая инфа. Попробуй куки поудалять, с разных айпи позаходить
Аноним 23/02/24 Птн 11:42:24 #308 №3060133 
>>3060067
>Понятно что её нет, но сайт запоминает твои посты, созданные тобой треды и так далее.
На фронте, гугли local storage
Аноним 23/02/24 Птн 13:39:03 #309 №3060273 
image.png
image.png
>>3060133
Да, вижу, хранятся в local storage store. Еще тут есть некий gnezdo_uid, который похож на какой-то зашифрованный идентификатор. Не знаешь что по нему?
Аноним 24/02/24 Суб 12:24:56 #310 №3061673 
>>3060273
У Абу спроси
Аноним 24/02/24 Суб 13:22:22 #311 №3061721 
Screenshot from 2024-02-24 13-15-54.png
Screenshot from 2024-02-24 13-15-41.png
Я фронтендер и изучаю PHP, хочу получить 111 из массива query-параметров, но почему-то возвращается 0. Почему так?
Может ли быть дело в сервере? Использую XAMPP 8.2 на Ubuntu.
Аноним 24/02/24 Суб 13:38:30 #312 №3061731 
Screenshot from 2024-02-24 13-37-57.png
Screenshot from 2024-02-24 13-37-33.png
>>3061721
А вот так, кстати, работает.
Аноним 24/02/24 Суб 13:45:02 #313 №3061734 
>>3061721
потому что очки купи
Аноним 24/02/24 Суб 13:47:26 #314 №3061736 
Screenshot 2024-02-24 134658.png
>>3061721
Аноним 24/02/24 Суб 13:47:49 #315 №3061737 
>>3061734
>>3061736
Увидел, я написал $GET вместо $_GET, спасибо!
Аноним 24/02/24 Суб 16:39:22 #316 №3061871 
Стоит ли раскладывать всё по сервисным слоям в пет-проекте или это слишком заумно будет для новичка и подумают, что я чужой проект скопировал? Можно написать просто круды и всю логику впихать в контроллер, тогда будет больше похоже на проект новичка и не будет сомнений.
Аноним 24/02/24 Суб 16:50:38 #317 №3061887 
>>3061871
Ты долбоеб? Нахуя косить под долбоеба, если ты не долбоеб, чтоб не подумали, что ты долбоеб? Хотя ты долбоеб, если задаешься такими вопросами
Аноним 24/02/24 Суб 17:29:13 #318 №3061974 
>>3061871
Перечисли свои слои слева направо.
Аноним 24/02/24 Суб 17:58:48 #319 №3062019 
>>3061974
Я ещё не написал. Только думаю стоит ли писать.
Аноним 24/02/24 Суб 18:36:07 #320 №3062063 
>>3062019
Давай гитхаб.
Аноним 25/02/24 Вск 00:24:05 #321 №3062474 
>>3061721
Зачем ты в 2024 веке используешь ксамп?
Аноним 25/02/24 Вск 07:27:01 #322 №3062601 
>>3062063
Это деанон
Аноним 25/02/24 Вск 08:08:21 #323 №3062620 
>>3062601
есть еще гитлаб и битбакет
Аноним 25/02/24 Вск 09:03:06 #324 №3062639 
>>3062601
Нет. Это пиздлявый ленивый шиз без кода за клавиатурой.
Аноним 25/02/24 Вск 14:57:01 #325 №3062950 
>>3061887
Двачую.
Идиотский вопрос.
Аноним 25/02/24 Вск 14:58:01 #326 №3062951 
>>3062601
Так пости через онлайн редакторы кода.
Распишешь особенности своего проекта.
Аноним 25/02/24 Вск 15:28:39 #327 №3062971 
>>3062474
Потому что я нуб и использую XAMPP чисто в учебных целях.
Аноним 25/02/24 Вск 15:46:21 #328 №3062986 
>>3062971
ты работаешь фронтендером или вкатун?
Аноним 25/02/24 Вск 15:59:10 #329 №3063000 
>>3062986
Работаю фронтендером на Vue, хочу научиться ларавелить.
Аноним 25/02/24 Вск 16:32:41 #330 №3063065 
>>3060073
Так имиджборд сложнее бложика
Аноним 26/02/24 Пнд 00:56:41 #331 №3063736 
>>3034858 (OP)
Объясните, пожалуйста, как тут работают ссылки и для чего нужен
$node = &$tree;
и
$node = &$node[$ancestor['INDEX']]['CHILDREN'];
https://3v4l.org/JgO01
Аноним 26/02/24 Пнд 01:44:17 #332 №3063770 
>>3063736
>//Есть массив:
>array(
Кто этот пидарас? И кто те дегенераты, которые с этой хуйней сюда лезут? Эта залупа гуглится уже.

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

Вы вообще не одупляете что вам по сорок часов в неделю в битрикс кале дельфинчиком нырять придется? И там нихуя не будет задачек, ответ на который можно просто разув глаза в документации прочитать.
Аноним 26/02/24 Пнд 10:09:23 #333 №3063977 
>>3034858 (OP)
написал змейку на php и ncurses, теперь планирую написать тетрис. какие подводные камни?
Аноним 26/02/24 Пнд 12:43:49 #334 №3064163 
image.png
image.png
Пикрил, это 2 запроса. Если 1 запрос это 50мс, то второй идет после первого, это еще +1 и еще +50мс. Но может быть ведь и не 50, а 100 например + обработка еще время.

Как решают подобные проблемы множественных запросов? А ведь есть еще и зависимые запросы, по типу второй запрос зависит от результата первого.
Или забивают хуй, мол нет же многопоточности ну и все
Аноним 26/02/24 Пнд 15:05:45 #335 №3064373 
18ece2bfe307e7e93296ea5485d8c534.png
>>3064163
А вот это, детектив, ПРАВИЛЬНЫЙ ВОПРОС.
Это происходит постоянно. Таких запросов на страницу могут быть сотни. Товар. Цена товара. Скидка. Характеристики. Значения характеристик. Сопутка. Картинки к этому всему. Доставка. Остатки.

Ответ.
0) Многопоточности/асинхронности нет. Так что это точно не вариант. Был тут адепт сокетов, жопу рвал что пхп асинхронный. Ну собсна вот. Сокеты-хуекеты, давай делай. Спойлер: даже swoole и reactphp тут нихуя не помогут.

1) Можно объединить несколько запросов с помощью LEFT JOIN. Некоторые орм такое умеют. Yii точно, элокент вроде тоже, за доктрину хз. Но нужно быть готовым к тому что результат будет БОЛЬШОЙ. Я имею ввиду в гигабайтах (не шутка). По хорошему нужно сначала сделать пагинацию - выбрать десять или сто, а потом один большой запрос с кучей LEFT JOIN'ов. Перфоманс таких запросов очевидно говно.

2) На самом деле все это "решается" кешированием. Иногда тупо врубают кеширование результатов всех запросов в настройках орм. Иногда кешируют прямо страницу. Но чаще всего собирают сначала все данные для страницы, все результаты запросов, а уже потом кешируют. Вот именно для чего-то такого и нужен паттерн VIewModel.
Аноним 26/02/24 Пнд 15:06:19 #336 №3064374 
>>3064163
Перепиши на JS, силами PHP такое не решается.
Аноним 26/02/24 Пнд 15:07:15 #337 №3064375 
>>3064374
>Перепиши
Перекатись
Аноним 26/02/24 Пнд 18:27:56 #338 №3064687 
Здорова, я здеся новенький.
Есть вопрос.
Короче я юай обезьяна. Со стажем.
Бек знаю на уровне, что такое нормализация, скл триггеры, запросы к апи. Какие нибудь джоины. Многопоточность не знаю, т.к. в яваскрипте она реализована непонятно, как. Да, яваскрипт многоточный
Хочу вкат в бек. Думал между нодой и пыхой. Остановился на втором. Аноны, есть разница между ларавел и симфони? Или это как рякт и вью - одно и тоже
Аноним 26/02/24 Пнд 19:06:56 #339 №3064777 
>>3064687
Тут скорее аналогия React и Angular.
Аноним 26/02/24 Пнд 19:37:57 #340 №3064858 
>>3064777
О понял, мерси.
Выбираю ларавель, т.к. звездолеты строить не собираюсь
Аноним 26/02/24 Пнд 20:08:42 #341 №3064910 
>>3064687
>Думал между нодой и пыхой. Остановился на втором
По мне так долбоёбский выбор. Я наоборот ушёл с пыхи на ноду. Нода более бодрая. И лара и пыха вполне себе норм. Ларавел классный фреймворк, но блять... на нём удобно только монолиты писать. И если появляется модный смузи-стартап, он изначально не выберет пыху и лару для себя. Интересных проектов на пыхе не бывает почти никогда. Обычно это либо какая-то говноцрм, либо говномагазин, либо говногосударственная хуйня, либо супер легаси двухтысячных годов.

Программисты пишут как бог на душу положит, никаких тебе code review, линтеров, phpcs, phpstan, юнит-тестов. Похапэшников никогда не приглашают на релокацию если только в Таджикистан. У них одни из самых низких зарплат по всем стекам. Похапэшник с 10 годами опыта будет получать примерно как гошник с годом опыта. Короче если ты ценишь творчество, высокие зарплаты, новую модную хуйню - то иди в go либо в node.js. Но если тебе похуй, легаси не легаси, лишь бы платили - то сиди дальше на похапэ.
Аноним 26/02/24 Пнд 20:19:13 #342 №3064927 
>>3064910
Гошник с годом опыта это и есть пхпшник с десятью. Поэтому на го джуновских вакансий нет вообще. В го не вкатываются с нуля. Самый уебищный совет, который можно дать. Лучше бы просто написал чтобы в жс шел вафлять.

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

Короче шиза. Нода блядь "бодрая". Новая модная хуйня и го. Че несет, вообще охуеть.
Аноним 26/02/24 Пнд 20:29:14 #343 №3064935 
>>3064687
>Аноны, есть разница между ларавел и симфони?
Лара это типичный MVC фреймворк типа рельс и джанги. Но тут есть проблема на нем много кто из вкатунов пишет и скорее всего тебе достанется проекты уровня говно говна, плюс там конкуренция высокая. Еще есть галеры которые предлагают работу в европейском модельном агенстве, а работаешь шлюхой в турецком борделе зовут на лару, а в итоге пилишь фромочки "мы вам перезвоним" на битриксе и вордпресе с жиквери, тут надо сразу уточнять чем предстоит заниматься. Очень часто требуются фулстеки лара+вью и если ты скажешь что фронт, то у тебя будет много задач по фронту. Большинство вакансий в студиях, бывает и интересные проекты во во всяких продуктовых конторах, но таких вакансий меньше.
Сам фреймворк не сложный, быстро разберешься.

Симфони это такой этакий недоспринг и вообще там всё с привкусом джавы, на нем обычно пилят всякие продуктовые проекты, например skyeng. Фреймворк посложнее лары, там есть много инструментов https://symfony.com/doc/current/index.html сходу тяжелее разобраться, но зато есть много денежных вакансий. Мне не зашел в своё время и я не стал в него вкатываться а зря, но я все же советую попробовать что-то пописать чтобы пощупать что да как. И мне кажется что пыху изучать лучше по нему, чем по всякому говну типа CMS.
Аноним 26/02/24 Пнд 20:32:30 #344 №3064946 
>>3064910
Это двачаю, в ларе много говна и годные проекты прямо надо вычерпывать из говняной жижи как упавшее золотое кольцо в деревенском туалете.
Аноним 26/02/24 Пнд 20:46:11 #345 №3064980 
>>3064935
Крайне хуевое объяснение. Зашел-не зашел. Пиздец, как леденцы в магазине выбираешь.

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

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

Отсюда и следствие: где же будут больше платить и лучше следить за качеством? В проекте который развивается стихийно без каких-либо планов или в проекте который на рынке пять лет и еще пятнадцать будет?
Аноним 26/02/24 Пнд 20:50:41 #346 №3064988 
>>3064374
>Перепиши на JS
Я больше в какашку не хочу вступать, после ООП
Аноним 26/02/24 Пнд 20:51:09 #347 №3064991 
>>3064980
>Крайне хуевое объяснение. Зашел-не зашел. Пиздец, как леденцы в магазине выбираешь.
Это мои ощущешия не более того
Аноним 26/02/24 Пнд 21:20:47 #348 №3065050 
>>3064980
Будто симфони не RAD фреймворк. Ты api platform трогал?
make:entity -> готовый круд api -> api:openapi:export -> openapi.yml -> openapi-generator -> http клиент для реакта, ангуляра, вуежс сготовыми круд методами
Аноним 26/02/24 Пнд 21:23:54 #349 №3065058 
>>3065050
А с другой стороны symfony ux c hotwire
Аноним 26/02/24 Пнд 21:26:11 #350 №3065065 
>>3065050
Кодогенерация это не RAD. Ты хоть один фреймворк без кодогенерации видел вообще? А если сам напишешь кодогенерацию, то типа превратишь любой фреймворк в RAD? Это типа игра в сифу что-ли?

Фасады, сервис локаторы, глобальное состояние. Использование кода фреймворка вместе и вместо своего. Вот что такое RAD.
Аноним 26/02/24 Пнд 21:37:31 #351 №3065085 
>>3065065
Это не кодогенерация в симфони. Кодогенерация тут только на фронте и это не часть симфони. Это часть openapi генератора
Что касается независимости от фреймворка, то ты при написании бизнеслогики в симфони также будешь задумываться как уйти от ORM, писать всякие toDTO. А форм билдер запутывать в бизнелогику... Тоже будешь писать код для отвязки от симфони.
Аноним 26/02/24 Пнд 21:37:44 #352 №3065086 
>>3064373
ViewModel нужен чтобы передать во View (в шаблон template) объект, где есть логика обработки данных, чтобы в самом шаблоне вызывать геттеры и получать уже обработанные данные.
Причем здесь кеширование?
Аноним 26/02/24 Пнд 21:44:55 #353 №3065104 
>>3064927
Ой я же говорю, задачи изначально такие, что не требуют сильного мастерства. Типа говноадминки на бутстрапе. Каноничный пример https://www.gk-adept.ru/ Пхп чаще всего берут веб-студии, работающие на поток. И клиенты такие же. Попробуй объяснить кабану из строительной фирмы что его сайту нужен си-ай-си-ди. Он мало того что не поймёт, так ещё подумает что ты его наёбываешь. Поэтому многие срезают углы. Тоже самое личный бренд Васи Пупкина. Программист не делает никакого линтинга, тестирования и проч, главное чтобы Вася Пупкин побыстрее отъебался и всё. Тоже самое когда ты говоришь что неплохо было бы сделать инфраструктуру как код, перенести в клауд, настроить ci/cd, разбить на микросервисы, на тебя посмотрят как на мудака, а нахуя мне это нужно? На go такого нет, потому что там уже знающие люди. И меньше вопросов в стиле "а нахуя мне это нужно"?
Аноним 26/02/24 Пнд 21:47:23 #354 №3065112 
>>3065085
>задумываться как уйти от ORM
В симфони нет своей орм. А доктрина использует целую кучу хитростей чтобы твоя модель ни от чего не зависела. Ты прямо сейчас можешь использовать в качестве модели класс без зависимостей вообще.

>код для отвязки от симфони
Симфони это просто набор библиотек. Так же как ты будешь писать код "отвязки" от газзла, например, так же ты будешь писать код "отвязки" от симфони. Обычная инверсия контроля с интерфейсами и ACL. Если нужно поменять библиотеку ты просто пишешь под неё класс с имплементацией и прописываешь его в DI. А вот как отвязаться от вездесущих фасадов это загадка от жака фреско.
Аноним 26/02/24 Пнд 21:50:44 #355 №3065120 
>>3065086
Не причем. Кеширования нет. Все по 50мс на все сто запросов ждут. И вместо того чтобы закешировать один объект ViewModel бьются ебалом об монитор. А сам ViewModel создают только чтобы геттеры вызывать. Ведь в обычной модели этих геттеров нет. А в VIewModel данные попадают из... да кого вообще ебет откуда и зачем.
Аноним 26/02/24 Пнд 21:52:21 #356 №3065124 
>>3065104
>На go такого нет, потому что там уже знающие люди
Там это где?
Аноним 26/02/24 Пнд 22:03:25 #357 №3065136 
Вакансия Golang Backend Developer в Москве.png
>>3065124
В golang'е. О нём обычный человек с улицы вряд ли услышит. Там чаще попадаются нестандартные проекты, типа какого-нибудь gismeteo. Там зарплаты выше, попробуй найди похапэшника с зарплатой до 600 тысяч в месяц. Там меньше шансов что попадётся очередной говномаркетплейс с перепродажей китайского говна с алиэкспресса. Меньше шансов что придёт очередной говностроитель со своей говностроительной фирмой.
Аноним 26/02/24 Пнд 22:06:51 #358 №3065143 
>>3065136
>в веб-студии, работающей на поток все хуево
>а вот "там" все заебись
>где?
>...
>В golang'е
Ты под баклофеном?
Аноним 26/02/24 Пнд 22:08:11 #359 №3065146 
>>3065136
Ты больше вслух мечтай, тогда обязательно услышит. Вкатунишки такие вкатунишки. Думают они чем то от других отличаются. Наверное мамке своей верят...
Аноним 26/02/24 Пнд 22:47:50 #360 №3065208 
>>3065120
Ты блядь какой-то тролль или пишешь как-то непонятно.

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

Если ты вызываешь напрямую во вьюшке методы из модели то ты большинство принципов похерил нахуй.
Аноним 26/02/24 Пнд 23:19:00 #361 №3065258 
>>3064687
>Здорова, я здеся новенький.

И уже сходу жидко обгадил рейтузы:
>Да, яваскрипт многоточный
Аноним 26/02/24 Пнд 23:21:09 #362 №3065260 
>>3064988
>Я больше в какашку не хочу вступать, после ООП
Какого ООП, на ПХП? Не смеши.
Аноним 27/02/24 Втр 00:08:26 #363 №3065325 
>>3065260
В PHP вся разработка в ООП ведется по-умолчанию с принципами, паттернами, с Фаулером, с Бобом Мартином, Крейгом Ларманом, со включенной строгой типизацией. Используется атрибуты/рефлексия. ООП в PHP аналогична ООП в Java. И книги из Java подходят для ООП и в пхп, в плане построения конструкций.
Так же код весь под тестами + есть статические анализаторы.

Это обычный проект в пхп на 2024 год.

А смешишь тут только ты, хуесос малолетний
Аноним 27/02/24 Втр 00:34:44 #364 №3065337 
>>3065260
Лучше ты расскажи чем ООП в пыхе современных версий хуже чем в той же жабе
Аноним 27/02/24 Втр 00:41:16 #365 №3065342 
А вы a?b:c уже починили?
мимо-проходил-заметил-срач-решил-немного-подкинуть
Аноним 27/02/24 Втр 03:28:26 #366 №3065421 
>>3065208
>логику отображения
Эт че такое? Это такой всратый способ сказать "данные для отображения"? Ты же сам называешь её DTO и говоришь что логика во View и шаблонах.

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

>большинство принципов похерил
Ой вей. Солид здеся. Ну-ка, сектантик, а как мне наверняка проверить что класс сингл респонсибилити? Ну так чисто, чтобы узнать похерил я этот принцип или нет?
Аноним 27/02/24 Втр 04:13:25 #367 №3065424 
>>3065421
>Ну-ка, сектантик, а
Петушок который не пройдет собес и не сможет ответить на мои вопросы с демонстрацией кода и не сможет в алгоритмы с математикой -> отправится работать в веб-студию к вордпресу, или на завод гайки крутить))

Не, а в инете выебывайся, никтож не запрещает, а вот в реальности все мы на своих местах
Аноним 27/02/24 Втр 04:16:41 #368 №3065425 
>>3065421
>Солид здеся
А другие принципы (подсказка: их дохуя) какие похерил, заводчанин?))
А я буду показывать такой код и буду спрашивать что еще и всякие левые - пойдут вон из профессии
Аноним 27/02/24 Втр 04:21:11 #369 №3065426 
>>3065421
Домен - это предметная область, ебанашка))
Иди уроки делай школий малолетний
Аноним 27/02/24 Втр 08:25:05 #370 №3065482 
смеющийся-том-круз.jpg
>>3065325
>В PHP вся разработка в ООП ведется по-умолчанию с принципами, паттернами, с Фаулером
>Используется атрибуты/рефлексия
>Так же код весь под тестами + есть статические анализаторы.
Аноним 27/02/24 Втр 11:16:30 #371 №3065596 
>>3065424
>Петушок который не пройдет собес и не сможет ответить на мои вопросы
Да любой дауненок откроет википедию и прочитает определение. Вы же все равно нихуя не понимаете что оно означает. Просто с умным ебалом повторяете. Вот я спросил как конкретно измерить что код соответствует SRP, и ты сразу поплыл: пук среньк.

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

>>3065425
>А другие принципы
Вот этот https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)#Information_expert
Тебе, опездалу, в голову не приходило что принципы, придуманные в разные десятилетия разными людьми, исходя из их субъективного опыта, могут друг другу ПРОТИВОРЕЧИТЬ?

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

>>3065426
>Домен - это предметная область
И хули? Приплел ты это нахуя?
Для умного ебала. Ну добавил бы еще "на планете земля".
>бизнес-логику домена на планете земля В ГАЛАКТИКЕ МЛЕЧНЫЙ ПУТЬ
Нихуя как ВАЖНО звучит. Теперь то моя шизофазия в десять раз убедительнее стала. Ведь стала, да?
Аноним 27/02/24 Втр 12:30:08 #372 №3065661 
>>3065596
Верстальщик wordpress рвется в программисты))
Аноним 27/02/24 Втр 13:11:26 #373 №3065712 
dd758c0d86a5174a80503388699b057b.jpg
>>3065661
>))
Аноним 27/02/24 Втр 13:20:36 #374 №3065724 
>>3065661
Какие сейчас требования на wordpress?
Аноним 27/02/24 Втр 13:35:37 #375 №3065739 
>>3065724
Требования к вордпрессу отвергать знания и топить за темноту как тот школьник
Аноним 27/02/24 Втр 13:40:15 #376 №3065741 
Ты шизофреник.mp4
>>3065739
Школьники топят за темноту. Ясно понятно.
Аноним 27/02/24 Втр 14:18:16 #377 №3065766 
>>3065741
У тебя жопу рвет от того что другие добровольно это изучают, потому-что это ремесло в кайф и апают скилл естественно, а тебе это нахуй не нужно, для тебя это принудиловка, ты тут только за деньгами и агришься от того что я твой конкурент с более лучшими навыками.

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

Поэтому твой естественный уровень - это вордпресс, дальше ты попросту не вытянешь, потому-что тебе это неинтересно
Аноним 27/02/24 Втр 14:24:56 #378 №3065775 
>>3065766
А че ты изучил? Определение прочитал? Ебать ты апнулся. Так как SRP померять, ремесленник?
Аноним 27/02/24 Втр 14:44:58 #379 №3065797 
>>3065775
А тебя ебать не должно, я тебе псу - помогать не буду.
Аноним 27/02/24 Втр 14:58:53 #380 №3065830 
2f9b0fda397ccd167961b62f3cffcbf8.jpg
>>3065797
>я дохуя че изучил
>че знаешь?
>пук
Аноним 27/02/24 Втр 15:31:58 #381 №3065869 
>>3065766
Да-да, все поняли, что ты не левый и реально любишь программирование. Только не рвись, маня. Мышление как у школьника 9-го класса.
У меня такое ощущение, что в программировании есть негласное правило - если ты решил вкат, то ты обязан всему сообществу рассказать о том, как тебе нравится программировать и интересно этим заниматься, ведь иначе подумают, что ты негодяй!

Решает не интерес к программированию, а твоя совесть (совестно будет говнокодить), наличие материала, который ты сможешь освоить с имеющимися знаниями (и тем самым меньше говнокодить) и упорство.
Аноним 27/02/24 Втр 15:55:58 #382 №3065888 
>>3065830
Мы с тобой выше поговорили, ты даже основ не знаешь, а хочешь на голову выше тему. Я тебе не собираюсь разжевывать то что тебе непонятно. Мне похуй на твою жизнь
Аноним 27/02/24 Втр 15:59:48 #383 №3065891 
>>3065888
Обтекай, неуч. Нихуя ты не знаешь.
Аноним 27/02/24 Втр 17:22:26 #384 №3066015 
>>3035220
Поглядите. Человек даже не в курсе про хайлоад блоки. Ну что ж, типичный вкатунец сделал мнение об инструменте на основе поверхностной информации. Ничего нового.
Аноним 27/02/24 Втр 17:32:18 #385 №3066031 
never-give-up-bitrix.png
>>3066015
Так это че? Получается битрикс не говно, написанное студентами за еду?
Аноним 27/02/24 Втр 17:34:39 #386 №3066033 
>>3064910
>>3064935

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

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

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

Не уверен, что возьму мидла за 2месяца, т.к. сейчас объясню почему:

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

>>3065258
Да да я https://tc39.es/ecma262/#sec-agents
Аноним 27/02/24 Втр 18:25:23 #387 №3066123 
>>3066031
Всё что новое пишется слабо отличается от ларавел. Старое конечно переписывать никто не будет на "новый" битрикс д7, так что смотря куда устроишься, с тем и будешь чаще работать.
Аноним 27/02/24 Втр 18:26:19 #388 №3066125 
16857004333692.jpg
>>3066033
>заспидранить яву за месяц
>Машинальная память не вывезла
Имаджинирую ебало счастливого работодателя в момент осознания какого Нео-мнемоника ему нарисовали хр.
Аноним 27/02/24 Втр 18:29:00 #389 №3066130 
>>3066123
>Всё что новое пишется слабо. Отличается от ларавел.
Пофиксил
Аноним 27/02/24 Втр 19:24:42 #390 №3066188 
>>3066033
P.S. братва в догонку
Я думаю, что нужно найти инструмент не тот за который лут 300к сек, а тот который в кайф чисто по душе + ну и чтобы он был живым на рынке труда. Не какой нибудь фортран

Хз попробую с пыхой. Фейсбук писали на нём е маё.
Так то похеру на чем написано, то есть 99.9% что всё равно не взлетит. Поэтому нет разницы на чем ты напишешь свой двач будь то пыха/нода/сярп/явка или ещё что-то. Ну если конечно не пишем паблик апи. А так пользователи смотрят на юай ну и закрытие их конечных потребностей и если ресурс, который вы создали - соответствует, то вроде должно сработать.

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

Ну вообще мне особо не нравится писать код, т.к. ну не моё это что ли. То есть всё получается кровью и потом, сейчас конечно легче. То есть если я начну изучать новый язык и какой-нибудь вкатунишка, моя кривая обучения будет быстрее раза в 4 - 5. Но столько боли и часов в дебаге было потрачено, что аж больно. Как-то нашёл цитату, что програмирование - это как бег. Типо со временем будет быстрее, но не легче. Приятно конечно, когда всё получается, блин ну для этого нужно так много учесть, что аж голова кругом идёт.
Да, я определенно ленюсь. + я не талант, а самый обычный человек, может быть немного усердный.

Мне не нравится, что люди идут в сферу информационных технологий ради денег, это не самый лучший мотиватор. Т.к. лучше быть каким-нибудь сварщиком или строителем. Да, по деньгам будет меньше, но не надо постоянно изорбретать как-то велик и жить профессией. Да и просто пилить аплик, которым будут пользоваться 1.5 человека.
Аноним 27/02/24 Втр 19:25:30 #391 №3066190 
>>3066015
>Человек даже не в курсе про хайлоад блоки.
Ты знаешь как они устроены под капотом? И какое говно они делают в бд?
Аноним 27/02/24 Втр 19:29:05 #392 №3066193 
>>3066123
Потому что D7 не доделали, потому и не смогут всё переписать лол
Аноним 27/02/24 Втр 19:56:12 #393 №3066239 
>>3066033
>Да да я https://tc39.es/ecma262/#sec-agents
И че ты высрал? Дай угадаю, английский у тебя А0?

>An agent comprises a set of ECMAScript execution contexts, an execution context stack, a running execution context, an Agent Record, and an executing THREAD

Даю подсказку дауненку без английского - в английском языке когда на конце нету S - это единственное число.
Аноним 27/02/24 Втр 19:58:06 #394 №3066240 
>>3066033
Теперь читай дальше:

>Except for the executing thread, the constituents of an agent belong exclusively to that agent.
В гугл транслейт вставить сможешь? Где ты тут многопоточность увидел, даунит?
Аноним 27/02/24 Втр 20:10:01 #395 №3066250 
>>3066239
>>3066240
Может он с асинхронностью перепутал, у новичков бывает
Аноним 27/02/24 Втр 21:29:47 #396 №3066403 
>>3066239
>>3066240
>>3066250

Извинись
SharedArrayBuffer
Аноним 28/02/24 Срд 01:34:23 #397 №3066566 
>>3066193
Ну можешь сам доделать, что тебе не нравится. Битрикс это гибкая система модулей и компонентов, всегда можешь подпилить и будет красиво.
Аноним 28/02/24 Срд 01:47:35 #398 №3066569 
Screenshot 2024-02-28 014720.png
>>3066566
>сам доделать
Просто хочу разобраться.
А сколько с тебя попросят разрабы ларавеля за доделывание их фреймворка?
Аноним 28/02/24 Срд 01:51:03 #399 №3066572 
Так Битрикс норм или нет, ничего не понял?
Аноним 28/02/24 Срд 01:55:51 #400 №3066573 
>>3066566
Перетолстил
Аноним 28/02/24 Срд 01:56:02 #401 №3066574 
>>3066572
Купи и проверь.
Аноним 28/02/24 Срд 01:56:34 #402 №3066575 
>>3066572
Попробуй развернуть демо сайт у себя и погляди
Аноним 28/02/24 Срд 02:01:13 #403 №3066578 
>>3066572
Нужна работа - да. Если нет нужды спешить - нет. Есть желание подняться из говен - да. Нет желания даже знать о говне - нет.
Аноним 28/02/24 Срд 02:03:36 #404 №3066579 
>>3066578
>подняться из говен
Атлант восстает из битрикса.
Аноним 28/02/24 Срд 07:22:03 #405 №3066629 
>>3066572
Сначала изучи что то нормальный проект, на фреймворке ларавель или симфони, или хотябы на опенкарт(все лучше битрикса). А вот потом пробуй... Отпиши только результат "пробования")
Аноним 28/02/24 Срд 08:15:22 #406 №3066640 
изображение.png
8.3.3

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

--------
Если
переданный
шаблон
регулярного
выражения
не
компилируется
в
допустимое
регулярное
--------

Содержимое PHP-файла:

--------
declare(strict_types = 1);

$asArray = [
"Если",
"переданный",
"шаблон",
"регулярного",
"выражения",
"не",
"компилируется",
"в",
"допустимое",
"регулярное",
];

$contents = file_get_contents("txt.txt");
$contentsAsArray = explode("\n", $contents);

var_dump($contentsAsArray);
var_dump($asArray);
--------

Пикрелейтед - что я вижу.

Это какой-то баг, или что?
Аноним 28/02/24 Срд 08:48:15 #407 №3066657 
изображение.png
>>3066640
Попробовал всякие версии, ничего не изменилось. На php-7.0.0-nts-Win32-VC14-x64.zip пик случился из-за кодировки. При этом, как видно, кавычки всё ещё пидорасит. Подумал, может, в cmd какой баг. Запустил в PowerShell - результат такой же.
Аноним 28/02/24 Срд 08:58:46 #408 №3066662 
>>3066657
Поставь линупс и не майся
Аноним 28/02/24 Срд 09:18:06 #409 №3066675 
>>3066640
>>3066657
А, бля! Я разобрался. У меня в файле txt.txt были не \n, а \r\n, то есть windows-style line ending. Это приводит к такому аномальному поведению. Если выполнить что-то типа:
var_dump($asArray);
echo($asArray[0]);
var_export($asArray[1]);
То будет такая хуита в выводе. При этом, если сделать что-нибудь типа
echo(strlen($asArray[0]));
То результат как бы нормально показывается. Как бы, потому что он будет на 1 больше ожидаемого, ибо \r является частью строки и тоже посчитается. Короче, это не совсем баг, просто когда в начале строки \r её пидорасит.
При этом, да, судя по всему - проблема специфичная для windows. Я бы предположил, что пидорасит её на уровне вывода, где-то там очень глубоко, на слое, который общий и для cmd, и для powershell.

var_dump("\rhello");

На винде выводится хуита кривая, а на линуксе норм.
Аноним 28/02/24 Срд 12:20:24 #410 №3066804 
>>3066675
Микросамофикс: \r в конце строки, а не в начале.
Аноним 28/02/24 Срд 17:14:49 #411 №3067182 
>>3066675
Держи в курсе
Аноним 28/02/24 Срд 17:21:54 #412 №3067196 
Хелоу, завтра собез на трейни позицию фул стак.

Перекочевал в PHP с React разработчика. До этого полностью работал на JS, по нему знаний много. Есть опыт создания своих локальных проектов на NestJs и React. Ввиду полного отсутствия вакансий на данный стек начал вкатываться сразу в laravel не разбираясь с самим языком, так как счёл его очень похожим на javascript. На Laravel сделал 1 локальный проект, прописал REST API, по сути дефолтный CRUD. Но в предвкушении самого собеседования даже на такую никчёмную позицию задался вопросом. А действительно ли PHP так похож на JS? Смогу ли я пройти собез если я мало знаю тонкостей языка? Что обычно спрашивают начинающих PHP разработчиков?

В самой вакансии указаны требования базового знаний PHP+JS, ООП и шаблонов проектирования. С последними туго, но ООП вроде подтянул. Что посоветуете? Как не обосраться жиденько?

Аноним 28/02/24 Срд 17:28:17 #413 №3067212 
>>3067182
Я только что покушал, кстати.
Аноним 28/02/24 Срд 17:46:04 #414 №3067249 
>>3067196
Советую въебать коньячку и вывозить на софт скилах. Пытаться попиздеть за жизнь.

Полезешь в тему ооп и тебя начнут сразу душить и гнобить. Посмотри на животных выше по треду. Там такие торквемады, чуть не по ихнему сразу тряска начинается.
Аноним 28/02/24 Срд 18:00:16 #415 №3067262 
>>3067196
>Laravel
Не нужен. Тебя все равно посадят ковырять битрикс
Аноним 28/02/24 Срд 18:29:28 #416 №3067280 
>>3067262
Годаун, когда работу найдешь?
Аноним 28/02/24 Срд 18:33:00 #417 №3067281 
>>3067196
Да хз, я бы напиздел что-то типа: в основном на сервере работал с нестом, с пыхой поменьше и пр кококо. Типа посмотрите я не лох, прост немношк с другим стеком работал, поэтому могу мальца обосраться, но общую конву понимаю. Авось тебя на нест посадят.

Да и нест же ООП и на тайпскрипте, что ближе пыхе
Аноним 28/02/24 Срд 18:44:30 #418 №3067290 
Нахуя вообще знать ООП? Тебе дают готовый фреймворк на MVC паттерне. Достаточно его просто заучить. Ну банально знать что такое класс и всё.. Нахуя это всё? Никто же щас не пишет на чистом PHP нихуя, кому сдались эти синглоты фабрики, стратегии?
Разработчик это же ремесленник, а не философ теоретик. Тупо рабочий на заводе. Это тыкаешь сюда, это сюда. Бля, ей богу не понимаю.
Аноним 28/02/24 Срд 19:12:08 #419 №3067320 
>>3067290
Речь о том чтобы знать всякую синтаксическую хуйню: приватные свойства, интерфейсы, как класс отнаследовать и пр. Ясен хуй что паттерны это хуйня для аутистов, но как работать с классами/объектами в языке нужно знать
Аноним 28/02/24 Срд 19:34:44 #420 №3067340 
https images.genius.com05ff347f7b2afdd804a80c4076f4bf1b.500x500x1.jpg
>>3067290
Ок. Объясняю как тупому зумеру.
Твоя мать когда нибудь наводила "порядок" в твоей комнате? Уходил в шкилу - все валялось "на своих местах". А приходишь обратно - нихуя нет и непонятно что теперь где.

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

Как же это сделать? Нихуя себе! Можно же записать схему действий, всем эту схему прочитать и действовать согласно этой схеме.
Так вот почему в вакансиях пишут: знания ООП и П-А-Т-Т-Е-Р-Н-О-В, а потом соотносят с тем что знают и каким паттернам следуют их сотрудники! Чтобы можно было легко РАЗОБРАТЬСЯ по общеизвестной СХЕМЕ!

Дорогой малыш, сегодня ты узнал много нового.
Завтра у нас будет урок как самому ходить на горшок и как правильно вытирать жопу.
А на сегодня все. До новых встреч!
Аноним 28/02/24 Срд 19:49:19 #421 №3067350 
>>3067340
Никто не использует кроме создателей фреймворков твои намоленные паттерны. Они нужны, чтобы в интернете выёбываться чем ты и занимаешься.

В голосину проигрую, когда смотрю всякие уроке про паттерны от опытных разрабов, которые в гугл лезут, чтобы не обосраться, почему? Потому что они в рот ебали эту нинужную дисциплину созданную только для того, чтобы пилить о ней уроки
Аноним 28/02/24 Срд 19:56:13 #422 №3067358 
>>3067340
По тексту сразу видно любителя гоблина малолетнего дебила
Мимо
Аноним 28/02/24 Срд 19:57:07 #423 №3067359 
>>3067350
Вкатусь, слишком толсто
Аноним 28/02/24 Срд 20:05:06 #424 №3067371 
Screenshot 2024-02-28 200250.png
>>3067358
>По тексту сразу видно
Этот тред он как заповедник дегенератов. Достояние двача, под охраной санитаров.
Аноним 28/02/24 Срд 20:11:55 #425 №3067378 
>>3067371
Молодец, охраняешь
Аноним 28/02/24 Срд 20:13:47 #426 №3067382 
611mq6mIcWL.ACUF894,1000QL80.jpg
>>3067378
Аноним 29/02/24 Чтв 00:46:53 #427 №3067607 
>>3067359
Да тыж жертва инфоциган, долбоеб. Найди работу и посмотри как оно на самом деле, теоретик с двача
Аноним 29/02/24 Чтв 14:11:07 #428 №3068076 
33554432 - что за магическое число? Почему если передать в fread всего на один байт больше, он начинает сходить с ума и срать ошибкой

> Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes)

Не, я понимаю, что это 32 MiB, но чем объясняется? И ещё мои наблюдения показали, что если в качестве длины передавать в fread 1, 2, 4 и т. д, то скорость выполнения скрипта будет расти, вплоть до 64. Потом выходит на плато. Опять же, почему 64? Возникают ассоциации с x64, но это ведь байты, а не биты.

Есть вообще какая-то рекомендация, какой длины чанки мне читать с помощью fread, если нужно прочитать весь файл один хрен?
Аноним 29/02/24 Чтв 15:11:09 #429 №3068150 
Котаны, скиньте сетап вскода для пхп, ларавел, вью. Лицензия кончилась на пхпшторм.
Аноним 29/02/24 Чтв 15:22:19 #430 №3068163 
Есть допустим задача, заменить русские слова БМВ на BMW. Статей дохуища (400к записей). Сайт на хостинге.

Норм решение?
1. Накатить полнотекстовый поиск на MySQL.
2. Найти статьи где есть бнв.
3. Запросить из БД список этих статей и скриптом заменить слова -> обновить.
Аноним 29/02/24 Чтв 15:26:49 #431 №3068170 
>>3068163
А, там же еще можно like %бнв%
Аноним 29/02/24 Чтв 15:52:49 #432 №3068198 
>>3068150
Хуй тебе. Сиди на пхпшторме, говноед
Аноним 29/02/24 Чтв 15:53:56 #433 №3068199 
>>3068163
Нахуя тебе полнотекстовый поиск?
Аноним 29/02/24 Чтв 16:14:22 #434 №3068216 
>>3068163
>Статей дохуища (400к записей
Это вообще хуйня же, короче все зависит от регистра если тебе нужно менять 'БМВ' на 'BMW' то это можно sql запросом пройтись, за MySQL не скажу, в постгресе есть replace. Если что-то по сложнее с текстом, то рекомендую написать скрипт.
Не пытайся менять все записи, проходи по 500 штук максимум и после всего этого не забудь про vacuum analyze чтобы у тебя индексы нормально работали и бд меньше места занимала
Аноним 29/02/24 Чтв 16:19:31 #435 №3068220 
>>3068216
Да, там тоже реплейс есть.
select replace .. where like like %БМВ% - типа этого?

>и после всего этого не забудь про vacuum analyze чтобы у тебя индексы нормально работали и бд меньше места занимала
Это что такое?
Аноним 29/02/24 Чтв 16:35:10 #436 №3068238 
>>3068076
> Allowed memory size of 2147483648 bytes exhausted
С английским плохо? Выделенная пхп память кончилась.

>скорость выполнения скрипта будет расти
А если делать на каждый читаемый байт по два цикла скорость вырастет или упадет?

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

Очевидно что пик скорости будет в момент когда запрашиваемая тобой порция совпадет со скачиваемой, и на одну подгрузку куска с диска будет всего одна операция получения этого куска.
Аноним 29/02/24 Чтв 16:42:07 #437 №3068246 
>>3068150
>Лицензия кончилась на пхпшторм.
Создай новый аккаунт и начни пробный период.
Аноним 29/02/24 Чтв 16:51:03 #438 №3068253 
>>3068163
>>3068216
>чтобы у тебя индексы нормально работали и бд меньше места занимала
Это нужно только если изменяемое поле проиндексировано. На текст никто индексы не делает, нахуй оно надо?

В MySql тоже есть REPLACE https://www.w3schools.com/sql/func_mysql_replace.asp
Все что нужно это просто сделать апдейт https://dbfiddle.uk/vIblUb-h

А вот если нужно поменять МНОГО ЧЕГО РАЗНОГО. Тогда нужно городить обработку таблицы через курсор порциями с помощью процедур. Или уже писать пхп скрипт.
Аноним 29/02/24 Чтв 17:00:52 #439 №3068268 
изображение.png
>>3068246
А может лучше...
Аноним 29/02/24 Чтв 17:20:30 #440 №3068285 
>>3068268
Потом не трясись когда вирусы поймаешь
Аноним 29/02/24 Чтв 17:34:30 #441 №3068294 
>>3068285
Касперского обновил?
Аноним 29/02/24 Чтв 18:24:59 #442 №3068366 
>>3068285
Юзаю уже полтора года и нет вирусов никаких.
Аноним 29/02/24 Чтв 19:44:12 #443 №3068499 
>>3068294
>Касперского обновил?
Щас ещё ФСБшные зонды на свой ПК ставить.
Аноним 29/02/24 Чтв 19:53:52 #444 №3068521 
Сап, это тот анон, который советы по поводу собеза спрашивал >>3067196


Короче, прошёл собез на изи. Еще и похвалили в догонку, мол типо нихуя ты осведомлён, лол. В связи с этим вывод. Пхп - язык для даунов. Не нашёл работу будучи ПХП разрабом - лучше суицид как можно быстрее. Уже ничего не поможет
Аноним 29/02/24 Чтв 20:03:35 #445 №3068531 
>>3068521
Расписывай как нашел РАБотку. Хочу вкатиться 33лвл. Скуф, урод, листва.
Аноним 29/02/24 Чтв 20:07:41 #446 №3068537 
>>3068521
У меня на первой работе вобще собеса не было, работодатель пообщался со мной по переписке, чисто познакомился, потом попросил написать какой-то изичный парсер, который я написал минут за 40 до этого их вобще не писал. Он сказал заебись и го завтра тогда уже работать, там ещё один такой же парсер написать надо. Так я и вкатился. Другое дело, что это все джуновская работа, где от тебя нихуя по сути не требуется, если хочешь получать 200+ могут и поебать нормально
Аноним 29/02/24 Чтв 20:13:17 #447 №3068544 
>>3068531
Я лично просто загуглил списочек аля "100 самых популярных вопросов на собеседовании PHP". И вуаля, больше половины вопросов на собезе были из списка. Не считая всяких дебильных абстрактных вопросов по поводу "что такое интернет" и так далее.

Были вопросы по пет проекту немного, от силы 2. И на базу данных пару вопросов, ну еще про гит. И всё. В ПХП как оказалось не так много нужно всего знать. Просто читаешь определения всякой хуйней, пытаешься расписать их своими словами и так же на собесе и отвечаешь. По ООП было несколько вопросов, но про П-А-Т-Т-Е-Р-Н-Ы не спрашивали. Я им кстати сразу объяснил своё отношение к паттернам и они со мной согласились, кек. Ну тащемта всё
Аноним 29/02/24 Чтв 20:13:20 #448 №3068546 
>>3068521
Так ты на фулстека вкатился, а это проще чем на чистый бек
Аноним 29/02/24 Чтв 20:25:55 #449 №3068563 
>>3068521
Это удаленка или офис?
Аноним 29/02/24 Чтв 20:36:27 #450 №3068576 
>>3068521
Фига сразу гонору добавилось. До сеньора вначале дослужись, 300к начни получать, тогда и говори для даунов язык или нет.
Аноним 29/02/24 Чтв 20:38:54 #451 №3068583 
>>3068563
Офис
Аноним 29/02/24 Чтв 20:56:54 #452 №3068604 
>>3068583
Ну тебе норм тогда, а в моем мухосранске один битрикс
Аноним 29/02/24 Чтв 21:15:29 #453 №3068636 
>>3068521
Логика так и блещет.
+жирнишь.
Аноним 29/02/24 Чтв 21:15:56 #454 №3068637 
>>3068238
> С английским плохо? Выделенная пхп память кончилась.

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

> Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes)
>tried to allocate 4096 bytes

4096 не поместились в 2147483648? И откуда 4096 взялось вообще, когда я указывал размер куска 33554433. Указываю 33554432 - всё ок, 33554433 - такой говняк.

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

Где можно подробнее прочитать? Тут https://www.php.net/manual/ru/function.fread.php про это почти ничего нет.
Аноним 29/02/24 Чтв 21:17:30 #455 №3068638 
>>3067262
>Тебя все равно посадят ковырять битрикс
Двачаю >>3035220 анон, у меня так и начиналась карьера, где-то через 6-7 месяцев свалил на рельсы
Аноним 29/02/24 Чтв 21:18:21 #456 №3068639 
>>3068638
>рельсы
Так они же мертвы. На чем сейчас сидишь?
Аноним 29/02/24 Чтв 21:59:47 #457 №3068701 
>>3068544
ты проиграл с паттернов, их даже на битриксе используют, если тимлид вменяемый.
Аноним 29/02/24 Чтв 22:09:05 #458 №3068708 
>>3068701
>на битриксе
в*
Аноним 29/02/24 Чтв 22:41:21 #459 №3068728 
Без имени.jpeg
>>3068544
>>3068521
Аноним 29/02/24 Чтв 23:44:34 #460 №3068773 
>>3068701
>если тимлид шизло, как и я
Пофиксил
Аноним 29/02/24 Чтв 23:50:31 #461 №3068785 
>>3068639
На расте, скорее мертвы чем живы, новых проектов почти нет, а вот старых проектов с выразительной синтаксически сахарной кодовой базой много. Но всяко лучше битрикса, можно даже сразу туда пробовать вкатываться
Аноним 29/02/24 Чтв 23:57:16 #462 №3068794 
>>3068701
Да, паттерны там охуенные Capslock Array Keys Dilder, String Boolean Shittone, Global Variables Fucker
Аноним 01/03/24 Птн 00:22:10 #463 №3068837 
>>3068637
Речь об оперативной памяти. В начале работы скрипта пхп разрешается взять только определенное количество памяти. Превышение этого лимита и вызывает ошибку.

>Allowed memory size of 2147483648 bytes EXHAUSTED
С английским плохо?
ДОПУСТИМЫЙ РАЗМЕР ПАМЯТИ 256 МЕГАБАЙТ ИСЧЕРПАН
ИСЧЕРПАН СУКА

>И откуда 4096 взялось вообще
А какая разница? Ну читает он по 4096, а потом склеивает в кусок который ты хотел. Проблема-то в том что ты наговнокодил утечку памяти.
Аноним 01/03/24 Птн 01:25:06 #464 №3068898 
>>3068794
Похуй какие они там. Это надо понимать как факт, что такое спрашивают и быть к этому готовым.
Аноним 01/03/24 Птн 02:54:07 #465 №3068940 
>>3068898
Ты кстати с докером разобрался? Помню пыхтел, говорил что сложно очень
Аноним 01/03/24 Птн 08:00:40 #466 №3069038 
>>3068794
пездой четаешь? Я написал "на битриксе", а не "в". В самом ядре битрикса одно говно, но никто не мешает использовать только его апи, а свои модули писать нормально(бизнес его сейчас хавает и кабаны пытаются оседлать эту волну, в джунам деваться некуда, на нормальный стек очередь пару км).
Аноним 01/03/24 Птн 09:16:58 #467 №3069064 
>>3068940
А что с докером? Запустил контейнеры и всё. Там что-то еще нужно знать?
Аноним 01/03/24 Птн 10:55:09 #468 №3069149 
Ошибка docker-compose.yml: services.ports must be a mapping
Что не так?

version: "3"
services:
php:
image: php:8.2-apache
container_name: php82
ports:
- 8000:80
volimes:
- ./php:/var/www/html
build:
context: .
dockerfile: Dockerfile
Аноним 01/03/24 Птн 11:25:00 #469 №3069168 
>>3069149
Проверь отступы.
Аноним 01/03/24 Птн 11:29:59 #470 №3069172 
Screenshot 2024-03-01 at 11-24-28 Simplest way to setup NGINX with Docker Compose.png
Screenshot 2024-03-01 at 11-28-14 Releases · dockercompose.png
Почему везде пишут версию композера три, хотя последняя вторая?
Аноним 01/03/24 Птн 11:48:34 #471 №3069194 
>>3069172
Зачем вобще её пишут, когда рекомендуют не писать?
Аноним 01/03/24 Птн 11:49:36 #472 №3069198 
>>3069064
Та не. Просто тебе это сложно давалось помню
Аноним 01/03/24 Птн 13:18:24 #473 №3069265 
Кто-нибудь может на машине под управлением Linux и через консоль (типа php file.php) выполнить следующий скрипт:

<?php
echo "hello\rworld";

В теории оно должно вывести
>world

Но во всяких онлайн IDE получается

>hello
>world

У меня сейчас доступа к машинам на линуксе нет.
Аноним 01/03/24 Птн 13:34:03 #474 №3069271 
Без имени.png
>>3069265
Аноним 01/03/24 Птн 13:43:47 #475 №3069275 
>>3069265
>\r
>Carriage return by itself provided the ability to overprint the line with new text.
https://en.wikipedia.org/wiki/Carriage_return#Computers

Это сама консоль видя \r перезаписывает текущую строку. А браузеру на это поебать, для него эти закорючки - просто текст.
Аноним 01/03/24 Птн 14:06:09 #476 №3069284 
Дайте рабочий простой пример docker compose со связкой php + nginx + mysql + phpmyadmin
Аноним 01/03/24 Птн 14:10:37 #477 №3069288 
>>3069284
>mysql
Это че такое?
Аноним 01/03/24 Птн 14:13:11 #478 №3069291 
>>3069038
Написанная в /local/ реализация паттерна ради паттерна конечно же охуенна, но большинство кода таки приходится на ковыряние $arParams в result_modifier.php и написание своих компонентов, которые приходится писать в битриксовой "архитектуре" не знакомой не то что с паттернами, а даже с psr.
Есть конечно же проекты с большой бизнес-логикой, где действительно можно дохуя всего написать достаточно хорошо и красиво, а от битрикса нужна только админка и конечно же именно ты с такими проектами работаешь. Вот только большинство пользователей этой хуйни малые кабанычи, которым в красивом слайдере на жиквери нужно показать ассортимент шаурмы либо мухосранские управляйки которым нужно вывести при помощи bitrix:news график отключения горячей воды.
Аноним 01/03/24 Птн 14:13:45 #479 №3069293 
>>3069288
Это раньше в 00х использовалось в качестве БД
Аноним 01/03/24 Птн 14:17:09 #480 №3069300 
>>3069291
>мухосранские управляйки
Сейчас зашел на их сайт, раз уж вспомнил, где я добавлял этот самый график 3 года назад трекая несколько микрозадач по 15-30 минут, они уже на друпале, лол
Аноним 01/03/24 Птн 14:43:10 #481 №3069314 
>>3069284
Написал на днях. Можешь переделать под себя, сменив постгрес на mysql или просто добавить его в конфигурацию. Как подключить контенер с phpmyadmin, разберешься сам.
https://github.com/bcchicr/docker-php-env
Если есть кто-то разбирающийся, послушал бы, в каких местах есть косяки, и что хорошо бы исправить.
Аноним 01/03/24 Птн 15:35:11 #482 №3069354 
>>3069293
А вот и семен
Аноним 01/03/24 Птн 15:36:51 #483 №3069356 
photo-176424.jpg
>>3069354
Аноним 01/03/24 Птн 15:59:15 #484 №3069401 
>>3069271
Спасибо. Наконец-то я разобрался.

>>3069275
Нет, там всё несколько сложнее. Большинство онлайн PHP-интерпретаторов засовывают результат выполнения кода в textarea. А textarea обрабатывает любую комбинацию, которая может использоваться для переноса строки, как перенос строки. \r это mac-style line ending.
Ещё какая-то часть сайтов засовывает результат в pre. Там \r просто выбрасывается, как будто его и нет.
И всего один я нашёл, у которого как бы настоящая эмуляция консоли с отрисовкой через canvas. Вот там \r обрабатывается как и должно. А должно, как показал анон выше, прыгать на начало строки, да.
Аноним 01/03/24 Птн 16:04:09 #485 №3069411 
>>3069401
>Наконец-то я разобрался.
В чем? У тебя ОКР?
Аноним 01/03/24 Птн 16:24:17 #486 №3069430 
>>3069284
https://github.com/bitrixdock/bitrixdock
Аноним 01/03/24 Птн 16:29:50 #487 №3069439 
44vf9jf1xjky.webp
>>3069411
Да! Я обязательно должен был разобраться в том, как \r ведёт себя в консоли линукса, и почему тогда большая часть онлайн интерпретаторов воспринимает его как перенос строки.
Аноним 01/03/24 Птн 16:35:38 #488 №3069443 
Screenshot 2024-03-01 163430.png
Screenshot 2024-03-01 163444.png
>>3069401
Шиз, textarea здесь вообще не причем.
Аноним 01/03/24 Птн 17:49:25 #489 №3069532 
>>3069314
Посмарел твой DI контейнер. Мне кажется стоило начать со сценариев его использования. Тогда было бы проще понять что он должен уметь и зачем. Например, довольно быстро пришло бы понимания, что регистрировать в нем каждый класс это дело очень заебное. И надо бы какой-то авторезолвинг прикрутить.

По коду отписал тут
https://github.com/bcchicr/student-list/commit/f644ad083dcf54e01a348872556ac5fc2f058eb2#diff-01c0bcde8fbc53292e14349c599a302c50ce6749dabf213648fb2051ca1d73a0R46
Если кратко, то начало бодрое, код нормальный. Но к концу ноги явно заплетаются и начинается путаница. Еще пару классов в эту структуру и все - сам бы хуй разобрал что там куда. Явно надо сначала набивать руку на чем-то более понятном, без когнитивного оверхеда в виде рефлексии и анализа кода.
Аноним 01/03/24 Птн 18:16:08 #490 №3069547 
>>3069532
Благодарю, ценные комментарии.
>Но к концу ноги явно заплетаются и начинается путаница.
Да, так и было. Где-то ночью параллельно с написанием курил PSR-11, смотрел реализации на packagist и читал статьи на тему.
>Мне кажется стоило начать со сценариев его использования.
Я решил приложение в впринципе писать послойно с самых низов. Начал с создания среды в докере. Далее в планах написать свои простенькие ORM, фронт контроллер и остальное, что понадобится.
Аноним 01/03/24 Птн 18:31:54 #491 №3069561 
>>3069547
Но начал не с самых низов, лол.
Где само "приложение"? Где конфиг? Обертка над глобальными массивами PSR 7 и 15?

Я уже заебался постить это видео. https://www.youtube.com/watch?v=pz6VdH4_BSg
Посмотри, чтобы лучше понимать структуру приложения и самое главное, почему она стала именно такой.
Аноним 01/03/24 Птн 18:37:18 #492 №3069566 
>>3069443
Какой же ты умный...

https://onlinephp.io/
html body div#content-container.sandbox div#content-noright form#sandboxform.php-editor-form div#output_sandboxform div.functionresult div.result textarea.autoheight.results-textarea

https://jsfiddle.net/r3mdtvxf/

Ладно, я немного обосрался, если вместо textContent сделать innerHTML, то \r начнёт переносить строки. Хотя мне чё с этого?
Аноним 01/03/24 Птн 18:40:08 #493 №3069567 
Screenshot 2024-03-01 183922.png
>>3069566
Пчел. Я запостил тебе код, который запустил на своем компудахтере в своем браузере. Че ты несешь вообще?
Аноним 01/03/24 Птн 18:48:49 #494 №3069573 
>>3069561
> Где само "приложение"?
Пишется же. Я решил зайти со стороны базы данных и посчитал, что прежде чем читать конфигурацию и открывать соединение, стоит сделать контейнер для его хранения.

За видео спасибо. Не пожалел, что отписался в тред.
Аноним 01/03/24 Птн 19:10:32 #495 №3069591 
>>3069567
Зачем ты влезаешь, если не понимаешь, о чём идёт речь?
Часть онлайн-сервисов посылает результат выполнения скрипта в textarea через value, \r начинает считаться переносом строки. Другая часть посылает результат в pre через textContent, в результате \r просто отбрасывается.
Всё.
Аноним 01/03/24 Птн 19:17:17 #496 №3069599 
>>3069591
>онлайн-сервисов посылает
Шиз. Посылает куда? Кто тебе "рисует" эти "переносы"?
Аноним 01/03/24 Птн 21:15:53 #497 №3069755 
>>3069291
Щи то поделать, десу.
Сейчас такое время, джунам битрикс подсовывают.
Аноним 01/03/24 Птн 21:30:40 #498 №3069776 
>>3069755
>джунам битрикс подсовывают.
Это мне мухосранск подсунули где один битрикс поэтому выбора нет кроме битрикса
Аноним 01/03/24 Птн 22:12:33 #499 №3069838 
scale1200.png
>>3069776
мы обязательно перейдем на нормальный стек, бро...
Аноним 01/03/24 Птн 22:13:46 #500 №3069842 
>>3069838
ето да
Аноним 02/03/24 Суб 00:53:11 #501 №3070064 
16032992225320.jpg
Как понять, что бекэнд программистом на PHP уровень "мидл" уже пройден и ты уже "сеньёр"?

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

С джуном понятно: взяли тебя работать и спустя 3 месяца не уволили - ну, значит джун.
С мидлом более-менее тоже: это тот же джун, но ему уже можно оставить любую задачу и он будет её решать без постоянного контроля и внимания, потому что набил руку.
Но сеньёр? Кто эта собака сутулая? Нельзя же просто по стажу отделять. Может, у одного человека больше экспы за два года накапало чем у другого за десять? По списку технологий? Тоже хуйня получается. Типа, раз один знает докер и ангуляр, то он сеньёр, а тот, кто нет - мидл? Так это вообще не бекенд технологии, а девопс и фронт. Меряться знанием SQL и PHP? Типа, пока не можешь с похмелья написать запрос на 20 строк кода, то не сеньёр?
Аноним 02/03/24 Суб 01:16:32 #502 №3070081 
>>3070064
Сначала попытайся предоставить исчерпывающие определения всех этих градаций (джун, мидл, хуйун и пр.) и ты обнаружишь, что это термины без определений придуманные какимто долбоебом, поэтому не пытайся как-то определить кого к кому относить.

По сабжу сам также как и ты. Лет 8 пердолюсь с пыхой, каких задач только не решал, но постоянно ощущение, что я джун джунович. А потом мне попадается чужой код и я ловлю фейспалмы. Вспомнил стори: подселили к нам зумерка фронтендера, а я во фронте вобще не шарю, но этот еблан вме мозги мне выебал, пришлось учить его и постманом пользоваться и пост запросы на сервак отправлять. Проработал у нас пол года где-то и ушёл. Через пол года я глянул его аккаунт, а там он о себе написал: senior software developer. С тех самых пор мне всё стало понятно со всеми этими петушиными определениями
Аноним 02/03/24 Суб 01:54:06 #503 №3070095 
>>3069838
В конечном итоге так и происходит, студии которые перерастают во что-то большее отказываются от этого говна, потихоньку избавляясь от тех кого они сделали и кто у них там на поддержке. А вот всякие говнари плотно утопают в этом болоте.
Аноним 02/03/24 Суб 09:15:22 #504 №3070170 
> троллинг тупостью
Аноним 02/03/24 Суб 12:19:02 #505 №3070383 
изображение.png
function (int $a, mixed ...$args) {}

Как правильно назвать $args? Вот список аргументов - он переменной длины. А как дать понять, что $args - тот самый аргумент, который, на самом деле, может быть любым количеством аргументов?
В JS есть термин "остаточный аргумент". Но по этому словосочетанию находятся только статьи про JS, а если ввести "php остаточный аргумент", то такой лулз. Хотя, по запросу "php rest argument" уже что-то находится, но хз, как будто какого-то официального(тм) названия у таких аргументов нет, и каждый называет их как хочет.
Аноним 02/03/24 Суб 12:54:22 #506 №3070438 
https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list
Многоточие в сигнатуре уже показывает, что функция принимает переменное количество аргументов.
Аноним 02/03/24 Суб 16:34:40 #507 №3070634 
>>3070064
Развел сопли на пустом месте. Ты взрослый мужик. Цени свои навыки, будь открытым к тому, чтобы делать что-то иначе и все. Пишешь код и платят? Значит все норм. Видишь что кто-то пишет лучше тебя - сиди разбирайся почему его код лучше, чем твой и как сделать свой код таким же.
Аноним 02/03/24 Суб 20:34:30 #508 №3070929 
Пацаны, подскажите, хочу сделать md-файл, выложить его на github, но так, чтобы справа была вкладка с содержимым моего md-файла, т.е. с якорями. Что писать в самом файле, чтобы сделать такую вкладку?
Аноним 02/03/24 Суб 20:36:15 #509 №3070936 
изображение.png
>>3070383
Аноним 02/03/24 Суб 21:57:47 #510 №3070999 
>>3070936
Разве так сложно называть вещи своими именами?

Почему в словаре метод "вернуть строку"?
Почему переменная называется ИДЕНТИФИКАТОР СЛОВАРЯ, но внутри МАССИВ? Причем не идентификаторов словарей, а идентификаторов ЭЛЕМЕНТОВ конкретного словаря?
Почему метод называется processPROPERTIES, а результат называется resultITEM? Свойства это итемы или наоборот?
Почему результат поиска по словарю возвращает СЛОВАРЬ?
То что predictedDirectorIES называется с какого-то хуя directoryPredict - это у же так, мелкая доебка на фоне остального пиздеца.

Но самый главный вопрос: какого хуя из названия функции и её параметров невозможно нихуя понять что вообще происходит и нахуй это надо?
Просто блядь список используемых терминов:
process, property, result, item, element, dictionary, id, facet, string, directory, predict
Максимально не опознаваемая дженерик хуета. И всего одно слово дающее хоть какой-то контекст - predict.
Как такое говно читать? Нахуя такое говно писать?
Аноним 03/03/24 Вск 06:21:37 #511 №3071330 
>>3069573
Отписался по новому варианту контейнера.
https://github.com/bcchicr/student-list/commit/6aca6417c7c14910f320091ba76b89f254ccf181#diff-b3061446b6923316c68d46e450315e4a900b1fd223576d2bafa009bbd417f97eR29

Если честно, то стало хуже. Тебе как минимум нужно расписать алгоритм: что происходит при попытке получить зависимость из контейнера. Прям построчно. Рекурсивность работы контейнера явно тебе тяжело дается. И сверху ещё проблемы с ооп.

По тестам комментировать не стал. Там просто ерунда написана.
Начни с того что ты тестируешь СЦЕНАРИИ.
1) Если я запрашиваю несуществующую зависимость, то получаю исключение.
2) Если я задаю зависимость, то могу её получить.
3) Если зависимость задана как синглтон, то она кешируется.

Ну и к тому же ты пока сам контейнер до ума доведешь задолбаешься из переписывать.
Короче, для тестов рано. Тесты надо уметь писать. Иначе ты просто нахуярил x2 кода, который теперь менять в джва раза дольше. А у тебя процесс исследования и проектирования идет.
Аноним 03/03/24 Вск 13:01:15 #512 №3071532 
>>3071330
Спасибо, анон. Я, планировал всему научиться в процессе написания, но даже не надеялся на оценку со стороны. Постараюсь все учесть. В сторону декораторов даже не думал, красивая мысль.

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

>А у тебя процесс исследования и проектирования идет.
То есть, стоит покрыть тестами сценарии контейнера и не трогать классы, через которые реализована его работа, пока реализация постоянно меняется? Но реализацию же стоит тестировать на корректную работу, когда она примет устойчивую форму?
Аноним 03/03/24 Вск 15:47:36 #513 №3071757 
>>3071532
ЗАБЕЙ НА ТЕСТЫ. Ты не знаешь что тестировать вообще.
В прошлой итерации у тебя код хавал исключение контейнера при попытке резолва зависимости. То есть сам у себя. А также код вне контейнера кидал исключения по сути самого контейнера.

Что произойдет с тестами этих исключений когда ты нормально все напишешь? Правильно - это мусор, который вылетает в помойку. Отдельный вопрос: зачем вообще тестировать исключения. Тебе три человека пять вариантов высрут что и как надо тестировать.
Аноним 03/03/24 Вск 23:09:40 #514 №3072489 
>>3070999
Лол. Ты не поверишь, но это код компонента, который считается ЭТАЛОНОМ как надо писать в битриксе. Его всегда приводят в пример "чистого" кода. Так что это ты что-то не понимаешь, уж разработчикам кора битрикса виднее.
Аноним 03/03/24 Вск 23:20:03 #515 №3072508 
never-give-up-bitrix.png
>>3072489
Конечно поверю.
Пикрелейтед именно я делал, если че. Видел некоторое дерьмо.

Говенная кодовая база это как бы общеизвестный минус битрикса. Буквально любая бесплатная параша написана лучше. Наверное только насчет вордпресса есть сомнения, и то вряд ли - там бюджет на разработку гораздо больше чем у битриксоговна.
Аноним 03/03/24 Вск 23:43:09 #516 №3072530 
Что-то я залип на том, как поженить кэш-декоратор с базовым контейнером. Определения в базовом контейнере являются callable вида "fn ($container) => ... ". При вызове $cache->get($id) с незакэшированным ключом кэш делегирует get($id) базовому контейнеру. Если в массиве $definitions есть callable с таким ключом, базовый контейнер вызывает его как $definitions[$id]($this) и возвращает значение.
Поскольку $this - это базовый контейнер, замыкание не имеет доступ к кэшу. Если замыкание обратится к контейнеру, будут созданы новые экземпляры объектов, которые могли быть уже закэшированы, и это проблема, которую я пока не понимаю, как решить.
Разумно, чтобы базовый контейнер ничего не знал о своих обертках, поэтому вероятно стоит делегировать резолв некоторому объекту DefinitionResolver?
Аноним 04/03/24 Пнд 00:00:07 #517 №3072547 
>>3072530
Ну в общем все как я и говорил. Добавилась пара классов и ты запутался окончательно. Надо прям по порядку разбираться что идет после чего и зачем.

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

Если хочешь прям подробно разобрать, то это надо экран стримить и схемы рисовать. Заходи в дискорд, расскажу покажу. https://discord.gg/YV4CxgGaah Так по комменту сто раз переписывать - ты либо вообще забьешь в итоге, либо месяц потратишь.
Аноним 04/03/24 Пнд 13:52:41 #518 №3072991 
>>3034858 (OP)
Какой смысл добавлять DTO, только потому что конструктор класса принимает 5 параметров от пользователя?
Аноним 04/03/24 Пнд 16:23:01 #519 №3073190 
>>3072991
>DTO
Значение знаешь?
Аноним 04/03/24 Пнд 16:55:39 #520 №3073248 
>>3073190
Data Transfer Object - Объект передачи данных. Но нафига мне создавать DTO?
Аноним 04/03/24 Пнд 17:27:35 #521 №3073277 
>>3073248
>data transfer object (DTO[1][2]) is an object that carries data between processes
>This pattern is often incorrectly used outside of remote interfaces. This has triggered a response from its author[3] where he reiterates that the whole purpose of DTOs is to shift data in expensive remote calls.
>нафига мне создавать DTO?
Тебе и не надо. Тебе надо создать структуру данных с конфигурацией создаваемого объекта.
Кто ж виноват что в говноязыке только две возможные структуры: объект с кучей лишней хуйни и массив без типизации и контроля содержимого.
Аноним 04/03/24 Пнд 20:14:21 #522 №3073462 
>>3073277
А в го как там?
Аноним 04/03/24 Пнд 20:28:34 #523 №3073471 
>>3073462
А в го нет никаких конструкторов.
Аноним 04/03/24 Пнд 22:37:26 #524 №3073571 
>>3034858 (OP)
Можно ли в DTO использовать значение по умолчанию в конструкторе или где-то еще?
Вообще где-то можно найти адекватный пример простого DTO?
Аноним 04/03/24 Пнд 23:58:49 #525 №3073628 
>>3073571
>DTO
Значение знаешь?
Аноним 05/03/24 Втр 00:13:39 #526 №3073643 
>>3073471
Ох и goвно
Аноним 05/03/24 Втр 05:44:17 #527 №3073791 
>>3072508
>сравнивать CMS и фреймворк
>шёл 2k25...
Ебало?
Аноним 05/03/24 Втр 06:01:09 #528 №3073794 
16792914653930.jpg
>>3073791
>вордпресс
>битрикс
>CMS и фреймворк
>Ебало?
Мое ебало пикрелейтед.
Аноним 05/03/24 Втр 08:11:43 #529 №3073841 
>>3073628
Нет, не знаю
Аноним 05/03/24 Втр 08:48:25 #530 №3073859 
Какая же поганая у Фабьена книга. Нет, чтобы подробно написать про свой фреймворк и расписать как им пользоваться, он пишет всякую левую дичь. Вот только про гиты, докеры и сервера написано много книг, а про Симфони никто больше не пишет.

Конкретно сейчас втыкаю в пагинацию:
https://symfony.com/doc/6.2/the-fast-track/ru/10-twig.html
Так и не смог понять, что за пагинатор и как им пользоваться, потому что говнюк Фабьен ни черта про него не написал.
Аноним 05/03/24 Втр 16:26:10 #531 №3074246 
>>3073859
Согласен. Про докеры хуекеры написано, про фреймворк этот ебаный написано.
НО.
Раз уж ты написал книгу, то будь добр объясни ЧТО ТАКОЕ КНИГА И КАК ЧИТАТЬ! Так и не смог понять, как этой хуйней пользоваться.

Фабьен, говнюк! Что толку с твоей книги если ты не приложил к ней инструкцию как читать? Вкатуны вкатиться не могут, паскуда.
Аноним 05/03/24 Втр 19:06:49 #532 №3074416 
Щас бы блядь читать книги по программированию, это каким дауном нужно быть
Аноним 05/03/24 Втр 19:07:02 #533 №3074417 
>>3074246
Я много книг читал по программированию и у него очень плохо всё написано. Он буквально даже не пытается объяснить код, который приводит в книге. Видимо, читатель должен как мартышка его переписать и восхищаться гением Фабьена. Либо читатель уже всё знает, но тогда нафига нужна его книга? Конкретно про пагинацию, выдаёт функцию с каким-то монструозным кверибилдеров. Что там за параметры? Да даже объяснил бы саму концепцию этих таких билдеров. Если бы я до этого не читал книжки по джаве, то вообще наверно бросил изучение симфони. Тут хотя предыдущий опыт позволяет не дропнуть, а поискать в других местах объяснения. И вот другие почему-то объясняют все эти штуки, хотя они не авторы фреймворка, а рядовые программисты.
Аноним 05/03/24 Втр 19:11:45 #534 №3074427 
>>3074416
Какие ещё варианты? Документация? Она тоже ничему не учит, а скорей справочник для тех, кто уже знает, но забыл.
Видосики? Они тоже разного качества и не покрывают всех тем. Да и времени отнимают гораздо больше, чем чтение книги. Также проблема видосиков, что сложно сделать закладки и вернуться к прошлым темам. Некоторые снимают сразу по 1-2 часа, поди потом найди момент, где он объясняет нужную тему.
Аноним 05/03/24 Втр 19:33:23 #535 №3074452 
>>3074427
>проблема видосиков, что сложно сделать закладки и вернуться к прошлым темам
Я пишу себе конспекты.
Аноним 05/03/24 Втр 19:47:53 #536 №3074464 
>>3074417
> Да даже объяснил бы саму концепцию этих таких билдеров.
А еще читателю пока он читает книгу надо периодически жрать.
Автору надо объяснить концепцию того как жрать, иначе как книгу прочитать тогда.

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

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

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

Охуеть просто, еще расскажи что ты словарь до буквы "ж" дочитал и чет концепцию не понял.
Аноним 05/03/24 Втр 19:52:03 #537 №3074466 
>>3074464
>перед сном читаешь
Да, перед сном лучше запоминается
Аноним 05/03/24 Втр 19:56:49 #538 №3074467 
По каким книгам, курсам лучше учить продвинутые темы из роадмапа из шапки? Кеширование, безопасность, архитектура, брокеры сообщений, масштабирование под нагрузкой.
Аноним 05/03/24 Втр 20:02:04 #539 №3074472 
>>3074466
Запоминается что? Концепция квери билдера? Если у тебя деменция, то надо инвалидность получать и мелкую моторику развивать. Лего купи, кубики.

Имаджинирую ебало плотника, который утром купил себе за 100к охуенный фрезер чтобы четкие фаски делать. А на следующий день забыл что это и нахуя это ему.
Аноним 06/03/24 Срд 12:28:14 #540 №3075158 
77.jpg
Screenshot 2024-03-06 at 12-27-23 Screenshot.png
Подскажите правильный синтаксис
Аноним 06/03/24 Срд 13:05:58 #541 №3075191 
>>3075158
Как вы заебали со своим ?>
Аноним 06/03/24 Срд 13:07:28 #542 №3075192 
>>3075191
А что не так?
Аноним 06/03/24 Срд 13:12:53 #543 №3075194 
>>3075192
не нужон
наведи на него мышкой
Аноним 06/03/24 Срд 13:57:32 #544 №3075244 
>>3075192
Массивы через array() создаешь?
Аноним 06/03/24 Срд 14:00:03 #545 №3075246 
>>3075158
А по синтаксису: нахуя ты открывающую скобку перед insert поставил?
Аноним 06/03/24 Срд 14:01:14 #546 №3075248 
>>3075246
Да и стринговые значения нужно в кавычки брать, а у тебя они не в кавычках
Аноним 06/03/24 Срд 14:02:13 #547 №3075249 
>>3075248
Да и вместо mysqli используй pdo
Аноним 06/03/24 Срд 14:28:11 #548 №3075282 
Screenshot 2024-03-06 at 14-24-51 Screenshot.png
77.jpg
Попробовал только с именем и фамилией такое пишет, что не так то? Всё по документации
Аноним 06/03/24 Срд 14:37:33 #549 №3075294 
>>3075282
А всё, надо было в одинарные кавычки переменные поставить
Аноним 06/03/24 Срд 14:43:20 #550 №3075303 
>>3075294
Хуесос, читай что тебе пишут, залупа тупая. >>3075248
И пиши код нормально. Почитай про per-2 хотябы, говно
Аноним 06/03/24 Срд 15:53:49 #551 №3075406 
>>3075303
Зачем ругаешься?
Аноним 06/03/24 Срд 15:56:09 #552 №3075409 
>>3074472
А вот представь инструкцию к фрезеру, если бы её написал Фабьен? Там наверняка бы было описано про то, как валить деревья, сплавлять их по реке, а в конце он был оставил изображение своего изделия, выполненное с помощью фрезера, но про то, как пользоваться фрезеров - ни строчки.
Аноним 06/03/24 Срд 16:09:01 #553 №3075428 
17096899210760.png
Индекс вката по РНР совсем просел. Сейчас уже не вкатиться в РНР?
Аноним 06/03/24 Срд 16:36:24 #554 №3075451 
>>3075409
Ты не поверишь.
https://www.fit-instrument.ru/files/instr/80597_instr.pdf

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

Это сколько же вкатунов в столярку "бросили изучение" когда купили фрезер и попытались прочитать инструкцию. А там СЛОЖНА. Ниче НЕПОНЯТНА. И к тому же, вот это блядь наглость, нет встроенного курса по теории столярного дела и машиностроения.
Аноним 06/03/24 Срд 22:27:22 #555 №3075880 
>>3034858 (OP)
Как можно описать в OPENAPI swagger два варианта response? То есть роут может принимать флаг, в зависимости от этого флага роут вернут либо одно тело, либо другое.
Аноним 06/03/24 Срд 23:22:51 #556 №3075955 
>>3075880
https://swagger.io/docs/specification/data-models/oneof-anyof-allof-not/
Аноним 07/03/24 Чтв 00:25:21 #557 №3075989 
>>3075406
Не читаешь нихуя
Аноним !6Applef0d2 07/03/24 Чтв 08:52:07 #558 №3076088 
изображение2024-03-07114841681.png
>>3070064
Если в компании нет грейдовой системы, сам предложи ввести ее. У каждой компании свои понимания о том, кто сеньер. Я только в двух компаниях проработал, и в обоих навыки сеньера выходили за рамки "я разработчик - пишу код". На пике плохой пример. У нас были указаны конкретные навыки и опыт работы с определенными продуктами. По каждому пункту требований мы коллективно тесты создали еще.
Аноним 07/03/24 Чтв 09:05:45 #559 №3076091 
Стоит ли заменять GET-параметры в URL на красивые параметры через слеши? К примеру,
index.php?action=show&page=2&orderby=ASC
на
/show/2/ASC

Как быть, если некоторые параметры являются необязательными, но после них пойдут другие параметры?
Вообще, имеет ли смысл упарываться и менять их? Может вполне нормально оставить GET'ы?
Аноним 07/03/24 Чтв 09:15:53 #560 №3076095 
>>3076091
У нас были проблемы с ботом гугла. Он писал, что у нас по разным ссылкам одиа и та же страница открывается.
Аноним 07/03/24 Чтв 10:09:29 #561 №3076132 
>>3075428
Чел, вкат давно всё, сейчас здесь те кто занимаются этим как хобби
Аноним 07/03/24 Чтв 11:59:38 #562 №3076257 
>>3076132
Манямирок. Дохуя вакансий для бомжей на 15-30-50к, если ты вкатун, то отработаешь пол года - год и попиздуешь на новую работу, но уже с опытом и нормальной зп
Аноним 07/03/24 Чтв 12:42:34 #563 №3076275 
>>3034858 (OP)
Как работает тегированный кеш в битриксе? Допустим я вынул информацию о товаре из разных таблиц. Цена находится в одной таблице, отзывы в другой. Тегированный кеш будет iblock_id_59.
Допустим кто-то добавил отзыв для этого товара. Кеш сброситься (для всех полей или только для поля отзывы?). А как битрикс определяет, что этот отзыв относится к этому товару и кеш этого товара надо сбросить?
Аноним 07/03/24 Чтв 12:47:40 #564 №3076282 
>>3076275
Или что, если изменить цену для одного товара, то обновится кеш для всех товаров инфоблока iblock_id_59?
Хотя все равно не понятно, как он отслеживает конкретне поле
Аноним 07/03/24 Чтв 12:57:38 #565 №3076294 
>>3076282
>Хотя все равно не понятно, как он отслеживает конкретне поле
То есть в таком случае понятно
Аноним 07/03/24 Чтв 13:44:39 #566 №3076335 
>>3076257
>Дохуя вакансий

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

>вакансий для бомжей на 15-30-50к

Вкатуны бесплатно готовы работать. Какие на хуй 15к, никто не будет платить столько джуну когда он готов делать все бесплатно.

>-30-50к

За 30-50к тебе сочная зумерша после курсов фронтенда будет давать ебать себя в рот, пизду и жопу каждый день. Ещё и унитазы мыть языком

Покормил
Аноним 07/03/24 Чтв 14:25:22 #567 №3076384 
>>3076335
Надо учить гошку и крутить опыт на РНР. На собесе всё равно за РНР не спросят, поэтому для успешного вката надо только гошку нормально выучить.
Аноним 07/03/24 Чтв 17:46:39 #568 №3076567 
16817438744090.png
>>3076384
>На собесе всё равно за РНР не спросят
Аноним 07/03/24 Чтв 18:33:59 #569 №3076614 
>>3076567
Гошники не знают РНР, поэтому можно крутить опыт РНР и не палится, что не знаешь РНР.
Аноним 07/03/24 Чтв 22:25:46 #570 №3076776 
>>3076132
Вой о том, что вкатиться уже нельзя когда-нибудь прекратится?
Всегда, когда речь о программировании, придет хотя бы один человек, который будет заливать одно и тоже. И похуй, истину или ложь он заливает, просто этот ор уже невыносимо читать.
Аноним 07/03/24 Чтв 23:39:23 #571 №3076810 
4534534534t.jpg
>>3076776
Пчел. Я до крымнаша, на третьем курсе, пошел искать подработку. Написал в резюме: писою, какою, жопу вытираю сам, уверенный пользователь эвм, ЗНАКОМ с пхп, знаю что такое джойн.

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

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

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

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

Вкатопокалипсис в айти уже случился. Пикрелейтед отклики на вакансию "1-2 года опыта". Возможен ли при этом вкат? Фактически да: вся тысяча джуновских вакансий в этом году будет закрыта. А статистически нет: вероятность просто приглашения на собес для вкатуна сегодня меньше процента.
Так что сиди, трясись и жди очередных выборов.
Аноним 08/03/24 Птн 00:46:49 #572 №3076845 
>>3076614
>палится
Уроки доделал, гошник?
Аноним 08/03/24 Птн 01:31:42 #573 №3076865 
Кто-нибудь может простыми словами объяснить что такое Service Providers в ларке?
Аноним 08/03/24 Птн 01:36:21 #574 №3076867 
>>3076810
Фактически да: вся тысяча джуновских вакансий в этом году будет закрыта.
Конечно, кул стори, Боб, но все же. Читал в комментариях, что люди приходили на должность джуна по php, а по итогу не могли даже сказать про передачу переменной по ссылке или чем отличается абстрактный класс от интерфейса. Я все-таки считаю, что если нормально подготовиться, не лукавить, основательно вникать в темы, то все же есть шанс вката.
Аноним 08/03/24 Птн 02:08:15 #575 №3076877 
>>3076867
>вероятность просто приглашения на собес для вкатуна сегодня меньше процента
>Я все-таки считаю, что если нормально подготовиться, не лукавить, основательно вникать в темы, то все же есть шанс вката.
Каждый раз.
На одну секунду забудешь какие дегенераты в этом треде сидят, так тебе сразу напоминают.

Ноу щит, шерлок. Шанс того, что ты благодаря квантовым эффектам, в результате коллапса волновой функции телепортируешься с проперженного дивана за окно, тоже не нулевой. Просто он ДОСТАТОЧНО маленький, чтобы человечество этого события никогда не пронаблюдало. А жаль.
Аноним 08/03/24 Птн 02:48:13 #576 №3076884 
>>3076865
Это просто штука которая содержит в себе токены к сервисам в регистр методах или конфигурацию в ооп стиле, в бут методах. Всё это можно хранить в одном провайдере, но, для пущего удобства можно создать несколько провайдеров и разделить всю эту катавасию по смыслу, например: провайдер, который внедряет сервисы для авторизации, провайдер для работы с маршрутами и пр.

Можешь глянуть сей видос, там мужик всё нормально пояснил: https://youtu.be/VYPfncvYW-Y?si=NVNBbriDxNk_3MoL
Аноним 08/03/24 Птн 04:46:20 #577 №3076899 
>>3076884
Спасибо, анонче. Обязательно гляну видео.
Аноним 08/03/24 Птн 23:22:55 #578 №3078113 
>>3075158
Юзай линтер!

Какой фрейворк посоветуете задрачивать? Мне приглянулся symfony, норм? Я пока только базу задрочил, вовоп, мвс, работу с бд и файлами. Решил пора переходить к фрейворку. Как я понял выбор только между ларавел и симфони.
Аноним 08/03/24 Птн 23:26:51 #579 №3078116 
>>3078113
Да, кстати, с битриксом я проебался окончательно. Не осилил. Искал 2 бага половину суток. Один из них был это когда я пытался вытащить айди инфоблока через гетлист, я там указал SITE_ID зачем-то. Ну хуй знает зачем, вот почему-то подумал что так будет красиво и всё. А оказалось, что константа SITE_ID в административном разделе выдаёт локализацию ru/en, а в публичном как раз сам айди сайта. Ну что это за бред. Это же вообще не очевидно изначально, если не знаешь, то вот так и будешь рыться в коде сто лет.

Кароче не успел я сделать задание на этой ебучей стажировке. Сгорел. Не хочу больше никогда заниматься битриксом. Может в других фрейворках так же трудно, но в них я готов жрать говно, потому что это всемирно признанные стандарты. А битрикс это отечественный кал!!!!!!!
Аноним 09/03/24 Суб 08:05:15 #580 №3078257 
>>3078113
Ларавель учить проще, потому что по нему больше учебных материалов. В Симфони придётся выискивать инфу по крупицам. Сам вот сейчас застрял на полиморфным связях в Доктрине и не могу продвинутся уже неделю. Думаю, что зря взялся за Симфони, надо было не выделываться, а учить как все Лару.
Аноним 09/03/24 Суб 08:53:19 #581 №3078309 
>>3074467
Отус
Аноним 09/03/24 Суб 09:17:40 #582 №3078345 
>>3078309
Это круто если у них учишься, а если смотришь слитые видосики, то толку ноль, потому что нет практики и задания в видосиках они не разбирают. Надо такой курс, где в одном видео дали задание, а в следующем его разбирают как правильно сделать.
Аноним 09/03/24 Суб 14:22:07 #583 №3078634 
Вы перекат будете пилить?
Аноним 09/03/24 Суб 17:39:18 #584 №3078892 
Бля, где взять документацию симфони на русском? Пару дней назад открывал symfony.ru но сейчас он наелся и спит
Аноним 09/03/24 Суб 18:47:46 #585 №3078975 
>>3078257
Что не понятно по полиморфным связям?
Аноним 09/03/24 Суб 18:48:51 #586 №3078977 
>>3078892
>symfony.ru
Вроде работает.
Аноним 09/03/24 Суб 18:50:15 #587 №3078979 
>>3078345
Только так и надо делать курсы. А теорию можно и самому почитать. Что толку смотреть как тебе рассказывают про синтаксис, это полная чепуха, а не обучение!
Аноним 09/03/24 Суб 19:27:36 #588 №3079075 
>>3078892
ПКМ -> перевести страницу
Аноним 09/03/24 Суб 20:12:30 #589 №3079175 
>>3078892
https://symfony-com.translate.goog/doc/current/routing.html?_x_tr_sl=auto&_x_tr_tl=ru&_x_tr_hl=ru
Аноним 09/03/24 Суб 20:32:50 #590 №3079216 
>>3063770
Уж лучше задротить по 100 часов в неделю в норм фреймворке, чем дельфинчиком жрать говно!!!
Аноним 10/03/24 Вск 06:50:54 #591 №3079572 
ОП, как дела?
Ты - один из немногих нормальных людей, которые тут отписывались.
Без твоих ответов тред совсем болотным выглядит.
Одни токсики сидят.
Аноним 10/03/24 Вск 21:24:40 #592 №3080827 
Поставил по учебнику 9 ларавель и лара/ui без указания версии - запустил на локалке - сломалось всё к хуям, насрало ошибками.
Поставил последний ларавель с ui - все работает.

А как мне такое фиксить если мне на работе скажут пили проект на ларе старой версии какой нибудь, как я буду ебаться со всеми этими пакетами, подбирать версии что бы все работало ?
Аноним 10/03/24 Вск 22:09:13 #593 №3080885 
>>3058828
создаешь папку Service(s) и ебашишь туда свое говно
опционально создаёшь папку Repository и получаешь копрокопию доктрины
Аноним 10/03/24 Вск 22:45:51 #594 №3080929 
>>3080827
Никак.
Ты проснешься, обоссавшись и обосравшись, в мамкиной квартире на проперженном диване. Никакой "работы" у тебя нет и не будет. Ты просто фантазируешь как ты куда-то там "вкатываешься" чтобы окончательно не поехать кукухой от такой жизни.
Аноним 10/03/24 Вск 22:51:22 #595 №3080934 
>>3080827
>как мне такое фиксить
перекат в симфони бля буду там таких проблем нет ты актуальную версию хотя бы посмотреть в сосотоянии?
Аноним 10/03/24 Вск 22:51:41 #596 №3080935 
>>3080929
Откуда ты узнал что он спит на диване? Я тоже сплю на диване /spoiler]
Аноним 10/03/24 Вск 23:14:51 #597 №3080954 
>>3080935
А сидишь на стуле. А еще ты сегодня дрочил.
Телепатия - страшная штука. Особенно в руках пхп программиста. Он, как человек к говну близкий, очень остро ощущает животные эманации.
Аноним 10/03/24 Вск 23:25:30 #598 №3080968 
>>3080929
>фантазируешь как ты куда-то там "вкатываешься" чтобы окончательно не поехать кукухой от такой жизни.
Жиза.
Аноним 11/03/24 Пнд 00:58:08 #599 №3081046 
Вкатун. Только сейчас понял, что никогда не отправлял HTTP-заголовки, только отдавал коды ошибок. Я даже не представляю как это происходит. Насколько критично, пацаны?
Аноним 11/03/24 Пнд 02:12:24 #600 №3081068 
>>3081046
Просто изучай и не думай лишнего. Как время придёт - сам по себе вкатишься и не заметишь. И не задавай больше глупых вопросов, для них придумали ChatGPT 4.0!
Аноним 11/03/24 Пнд 13:04:00 #601 №3081394 
>>3081068
> не задавай больше глупых вопросов
С каких пор пыхари стали вумными ?
Аноним 11/03/24 Пнд 13:05:46 #602 №3081399 
>>3081046
>никогда не отправлял HTTP-заголовки
Ты когда пост написал - отправил заголовок на сервер двощей с телом сообщения.
Аноним 11/03/24 Пнд 14:04:37 #603 №3081490 
Bind for 0.0.0.0:443 failed: port is already allocated

services:
web:
image: nginx:latest
ports:
- 443:443
- 80:80
volumes:
- ./html:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
image: php:7.4-fpm
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: example
MYSQL_USER: example
MYSQL_PASSWORD: example
volumes:
- ./db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: example
Аноним 11/03/24 Пнд 14:23:33 #604 №3081524 
>>3081490
У тебя на хосте какая-то программа уже заняла 443 порт. Возможно у тебя запущен веб-сервер.
> ports:
> - 443:443
> - 80:80
Проще всего будет пробросить контейнер на другие порты. Или остановить программу, занявшую порт.
Аноним 11/03/24 Пнд 14:48:26 #605 №3081562 
>>3081524
А как узнать кто порт юзает? И какими можно заменить которые точно свободны?
Аноним 11/03/24 Пнд 15:10:30 #606 №3081618 
>>3081562
Загуглил бы, анон.
# lsof -i -P -n | grep LISTEN
под виндой netstat -a -b
Аноним 11/03/24 Пнд 18:35:08 #607 №3081985 
Как сделать чтобы ебаный докер композер запускался без рута? В гугле и в документации ни один способ не помог
Аноним 11/03/24 Пнд 23:06:33 #608 №3082332 
>>3081399
Имелось ввиду руками. Самому написать php-код, который отдает заголовки.
Аноним 12/03/24 Втр 08:13:12 #609 №3082495 
>>3081985
Там надо в группу докера себя прописать
Аноним 12/03/24 Втр 10:15:39 #610 №3082555 
Технически, в родительской функции можно объявить функцию-потомка, а в функции-потомка объявить функцию-внука. И сделать между ними цепочку вызовов. Типа:

function dvach () {
function sosach () {
function mailach () {
}

mailach();
}

sosach();
}

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

Правильно понял? Если да, то нахуя так можно делать вообще? Прост? Способ выстрелить себе в ногу? Или для сабжа есть какое-то реальное применение?
Аноним 12/03/24 Втр 11:59:05 #611 №3082712 
>>3082555
>Способ выстрелить себе в ногу
А как ты выстрелишь ? тебе компилятор ошибку выдаст что функцию нельзя объявить 2 раза. А так у тебя есть анонимная функция и static.
Аноним 12/03/24 Втр 12:02:26 #612 №3082719 
quote-i-m-not-a-real-programmer-i-throw-together-things-until-it-works-then-i-move-on-the-rasmus-lerdorf-82-6-0602.jpg
>>3082555
>Но это абсолютно бессмысленно и приведёт к тому, что dvach и sosach можно будет вызвать только 1 раз
Каво? Ты можешь ОБЪЯВИТЬ функцию только один раз. А вызывать можно сколько угодно. https://3v4l.org/H9XQI

>нахуя так можно делать вообще? Прост?
Пик стронгли релейтед.
Аноним 12/03/24 Втр 13:35:18 #613 №3082848 
Снимок экрана в 2024-03-12 13-33-47.png
>>3082495
Спасибо помогло. Но почему докер композе все равно создает папку html и bd с доступом только для рут пользователя? Я даже создавать и редактировать там ничего не могу если IDE не из под судо запущено
Аноним 12/03/24 Втр 14:05:04 #614 №3082894 
>>3082848
Если внутри контейнера всё выполняются от рута, то он и создаёт файлы с правами рута.
Аноним 12/03/24 Втр 16:01:20 #615 №3083170 
изображение.png
Не совсем понял, в чём смысл запрета на callable в качестве типа свойства. Пикрелейтед, да, действительно, не очень понятно, как быть в этой ситуации. Но ведь Closure::fromCallable позволяет всё-таки это сделать, как бы проигнорировав то, что method приватный. Если бы вместо Closure созданного Closure::fromCallable был callable, что бы изменилось?
Аноним 12/03/24 Втр 16:33:20 #616 №3083243 
>>3083170
>Closure::fromCallable
Closure фиксирует контекст и гарантирует правильное выполнение функции.
Аноним 12/03/24 Втр 17:11:10 #617 №3083292 
>>3083243
Да, в большинстве случаев нужен Closure и он даёт больший контроль. Но ещё что - аргумент метода всё ещё может иметь тип callable. В чём профиты?
Аноним 12/03/24 Втр 21:51:05 #618 №3083815 
>>3083170
Проблема не в том можно или нет выполнить приватную функцию снаружи. Ну нет и нет, на то она и приватная.
Проблема в том что в зависимости от ситуации ТИП МЕНЯЕТСЯ НАХУЙ https://3v4l.org/O8C70

Это как раз то место когда "динамическая" система типов превращается в "ебанистическую" или даже "шизофреническую". Когда это дерьмо создавалось, считать массив функцией казалось охуительно крутой идеей. А сейчас один аллах знает что на планете наебнется если эту поебень убрать.
Аноним 13/03/24 Срд 07:54:17 #619 №3084175 
>>3083815
Это я тоже читал (RFC, на который ссылаются после кода в моём скриншоте). Но вот, что изменилось?

https://3v4l.org/Pl4ec

Мы всё ещё можем применить ебанистическую шизофрению.

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

Правильно понял?
Аноним 13/03/24 Срд 08:02:07 #620 №3084178 
>>3084175
> типизация аргументов - 5.0.0
> типизация свойств класса - 7.4.0
Аноним 13/03/24 Срд 08:03:18 #621 №3084179 
>>3084178
Не дописал и отправил.

В общем, если судить по номерам версий, моё предположение похоже на правду. В 5.0.0 ещё не понимали проблем callable и добавили. А к 7.4.0 уже поняли, и решили запретить.
Аноним 13/03/24 Срд 09:30:13 #622 №3084214 
>>3084175
>>3084179
Вот ты приходишь в палату к шизофренику и спрашиваешь: ты что двенадцать лет назад делал? А он тебе говорит: не знаю, у меня тогда в голове ДРУГОЙ гномик жил. Выводы из этого рассказа какие?
Не общайся с шизофрениками блядь, вот какие выводы.

В этом языке говна - лет десять вычерпывать, если прямо сейчас сесть фиксить. Так никто садиться и не собирается. Ты к вкусу привыкай и рвотный рефлекс учись контролировать.
Аноним 13/03/24 Срд 10:03:00 #623 №3084231 
>>3084214
А вот и нихуя. По сути, может, и так, но с датами я серьёзно обосрался. В 5.0.0 появилась типизация аргументов, да. Но типом могло быть только имя класса. И было оно так до 7.0.0, которая релизнулась 03.12.15. Типизация свойств класса появилась в 7.4.0, релиз 28.11.2019.
Так что спрашивать нужно, где вы были 4 года назад.
Аноним 13/03/24 Срд 10:30:58 #624 №3084280 
Обязательно делать отдельный класс под Response, который возвращается из сервиса в контроллер или можно просто массив бахнуть? Просто если под каждую сущность контроллер с 4 методами, то получится дофига этих классов Response. Вроде простой круд на 3 кнопочки, а классов в нём дофигища.
Аноним 13/03/24 Срд 10:40:15 #625 №3084293 
>>3084280
Подключи PSR-7 совместимую библиотеку и пользуйся.
Аноним 13/03/24 Срд 10:55:48 #626 №3084324 
>>3084280
Из сервиса в контроллер возвращается результат работы сервиса. А Request и Response это часть представления вообще. Response это буквально то что ты возвращаешь пользователю: заголовки, куки, Html или json в body.
Аноним 13/03/24 Срд 11:36:11 #627 №3084385 
>>3084324
Вот вы тут говорите - книги не читай. А на деле без книг не понятно как правильно это всё писать. Я вот из интернета вычитал этот совет, что сервис должен возвращать специальный объект, а контроллер должен состоять из одной строчки типа:
$service->getResponse();
Ещё можно сверху её обернуть какой-нибудь функцией типа сделать жсон и отправить через return.
Аноним 13/03/24 Срд 11:42:32 #628 №3084396 
>>3084293
А Симфони разве не поддерживает PSR-7? Мне казалось, что именно симфонисты и создали эти стандарты, а значит в симфони они уже реализованы.
Аноним 13/03/24 Срд 11:52:31 #629 №3084405 
>>3084385
Где ты это прочитал? Ссылку дай.
Аноним 13/03/24 Срд 12:17:32 #630 №3084426 
>>3084405
Вот этот мужик насоветовал:
https://youtu.be/v-VxZ0NpMxs?si=ArTsxhTVBTDYH-Z-&t=250
Аноним 13/03/24 Срд 12:39:51 #631 №3084446 
>>3084426
Бляя... Какой же лютый кал. На моменте когда он рядом с папкой Entity создал папку Model я кофе поперхнулся.

Согласен, автор не имел ввиду Response как ответ на Rerquest. Он просто долбоеб и лепит постфикс Response как обозначение того что функция результат возвращает. IdResponse ебать. Давно так не угарал.
Аноним 13/03/24 Срд 12:57:23 #632 №3084480 
>>3084280
Если это круд на 2 с половиной пука, то можно и логику в колбеках маршрута делать и это не будет являться говном, говном будет являться, если ты на три пука обмазывать абстракциями/паттернами/псарами начнешь. Но это справедливо если ты уверен, что проект не будет расширяться
Аноним 13/03/24 Срд 12:59:43 #633 №3084487 
>>3084385
Вот поэтому книги читать и не надо, а если точнее, то не нужно полагаться на них. Читать нужно, про технические возможности, а как правильно делать приходит онли с опытом
Аноним 13/03/24 Срд 13:48:15 #634 №3084547 
>>3084446
Дак где черпать инфу? Книги читать нельзя, а в интернетах лютый кал.

>>3084480
Я постоянно слышу, что нельзя писать толстые контроллеры.

>>3084487
Хорошо, где взять этот опыт, если без опыта на работу не берут? Я вот более чем уверен, что с толстыми контроллерами меня не возьмут.
Аноним 13/03/24 Срд 13:55:18 #635 №3084558 
>>3084547
> Я постоянно слышу, что нельзя писать толстые контроллеры.
Нельзя. Но если у тебя получается толстый контроллер, то это не приложение на 2 пука

> Хорошо, где взять этот опыт, если без опыта на работу не берут?
Проблемы гоев
Аноним 13/03/24 Срд 14:03:31 #636 №3084562 
>>3084558
Естественно, у меня серьёзный пет-проект. Я вот и хотел разобраться как надо писать в солидных проектах, но книги вы не разрешаете читать, а годных материалов из интернета не скидываете. Самому весь этот многолетний опыт программирования не придумать.
Аноним 13/03/24 Срд 14:07:03 #637 №3084563 
>>3084562
Если у тебя солидный пет проект на ларе - открываешь доку лары и читаешь куда, как и какие куски логики распихивать. Но если у тебя нет опыта, ты всеравно ничего не поймешь
Аноним 13/03/24 Срд 14:09:37 #638 №3084565 
>>3084563
А если на Симфони?
Аноним 13/03/24 Срд 14:14:17 #639 №3084569 
>>3084565
Тогда сначала придется отмыть рот от говна
Аноним 13/03/24 Срд 14:15:28 #640 №3084571 
>>3084547
Нигде. Книги тебе запретили, в тиктоках лютый кал. Остается только завалить ебало и катиться в сторону дота-треда.

Че ты услышать хочешь? Искать где "не говно", нюхать самому, спрашивать заядлых говноедов. РАБОТАТЬ НАДО блядь. Мозгами шевелить. Профессия такая.
Аноним 13/03/24 Срд 14:21:00 #641 №3084575 
>>3084571
>Че ты услышать хочешь?
Хочу услышать: держи, анончик, ссылочку, там рассказано как надо делать правильно.
Аноним 13/03/24 Срд 14:48:47 #642 №3084600 
>>3084575
https://blogs.mtdv.me/articles/symfony-6-lesson-1
Аноним 13/03/24 Срд 17:13:19 #643 №3084785 
https://3v4l.org/jOYBW

Почему $globB === null? Переменная $loc ведь статичная. То есть, после выхода из функции, она не уничтожается. Или традиционное

> Тебе же сказали - привыкай ко вкусу кала

Или там какая-нибудь такая хрень, что она уничтожается, но при следующем вхождении в функцию, её прошлое значение откуда-то берётся?
Аноним 14/03/24 Чтв 00:03:22 #644 №3085337 
>>3084785
>Или традиционное
А потом удивляются: разве может язык плодить долбоебов? С ними наверное просто сразу что-то не так было, правда?

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

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

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

И тогда рождается "битриксоид". Бездушный демон, в каждой строке его кода сквозит отчаянье и смерть. Его код наполнен безумием, но его лицо абсолютно спокойно. Ему ПОЕБАТЬ. Он скользит по тонкой грани между сумасшествием и троллингом. А моральные уроды, создавшие этот язык, аплодируют ему. Он познал их дзен. Он заставляет это дерьмо работать прямо сейчас любой ценой. Для него завтра не существует. Потому что он сам не существует. Существует только язык, позволяющий не просто выстрелить себе в ногу, а хуйнуть главным калибром одновременно на все триста шестьдесят.

И он хуярит. С блаженной улыбкой на обескровленных губах покойника, он плетет паутину безумия. Глобальные переменные, хаки, классы в классах. Он сравнивает даты запросом в базу и переопределят значения true и false. Он гасит и зажигает солнца. Этот богомерзкий язык дает ему власть над самим мирозданием. Власть сеять хаос в сердцах людей. Власть распространять скверну, поразившую его самого. И темные апостолы - создатели и рабы этого богомерзкого языка. Возносят ему богохульную молитву. Они жаждут чтобы их создание множило энтропию вселенной, пока не наступит вечная холодная тьма, вечное ничто.
Аноним 14/03/24 Чтв 03:02:31 #645 №3085434 
>>3085337
Работу на го уже нашел?
Аноним 14/03/24 Чтв 03:21:24 #646 №3085435 
>>3085337
Скажи мне какой ЯП не говно и почему оно не говно. И почему пхп говно, а этот ЯП не говно.
Аноним 14/03/24 Чтв 06:18:47 #647 №3085490 
>>3085435
>И почему
Сначала ты ответь. Почему так? https://3v4l.org/T61fE
Аноним 14/03/24 Чтв 08:07:05 #648 №3085565 
Я вот не понимаю, чего гошники лезут в этот тред? Мы что ли виноваты, что их на работу не берут без опыта на пхп?
Аноним 14/03/24 Чтв 09:54:38 #649 №3085666 
>>3085490
Потому что в феврале нет 31 числа?
Аноним 14/03/24 Чтв 10:35:14 #650 №3085702 
>>3085666
Ты настолько же объебанный, как и автор этой функции? Откуда ты нахуй взял вообще 31 число? И как это транслируется в смену даты? И какого хуя еблан с двачей об этом подумал, а создатель языка нет?

Ладно, хуй с ним с числом.
Почему разница во времени между Europe/Amsterdam и Europe/Moscow один час?
Аноним 14/03/24 Чтв 11:12:19 #651 №3085751 
>>3085702
Ты какой-то буйный. DateTimeImmutable в date выводиться полная дата с временем. То что ты указываешь createFromFormat лишь означает какие данные он возьмет из строки. Всю недостающую информацию о дате он возьмет из текущей даты.
>Откуда ты нахуй взял вообще 31
Почему ты не задумываешься откуда он берет "15:45:49.000000" при выводе date?

>Почему разница во времени между Europe/Amsterdam и Europe/Moscow один час
Потому что они переводят время наверное.
Аноним 14/03/24 Чтв 11:33:55 #652 №3085772 
>>3084231
Зандстра всё давно расписал. Что-то не устраивает - иди жуй гавно в битрекс.
Аноним 14/03/24 Чтв 11:47:00 #653 №3085792 
Что не так с докером? Запускаю - все нормально открывает, через некоторое время открываю ту же тсраницу - пишет не найдена. Стопаю запускаю все завново - ничего не найдено. При этом ничего не меняю, просто работает когда хочет
Аноним 14/03/24 Чтв 11:49:46 #654 №3085799 
>>3085792
>когда хочет
У докера нет своей воли, глупыш. Должна быть объективная причина, постарайся ее найти.
Аноним 14/03/24 Чтв 12:19:05 #655 №3085836 
>>3085799
Нашел, оказывает порт 8080 и 80 это разные вещи
Аноним 14/03/24 Чтв 12:29:43 #656 №3085852 
>>3085751
>Всю недостающую информацию о дате он возьмет из текущей даты.
Вот именно это я и имел ввиду. Изъебанный этим уродливым подобием языка мозг давно превратился в комок гноя и месива из раковых клеток.

И уже не задается вопросом: а какого хуя к ПЕРЕДАННОЙ дате лепится ТЕКУЩАЯ? Она типа от этого более пиздатой датой станет или что? И какого хуя при этом меняется месяц в ПЕРЕДАННОЙ дате? Ну прилепил ты число и время, их и коверкай, сука пробитая.

>наверное.
Язык "наверное", язык "может быть", язык "завтра заработает".
А давай без "наверное"? А давай ты сначала будешь проверять плоды своего скудоумия, а уже потом будешь срать ими в тред? https://3v4l.org/H4TTm
Аноним 14/03/24 Чтв 12:34:10 #657 №3085859 
>>3085852
>какого хуя к ПЕРЕДАННОЙ дате лепится ТЕКУЩАЯ?
>Immutable
Значение знаешь?
Аноним 14/03/24 Чтв 12:40:37 #658 №3085866 
>>3085859
Объебышь, ты слепой? https://3v4l.org/T61fE
Аноним 14/03/24 Чтв 12:41:28 #659 №3085869 
>>3085852
Ну ничего. Побугуртишь-побугуртишь, да и заматереешь. Будешь потом таких же маленьких бугуртышей уму разуму учить. Ты разибрайся главное.
Аноним 14/03/24 Чтв 12:48:34 #660 №3085878 
>>3085869
>>3085337
>Этот язык делает из людей скавенов. Уродливых созданий с таким же уродливым и извращенным мозгом.
>Этот язык как мутаген, как кровь Маннороха. Он плавит слабым людям мозги в безумный сплав говна, падали и болотной гнили. В таких мозгах не то что умная мысль - опарыш не заведется.

>Ну ничего. Побугуртишь-побугуртишь, да и заматереешь.
>Будешь потом таких же маленьких бугуртышей уму разуму учить.

Этот тред. Эта сточная яма. Поддон под /б и дотатредами, в который стекает самое тупорылое, самое гнилое что есть на харкаче.
Аноним 14/03/24 Чтв 13:25:13 #661 №3085920 
>>3085878
Это ты тупой, а мы не тупые
Аноним 14/03/24 Чтв 13:28:13 #662 №3085928 
>>3085920
А с опарышами как?
Аноним 14/03/24 Чтв 13:40:28 #663 №3085941 
>>3085565
Да это один поехавший уже который тред рвется и каждый раз обсирается
Аноним 14/03/24 Чтв 13:57:30 #664 №3085961 
>>3085941
Мне кажется он гошник, но вынужден учить пхп. Думает, раз написал пару хеллоуворлдов на го, то по определению умнее любого пхпшника. А на деле же тупее стажёра пхпшника, так как не в языках дело.
Аноним 14/03/24 Чтв 14:25:27 #665 №3086001 
Подскажите конфиг для default.conf Nginx в докер композ, юзаю такое, но чет мозги ебет:
server {
listen 8000;
index index.php index.html;
root /var/www/public;

index index.html;

location / {
try_files $uri /index.php?$args;
}

location /docs {
try_files $uri $uri/;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Аноним 14/03/24 Чтв 14:45:28 #666 №3086022 
>>3086001
Норм конфиг. Только хуй получишь айпи клиента. Сам ебался с этим, заебался блядь
Аноним 14/03/24 Чтв 14:47:41 #667 №3086026 
>>3086022
Мне для локалхост, почему-то не открывает register.html в рабочей папке, а index открывает
Аноним 14/03/24 Чтв 15:58:27 #668 №3086106 
Снимок экрана от 2024-03-14 15-54-36.png
Напомните какой правильный синтаксис
Аноним 14/03/24 Чтв 17:27:39 #669 №3086173 
>>3086106
За двойные кавычки Альберт сразу кол ставит и домашку дальше не проверяет.
Аноним 14/03/24 Чтв 18:18:14 #670 №3086206 
>>3086173
С одинарными тоже ошибка
Аноним 14/03/24 Чтв 18:29:10 #671 №3086215 
>>3086106
>>3086206
Попробовал через Опен сервер, все правильно и работает, я так понял докер ебаный не может нормально запустить контейнеры то ли с пыхой, то ли с мускулом. А ведь с этим говном ещё и работать...
Аноним 14/03/24 Чтв 18:47:56 #672 №3086243 
>>3086215
Хз, проверил. Нормально докер запускает и пыху и мускуль. Наверное дело не в докере
Аноним 14/03/24 Чтв 19:09:51 #673 №3086285 
>>3086215
Ты бы хоть коды ошибок показывал. У тебя контейнер с php и контейнер с базой в одной сети находятся? По какому адресу ты открываешь соединение?
Аноним 14/03/24 Чтв 19:16:12 #674 №3086303 
ПЕРЕКАТ!
ПЕРЕКАТ!
ПЕРЕКАТ!

https://2ch.hk/pr/res/3086299.html
Аноним 16/03/24 Суб 05:08:30 #675 №3087789 
Зачем перекатывал человек, который не умеет перекатывать и который зачем-то поменял шапку?
Аноним 16/03/24 Суб 05:09:17 #676 №3087790 
Уж лучше сидеть в этом треде, потому что он кажется легитимным. И ждать нормального переката.
Аноним 16/03/24 Суб 06:58:53 #677 №3087798 
Блять...Год учу php, только сейчас понял, что строка запроса это то, что идет после знака вопроса в адресе, а не просто часть URL-адреса после указания схемы и сервера.
Аноним 16/03/24 Суб 20:45:47 #678 №3088633 
>>3087789
Потому что вы уже 200 постов перекатить не можете. Жри, что дают или перекатывай правильно, сам
Аноним 17/03/24 Вск 02:46:52 #679 №3088921 
>>3080827
Ну вот да. Требуется (вот требуется, хоть хуем по лбу стучи) установить Ларавел 8, например. Ты его ставишь. Потом ставишь все пакеты, указывая точные версии нужных пакетов. Да, всё устаревшее. Да, будут проблемы, типа надо подключить платёжку, а она версии 1.4 минимум, и если поставить 1.3, то сервер платёжки пошлёт нахуй, но 1.4 ставится только на Ларавел 9. Поэтому ты будешь ВЫНУЖДЕН сопрягать это дерьмо, вплоть до ковыряния в потрохах vendor. Ладно, шучу, просто вдумчиво разбираешься в работе этого пакета, находишь отличия версий и пишешь прокладку-переопределялку. В общем, велкам ту геморрой. Впрочем, как правило старые пакеты прекрасно работают и так. Проблемы начинаются, когда приходится работать со сторонними сервисами, написанными хипстерами, у которых каждые полгода радикальные обновления и старые версии не поддерживаются.
Аноним 17/03/24 Вск 11:28:37 #680 №3089054 
Учу php год где-то. Знаю основы php, html, css, git, composer, laravel, mysql. Выполнял только список студентов, т.е. могу поднять локальный сервер и на чистом php сделать сайт. Но как-то ссыкотно искать вакансии, пытаться пробовать, хочется дальше зарыться в изучение программирования.
Аноним 17/03/24 Вск 11:30:38 #681 №3089056 
>>3088633
Считаю лишним перекат при 500-600 постах. Можно и до 1000 ждать.
Аноним 17/03/24 Вск 15:43:29 #682 №3089462 
Как же мне лень заниматься вёрсткой. Даже банально украсть чужой лендинг лень. Не хочу ковыряться в их стилях, не хочу разбираться в их классах, но и не хочу с нуля все писать. На работе всегда был готовый css и стили, которые просто притягивал для новых живое. Но для своих проектов так день этим заниматься. Что делать?
Аноним 18/03/24 Пнд 20:59:36 #683 №3091401 
>>3089054
>ссыкотно искать вакансии
загугли 100 вопросов, хорошо выучи, пока не сможешь ответить почему нужно не:
try { $hrukayushiyService->hruknutWithDanger(); } (\Throwable $e) {} (\RuntimeException $e) {}
а try { $hrukayushiyService->hruknutWithDanger(); } (\RuntimeException $e) {} (\Throwable $e) {} и иди штурмовать работадателей. Пыхо собесы не очень душные даже в приличные места
Аноним 18/03/24 Пнд 21:03:43 #684 №3091406 
>>3089056
мы не джэва, а молодой-перспективный-быстро развивающийся язык, нам нельзя как же хочется дженерики и многопоток, а не синтакисческий сахар...
Аноним 24/03/24 Вск 00:43:53 #685 №3097579 
Untitled.jpg
Слононы, подскажите видеокурс по пыхе более-менее актуальный (т.е. 8 или 7 версия) где делают проект и затрагивается как можно больше языка и стандартной либы.
Что-то аля как пикрил, где все вершки рассматривают, чтобы потом уже за корешки идти тянуть.
Аноним 27/03/24 Срд 13:12:26 #686 №3101718 
Как стать Битрикс веб-программистом за 50к в месяц, сколько лет надо учиться? Спасибо
Аноним 28/03/24 Чтв 14:15:47 #687 №3103520 
>>3097579
Для совсем новичков у ларика есть годный курс на торрентах. Если именно видео-курс по языку, тогда Program with Gio на ютубе. Если учиться кодить нормально, тогда подписка на Хекслете за 4к в месяц, ничего лучше нет
Аноним 28/03/24 Чтв 15:01:52 #688 №3103571 
>>3081985
Пропиши в докер-композе
php:
user: ${USER_UID}:${USER_GID}
А эти хуйни задай по 1000 в енв-файле. Тогда он по идее должен будет мапить на твоего пользователя. Но если используешь docker engine то скорее всего будут проблемы с правами на файлы. Я себе из-за этого поставил docker desktop, что не пердолиться лишний раз
Аноним 30/03/24 Суб 09:34:24 #689 №3106224 
148fb0fd28c575ad38e766d0ef78e9f7.jpg
Эхх, вот уже 4 года как вкатился. Как же время летит. Лежу себе, попукивая, тратя где-то по 4 часа в день на работу.
Мало того, что зарплата у тебя за месяц как у других за целый год, так ещё и встаёшь когда хочешь, никуда ехать не надо, работаешь мало.

А ведь это всё дващ! До этого работал за 20 тысяч руками, живя в богом забытой деревне на 150 человек. А так надвачевался ваших айти-тредов и попробовал этот ваш пхп.
Аноним 30/03/24 Суб 18:05:17 #690 №3106774 
подскажите как решать задачи на поиск уникальных значений в строке без array_unique и count_chars
Аноним 02/04/24 Втр 08:15:07 #691 №3109466 
Чё по производительности array относительно stdClass? Примерно одинаково, или что-то из этого шустрее и я в каких-то ситуациях должен использовать одно из, если хочу оптимизировать код?
Аноним 02/04/24 Втр 08:32:54 #692 №3109476 
>>3109466
Под производительностью подразумевается всё: и скорость работы, и количество потребляемой памяти.
Аноним 02/04/24 Втр 20:54:46 #693 №3110255 
>>3109466
тя ебет?
Аноним 07/04/24 Вск 00:43:04 #694 №3114690 
Когда нормальный перекат треда?
Аноним 19/04/24 Птн 18:14:12 #695 №3128886 
Клуб изучающих PHP продолжает свою работу.
С нормальной шапкой и сохранением нумерации.
>>3128882 (OP)
>>3128882 (OP)
>>3128882 (OP)
Аноним 19/04/24 Птн 18:38:07 #696 №3128920 
>>3128886
Как успехи?
Аноним 19/04/24 Птн 22:11:19 #697 №3129111 
ПЕРЕКОТ
https://2ch.hk/pr/res/3128808.html
comments powered by Disqus

Отзывы и предложения