Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 696 113 169
Клуб изучающих PHP #137 /php/ Аноним 04/02/24 Вск 21:09:58 3034858 1
изображение.png 116Кб, 500x500
500x500
изображение.png 1194Кб, 1024x683
1024x683
изображение.png 2287Кб, 1500x1125
1500x1125
изображение.png 330Кб, 720x511
720x511
Кто-то уже празднует, а мы изучаем язык 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 3034861 2
Аноним 04/02/24 Вск 21:11:55 3034862 3
Не щупал пыху уже несколько лет, ну как там у вас 8 версия прижилась или плюётесь?
Аноним 04/02/24 Вск 22:08:13 3034966 4
>>3034862
в проде 8.0 на всех проектах, подводных нет как и дженериков
Аноним 04/02/24 Вск 22:26:28 3035015 5
Screenshot 2024[...].png 17Кб, 792x204
792x204
Screenshot 2024[...].png 37Кб, 1902x206
1902x206
>>3034966
>в проде 8.0 на всех проектах
На всех 18.5% проектах

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как мне посчитать, аноны? Или хотя бы привести оба символа к одному размеру?
Аноним 05/02/24 Пнд 05:48:48 3035439 24
Аноним 05/02/24 Пнд 05:51:42 3035440 25
>>3035439
>какое отношение пхп имеет к тому как что выглядит на твоей странице
Я думал, мб есть функция, которая считает.

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

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

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

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

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

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

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

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

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

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

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

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

> ...

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

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

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

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

private ?int $prop = null;

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

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

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

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

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

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

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

Как настроить .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 3038572 64
>>3038566
У меня там будет поле для поиска.

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

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

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

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

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

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

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

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

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

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

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

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

Ну и не могу не добавить, что возвращать что-то по ссылке, тем более из объекта это полная хуйня и говнокод.
Аноним 08/02/24 Чтв 14:31:44 3040380 87
>>3040372
Ты в РНР-треде вообще-то. Тут уровень дискуссий не такой высокий как в джава, го или даже питоне.
Аноним 08/02/24 Чтв 14:33:23 3040383 88
>>3040380
Двачую. По факту мы ничем не отличаемся от битриксойдов которых поливаем здесь говном
Аноним 08/02/24 Чтв 15:07:26 3040417 89
>>3040383
Я вот жду, что сольют курсы Михаила Каморина и тогда можно будет повысить уровень дискуссий.
Аноним 08/02/24 Чтв 20:45:53 3040959 90
image.png 2430Кб, 1920x1040
1920x1040
>>3038376
Ну и на сколько наносеков тянет?
Аноним 08/02/24 Чтв 21:19:21 3041056 91
Аноним 08/02/24 Чтв 21:30:00 3041079 92
image.png 13Кб, 204x204
204x204
>>3041056
Хорошо, я буду ждать...
Аноним 08/02/24 Чтв 22:39:46 3041195 93
изображение.png 6Кб, 248x101
248x101
изображение.png 44Кб, 241x472
241x472
изображение.png 68Кб, 977x259
977x259
>>3035283
>>3035220
Поставил демо магазин и охуел 913 таблиц сука пустой сайт в котором 3 инфоблока.
290 sql запросов для детальной страницы товара, если он насрёт кэш из тысяч пхп файлов, то всего 23.
Аноним 08/02/24 Чтв 22:50:11 3041208 94
>>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 3041212 95
>>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 3041274 96
>>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 3041288 97
>>3041208
А че ты забздел-то? Заебись же перло.
Хуяришь какие-то статические методы в контроллере, да побольше. Называешь актив рекорд модель "сущностью". Че ты вдруг побежал "логику делить"?

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

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

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

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

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

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

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

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

Я не знаю по каким тиктокам ты пытаешься учить язык. Но найди блядь себе нормальный курс. И не еби мозги анонам. Выпытывать у тебя че ты там на самом деле хотел по несколько постов никому нахуй не упало.
Аноним 09/02/24 Птн 09:13:34 3041373 109
Могу дать консультацию.
Мимо сенька, 10 лет в вебе.
Аноним 09/02/24 Птн 09:14:11 3041374 110
Аноним 09/02/24 Птн 09:15:55 3041379 111
Аноним 09/02/24 Птн 09:25:19 3041390 112
16432039664700.png 73Кб, 339x512
339x512
Аноним 09/02/24 Птн 09:26:16 3041393 113
>>3041390
Не пости этот баян. Им уже давно никого не насмешить
Аноним 09/02/24 Птн 09:29:08 3041398 114
>>3041393
Насмешил, проверяй.
Аноним 09/02/24 Птн 10:24:24 3041462 115
16946796652791.mp4 5368Кб, 1080x1920, 00:00:15
1080x1920
Аноним 09/02/24 Птн 12:15:50 3041564 116
>>3041212
Сколько тебе платят как битриксойду?
Аноним 09/02/24 Птн 12:49:47 3041582 117
>>3041462
Откуда? Это типа интервью какого-то?
Аноним 09/02/24 Птн 12:56:40 3041589 118
Поясните за перечисления (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 3041612 119
>>3041589
Нет, нихуя.
У тебя есть роль. Есть энум со списком возможных ролей. И есть представления этой роли в разных процессах.
Аноним 09/02/24 Птн 13:13:44 3041616 120
Аноним 09/02/24 Птн 13:19:17 3041626 121
>>3041616
Чтобы кабанчика удовлетворить и он дал денег на комбикорм
Аноним 09/02/24 Птн 18:03:52 3042003 122
>>3041626
А зачем тебе запрос чере d7 если у тебя уже есть выборка через старое апи? И в чем конкретно проблема?
Аноним 09/02/24 Птн 18:12:16 3042013 123
>>3041612
Я нихуя не понял из твоего ответа. Что нихуя-то? Типа, ты к тому, что трансформацию этого enum под разные цели стоит пихать не в сам enum, а в те места, где он используется?
Аноним 09/02/24 Птн 18:58:54 3042073 124
>>3041462
Слушай, так не смешно же...
Аноним 09/02/24 Птн 19:09:53 3042095 125
16726944928710.mp4 344Кб, 1280x720, 00:00:02
1280x720
>>3042013
>Допустим, у меня есть RoleEnum
>Я делаю им все, а потом еще и жопу им вытираю
>Нет, нихуя.
>У тебя есть
>роль
>энум со списком возможных ролей
>И есть представления этой роли в разных процессах
Аноним 09/02/24 Птн 19:25:43 3042119 126
>>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 3042139 127
>>3042119
Тяжело с дебилами, но походу других тут нет.
Давай начнем сначала. Зачем нужен enum? Для чего его используют?
Аноним 09/02/24 Птн 19:39:27 3042166 128
Снимок экрана в[...].png 70Кб, 1425x480
1425x480
Почему он не может просто остановится? Мне блять на каждый контейнера ctrlC + ctrlV делать?
Аноним 09/02/24 Птн 19:50:14 3042203 129
>>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 3042232 130
Screenshot 2024[...].png 49Кб, 1874x152
1874x152
>>3042203
Возвращаемся в наш пхп детсад для альтернативно одаренных и в сотый раз учимся читать. Открываем пикрелейтед и читаем по слогам.

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

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

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

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

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

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

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

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

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

А тыкать еблом в то что уже было написано по три круга, это мне нахуй не надо. Я не учитель из класса коррекции, у меня нет доброго сердца и терпения возиться с увечными и недоразвитыми. Помогать надо тем, кто может воспользоваться этой помощью. А слепошарых долбоебов, которые два предложения прочитать не могут надо слать нахуй.
Аноним 10/02/24 Суб 02:38:59 3042502 140
изображение.png 86Кб, 1110x362
1110x362
>>3042347
>приведение к какому-то типу, который можно сохранить в БД
Открою секрет, под капотом библиотек для работы с БД все типы приводятся к нужным типам для БД, даже обычные примитивы. Те же int в пыхе зависит от архитектуры, работает примерно как isize в расте для x64 будет 64 бита, что для постгреса будет как bigint. А хотя у того же постгреса есть куча других типов, которые имеют разную длину и они под капотом преобразуются туда-сюда. С остальными типами еще веселее, тот же uuid передается байтиками, а не строкой.
Аноним 10/02/24 Суб 16:11:36 3042881 141
Чему по дефолту равен 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 3042957 142
>>3042881
А тебе не приходило в голову что ждать коннекта и приконнектиться получив в ответ ошибку это мальца разные вещи?
Аноним 10/02/24 Суб 18:29:31 3043040 143
Косяк.png 587Кб, 3285x1082
3285x1082
Помогите пожалуйста, почему у меня на таблице эта линия снизу справа появляется? Делал всё по гайду из видоса, но у автора этой линии нет, а меня появляется и я хз как с этим справиться. Укажите на ошибку в коде.
Аноним 10/02/24 Суб 19:00:52 3043083 144
>>3043040
А нажать правой кнопкой и посмотреть какие стили там применены тебе автор из видоса запретил?
Аноним 10/02/24 Суб 19:06:43 3043092 145
>>3043083
куда конкретно нажать правой кнопкой?
Аноним 10/02/24 Суб 20:04:34 3043175 146
>>3042957
Да хуй знает, я понимаю, что там миллион вариантов, а я про работу HTTP знаю на уровне нихуя. Какие варианты в голову и пришли, так и попробовал.
Аноним 10/02/24 Суб 20:10:10 3043179 147
>>3043092
Ну хорошо хоть не спросил что за правая кнопка и где она находится. Забыли про кнопку, сложно.

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

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

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

Может ты просто сразу будешь внимательно читать что написано?
Аноним 10/02/24 Суб 22:42:54 3043335 151
Посоветуйте докер образ для запуска пхп в связке с мускулом
Аноним 10/02/24 Суб 22:51:03 3043340 152
>>3043335
Докер не предназначен для запуска как виртуалка с ахулиардом процессов. У тебя будет php-fpm в одном контейнере, а myql другом. Так правильно. Иначе тебе нужно в контейнер пихать систему инициализаци или какой-то демон который следит за дочерними процессами типа supervisord
Аноним 10/02/24 Суб 22:58:48 3043343 153
Аноним 11/02/24 Вск 08:03:05 3043520 154
>>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 3043828 155
Screenshot 2024[...].png 23Кб, 1786x124
1786x124
Screenshot 2024[...].png 19Кб, 1790x134
1790x134
Screenshot 2024[...].png 271Кб, 1432x1394
1432x1394
>>3043520
>CURLOPT_TIMEOUT это время ожидания ответа от сервера
>Что-то ты как-то вообще не понял
Да нет. Это ты нихуя не понял. Открываем документацию и читаем по слогам.

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

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

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

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

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

мимо
Аноним 12/02/24 Пнд 21:09:50 3045884 169
16918144259350.mp4 386Кб, 764x720, 00:00:03
764x720
>>3045557
>и не умер...
Ну жить можно кароч. ТЕРПИМО.
Аноним 13/02/24 Втр 01:26:54 3046246 170
>>3045557
Хочу также, заебал этот жыдбейнс, пользуюсь разными ide и с каждой новой версией они пихают все больше говна, то какой-то голландский штурвал code with me, то новый интерфейс, то какую-то нейронку.Теперь этот монстр глючит и тормозит покруче ide написанной на жопаскрипте. Но перелазить тяжело когда ко всему привыкнешь, прям как курить бросаешь
Аноним 13/02/24 Втр 01:58:39 3046262 171
Как правильно создать простой докер композе пхп + мускул + пхпмайадмин? Два дня ебусь с этими конфигами и каждый раз какая-то ошибка. Может есть максимально простой и правильный пример, в интернете только отсебятина с персональными высерами от каждого.
Аноним 13/02/24 Втр 02:44:13 3046276 172
Аноним 13/02/24 Втр 03:29:01 3046291 173
Screenshot 2024[...].png 29Кб, 1040x354
1040x354
Screenshot 2024[...].png 16Кб, 1038x230
1038x230
Screenshot 2024[...].png 16Кб, 1024x222
1024x222
>>3046246
Вот уж действительно, пхп макаки это самые тупорыле существа на земле.
Вместо того чтобы просто снять галочку с плагина ты занимался какой-то хуйней, менял иде, страдал, привыкал. Ебать ты тупой.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Есть класс, допустим 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 3047984 198
Кто тебя учил.mp4 5362Кб, 1920x1080, 00:00:23
1920x1080
>>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 3048132 199
изображение.png 155Кб, 690x405
690x405
А чего так запарно сделать аккаунт на гитхабе?
Посчитать, конечно легко, но не 10 же раз!
Аноним 14/02/24 Срд 15:53:22 3048310 200
>>3047902
>use
Значение знаешь?
Аноним 14/02/24 Срд 17:15:17 3048439 201
>>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 3048525 202
IMG202402141749[...].jpg 78Кб, 1080x527
1080x527
Аноним 15/02/24 Чтв 01:13:43 3049102 203
>>3047984
Про Богдана Хмельницкого забыл душнила
Аноним 15/02/24 Чтв 01:19:08 3049104 204
Screenshot 2024[...].png 85Кб, 1260x720
1260x720
Screenshot 2024[...].png 70Кб, 766x782
766x782
Screenshot 2024[...].png 184Кб, 1712x1708
1712x1708
Screenshot 2024[...].png 83Кб, 892x996
892x996
>>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 3049164 205
>>3049104
Окей, спасибо за развернутый ответ.

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

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

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

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

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

>пик2
Да, прикольно, мне почему-то не приходила в голову мысль прописывать use в самом html файле.
Аноним 15/02/24 Чтв 10:03:52 3049242 206
>>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 3049282 207
>>3049242
Окей, спасибо за ответ.
Аноним 15/02/24 Чтв 11:00:54 3049295 208
>>3017266 →
Я закончил задачу список студентов.
Не идеально, конечно, но закончил.
Имеет смысл показывать код, чтобы ты сказал, что мне следовало бы сделать лучше?
Если тебе влом смотреть, то ок. Я не против. :^)
Я начал курс по Laravel и собираюсь решать задачу с файлообмеником с помощью Laravel, а не Slim.
Наверное уже пора, учить фреймворк?
Аноним 15/02/24 Чтв 12:14:20 3049369 209
Аноним 15/02/24 Чтв 17:45:17 3049844 210
>>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 3049914 211
>>3049844
Лучше показывать код через онлайн редакторы кода, например: https://3v4l.org/
Более читаемо.
Аноним 15/02/24 Чтв 21:46:51 3050256 212
Аноним 15/02/24 Чтв 22:32:17 3050365 213
>>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 3050440 214
Аноним 15/02/24 Чтв 23:33:30 3050493 215
17018840242140.png 470Кб, 1280x720
1280x720
>>3050440
Ну так пусть битриксовский билдер использует. Он для того и предназначен чтобы динамически данные выбирать.
Аноним 16/02/24 Птн 01:56:44 3050605 216
>>3050493
Какой билдер? Там кусок говна в бд, вываливается таким же куском говна в виде массивов в которых ключи написаны капслоком
Аноним 16/02/24 Птн 02:22:49 3050615 217
>>3050605
Ну тогда сосать не разгибаясь, хули.

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

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

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

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

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

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

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

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

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

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

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

Ну так что. Шансы есть? Гои везде прогреты, но на битриксе кажется не до конца! Влетаем, гои!!!
Аноним 19/02/24 Пнд 00:05:32 3054070 251
>>3054042
Ну что ж. Ждём 5к откликов теперь и на Битрикс.
Просто какой-то глюк вселенной. Людям уже пофигу куда вкатываться, главное чтобы айти. Вместо того чтобы заняться делом прыгают с одного лобка на другой как блоха шлюхи
Аноним 19/02/24 Пнд 10:21:56 3054174 252
>>3041195
Расскажи, как ты количество запрос в базу смотришь
Аноним 19/02/24 Пнд 12:14:09 3054288 253
>>3054174
Уже удалил эту хуйню, точно не помню в каком месте, если авторизоваться под админом, то вверху будет панель где можно включить отладку
Ещё один рудимент для вебмастеров 00х лол
Аноним 19/02/24 Пнд 20:51:10 3055047 254
изображение.png 43Кб, 1056x620
1056x620
Аноним 20/02/24 Втр 00:34:56 3055379 255
Скажите пожалуйста, реально ли вкатиться в битрикс на удаленку за условно пол года или джунов вообще не берут. Сам живу в мухосрани, 0 вакансий ирл.
Аноним 20/02/24 Втр 07:57:46 3055506 256
Аноним 20/02/24 Втр 08:48:09 3055565 257
>>3055379
Если сможешь заниматься по 8 часов в день, то сможешь за полгода.
Аноним 20/02/24 Втр 11:00:16 3055703 258
>>3055506
Про это знаю, это другое.

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

Вот нахуя это дублирование? У меня уже есть one two three в непосредственно именах кейсов.
Аноним 20/02/24 Втр 11:14:46 3055721 259
>>3055379
Да, я в прошлом году 2 таких работы стажером удаленно нашел
Аноним 20/02/24 Втр 11:22:57 3055740 260
>>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 3055741 261
Аноним 20/02/24 Втр 11:52:40 3055783 262
>>3055740
>Просто у тебя название и значение СОВПАЛИ. А так бывает почти никогда

Почему? Почему вот ты решил, что hex это каноничное значение? Почему не так? https://3v4l.org/rskpC#v8.3.3
Аноним 20/02/24 Втр 13:38:48 3055930 263
>>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 3056773 264
Всем привет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>Except for the executing thread, the constituents of an agent belong exclusively to that agent.
В гугл транслейт вставить сможешь? Где ты тут многопоточность увидел, даунит?
Аноним 27/02/24 Втр 20:10:01 3066250 394
>>3066239
>>3066240
Может он с асинхронностью перепутал, у новичков бывает
Аноним 27/02/24 Втр 21:29:47 3066403 395
Аноним 28/02/24 Срд 01:34:23 3066566 396
>>3066193
Ну можешь сам доделать, что тебе не нравится. Битрикс это гибкая система модулей и компонентов, всегда можешь подпилить и будет красиво.
Аноним 28/02/24 Срд 01:47:35 3066569 397
Screenshot 2024[...].png 176Кб, 3352x1358
3352x1358
>>3066566
>сам доделать
Просто хочу разобраться.
А сколько с тебя попросят разрабы ларавеля за доделывание их фреймворка?
Аноним 28/02/24 Срд 01:51:03 3066572 398
Так Битрикс норм или нет, ничего не понял?
Аноним 28/02/24 Срд 01:55:51 3066573 399
Аноним 28/02/24 Срд 01:56:02 3066574 400
Аноним 28/02/24 Срд 01:56:34 3066575 401
>>3066572
Попробуй развернуть демо сайт у себя и погляди
Аноним 28/02/24 Срд 02:01:13 3066578 402
>>3066572
Нужна работа - да. Если нет нужды спешить - нет. Есть желание подняться из говен - да. Нет желания даже знать о говне - нет.
Аноним 28/02/24 Срд 02:03:36 3066579 403
>>3066578
>подняться из говен
Атлант восстает из битрикса.
Аноним 28/02/24 Срд 07:22:03 3066629 404
>>3066572
Сначала изучи что то нормальный проект, на фреймворке ларавель или симфони, или хотябы на опенкарт(все лучше битрикса). А вот потом пробуй... Отпиши только результат "пробования")
Аноним 28/02/24 Срд 08:15:22 3066640 405
изображение.png 41Кб, 623x640
623x640
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 3066657 406
изображение.png 35Кб, 392x621
392x621
>>3066640
Попробовал всякие версии, ничего не изменилось. На php-7.0.0-nts-Win32-VC14-x64.zip пик случился из-за кодировки. При этом, как видно, кавычки всё ещё пидорасит. Подумал, может, в cmd какой баг. Запустил в PowerShell - результат такой же.
Аноним 28/02/24 Срд 08:58:46 3066662 407
>>3066657
Поставь линупс и не майся
Аноним 28/02/24 Срд 09:18:06 3066675 408
>>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 3066804 409
>>3066675
Микросамофикс: \r в конце строки, а не в начале.
Аноним 28/02/24 Срд 17:14:49 3067182 410
Аноним 28/02/24 Срд 17:21:54 3067196 411
Хелоу, завтра собез на трейни позицию фул стак.

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

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

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

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

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

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

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

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

В голосину проигрую, когда смотрю всякие уроке про паттерны от опытных разрабов, которые в гугл лезут, чтобы не обосраться, почему? Потому что они в рот ебали эту нинужную дисциплину созданную только для того, чтобы пилить о ней уроки
Аноним 28/02/24 Срд 19:56:13 3067358 421
>>3067340
По тексту сразу видно любителя гоблина малолетнего дебила
Мимо
Аноним 28/02/24 Срд 19:57:07 3067359 422
>>3067350
Вкатусь, слишком толсто
Аноним 28/02/24 Срд 20:05:06 3067371 423
Screenshot 2024[...].png 2506Кб, 1996x1616
1996x1616
>>3067358
>По тексту сразу видно
Этот тред он как заповедник дегенератов. Достояние двача, под охраной санитаров.
Аноним 28/02/24 Срд 20:11:55 3067378 424
>>3067371
Молодец, охраняешь
Аноним 28/02/24 Срд 20:13:47 3067382 425
611mq6mIcWL.ACU[...].jpg 22Кб, 894x606
894x606
Аноним 29/02/24 Чтв 00:46:53 3067607 426
>>3067359
Да тыж жертва инфоциган, долбоеб. Найди работу и посмотри как оно на самом деле, теоретик с двача
Аноним 29/02/24 Чтв 14:11:07 3068076 427
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 3068150 428
Котаны, скиньте сетап вскода для пхп, ларавел, вью. Лицензия кончилась на пхпшторм.
Аноним 29/02/24 Чтв 15:22:19 3068163 429
Есть допустим задача, заменить русские слова БМВ на BMW. Статей дохуища (400к записей). Сайт на хостинге.

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

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

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

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

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

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

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


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

Были вопросы по пет проекту немного, от силы 2. И на базу данных пару вопросов, ну еще про гит. И всё. В ПХП как оказалось не так много нужно всего знать. Просто читаешь определения всякой хуйней, пытаешься расписать их своими словами и так же на собесе и отвечаешь. По ООП было несколько вопросов, но про П-А-Т-Т-Е-Р-Н-Ы не спрашивали. Я им кстати сразу объяснил своё отношение к паттернам и они со мной согласились, кек. Ну тащемта всё
Аноним 29/02/24 Чтв 20:13:20 3068546 447
>>3068521
Так ты на фулстека вкатился, а это проще чем на чистый бек
Аноним 29/02/24 Чтв 20:25:55 3068563 448
>>3068521
Это удаленка или офис?
Аноним 29/02/24 Чтв 20:36:27 3068576 449
>>3068521
Фига сразу гонору добавилось. До сеньора вначале дослужись, 300к начни получать, тогда и говори для даунов язык или нет.
Аноним 29/02/24 Чтв 20:38:54 3068583 450
Аноним 29/02/24 Чтв 20:56:54 3068604 451
>>3068583
Ну тебе норм тогда, а в моем мухосранске один битрикс
Аноним 29/02/24 Чтв 21:15:29 3068636 452
>>3068521
Логика так и блещет.
+жирнишь.
Аноним 29/02/24 Чтв 21:15:56 3068637 453
>>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 3068638 454
>>3067262
>Тебя все равно посадят ковырять битрикс
Двачаю >>3035220 анон, у меня так и начиналась карьера, где-то через 6-7 месяцев свалил на рельсы
Аноним 29/02/24 Чтв 21:18:21 3068639 455
>>3068638
>рельсы
Так они же мертвы. На чем сейчас сидишь?
Аноним 29/02/24 Чтв 21:59:47 3068701 456
>>3068544
ты проиграл с паттернов, их даже на битриксе используют, если тимлид вменяемый.
Аноним 29/02/24 Чтв 22:09:05 3068708 457
Аноним 29/02/24 Чтв 22:41:21 3068728 458
Без имени.jpeg 7Кб, 229x220
229x220
Аноним 29/02/24 Чтв 23:44:34 3068773 459
>>3068701
>если тимлид шизло, как и я
Пофиксил
Аноним 29/02/24 Чтв 23:50:31 3068785 460
>>3068639
На расте, скорее мертвы чем живы, новых проектов почти нет, а вот старых проектов с выразительной синтаксически сахарной кодовой базой много. Но всяко лучше битрикса, можно даже сразу туда пробовать вкатываться
Аноним 29/02/24 Чтв 23:57:16 3068794 461
>>3068701
Да, паттерны там охуенные Capslock Array Keys Dilder, String Boolean Shittone, Global Variables Fucker
Аноним 01/03/24 Птн 00:22:10 3068837 462
>>3068637
Речь об оперативной памяти. В начале работы скрипта пхп разрешается взять только определенное количество памяти. Превышение этого лимита и вызывает ошибку.

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

>И откуда 4096 взялось вообще
А какая разница? Ну читает он по 4096, а потом склеивает в кусок который ты хотел. Проблема-то в том что ты наговнокодил утечку памяти.
Аноним 01/03/24 Птн 01:25:06 3068898 463
>>3068794
Похуй какие они там. Это надо понимать как факт, что такое спрашивают и быть к этому готовым.
Аноним 01/03/24 Птн 02:54:07 3068940 464
>>3068898
Ты кстати с докером разобрался? Помню пыхтел, говорил что сложно очень
Аноним 01/03/24 Птн 08:00:40 3069038 465
>>3068794
пездой четаешь? Я написал "на битриксе", а не "в". В самом ядре битрикса одно говно, но никто не мешает использовать только его апи, а свои модули писать нормально(бизнес его сейчас хавает и кабаны пытаются оседлать эту волну, в джунам деваться некуда, на нормальный стек очередь пару км).
Аноним 01/03/24 Птн 09:16:58 3069064 466
>>3068940
А что с докером? Запустил контейнеры и всё. Там что-то еще нужно знать?
Аноним 01/03/24 Птн 10:55:09 3069149 467
Ошибка 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 3069168 468
Аноним 01/03/24 Птн 11:29:59 3069172 469
Screenshot 2024[...].png 40Кб, 849x417
849x417
Screenshot 2024[...].png 127Кб, 1440x713
1440x713
Почему везде пишут версию композера три, хотя последняя вторая?
Аноним 01/03/24 Птн 11:48:34 3069194 470
>>3069172
Зачем вобще её пишут, когда рекомендуют не писать?
Аноним 01/03/24 Птн 11:49:36 3069198 471
>>3069064
Та не. Просто тебе это сложно давалось помню
Аноним 01/03/24 Птн 13:18:24 3069265 472
Кто-нибудь может на машине под управлением Linux и через консоль (типа php file.php) выполнить следующий скрипт:

<?php
echo "hello\rworld";

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

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

>hello
>world

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

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

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

Я уже заебался постить это видео. https://www.youtube.com/watch?v=pz6VdH4_BSg
Посмотри, чтобы лучше понимать структуру приложения и самое главное, почему она стала именно такой.
Аноним 01/03/24 Птн 18:37:18 3069566 491
>>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 3069567 492
Screenshot 2024[...].png 26Кб, 412x552
412x552
>>3069566
Пчел. Я запостил тебе код, который запустил на своем компудахтере в своем браузере. Че ты несешь вообще?
Аноним 01/03/24 Птн 18:48:49 3069573 493
>>3069561
> Где само "приложение"?
Пишется же. Я решил зайти со стороны базы данных и посчитал, что прежде чем читать конфигурацию и открывать соединение, стоит сделать контейнер для его хранения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если хочешь прям подробно разобрать, то это надо экран стримить и схемы рисовать. Заходи в дискорд, расскажу покажу. https://discord.gg/YV4CxgGaah Так по комменту сто раз переписывать - ты либо вообще забьешь в итоге, либо месяц потратишь.
Аноним 04/03/24 Пнд 13:52:41 3072991 517
>>3034858 (OP)
Какой смысл добавлять DTO, только потому что конструктор класса принимает 5 параметров от пользователя?
Аноним 04/03/24 Пнд 16:23:01 3073190 518
>>3072991
>DTO
Значение знаешь?
Аноним 04/03/24 Пнд 16:55:39 3073248 519
>>3073190
Data Transfer Object - Объект передачи данных. Но нафига мне создавать DTO?
Аноним 04/03/24 Пнд 17:27:35 3073277 520
>>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 3073462 521
Аноним 04/03/24 Пнд 20:28:34 3073471 522
>>3073462
А в го нет никаких конструкторов.
Аноним 04/03/24 Пнд 22:37:26 3073571 523
>>3034858 (OP)
Можно ли в DTO использовать значение по умолчанию в конструкторе или где-то еще?
Вообще где-то можно найти адекватный пример простого DTO?
Аноним 04/03/24 Пнд 23:58:49 3073628 524
>>3073571
>DTO
Значение знаешь?
Аноним 05/03/24 Втр 00:13:39 3073643 525
Аноним 05/03/24 Втр 05:44:17 3073791 526
>>3072508
>сравнивать CMS и фреймворк
>шёл 2k25...
Ебало?
Аноним 05/03/24 Втр 06:01:09 3073794 527
16792914653930.jpg 18Кб, 246x250
246x250
>>3073791
>вордпресс
>битрикс
>CMS и фреймворк
>Ебало?
Мое ебало пикрелейтед.
Аноним 05/03/24 Втр 08:11:43 3073841 528
Аноним 05/03/24 Втр 08:48:25 3073859 529
Какая же поганая у Фабьена книга. Нет, чтобы подробно написать про свой фреймворк и расписать как им пользоваться, он пишет всякую левую дичь. Вот только про гиты, докеры и сервера написано много книг, а про Симфони никто больше не пишет.

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

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

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

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

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

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

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

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

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

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

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

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

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

>-30-50к

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

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

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

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

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

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

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

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

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

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

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

А как мне такое фиксить если мне на работе скажут пили проект на ларе старой версии какой нибудь, как я буду ебаться со всеми этими пакетами, подбирать версии что бы все работало ?
Аноним 10/03/24 Вск 22:09:13 3080885 592
>>3058828
создаешь папку Service(s) и ебашишь туда свое говно
опционально создаёшь папку Repository и получаешь копрокопию доктрины
Аноним 10/03/24 Вск 22:45:51 3080929 593
>>3080827
Никак.
Ты проснешься, обоссавшись и обосравшись, в мамкиной квартире на проперженном диване. Никакой "работы" у тебя нет и не будет. Ты просто фантазируешь как ты куда-то там "вкатываешься" чтобы окончательно не поехать кукухой от такой жизни.
Аноним 10/03/24 Вск 22:51:22 3080934 594
>>3080827
>как мне такое фиксить
перекат в симфони бля буду там таких проблем нет ты актуальную версию хотя бы посмотреть в сосотоянии?
Аноним 10/03/24 Вск 22:51:41 3080935 595
>>3080929
Откуда ты узнал что он спит на диване? Я тоже сплю на диване /spoiler]
Аноним 10/03/24 Вск 23:14:51 3080954 596
>>3080935
А сидишь на стуле. А еще ты сегодня дрочил.
Телепатия - страшная штука. Особенно в руках пхп программиста. Он, как человек к говну близкий, очень остро ощущает животные эманации.
Аноним 10/03/24 Вск 23:25:30 3080968 597
>>3080929
>фантазируешь как ты куда-то там "вкатываешься" чтобы окончательно не поехать кукухой от такой жизни.
Жиза.
Аноним 11/03/24 Пнд 00:58:08 3081046 598
Вкатун. Только сейчас понял, что никогда не отправлял HTTP-заголовки, только отдавал коды ошибок. Я даже не представляю как это происходит. Насколько критично, пацаны?
Аноним 11/03/24 Пнд 02:12:24 3081068 599
>>3081046
Просто изучай и не думай лишнего. Как время придёт - сам по себе вкатишься и не заметишь. И не задавай больше глупых вопросов, для них придумали ChatGPT 4.0!
Аноним 11/03/24 Пнд 13:04:00 3081394 600
>>3081068
> не задавай больше глупых вопросов
С каких пор пыхари стали вумными ?
Аноним 11/03/24 Пнд 13:05:46 3081399 601
>>3081046
>никогда не отправлял HTTP-заголовки
Ты когда пост написал - отправил заголовок на сервер двощей с телом сообщения.
Аноним 11/03/24 Пнд 14:04:37 3081490 602
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 3081524 603
>>3081490
У тебя на хосте какая-то программа уже заняла 443 порт. Возможно у тебя запущен веб-сервер.
> ports:
> - 443:443
> - 80:80
Проще всего будет пробросить контейнер на другие порты. Или остановить программу, занявшую порт.
Аноним 11/03/24 Пнд 14:48:26 3081562 604
>>3081524
А как узнать кто порт юзает? И какими можно заменить которые точно свободны?
Аноним 11/03/24 Пнд 15:10:30 3081618 605
>>3081562
Загуглил бы, анон.
# lsof -i -P -n | grep LISTEN
под виндой netstat -a -b
Аноним 11/03/24 Пнд 18:35:08 3081985 606
Как сделать чтобы ебаный докер композер запускался без рута? В гугле и в документации ни один способ не помог
Аноним 11/03/24 Пнд 23:06:33 3082332 607
>>3081399
Имелось ввиду руками. Самому написать php-код, который отдает заголовки.
Аноним 12/03/24 Втр 08:13:12 3082495 608
>>3081985
Там надо в группу докера себя прописать
Аноним 12/03/24 Втр 10:15:39 3082555 609
Технически, в родительской функции можно объявить функцию-потомка, а в функции-потомка объявить функцию-внука. И сделать между ними цепочку вызовов. Типа:

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

mailach();
}

sosach();
}

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

Правильно понял? Если да, то нахуя так можно делать вообще? Прост? Способ выстрелить себе в ногу? Или для сабжа есть какое-то реальное применение?
Аноним 12/03/24 Втр 11:59:05 3082712 610
>>3082555
>Способ выстрелить себе в ногу
А как ты выстрелишь ? тебе компилятор ошибку выдаст что функцию нельзя объявить 2 раза. А так у тебя есть анонимная функция и static.
Аноним 12/03/24 Втр 12:02:26 3082719 611
quote-i-m-not-a[...].jpg 79Кб, 850x400
850x400
>>3082555
>Но это абсолютно бессмысленно и приведёт к тому, что dvach и sosach можно будет вызвать только 1 раз
Каво? Ты можешь ОБЪЯВИТЬ функцию только один раз. А вызывать можно сколько угодно. https://3v4l.org/H9XQI

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

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

https://3v4l.org/Pl4ec

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Этот тред. Эта сточная яма. Поддон под /б и дотатредами, в который стекает самое тупорылое, самое гнилое что есть на харкаче.
Аноним 14/03/24 Чтв 13:25:13 3085920 660
>>3085878
Это ты тупой, а мы не тупые
Аноним 14/03/24 Чтв 13:28:13 3085928 661
Аноним 14/03/24 Чтв 13:40:28 3085941 662
>>3085565
Да это один поехавший уже который тред рвется и каждый раз обсирается
Аноним 14/03/24 Чтв 13:57:30 3085961 663
>>3085941
Мне кажется он гошник, но вынужден учить пхп. Думает, раз написал пару хеллоуворлдов на го, то по определению умнее любого пхпшника. А на деле же тупее стажёра пхпшника, так как не в языках дело.
Аноним 14/03/24 Чтв 14:25:27 3086001 664
Подскажите конфиг для 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 3086022 665
>>3086001
Норм конфиг. Только хуй получишь айпи клиента. Сам ебался с этим, заебался блядь
Аноним 14/03/24 Чтв 14:47:41 3086026 666
>>3086022
Мне для локалхост, почему-то не открывает register.html в рабочей папке, а index открывает
Аноним 14/03/24 Чтв 15:58:27 3086106 667
Снимок экрана о[...].png 15Кб, 970x125
970x125
Напомните какой правильный синтаксис
Аноним 14/03/24 Чтв 17:27:39 3086173 668
>>3086106
За двойные кавычки Альберт сразу кол ставит и домашку дальше не проверяет.
Аноним 14/03/24 Чтв 18:18:14 3086206 669
>>3086173
С одинарными тоже ошибка
Аноним 14/03/24 Чтв 18:29:10 3086215 670
>>3086106
>>3086206
Попробовал через Опен сервер, все правильно и работает, я так понял докер ебаный не может нормально запустить контейнеры то ли с пыхой, то ли с мускулом. А ведь с этим говном ещё и работать...
Аноним 14/03/24 Чтв 18:47:56 3086243 671
>>3086215
Хз, проверил. Нормально докер запускает и пыху и мускуль. Наверное дело не в докере
Аноним 14/03/24 Чтв 19:09:51 3086285 672
>>3086215
Ты бы хоть коды ошибок показывал. У тебя контейнер с php и контейнер с базой в одной сети находятся? По какому адресу ты открываешь соединение?
Аноним 14/03/24 Чтв 19:16:12 3086303 673
Аноним 16/03/24 Суб 05:08:30 3087789 674
Зачем перекатывал человек, который не умеет перекатывать и который зачем-то поменял шапку?
Аноним 16/03/24 Суб 05:09:17 3087790 675
Уж лучше сидеть в этом треде, потому что он кажется легитимным. И ждать нормального переката.
Аноним 16/03/24 Суб 06:58:53 3087798 676
Блять...Год учу php, только сейчас понял, что строка запроса это то, что идет после знака вопроса в адресе, а не просто часть URL-адреса после указания схемы и сервера.
Аноним 16/03/24 Суб 20:45:47 3088633 677
>>3087789
Потому что вы уже 200 постов перекатить не можете. Жри, что дают или перекатывай правильно, сам
Аноним 17/03/24 Вск 02:46:52 3088921 678
>>3080827
Ну вот да. Требуется (вот требуется, хоть хуем по лбу стучи) установить Ларавел 8, например. Ты его ставишь. Потом ставишь все пакеты, указывая точные версии нужных пакетов. Да, всё устаревшее. Да, будут проблемы, типа надо подключить платёжку, а она версии 1.4 минимум, и если поставить 1.3, то сервер платёжки пошлёт нахуй, но 1.4 ставится только на Ларавел 9. Поэтому ты будешь ВЫНУЖДЕН сопрягать это дерьмо, вплоть до ковыряния в потрохах vendor. Ладно, шучу, просто вдумчиво разбираешься в работе этого пакета, находишь отличия версий и пишешь прокладку-переопределялку. В общем, велкам ту геморрой. Впрочем, как правило старые пакеты прекрасно работают и так. Проблемы начинаются, когда приходится работать со сторонними сервисами, написанными хипстерами, у которых каждые полгода радикальные обновления и старые версии не поддерживаются.
Аноним 17/03/24 Вск 11:28:37 3089054 679
Учу php год где-то. Знаю основы php, html, css, git, composer, laravel, mysql. Выполнял только список студентов, т.е. могу поднять локальный сервер и на чистом php сделать сайт. Но как-то ссыкотно искать вакансии, пытаться пробовать, хочется дальше зарыться в изучение программирования.
Аноним 17/03/24 Вск 11:30:38 3089056 680
>>3088633
Считаю лишним перекат при 500-600 постах. Можно и до 1000 ждать.
Аноним 17/03/24 Вск 15:43:29 3089462 681
Как же мне лень заниматься вёрсткой. Даже банально украсть чужой лендинг лень. Не хочу ковыряться в их стилях, не хочу разбираться в их классах, но и не хочу с нуля все писать. На работе всегда был готовый css и стили, которые просто притягивал для новых живое. Но для своих проектов так день этим заниматься. Что делать?
Аноним 18/03/24 Пнд 20:59:36 3091401 682
>>3089054
>ссыкотно искать вакансии
загугли 100 вопросов, хорошо выучи, пока не сможешь ответить почему нужно не:
try { $hrukayushiyService->hruknutWithDanger(); } (\Throwable $e) {} (\RuntimeException $e) {}
а try { $hrukayushiyService->hruknutWithDanger(); } (\RuntimeException $e) {} (\Throwable $e) {} и иди штурмовать работадателей. Пыхо собесы не очень душные даже в приличные места
Аноним 18/03/24 Пнд 21:03:43 3091406 683
>>3089056
мы не джэва, а молодой-перспективный-быстро развивающийся язык, нам нельзя как же хочется дженерики и многопоток, а не синтакисческий сахар...
Аноним 24/03/24 Вск 00:43:53 3097579 684
Untitled.jpg 6Кб, 259x194
259x194
Слононы, подскажите видеокурс по пыхе более-менее актуальный (т.е. 8 или 7 версия) где делают проект и затрагивается как можно больше языка и стандартной либы.
Что-то аля как пикрил, где все вершки рассматривают, чтобы потом уже за корешки идти тянуть.
Аноним 27/03/24 Срд 13:12:26 3101718 685
Как стать Битрикс веб-программистом за 50к в месяц, сколько лет надо учиться? Спасибо
Аноним 28/03/24 Чтв 14:15:47 3103520 686
>>3097579
Для совсем новичков у ларика есть годный курс на торрентах. Если именно видео-курс по языку, тогда Program with Gio на ютубе. Если учиться кодить нормально, тогда подписка на Хекслете за 4к в месяц, ничего лучше нет
Аноним 28/03/24 Чтв 15:01:52 3103571 687
>>3081985
Пропиши в докер-композе
php:
user: ${USER_UID}:${USER_GID}
А эти хуйни задай по 1000 в енв-файле. Тогда он по идее должен будет мапить на твоего пользователя. Но если используешь docker engine то скорее всего будут проблемы с правами на файлы. Я себе из-за этого поставил docker desktop, что не пердолиться лишний раз
Аноним 30/03/24 Суб 09:34:24 3106224 688
148fb0fd28c575a[...].jpg 75Кб, 736x977
736x977
Эхх, вот уже 4 года как вкатился. Как же время летит. Лежу себе, попукивая, тратя где-то по 4 часа в день на работу.
Мало того, что зарплата у тебя за месяц как у других за целый год, так ещё и встаёшь когда хочешь, никуда ехать не надо, работаешь мало.

А ведь это всё дващ! До этого работал за 20 тысяч руками, живя в богом забытой деревне на 150 человек. А так надвачевался ваших айти-тредов и попробовал этот ваш пхп.
Аноним 30/03/24 Суб 18:05:17 3106774 689
подскажите как решать задачи на поиск уникальных значений в строке без array_unique и count_chars
Аноним 02/04/24 Втр 08:15:07 3109466 690
Чё по производительности array относительно stdClass? Примерно одинаково, или что-то из этого шустрее и я в каких-то ситуациях должен использовать одно из, если хочу оптимизировать код?
Аноним 02/04/24 Втр 08:32:54 3109476 691
>>3109466
Под производительностью подразумевается всё: и скорость работы, и количество потребляемой памяти.
Аноним 02/04/24 Втр 20:54:46 3110255 692
Аноним 07/04/24 Вск 00:43:04 3114690 693
Когда нормальный перекат треда?
Аноним 19/04/24 Птн 18:14:12 3128886 694
Аноним 19/04/24 Птн 18:38:07 3128920 695
Аноним 19/04/24 Птн 22:11:19 3129111 696
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов