Клуб изучающих PHP #137 /php/ 3034858 В конец треда | Веб
Кто-то уже празднует, а мы изучаем язык 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 месяцев
2 3034861
>>034858 (OP)
первый
3 3034862
Не щупал пыху уже несколько лет, ну как там у вас 8 версия прижилась или плюётесь?
4 3034966
>>034862
в проде 8.0 на всех проектах, подводных нет как и дженериков
5 3035015
>>034966

>в проде 8.0 на всех проектах


На всех 18.5% проектах

>подводных нет


Будут
6 3035076
Спасибо за перекат, как раз зашёл попросить
7 3035163
>>035076
Не за что)

>>035015
Какой любопытный сюрприз, который выстрелит в ногу из глубины зависимостей
8 3035219
>>035015
>>035163
Почему в PHP нельзя сделать символ доллара опциональным?
изображение.png962 Кб, 1903x3184
9 3035220
Попалась картинка в ньюфаг треде. Работал с полгодика на старте карьеры в студии, звали на ларавель, а в итоге занимался проституцией битриксом. Всегда поигрывал с архитектуры этих инфоблоков, это сути как таблица в БД, но через жопу, какой-то сверхразум додумался до этой хуеты в своё время.
На сколько я помню там 4 таблицы в первой хранятся данные об инфоблоке (типа информации о таблице), в другом таблица с элементами (собственно записи в таблице), в третьей проперти (тип столбцы в таблице их название, тип и id инфоблока) и четвертая таблица с теми самыми значениями проперти где есть id инфоблока и id проперти из третьей таблицы. Вместо того чтобы создать таблицу с нужными столбцами делается эта хуйня, ты можешь добавить сотню инфоблоков, но все данные будут в 4 таблицах. При 100 000 записей начинает всё адово тормозить.

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

Сука, как и почему до этого додумались? Почему до сих пор не переделали? Где экоактивисты, это столько электроэнергии улетает вникуда?
10 3035283
>>035220
Ты в принципе имеешь в виду заменить много запросов вида `where id = ?` на один запрос вида `where id in(?, ?, ?, ...)` ?
11 3035286
>>3034663 →
https://3v4l.org/OVVIA
Вроде работает.
12 3035341
Ебаать
13 3035343
>>035283

>Ты в принципе имеешь в виду заменить много запросов вида `where id = ?` на один запрос вида `where id in(?, ?, ?, ...)` ?


Без принципа, там не всё так просто, попробуй развернуть у себя эту хуйню что уже весело при инсталяции возьми какой-нибудь магазин из примеров, как эта хуйня поставится она создаст пару тестовых инфоблоков и заполнит данными для примера. Собственно на это говно можешь полюбоваться в базе
14 3035345
У меня есть файл, в котором объявляются функции, нормально ли то, что я использую одинаковые имена переменных в объявлениях нескольких функций?
15 3035409
>>3033914 →

>пик1 и пик2


Нахуя ты сравниваешь язык и фреймворк? Поставь php и фильтр 200к+ для обоих языков, как я и написал изначально. Что самое смешное, что даже в этом варианте вакансии не гошные, а в связке пхп + го или питон + го и тд.

>пик 3


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

Ах да:

>bun


Как там с дено дела обстоят?

>доля срынка опять упала. Не 77, а 76.5


Ого, на пол процента за 20 лет? Ну пыхе пизда однозначно

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


Ну ясн)))

>шизофазия, шизофазия, а вот го, го вот это да


Манька, как займёт го место пыхи, тогда и приходи. 10 лет назад, ты говорил, что это сделает нода. Ещё через 10 появится новый яп и он то уж точно всех победит, знаю, слышал
16 3035414
>>035409
Пыха отличный язык?
17 3035415
>>035409

> Как там с дено дела обстоят?


Пилит другая команда, работает на расте, ts из коробки и глубоко под капотом v8. Обновления выходят чуть ли не каждый день, по крайней мере у крейта deno_core. А так довольно шустрая штука, правда нет полной обратной совместимости с node.js из стандартной библиотеки всё чуть-чуть разное.
18 3035417
>>035415

>нет полной обратной совместимости с node.js из стандартной библиотеки всё чуть-чуть разное


хи-хи-хи
19 3035425
>>035409

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


И высрешь 60к RPS? Все ты можешь, но не будешь. Это сразу было ясно когда ты начал всю эту чухню в пример приводить.
Пидор тупой, речь с самого начала шла про то что ждет пхп вкатуна на этом говноязыке. Он будет ебаться с нжинксом, точка. Никаких бинарников, никакого встроенного сервера, никакого сервера на этом ебаном языке у него не будет.

>Манька, как займёт го место пыхи, тогда и приходи


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

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

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

>можешь рваться сколько угодно


Эти проекции🤭

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


Поживём, увидим)))

>как с руби буит


Он 80% срынка занимал?)))
21 3035432
>>035431

>Поживём, увидим)))


>)))


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

Вордпресс изучай, у него доля рынка большая. А лучше сразу битрикс. Бессмертная тема.
22 3035433
>>035432
Успокаивайся, выдыхай))) скоро го как разъебет пыху, вот тогда мы пососем, а все деньги и интересные проекты потекут к тебе))) уже потекли, мы поняли))))
изображение.png1 Кб, 55x47
23 3035436
Подскажите, как посчитать на php сколько места на экране занимает рандомный символ.

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

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

Как мне посчитать, аноны? Или хотя бы привести оба символа к одному размеру?
24 3035439
>>035436
А какое отношение пхп имеет к тому как что выглядит на твоей странице? Символы браузер отображает, а не пхп.

Ты бы почитал хоть что такое шрифт вообще.
https://ru.wikipedia.org/wiki/Компьютерный_шрифт#По_ширине_символа
25 3035440
>>035439

>какое отношение пхп имеет к тому как что выглядит на твоей странице


Я думал, мб есть функция, которая считает.

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

Но вот сейчас подумал и вспомнил, что есть тег в html, связанный с таблицами, попробую, мб получится то, что надо.
26 3035441
>>035439
Спасибо за ссылку.
27 3035622
>>035286

> $ref = &$i['CHILD'][$lastIndex];


> $parents[$lvl] = &$ref;


Ааа, опять ссылочки, анон. Плохо, что сейчас я не пойму, как ты решил эту задачу, но спасибо огромное за решение
28 3035760
Что можно почитать для понимания ОРМ? Пытался через фреймворк сразу учить, то не догоняю все эти мэни-ту-мэни, дто какие-то, коллекции.
29 3036102
Анончик, с которым мы поругались на счет регулярок в прошлом треде, я прекрасно понимаю, что ты человек далеко умнее среднего. Поэтому интересно твое мнение. Что сейчас можно сделать в рамках PHP-шной темы? Куда ее двигать? Очередной фреймворк, который выбросят на помойку через 5 лет? Я не выманиваю у тебя идеи, у самого их девать некуда.
30 3036165
>>035760

>не догоняю


Давай ссылку на доку, что не понятно?
31 3036187
>>036165
Доку читают только те, кому уже все понятно, для уточнения деталей.
32 3036340
>>035760
В ларакастах есть курс по в элоквенте. Дто это паттерн, про него можешь почитать в "Архитектура cложных веб
приложений" Adel F
33 3036424
>>035219
Честно я кайфую от него. Нравится и эстетически, и практически удобочитаемо. А как же прекрасно на секунду отвлечься от всего чтобы просто написать заветный ламповый символ
34 3036442
>>035345
Гораздо лучше создать класс со статическими методами для каждой зоны ответственности. По типу класс ProductUtilite, где будут статические методы SumProductsPrice(), GetProductsCount().

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

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

https://3v4l.org/RjMCt

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

Верно?

https://3v4l.org/am7LT

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

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

>с точки зрения ООП, я не могу


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

>Если класс C объявляет новое свойство, класс A по логике не может обращаться к нему, не может его вывести.


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

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

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

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

А чтобы подобные перечисления было удобно выводить и использовать и сделали enum в php. До этого все пользовались либами.
Правильный код должен выглядеть так: https://3v4l.org/hQAbU
40 3036811
>>036424
Я вчера видел сон, как будто пишу очень много кода на PHP, а $ нажимается только через Ctrl+Alt+Shift.
41 3037117
>>036510
Спасибо за ответ, но я думаю, что это вне моей компетентности (я все-таки еще вкатун с посредственными знаниями, а в JS не ушел дальше Объектов).
Моя задача более простая и менее требовательная, чтобы подходить к ней с таким решением.
42 3037166
Любое поле для ввода должно иметь XSRF-защиту?
43 3037198
>>037166
Сама эта защита - просто скрытое поле с токеном в форме. Следовательно, она не может быть для каждого поля, а только целиком для формы.
44 3037200
>>037117
Значит, font-family: monospace в CSS и пойдёт.
45 3037385
>>036570

>У ООП нет никакой "точки зрения". Это "подход", способ создавать программы. Ты либо ему следуешь, либо нет.



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

> Что значит "не может"? По чьей "логике" не может?


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

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


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

> А чтобы подобные перечисления было удобно выводить и использовать и сделали enum в php


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

> ...



Касаемо всего твоего остального поста. Во-первых, меня посетила мысль о том, что метод, который выводит все protected-свойства, это вообще не совсем то, что может рассматриваться с точки зрения ООП. Это уровень не бизнес-логики, а чего-то ниже. Соответственно, в этом методе можно себе позволить сослаться на свойства дочерних классов. Потому что этот метод особенный. Он оперирует не абстрактными сущностями, характерными для данного проекта, а на техническом уровне работает. Во-вторых, в целом, из твоего сообщения сложилось впечатление, что всё не так однозначно. И писать код, который на 100% соответствует принципам ООП, ты ебанёшься. Нужно смотреть по ситуации, по конкретному контексту. Типа, злоупотреблять использованием свойств, которые будут определены в потомке, не стоит, но в некоторых ситуациях это именно то, что нужно, иначе придётся писать сотню классов. И в данной ситуации выбор между трейтом и тем, что описал я, скорее дело вкуса.
Правильно понял тебя?
45 3037385
>>036570

>У ООП нет никакой "точки зрения". Это "подход", способ создавать программы. Ты либо ему следуешь, либо нет.



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

> Что значит "не может"? По чьей "логике" не может?


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

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


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

> А чтобы подобные перечисления было удобно выводить и использовать и сделали enum в php


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

> ...



Касаемо всего твоего остального поста. Во-первых, меня посетила мысль о том, что метод, который выводит все protected-свойства, это вообще не совсем то, что может рассматриваться с точки зрения ООП. Это уровень не бизнес-логики, а чего-то ниже. Соответственно, в этом методе можно себе позволить сослаться на свойства дочерних классов. Потому что этот метод особенный. Он оперирует не абстрактными сущностями, характерными для данного проекта, а на техническом уровне работает. Во-вторых, в целом, из твоего сообщения сложилось впечатление, что всё не так однозначно. И писать код, который на 100% соответствует принципам ООП, ты ебанёшься. Нужно смотреть по ситуации, по конкретному контексту. Типа, злоупотреблять использованием свойств, которые будут определены в потомке, не стоит, но в некоторых ситуациях это именно то, что нужно, иначе придётся писать сотню классов. И в данной ситуации выбор между трейтом и тем, что описал я, скорее дело вкуса.
Правильно понял тебя?
Внимание!Чёрный ящик.mp4721 Кб, mp4,
450x360, 0:10
46 3037638
>>037385

>писать код, который на 100% соответствует принципам ООП, ты ебанёшься


Невероятно сложные принципы. Создавай объекты, наследуй поведение, используй полиморфизм. Заебешься следовать.
Тебе о том и написано что ООП само по себе никаких ограничений на то как ты будешь эти объекты использовать не накладывает. А даже то что писано это не "правила ООП", а скорее описание "как объектно ориентированный подход может выглядеть". И описание это скорее для создателей языков, а не для рядовых программистов.

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

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

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


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

private ?int $prop = null;

И в сеттере кидать исключение, если prop !== null, а ты пытаешься его переопределить?
48 3037912
>>037798
Во, такая аналогия посетила. В JS есть рекомендация по-умолчанию писать const вместо let, если ты не уверен на 100%, что значение этой переменной должно меняться. Подумал, что в PHP аналогично: пиши везде readonly, где нет уверенности, что это точно будет меняться. Видимо, стрелочка не поворачивается и в PHP всё не так?
49 3037985
>>037798

>это создавать себе проблемы?


Какие проблемы? Ты переломишься этот ридонли убрать если вдруг понадобится или че?
50 3038050
>>037985
Значение ридонли можно задать только в конструкторе - раз. Только в конструкторе того класса, где данное свойство было объявлено - два.
51 3038145
>>038050
И? Понадобилось - убрал ридонли и задал. Ты тупой?
52 3038212
>>038145

>Ты тупой?


Пошел нахуй, пидорас.
53 3038217
>>038145
А может это ты тупой? Да, это так охуенно удобно, задавать значения 80% свойств в конструкторе. И лишаться возможности переопределить их в дочернем классе без пердолинга parent::construct() в каждом наследнике. А если вдруг окажется, что этому свойству таки не надо быть readonly, потом ещё и менять его. Ты сюда повыёбываться пришёл, или есть что по делу сказать? Сам используешь readonly для большинства свойств? Как, удобно?
54 3038348
>>038217
Мудила гороховый. Что тебе мешает убрать ридонли когда появятся наследники? Вы внатуре ебанутые? Или угашенные? Ну стало неудобно - так убери блядь и сделай опять удобно.

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

В нормальных языках уже додумались и вообще всю эту требуху нахуй выкинули. Одной строчкой это все объявляется и создается.
55 3038376
Решил сегодня начать учиться новому и попытаться освоить это ваше пограмирование. И встрял вот тут.
У меня почему то ничего не делает команда justify .Как я понимаю она должна равномерно распределять текст на экране. Уже полтора часа мозги себе трахаю, но не понимаю в чём же дело. Более опытные люди, подскажите, как это исправить?
56 3038377
>>038376
Че подчеркнуто у тебя там, программист?
57 3038384
>>038377
Спасибо, не заметил
image.png297 Кб, 329x353
58 3038389
59 3038469
>>037198
Я неправильно выразился.
Я имел ввиду формы.

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

Если нет, то для каких надо делать, а для каких нет?
60 3038556
>>038469
А какая разница? Делаешь один раз сразу для всех и мозги не ебешь.
61 3038564
Если мне тупо нужно написать капчу для сайта визитки.

Когда я сохраняю пароль сгенерированной капчи, то что быстрее будет - сохранять её в БД, или в static ?
62 3038566
>>038469
Если ты хочешь чтобы пользователю этой формы твоего сайта могли передать ссылку, открыв которую он отправит какие-то данные на твой сайт будто бы от самого себя (на самом деле это ссылка такая хитрая).

То можешь не ставить защиту на эту форму.
63 3038571
Я уже в отчаянии, аноны, помогите!

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

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

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

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

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

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

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

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

И подскажите уже код, блять.
64 3038572
>>038566
У меня там будет поле для поиска.

Ну будут от некого пользователя запросы о том, чтобы найти какую-нибудь ебалу и что? Сильно вредно? Я ж не ебу с какими хуйнями придется столкнуться в будущем.
65 3038617
>>038571
Я уже смог сам сделать.
66 3038795
>>038617
Молодец, держи с полки пирожок
67 3038804
Есть у кого-нибудь слитые курсы Михаила Каморина?
68 3038808
>>038804
А документацию для кого придумали? Тем более говорят что у симфони заебатая документация
69 3038809
>>038808
Картинки проще смотреть, чем букавы читать
70 3038829
>>038809
так тебе в рисование надо вкатываться а не в IT
71 3038871
>>038829
Уже поздно метаться
72 3039468
>>038829
Это смешно но линивым и безинициативным вкатываться в рисование ещё сложнее чем в программирование.
73 3039675
>>035015

>18.5


откуда статистика? выглядит прилично
75 3039798
Фасолевой няша, который пытается понять суть readonly-свойств, снова выходит на связь. У меня сформулировалась ещё пара тезисов.

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

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

Я к правильным выводам пришёл, или опять обосрался?
76 3040070
>>039798

>пытается понять суть readonly-свойств


Все у тебя через очко. Все задом наперед. Ридонли свойства решают конкретную ПРОБЛЕМУ. Семантика, хуянтика это следствие.

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

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

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

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

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

Ридонли нужно чтобы писать только это https://3v4l.org/dd2fl вместо вот этого https://3v4l.org/Uolm4 . Наследования-хуедования какие-то блядь выдумал. Наследования свои в очко себе засунь, да. Всё, забыли. Не использует никто наследование, не работает оно. Еще в 2004 когда паттерны хайповали все забили на наследование и начали композицией пользоваться.
77 3040099
Тупой вопрос, но все же, название таблицы, в которой что-то нужно сделать и название столбца, нужно передавать в плейсхолдерах?
78 3040113
А вот что делать, если у меня есть метод в TDG, который принимает название колонки, значение и айди, проверяет название колонки по белому листу. Что мне делать, если название колонки оказалось вне белого листа? Делать header внутри TDG на страницу ошибки?
У меня не может быть в этом методе значения по умолчанию, если присланное значение не является значением из белого списка.
79 3040147
>>040113
>>040099
Прими таблетки, шиз
80 3040231
>>040070
То есть, по сути, readonly это сорт оф асинхронная видимость с дополнительной гарантией того, что и внутри класса мы случайно не изменим значение?
81 3040232
>>040231
Бля, какая асинхронная. Асимметричная, перепутал слова.
82 3040266
>>040147
Посущественней ответа не будет? Или лишь бы что-нибудь высрать?
изображение.png22 Кб, 1028x96
83 3040296
Правильно понимаю, что это устаревшая информация?
https://www.php.net/manual/en/language.references.return.php

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

Ну, короче, возьмите код с первой ссылки, и запустите его на какой-нибудь нормальной версии (последней, например), а потом на древней (5.0.0, например).
85 3040372
>>040266
Ты тупой блядь, аж взбесил. Иди убейся нахуй
86 3040377
>>040296
Информация не устаревшая, просто в новых версиях пхп убирает скобки во время компиляции, походу считает что они не нужны, раз нихуя не делают. Можешь багу им на багтрекере написать.

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

Ну и не могу не добавить, что возвращать что-то по ссылке, тем более из объекта это полная хуйня и говнокод.
87 3040380
>>040372
Ты в РНР-треде вообще-то. Тут уровень дискуссий не такой высокий как в джава, го или даже питоне.
88 3040383
>>040380
Двачую. По факту мы ничем не отличаемся от битриксойдов которых поливаем здесь говном
89 3040417
>>040383
Я вот жду, что сольют курсы Михаила Каморина и тогда можно будет повысить уровень дискуссий.
image.png2,4 Мб, 1920x1040
90 3040959
>>038376
Ну и на сколько наносеков тянет?
91 3041056
>>040959
Мы вам перезвоним.
image.png13 Кб, 204x204
92 3041079
>>041056
Хорошо, я буду ждать...
93 3041195
>>035283
>>035220
Поставил демо магазин и охуел 913 таблиц сука пустой сайт в котором 3 инфоблока.
290 sql запросов для детальной страницы товара, если он насрёт кэш из тысяч пхп файлов, то всего 23.
94 3041208
>>034858 (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. Спасибо
94 3041208
>>034858 (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. Спасибо
95 3041212
>>034858 (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']
);
96 3041274
>>038376

Давай для начала изучим правильные названия для штук, которые мы пишем в 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. Так ты постоянно будешь получать непонятные ошибки.
97 3041288
>>041208
А че ты забздел-то? Заебись же перло.
Хуяришь какие-то статические методы в контроллере, да побольше. Называешь актив рекорд модель "сущностью". Че ты вдруг побежал "логику делить"?

Ну и ебашь наследование, добавишь пару необязательных полей, ну и похуй. Тут все равно говно такое, что только выкинуть нахуй и заново написать.
98 3041310
>>040372
Пошел нахуй, пидорас, к тебе с нормальным вопросом обратились, а ты хуйню отвечаешь. И кто еще тут тупой? Сидят долбаебы, либо срутся, либо хуйню пишут. Тред говна.
99 3041317
>>041310

>нормальным вопросом


>метод в TDG по белому листу header внутри TDG присланное значение не является значением


>Тред говна


Потому и тред говна, что собираются сюда дегенераты, которые двух слов связать не могут. Тебе правильно написали: не TDG, а ТГК. Попустись и внятно изъясняйся.
100 3041354
>>041288
Это же не я писал, что вы так реагируете на код. Я джун, увидел класс карточи товара ProductPage, сделал такой же класс для старой карточки товара. Но вот метод не так называю. Если можно сделать получше, не сильно изменяя код старой карточки товара, почему бы и нет
101 3041355
>>041317

>внятно изъясняйся


Что там невнятного?
Мне уже похуй на вопрос, потому что я его решил, но там серьезно ничего нет сложного для понимания.
И какое, блять, ТГК?
Table Data Gateway, TDG, не?
102 3041357
>>041354

>что вы так реагируете на код


Не удивляйся, тут одни озлобленные люди сидят.

Реально нормальных людей тут 1,5 анона.
103 3041360
>>041355

>Их ебанутые иероглифы


>Наши очевидные аббревиатуры


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

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

>откуда нахуй у тебя берутся хедеры


Так я и думаю, что они в TDG не нужны.

>Какие-то сука вайтлисты


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

>что такое исключения


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

Да похуй как. Чтобы посрать - надо толчек прочистить. А чтобы что-то тут проектировать надо выгнать нахуй бомжей и пол года чистить эти авгиевы конюшни.
106 3041363
>>041361

>И кому нужны эти исключения? Пользователю


Ты хочешь чтобы я тебе тут высрал курс по проектированию веб приложений на пхп?

Ловятся блядь все исключения специальной функцией, которая и перенаправляет пользователя на страницу ошибки или куда там тебе блядь надо.
107 3041364
>>041363

>все исключения специальной функцией, которая и перенаправляет пользователя на страницу ошибки


Ну и закончим на этом.
Спасибо, что навел на мысль.
108 3041372
>>041364
Вот так должны работать "вайтлисты" https://3v4l.org/fugVD .
Спрашивать надо какие колонки есть, а какие нет, у того кто знает список этих колонок.

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

Я не знаю по каким тиктокам ты пытаешься учить язык. Но найди блядь себе нормальный курс. И не еби мозги анонам. Выпытывать у тебя че ты там на самом деле хотел по несколько постов никому нахуй не упало.
109 3041373
Могу дать консультацию.
Мимо сенька, 10 лет в вебе.
110 3041374
>>041373
Дай.
111 3041379
>>041374
Дал, проверяй.
16432039664700.png73 Кб, 339x512
112 3041390
113 3041393
>>041390
Не пости этот баян. Им уже давно никого не насмешить
114 3041398
>>041393
Насмешил, проверяй.
16946796652791.mp45,2 Мб, mp4,
1080x1920, 0:15
115 3041462
116 3041564
>>041212
Сколько тебе платят как битриксойду?
117 3041582
>>041462
Откуда? Это типа интервью какого-то?
118 3041589
Поясните за перечисления (enum).
Допустим, у меня есть RoleEnum, который содержит RoleEnum::admin RoleEnum::moderator RoleEnum::user
В каких-то ситуациях, мне нужно трансформировать роль в string. Типа: "Ваша роль: (RoleEnum::admin > администратор)".
В каких-то ситуациях, мне нужно трансформировать роль в int. Типа, битовая маска для понимания того, достаточно ли у пользователя прав для выполнения того или иного действия.
Мне лучше использовать не типизированный enum и добавить в него методы типа toStringRole toSecurityBitmask?
А типизированные enum это как синтаксический сахар для тех ситуаций, где мы знаем, что данный enum будет трансформироваться в один скалярный тип? Типа, всегда string, и чтобы не нужно было делать лишние методы, мы можем прямо весь enum типизировать как string и нехуй.
119 3041612
>>041589
Нет, нихуя.
У тебя есть роль. Есть энум со списком возможных ролей. И есть представления этой роли в разных процессах.
120 3041616
>>041212
А тебе это зачем?
121 3041626
>>041616
Чтобы кабанчика удовлетворить и он дал денег на комбикорм
122 3042003
>>041626
А зачем тебе запрос чере d7 если у тебя уже есть выборка через старое апи? И в чем конкретно проблема?
123 3042013
>>041612
Я нихуя не понял из твоего ответа. Что нихуя-то? Типа, ты к тому, что трансформацию этого enum под разные цели стоит пихать не в сам enum, а в те места, где он используется?
124 3042073
>>041462
Слушай, так не смешно же...
16726944928710.mp4344 Кб, mp4,
1280x720, 0:02
125 3042095
>>042013

>Допустим, у меня есть RoleEnum


>Я делаю им все, а потом еще и жопу им вытираю


>Нет, нихуя.


>У тебя есть


>роль


>энум со списком возможных ролей


>И есть представления этой роли в разных процессах

126 3042119
>>042095
https://www.php.net/manual/en/language.enumerations.methods.php

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

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 (всё сразу понятно).
Screenshot 2024-02-09 195320.png49 Кб, 1874x152
130 3042232
>>042203
Возвращаемся в наш пхп детсад для альтернативно одаренных и в сотый раз учимся читать. Открываем пикрелейтед и читаем по слогам.

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

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

Если тебе нужна информация или свойства чего-то, то ты блядь за этой информацией и свойствами лезешь в это что-то, а не в энум. О чем, между прочим, тебе было уже несколько раз написано блядь.
131 3042240
>>042232
За каким хуем тогда нужны типизированный enum и методы в enum?
132 3042242
>>042232

>типизированный enum


А что есть какой-то другой?

>методы в enum


Ну разумеется чтобы продублировать туда содержимое моделей, наебенить побольше логики, желательно разной и бизнес и отображения и конфига, и вызывать все это через статику в любом месте кода. Нахуя ж еще?
133 3042244
134 3042251
>>042242

>А что есть какой-то другой?


В русских доках "Backed enumerations" переведены как "Типизированные перечисления". Хорошо, зачем нужны Backed enumerations?

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


Какой, блядь, логики? Ты что за хуйню несёшь? Я где-то говорил про логику? Нет, я сказал про сопоставление типа
RoleEnum::ADMIN => "администратор"
или
RoleEnum::ADMIN => 1
Всё, блядь. Никакой логики.
Ты на вопрос ответишь? Или они нужны как раз для того, чтобы бака из /pr/ мог повыёбываться?
135 3042258
>>042166
Не работай под рутом, он тебе так и пишет что не может найти контейнер "all", может у тебя другое имя контейнера?
136 3042260
>>042003

>А зачем тебе запрос чере d7 если у тебя уже есть выборка через старое апи?


Потому что Рыжиков на конференции сказал что D7 готов и это заебись, а старое использовать не нужно
Screenshot 2024-02-09 203130.png61 Кб, 1894x166
137 3042263
>>042251

>За каким хуем тогда нужны методы в enum


>Чтобы можно было засрать enum лишней логикой


>Я где-то говорил про логику? Нет, я сказал про сопоставление типа


>методы в enum


Ну я пока терплю. Издержки общения с дебилами.

>"Backed enumerations"


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

Что непонятно? Нужны чтобы идентификаторы хранить. Ссылки на содержимое элемента перечисления. Перечисление это не список элементов, с названиями, датами и именами. Это список ВОЗМОЖНЫХ элементов, по сути список идентификаторов элементов.
изображение.png39 Кб, 1104x202
138 3042347
>>042263
Ты на вопрос отвечай, а не жопой крути, как тяночка в тиктоке. Если ЕДИНСТВЕННОЕ предназначение backed enumerations - приведение к какому-то типу, который можно сохранить в БД, то нахуя добавлять в enum методы? И нахуя писать в доках, что обычно методы возвращают сопоставление через match?
И ты, получается, это считаешь логикой? Да, охуенная логика. Прям столько параметров и условий, аж 1, если считать значение enum условием.
139 3042421
>>042347

>приведение к какому-то типу, который можно сохранить в БД


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

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


>нужно гарантировать наличие того что у тебя есть в этом списке >>042232


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

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

А тыкать еблом в то что уже было написано по три круга, это мне нахуй не надо. Я не учитель из класса коррекции, у меня нет доброго сердца и терпения возиться с увечными и недоразвитыми. Помогать надо тем, кто может воспользоваться этой помощью. А слепошарых долбоебов, которые два предложения прочитать не могут надо слать нахуй.
изображение.png86 Кб, 1110x362
140 3042502
>>042347

>приведение к какому-то типу, который можно сохранить в БД


Открою секрет, под капотом библиотек для работы с БД все типы приводятся к нужным типам для БД, даже обычные примитивы. Те же int в пыхе зависит от архитектуры, работает примерно как isize в расте для x64 будет 64 бита, что для постгреса будет как bigint. А хотя у того же постгреса есть куча других типов, которые имеют разную длину и они под капотом преобразуются туда-сюда. С остальными типами еще веселее, тот же uuid передается байтиками, а не строкой.
141 3042881
Чему по дефолту равен CURLOPT_CONNECTTIMEOUT? Куда смотреть в исходниках PHP? В гугле противоречивая информация, от 300 (5 минут) до 0 (бесконечность и далее).
Пытался сам затестить, но не получается. Если поставить секунду - да, через секунду отваливается. А вот если, скажем, минуту, то отваливается раньше по другим причинам. Пытался и через гулагнет подключиться к линкедин (рвёт раньше по Recv failure), и без подключение к сети (рвёт раньше по Could not resolve host), и к http://google.com:1234 (рвёт раньше по Failed to connect).
142 3042957
>>042881
А тебе не приходило в голову что ждать коннекта и приконнектиться получив в ответ ошибку это мальца разные вещи?
Косяк.png587 Кб, 3285x1082
143 3043040
Помогите пожалуйста, почему у меня на таблице эта линия снизу справа появляется? Делал всё по гайду из видоса, но у автора этой линии нет, а меня появляется и я хз как с этим справиться. Укажите на ошибку в коде.
144 3043083
>>043040
А нажать правой кнопкой и посмотреть какие стили там применены тебе автор из видоса запретил?
145 3043092
>>043083
куда конкретно нажать правой кнопкой?
146 3043175
>>042957
Да хуй знает, я понимаю, что там миллион вариантов, а я про работу HTTP знаю на уровне нихуя. Какие варианты в голову и пришли, так и попробовал.
147 3043179
>>043092
Ну хорошо хоть не спросил что за правая кнопка и где она находится. Забыли про кнопку, сложно.

Погугли как посмотреть стили элемента на странице. Подсказка: прямо на твоем скриншоте, в гайде пол окна браузера занимает какая-то хуйня. Что бы это могло быть?
148 3043182
>>043175
Ну тогда держу в курсе: оно нормально коннектится и таймаут нормально работает.

99% что твой коннект просто нахуй не обосрался тем к кому ты пытешься коннектиться и они шлют тебя нахуй рвя соединение.
149 3043222
>>043179
А, ты об этом. Я смотрел уже там, все возможные стили отключал и включал поочереди, эффекта нет, точнее он есть, но всё ещё хуже становиться.
150 3043233
>>043222
Ну все. Заканчиваем вкат. Надули, обманули. Стили не работают, а зачем учить то что не работает.

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

Может ты просто сразу будешь внимательно читать что написано?
151 3043335
Посоветуйте докер образ для запуска пхп в связке с мускулом
152 3043340
>>043335
Докер не предназначен для запуска как виртуалка с ахулиардом процессов. У тебя будет php-fpm в одном контейнере, а myql другом. Так правильно. Иначе тебе нужно в контейнер пихать систему инициализаци или какой-то демон который следит за дочерними процессами типа supervisord
153 3043343
>>043335
Тебе надо минимум 3 контейнера, php-fpm, nginx и mysql. Если какие-то привязки к версиям не требуются возьми последние версии.
https://hub.docker.com/_/php
https://hub.docker.com/_/nginx
https://hub.docker.com/_/mysql
И лучше используй docker-compose для этого всего
154 3043520
>>043182

>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. Сайт стрёмный, ясное дело, но, вероятно, это копипаста ответом со стаковерфлоу какого-нибудь, кто-то это где-то изначально написал же.
155 3043828
>>043520

>CURLOPT_TIMEOUT это время ожидания ответа от сервера


>Что-то ты как-то вообще не понял


Да нет. Это ты нихуя не понял. Открываем документацию и читаем по слогам.

Если хочешь нормально проверить задержку - проверяй её локально, на СВОЕМ сервере, который ты настроишь как надо. Как симулировать медленный коннект гуглится в секунду.
Снимок экрана2024-02-1119-13-57.png44 Кб, 509x695
156 3043874
Какой же ахуенный редактор, подсвечивает все ошибки (подсвечивает любую хуйню рандомно)
изображение.png9 Кб, 167x113
157 3043881
>>043874
Я не то чтобы хорошо помню, но, по-моему, это нихуя не валидный YAML. Попробуй напиши null после image и добавь пробел перед myadmin.
изображение.png66 Кб, 682x474
158 3043884
>>043874
Хотя, погоди, это чё за хуйня вообще? myadmin как раз на первом уровне вложенности. А куда у тебя image упиздохал? Ты что сказать этим хотел?
159 3043898
>>043881
>>043884
Да все, поправил, зря быканул сорри
160 3043903
>>041212
Бамп
161 3043929
>>043874
Дорогой Малыш.
У каждого ахуенного редактора есть специальный баг трекер. Если ты нашел критическую ошибку, то специальные люди на зарплате прочтут твой репорт, воспроизведут баг и исправят его ближайшим недельным релизом.

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

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

Я уже даже не говорю про фичи редактора. Я говорю только про экспертизу в нюансах языка и работы с ним. Бесплатные альтернативы отстают на несколько лет минимум.
162 3044455
>>043929
Все эти баги - результат работы создателей шторма, которые добавляют всякую бесполезную херотень, о которой никто не просит.
163 3044583
Правильно понял, что вызывать curl_error после curl_close в >=8 можно, потому что curl_init теперь возвращает объект, а не ресурс, и curl_close в этих версиях вообще не имеет смысла и какого-либо эффекта?
изображение.png103 Кб, 1065x822
164 3044929
Информация устарела же?
165 3045265
>>044455

>никто не просит


Вкатусик, фичи в шторм добавляются как раз по настойчивым просьбам.
https://youtrack.jetbrains.com/issues/WI?q=Type:%20Feature&p=600
Пользователи сами голосуют за то чего хотят больше.

Маленьким вкатуночкам, впервые познающим мир, это не очевидно. Но то что ненужно им - нужно кому-то другому. И наоборот.
А по моему опыту, всё это на самом деле нужно, просто ты об этом не знаешь. Чем выше твой грейд - тем больше тебе надо от шторма, тем больше времени он тебе экономит.
166 3045464
>>045265
Если выше грейд, то уходят на вс код или вим
16884917041260.webm422 Кб, webm,
480x360, 0:07
167 3045527
>>045464
А с самым высоким грейдом пишут в блокноте.
168 3045557
>>045527
Я после пяти лет в пыхашторме перекатился в вскод. Вимом пользуюсь для админских задач. Вскоде поддерживал большой беттинговый проект, например и не умер...

мимо
16918144259350.mp4386 Кб, mp4,
764x720, 0:03
169 3045884
>>045557

>и не умер...


Ну жить можно кароч. ТЕРПИМО.
170 3046246
>>045557
Хочу также, заебал этот жыдбейнс, пользуюсь разными ide и с каждой новой версией они пихают все больше говна, то какой-то голландский штурвал code with me, то новый интерфейс, то какую-то нейронку.Теперь этот монстр глючит и тормозит покруче ide написанной на жопаскрипте. Но перелазить тяжело когда ко всему привыкнешь, прям как курить бросаешь
171 3046262
Как правильно создать простой докер композе пхп + мускул + пхпмайадмин? Два дня ебусь с этими конфигами и каждый раз какая-то ошибка. Может есть максимально простой и правильный пример, в интернете только отсебятина с персональными высерами от каждого.
173 3046291
>>046246
Вот уж действительно, пхп макаки это самые тупорыле существа на земле.
Вместо того чтобы просто снять галочку с плагина ты занимался какой-то хуйней, менял иде, страдал, привыкал. Ебать ты тупой.

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

На фоне этих охуительных историй претензии про иконки и скучные обои хотя бы реальными выглядят.
174 3046297
>>046291

>пхп макаки


Я просто мимо проходил

>Вместо того чтобы просто снять галочку с плагина


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

>Ебать ты тупой.


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

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


Очень растерялся и так много нажимал что аж пару репортов отправил.

Зачем ты так трясешься как чихуахуёныш?
1524214279166297364.jpg80 Кб, 1280x720
175 3046298
>>046297
Все, иди нахуй, заебанный жизнью.

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

И поэтому уже сто лет как переехал в иде где нет багов, не надо нихуя настраивать и обновлять. Менюхи там из молочной пены, а кнопки из киселя.
Газку оформляй, малой.
176 3046300
>>046298
Лол, сегодня ночь открытых дверей в психушке? Вон жс треде один изливает душу всю ночь. Ты тут чего-то кукарекнул, за меня тут додумываешь какую-то кисельную малафью. А в растотреде вообще один шиз прописался.
177 3046304
>>046300

>сегодня ночь


Ебать дебил.
178 3046377
Надо ли учить алгоритмы для РНР-вакансий?
179 3046441
>>046377
Надо.
180 3046486
Даже не знаю, стоит ли спрашивать.

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

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

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

Но код почему-то настойчиво пишет (в error_log) об ошибке, что первый аргумент вышеназванного метода должен быть массивом.
181 3046489
>>046486
Ладно, похуй, даже не гадайте.
182 3046496
>>046377
Не надо
183 3046497
>>046441
А как вообще пишутся алгоритмы на РНР? Я вот даже не представляю как сделать связный список, потому что у нас нет ни структур, ни ссылок. По сути работаем с таблицами самого РНР, а не настоящей памятью.

>>046496
Тогда надо заучивать стандартные функции РНР?
184 3046499
>>046497
Надо.
185 3046501
>>046497

>Тогда надо заучивать стандартные функции РНР?


Ты их никогда не выучишь лол, в пыхе они коварным образом с разной сигнатурой и спасает только подсветка ide. Но основные для работы с массивами, строками и файлами лучше знать
186 3046551
>>046501
>>046497
Что там, блять, заучивать?
Если ты работаешь с кодом, то все само заучивается.
Если не помнишь сигнатуру метода - гуглишь "как сделать хуйню нейм php" и первым результатом высвечивается мануал.
Если и тут нет удачного конца, то гуглишь "функции работы с хуйня нейм php". Все.

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

Какое же школярское отношение к программированию. Не надо ничего зубрить, все само со временем присосется, а если не помнишь, мануал для этого и написан!
187 3046697
>>046551
На собесе как на экзамене спрашивают и надо рассказать, иначе сделают вывод, что не знаешь РНР и не возьмут на работу. Сейчас даже на Битрикс на собесах дрючат.
188 3046841
>>046377
Для говнособесов не помешает. Для работы не надо
189 3047177

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



А чё, если я использую синтаксис именованных аргументов, ситуация не меняется? Я должен в объявлении метода указать их после обязательных? Типа, чтобы те, кто не именованные используют, могли нормально работать с методом?
https://3v4l.org/NToiL#v8.3.2
190 3047473
>>047177

>А чё, если я использую


Ошибка на 16 строке, а не там где ты "используешь".
191 3047571
>>047493 (Del)
Пшел вон, животное.
192 3047675
Бля как же заебало нихуя не делать, ебанись просто. С этого момента возобновляю вкат, отпишусь в тредике через неделю, надесь не уебут за вниманиеблядство и дневничкизм
изображение.png678 Кб, 1294x740
193 3047730
Ну как там, прикручиваете алису к Битриксу? лол
194 3047731
>>047730
Зачем ты такое смотришь? Ты битриксойд что ли?
195 3047732
>>047731
Попалось на просторах ютюба
196 3047833
>>047730

>прикручиваете алису к Битриксу


звучит эротично
197 3047902
Помогите понять в чем я туплю.

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

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

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

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

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

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

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

Что не так? Где я зеваю?
Кто тебя учил.mp45,2 Мб, mp4,
1920x1080, 0:23
198 3047984
>>047902
Все смешалось. Ты как вообще язык учишь? По какому гайду?

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/ .
Если коротко, то это нужно чтобы нормально автозагружать любые чужие классы из чужих библиотек полученных через менеджер пакетов.

Это основа, ЭТО БАЗА. Если ты собрался писать на пхп, то ты должен уметь пользоваться композером и сетапить свой проект под работу с ним, подключать автозагрузку итд. Если этого в твоем курсе/гайде нет - выкинь его нахуй и найди нормальный.
изображение.png155 Кб, 690x405
199 3048132
А чего так запарно сделать аккаунт на гитхабе?
Посчитать, конечно легко, но не 10 же раз!
200 3048310
>>047902

>use


Значение знаешь?
201 3048439
>>047984
Я все это знаю. И автозагрузка классов у меня есть через композер. У меня все работает кроме этого момента.

В 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
IMG20240214174907.jpg78 Кб, 1080x527
202 3048525
203 3049102
>>047984
Про Богдана Хмельницкого забыл душнила
204 3049104
>>048439

>Я все это знаю.


>require_once('test.html');


HTML же не понимает пхп теги. У тебя там даже подсветки в редакторе нет, лол. Как ты код-то этот писал вообще?
Шаблоны тоже должны быть в .php файлах. Вот так бы выглядело то что ты понаписал в пхп файле. Тебе сразу показывается что ты "адаптированное имя" из пункта 4) >>047984 не указал. А для HTML твоё имя класса это просто текст, который преобразуется в пхп код в момент подключения. На втором пике то как должен выглядеть код после фикса.

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

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

Поэтому "Я все это знаю" сомнительное утверждение. Рекомендую перепроверить.
И очень рекомендую убедиться что ты учишься по актуальному материалу, составленному компетентным специалистом.
205 3049164
>>049104
Окей, спасибо за развернутый ответ.

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

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

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

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

>Шаблоны тоже должны быть в .php файлах.


Не знал об этом, если это действительно так, то буду держать в уме.

>пик2


Да, прикольно, мне почему-то не приходила в голову мысль прописывать use в самом html файле.
206 3049242
>>049164

>мне почему-то не приходила в голову мысль прописывать use в самом html файле


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

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

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


>Я думал так


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

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


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

Короче, ты тратишь и мое и свое время.
У тебя в каждом файле должен быть класс, каждый класс должен быть в своем неймспейсе и подгружаться автозагрузкой. Единственный файл-исключение из этого правила Index.php - входная точка твоего приложения. ВСЕ. Все проблемы с импортами и подключением файлов ЗАКРЫТЫ раз и навсегда. Большая часть пхп макак в душе не ебет какой там скоуп у use. И правильно - есть вещи поважнее.
207 3049282
>>049242
Окей, спасибо за ответ.
208 3049295
>>3017266 →
Я закончил задачу список студентов.
Не идеально, конечно, но закончил.
Имеет смысл показывать код, чтобы ты сказал, что мне следовало бы сделать лучше?
Если тебе влом смотреть, то ок. Я не против. :^)
Я начал курс по Laravel и собираюсь решать задачу с файлообмеником с помощью Laravel, а не Slim.
Наверное уже пора, учить фреймворк?
209 3049369
>>046276
Говно какое-то
210 3049844
>>034858 (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 придется писать отдельное условие. Есть ли более лучшее решение вопроса?
210 3049844
>>034858 (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 придется писать отдельное условие. Есть ли более лучшее решение вопроса?
211 3049914
>>049844
Лучше показывать код через онлайн редакторы кода, например: https://3v4l.org/
Более читаемо.
212 3050256
>>049914
>>049844
Если так легче
https://3v4l.org/hKCiV
213 3050365
>>049844
Горе луковое.
У тебя же АКТИВ РЕКОРД для этого и есть. С построителем запросов. Фреймворк какой у тебя?
Вот так работа со связями в Yii2 происходит https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#lazy-eager-loading . Ты можешь указать релейшен, который нужно загрузить, с помощью with().

В ларавеле немного по другому, но суть та же. Берется пользовательский запрос и с помощью актив рекордского билдера преобразуется в запрос в базу, а ответ просто преобразуется в json. И все. Никто ничего не собирает руками по массивам как долбаеб.
214 3050440
>>050365
Он битриксойд
17018840242140.png470 Кб, 1280x720
215 3050493
>>050440
Ну так пусть битриксовский билдер использует. Он для того и предназначен чтобы динамически данные выбирать.
216 3050605
>>050493
Какой билдер? Там кусок говна в бд, вываливается таким же куском говна в виде массивов в которых ключи написаны капслоком
217 3050615
>>050605
Ну тогда сосать не разгибаясь, хули.

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

Давать джуну самому придумывать динамическое формирование запросов, да еще и поверх битриксовой уебищной орм. Это надо иметь уровень похуизма ПОЕБАТЬ АБСОЛЮТЛИ. Хоть сгори, хоть взорвись нахуй.
unnamed.jpg39 Кб, 392x512
218 3050622
>>050605
Битриксопроблемы
219 3050979
>>050615

>Я бы как минимум элокент прикрутил


Хуй у тебя чего получится. Там у битриксов основная проблема что данные не хранятся просто как обычные данные у нормальных людей, а по большей части инфоблоки это типа таблиц в БД но с нюансом есть исключения всякие другие модули, там каждый модуль может по своему колхозить с БД, но в основном используется инфоблок.
Список инфоблоков хранится в одной таблице, элементы инфоблока и часть его полей в другой, список свойств (property) для инфоблоков это аналог поля в таблице хранится в третьей, а значения по propertyId для iblockId хранятся в четвертой, пятой, десятой пятидесятой таблице, они там колхозили решение чтобы не тормозило и размазали проперти по таблицам. А есть еще 1 и 2 версия инфоблоков, там внутри много говнокода костылей чтобы они туда-сюда были совместимы.

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

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

Иди в пятерочку, там щас жуткий дефицит кадров.
222 3051867
>>051849
Нихуя ты долбоёб. Ещё недавно на пхп конкурс был раз в 10 меньше. Про это речь. Петухонеры поняв что у себя они не устроятся потому что там только гениев с 15 летним стажем берут пришли в пхп
223 3051876
>>051728

>Как жить как жить


Теперь только фуллкеком.
224 3051921
>>051867
С чего ты взял что это именно питонщики?
225 3051925
Обязательно использовать Api Platform для создания REST API приложения? Почему нельзя просто свои контроллеры написать, которые возвращают жсоны?
226 3051926
>>051925
Не обязательно.
227 3051930
>>050979
Ну задача не для джуна конечно, но осиливаемая. Я писал подобное поверх 1с-ной параши, там тоже регистры, реестры, списки свойств. Короче не реляционная дрисня. Современные орм достаточно гибкие чтобы даже с таким работать.
228 3052018
Заходим на стрим Валентина с канала Пых
https://www.youtube.com/watch?v=ZPGjJDIZm4Y
229 3052027
>>052018
Зачем пыхомакакам алгоритмы?
230 3052039
>>052027
Чтобы перекатиться с пыхи на нормальный стек. Очевидно же...
231 3052043
>>051728
Если они не осили питон, то и пхп не осилят
232 3052044
>>052027
Чтобы повысить уровень дискуссий в пхп-сообществе
233 3052067
>>051728
Выход есть всегда. Например, Ruby, Scala. Огромный спрос на Delphi и т.д.
234 3052068
>>052067
Perl забыл. Ажиотаж лютый.
235 3052086
>>052043
Они не осилили конкуренцию из миллиард гениев на место
236 3052098
>>052086
Такие отклики следствие неадекватных требований в вакансии (неграмотная хрюша).
Нет опыта - это красная тряпка. Ведь любой вкатун уверен, что этому критерию он соответствует, что люди там очень нужны, его всему обучат, а базу он уже посмотрел в видосах на ютубе.
По факту им нужен джун+, что соответствует 1-3 годам коммерческого опыта в других вакансиях.
237 3052105
>>052098
И где им неопытным взять 1 3 года опыта?
238 3052116
>>052105
Сам знаешь. Не мы такие - жизнь такая. Хочешь сотыги, умей крутиться, умей крутить.
239 3052754
>>052086
Вронтенд это сейчас любая проститутка с курсами дизайнера.
240 3053414
>>052754
Так и там нужно дохуя знать, вряд ли проститутка осилит эту хуйню до конца, а если каким-то чудом чудом вкатится то через полмесяца сама съебет
241 3053453
>>053414
Часто кто-то ноет о том, что сейчас кто ни попадя суется в программирование.
Мне кажется, что достаточно иметь опыт самостоятельного обучения программированию, чтобы понять, что программирование это сложно.

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

Короче, проходит тот, у кого больше свободного времени (или хорошее здоровье и развитая сила воли), у кого больше терпения.
242 3053455
>>053453
Или если у тебя Pussy pass и к тебе толпами бегут анальники на помощь ничего не требуя взамен. Или если ты Ерохин альфач и анальники от страха писаются в штаны и бегут тебе на помощь чтоб угодить своему харизматичному господину
243 3053460
>>053455
Тнусы и альфачи как всегда поднасрали
244 3053468
>>053460
Правда жизни, щито поделать
245 3053490
>>053414
Ну они и не осиливают, мой посыл что сейчас любая тупая пизда которая даже винду переустановить не может, называет себя фронтендером потому что купил курсы где рассказали что такое хтмл, или закончила шарагу на дизайнера где показали красивые картинки на слайдах. Вот они и создавют все эти отклики.
246 3053494
>>053490
МЯУ я такой тупой пизд, я шарагу по ИВТ закончил и откликался, хотя нихуя не шарил, и сейчас нихуя не шарю, пытаюсь подготовиться.
247 3053495
>>053494

>пытаюсь подготовиться


через аниме и доту 2?
248 3053505
>>053495
Типа того
249 3054038
>>051728
Ну на битриксе ещё не совсем жопа, но отклики тоже подросли. На стажировке раньше было 60 челов, щяс 100. А на другой стажировке было 15 челов, щяс 40. Такие дела.
250 3054042
Кстати что думаете о битриксе? Шансы-то в целом есть? Я вот знаю, что надо знать, да и курсы нарыл. Вот, что необходимо знать: HTML, CSS, JS, JQUERY, PHP, SQL и вкратце теорию БД, ООП, вкратце MVC, паттерны. Ну и по мелочи типа базовых знаний: работа с файлами, шо такое фтп, хттп, веб-сайт, как парсить, фреймворки для парсинга.

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

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

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

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

Ну так что. Шансы есть? Гои везде прогреты, но на битриксе кажется не до конца! Влетаем, гои!!!
251 3054070
>>054042
Ну что ж. Ждём 5к откликов теперь и на Битрикс.
Просто какой-то глюк вселенной. Людям уже пофигу куда вкатываться, главное чтобы айти. Вместо того чтобы заняться делом прыгают с одного лобка на другой как блоха шлюхи
252 3054174
>>041195
Расскажи, как ты количество запрос в базу смотришь
253 3054288
>>054174
Уже удалил эту хуйню, точно не помню в каком месте, если авторизоваться под админом, то вверху будет панель где можно включить отладку
Ещё один рудимент для вебмастеров 00х лол
изображение.png43 Кб, 1056x620
254 3055047
https://3v4l.org/jhfJU#v8.3.3

Такого из коробки в PHP нет, да?
255 3055379
Скажите пожалуйста, реально ли вкатиться в битрикс на удаленку за условно пол года или джунов вообще не берут. Сам живу в мухосрани, 0 вакансий ирл.
257 3055565
>>055379
Если сможешь заниматься по 8 часов в день, то сможешь за полгода.
258 3055703
>>055506
Про это знаю, это другое.

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

Вот нахуя это дублирование? У меня уже есть one two three в непосредственно именах кейсов.
259 3055721
>>055379
Да, я в прошлом году 2 таких работы стажером удаленно нашел
260 3055740
>>055565

>Про это знаю, это другое.


Да нет, нихуя не другое. Просто у тебя название и значение СОВПАЛИ. А так бывает почти никогда. https://3v4l.org/XF8aZ#v8.3.3

>Вот нахуя это дублирование?


Лол, так у тебя то же самое дублирование.

>function fromName (string $caseName): static


Ты значение $caseName откуда-то взять должен. И убедиться что оно правильное. Логично что правильные значения хранятся в самом энуме.

А вообще проблема в том что ты не понимаешь зачем энум в принципе нужен. Какие проблемы он решает. Это вообще сложный концепт даже для ооп. Энум это не просто значение, это концепция выбора. Это одновременно и выбранный вариант и список всех вариантов. https://3v4l.org/mFmjF#v8.3.3
261 3055741
262 3055783
>>055740

>Просто у тебя название и значение СОВПАЛИ. А так бывает почти никогда



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

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

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

Вопрос не относится к PHP, но планирую сравнивать excel файлы в PHP. поэтому решил задать здесь.
265 3057163
>>056773
А чего там метаданные потереть нельзя? Привести файлы к общему виду
266 3057941
Проработал год макакой, ебал это все в рот. В планах съебаться в село и жить на доход от продажи овощей. Ебал это ваше айти в рот, делать тут нехуй.
267 3058051
>>057941
Ебать за год не смочь пхп осилить. Нервничал и потел поди, когда просили что-то пофиксить?
268 3058054
>>057941

>доход от продажи овощей


Солидно. А где покупать овощи на продажу планируешь?
269 3058297
>>058054

>А где покупать овощи на продажу планируешь?


Проиграл.
270 3058413
>>058051
Если и да, то что?
271 3058630
>>058413
Ну ты тупой
272 3058635
>>058630
Почему?
273 3058661
>>058635
Тебе же тупому ответили, тупой
274 3058665
>>058661
Потому что я Нервничал и потел поди, когда просили что-то пофиксить ?
275 3058724
>>058665
Потому что ты первую часть поста прочитать не можешь, тупой
276 3058828
Научился писать круды на фреймворке, но не понимаю куда писать свой код. Везде пишут, что нельзя всё пихать в контроллеры, потому что они становятся слишком толстыми. А куда писать тогда этот код?
277 3058830
>>058828
А какой у тебя код? Может твой код крудам и нахуй не нужон?
278 3058864
>>058828
Не то что нельзя, просто со временем это будет выглядеть некрасиво. По идее, вся логика, не зависящая от того как к тебе пришёл запрос, выделяется в сервисы.
изображение.png693 Кб, 1101x790
279 3058921
280 3058941
>>058828
В сервисы
281 3059076
А уметь писать гидраторы тоже нужно для первой работы?
282 3059355
>>058921
Почему по Ларавелю столько всего пишут интересного, а по Симфони кроме доки нифига нет? Даже та единственная книга от автора Симфони и то про что угодно, но не про Симфони.
283 3059356
>>059076
Нет.
Ничего не нужно.
Приходишь, падаешь на порог и молишь их, чтобы тебя взяли. Они увидят твое отчаяние и возьмут на работу Джуниор php программист за 15 тысяч рублей.
284 3059358
>>059356
Сейчас даже для Битрикса стали Лару за каким-то фигом требовать.
285 3059359
>>059356

>за 15 тысяч рублей


Ну не дорого так-то.
286 3059360
>>059358
Правильно, пора переходить на нормальный вариант
287 3059365
>>059360
Я этого чела посмотрел, он там берёт интервью у битриксоида
https://www.youtube.com/watch?v=KZ5LbE5G4Jw
Вкратце, работать можно, но Ларавель там не нужен, на нём всё равно не дадут программировать. А реально нужны сертификаты по Битриксу.
image219 Кб, 586x598
288 3059371
Здравствуйте, сильно не ругайтесь, я питонист. Я учил питон год каждый божий день после тяжёлой смены на вахте, учил жагну, но когда я пришел на хх ру там меня ждало разочарование ... Никто мне даже оттуда не написал и не позвонил....
Можно к вам? Кажется вкат через пхп имеет больше шансов... Пхп всегда стоял особняком в гордом одиночестве от остальных языков. Возможно в этом есть спасение? Ларавел норм?
289 3059382
>>059355
Потому что простое всегда побеждает сложное
290 3059397
>>059371
Наслушался долбоебов теоретиков? Тут по тредам бегает такой го-даун на пхп обиженный.

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

Если захочется в микросервисы, то можно спираль посмотреть - лонг ранинг пхп фреймворк, со своим сервером написанном на goвне и со всеми psr стандартами
291 3059409
>>059371
Нет смысла менять язык. Вкат в пхп легче не будет, а времени ты потратишь больше на изучение нового языка. К тому же будут проблемы с запоминанием, так как будет путаница между двумя языками, и падение мотивации, когда столкнёшься со сложностями в пхп.
Если уверен в знаниях по питону, то просто нарисуй себе год опыта и вкатывайся. В пхп сейчас тоже приходится год опыта рисовать, потому что на собесы не приглашают без него.
292 3059410
>>059365
Чел на интервью работает с битрикс24, а это немного другое.
293 3059412
>>059410
Есть ещё разные битриксы? В чём разница?
294 3059416
>>059397
Стал жертвой маркетинга что у питона большое сообщество что легко учить что нужны прогеры питонисты (
295 3059426
>>059371
В автотесты пиздуй, если питон знаешь - деньги теже, геморроя меньше
296 3059429
>>059412
Есть 1с-битрикс, CMS в которой можно накликивать интернет-магазины мышкой. На ее основе сделали битрикс24 - полноценная CRM со всякой аналитикой и прочей хуетой
297 3059471
>>059426
Везде где есть слово питон там очень большой конкурс
298 3059780
>>059397

>лара норм


А что с остальными двумя фреймворками - yii и симфони ? они устарели или что ?
299 3059784
>>059471
В зоопарке например?
300 3059950
>>059360

>Правильно, пора переходить на нормальный вариант


Студия через которую я вкатывался в итоге перешла на лару, а битрикс только на поддержку доить заказчиков. Я тут с менеджером переписывался перед НГ праздниками, она у меня спрашивала про знакомых ios и гоферов, хотя когда я там работал несколько лет назад были все битрикосиды 10-12 человек, которые красили кнопки, а каким-нибудь второсортным магазином гордились как охуенным проектом. Сейчас уже за такую хуню не берутся, а сидят на крупных контрактах, видать дела в гору пошли как слезли с этой хуйни, а когда я там был зарплаты ниже чем у скуфов на заводе и текучка пиздец.

>>059365

>Вкратце, работать можно, но Ларавель там не нужен, на нём всё равно не дадут программировать. А реально нужны сертификаты по Битриксу.


Лол когда в студии работал так и было, на ларе писали избранные. Остальные искали вкушали говно, самый прикол что я первый месяц проходил ебучие курсы, ни строчки кода не написал, потом пытался сдавать экзамены и оба раза проебался там надо делать как правильно с точки зрения этого говна в какой-то ебучей ide на тормозящем удаленном рабочем столе хотя этот проёб экзаменов не мешал мне ковырять ядро и размотать обфусцированный includes.php чтобы убрать проверку лицензии лол. Но ты там будешь деградировать, хуй тебе дадут нормальную задачу, за полгода что там был ни разу ничего другого не трогал и почти всё были правки верстки по фтп с треканьем каждых 15 минут и еблей мозгов если что-то делаю не так быстро как это оценил кто-то другой.
301 3059952
>>059410
Та же ссанина на том же ядре, прикрутили к говно цмс говно CRM, смысл примерно один и тот же
302 3059987
>>059780
Yii наименее популярный из всех, что мы вспомнили и по факту не имеет никаких преимуществ. Забей на него.

Симфони второй по популярности, после лары, но типа самый серьезный из всех, для энтерпрайза такто. По факту он даже более современный чем лара что не значит, что лара не современный. Просто он более сложный и менее популярный и если ты вкатун, то лучше брать лару
303 3060013
>>059987
С симфони проблема, что материалов очень мало. Пришлось даже смотреть всех сподря на ютубе, но там челики в основном пересказывают мурзилки с документации. Как писать правильный код узнаешь случайно и урывками в отдельных статейках.
304 3060067
В рамках обучения сейчас пытаюсь скопировать двачик от и до. Пишу на Nextе фронт и бэк на ларке.

И встал вопрос. Как на дваче работает система авторизации пользователя? Понятно что её нет, но сайт запоминает твои посты, созданные тобой треды и так далее. За счёт чего и каким образом это работает. Я так понимаю это идёт через IP? . До этого имел дело только с обычной JWT авторизацией по логину, паролю. Максимум еще взаимодействовал с Google API.
305 3060073
>>060067
Лучше бы бложик запилил, а то копию двача стыдно будет показывать работодателю
306 3060094
>>060067
Так посмотри блядь заголовки. Это же открытая инфа. Попробуй куки поудалять, с разных айпи позаходить
307 3060133
>>060067

>Понятно что её нет, но сайт запоминает твои посты, созданные тобой треды и так далее.


На фронте, гугли local storage
308 3060273
>>060133
Да, вижу, хранятся в local storage store. Еще тут есть некий gnezdo_uid, который похож на какой-то зашифрованный идентификатор. Не знаешь что по нему?
309 3061673
>>060273
У Абу спроси
310 3061721
Я фронтендер и изучаю PHP, хочу получить 111 из массива query-параметров, но почему-то возвращается 0. Почему так?
Может ли быть дело в сервере? Использую XAMPP 8.2 на Ubuntu.
311 3061731
>>061721
А вот так, кстати, работает.
312 3061734
>>061721
потому что очки купи
Screenshot 2024-02-24 134658.png123 Кб, 1032x544
313 3061736
314 3061737
>>061734
>>061736
Увидел, я написал $GET вместо $_GET, спасибо!
315 3061871
Стоит ли раскладывать всё по сервисным слоям в пет-проекте или это слишком заумно будет для новичка и подумают, что я чужой проект скопировал? Можно написать просто круды и всю логику впихать в контроллер, тогда будет больше похоже на проект новичка и не будет сомнений.
316 3061887
>>061871
Ты долбоеб? Нахуя косить под долбоеба, если ты не долбоеб, чтоб не подумали, что ты долбоеб? Хотя ты долбоеб, если задаешься такими вопросами
317 3061974
>>061871
Перечисли свои слои слева направо.
318 3062019
>>061974
Я ещё не написал. Только думаю стоит ли писать.
319 3062063
>>062019
Давай гитхаб.
320 3062474
>>061721
Зачем ты в 2024 веке используешь ксамп?
321 3062601
>>062063
Это деанон
322 3062620
>>062601
есть еще гитлаб и битбакет
323 3062639
>>062601
Нет. Это пиздлявый ленивый шиз без кода за клавиатурой.
324 3062950
>>061887
Двачую.
Идиотский вопрос.
325 3062951
>>062601
Так пости через онлайн редакторы кода.
Распишешь особенности своего проекта.
326 3062971
>>062474
Потому что я нуб и использую XAMPP чисто в учебных целях.
327 3062986
>>062971
ты работаешь фронтендером или вкатун?
328 3063000
>>062986
Работаю фронтендером на Vue, хочу научиться ларавелить.
329 3063065
>>060073
Так имиджборд сложнее бложика
330 3063736
>>034858 (OP)
Объясните, пожалуйста, как тут работают ссылки и для чего нужен
$node = &$tree;
и
$node = &$node[$ancestor['INDEX']]['CHILDREN'];
https://3v4l.org/JgO01
331 3063770
>>063736

>//Есть массив:


>array(


Кто этот пидарас? И кто те дегенераты, которые с этой хуйней сюда лезут? Эта залупа гуглится уже.

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

Вы вообще не одупляете что вам по сорок часов в неделю в битрикс кале дельфинчиком нырять придется? И там нихуя не будет задачек, ответ на который можно просто разув глаза в документации прочитать.
332 3063977
>>034858 (OP)
написал змейку на php и ncurses, теперь планирую написать тетрис. какие подводные камни?
333 3064163
Пикрил, это 2 запроса. Если 1 запрос это 50мс, то второй идет после первого, это еще +1 и еще +50мс. Но может быть ведь и не 50, а 100 например + обработка еще время.

Как решают подобные проблемы множественных запросов? А ведь есть еще и зависимые запросы, по типу второй запрос зависит от результата первого.
Или забивают хуй, мол нет же многопоточности ну и все
18ece2bfe307e7e93296ea5485d8c534.png674 Кб, 1280x720
334 3064373
>>064163
А вот это, детектив, ПРАВИЛЬНЫЙ ВОПРОС.
Это происходит постоянно. Таких запросов на страницу могут быть сотни. Товар. Цена товара. Скидка. Характеристики. Значения характеристик. Сопутка. Картинки к этому всему. Доставка. Остатки.

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

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

2) На самом деле все это "решается" кешированием. Иногда тупо врубают кеширование результатов всех запросов в настройках орм. Иногда кешируют прямо страницу. Но чаще всего собирают сначала все данные для страницы, все результаты запросов, а уже потом кешируют. Вот именно для чего-то такого и нужен паттерн VIewModel.
335 3064374
>>064163
Перепиши на JS, силами PHP такое не решается.
336 3064375
>>064374

>Перепиши


Перекатись
337 3064687
Здорова, я здеся новенький.
Есть вопрос.
Короче я юай обезьяна. Со стажем.
Бек знаю на уровне, что такое нормализация, скл триггеры, запросы к апи. Какие нибудь джоины. Многопоточность не знаю, т.к. в яваскрипте она реализована непонятно, как. Да, яваскрипт многоточный
Хочу вкат в бек. Думал между нодой и пыхой. Остановился на втором. Аноны, есть разница между ларавел и симфони? Или это как рякт и вью - одно и тоже
338 3064777
>>064687
Тут скорее аналогия React и Angular.
339 3064858
>>064777
О понял, мерси.
Выбираю ларавель, т.к. звездолеты строить не собираюсь
340 3064910
>>064687

>Думал между нодой и пыхой. Остановился на втором


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

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

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

Короче шиза. Нода блядь "бодрая". Новая модная хуйня и го. Че несет, вообще охуеть.
342 3064935
>>064687

>Аноны, есть разница между ларавел и симфони?


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

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

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

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

Отсюда и следствие: где же будут больше платить и лучше следить за качеством? В проекте который развивается стихийно без каких-либо планов или в проекте который на рынке пять лет и еще пятнадцать будет?
345 3064988
>>064374

>Перепиши на JS


Я больше в какашку не хочу вступать, после ООП
346 3064991
>>064980

>Крайне хуевое объяснение. Зашел-не зашел. Пиздец, как леденцы в магазине выбираешь.


Это мои ощущешия не более того
347 3065050
>>064980
Будто симфони не RAD фреймворк. Ты api platform трогал?
make:entity -> готовый круд api -> api:openapi:export -> openapi.yml -> openapi-generator -> http клиент для реакта, ангуляра, вуежс сготовыми круд методами
348 3065058
>>065050
А с другой стороны symfony ux c hotwire
349 3065065
>>065050
Кодогенерация это не RAD. Ты хоть один фреймворк без кодогенерации видел вообще? А если сам напишешь кодогенерацию, то типа превратишь любой фреймворк в RAD? Это типа игра в сифу что-ли?

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

>задумываться как уйти от ORM


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

>код для отвязки от симфони


Симфони это просто набор библиотек. Так же как ты будешь писать код "отвязки" от газзла, например, так же ты будешь писать код "отвязки" от симфони. Обычная инверсия контроля с интерфейсами и ACL. Если нужно поменять библиотеку ты просто пишешь под неё класс с имплементацией и прописываешь его в DI. А вот как отвязаться от вездесущих фасадов это загадка от жака фреско.
354 3065120
>>065086
Не причем. Кеширования нет. Все по 50мс на все сто запросов ждут. И вместо того чтобы закешировать один объект ViewModel бьются ебалом об монитор. А сам ViewModel создают только чтобы геттеры вызывать. Ведь в обычной модели этих геттеров нет. А в VIewModel данные попадают из... да кого вообще ебет откуда и зачем.
355 3065124
>>065104

>На go такого нет, потому что там уже знающие люди


Там это где?
Вакансия Golang Backend Developer в Москве.png353 Кб, 1280x802
356 3065136
>>065124
В golang'е. О нём обычный человек с улицы вряд ли услышит. Там чаще попадаются нестандартные проекты, типа какого-нибудь gismeteo. Там зарплаты выше, попробуй найди похапэшника с зарплатой до 600 тысяч в месяц. Там меньше шансов что попадётся очередной говномаркетплейс с перепродажей китайского говна с алиэкспресса. Меньше шансов что придёт очередной говностроитель со своей говностроительной фирмой.
357 3065143
>>065136

>в веб-студии, работающей на поток все хуево


>а вот "там" все заебись


>где?


>...


>В golang'е


Ты под баклофеном?
358 3065146
>>065136
Ты больше вслух мечтай, тогда обязательно услышит. Вкатунишки такие вкатунишки. Думают они чем то от других отличаются. Наверное мамке своей верят...
359 3065208
>>065120
Ты блядь какой-то тролль или пишешь как-то непонятно.

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

Если ты вызываешь напрямую во вьюшке методы из модели то ты большинство принципов похерил нахуй.
360 3065258
>>064687

>Здорова, я здеся новенький.



И уже сходу жидко обгадил рейтузы:

>Да, яваскрипт многоточный

361 3065260
>>064988

>Я больше в какашку не хочу вступать, после ООП


Какого ООП, на ПХП? Не смеши.
362 3065325
>>065260
В PHP вся разработка в ООП ведется по-умолчанию с принципами, паттернами, с Фаулером, с Бобом Мартином, Крейгом Ларманом, со включенной строгой типизацией. Используется атрибуты/рефлексия. ООП в PHP аналогична ООП в Java. И книги из Java подходят для ООП и в пхп, в плане построения конструкций.
Так же код весь под тестами + есть статические анализаторы.

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

А смешишь тут только ты, хуесос малолетний
363 3065337
>>065260
Лучше ты расскажи чем ООП в пыхе современных версий хуже чем в той же жабе
364 3065342
А вы a?b:c уже починили?
мимо-проходил-заметил-срач-решил-немного-подкинуть
365 3065421
>>065208

>логику отображения


Эт че такое? Это такой всратый способ сказать "данные для отображения"? Ты же сам называешь её DTO и говоришь что логика во View и шаблонах.

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

>большинство принципов похерил


Ой вей. Солид здеся. Ну-ка, сектантик, а как мне наверняка проверить что класс сингл респонсибилити? Ну так чисто, чтобы узнать похерил я этот принцип или нет?
366 3065424
>>065421

>Ну-ка, сектантик, а


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

Не, а в инете выебывайся, никтож не запрещает, а вот в реальности все мы на своих местах
367 3065425
>>065421

>Солид здеся


А другие принципы (подсказка: их дохуя) какие похерил, заводчанин?))
А я буду показывать такой код и буду спрашивать что еще и всякие левые - пойдут вон из профессии
368 3065426
>>065421
Домен - это предметная область, ебанашка))
Иди уроки делай школий малолетний
смеющийся-том-круз.jpg83 Кб, 1024x640
369 3065482
>>065325

>В PHP вся разработка в ООП ведется по-умолчанию с принципами, паттернами, с Фаулером


>Используется атрибуты/рефлексия


>Так же код весь под тестами + есть статические анализаторы.

370 3065596
>>065424

>Петушок который не пройдет собес и не сможет ответить на мои вопросы


Да любой дауненок откроет википедию и прочитает определение. Вы же все равно нихуя не понимаете что оно означает. Просто с умным ебалом повторяете. Вот я спросил как конкретно измерить что код соответствует SRP, и ты сразу поплыл: пук среньк.

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

>>065425

>А другие принципы


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

>>065426

>и всякие левые - пойдут вон из профессии


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

>>065426

>Домен - это предметная область


И хули? Приплел ты это нахуя?
Для умного ебала. Ну добавил бы еще "на планете земля".

>бизнес-логику домена на планете земля В ГАЛАКТИКЕ МЛЕЧНЫЙ ПУТЬ


Нихуя как ВАЖНО звучит. Теперь то моя шизофазия в десять раз убедительнее стала. Ведь стала, да?
371 3065661
>>065596
Верстальщик wordpress рвется в программисты))
dd758c0d86a5174a80503388699b057b.jpg206 Кб, 806x900
372 3065712
373 3065724
>>065661
Какие сейчас требования на wordpress?
374 3065739
>>065724
Требования к вордпрессу отвергать знания и топить за темноту как тот школьник
Ты шизофреник.mp4381 Кб, mp4,
854x480, 0:05
375 3065741
>>065739
Школьники топят за темноту. Ясно понятно.
376 3065766
>>065741
У тебя жопу рвет от того что другие добровольно это изучают, потому-что это ремесло в кайф и апают скилл естественно, а тебе это нахуй не нужно, для тебя это принудиловка, ты тут только за деньгами и агришься от того что я твой конкурент с более лучшими навыками.

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

Поэтому твой естественный уровень - это вордпресс, дальше ты попросту не вытянешь, потому-что тебе это неинтересно
377 3065775
>>065766
А че ты изучил? Определение прочитал? Ебать ты апнулся. Так как SRP померять, ремесленник?
378 3065797
>>065775
А тебя ебать не должно, я тебе псу - помогать не буду.
2f9b0fda397ccd167961b62f3cffcbf8.jpg115 Кб, 1000x763
379 3065830
>>065797

>я дохуя че изучил


>че знаешь?


>пук

380 3065869
>>065766
Да-да, все поняли, что ты не левый и реально любишь программирование. Только не рвись, маня. Мышление как у школьника 9-го класса.
У меня такое ощущение, что в программировании есть негласное правило - если ты решил вкат, то ты обязан всему сообществу рассказать о том, как тебе нравится программировать и интересно этим заниматься, ведь иначе подумают, что ты негодяй!

Решает не интерес к программированию, а твоя совесть (совестно будет говнокодить), наличие материала, который ты сможешь освоить с имеющимися знаниями (и тем самым меньше говнокодить) и упорство.
381 3065888
>>065830
Мы с тобой выше поговорили, ты даже основ не знаешь, а хочешь на голову выше тему. Я тебе не собираюсь разжевывать то что тебе непонятно. Мне похуй на твою жизнь
382 3065891
>>065888
Обтекай, неуч. Нихуя ты не знаешь.
383 3066015
>>035220
Поглядите. Человек даже не в курсе про хайлоад блоки. Ну что ж, типичный вкатунец сделал мнение об инструменте на основе поверхностной информации. Ничего нового.
never-give-up-bitrix.png1,5 Мб, 2799x1649
384 3066031
>>066015
Так это че? Получается битрикс не говно, написанное студентами за еду?
385 3066033
>>064910
>>064935

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

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

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

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

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

>>065258
Да да я https://tc39.es/ecma262/#sec-agents
386 3066123
>>066031
Всё что новое пишется слабо отличается от ларавел. Старое конечно переписывать никто не будет на "новый" битрикс д7, так что смотря куда устроишься, с тем и будешь чаще работать.
16857004333692.jpg98 Кб, 500x500
387 3066125
>>066033

>заспидранить яву за месяц


>Машинальная память не вывезла


Имаджинирую ебало счастливого работодателя в момент осознания какого Нео-мнемоника ему нарисовали хр.
388 3066130
>>066123

>Всё что новое пишется слабо. Отличается от ларавел.


Пофиксил
389 3066188
>>066033
P.S. братва в догонку
Я думаю, что нужно найти инструмент не тот за который лут 300к сек, а тот который в кайф чисто по душе + ну и чтобы он был живым на рынке труда. Не какой нибудь фортран

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

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

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

Мне не нравится, что люди идут в сферу информационных технологий ради денег, это не самый лучший мотиватор. Т.к. лучше быть каким-нибудь сварщиком или строителем. Да, по деньгам будет меньше, но не надо постоянно изорбретать как-то велик и жить профессией. Да и просто пилить аплик, которым будут пользоваться 1.5 человека.
390 3066190
>>066015

>Человек даже не в курсе про хайлоад блоки.


Ты знаешь как они устроены под капотом? И какое говно они делают в бд?
391 3066193
>>066123
Потому что D7 не доделали, потому и не смогут всё переписать лол
392 3066239
>>066033

>Да да я 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 - это единственное число.
393 3066240
>>066033
Теперь читай дальше:

>Except for the executing thread, the constituents of an agent belong exclusively to that agent.


В гугл транслейт вставить сможешь? Где ты тут многопоточность увидел, даунит?
394 3066250
>>066239
>>066240
Может он с асинхронностью перепутал, у новичков бывает
395 3066403
>>066239
>>066240
>>066250

Извинись
SharedArrayBuffer
396 3066566
>>066193
Ну можешь сам доделать, что тебе не нравится. Битрикс это гибкая система модулей и компонентов, всегда можешь подпилить и будет красиво.
Screenshot 2024-02-28 014720.png176 Кб, 3352x1358
397 3066569
>>066566

>сам доделать


Просто хочу разобраться.
А сколько с тебя попросят разрабы ларавеля за доделывание их фреймворка?
398 3066572
Так Битрикс норм или нет, ничего не понял?
399 3066573
>>066566
Перетолстил
400 3066574
>>066572
Купи и проверь.
401 3066575
>>066572
Попробуй развернуть демо сайт у себя и погляди
402 3066578
>>066572
Нужна работа - да. Если нет нужды спешить - нет. Есть желание подняться из говен - да. Нет желания даже знать о говне - нет.
403 3066579
>>066578

>подняться из говен


Атлант восстает из битрикса.
404 3066629
>>066572
Сначала изучи что то нормальный проект, на фреймворке ларавель или симфони, или хотябы на опенкарт(все лучше битрикса). А вот потом пробуй... Отпиши только результат "пробования")
изображение.png41 Кб, 623x640
405 3066640
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);
--------

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

Это какой-то баг, или что?
изображение.png41 Кб, 623x640
405 3066640
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);
--------

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

Это какой-то баг, или что?
изображение.png35 Кб, 392x621
406 3066657
>>066640
Попробовал всякие версии, ничего не изменилось. На php-7.0.0-nts-Win32-VC14-x64.zip пик случился из-за кодировки. При этом, как видно, кавычки всё ещё пидорасит. Подумал, может, в cmd какой баг. Запустил в PowerShell - результат такой же.
407 3066662
>>066657
Поставь линупс и не майся
408 3066675
>>066640
>>066657
А, бля! Я разобрался. У меня в файле 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");

На винде выводится хуита кривая, а на линуксе норм.
409 3066804
>>066675
Микросамофикс: \r в конце строки, а не в начале.
410 3067182
>>066675
Держи в курсе
411 3067196
Хелоу, завтра собез на трейни позицию фул стак.

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

В самой вакансии указаны требования базового знаний PHP+JS, ООП и шаблонов проектирования. С последними туго, но ООП вроде подтянул. Что посоветуете? Как не обосраться жиденько?
412 3067212
>>067182
Я только что покушал, кстати.
413 3067249
>>067196
Советую въебать коньячку и вывозить на софт скилах. Пытаться попиздеть за жизнь.

Полезешь в тему ооп и тебя начнут сразу душить и гнобить. Посмотри на животных выше по треду. Там такие торквемады, чуть не по ихнему сразу тряска начинается.
414 3067262
>>067196

>Laravel


Не нужен. Тебя все равно посадят ковырять битрикс
415 3067280
>>067262
Годаун, когда работу найдешь?
416 3067281
>>067196
Да хз, я бы напиздел что-то типа: в основном на сервере работал с нестом, с пыхой поменьше и пр кококо. Типа посмотрите я не лох, прост немношк с другим стеком работал, поэтому могу мальца обосраться, но общую конву понимаю. Авось тебя на нест посадят.

Да и нест же ООП и на тайпскрипте, что ближе пыхе
417 3067290
Нахуя вообще знать ООП? Тебе дают готовый фреймворк на MVC паттерне. Достаточно его просто заучить. Ну банально знать что такое класс и всё.. Нахуя это всё? Никто же щас не пишет на чистом PHP нихуя, кому сдались эти синглоты фабрики, стратегии?
Разработчик это же ремесленник, а не философ теоретик. Тупо рабочий на заводе. Это тыкаешь сюда, это сюда. Бля, ей богу не понимаю.
418 3067320
>>067290
Речь о том чтобы знать всякую синтаксическую хуйню: приватные свойства, интерфейсы, как класс отнаследовать и пр. Ясен хуй что паттерны это хуйня для аутистов, но как работать с классами/объектами в языке нужно знать
https images.genius.com05ff347f7b2afdd804a80c4076f4bf1b.500x500x1.jpg75 Кб, 680x680
419 3067340
>>067290
Ок. Объясняю как тупому зумеру.
Твоя мать когда нибудь наводила "порядок" в твоей комнате? Уходил в шкилу - все валялось "на своих местах". А приходишь обратно - нихуя нет и непонятно что теперь где.

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

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

Дорогой малыш, сегодня ты узнал много нового.
Завтра у нас будет урок как самому ходить на горшок и как правильно вытирать жопу.
А на сегодня все. До новых встреч!
420 3067350
>>067340
Никто не использует кроме создателей фреймворков твои намоленные паттерны. Они нужны, чтобы в интернете выёбываться чем ты и занимаешься.

В голосину проигрую, когда смотрю всякие уроке про паттерны от опытных разрабов, которые в гугл лезут, чтобы не обосраться, почему? Потому что они в рот ебали эту нинужную дисциплину созданную только для того, чтобы пилить о ней уроки
421 3067358
>>067340
По тексту сразу видно любителя гоблина малолетнего дебила
Мимо
422 3067359
>>067350
Вкатусь, слишком толсто
Screenshot 2024-02-28 200250.png2,4 Мб, 1996x1616
423 3067371
>>067358

>По тексту сразу видно


Этот тред он как заповедник дегенератов. Достояние двача, под охраной санитаров.
424 3067378
>>067371
Молодец, охраняешь
611mq6mIcWL.ACUF894,1000QL80.jpg22 Кб, 894x606
425 3067382
426 3067607
>>067359
Да тыж жертва инфоциган, долбоеб. Найди работу и посмотри как оно на самом деле, теоретик с двача
427 3068076
33554432 - что за магическое число? Почему если передать в fread всего на один байт больше, он начинает сходить с ума и срать ошибкой

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



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

Есть вообще какая-то рекомендация, какой длины чанки мне читать с помощью fread, если нужно прочитать весь файл один хрен?
428 3068150
Котаны, скиньте сетап вскода для пхп, ларавел, вью. Лицензия кончилась на пхпшторм.
429 3068163
Есть допустим задача, заменить русские слова БМВ на BMW. Статей дохуища (400к записей). Сайт на хостинге.

Норм решение?
1. Накатить полнотекстовый поиск на MySQL.
2. Найти статьи где есть бнв.
3. Запросить из БД список этих статей и скриптом заменить слова -> обновить.
430 3068170
>>068163
А, там же еще можно like %бнв%
431 3068198
>>068150
Хуй тебе. Сиди на пхпшторме, говноед
432 3068199
>>068163
Нахуя тебе полнотекстовый поиск?
433 3068216
>>068163

>Статей дохуища (400к записей


Это вообще хуйня же, короче все зависит от регистра если тебе нужно менять 'БМВ' на 'BMW' то это можно sql запросом пройтись, за MySQL не скажу, в постгресе есть replace. Если что-то по сложнее с текстом, то рекомендую написать скрипт.
Не пытайся менять все записи, проходи по 500 штук максимум и после всего этого не забудь про vacuum analyze чтобы у тебя индексы нормально работали и бд меньше места занимала
434 3068220
>>068216
Да, там тоже реплейс есть.
select replace .. where like like %БМВ% - типа этого?

>и после всего этого не забудь про vacuum analyze чтобы у тебя индексы нормально работали и бд меньше места занимала


Это что такое?
435 3068238
>>068076

> Allowed memory size of 2147483648 bytes exhausted


С английским плохо? Выделенная пхп память кончилась.

>скорость выполнения скрипта будет расти


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

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

Очевидно что пик скорости будет в момент когда запрашиваемая тобой порция совпадет со скачиваемой, и на одну подгрузку куска с диска будет всего одна операция получения этого куска.
436 3068246
>>068150

>Лицензия кончилась на пхпшторм.


Создай новый аккаунт и начни пробный период.
437 3068253
>>068163
>>068216

>чтобы у тебя индексы нормально работали и бд меньше места занимала


Это нужно только если изменяемое поле проиндексировано. На текст никто индексы не делает, нахуй оно надо?

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

А вот если нужно поменять МНОГО ЧЕГО РАЗНОГО. Тогда нужно городить обработку таблицы через курсор порциями с помощью процедур. Или уже писать пхп скрипт.
изображение.png27 Кб, 417x179
438 3068268
>>068246
А может лучше...
439 3068285
>>068268
Потом не трясись когда вирусы поймаешь
440 3068294
>>068285
Касперского обновил?
441 3068366
>>068285
Юзаю уже полтора года и нет вирусов никаких.
442 3068499
>>068294

>Касперского обновил?


Щас ещё ФСБшные зонды на свой ПК ставить.
443 3068521
Сап, это тот анон, который советы по поводу собеза спрашивал >>067196

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

Были вопросы по пет проекту немного, от силы 2. И на базу данных пару вопросов, ну еще про гит. И всё. В ПХП как оказалось не так много нужно всего знать. Просто читаешь определения всякой хуйней, пытаешься расписать их своими словами и так же на собесе и отвечаешь. По ООП было несколько вопросов, но про П-А-Т-Т-Е-Р-Н-Ы не спрашивали. Я им кстати сразу объяснил своё отношение к паттернам и они со мной согласились, кек. Ну тащемта всё
447 3068546
>>068521
Так ты на фулстека вкатился, а это проще чем на чистый бек
448 3068563
>>068521
Это удаленка или офис?
449 3068576
>>068521
Фига сразу гонору добавилось. До сеньора вначале дослужись, 300к начни получать, тогда и говори для даунов язык или нет.
450 3068583
>>068563
Офис
451 3068604
>>068583
Ну тебе норм тогда, а в моем мухосранске один битрикс
452 3068636
>>068521
Логика так и блещет.
+жирнишь.
453 3068637
>>068238

> С английским плохо? Выделенная пхп память кончилась.



Нет. Во-первых, 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 про это почти ничего нет.
454 3068638
>>067262

>Тебя все равно посадят ковырять битрикс


Двачаю >>035220 анон, у меня так и начиналась карьера, где-то через 6-7 месяцев свалил на рельсы
455 3068639
>>068638

>рельсы


Так они же мертвы. На чем сейчас сидишь?
456 3068701
>>068544
ты проиграл с паттернов, их даже на битриксе используют, если тимлид вменяемый.
457 3068708
>>068701

>на битриксе


в*
Без имени.jpeg7 Кб, 229x220
458 3068728
459 3068773
>>068701

>если тимлид шизло, как и я


Пофиксил
460 3068785
>>068639
На расте, скорее мертвы чем живы, новых проектов почти нет, а вот старых проектов с выразительной синтаксически сахарной кодовой базой много. Но всяко лучше битрикса, можно даже сразу туда пробовать вкатываться
461 3068794
>>068701
Да, паттерны там охуенные Capslock Array Keys Dilder, String Boolean Shittone, Global Variables Fucker
462 3068837
>>068637
Речь об оперативной памяти. В начале работы скрипта пхп разрешается взять только определенное количество памяти. Превышение этого лимита и вызывает ошибку.

>Allowed memory size of 2147483648 bytes EXHAUSTED


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

>И откуда 4096 взялось вообще


А какая разница? Ну читает он по 4096, а потом склеивает в кусок который ты хотел. Проблема-то в том что ты наговнокодил утечку памяти.
463 3068898
>>068794
Похуй какие они там. Это надо понимать как факт, что такое спрашивают и быть к этому готовым.
464 3068940
>>068898
Ты кстати с докером разобрался? Помню пыхтел, говорил что сложно очень
465 3069038
>>068794
пездой четаешь? Я написал "на битриксе", а не "в". В самом ядре битрикса одно говно, но никто не мешает использовать только его апи, а свои модули писать нормально(бизнес его сейчас хавает и кабаны пытаются оседлать эту волну, в джунам деваться некуда, на нормальный стек очередь пару км).
466 3069064
>>068940
А что с докером? Запустил контейнеры и всё. Там что-то еще нужно знать?
467 3069149
Ошибка docker-compose.yml: services.ports must be a mapping
Что не так?

version: "3"
services:
php:
image: php:8.2-apache
container_name: php82
ports:
- 8000:80
volimes:
- ./php:/var/www/html
build:
context: .
dockerfile: Dockerfile
468 3069168
>>069149
Проверь отступы.
469 3069172
Почему везде пишут версию композера три, хотя последняя вторая?
470 3069194
>>069172
Зачем вобще её пишут, когда рекомендуют не писать?
471 3069198
>>069064
Та не. Просто тебе это сложно давалось помню
472 3069265
Кто-нибудь может на машине под управлением Linux и через консоль (типа php file.php) выполнить следующий скрипт:

<?php
echo "hello\rworld";

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

>world



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

>hello


>world



У меня сейчас доступа к машинам на линуксе нет.
Без имени.png10 Кб, 413x98
473 3069271
474 3069275
>>069265

>\r


>Carriage return by itself provided the ability to overprint the line with new text.


https://en.wikipedia.org/wiki/Carriage_return#Computers

Это сама консоль видя \r перезаписывает текущую строку. А браузеру на это поебать, для него эти закорючки - просто текст.
475 3069284
Дайте рабочий простой пример docker compose со связкой php + nginx + mysql + phpmyadmin
476 3069288
>>069284

>mysql


Это че такое?
477 3069291
>>069038
Написанная в /local/ реализация паттерна ради паттерна конечно же охуенна, но большинство кода таки приходится на ковыряние $arParams в result_modifier.php и написание своих компонентов, которые приходится писать в битриксовой "архитектуре" не знакомой не то что с паттернами, а даже с psr.
Есть конечно же проекты с большой бизнес-логикой, где действительно можно дохуя всего написать достаточно хорошо и красиво, а от битрикса нужна только админка и конечно же именно ты с такими проектами работаешь. Вот только большинство пользователей этой хуйни малые кабанычи, которым в красивом слайдере на жиквери нужно показать ассортимент шаурмы либо мухосранские управляйки которым нужно вывести при помощи bitrix:news график отключения горячей воды.
478 3069293
>>069288
Это раньше в 00х использовалось в качестве БД
479 3069300
>>069291

>мухосранские управляйки


Сейчас зашел на их сайт, раз уж вспомнил, где я добавлял этот самый график 3 года назад трекая несколько микрозадач по 15-30 минут, они уже на друпале, лол
480 3069314
>>069284
Написал на днях. Можешь переделать под себя, сменив постгрес на mysql или просто добавить его в конфигурацию. Как подключить контенер с phpmyadmin, разберешься сам.
https://github.com/bcchicr/docker-php-env
Если есть кто-то разбирающийся, послушал бы, в каких местах есть косяки, и что хорошо бы исправить.
481 3069354
>>069293
А вот и семен
photo-176424.jpg17 Кб, 600x479
482 3069356
483 3069401
>>069271
Спасибо. Наконец-то я разобрался.

>>069275
Нет, там всё несколько сложнее. Большинство онлайн PHP-интерпретаторов засовывают результат выполнения кода в textarea. А textarea обрабатывает любую комбинацию, которая может использоваться для переноса строки, как перенос строки. \r это mac-style line ending.
Ещё какая-то часть сайтов засовывает результат в pre. Там \r просто выбрасывается, как будто его и нет.
И всего один я нашёл, у которого как бы настоящая эмуляция консоли с отрисовкой через canvas. Вот там \r обрабатывается как и должно. А должно, как показал анон выше, прыгать на начало строки, да.
484 3069411
>>069401

>Наконец-то я разобрался.


В чем? У тебя ОКР?
44vf9jf1xjky.webp21 Кб, 604x516
486 3069439
>>069411
Да! Я обязательно должен был разобраться в том, как \r ведёт себя в консоли линукса, и почему тогда большая часть онлайн интерпретаторов воспринимает его как перенос строки.
487 3069443
>>069401
Шиз, textarea здесь вообще не причем.
488 3069532
>>069314
Посмарел твой DI контейнер. Мне кажется стоило начать со сценариев его использования. Тогда было бы проще понять что он должен уметь и зачем. Например, довольно быстро пришло бы понимания, что регистрировать в нем каждый класс это дело очень заебное. И надо бы какой-то авторезолвинг прикрутить.

По коду отписал тут
https://github.com/bcchicr/student-list/commit/f644ad083dcf54e01a348872556ac5fc2f058eb2#diff-01c0bcde8fbc53292e14349c599a302c50ce6749dabf213648fb2051ca1d73a0R46
Если кратко, то начало бодрое, код нормальный. Но к концу ноги явно заплетаются и начинается путаница. Еще пару классов в эту структуру и все - сам бы хуй разобрал что там куда. Явно надо сначала набивать руку на чем-то более понятном, без когнитивного оверхеда в виде рефлексии и анализа кода.
489 3069547
>>069532
Благодарю, ценные комментарии.

>Но к концу ноги явно заплетаются и начинается путаница.


Да, так и было. Где-то ночью параллельно с написанием курил PSR-11, смотрел реализации на packagist и читал статьи на тему.

>Мне кажется стоило начать со сценариев его использования.


Я решил приложение в впринципе писать послойно с самых низов. Начал с создания среды в докере. Далее в планах написать свои простенькие ORM, фронт контроллер и остальное, что понадобится.
490 3069561
>>069547
Но начал не с самых низов, лол.
Где само "приложение"? Где конфиг? Обертка над глобальными массивами PSR 7 и 15?

Я уже заебался постить это видео. https://www.youtube.com/watch?v=pz6VdH4_BSg
Посмотри, чтобы лучше понимать структуру приложения и самое главное, почему она стала именно такой.
491 3069566
>>069443
Какой же ты умный...

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 начнёт переносить строки. Хотя мне чё с этого?
Screenshot 2024-03-01 183922.png26 Кб, 412x552
492 3069567
>>069566
Пчел. Я запостил тебе код, который запустил на своем компудахтере в своем браузере. Че ты несешь вообще?
493 3069573
>>069561

> Где само "приложение"?


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

За видео спасибо. Не пожалел, что отписался в тред.
494 3069591
>>069567
Зачем ты влезаешь, если не понимаешь, о чём идёт речь?
Часть онлайн-сервисов посылает результат выполнения скрипта в textarea через value, \r начинает считаться переносом строки. Другая часть посылает результат в pre через textContent, в результате \r просто отбрасывается.
Всё.
495 3069599
>>069591

>онлайн-сервисов посылает


Шиз. Посылает куда? Кто тебе "рисует" эти "переносы"?
496 3069755
>>069291
Щи то поделать, десу.
Сейчас такое время, джунам битрикс подсовывают.
497 3069776
>>069755

>джунам битрикс подсовывают.


Это мне мухосранск подсунули где один битрикс поэтому выбора нет кроме битрикса
scale1200.png226 Кб, 620x505
498 3069838
>>069776
мы обязательно перейдем на нормальный стек, бро...
499 3069842
>>069838
ето да
16032992225320.jpg71 Кб, 811x608
500 3070064
Как понять, что бекэнд программистом на PHP уровень "мидл" уже пройден и ты уже "сеньёр"?

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

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

По сабжу сам также как и ты. Лет 8 пердолюсь с пыхой, каких задач только не решал, но постоянно ощущение, что я джун джунович. А потом мне попадается чужой код и я ловлю фейспалмы. Вспомнил стори: подселили к нам зумерка фронтендера, а я во фронте вобще не шарю, но этот еблан вме мозги мне выебал, пришлось учить его и постманом пользоваться и пост запросы на сервак отправлять. Проработал у нас пол года где-то и ушёл. Через пол года я глянул его аккаунт, а там он о себе написал: senior software developer. С тех самых пор мне всё стало понятно со всеми этими петушиными определениями
502 3070095
>>069838
В конечном итоге так и происходит, студии которые перерастают во что-то большее отказываются от этого говна, потихоньку избавляясь от тех кого они сделали и кто у них там на поддержке. А вот всякие говнари плотно утопают в этом болоте.
503 3070170

> троллинг тупостью

изображение.png50 Кб, 764x550
504 3070383
function (int $a, mixed ...$args) {}

Как правильно назвать $args? Вот список аргументов - он переменной длины. А как дать понять, что $args - тот самый аргумент, который, на самом деле, может быть любым количеством аргументов?
В JS есть термин "остаточный аргумент". Но по этому словосочетанию находятся только статьи про JS, а если ввести "php остаточный аргумент", то такой лулз. Хотя, по запросу "php rest argument" уже что-то находится, но хз, как будто какого-то официального(тм) названия у таких аргументов нет, и каждый называет их как хочет.
505 3070438
https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list
Многоточие в сигнатуре уже показывает, что функция принимает переменное количество аргументов.
506 3070634
>>070064
Развел сопли на пустом месте. Ты взрослый мужик. Цени свои навыки, будь открытым к тому, чтобы делать что-то иначе и все. Пишешь код и платят? Значит все норм. Видишь что кто-то пишет лучше тебя - сиди разбирайся почему его код лучше, чем твой и как сделать свой код таким же.
507 3070929
Пацаны, подскажите, хочу сделать md-файл, выложить его на github, но так, чтобы справа была вкладка с содержимым моего md-файла, т.е. с якорями. Что писать в самом файле, чтобы сделать такую вкладку?
изображение.png70 Кб, 1336x420
508 3070936
509 3070999
>>070936
Разве так сложно называть вещи своими именами?

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

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

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

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

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

>Там просто ерунда написана.


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

>А у тебя процесс исследования и проектирования идет.


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

Что произойдет с тестами этих исключений когда ты нормально все напишешь? Правильно - это мусор, который вылетает в помойку. Отдельный вопрос: зачем вообще тестировать исключения. Тебе три человека пять вариантов высрут что и как надо тестировать.
513 3072489
>>070999
Лол. Ты не поверишь, но это код компонента, который считается ЭТАЛОНОМ как надо писать в битриксе. Его всегда приводят в пример "чистого" кода. Так что это ты что-то не понимаешь, уж разработчикам кора битрикса виднее.
never-give-up-bitrix.png1,5 Мб, 2799x1649
514 3072508
>>072489
Конечно поверю.
Пикрелейтед именно я делал, если че. Видел некоторое дерьмо.

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

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

Если хочешь прям подробно разобрать, то это надо экран стримить и схемы рисовать. Заходи в дискорд, расскажу покажу. https://discord.gg/YV4CxgGaah Так по комменту сто раз переписывать - ты либо вообще забьешь в итоге, либо месяц потратишь.
517 3072991
>>034858 (OP)
Какой смысл добавлять DTO, только потому что конструктор класса принимает 5 параметров от пользователя?
518 3073190
>>072991

>DTO


Значение знаешь?
519 3073248
>>073190
Data Transfer Object - Объект передачи данных. Но нафига мне создавать DTO?
520 3073277
>>073248

>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?


Тебе и не надо. Тебе надо создать структуру данных с конфигурацией создаваемого объекта.
Кто ж виноват что в говноязыке только две возможные структуры: объект с кучей лишней хуйни и массив без типизации и контроля содержимого.
521 3073462
>>073277
А в го как там?
522 3073471
>>073462
А в го нет никаких конструкторов.
523 3073571
>>034858 (OP)
Можно ли в DTO использовать значение по умолчанию в конструкторе или где-то еще?
Вообще где-то можно найти адекватный пример простого DTO?
524 3073628
>>073571

>DTO


Значение знаешь?
525 3073643
>>073471
Ох и goвно
526 3073791
>>072508

>сравнивать CMS и фреймворк


>шёл 2k25...


Ебало?
16792914653930.jpg18 Кб, 246x250
527 3073794
>>073791

>вордпресс


>битрикс


>CMS и фреймворк


>Ебало?


Мое ебало пикрелейтед.
528 3073841
>>073628
Нет, не знаю
529 3073859
Какая же поганая у Фабьена книга. Нет, чтобы подробно написать про свой фреймворк и расписать как им пользоваться, он пишет всякую левую дичь. Вот только про гиты, докеры и сервера написано много книг, а про Симфони никто больше не пишет.

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

Фабьен, говнюк! Что толку с твоей книги если ты не приложил к ней инструкцию как читать? Вкатуны вкатиться не могут, паскуда.
531 3074416
Щас бы блядь читать книги по программированию, это каким дауном нужно быть
532 3074417
>>074246
Я много книг читал по программированию и у него очень плохо всё написано. Он буквально даже не пытается объяснить код, который приводит в книге. Видимо, читатель должен как мартышка его переписать и восхищаться гением Фабьена. Либо читатель уже всё знает, но тогда нафига нужна его книга? Конкретно про пагинацию, выдаёт функцию с каким-то монструозным кверибилдеров. Что там за параметры? Да даже объяснил бы саму концепцию этих таких билдеров. Если бы я до этого не читал книжки по джаве, то вообще наверно бросил изучение симфони. Тут хотя предыдущий опыт позволяет не дропнуть, а поискать в других местах объяснения. И вот другие почему-то объясняют все эти штуки, хотя они не авторы фреймворка, а рядовые программисты.
533 3074427
>>074416
Какие ещё варианты? Документация? Она тоже ничему не учит, а скорей справочник для тех, кто уже знает, но забыл.
Видосики? Они тоже разного качества и не покрывают всех тем. Да и времени отнимают гораздо больше, чем чтение книги. Также проблема видосиков, что сложно сделать закладки и вернуться к прошлым темам. Некоторые снимают сразу по 1-2 часа, поди потом найди момент, где он объясняет нужную тему.
534 3074452
>>074427

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


Я пишу себе конспекты.
535 3074464
>>074417

> Да даже объяснил бы саму концепцию этих таких билдеров.


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

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

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


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

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

Охуеть просто, еще расскажи что ты словарь до буквы "ж" дочитал и чет концепцию не понял.
536 3074466
>>074464

>перед сном читаешь


Да, перед сном лучше запоминается
537 3074467
По каким книгам, курсам лучше учить продвинутые темы из роадмапа из шапки? Кеширование, безопасность, архитектура, брокеры сообщений, масштабирование под нагрузкой.
538 3074472
>>074466
Запоминается что? Концепция квери билдера? Если у тебя деменция, то надо инвалидность получать и мелкую моторику развивать. Лего купи, кубики.

Имаджинирую ебало плотника, который утром купил себе за 100к охуенный фрезер чтобы четкие фаски делать. А на следующий день забыл что это и нахуя это ему.
539 3075158
Подскажите правильный синтаксис
540 3075191
>>075158
Как вы заебали со своим ?>
541 3075192
>>075191
А что не так?
542 3075194
>>075192
не нужон
наведи на него мышкой
543 3075244
>>075192
Массивы через array() создаешь?
544 3075246
>>075158
А по синтаксису: нахуя ты открывающую скобку перед insert поставил?
545 3075248
>>075246
Да и стринговые значения нужно в кавычки брать, а у тебя они не в кавычках
546 3075249
>>075248
Да и вместо mysqli используй pdo
547 3075282
Попробовал только с именем и фамилией такое пишет, что не так то? Всё по документации
548 3075294
>>075282
А всё, надо было в одинарные кавычки переменные поставить
549 3075303
>>075294
Хуесос, читай что тебе пишут, залупа тупая. >>075248
И пиши код нормально. Почитай про per-2 хотябы, говно
550 3075406
>>075303
Зачем ругаешься?
551 3075409
>>074472
А вот представь инструкцию к фрезеру, если бы её написал Фабьен? Там наверняка бы было описано про то, как валить деревья, сплавлять их по реке, а в конце он был оставил изображение своего изделия, выполненное с помощью фрезера, но про то, как пользоваться фрезеров - ни строчки.
17096899210760.png63 Кб, 617x829
552 3075428
Индекс вката по РНР совсем просел. Сейчас уже не вкатиться в РНР?
553 3075451
>>075409
Ты не поверишь.
https://www.fit-instrument.ru/files/instr/80597_instr.pdf

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

Это сколько же вкатунов в столярку "бросили изучение" когда купили фрезер и попытались прочитать инструкцию. А там СЛОЖНА. Ниче НЕПОНЯТНА. И к тому же, вот это блядь наглость, нет встроенного курса по теории столярного дела и машиностроения.
554 3075880
>>034858 (OP)
Как можно описать в OPENAPI swagger два варианта response? То есть роут может принимать флаг, в зависимости от этого флага роут вернут либо одно тело, либо другое.
556 3075989
>>075406
Не читаешь нихуя
изображение2024-03-07114841681.png227 Кб, 1000x340
!6Applef0d2 557 3076088
>>070064
Если в компании нет грейдовой системы, сам предложи ввести ее. У каждой компании свои понимания о том, кто сеньер. Я только в двух компаниях проработал, и в обоих навыки сеньера выходили за рамки "я разработчик - пишу код". На пике плохой пример. У нас были указаны конкретные навыки и опыт работы с определенными продуктами. По каждому пункту требований мы коллективно тесты создали еще.
558 3076091
Стоит ли заменять GET-параметры в URL на красивые параметры через слеши? К примеру,
index.php?action=show&page=2&orderby=ASC
на
/show/2/ASC

Как быть, если некоторые параметры являются необязательными, но после них пойдут другие параметры?
Вообще, имеет ли смысл упарываться и менять их? Может вполне нормально оставить GET'ы?
559 3076095
>>076091
У нас были проблемы с ботом гугла. Он писал, что у нас по разным ссылкам одиа и та же страница открывается.
560 3076132
>>075428
Чел, вкат давно всё, сейчас здесь те кто занимаются этим как хобби
561 3076257
>>076132
Манямирок. Дохуя вакансий для бомжей на 15-30-50к, если ты вкатун, то отработаешь пол года - год и попиздуешь на новую работу, но уже с опытом и нормальной зп
562 3076275
>>034858 (OP)
Как работает тегированный кеш в битриксе? Допустим я вынул информацию о товаре из разных таблиц. Цена находится в одной таблице, отзывы в другой. Тегированный кеш будет iblock_id_59.
Допустим кто-то добавил отзыв для этого товара. Кеш сброситься (для всех полей или только для поля отзывы?). А как битрикс определяет, что этот отзыв относится к этому товару и кеш этого товара надо сбросить?
563 3076282
>>076275
Или что, если изменить цену для одного товара, то обновится кеш для всех товаров инфоблока iblock_id_59?
Хотя все равно не понятно, как он отслеживает конкретне поле
564 3076294
>>076282

>Хотя все равно не понятно, как он отслеживает конкретне поле


То есть в таком случае понятно
565 3076335
>>076257

>Дохуя вакансий



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

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



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

>-30-50к



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

Покормил
566 3076384
>>076335
Надо учить гошку и крутить опыт на РНР. На собесе всё равно за РНР не спросят, поэтому для успешного вката надо только гошку нормально выучить.
16817438744090.png107 Кб, 247x291
567 3076567
>>076384

>На собесе всё равно за РНР не спросят

568 3076614
>>076567
Гошники не знают РНР, поэтому можно крутить опыт РНР и не палится, что не знаешь РНР.
569 3076776
>>076132
Вой о том, что вкатиться уже нельзя когда-нибудь прекратится?
Всегда, когда речь о программировании, придет хотя бы один человек, который будет заливать одно и тоже. И похуй, истину или ложь он заливает, просто этот ор уже невыносимо читать.
4534534534t.jpg161 Кб, 1280x720
570 3076810
>>076776
Пчел. Я до крымнаша, на третьем курсе, пошел искать подработку. Написал в резюме: писою, какою, жопу вытираю сам, уверенный пользователь эвм, ЗНАКОМ с пхп, знаю что такое джойн.

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

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

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

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

Вкатопокалипсис в айти уже случился. Пикрелейтед отклики на вакансию "1-2 года опыта". Возможен ли при этом вкат? Фактически да: вся тысяча джуновских вакансий в этом году будет закрыта. А статистически нет: вероятность просто приглашения на собес для вкатуна сегодня меньше процента.
Так что сиди, трясись и жди очередных выборов.
571 3076845
>>076614

>палится


Уроки доделал, гошник?
572 3076865
Кто-нибудь может простыми словами объяснить что такое Service Providers в ларке?
573 3076867
>>076810
Фактически да: вся тысяча джуновских вакансий в этом году будет закрыта.
Конечно, кул стори, Боб, но все же. Читал в комментариях, что люди приходили на должность джуна по php, а по итогу не могли даже сказать про передачу переменной по ссылке или чем отличается абстрактный класс от интерфейса. Я все-таки считаю, что если нормально подготовиться, не лукавить, основательно вникать в темы, то все же есть шанс вката.
574 3076877
>>076867

>вероятность просто приглашения на собес для вкатуна сегодня меньше процента


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


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

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

Можешь глянуть сей видос, там мужик всё нормально пояснил: https://youtu.be/VYPfncvYW-Y?si=NVNBbriDxNk_3MoL
576 3076899
>>076884
Спасибо, анонче. Обязательно гляну видео.
577 3078113
>>075158
Юзай линтер!

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

Кароче не успел я сделать задание на этой ебучей стажировке. Сгорел. Не хочу больше никогда заниматься битриксом. Может в других фрейворках так же трудно, но в них я готов жрать говно, потому что это всемирно признанные стандарты. А битрикс это отечественный кал!!!!!!!
579 3078257
>>078113
Ларавель учить проще, потому что по нему больше учебных материалов. В Симфони придётся выискивать инфу по крупицам. Сам вот сейчас застрял на полиморфным связях в Доктрине и не могу продвинутся уже неделю. Думаю, что зря взялся за Симфони, надо было не выделываться, а учить как все Лару.
580 3078309
>>074467
Отус
581 3078345
>>078309
Это круто если у них учишься, а если смотришь слитые видосики, то толку ноль, потому что нет практики и задания в видосиках они не разбирают. Надо такой курс, где в одном видео дали задание, а в следующем его разбирают как правильно сделать.
582 3078634
Вы перекат будете пилить?
583 3078892
Бля, где взять документацию симфони на русском? Пару дней назад открывал symfony.ru но сейчас он наелся и спит
584 3078975
>>078257
Что не понятно по полиморфным связям?
585 3078977
>>078892

>symfony.ru


Вроде работает.
586 3078979
>>078345
Только так и надо делать курсы. А теорию можно и самому почитать. Что толку смотреть как тебе рассказывают про синтаксис, это полная чепуха, а не обучение!
587 3079075
>>078892
ПКМ -> перевести страницу
589 3079216
>>063770
Уж лучше задротить по 100 часов в неделю в норм фреймворке, чем дельфинчиком жрать говно!!!
590 3079572
ОП, как дела?
Ты - один из немногих нормальных людей, которые тут отписывались.
Без твоих ответов тред совсем болотным выглядит.
Одни токсики сидят.
591 3080827
Поставил по учебнику 9 ларавель и лара/ui без указания версии - запустил на локалке - сломалось всё к хуям, насрало ошибками.
Поставил последний ларавель с ui - все работает.

А как мне такое фиксить если мне на работе скажут пили проект на ларе старой версии какой нибудь, как я буду ебаться со всеми этими пакетами, подбирать версии что бы все работало ?
592 3080885
>>058828
создаешь папку Service(s) и ебашишь туда свое говно
опционально создаёшь папку Repository и получаешь копрокопию доктрины
593 3080929
>>080827
Никак.
Ты проснешься, обоссавшись и обосравшись, в мамкиной квартире на проперженном диване. Никакой "работы" у тебя нет и не будет. Ты просто фантазируешь как ты куда-то там "вкатываешься" чтобы окончательно не поехать кукухой от такой жизни.
594 3080934
>>080827

>как мне такое фиксить


перекат в симфони бля буду там таких проблем нет ты актуальную версию хотя бы посмотреть в сосотоянии?
595 3080935
>>080929
Откуда ты узнал что он спит на диване? Я тоже сплю на диване /spoiler]
596 3080954
>>080935
А сидишь на стуле. А еще ты сегодня дрочил.
Телепатия - страшная штука. Особенно в руках пхп программиста. Он, как человек к говну близкий, очень остро ощущает животные эманации.
597 3080968
>>080929

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


Жиза.
598 3081046
Вкатун. Только сейчас понял, что никогда не отправлял HTTP-заголовки, только отдавал коды ошибок. Я даже не представляю как это происходит. Насколько критично, пацаны?
599 3081068
>>081046
Просто изучай и не думай лишнего. Как время придёт - сам по себе вкатишься и не заметишь. И не задавай больше глупых вопросов, для них придумали ChatGPT 4.0!
600 3081394
>>081068

> не задавай больше глупых вопросов


С каких пор пыхари стали вумными ?
601 3081399
>>081046

>никогда не отправлял HTTP-заголовки


Ты когда пост написал - отправил заголовок на сервер двощей с телом сообщения.
602 3081490
Bind for 0.0.0.0:443 failed: port is already allocated

services:
web:
image: nginx:latest
ports:
- 443:443
- 80:80
volumes:
- ./html:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
image: php:7.4-fpm
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: example
MYSQL_USER: example
MYSQL_PASSWORD: example
volumes:
- ./db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: example
602 3081490
Bind for 0.0.0.0:443 failed: port is already allocated

services:
web:
image: nginx:latest
ports:
- 443:443
- 80:80
volumes:
- ./html:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
image: php:7.4-fpm
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: example
MYSQL_USER: example
MYSQL_PASSWORD: example
volumes:
- ./db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: example
603 3081524
>>081490
У тебя на хосте какая-то программа уже заняла 443 порт. Возможно у тебя запущен веб-сервер.

> ports:


> - 443:443


> - 80:80


Проще всего будет пробросить контейнер на другие порты. Или остановить программу, занявшую порт.
604 3081562
>>081524
А как узнать кто порт юзает? И какими можно заменить которые точно свободны?
605 3081618
>>081562
Загуглил бы, анон.
# lsof -i -P -n | grep LISTEN
под виндой netstat -a -b
606 3081985
Как сделать чтобы ебаный докер композер запускался без рута? В гугле и в документации ни один способ не помог
607 3082332
>>081399
Имелось ввиду руками. Самому написать php-код, который отдает заголовки.
608 3082495
>>081985
Там надо в группу докера себя прописать
609 3082555
Технически, в родительской функции можно объявить функцию-потомка, а в функции-потомка объявить функцию-внука. И сделать между ними цепочку вызовов. Типа:

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

mailach();
}

sosach();
}

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

Правильно понял? Если да, то нахуя так можно делать вообще? Прост? Способ выстрелить себе в ногу? Или для сабжа есть какое-то реальное применение?
610 3082712
>>082555

>Способ выстрелить себе в ногу


А как ты выстрелишь ? тебе компилятор ошибку выдаст что функцию нельзя объявить 2 раза. А так у тебя есть анонимная функция и static.
quote-i-m-not-a-real-programmer-i-throw-together-things-until-it-works-then-i-move-on-the-rasmus-lerdorf-82-6-0602.jpg79 Кб, 850x400
611 3082719
>>082555

>Но это абсолютно бессмысленно и приведёт к тому, что dvach и sosach можно будет вызвать только 1 раз


Каво? Ты можешь ОБЪЯВИТЬ функцию только один раз. А вызывать можно сколько угодно. https://3v4l.org/H9XQI

>нахуя так можно делать вообще? Прост?


Пик стронгли релейтед.
Снимок экрана в 2024-03-12 13-33-47.png19 Кб, 421x236
612 3082848
>>082495
Спасибо помогло. Но почему докер композе все равно создает папку html и bd с доступом только для рут пользователя? Я даже создавать и редактировать там ничего не могу если IDE не из под судо запущено
613 3082894
>>082848
Если внутри контейнера всё выполняются от рута, то он и создаёт файлы с правами рута.
изображение.png41 Кб, 1014x360
614 3083170
Не совсем понял, в чём смысл запрета на callable в качестве типа свойства. Пикрелейтед, да, действительно, не очень понятно, как быть в этой ситуации. Но ведь Closure::fromCallable позволяет всё-таки это сделать, как бы проигнорировав то, что method приватный. Если бы вместо Closure созданного Closure::fromCallable был callable, что бы изменилось?
615 3083243
>>083170

>Closure::fromCallable


Closure фиксирует контекст и гарантирует правильное выполнение функции.
616 3083292
>>083243
Да, в большинстве случаев нужен Closure и он даёт больший контроль. Но ещё что - аргумент метода всё ещё может иметь тип callable. В чём профиты?
617 3083815
>>083170
Проблема не в том можно или нет выполнить приватную функцию снаружи. Ну нет и нет, на то она и приватная.
Проблема в том что в зависимости от ситуации ТИП МЕНЯЕТСЯ НАХУЙ https://3v4l.org/O8C70

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

https://3v4l.org/Pl4ec

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

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

Правильно понял?
619 3084178
>>084175

> типизация аргументов - 5.0.0


> типизация свойств класса - 7.4.0

620 3084179
>>084178
Не дописал и отправил.

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

В этом языке говна - лет десять вычерпывать, если прямо сейчас сесть фиксить. Так никто садиться и не собирается. Ты к вкусу привыкай и рвотный рефлекс учись контролировать.
622 3084231
>>084214
А вот и нихуя. По сути, может, и так, но с датами я серьёзно обосрался. В 5.0.0 появилась типизация аргументов, да. Но типом могло быть только имя класса. И было оно так до 7.0.0, которая релизнулась 03.12.15. Типизация свойств класса появилась в 7.4.0, релиз 28.11.2019.
Так что спрашивать нужно, где вы были 4 года назад.
623 3084280
Обязательно делать отдельный класс под Response, который возвращается из сервиса в контроллер или можно просто массив бахнуть? Просто если под каждую сущность контроллер с 4 методами, то получится дофига этих классов Response. Вроде простой круд на 3 кнопочки, а классов в нём дофигища.
624 3084293
>>084280
Подключи PSR-7 совместимую библиотеку и пользуйся.
625 3084324
>>084280
Из сервиса в контроллер возвращается результат работы сервиса. А Request и Response это часть представления вообще. Response это буквально то что ты возвращаешь пользователю: заголовки, куки, Html или json в body.
626 3084385
>>084324
Вот вы тут говорите - книги не читай. А на деле без книг не понятно как правильно это всё писать. Я вот из интернета вычитал этот совет, что сервис должен возвращать специальный объект, а контроллер должен состоять из одной строчки типа:
$service->getResponse();
Ещё можно сверху её обернуть какой-нибудь функцией типа сделать жсон и отправить через return.
627 3084396
>>084293
А Симфони разве не поддерживает PSR-7? Мне казалось, что именно симфонисты и создали эти стандарты, а значит в симфони они уже реализованы.
628 3084405
>>084385
Где ты это прочитал? Ссылку дай.
629 3084426
>>084405
Вот этот мужик насоветовал:
https://youtu.be/v-VxZ0NpMxs?si=ArTsxhTVBTDYH-Z-&t=250
630 3084446
>>084426
Бляя... Какой же лютый кал. На моменте когда он рядом с папкой Entity создал папку Model я кофе поперхнулся.

Согласен, автор не имел ввиду Response как ответ на Rerquest. Он просто долбоеб и лепит постфикс Response как обозначение того что функция результат возвращает. IdResponse ебать. Давно так не угарал.
631 3084480
>>084280
Если это круд на 2 с половиной пука, то можно и логику в колбеках маршрута делать и это не будет являться говном, говном будет являться, если ты на три пука обмазывать абстракциями/паттернами/псарами начнешь. Но это справедливо если ты уверен, что проект не будет расширяться
632 3084487
>>084385
Вот поэтому книги читать и не надо, а если точнее, то не нужно полагаться на них. Читать нужно, про технические возможности, а как правильно делать приходит онли с опытом
633 3084547
>>084446
Дак где черпать инфу? Книги читать нельзя, а в интернетах лютый кал.

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

>>084487
Хорошо, где взять этот опыт, если без опыта на работу не берут? Я вот более чем уверен, что с толстыми контроллерами меня не возьмут.
634 3084558
>>084547

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


Нельзя. Но если у тебя получается толстый контроллер, то это не приложение на 2 пука

> Хорошо, где взять этот опыт, если без опыта на работу не берут?


Проблемы гоев
635 3084562
>>084558
Естественно, у меня серьёзный пет-проект. Я вот и хотел разобраться как надо писать в солидных проектах, но книги вы не разрешаете читать, а годных материалов из интернета не скидываете. Самому весь этот многолетний опыт программирования не придумать.
636 3084563
>>084562
Если у тебя солидный пет проект на ларе - открываешь доку лары и читаешь куда, как и какие куски логики распихивать. Но если у тебя нет опыта, ты всеравно ничего не поймешь
637 3084565
>>084563
А если на Симфони?
638 3084569
>>084565
Тогда сначала придется отмыть рот от говна
639 3084571
>>084547
Нигде. Книги тебе запретили, в тиктоках лютый кал. Остается только завалить ебало и катиться в сторону дота-треда.

Че ты услышать хочешь? Искать где "не говно", нюхать самому, спрашивать заядлых говноедов. РАБОТАТЬ НАДО блядь. Мозгами шевелить. Профессия такая.
640 3084575
>>084571

>Че ты услышать хочешь?


Хочу услышать: держи, анончик, ссылочку, там рассказано как надо делать правильно.
642 3084785
https://3v4l.org/jOYBW

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

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



Или там какая-нибудь такая хрень, что она уничтожается, но при следующем вхождении в функцию, её прошлое значение откуда-то берётся?
643 3085337
>>084785

>Или традиционное


А потом удивляются: разве может язык плодить долбоебов? С ними наверное просто сразу что-то не так было, правда?

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

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

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

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

И он хуярит. С блаженной улыбкой на обескровленных губах покойника, он плетет паутину безумия. Глобальные переменные, хаки, классы в классах. Он сравнивает даты запросом в базу и переопределят значения true и false. Он гасит и зажигает солнца. Этот богомерзкий язык дает ему власть над самим мирозданием. Власть сеять хаос в сердцах людей. Власть распространять скверну, поразившую его самого. И темные апостолы - создатели и рабы этого богомерзкого языка. Возносят ему богохульную молитву. Они жаждут чтобы их создание множило энтропию вселенной, пока не наступит вечная холодная тьма, вечное ничто.
643 3085337
>>084785

>Или традиционное


А потом удивляются: разве может язык плодить долбоебов? С ними наверное просто сразу что-то не так было, правда?

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

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

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

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

И он хуярит. С блаженной улыбкой на обескровленных губах покойника, он плетет паутину безумия. Глобальные переменные, хаки, классы в классах. Он сравнивает даты запросом в базу и переопределят значения true и false. Он гасит и зажигает солнца. Этот богомерзкий язык дает ему власть над самим мирозданием. Власть сеять хаос в сердцах людей. Власть распространять скверну, поразившую его самого. И темные апостолы - создатели и рабы этого богомерзкого языка. Возносят ему богохульную молитву. Они жаждут чтобы их создание множило энтропию вселенной, пока не наступит вечная холодная тьма, вечное ничто.
644 3085434
>>085337
Работу на го уже нашел?
645 3085435
>>085337
Скажи мне какой ЯП не говно и почему оно не говно. И почему пхп говно, а этот ЯП не говно.
646 3085490
>>085435

>И почему


Сначала ты ответь. Почему так? https://3v4l.org/T61fE
647 3085565
Я вот не понимаю, чего гошники лезут в этот тред? Мы что ли виноваты, что их на работу не берут без опыта на пхп?
648 3085666
>>085490
Потому что в феврале нет 31 числа?
649 3085702
>>085666
Ты настолько же объебанный, как и автор этой функции? Откуда ты нахуй взял вообще 31 число? И как это транслируется в смену даты? И какого хуя еблан с двачей об этом подумал, а создатель языка нет?

Ладно, хуй с ним с числом.
Почему разница во времени между Europe/Amsterdam и Europe/Moscow один час?
650 3085751
>>085702
Ты какой-то буйный. DateTimeImmutable в date выводиться полная дата с временем. То что ты указываешь createFromFormat лишь означает какие данные он возьмет из строки. Всю недостающую информацию о дате он возьмет из текущей даты.

>Откуда ты нахуй взял вообще 31


Почему ты не задумываешься откуда он берет "15:45:49.000000" при выводе date?

>Почему разница во времени между Europe/Amsterdam и Europe/Moscow один час


Потому что они переводят время наверное.
651 3085772
>>084231
Зандстра всё давно расписал. Что-то не устраивает - иди жуй гавно в битрекс.
652 3085792
Что не так с докером? Запускаю - все нормально открывает, через некоторое время открываю ту же тсраницу - пишет не найдена. Стопаю запускаю все завново - ничего не найдено. При этом ничего не меняю, просто работает когда хочет
653 3085799
>>085792

>когда хочет


У докера нет своей воли, глупыш. Должна быть объективная причина, постарайся ее найти.
654 3085836
>>085799
Нашел, оказывает порт 8080 и 80 это разные вещи
655 3085852
>>085751

>Всю недостающую информацию о дате он возьмет из текущей даты.


Вот именно это я и имел ввиду. Изъебанный этим уродливым подобием языка мозг давно превратился в комок гноя и месива из раковых клеток.

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

>наверное.


Язык "наверное", язык "может быть", язык "завтра заработает".
А давай без "наверное"? А давай ты сначала будешь проверять плоды своего скудоумия, а уже потом будешь срать ими в тред? https://3v4l.org/H4TTm
656 3085859
>>085852

>какого хуя к ПЕРЕДАННОЙ дате лепится ТЕКУЩАЯ?


>Immutable


Значение знаешь?
657 3085866
>>085859
Объебышь, ты слепой? https://3v4l.org/T61fE
658 3085869
>>085852
Ну ничего. Побугуртишь-побугуртишь, да и заматереешь. Будешь потом таких же маленьких бугуртышей уму разуму учить. Ты разибрайся главное.
659 3085878
>>085869
>>085337

>Этот язык делает из людей скавенов. Уродливых созданий с таким же уродливым и извращенным мозгом.


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



>Ну ничего. Побугуртишь-побугуртишь, да и заматереешь.


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



Этот тред. Эта сточная яма. Поддон под /б и дотатредами, в который стекает самое тупорылое, самое гнилое что есть на харкаче.
660 3085920
>>085878
Это ты тупой, а мы не тупые
661 3085928
>>085920
А с опарышами как?
662 3085941
>>085565
Да это один поехавший уже который тред рвется и каждый раз обсирается
663 3085961
>>085941
Мне кажется он гошник, но вынужден учить пхп. Думает, раз написал пару хеллоуворлдов на го, то по определению умнее любого пхпшника. А на деле же тупее стажёра пхпшника, так как не в языках дело.
664 3086001
Подскажите конфиг для default.conf Nginx в докер композ, юзаю такое, но чет мозги ебет:
server {
listen 8000;
index index.php index.html;
root /var/www/public;

index index.html;

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

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

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
665 3086022
>>086001
Норм конфиг. Только хуй получишь айпи клиента. Сам ебался с этим, заебался блядь
666 3086026
>>086022
Мне для локалхост, почему-то не открывает register.html в рабочей папке, а index открывает
Снимок экрана от 2024-03-14 15-54-36.png15 Кб, 970x125
667 3086106
Напомните какой правильный синтаксис
668 3086173
>>086106
За двойные кавычки Альберт сразу кол ставит и домашку дальше не проверяет.
669 3086206
>>086173
С одинарными тоже ошибка
670 3086215
>>086106
>>086206
Попробовал через Опен сервер, все правильно и работает, я так понял докер ебаный не может нормально запустить контейнеры то ли с пыхой, то ли с мускулом. А ведь с этим говном ещё и работать...
671 3086243
>>086215
Хз, проверил. Нормально докер запускает и пыху и мускуль. Наверное дело не в докере
672 3086285
>>086215
Ты бы хоть коды ошибок показывал. У тебя контейнер с php и контейнер с базой в одной сети находятся? По какому адресу ты открываешь соединение?
673 3086303
ПЕРЕКАТ!
ПЕРЕКАТ!
ПЕРЕКАТ!

https://2ch.hk/pr/res/3086299.html (М)
674 3087789
Зачем перекатывал человек, который не умеет перекатывать и который зачем-то поменял шапку?
675 3087790
Уж лучше сидеть в этом треде, потому что он кажется легитимным. И ждать нормального переката.
676 3087798
Блять...Год учу php, только сейчас понял, что строка запроса это то, что идет после знака вопроса в адресе, а не просто часть URL-адреса после указания схемы и сервера.
677 3088633
>>087789
Потому что вы уже 200 постов перекатить не можете. Жри, что дают или перекатывай правильно, сам
678 3088921
>>080827
Ну вот да. Требуется (вот требуется, хоть хуем по лбу стучи) установить Ларавел 8, например. Ты его ставишь. Потом ставишь все пакеты, указывая точные версии нужных пакетов. Да, всё устаревшее. Да, будут проблемы, типа надо подключить платёжку, а она версии 1.4 минимум, и если поставить 1.3, то сервер платёжки пошлёт нахуй, но 1.4 ставится только на Ларавел 9. Поэтому ты будешь ВЫНУЖДЕН сопрягать это дерьмо, вплоть до ковыряния в потрохах vendor. Ладно, шучу, просто вдумчиво разбираешься в работе этого пакета, находишь отличия версий и пишешь прокладку-переопределялку. В общем, велкам ту геморрой. Впрочем, как правило старые пакеты прекрасно работают и так. Проблемы начинаются, когда приходится работать со сторонними сервисами, написанными хипстерами, у которых каждые полгода радикальные обновления и старые версии не поддерживаются.
679 3089054
Учу php год где-то. Знаю основы php, html, css, git, composer, laravel, mysql. Выполнял только список студентов, т.е. могу поднять локальный сервер и на чистом php сделать сайт. Но как-то ссыкотно искать вакансии, пытаться пробовать, хочется дальше зарыться в изучение программирования.
680 3089056
>>088633
Считаю лишним перекат при 500-600 постах. Можно и до 1000 ждать.
681 3089462
Как же мне лень заниматься вёрсткой. Даже банально украсть чужой лендинг лень. Не хочу ковыряться в их стилях, не хочу разбираться в их классах, но и не хочу с нуля все писать. На работе всегда был готовый css и стили, которые просто притягивал для новых живое. Но для своих проектов так день этим заниматься. Что делать?
682 3091401
>>089054

>ссыкотно искать вакансии


загугли 100 вопросов, хорошо выучи, пока не сможешь ответить почему нужно не:
try { $hrukayushiyService->hruknutWithDanger(); } (\Throwable $e) {} (\RuntimeException $e) {}
а try { $hrukayushiyService->hruknutWithDanger(); } (\RuntimeException $e) {} (\Throwable $e) {} и иди штурмовать работадателей. Пыхо собесы не очень душные даже в приличные места
683 3091406
>>089056
мы не джэва, а молодой-перспективный-быстро развивающийся язык, нам нельзя как же хочется дженерики и многопоток, а не синтакисческий сахар...
Untitled.jpg6 Кб, 259x194
684 3097579
Слононы, подскажите видеокурс по пыхе более-менее актуальный (т.е. 8 или 7 версия) где делают проект и затрагивается как можно больше языка и стандартной либы.
Что-то аля как пикрил, где все вершки рассматривают, чтобы потом уже за корешки идти тянуть.
685 3101718
Как стать Битрикс веб-программистом за 50к в месяц, сколько лет надо учиться? Спасибо
686 3103520
>>097579
Для совсем новичков у ларика есть годный курс на торрентах. Если именно видео-курс по языку, тогда Program with Gio на ютубе. Если учиться кодить нормально, тогда подписка на Хекслете за 4к в месяц, ничего лучше нет
687 3103571
>>081985
Пропиши в докер-композе
php:
user: ${USER_UID}:${USER_GID}
А эти хуйни задай по 1000 в енв-файле. Тогда он по идее должен будет мапить на твоего пользователя. Но если используешь docker engine то скорее всего будут проблемы с правами на файлы. Я себе из-за этого поставил docker desktop, что не пердолиться лишний раз
148fb0fd28c575ad38e766d0ef78e9f7.jpg75 Кб, 736x977
688 3106224
Эхх, вот уже 4 года как вкатился. Как же время летит. Лежу себе, попукивая, тратя где-то по 4 часа в день на работу.
Мало того, что зарплата у тебя за месяц как у других за целый год, так ещё и встаёшь когда хочешь, никуда ехать не надо, работаешь мало.

А ведь это всё дващ! До этого работал за 20 тысяч руками, живя в богом забытой деревне на 150 человек. А так надвачевался ваших айти-тредов и попробовал этот ваш пхп.
689 3106774
подскажите как решать задачи на поиск уникальных значений в строке без array_unique и count_chars
690 3109466
Чё по производительности array относительно stdClass? Примерно одинаково, или что-то из этого шустрее и я в каких-то ситуациях должен использовать одно из, если хочу оптимизировать код?
691 3109476
>>109466
Под производительностью подразумевается всё: и скорость работы, и количество потребляемой памяти.
692 3110255
>>109466
тя ебет?
693 3114690
Когда нормальный перекат треда?
694 3128886
Клуб изучающих PHP продолжает свою работу.
С нормальной шапкой и сохранением нумерации.
>>3128882 (OP)
>>3128882 (OP)
>>3128882 (OP)
695 3128920
>>128886
Как успехи?
696 3129111
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее