Клуб изучающих PHP #141 /php/ 3283119 В конец треда | Веб
Это тред для начинающих. Слово «классы» у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.

Предыдущий тред был тут: >>3254950 (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 (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- сколько времени надо изучать все это? - все зависит от тебя, в районе 24-48 месяцев
2 3283132
>>283119 (OP)
ИДЕ для пхп мне сделай бесплатную
Снимок экрана от 2024-09-27 17-25-25.png161 Кб, 416x424
3 3283133
>>3283111 →
Ну ты понел
a932af251b476c4cba1f4242af66a380.jpg138 Кб, 990x602
4 3283135

>БЕСПЛАТНУЮ


Бесплатно можем только на клык дать
5 3283139
>>283135
Вы даже иде бесплатную сделать не в состоянии. О чем вообще ты говоришь?
6 3283142
>>283139
В нетбинсе есть бесплатная пыха иде. Только там плагины для симфони и пр устарели. Но они опенсорсные возьми и сам пофиксь.
7 3283143
>>283139

>Вы даже иде бесплатную сделать не в состоянии. О чем вообще ты говоришь?


Маня, учись ездить на вс коде с плагинами, если не в состоянии скачать шторм бесплатно без регистрации
8 3283148
>>283143
Мне приходится в блокноте писать из за того, что жидбрейнс монополисты и мрази.
9 3283154
>>283148
Вот тебе петпроектище. Напиши на голенге быстрый пхп парсер + лсп.
10 3283169
>>283154
Реализацию на пыхе можешь здесь посмотреть https://github.com/felixfbecker/php-language-server

Почитать как на голеге писать парсер в книжке Writing an interpreter in Go
11 3283343
>>283148
Есть VS code and sublime
12 3283608
>>283154

>на голенге


Чтобы на нем писать нужна ИДЕ. А тут, сюрприз, жидбрейнс тоже монополисты ебаные. Да они на всех яп монополисты, кроме C/++/#, JS/TS и все, нахуй.
13 3283697
>>283608
У голенга даже в виме поддержка хорошая. Я использую https://github.com/ray-x/go.nvim
14 3283751
Вообще не понимаю что такое blade компоненты и слоты в Laravel. Два раза перечитал документацию, пробовал читать другие статьи.
Нихуя не понимаю.
Особенно слоты. Вот переменная $slot. И что дальше-то? Что она из себя представляет? Какие-то строчки html-кода? А в какой части кода нужно определять значение этой переменной? Да и вообще я не понял как это руками применять. Когда создается компонент на основе классов, то создается пхп класс и файл представления. Класс немного понял зачем, а представление зачем? Чтобы объявить там тег компонента и через атрибуты html передать значения переменных или что...
15 3283753
>>283751
Все, я понял.
17 3284128
>>284126
За 120 бы пошёл
18 3284129
>>284128
Но опять же от опыта зависит. Тут видно что джуна ищут или миддла который не знает сколько стоит миддл
19 3284136
дарю 50к за мое тз
нужно будет организовать впн сервис (Сайт с управлением openvpn)
я бы сделал это за 12*5 часов, сейчас я инвестор, понимаю что двачеры дауны и даю месяц
Фронт и бек на php8.2+, mysql. (nginx, php-fpm, mariadb, debian)
если не можешь в логику - не пиши.
мамкины фрилансеры хотят дохуя, поэтому здесь
телега @xvidis
20 3284140
>>284136
Ну и иди на фриланс.

Сейчас бы с двачером дело иметь, ага
21 3284142
>>284140
там остались одни компании просящие по 3к+ баксов за херню
вот начинающий двачер самое то
22 3284198
>>284136

>mysql


Эт че?
23 3284308
>>284198
Мускулы. Таскать коробки
24 3285122
php бекэнд без фронта ещё актуален?
25 3285183
>>285122
А с хуев ему стать не актуальным
26 3285195
>>284136
Скажи им что уже есть админки для openvpn.
https://github.com/flant/ovpn-admin
srr.png54 Кб, 1078x430
27 3285212
Чому так?
28 3285218
>>285212
Надо было ставить линукс.
29 3285803
>>285212
Потому что вскод. А жидбрейнс - контора пидорасов
30 3285864
>>285218
>>285803
Да всё разобрался, в php.ini лишняя строка с таким же расширением была, и проверку версий надо было отключить
31 3285901
После успешной аутентификации нужно создавать сессию?
У меня сейчас аутентификация проходит так: проверяется куки на наличие токена, если его нет, то редирект на страницу ввода пароля, если пароль верный, устанавливается куки с токеном. Мб нужно не куки использовать, а сессию? Я никогда не работал с сессиями и не понимаю зачем они мне нужны... Никогда не было так, чтобы я сидел и такой: "Тут точно нужна сессия". Как я понимаю, сессия и куки это способ системе рассматривать несколько запросов к сайту под одной личностью, отличие в том, что куки проще и хранятся в браузере, а не на сервере.
32 3285928
>>285901
Куки можно перехватить.

>Никогда не было так, чтобы я сидел и такой: "Тут точно нужна сессия"


Может это издержки фреймфорка, но у нас в проекте аутентификация всегда начиналась с сессии на бэке. Это потом уже, по мере расрастания проекта, добавлялись jwt в куки.
33 3287180
>>283119 (OP)
>>1008826 (OP)
Я использую Xdebug в PHPStorm. Во время дебага я хотел бы найти, когда происходит присвоение какой-то переменной или элементу массив значение 'Участвует в акции'. То есть проблема в том, что я не знаю где именно это происходит и куда записываются переменные. Можно ли как-то найти то место, где происходит присваивание какой-то переменной, свойству или элементу массива значением 'Участвует в акции'?
Типа поставить условие, если любое хранилище информации получает значение 'Участвует в акции', тогда сделай стоп?
Текст получается из БД, поэтому по тексту в проекте не получится найти. А проект легаси, поэтому сложно дебажить
34 3287187
Объясните простыми словами что такое тома в docker.
А также что означает ":", например, docker run -d -r /host/dir:/container/dir test/webserver?
А также то, что означает "монтировать" в контексте томов docker.
35 3287358
Скинули тестовое задание, которое требует клонировать репозиторий.
У меня недавно так получилось, что я клонировал один такой репозиторий с bitbucket и у меня самостоятельно скачался торрент + открылись страницы с криптой и торрентом. Что делать с этой хуйней? Я ньюфаня. Перенести инструменты разработки в виртуальную машину и только там кодить?
36 3287460
Почему нейросети так любят везде пихать mimetype?
37 3287630
>>287180
Нет, нельзя

Пиздец, уже не могут стек вызовов просмотреть и пробежаться по нему, я хуею с вас
38 3287631
>>287358
Надо было ставить Линукс
39 3287795
уважаемые двачеры, кто нить вкатывался в 23-24 году менее чем за полгода в пхп разработку?
40 3287802
>>287795
без опыту анрил думаю
41 3287809
Анон, подскажи как пользоваться chatgpt в Рф пожалуйста
42 3287873
>>287795
звали на стажку в начале 23, на тот момент изучал 5 месяцев примерно, но очканул условий и отказался. Потом вышел в другую контору через полгода примерно(никак не выйду теперь).

з.ы. был прекол - позвали не тех собес, лясим-трясим, все ок, тимлид сказал что ему нравятся ответы. Но в потом спросил готовился ли я к собесу, типа слишком хорошо отвечал. Я честно сказал что не готовился, слишком дохуя всего себе поставил в план изучения. Обещали написать и конечно нихуя не пишут уже неделю.
Вот как блять с такими - плохо отвечать - плохо, хорошо отвечать - тоже плохо. Почему в этой сфере все такие ебненькие?
43 3287890
>>287873
Испугался что ты его подсидишь
44 3287900
>>287873
Все решил демпинг. Нашли кандидата за еду, который готовился к собесу, потому что ему очень нужна эта работа.

Все просто.

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

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

Если на джуна, то нужно показывать что очень хочешь работать и учится 27/7 хоть за еду
45 3288069
>>287795

>менее чем за полгода


Вводные какие? Если полный ноль, то нет. Если есть опыт, то опять же какой.
Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.
46 3288075
>>288069
Вроде всегда продавцы курсов питон доили на эту тему. Но тут не в рынке дело а что у самого питона почему-то считается, что низкий порог вхождения, в цыганских схемах для обучения это важно чтобы вкатуну пыль пустить типа смотри прогресс пошёл
47 3288099
>>288075

>всегда продавцы курсов питон доили на эту тему


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

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


Ну эта тема с фронтендом тоже хорошо продаётся, первую страницу сверстали из header, main, footer и всё люди уже на рынок труда собираются. Теперь таких фронтендеров как говна за баней.
48 3288252
Всех приветствую
У меня такой вопрос. Юзают ли программисты Apache/Nginx
напрямую? Или это удел администраторов?

почему я задаю этот вопрос. Например я могу создать веб-приложение используя фреймфорк (Laravel, django, node и т.д.), которые возьмут всю поднаготную.
Но в тоже время на докерхабе node/apache одни из лидеров по скачиваниям. Кто их использует напрямую и зачем?
408fb978-807c-4beb-aae5-cb6918c17001-1682019801998.jpg86 Кб, 1242x1295
49 3288298
>>288069

>Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.


ААА СУКА Я ВО ФРОНТ ЕНД НЕ СМОГ ПОПАСТЬ ПО ЭТОЙ ПРИЧИНЕ, ПОСМОТРЕЛ НА СТАТИСТИКУ, ПЫХА НОРМ ПО КОНКУРЕНЦИИ. НО БЛЖДАД И СЮДА ТАБУН ГОЛОДРАНЦЕВ РВЕТСЯ ВПЕРДЕ МЕНЯ!!!1!! ИДИТЕ НАХУЙ СУКИ В ТАКСИ И НА СТРОЙКЕ ХОРОШО ПЛАТЯТ. МНЕ СКОРО 30 ЛЕТ, Я НЕ ХОЧУ НА ЗАВОД ОБРАТНО
50 3288372
>>288252
Пыха медленно работает с I/O, поэтому выгодно отдавать статические файлы через веб-сервер, минуя php. В большинстве случаев дополнительная логика тут все равно не нужна.
51 3288385
>>288298

>ПОСМОТРЕЛ НА СТАТИСТИКУ, ПЫХА НОРМ ПО КОНКУРЕНЦИИ


Уже давно не норм по конкуренции.
52 3288394
>>288385
Да, ебаные продаваны курсов нашли нишу которая была занята скуфами. Даже пидор хауди хо недавно видос запилил по пыхе (вылезло в реках), хотя раньше ему подобные даже не знали что кроме жс и питона другие языки есть.
53 3288400
>>288394
Минуточку, хауди хо ещё в 2к21 году видосы пилил, где говорил, что вкот проще всего делать через Битрикс и ВордПресс.
54 3288699
>>288400
С Битрикс понятно, а через Вротпресс как?
55 3288701
>>288699
Губами
56 3288830
>>288699
Вордпресс это для украинцев, у них он вместо битрикса
57 3288839
>>288830
А что, в России в него разве не также просто вкатиться? Я что-то не вижу повсеместно курсов по вордпрессу, только джавв и петухон везде вылазят
58 3288880
>>288839
Хз, попробуй. Потом отпишешься если вкатился
59 3289210
>>283132

Есть VS Code, есть протокол LSP и language server вроде phpactor. Конечно, есть шероховатости и недоработки, но это все при желании можно исправить. Если бы каждый жалующийся на отсутствие IDE внес хотя бы 100 строк доработок, думаю, IDE давно бы была готова.
60 3289213
>>284136

Если ты ориентируешься на Россию, то тебе нужны протоколы с обфускацией, так как чистый OpenVPN легко распознается и блокируется.
61 3289225
>>285212

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

Ты можешь либо отключить это расширение в конфиге php.ini, либо убедиться, что расширение (php_imagick.dll) и библиотека (imagick.dll) установлены и находятся в правильных директориях и их версия совместима с версией Windows. На странице ImageMagick много всяких файлов, я советую попробовать ImageMagick-7.1.1-38-Q16-HDRI-x86-dll.exe отсюда https://imagemagick.org/script/download.php

Если что, порядок установки описан тут (переведи сам): https://www.php.net/manual/en/imagick.installation.php

> Windows users can download prebuilt DLL from the » PECL website. These packages already contain the extension DLL (php_imagick.dll) which needs to be put into the extension_dir. They also contain the ImageMagick DLLs, which need to be put somewhere in the PATH. As of Imagick 3.6.0, they also contain XML configuration files in config; to use these instead of the built-in defaults, they need to put into %USERPROFILE%/.config/ImageMagick, or alternatively in the path given by the environment variable MAGICK_CONFIGURE_PATH. Refer to the » ImageMagick configuration files documentation for further details.



Если твой вопрос был про русские буквы, выводящиеся неправильно, то попробуй погуглить, как настроить кодировку в терминале VS Code под Windows. У тебя явно включена CP866, а надо utf-8.
62 3289230
>>285901

Отличия сессии и кук:

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

Сессия при этом использует куки, но только для хранения идентификатора сессии.

>>285928

Нельзя, если все правильно настроено и используется HTTPS.
63 3289237
>>287187

Контейнер докера это что-то вроде виртуальной машины: он изолирован от основной (хост) системы. И директории и файлы с хост-системы в нем не видны. "Том" как раз позволяет сделать директорию хост-системы видимой внутри контейнера. "Примонтировать том" значит подключить "том", то есть директорию хоста, чтобы он стал виден внутри контейнера.

> А также что означает ":"



Это разделитель, который отделяет имя директории на хосте и место, куда ее надо примонтировать внутри контейнера. То есть на хосте у тебя директория имеет путь /some/dir, а в контейнере ее можно примонтировать по другому пути, например, other/dir.

Я советую изучить основы использования и администрирования Linux, прежде чем браться за Докер - без этого многое непонятно.
64 3289242
>>287358

Само по себе клонирование подразумевает просто скачивание файлов из репозитория к тебе на машину. А вот если ты их запустишь, не проверяя, то может произойти что угодно. Могу посоветовать проверять файлы антивирусом (можно упаковать в zip и отправить на вирустотал, если ты не можешь позволить себе антивирус), и виритуальная машина тоже неплохой вариант.
65 3289243
>>287460

Не понял вопрос, куда они его пихают? Mimetype это просто обозначение для типа файла, например image/png.

>>287809

Прокси, VPN, но он все равно денег начнет просить со временем.

>>287873

Отказать мог не только тимлид, а еще кто-то другой, например, служба безопасности. Или вдруг оказалось, что кандидат сейчас не очень-то и нужен из-за смены планов.
66 3289245
>>288252

Апач в наши дни особо использовать смысла нет. На продакшене используют nginx + php-fpm (это не то же самое, что php), а локально ты можешь настроить то же самое или запускать php в режиме веб-сервера: https://www.php.net/manual/ru/features.commandline.webserver.php

Кстати мне нравится, что в новой капче надо уметь различать кандзи. Не зря учил!
67 3289312
>>288069

>Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.


Я даже догадываюсь у кого ты это слышал 😑
https://youtu.be/aY3fRexyhAI?t=247
68 3289608
>>288839
Вакансий на вордпрессе меньше по сравнению с битриксом. Толку от твоих курсов если на нем работы в РФ мало так что для вката лучше все таки битрикс
69 3289635
>>289608

>для вката лучше все таки битрикс


А чем лучше? Что это дает помимо ачивки что вкатился? С битрикса опыт не сильно релевантный. Опыт работы на битрикс требуют аналогично други вакансиям.
70 3289763
>>289635
Секрет в том, что на конторе не написано что там битрикс. Смекаешь?
71 3289881
>>289763

>Смекаешь?


Нет, не смекаю. Потому что, например, я изучил laravel и иду на вакансию и после мне предлагают битрикс. И чем идея? Будут обучать битриксу или мне придется самостоятельно его осваивать? И в том и в другом случае это для бизнеса проёб.
72 3289927
>>289881
Много вакансий где надо писать на ларавеле используя битрикс апи. Никому чистый фреймворк в вакууме не сдался. На фреймворке решают бизнес задачи и если бизнесу надо, чтобы заявка с сайта попадала в воронку в Битрикс CRM, то хоть на хаскеле с есодом пиши, придется с битриксом взаимодействовать.
Чел, 99% задач программистов сводятся к тому, чтобы одно говно к другому прилепить. Даже голангером ты пойдешь ебаные бизнес задачи решать, а не в хакатонах учавствовать.
73 3289928
>>289927
мимо шел
74 3290003
>>289312
Нормально гоев прогревает)
75 3290037
>>289237
Спасибо за ответ и привет, codedokode!
76 3290048
>>289312
И чем он плох и в чем он не прав? Я серьезно без подъебов
Это лучший канал по вайти что я видел, говорит довольно объективные и реальные вещи без цели продажи курсов
77 3290077
>>290048

>И чем он плох и в чем он не прав?


Да никто не говорит что он плох. Просто рубит на хомяках бабки, норм тема)

> вещи без цели продажи курсов


Ну конечно, только на бусти подпишись)
78 3290173
>>290077

> Просто рубит на хомяках бабки


>только на бусти подпишись


Ну ты ебать срыв покровов устроил, он буквально говорит что делает это тупо ради бабок и все его каналы называются аля дайте деняк.
На качество роликов это никак не влияет, он не пускает пыль в глаза про то как ты сейчас из грузчиков за неделю станешь наносеком за неделю. В чем он не прав в видосах то
79 3290269
vue/laravel еще живое?
80 3290291
>>290269
Нет, все теперь на битриксе
81 3290324
>>290173

>про то как ты сейчас из грузчиков за неделю станешь наносеком за неделю


Падажжи, а что нет? Я не стану наносеком???7??
мимо грузчик
82 3290769
>>288069

>Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.


О чем ты, шиз? Он всегда был популярен.
83 3291577
>>287795

>кто нить вкатывался в 23-24 году менее чем за полгода в пхп разработку?


Ну я за две недели вкатился недавно. Правда до этого пол года пытался вкатиться на ноде пока не осознал что она мертва. Два дня почитал о пыхе на метаните, сделал половину пет проекта на ларавеле и создал резюме с 1.5 годом накрученного опыта. Прошёл три собеса и получил оффер. Причём оффер получил с самого первого собеса. Ну а если ты с нуля вкатываешься то за пол года вкатиться более чем реально. Просто нужно не быть распиздяем и уделять по 5-6 часов учёбе каждый день, избегая траты времени на всякую лишнюю залупу
84 3291582
>>291577
Просто надо напиздеть
85 3291589
>>291582

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


Так называемая база для успешной жизни
86 3291699
>>291582
Любой кабанчик тебе пиздит, недоплачивает и желает чтобы тебя поскорее черный ящик с AI заменил.
87 3291767
>>291577

>Просто нужно не быть распиздяем и уделять по 5-6 часов учёбе каждый день,


Вот в dr чел ведет дневничок, как вкатывается в пхп/ларавел с марта 22 года, ежедневно уделяя учебе по 7 часов в день. Можешь пойти, заценить.
88 3291770
До сих пор не вкатился
image.png6 Кб, 612x89
89 3291796
>>291767

>Можешь пойти, заценить.


Заценил. Чел третий год не может дойти до примитивнейшей мысли что нужно крутить опыт и пиздеть на собесах. Значит его уровень интеллекта катастрофически низок. У таких 8 часов обучения по эффективности равны примерно 20 минутам у нормисов.
90 3291850
>>291796
Все правильно. Нахуя джуну знать про микросервисы?
Кабан кабаныч, залогинься.
91 3291945
чатгопота умеет в битрикс однако.....
92 3291960
>>291945
Ну да, давно пользовался им. Интересно может ли он в 1с программирование русскими буковками
93 3291975
>>291796

>У таких 8 часов обучения по эффективности равны примерно 20 минутам у нормисов.


Под нормисом себя наверное подразумеваешь? Или нет, ты даже круче нормиса? 100 часов их занятий равны 1 минуте твоей, не меньше.
Как не зайду на двач, так в голосину кекаю с коупинга местных чсв-обезьян.
94 3291993
>>291975

>Под нормисом себя наверное подразумеваешь?


Ну смотри, я вкатился за 1.5 года уделяя вкату в среднем полутора часа в день и ебланя буквально неделями. Тот чел даже ни на один собес не попал за 2.5 года вката. И тут получается два варианта:
Либо я 180iq сверх человек, а тот чел нормис
Либо я нормис, а тот чел долбаёб. И ты соответственно.
Ну и учитывая что я решил вкатываться через бэк на ноде сверхчеловеком меня трудно назвать. В итоге получается что ты долбаёб.
95 3292076
>>291993

>этот коуп скоростью вката


Чтд
96 3292087
Я кстати вкатился в it занимаясь 0 часов в день. Правда диплом у меня есть, но я там тоже ебланил, все пары прогуливал и мне все зачеты закрывали за "яркие и красивые" глаза.
Папка мой меня устроил тимлидом в свой it отдел. Говорит пора учиться руководить. Ну и плюс по "моей сфере" всё таки, как никак я инженер-программист дипломированный. Хожу шугаю работяг и играю в игоры остальное время.

Вопрос к вкатунам, хули вы такие тупые?

Это для умника выше, который думает что вкат как-либо связан с обучением или знаниями, когда это чистая социалка, пусть зачастую и не такая прямолинейная, как в моём примере. Вкатиться можно ваще ничего не зная про программирование, в интернете полно присеров где челы проходили собесы, наебывая даже техлмдов. При этом полно реально крутых программистов, которые нигде не работали и им с нуля будет пиздец как тяжко вкатиться. Я лично знаю ебейше талантливого джависта, которого слали нахуй даже дно-вакансии, в итоге он просто стал сам писать скрипты на заказ и зарабатывает теперь прилично, а hrы ему отказы ставили, вот и думайте головой
97 3292091
Мне тоже непонятно, как можно не вкатиться за 2.5 года. За это время можно наизусть выучить стандартную библиотеку языка и документацию laravel вместе с примерами.
98 3292102
>>292091
У тебя логическая ошибка. Скорость вката напрямую не коррелирует с твоими знаниями. Ты можешь выучить хоть всё айти мира, но если тебя hr автоматически бракует по опыту, то эти знания тебе никак не помогут.

Опять-же пример с моим знакомым джавистом. У чела по факту опыт с десяток лет, но он кодил не для коммерции, а для себя, рння у мамы на шее. Потом прижало зарабатывать и его нахуй посылали даже на дно-вакансиях, ибо hrы срали брать чела 28 лет без образования и опыта, хотя у него уровень уверенного мидл+ по знаниям.
99 3292111
>>292102
Можно потратить немного времени на софты, это не рокет саенс. Твой знакомый как минимум мог бы популярно сделать что-нибудь полезное для людей и за счёт этого получить рефералку. Это посильно для уверенного мидла+.
100 3292115
>>292091
А если за 2.5 года львиная доля - это дноработа и бытовуха? А чисто на кодинг был 1 месяц и то твердо и четко не было известно получится ли покодить или опять отвлекут и придется всё бросать на затычку жизненных дыр?
101 3292118
>>292087
Давай тоньше
1706302828153871570.jpg115 Кб, 2048x1569
102 3292156
Узнал сегодня что в xdebug есть какие-то доп. ф-ции, помимо отладки. Какая-то трассировка, профилирование, уровень покрытия кода, стек-трейсы.
В это нужно углубляться или это все не используется на работе как правило?
103 3292348
Будет когда-нибудь преобразование пустой строки в null из под коробки? Или как решить то, что мне надоело трейты везде подключать для фильтрации реквестов, Может где-то галочку нужно поставить?

class MyClass
{
public ?int $google = null;

public function __construct()
{
$this->google = '3';
$this->google = ''; //Exception
}
}
104 3292353
>>292348
Не совсем понял, что ты хочешь сделать. Пустая строка и null-значение - это принципиально различные данные. Скорее всего у тебя ошибки в проектировании, если с этим возникают затруднения.
105 3292371
>>292348
У тебя поле int а ты добавляешь строку
106 3292379
>>292353
Ну вот в $_POST например ['google' => ''], а в форме MyClass это свойство не обязательное. В твоем фреймфорке если загрузить данные из поста в форму, он разберется, что пустую строку нужно в null превратить? И если нет, то как у вас данные с формы на фронте попадают в класс формы?

>Пустая строка и null-значение - это принципиально различные данные


А если в int записать (string)"3.01", то он не ругается что там флоат. Я понимаю что это numeric. Но там же в обявлении типа стоит не просто int а ?int. Можно было бы наверное еще проверку на длину строки делать.

>>292371
$this->google = '3';
Тоже строка, но он разруливает преобразование тут.
107 3292383
>>292111

>немного времени на софты


Но есть нюанс, что софты зависят а некой степени от внешки, харизмочки, от врождённого характера и врождённого ай си кью. За немного времени нереал пофиксить стартовые характеристики наролленые в генетической лотерее.
108 3292409
>>292379
Ты полагаешься на неявное преобразование типов, которое может без предупреждения меняться от версии к версии интерпретатора.
Советую зафиксировать типы везде, где это возможно и ограничить жонглирование типами через declare strict_types. Так у тебя с меньшей вероятностью что-то сломается, будет проще дебажить и не нужно будет держать в голове, что как и каким образом к чему приводится.

В твоём случае правильно было бы (1) делать проверку строки на empty и в зависимости от результата возвращать либо null либо (2) делать следующую проверку на int через фильтры и либо возвращать int либо выбросить исключение с ошибкой валидации.
https://www.php.net/manual/en/function.filter-var.php

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

>>292383
Избавляйся от иллюзии, что ты живёшь в рпг с фиксированными параметрами. На самом деле не существует никакой таблицы статов и проверки от них не кидаются.
Но конечно чмоня, неспособный компенсировать недостатки хотя бы упорством, не сможет конкурировать с другими людьми. Его даже жалеть неинтересно.
109 3292417
>>292409

>declare strict_types


Вот отсюда и пошли все беды. Раньше вот хорошо было, создал класс со свойством public $google и все. Потом приходят зумеры и про то как здорово иметь строгую типизацию и все. Начинаешь под капотом там в фреймфорк лезть, трейты писать, блокировать инпуты если они пустые, чтобы в пост или гет запрос не попали пустые строки.

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


Упустил что 0 все таки стоит записывать. 0 и не заполненный инпут это разные вещи иногда.
110 3292419
>>292417

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


Никогда не возникало таких проблем.

> Упустил что 0 все таки стоит записывать


Да, ты прав. Надёжнее использовать 0 === strlen(trim($input)).
111 3292510
>>292417

>Раньше вот хорошо было, создал класс со свойством public $google и все. Потом приходят зумеры и про то как здорово иметь строгую типизацию и все.


Еблуша, как раз зумеры в типизацию не умеют. А говорить, что строгая типизация хуже нестрогой может только совсем бездарный вкатыш с нулем опыта работы на нормальных проектах
112 3292544
>>292510

>Никогда не возникало таких проблем.


Ты ларавель используешь наверное? Или в симфони тоже есть обнуление пустых строк в реквесте?
113 3292546
114 3292556
>>292417

>Вот отсюда и пошли все беды. Раньше вот хорошо было, создал класс со свойством public $google и все. Потом приходят зумеры и про то как здорово иметь строгую типизацию и все.


Ебать дебил
115 3292561
>>292379

>то как у вас данные с формы на фронте попадают в класс формы?


Какие нахуй классы формы?

мимо ларавел боярин
116 3292568
>>292561
Я так класс для получения данных с фронта и их валидации называю. Вы всегда с Eloquent-ми работаете получается?
117 3292584
>>292568
Не. Запросы приходят в роут и спрашивают "чё-каво"? В роуте написано "пиздуйте в контроллер". Но когда залётные пасанчики пытаются зайти с ноги в контроллер, им мидлвара (смотрящий) говорит "не-не-не, вы кто ваще и чо такие дерзкие?". Запрос представляется по форме смотрящему и либо идёт нахуй, либо его заворачивают в закуток к остальным реквестам, где проходит уже шмон-валидация. Всё достают из карманов и предъявляют "чо у тебя тире короткое?". Если запрос чотко понимает, куда попал, и какой положняк на хате, то проблем с содержимым не будет. И вот тогда-то его и пустят в хату (контроллер). В принципе, при шмоне можно что-то дополнительно напихать запросу в панамку, либо изъять ненужное. В любом случае, в контроллер он попадёт уже чистеньким, без всякого сифилиса.
118 3292588
>>292584
Давай на детсадовском. Про каши, горшки и воспитательниц, вот это все.
119 3292605
>>292568
Ну у нас в ларочке форм-реквесты есть, в которых можно играться с данными, валидировать, преобразовывать, перед передачей в контроллер и далее.
120 3292619
>>292605
А ну понял. Это мидлваре у вас там есть, а я просто тоже самое делаю в контроллере.
121 3292623
>>292619
Это не миделваре, это другое
image.png13 Кб, 638x152
122 3292627
>>292623
Не я один так решил видимо.
123 3292634
>>292627
А, ну под капотом там пади мидлеваре, да. Просто я макака тупая - не вникаю особо.
124 3292903
>>292584
Норм паста, схоронил
125 3293098
>>292348
>>292379
С какой стати пустая строка вдруг должна стать null? В php строки используются не только для изъятия значений из полей. Пустые строки, как и не пустые, должны корректно сшиваться друг с другом безо всяких дополнительных движений. К примеру, для генерации текста наподобие $a$b$c, где $b это color="green" в теге font, и т. п.
126 3293115
>>292419

>> Упустил что 0 все таки стоит записывать


>Да, ты прав. Надёжнее использовать 0 === strlen(trim($input)).


Зачем strlen звать? (trim($input) === "") быстрее. На пустых строках до 10%. А на длинных почему-то одинаково считает. Не очень понимаю. По логике вроде на первом символе уже должен дать false. Хотя если strlen - это макрос над всегда известеным где-то рядом со строкой значением в памяти, то должно, наоборот, быстрее считаться сравнение с нулём...
127 3293120
>>293115
Щас бы сидеть какие-то 10% на функции в пыхе считать...
128 3293233
>>290769

>Он всегда был популярен.


Вот лысый уебан твердит что нет https://www.youtube.com/watch?v=aY3fRexyhAI
129 3293238
>>292588
Присоединяюсь к реквесту
130 3293273
>>293098

>должны корректно сшиваться


Там преобразование в ?int
131 3293336
>>293233
Мне впадлу протыка твоего смотреть. Пыха всегда была один из основных легких путей.
132 3293403
>>293336

>Пыха всегда была один из основных легких путей.


Но это не делало её популярной бля...
133 3293411
>>293403
Ебанутый?
134 3293553
>>292584
как же я орнул с этого объяснения MVC )) АЖ ХРЮКНУЛ
Screenshot 2024-10-09 at 16-04-45 ChatGPT.png46 Кб, 899x725
135 3293559
Приходится спрашивать у нейросети как вывести инофрмацию о файле из GET, потому что в документации и гугле этого нет. Чатжпт кстати начал писать какую-то ебанину. У меня всё
136 3293560
Пыха гарантирует вкат проще только за счет того, что йододефицитное зумерье начиталось статей от псевдопрограммистов про то, что пыха говно. Соответственно, желающих на место меньше, чем на обоссаном петухоне, или какой-нибудь джаве.
К счастью, вкатыши не повалят массово на пыху, ведь она умирает, на ней не пишут новые проекты, все переписано на го и прочая шиза от псевдопрограммистов.
137 3293569
>>293559
Нейронка так и поняла, что ты с помощью гета пытаешься получить инфу о файле, которая где-то на бэке хранится.
https://stackoverflow.com/questions/15201976/file-uploading-using-get-method
https://www.php.net/manual/en/features.file-upload.php
138 3293594
>>293411

> твой ротик,


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

Вот когда разбавишь участь питухондриев и жаберов тогда и попиздишь за популярность
139 3293609
>>293560
Мб чтоб маслят не привлекать, за счет этих лозунгов и едем
140 3293617
>>293559
Насколько я понял, тебе обязательно использовать GET? Так-то для вывода инфы о файле используется запрос OPTIONS.
141 3293752
>>293594

>попиздишь за


Спокидзе то оформи, быдлятина
142 3295307
Как стриминговые сайты, на которых люди смотрят аниме, сериалы, фильмы передают на клиент видео?
Из того что сам знаю: hls и dash, но не понимаю генерируют ли они их «налету» или заранее режут на чанки и по CDN рассылают? Как это работает вообще? Просто как я это вижу, для своего сата, например: заходит чел на сериал, выбирает серию, я на сервере в этот момент через запуск ffmpeg начинаю нарезать кусочки и отправляю на клиент плейлист с таймингами и ссылками на куски(m3u8, например)
Но это же достаточно долго(5-6 секунд ждать челу пока там все приготовится для вещания такое себе), поэтому и задаюсь вопросом, может популярные чата заранее нарезают видос и потом просто их как статику уже отдают?
мышка 143 3295413
Как же меня заебал этот докер.
Нашел репозиторий с Dockerfile, docker-compose файлами. Скопировал файловую структуру, названия папок, нажал docker-compose up и...ошибки, ошибки, ошибки...Гуглишь ошибки, ничего не помогает. как я заебался почему с этой хуйней столько проблем...8 часов въебал сегодня на эту шляпу и профита 0, ничего толком не развернул. ну что что мне блять делать чтобы это говно работало, почему все так сложно блять
144 3295448
>>295413
За то девопсы свою зарплату и получают.
145 3295449
>>295413
Хз, докер - это чудо чудесное. При самом примитивном использовании без каких-то особых заморочек там и обезьяна разберется.
146 3295870
>>295413

>почему все так сложно блять


Миша все хуйня давай по новой
147 3295980
>>295413
Покажи что конкретно не получается
148 3296353
Какие минимальные требования к серверу, на котором будет сайт с Docker, Redis, RabbitMQ, ElasticSearch (может и ещё что-нибудь засуну туда)? Нагрузка на сервер минимальна. Хочу личный сервер поднять, чтобы поковыряться во всех модных свистелках и перделках, а то на работе только говно вилкой чищу в легаси десятилетней давности. Нужно покупать VDS, и немного жаба душит. Минимально там 1 гиг операативки, в среднем за 4 бакса в месяц. Или 2Гб за 6 баксов. Или ещё больше и дороже. Вот какой размер будет минимально достаточен, чтобы просто пощупать всё это руками?
149 3296361
>>296353

>работает вайти


>10 бачей в месяц для развития как специалиста


>душит жаба


Пиздос
150 3296386
Ну че вы, все изучаете, есть вкатившиеся? Пытался освоить это лет 5 назад, нихуя не понял, ушел в куа, за месяц нашел работу и уже пятый год довольно урчу.
151 3296396
>>296386
Не хочу в офис ходить, поэтому буду битрикс учить и на удаленку сразу залечу, а дальше как видно будет
152 3296439
>>296386
>>296396
Тред успешных людей
153 3296468
>>296361
Так я готов. Но скока вешать в граммах?! Вот куплю я два гига, а потом окажется, что Эластик меньше чем на 10 даже не запустится. Вот и спрашиваю.
154 3296519
>>296468
На впс же всегда можно без проблем накинуть мощей нажатием одной кнопки.
10 тебе, наверное, не понадобиться, а 2 таки будет мало.
Все же уже обсосано в интернете. Так и вбей - сколько гигов надо ебластику.
155 3296746
>>293560
Я те еще лучше язык подскажу - вот там точно нет конкуренции и зумерья
156 3297179
Пыха: джун - 40-50к, мидл - 120-150к, сеньер - 200-250к
Самые низкие зп на рынке
Зачем он нужен тогда?
157 3297288
>>297179
Получаю на пыхе 320к
Продолжай охуительные истории
158 3297301
>>297288
это где то 10 лет опыта
в той же джаве это 600к
159 3297425
>>297179
>>297301
Забыл ещё что это единственный язык где ТРЕБУЮТ знания фронтенда
160 3297438

>сколько времени надо изучать все это? - все зависит от тебя, в районе 24-48 месяцев


А в жс за 8 месяцев можно вкатиться
161 3297439
>>297438
Да там в шапке шиза
162 3297441
>>297425
Ну и пиздуй в свою жаву. Там наверняка только синтаксис знать надо и 300к твои.
163 3297481
>>297179
Чел, многие за 10к готовы работать...
164 3297488
>>297481
Кабанидзе, спок
165 3297501
>>297425

>ТРЕБУЮТ


Так требуют, что ни разу с этим не сталкивался
Или ты еблан на фуллстек-вакансии смотришь? Так они и на джаве есть
166 3297664
>>297501
Ну в "плюсом будет" почти всегда фронт подтягивают. Оно вроде и не обязательно, но чтобы обскакать конкурентов...

мимо
sage 167 3297892
>>297425
Кстати да, или еще какую рандомную дрисню
168 3297924
>>295980
nginx отдает 502, а я не понимаю как настроить файл конфигурации.
169 3298075
>>297924
Ставь roadrunner, сейчас модно на нем приложения заводить.
170 3298132
>>297664
Просто не откликаешься и все
171 3298229
>>298132
Просто обрезаешь себе 8 из 10 вакансий и все.
Кому, нахуй, нужен чистый пыхарь в 2к24?
172 3298294
>>298229
то есть на пыху 80% - фулл?
173 3298300
>>298294
Да долбоеб он
Мб треть вакансий подразумевает фуллстека, в основном пыха - чистый бэк
174 3298304
>>298294
Большинство вакансий - фулстек, часть с желательным умением во фронт, минимум вакансий - чистая пыха.
175 3298356
>>298294
на хх так, может конечно не 80, но больше половины точно.
Пыха вакухи это в основном в аутсорс студии с битриксом, а в "нативном" битриксе фуллSuck это норма.
Пхп вака на чистый бек это уже более серьезные кабаны, а их конечно меньше, вот вы ходит что фуллsuck в основном.
176 3298532
Тоже сижу в пхп-болотце и ни разу не трогал фронт
Там, где ищут со знанием фронта - очевидно, ооо васянка, куда не стоит идти даже если бы там была чистая пыха в требованиях. Вакансий с голым пхп полным-полно, хуй знает че вы тут устроили
image.png27 Кб, 1267x165
177 3298559
>>298532
пиздаболы ебаные везде есть требования фронта на пыхе умеренные хумеренные но есть верстала ваш посрать отойдет с запором ты будешь за ним говно чистить
17093984985270.jpg176 Кб, 1920x1080
178 3298588
пиздаболы ебаные везде есть требования фронта на пыхе умеренные хумеренные но есть верстала ваш посрать отойдет с запором ты будешь за ним говно чистить
179 3298635
Зачем я начал учить эту пыху еббанную сукабля знал что питонистом надо идти
180 3298639
>>298635
И чтобы изменилось в твоей жизни?
181 3298758
Если уже есть опыт на другом стеке, то Пыха учится за один день. Ларавель за один хороший пет проект.
Фронт для работы на ларе не нужен. В нормальных конторах всегда есть разделение на фронт и апишку. Если в вакухе написано что нужно знать фронт - значит перед вами вакуха нищей черве-пидорской галеры и она вам не нужна, если вы не червь-пидор, конечно.
182 3298794
>>298758

>Если в вакухе написано что нужно знать фронт - значит перед вами вакуха нищей черве-пидорской галеры и она вам не нужна


База
183 3298901
>>298758
Только лара кал ебаный
184 3298937
А какие у Ларавела недостатки?
185 3298957
Ларавель это база сынок
186 3298966
Лара тупа кал малые у меня знакомый пыхарь с 8 годами опыта срал и ссал на неё
187 3298971
>>298966

>Фрезерный станок тупа кал малые у меня знакомый слесарь с 8 годами опыта срал и ссал на него

188 3299123
>>298937
Да фасады ебучие, а больше и нет наверно
>>298966
Таблетки выпей, ебанат
189 3299139
>>298937
Ларавель предпочитает конвенцию конфигурации, поэтому в коде получается порядочно магии. К тему же местная ORM намертво связывает бизнес-модель и базу данных и, чтобы эти слои разделить, придётся вручную мапить eloquent-записи в классы модели.
190 3299143
>>299123

> фасады


В доке есть табличка соответствия фасадов и имён классов. При желании можно пробросить их в конструктор через di.
191 3299146
>>299143
Можно, и концепция фасадов становится как будто нахуй не нужной
192 3299152
>>299146
Она и нужна только для того, чтобы привязать код проекта к фреймворку неявными зависимостями.
193 3299161
>>299123

>Да фасады ебучие


Лол, меня недавно один крендель собеседовал, тоже про фасады втирал. Вообще не понимаю, что вы до них докопались? Ну фасады. Ну скрывают реализацию всей хуйни под капотом. Блин, это фреймворк, он для этого и создан. Что не так-то?
194 3299272
>>295413
Недавно по работе пришлось с композом дохуя возиться, аж хуёк привставал что не надо этот говнокод лопатить
195 3299314
>>298937
Кому-то не нравится, что валидация прописывается на уровне контроллеров или форм реквестов, а не на уровне сущностей\моделей.
15848903208560.jpg14 Кб, 480x372
196 3299318
>>299314
Тащить валидацию реквеста в модель? Это где такие упоротые сидят?
197 3299321
>>299318
в симфони и yii2, например
198 3299322
>>299321
Но зачем?
199 3299324
>>299322
А почему бы и нет? Кто, если не модель, должна знать, какие данные в нее можно сохранять?
200 3299326
>>299324
Пример: юзер загружает фото. Берём файл, делаем ресайз, сохраняем на диск, пишем в базу путь до него. Допустим, есть ограничение на размер файла. В ларавеле реквест не пройдёт дальше валидатора. А там, получается, произойдёт загрузка, ресайз и сохранение в сторедж, а потом база "да не, чот ты здоровый больно, давай ошибку юзеру вернём"?
201 3299329
>>299326
Ну сделаешь модель для работы с загрузкой фото, на уровне контроллера или напрямую вызовешь валидейт или из метода аплоад.
202 3299333
>>299318
>>299326
Давай другой пример. Все как ты и описал, юзер загружает фото, только лимит не на это фото, а на общий объем загруженных файлов.

То есть правила не статические, а определяются СОСТОЯНИЕМ СИСТЕМЫ. Это состояние нужно в каком-то виде откуда-то получить, проверить на соответствие правилам, а потом изменить. Это и есть буквально работа с моделью. Это то зачем модель вообще существует.

Правила типа: длина строки, только цифры/буквы/залупы, мыло/телефон простые. Их можно легко продублировать, даже в js запихнуть. А начнешь дублировать работу с состоянием - потеряшь консистентность. Понадобится работу с лимитами по файлам поменять - будешь скакать как козел по всему проекту, да еще обязательно где-то правила поменять забудешь.
image.png17 Кб, 418x275
203 3299422

>не хочу заниматься фронтендом

204 3299431
>>299422
А зп? 55к до вычета?
205 3299435
>>299422
Воспринимай работу как изменчивый рынок с клиентами, а не как блядь воспринимает папика, к которому хочет присосаться. Понимай что ты можешь продать, а что не можешь. Будет легче жить.
screen.png41 Кб, 1190x338
206 3299451
Что я не так делаю блять? Закинул два dll: sqlite3 и php_pdo_sqlite в папку ext. Раскомментировал все extension
207 3299519
>>299451
Ставь линукс или по крайней мере wsl. Когда вкатишься, тебе все равно никто не даст разрабатывать под виндой без виртуализации, это моветон.
208 3299541
>>299451
Щас бы на винде работать...
209 3300081
>>299139

> Ларавель предпочитает конвенцию конфигурации


с Rails слизали>>299139
210 3300082
>>299318
Тот же Rails
211 3300120
Че вы тут за джаву и андроид базарите, там все очень очень плохо особенно в андроиде вообще мрак. Джунов уже не берут. На миддла конкурс среди сотен
212 3300125
Как вы справляетесь с тем, что пхп однопоточный и нет никакой асинхронщины? У нас в жсе промисы есть. В ноде есть воркеры и кластеры. А вы что, с заблокированным потоком сидите?
213 3300127
>>300125
Процессы используются через разные варианты : запуск через крон, очереди в ларке. Инженер не ждет когда ему лазерную сварку подгонят, а берет синюю изоленту и..
image.png1,1 Мб, 1221x767
214 3300204
>>299519
>>299541
А как я в игры играть буду ало епта?
215 3300207
>>300204
2 системы поставь или виртуалку.
71HdWGG4-yL.jpg236 Кб, 1600x1280
216 3300212
217 3300222
>>300204
Wsl + docker ставь.
218 3300237
Пыха тупа мертаый кал сынки нах
Челы с годами опыта год могут сидеть без работы
219 3300238
>>300237
С годами на 5.6.x и жиквери?
220 3300252
>>300237
Ну хоть не десятилетия!
221 3300259
>>289927

Отправлять данные в API Битрикс это не тоже самое что писать код под Битрикс.

>>290037

🥰
222 3300261
>>295307

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

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



Именно так.
223 3300265
>>295413

Какая у тебя цель? Развернуть этот репозиторий или изучить Докер? Если изучить, то лучше начинать с простых примеров: к примеру, установи Докер-образ с PHP и пробрось директорию с кодом внутрь него.

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

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

Ошибка 502 (bad gateway) означает, что nginx пытался переслать запрос на бекенд, но он либо неверно указан, либо не работает. Тебе надо почитать документацию nginx (благо она на русском есть) и проверить каждую строчку в конфиге.
225 3300268
>>296353

Elastic обычно много ест, минимум 1 Гб если данных мало. И на дохлом VPS он будет где-то минуту стартовать только. Попробуй в его конфиге по максимуму все отключить тогда.

А Докер может использовать много места на диске (гигабайты) под образы.

При выборе VPS обращай внимание на систему виртуализации, так как они по-разному считают память: 1 Гб на OpenVZ может быть эквивалентен 512 Mb на KVM. Не знаю как сейчас, а раньше в дешевых VPS как раз OpenVZ и использовалась.
226 3300269
>>296353

Кстати за 3 Гб памяти (KVM) плачу 5 евро в месяц и то это дорого так как это Европа, а не Россия.
227 3300275
>>299318

Не валидацию реквеста, а валидацию модели. Причем делается это с помощью аннотаций по типу:

class User
{
#[Assert\NotBlank]
private string $email;
...

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

А как ты валидируешь модель из базы, если у тебя правила повешены на форму?

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

Это как раз правильная и грамотная архитектура, выбранная в Симфони.
228 3300276
>>299326

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

В Симфони правила валидации можно добавить вообще к любому классу, и это правильно.
229 3300277
>>297924
Попробуй так, в файле docker/nginx.docker:

FROM nginx:latest

ADD ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www

Файл конфигурации в docker/nginx/default.conf:

server {
listen 80;
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;
}
}

В docker-compose.yml:

services:
nginx:
build:
context: ./
dockerfile: docker/nginx.docker
volumes:
- ./:/var/www
ports:
- "8080:80"
links:
- php-fpm
229 3300277
>>297924
Попробуй так, в файле docker/nginx.docker:

FROM nginx:latest

ADD ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www

Файл конфигурации в docker/nginx/default.conf:

server {
listen 80;
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;
}
}

В docker-compose.yml:

services:
nginx:
build:
context: ./
dockerfile: docker/nginx.docker
volumes:
- ./:/var/www
ports:
- "8080:80"
links:
- php-fpm
230 3300281
>>299451

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

Ты можешь увидеть это, используя утилиты вроде Dependency Walker, или может сейчас есть что-то поновее.

Раширение php_pdo_sqlite позволяет вызывать из PHP функции библиотеки sqlite, и тебе надо и расширение, и эту библиотеку.

Судя по ошибкам в консоли, не удается найти библиотеку с именем sqlite3 или php_sqlite3.dll. При этом, если скачать sqlite с официального сайта ( https://sqlite.org/2024/sqlite-dll-win-x64-3460100.zip ) то там в архиве лежит sqlite3.dll.

При этом в документации https://www.php.net/manual/en/ref.pdo-sqlite.php написано:

> This extension requires the following files to be in the PATH: libsqlite3.dll.



Налицо несоответствие имен в документации, в расширении и библиотеке. И не очень понятно, кстати, что за файл положил ты, так как у тебя отключен показ расширений в проводнике и возможно ты вообще sqlite3.exe положил вместо sqlite3.dll.

Попробуй скачать по моей ссылке библиотеку и переименовать ее в php_sqlite3.dll и положить туда. И проверь, что ОС, PHP и библиотека одинаковой битности (я думаю, у тебя 64-битная ОС, но вдруг).

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

Также, настрой уже кодировку в терминале:

Попробуй вводить команды chcp 1251, chcp 866, chcp 65001 и посмотри, исправится ли проблема.

Также, включи показ расширений в проводнике.
231 3300283
>>300125

Так JS тоже однопоточный, несмотря на промисы. Попробуй что-то тяжелое посчитать и у тебя весь веб-сервер зависнет.
232 3300284
Ебать Батя в тред залетел
233 3300285
>>300277

А где у тебя контейнер с php-fpm? Ты только nginx же описал тут. И, конечно, было б хорошо объяснения добавлять, а то образовательная ценность стремится к нулю.
234 3300288
В одном из прошлых тредов у анона с такой же ошибкой оказалось, что imagick два раза упомянут.
235 3300320
На пыхе вообще пишут нормальные сервисы или FastCGI-скрипты высрал@умер из нулевых до сих пор считаются актуальной практикой?
236 3300323
>>300320
Пердеж, ты спокуху то оформи. Совершенство не требует изменений.
237 3300344
>>300281
Да разобрался уже, можно вручную добавить закинув папку и define и через композер поставить
sage 238 3300348
>>300285
Ну так у него только с нжинксом не получается
239 3300392
Только не надо меня слать хуями, я философ!
Внутри тела функции можно объявить локальные переменные. Зачем? Затем, что они нужны только на момент выполнения функции. А что если объекты это и есть функции? Что такое объект с точки зрения наиболее часто даваемого определения? Это совокупность состояния и функций, которые работают с этим состоянием. А что такое локальные переменные внутри функции? Разве не состояние и операции, которые работают с этим состоянием? Отсюда следует, что определяя атрибуты объекта, нужно давать ему такие атрибуты, которые нужны на момент выполнения его методов, а остальные вынести как параметры этих методов. Меня эта тема до сих пор волнует, а именно: как понять какие атрибуты должны быть у объекта? И не заливайте мне о том, что нужно моделировать аналогичный объект из реального мира, ведь в любом случае приходится отбрасывать часть атрибутов из-за того, что они оказываются ненужными для выполнения задачи. Получаются, что нужно отталкиваться не от того, как представлен объект в реальном мире, а от того, какие задачи он решает, какое состояние ему для этого нужно и как я выше написал, нужно делать его атрибутами только те атрибуты, которые нужны на момент выполнения задачи. Что думаете, аноны?
sage 240 3300432
>>300344

> и define



То есть require
241 3300439
>>300392

> Зачем?


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

Сравни
$this->step4($this->step3($this->step2($this-step1())));
И
$step1 = $this->step1();
$step2 = $this->step2($step1);
$step3 = $this->step3($step2);
$step4 = $this->step4($step3);
242 3300450
Кроме того, из-за того, что php - императивный язык, вложенные вызовы не всегда актуальны.
Между вызовами step3() и step4() может быть промежуточный вызов, не возвращающий результата, но оставляющий побочные эффекты, необходимые для корректной работы step4(). В таком случае придется записать результат step3() в переменную и затем передать ее в step4().
243 3300530
>>300392
Думаю, что ты вкатун, который хуйней страдает.
244 3300565
>>300392

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


Охуеть! Он познал АБСТРАКЦИЮ!
245 3300814
>>300283
Так это немного не про то. Тяжелыми вычислениями при желании можно что угодно раком поставить
Асинхронщина.
В JS есть такая штука, называется Event Loop. И вот она позволяет, например, сделать запрос на сервер и как-бы подписаться на ответ. А пока ответа нет выполнять другие команды. А после того, как ответ придет - выполнить ту часть кода, для которой требовались эти данные. И, я так понимаю, пхп из коробки такое делать не умеет?
246 3300850
>>300814

PHP такое делать умеет, но в нем это не очень удобно и никто особо так не делает.

Судя по всему, ты просто не понял, про что я говорил.
247 3300907
>>300320

>FastCGI-скрипты высрал@умер


Ты путаешь FastCGI и CGI. Зачем тебе в принципе своё мнение по этому вопросу? Только честно
248 3300921
>>300907

>Ты путаешь FastCGI и CGI


Ну ок, высрал@умер с пулом заранее заготовленных говнопроцессов, и вся эта хуйня по-прежнему сосёт по производительности у современных технологий примерно в 3 раза. Это всё ещё не сервис, это пачка скриптов, понимаешь, челик? Так делали пердиксы в нулевые. У тя небось ещё и I/O синхронный в твоих говноскриптах, да, скуфандрий?
249 3300934
>>300921
А тебя че трясет то так?
17155817986070.png1 Мб, 1280x720
250 3300980
>>300921
Но есть и плюсы:
в некоторых случаях ты не работаешь на большую корпоративную кассу, а забираешь деньги с этого херово сделанного сайтика себе.

подумай об этом.
251 3301120
>>300921

Тебе надо изучить, что такое FatCGI, потому что по моему, ты ничего не понял. FastCGI процесс не завершается после обработки запроса и может обработать много запросов подряд.
252 3301122
>>300921

Названия "современных" технологий, которые быстрее в 3 раза, и при этом не менее удобны, писать ты, конечно же, не будешь.
253 3301134
>>300392

В атрибуты ты кладешь то, что должно сохранятся между вызовами методов (между вызовами любой пары методов).
254 3301141
>>300237

Вместо того, чтобы сидеть и ждать, лучше что-то изучить новое за это время.
255 3301142
>>293115

В PHP (в отличие от устаревшего Си) длина строки в байтах записана отдельно, и никто по символу ее не считает. А вот если ты вызовешь mb_strlen, то будет подсчет.
256 3301157
>>300237
Да и вообще язык умирает.
Зумеры и вкатыши, учите что-то другое ;)
257 3301292
>>301157
Щас надо учиться на оператора нейросетей, бумерки!
258 3301330
>>300921
Троллинг тупостью
259 3301434
>>300204
Poe через Протон хорошо работает
260 3301441
>>300204
Тебе же сказали ставить WSL, дура. А вообще удаляй эту игру - она только все твое свободное время украдет и ты не вкатишься в айти
261 3301893
>>301157

> ;)


Ебать ты пердикс, чел, тупа кринж.
262 3302117
Хочу сделать сайт на пыхе. Сам не разработчик сайтов, больше по системному программированию (c, asm), но вот появилось желание сделать сайт. Сайт будет достаточно масштабным для меня: регистрация, комментарии, что-то вроде небольшого форума и тд. Стоит ли в рамках обучения это делать на чистом пхп или выбрать Фреймворк по типу симфони? Из плюсов выбора фреймворка это роуты готовые, всякие классы форм, как я бегло посмотрел, безопасность в плане шаблонизатора от всяких xss и тд. Но из минусов это всякие orm(хочу на обычных запросах делать), миллион конфигурационных файлов yaml
Как быть? Можно ли в симфони использовать только действительно нужный мне функционал, как например формы, роуты, шаблон твиг, а остальное уже на своё усмотрение?
263 3302129
>>302117

>Стоит ли в рамках обучения это делать на чистом пхп


Да, а то говнокодером станешь
264 3302154
>>302129
Но ведь если с нуля писать, то там говнокод по идее и будет, с нуля реализовывать mvc, не имея огромного опыта в этом может быть провальной идеей, или стоит попробовать? По идее мне не так важно, чтобы внутри была конфетка, на которую отрадно смотреть, самое главное с безопасностью сайта не наговнять, это одно из моих главных соображений при разработке. Есть какие-нибудь статьи/ресурсы специально под мой кейс?
265 3302216
>>302117

>Хочу сделать сайт на пыхе


Это не задача, это фантазия.

Что тебе конкретно надо?
Тебе нужен форум ДЛЯ ДЕЛА, чтобы на этом форуме завтра общались конкретные люди, котрые сидят и ждут этот функционал?
Тогда бери готовое решение https://flarum.org/ и ставь его.

Ты хочешь изучить язык чисто ДЛЯ СЕБЯ? Разобраться как работают веб приложения, изучить тему? Тогда пиши форум сам, на технологии, котроая позволяет хуячить быстро https://laracasts.com/series/lets-build-a-forum-with-laravel

Ты хочешь получить навык ДЛЯ ЗАРАБОТКА? Тогда ебись с симфони, делай все по бест практисам и въебывай кучу времени.
266 3302227
>>302117
Господи, делай на ларавел и все, ебаный в рот.
267 3302274
>>302117

> Можно ли в симфони использовать только действительно нужный мне функционал, как например формы, роуты, шаблон твиг, а остальное уже на своё усмотрение?


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

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

Т.е. организовать структуру вроде следующей:
Model
| Comment
| | Comment.php
| | CommentRepositoryInterface.php
Infrastructure
| Persistence
| | PdoCommentRepository.php

Ещё можешь посмотреть в сторону микрофреймворков вроде Slim.
268 3302461
>>302274
Разве репозиторий может обращаться к бд? Это же просто хранение сущностей, по идее надо уже другой класс делать для самого обращения к бд?
мимо
269 3302541
>>302461
Просто нужно разделять интерфейс репозитория и его реализации. Слой приложения, дергающий репозиторий видит только интерфейс вроде:

interface CommentRepository {
find($commentId): Comment;
save($comment): void;
remove($comment): void
// ...
}

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

А непосредственной логикой хранения занимаются реализации интерфейса, которых можно придумать безграничное количество: PdoCommentRepository, OrmCommentRepository, CacheCommentRepository, MemoryCommentRepository, FileCommentRepository, ...
270 3302599
>>302541
Спасибо. Есть книги какие-нибудь где про это почитать можно и как потом применять это все на практике? То есть понимать, когда следует использовать определённый паттерн, а когда и без него обойтись можно?
271 3302601
>>302541

>репозиторий - это просто коллекция объектов


>нахуярил метод save

272 3302614
>>302599
Книг посоветовать не могу, но могу указать направление - проектирование и архитектура.
273 3302618
>>302601
Так в Symfony так и есть?
274 3302631
>>302601
Репазиторий это дата шлюз. Остается проблемка
1) DataMapper - бизнес логика должна вызывать метод persist на EntityManager и соответственно получает зависимость от EntityManager, что не очень гуд с точки зрения чистой архитектуры.
2) ActiveRecord - бизнес логика должна вызывать save на объектах, которые возвращаются из репозитория. Соответственно ломается независиость бизнес логики от ORM. Это нарушение закона Деметры.

мимо
275 3302639
>>302601
Строго говоря, это не коллекция, а хранилище слепков объектов. Скрой от клиента явное сохранение слепка и сможешь переименовать в add(), умник.

>>302599
Читать можешь у всяких фаулеров, вон вернонов и т.д. Понимать научишься только через практику.
276 3302641
>>302639
Репозиторий ничего не хранит, это не реалиация хранилища. Это чистый паттерн gateway
16638983287450.png34 Кб, 1488x1488
277 3302643
>>302639

>репозиторий - это просто коллекция


>Репазиторий это дата шлюз


>Строго говоря, это не коллекция


>Репозиторий ничего не хранит


Сколько шизов - столько и мнений.
278 3302648
>>302643
Нужно экспертное мнение codedokode иначе не разберемся
279 3302650
>>302641
Ты говоришь про реализацию, я про api.
280 3302655
>>302643
Нахуй он нужен твой оп. Мне не нужен. Репозиторий как колекция трактуется у мартина фаулера. Но посмотри на практический пример из док симфони https://symfony.com/doc/2.x/doctrine/repository.html
то репозиторий нечего не хранит in memory, это классический шлюз для изоляции бизнес логики от ORM
Пример из nestjs точно такой же https://docs.nestjs.com/techniques/database#repository-pattern
281 3302659
282 3302662
283 3302673
>>302650
Не. Я говорю как раз про паттерн, а не реализацию.
https://martinfowler.com/articles/gateway-pattern.html

>An object that encapsulates access to an external system or resource


>A gateway is typically a simple wrapper.



А зачем Фаулер говорит про in-memory collection я хз. На практике я такого не видел, определение Фаулера вводит в заблуждение

https://martinfowler.com/eaaCatalog/repository.html

>A Repository mediates between the domain and data mapping layers, acting like an in-memory domain object collection.


И то он написал acting like а не is
284 3302674
Ну в общем по последним постам было установлено, что никто и никогда точно не разбирается во всех этих паттернах проектирования, что как бы и наводит на мысль о бесполезности всего этого, поскольку вводит только в заблуждение
285 3302676
>>302673

>А зачем Фаулер говорит про in-memory collection я хз.


Затем что это писалось для нормальных языков, а не для однопоточных одноразовых пхп ебланов?
287 3302694
>>302674
Нет это не совсем так. Ждун напишет. скл портянку в контроллере, а лид как закричит
- Долбаеб, тонкие контроллеры!
Джун испугается и вынесет весь код в сервис. Тимлид увидит это и опять закричит
- Долбаеб, вынеси запросы в репозиторий!
751843.webp60 Кб, 1200x800
288 3302698
>>302685

>Фаулер говорит


>Kerim Kara

289 3302705
>>302698
Покажи другой пример. Репозиторй это кеш по-твоему, чтобы он был одновременно коллекцией in-memory и посредником? Я понимаю он хотел сказать что репозиторй содержит методы типичные для коллекций. Но это не суть паттерна репозиторий, суть в том что это обертка-посредник.
290 3302759
>>302705

>он хотел сказать


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

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

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

Поэтому он блядь и остается просто ин мемори коллекцией, которую анализируют другие сервисы и построив по этой коллекции список изменений сохраняют данные туда куда надо и как надо.
image.png74 Кб, 240x240
291 3303051
Ребята примите в php семью
Я устал быть никем и бояться вката
Увидел в шапке книжку с аниме картинками и я смотрю аниме так что мне сюда
Я больше не боюсь не вкатиться я боюсь ничего не делать ещё 5 лет подряд
292 3303062
>>303051
Тут сидит только агрессивное быдло.
17084507329840.webm1,2 Мб, webm,
584x472, 0:11
293 3303099
>>303062

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


>>303051

>я смотрю аниме


>я боюсь ничего не делать ещё 5 лет подряд


Ну так отлично вписывается. Поскроллит пару лет тред вместо вката и тоже начнет рассказвать как надо репозитории строить, при этом ни строчки кода так и не написав.
294 3303104
>>303051
Иди в тестировщики лучше, там за месяц можно вкатиться, а на разраба, даже пхпшника, придется долго и упорно учиться.
295 3303108
>>303104
да-да, лал, у меня один знакомый дЖва года уже вкатывается в тестировщики
image.png102 Кб, 640x640
296 3303117
>>303062
Это просто не правда, зачем ты врешь мне, анон?
Когда я заходил сюда 5 лет назад с вопросом о тупейшей задаче мне очень вежливо ответили и указали на недостатки
297 3303126
>>303051
А нахуй нам в пхп-семье анимешник? Пиздуй в петухон или джс
298 3303128
>>303117
И почему ты не вкатился 5 лет назад в пыху? Причина?
sage 299 3303129
>>303128
Пинал хуи и плакал, больше причин не бывает. Может быть ещё он просто ДУМАЛ вкатить но не вкатывался, но это проходит за выше обозначенные причины.
300 3303133
Я никак не могу создать синоним/алиас к namespace? У меня есть куча функций, к которым я хочу открыть доступ из нескольких пространств (со стороны пользователя, само собой):
ns1\funcA();
ns2\funcA();
ns3\funcA();
funcA() везде одна и та же. И таких функций, как она, много.
301 3303216
>>303133
use Foo1\Bar1\Namespace1 as ns1;
use Foo2\Bar2\Namespace2 as ns2;

ns1\funcA();
ns2\funcA();
302 3303227
>>303128
А ты почему не вкатился?
Не знал об айти?
Как и все потыкал чето решил что не мое что тупой и забил
303 3303242
>>303117
В том и разница, что сюда сто лет никто не приходит с задачами. Никто код не пишет. Просто пытаются превратить тред в филиал "перезвоним" шизочата.
304 3303267
>>303216
К сожалению, не подходит. Мне нужно, чтобы работало следующим образом:
Foo1\Bar1\Namespace1\funcA();
Foo1\Bar1\ns1\funcA();
Это вложенное пр-во. Очень жаль, что нет такой возможности в языке.
305 3303271
>>303227

>Как и все потыкал чето решил что не мое что тупой и забил


А сейчас поумнел?
306 3303278
>>303117
Если бы ты сидел в этом треде каждый день, как и я, то ты бы со мной согласился. Я сижу в этом треде уже год и только наблюдаю мертвый тред и агрессивное быдло. Единственный человек, который нормально отвечает, это ОП, но он бывает тут редко, возможно, и тогда ответил тебе именно он.
307 3303281
>>303242
Приходишь с задачей, вопросом, кодом.
Ожидание: конструктивный добрый ответ.
Реальность:
- игнор;
- агрессивный ответ.
Либо ответят троллингом, либо плохим советом, либо с наездом "ты хули задаешь вопрос по теме, которую не знаешь?", либо вообще не по теме, либо прямо не отвечают на вопрос.
308 3303401
>>303281
Где твой вопрос с кодом? Кидай линк.
309 3303431
>>303227
Я восимь лет назад вкатился. Пять лет назад тоже было просто прийти в студию и сказать что хочешь делать сайты. Ну задали бы тебе пару вопросов про ООП и CSS, для ответа на которых хватило неделю чтения смехуечков на программаче.
310 3303533
Нормальному программисту достаточно иметь развитое алгоритмическое мышление, все остальное учится за неделю непосредственно на работе. Лучше задачи решайте на алгоритмы
image.png438 Кб, 473x720
311 3303549
>>303281

>2ch


>Ожидание: конструктивный добрый ответ.

312 3303551
>>303533

>Лучше задачи решайте на алгоритмы


Тебе платят деньги за решение бизнес-задач, а не тупые алгоритмы которые нужны только чтобы пройти собес в Яндекс, сбер и другие параши
313 3303567
>>303551
Так ты 1 из 10000 заменяемых мартышек которая кодер, а не программист
Screenshot 2024-10-20 173458.png8 Кб, 548x62
314 3303571
>>303567
Залупа понурая, ты стекломоя наебнул и в пространстве не ориентируешься? Ты в каком треде находишься сейчас, синька?
315 3303577
>>303533
>>303567
Обосрался с этого илитария, который пришел в тред пхп рассказывать про алгоритмы.
image.png137 Кб, 168x300
316 3303579
>>303571
прости что задел твое хрупкое эго кодомартышка а я анонов наставляю на истинный путь и собратьев по пхп
17281678808030.webm603 Кб, webm,
640x480, 0:04
317 3303583
>>303579

>собратьев по пхп


>алгоритмы

318 3303584
>>303583
Учи их и сможешь легко перекатиться когда пхп умрет
319 3303586
>>303584
Какие алгоритмы ты уже выучил?
320 3303594
>>303584
Сколько лет это твердят уже, напомните-ка?
Screenshot 2024-08-28 115647.png962 Кб, 1832x1098
321 3303601
322 3303606
>>303584
А пыха умрет вместе с вебом или как-то отдельно сама по себе? Если сама по себе, то в вебе, если уж на то пошло, гораздо полезнее паттерны знать.
323 3303608
>>303606

>Знать ооп кал в 2к25

324 3303617
>>303608
А что надо знать в 2к25?
325 3303625
>>303617
То на что заменяют пхп прямой сейчас? Тайпскрипт, го. Там нихуя этой ооп дрисни нет.
326 3303627
>>303625

>Тайпскрипт


>нет паттернов


Я тебя понял. Дальше можешь не продолжать.
327 3303629
>>303625
В голосину
328 3303809
>>303617
Как понравиться эйчарке
329 3303847
>>303625

>Тайпскрипт


>Там нихуя этой ооп дрисни нет.


Ох ебать
330 3303868
>>302117

Если ты хочешь именно разобраться, то возможно, стоит попробовать начать без фреймворка (чтобы понять, как все работает), а потом перейти на фреймворк (чтобы не изобретать велосипеды). Советую Симфони. Понадобится знание ООП, MVC, паттернов.
331 3303870
>>302117
Если хочешь разобраться реально, то возьми хотя бы slim, как тебе выше советовали, и подрубай там к нему че хочешь.
332 3303871
>>302117

> Как быть? Можно ли в симфони использовать только действительно нужный мне функционал, как например формы, роуты, шаблон твиг, а остальное уже на своё усмотрение?



Можно. Сейчас фреймворк Симфони делается из компонентов, и ты можешь подключать только нужные. Или ты можешь создать свой собственный фреймворк, используя компоненты Симфони: https://symfony.com/doc/current/create_framework/index.html

И, кстати, официальные туториалы по Симфони довольно хорошие.
333 3303872
>>302154

Могу дать пару статей по безопасности: https://github.com/codedokode/pasta/tree/master/security
334 3303877
>>302631

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

Не очень представляю, как это должно работать с active record, но тут тоже save должен делать репозиторий.
335 3303889
>>302655
>>302641

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

https://martinfowler.com/eaaCatalog/repository.html

Пояснения для начинающих:

Domain Model (модель предметной области, "доменная" модель) - это набор классов, которые описывают предметную область. Например, для доски объявлений это будут классы Пользователь, Категория, Объявление.

Data Mapping Layer (слой отображения данных (на таблицы)) - это код, который занимается сохранением и загрузкой в/из БД объектов предметной области.

Collection, "Коллекция" - это класс, который имеет методы вроде "добавить объект", "убрать объект", "найти объекты по условию".

В принципе, этих 2 слоев (Domain Model и Data Mapping Layer) достаточно, но иногда можно сделать "репозиторий" перед Data Mapping Layer, и работать с репозиторием вместо Data Mapping Layer. Для кода репозиторий выглядит как "коллекция", то есть мы можем добавлять в него объекты, удалять, искать по условиям.

Например, когда пользователь добавляет Объявление, мы создаем такой объект и вызваем у репозитория метод "добавить объявление". А при просмотре Категории мы вызываем метод репозитория "найти объявления из данной категории с сортировкой по дате".

При этом, может быть несколько реализаций (вариантов) репозитория: одна реализация использует БД в качестве бекенда и сохраняет объекты туда. А другая - для тестов - просто хранит объекты в памяти в массиве. Код не знает, что использует репозиторий в качестве бекенда, ему это не важно.

Или же (как на картинке в статье), может быть один вариант репозитория, но разные "стратегии сохранения данных": одна Стратегия сохраняет в базу, другая в массив.

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

> Objects can be added to and removed from the Repository, as they can from a simple collection of objects, and the mapping code encapsulated by the Repository will carry out the appropriate operations behind the scenes.



Объекты (модели предметной области) можно добавлять и удалять из Репозитория, как будто это просто коллекция (массив) с объектами, и код для отображения внутри Репозитория выполнит нужные операции сам.

> Conceptually, a Repository encapsulates the set of objects persisted in a data store and the operations performed over them, providing a more object-oriented view of the persistence layer.



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

> то репозиторий нечего не хранит in memory, это классический шлюз для изоляции бизнес логики от ORM



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

Слово "шлюз" не очень удачное, так как уже есть паттерн Gateway для обращения к внешнему API или программам ( https://martinfowler.com/articles/gateway-pattern.html ).

> Репозиторий ничего не хранит, это не реалиация хранилища. Это чистый паттерн gateway



У Фаулера gateway это клюз к внешним системам.
335 3303889
>>302655
>>302641

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

https://martinfowler.com/eaaCatalog/repository.html

Пояснения для начинающих:

Domain Model (модель предметной области, "доменная" модель) - это набор классов, которые описывают предметную область. Например, для доски объявлений это будут классы Пользователь, Категория, Объявление.

Data Mapping Layer (слой отображения данных (на таблицы)) - это код, который занимается сохранением и загрузкой в/из БД объектов предметной области.

Collection, "Коллекция" - это класс, который имеет методы вроде "добавить объект", "убрать объект", "найти объекты по условию".

В принципе, этих 2 слоев (Domain Model и Data Mapping Layer) достаточно, но иногда можно сделать "репозиторий" перед Data Mapping Layer, и работать с репозиторием вместо Data Mapping Layer. Для кода репозиторий выглядит как "коллекция", то есть мы можем добавлять в него объекты, удалять, искать по условиям.

Например, когда пользователь добавляет Объявление, мы создаем такой объект и вызваем у репозитория метод "добавить объявление". А при просмотре Категории мы вызываем метод репозитория "найти объявления из данной категории с сортировкой по дате".

При этом, может быть несколько реализаций (вариантов) репозитория: одна реализация использует БД в качестве бекенда и сохраняет объекты туда. А другая - для тестов - просто хранит объекты в памяти в массиве. Код не знает, что использует репозиторий в качестве бекенда, ему это не важно.

Или же (как на картинке в статье), может быть один вариант репозитория, но разные "стратегии сохранения данных": одна Стратегия сохраняет в базу, другая в массив.

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

> Objects can be added to and removed from the Repository, as they can from a simple collection of objects, and the mapping code encapsulated by the Repository will carry out the appropriate operations behind the scenes.



Объекты (модели предметной области) можно добавлять и удалять из Репозитория, как будто это просто коллекция (массив) с объектами, и код для отображения внутри Репозитория выполнит нужные операции сам.

> Conceptually, a Repository encapsulates the set of objects persisted in a data store and the operations performed over them, providing a more object-oriented view of the persistence layer.



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

> то репозиторий нечего не хранит in memory, это классический шлюз для изоляции бизнес логики от ORM



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

Слово "шлюз" не очень удачное, так как уже есть паттерн Gateway для обращения к внешнему API или программам ( https://martinfowler.com/articles/gateway-pattern.html ).

> Репозиторий ничего не хранит, это не реалиация хранилища. Это чистый паттерн gateway



У Фаулера gateway это клюз к внешним системам.
336 3303893
>>302705

Это посредник, который делает взаимодействие с хранилищем более конкретным, "объектно-ориентированным", как выражается Фаулер.

Без репозитория, у тебя будут общие методы вроде "найти записи в таблице по критерию", "вставить запись", "обновить запись", "удалить записи по критерию".

С Репозиторием у тебя будут более конкретные методы: "добавить объявление", "скрыть объявление", "поднять объявление", "удалить устаревшие объявления", "найти новые объявления", "найти объявления пользователя".
337 3303898
>>302759

Нет, он не является коллекцией, а выглядит для вызывающего кода как коллекция.

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



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

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



Я не вижу такого у Фаулера: https://martinfowler.com/eaaCatalog/repository.html - на диаграмме взаимодействия именно репозиторий инициирует поиск/сохранения данных.
338 3303900
>>303133

А зачем тебе несколько синонимов для одной функции? Обычно ты просто импортируешь функцию как:

use function Database\Util\quoteIdentifier;

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

>>303551

Зная алгоритмы, ты сможешь придумать решения получше.
339 3303908
>>303625

на HH:

Москва, разработчик PHP - 1071 вакансия
Go - 855 (+ есть еще 655 golang, но я не знаю какая часть пересекается с Go)
Typescript - 956
Python - 2679
JS - 2297
Java - 1945
C++ - 1237
C# (.NET) - 872
C - 3073 (но там в поиске много мусора, например "B2C" подпадает под этот запрос)
Rust - 71
Элита этой доски, Haskell - 3 ☺️

Тайпскрипт мне не нравится тем, что у него в основе лежит JS со всем его дремучим легаси. Назови аналог Доктрины, Симфони на тайпскрипте? Или Тайпскрипт только для чатиков на 500 строчек годится?

Go мне не нравится странными идеями его автора. Назови аналог Доктрины, Симфони на Go? Или Go только для чатиков на 500 строчек годится?

Мне нравятся: Питон (где не нужна скорость), Rust (где нужна), Vue (для прототипов UI, где надо сделать побыстрее, не для серьезных задач).

Объекты и классы нужны обязательно, как без них.
image.png19 Кб, 855x87
340 3303977
Ну вот кто тут пиздит суканах что жс не требуют?
В 9 из 10 вакансий он есть вот просто сука как железное требование сидит ты обязан знать или иди нахуй
341 3303979
>>303977
Скидывает 1 скрин и пишет, что в 9 из 10 вакансий есть, ну что за еблан
342 3303981
>>303979
Пыхалахта спок. Тут каждый может лично проверить зайдя на хх что я прав
343 3303982
>>303981
https://hh.ru/vacancy/107611710?query=php&hhtmFrom=vacancy_search_list
https://hh.ru/vacancy/107615499?query=php&hhtmFrom=vacancy_search_list
https://hh.ru/vacancy/108370821?query=php&hhtmFrom=vacancy_search_list

Тыкнул в 3 рандомные первые попавшиеся вакансии. Продолжай рассказывать про обязательный js, нам очень интересно
344 3303986
>>303900
Длинные-короткие варианты, во-первых. Одни читаемы, другие компактны. yet_another_compiler и yac. Во-вторых, что-то пишется по-разному, а означает одно и то же. ffmpeg и avconv.
Есть же class_alias, почему бы не быть namespace_alias.
345 3303988
Потому что из глобали должна присутствовать возможность использовать любой удобный вариант:
linux\ffmpeg\exec()
linux\avconv\exec()
Однако такой возможности нет. Есть только некий алиас внутри любого пр-ва. Но я даже не могу прописать глобальное use linux\ffmpeg as linux\avconv. Хотя вроде бы было бы логично.
image.png1,5 Мб, 1200x800
346 3303992
>>303982

>сидел выискивал подходящие


>Тыкнул в 3 рандомные первые попавшиеся

347 3303994
>>303898

>Ехала доктрина через доктрину


Орм протекла тебе в труханы. Изолировали изолировали да не выизолировали.

>Я не вижу


Кушай морковку.

>сохранения данных


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

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

Еще и оторвать это говно от проекта будет невозможно. Банально выходит третья доктрина, а додики уже настолько зависимы от особенностей второй версии что им для перехода на новую нужны тысячи человекочасов.
a03370bdd41f239550f13f91c83d4f82.png1,1 Мб, 1600x1200
348 3304012
>>303908

>лежит JS со всем его дремучим легаси


Каким нахуй легаси? Жс макаки уже сто лет как пишут на подмножествах языка типа ECMAScript и тайпскрипта и никакого "легаси" в глаза не видели.

>Назови аналог Доктрины, Симфони на тайпскрипте?


Ну вот https://typeorm.io/ , дело тут исключительно в популярности. Как только на жабоскрипте взлетит аналог ларавеля - пхп тут же пизда. Даже кривая уебищная нода отъела часть рынка. А как только появится что-то нормальное, пхп макаки тупо станут не нужны, так и будут легаси десятилетней давности поддерживать.

>Назови аналог Доктрины, Симфони на Go?


Напиши в го треде этот вопрос, развлеки пацанов.

Вся эта орм-спринг залупа заебала всех в край еще лет десять назад. Все уже давно отсмеялись над абстрактными фабриками фабрик, бесконечными аннотациями и прочим говном. И только пхп уверенно колеса катит туда где была джава десять лет назад. И похуй что от джавы всех давно тошнит и все это считается устаревшим многословным калом. Мы блядь едем. Сделаем так же но хуже, с опозданием на десять лет. И не в коем случае не сдохнем.
План надежный, стоит вкатываться.
349 3304019
>>303992
Понимаю, что для йододефицитного сложно ввести в поиск "php" и поглядеть первые 5-10 вакансий. Но поверь, это не так трудно
350 3304029
>>303977
Но ты и правда долбоеб. Фронт просят почти в 2/3 вакансий, что даже и близко не 9/10. Но даже отсеивая вакансии с фронтом, мы получаем больше 1к вакансий - откликайся, не хочу.
Но поплакать на двачике важнее, чем немного применить мозги
image.png19 Кб, 1009x155
351 3304030
>>304029
Скрин отвалился
352 3304039
>>304012

> как только появится что-то нормальное, пхп макаки тупо станут не нужны


Джава не похоронила пыху, шарп не похоронил пыху, петухон не похоронил пыху, даже говноланг не похоронил, а лишь дополнил, но вот джс обязательно похоронит, вот-вот, надо лишь немного потерпеть!
353 3304042
>>304029
>>304030
Орнул.
Ты в дсах смотри нахуй мне мухосранские вакансии?
1000016772.jpg470 Кб, 1080x2400
354 3304044
Наайс конкуренция как в питоне уже
355 3304046
>>304042

>рряяяя вакансий нет


>так вот же вакансии


>ррряяяя не те вакансии!11


Очередной троллинг тупостью
356 3304060
>>304039
Бля, ну вот хуй знает. Ну как с долбоебами разговаривать? Кто там писал про агрессию? А как нахуй без агрессии с вот такими поленьями разговаривать?

Как это в твоем тупорылом понимании работать должно? Джава или шарп своими действиями ЗАПРЕЩАЮТ писть код на пхп? Или как блядь? Пхп сервера отключаются потому что вышел новый язык?

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

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

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

Ответ: а он уйдет. Раньше были звоночки, а сейчас вам в КОЛОКОЛ НАХУЙ ЕБАШУТ. То что делало пхп долю рынка огромной - вордпресс перекатывают на жабоскрипт. И перекатят. И че останется? Дрочить копейки в столетнем легаси кале на битриксе? Если для тебя, тупорогого это и есть "не похороны", то хули тут сказать? Кайфуй, перспективно, свежо. На это стоит въебать жизнь.
357 3304071
>>304060
Главное, почаще это писать, и тогда точно сбудется! Нужно верить!)
Ножкой сколько раз топнул , пока писал?
1729494902143.jpg99 Кб, 657x898
358 3304077
Php умирает?
359 3304083
>>304060
Людей, которые прогнозируют какие-то вещи, не приводя пруфов, статистики, аргументированной аналитики, в моей молодости называли пиздоболами. Особо упрямым еще и ебало били в кровь.
360 3304103
>>304029

>Фронт просят почти в 2/3 вакансий, что даже и близко не 9/10


Ну 6\10 - это довольно таки близко к 9\10...
361 3304105
>>304083
Но разве становление вордпреса жс фёрст по мнению его основателя это не аргумент? Даже сам Расмус Лердорф говорил что вордпрес это база пыхи, а не эти ваши хреньворки.

мимо
362 3304107
>>304105
База пыхи - ето битрикс!
363 3304111
>>304107
Как нехуй делать на голенг перепишут. Большая компания. Они облако развивают.
364 3304112
>>304060
Да уйдет и уйдет, ваще поебать. Направление работы остается тем же.
Дохуя пхп макак и го тыкает периодически и с фронтом работает.
В рамках одного направления хули бы не полистать доку и не перекатиться тихонько.
365 3304120
>>304077
Мем смешной, ситуация страшная.
366 3304150
>>304071
Пруфстер, а ты видел где-то обратное? Ты где видел какой-то рост пхп?
Какбы факт падения даже не обсуждается. Весь спор идет только о том насколько быстро падает.

>Направление работы остается тем же


И каким же, долбоебина? Копаться в битрикс кале? Заебись направление. Перспективное.
367 3304157
>>304150

>И каким же, долбоебина? Копаться в битрикс кале? Заебись направление. Перспективное


Веб разработка, шлюха тупорылая.
368 3304172
>>304150
Просто отвалился вордпресс. Популярность лары, симфы и yii никуда не делась, че высрать-то хотел?
369 3304217
>>304172
Нихуя не просто, а по причине

другой анон
370 3304218
>>304157
Битрикс24? Такой-то ВЕБ.

>>304172
Популярность относительно чего? Симфони даже внутри пхп это мизерная доля. А ларавель через несколько лет вообще с исходным пхп нихуя общего иметь не будет.
371 3304231
>>304218

>А ларавель через несколько лет вообще с исходным пхп нихуя общего иметь не будет.


Верим
372 3304249
>>304218

>Битрикс24? Такой-то ВЕБ.


Че ты несешь, шиз ебаный?
373 3304355
>>304231
Верь, не верь. А там уже сейчас свой мир с ебанутыми фасадами и классами, которые пол фреймворка наследуют.
Screenshot 2024-10-19 at 11-00-41 2024 – ХУДШИЙ ГОД ДЛЯ ИЗУЧЕНИЯ ПРОГРАММИРОВАНИЯ (слишком поздно).png1,2 Мб, 1422x676
SAGE 374 3304391
>>303051
ВКАТ ВСЁ
375 3304456
>>304391

>очередной инфоцыган высрал инфоцыганский видос


очень интересно.
376 3304473
>>304456
А что интересно?
Гайд из шапки двенадцатилетней давности? Или мнение долбоебов которые в треде пять лет сидят, но не то что работать, ни одной строчки кода не написали?
377 3304492
>>304473

>Гайд из шапки двенадцатилетней давности?


Вообще-то пятилетней давности...
378 3304494
>>304355
И че они там, не на пыхе написаны?
379 3304554
>>304473

>А что интересно?


>Гайд из шапки двенадцатилетней давности? Или мнение долбоебов которые в треде пять лет сидят, но не то что работать, ни одной строчки кода не написали?


Неиронично это интересней очередного хуесоса пиздобольного с ютуба с кликбейтом для даунов типа тебя.
380 3304607
>>303051

>Ребята примите в php семью



А зачем тебе? Работа на PHP это по сути даже не айти. Так, веб скриптинг
381 3304620
>>304607

>Работа на PHP это по сути даже не айти


Но и не копка траншей
382 3304622
>>304620
Ну да. Где-то на уровне протирания жопы на кассе в говнерочке.
383 3304623
>>304494
Они там "уже написаны". И ты будешь только все это гвоно перставлять, а не код писать.
384 3304633
>>304623
А надо каждый раз с нуля все хуярить, чтобы быть ТРУ?
385 3304634
>>304622
Такое кукарекать может только петушара, которая ни на кассе никогда не стояла, ни траншеи не копала, ни даже за пределы мкада не выезжала, скорее всего.
386 3304661
>>304623
Опять троллинг тупостью, еблуша не в кусре, что такое фреймворк
387 3304669
Смотрю, как неосиляторы уже который год (или десятилетие?) кукарекают про умирающий пыхапе, и довольно урчу, попердывая в интырпрайз за 380к
388 3304670
Строго говоря, любой высокоуровневый язык программирования "уже написан", и ты только абстракции переставляешь. Там уже ничего общего с реальным написанием кодов...
sage 389 3304880
>>304669
А потом ты обосрался и проснулся битриксоидом за 20к.
390 3304886
>>304880

>проснулся битриксоидом за 20к.


Прямо по больному месту ударил :(
391 3304893
>>304880

>Врёти!!!11


Не трясись так
392 3304963
>>304669

>интырпрайз


На жабе что ли?
393 3304964
>>304012

> Как только на жабоскрипте взлетит аналог ларавеля


Не взлетит они спринг копируют или пыху десятилетней давности
394 3304966
В чем вообще велью аналога ларавеля на другом языке, если ларавель сам по себе является аналогом RoR?
395 3304967
>>304060

>То что делало пхп долю рынка огромной - вордпресс перекатывают на жабоскрипт. И перекатят.


Это правда или твоя фантазия?
396 3304975
>>304964
>>304967
Да иди ты нахуй, черт. Может блядь тред почитаешь для разнообразия? Щас я каждому хуесосу буду все с начала повторять.
397 3304981
>>304975
Поплачь еще
398 3304992
>>304012

>>лежит JS со всем его дремучим легаси


> Каким нахуй легаси? Жс макаки уже сто лет как пишут на подмножествах языка типа ECMAScript и тайпскрипта и никакого "легаси" в глаза не видели.



ECMAScript это и есть тонна дремучего легаси. Примеры:

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

>>Назови аналог Доктрины, Симфони на тайпскрипте?


> Ну вот https://typeorm.io/ ,



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

Интересно, кстати, что он так похож на Доктрину, что переучиться наверно можно за день. Такие же классы с аннотациями, как будто с PHP никуда и не уходил. У них еще и валидатор похож на тот, что в Симфони. Ну правда, все почти как в PHP.

Но вот PHP не надо компилировать при редактировании, а тайпскрипт надо. Да, там система типов получше, но в PHP через phpDoc тоже можно сложные типы городить.

> Вся эта орм-спринг залупа заебала всех в край еще лет десять назад.



Ты считаешь, что база данных больше не нужны и не актуальны? Или какую альтернативу ты предлагаешь для ORM? Руками SQL-запросы писать? Напиши конкретно.
399 3304993
>>303986

При импорте ты можешь создать синоним:

use function My\longNamedFunction as lnf;

Но это ухудшит читабельность и понятность. Мне не хочется расшифровывать сокращения при чтении кода.
400 3304996
>>303994

Я об этом написал в своем посте, но может быть я плохо выразил мысль. На схеме у Фаулера изображен Репозиторий и у него есть (увеличено на твоей картинке) Стратегия сохранения данных, в данном примере это Стратегия сохранения в память. Но само название "Стратегия" подразумевает что она может быть заменена на другую Стратегию - например, Стратегию сохранения в БД, Стратегию сохранения в key-value хранилище и тд. Слово "strategy" в названии это отсылка к паттерну Стратегия. Там не написано "in-memory storage", а "in-memory strategy"

То есть, на диаграмме у Фаулера показана идея, что есть Репозиторий, с которым работает код, а в качестве бекенда к Репозиторию можно подключить одну из Стратегий, и таким образом выбрать, куда будут сохраняться данные. Логика сохранения данных специально вынесена из Репозитория в Стратегию, чтобы ее можно было менять. Но я бы назвал Стратегию (заменяемой) частью Репозитория.

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

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



Так а куда данные сохранять? Ты от БД предлагаешь отказаться или предлагаешь какой-то альтернативный способ сохранять данные? Какой?
401 3305001
402 3305005
>>304060

Ты все упрощаешь. Перевод сайта на SPA имеет и недостатки:

- медленная загрузка, покажи мне SPA, которое при холодной загрузке показывает контент, а не крутящийся круг
- большая нагрузка на браузер из-за мегабайтов, как правило, не оптимизированного JS-кода

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

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

Что касается Го, я ловлю себя на мысли, что было бы интересно попробовать писать на нем нативные GUI-приложения с GTK вместо Си++, так как он более высокоуровневый и в нем есть сборка мусора. Если там есть еще какая-то реактивная или data binding библиотека, я определенно хотел бы попробовать написать, например, простую DAW или отладчик. Хотя Go не для этого делался, но все равно хочется попробовать.

> микросервисы



Отличный способ тратить деньги работодателя и время, не принося ничего взамен.
403 3305006
>>304996
Залупа ты понурая. В том-то и дело что In memory стратегия превична. И остальные стратегии не должны протекать в репозиторий и менять его. В in memory стратегии нет save, значит и во всех остальных нет.

>Так а куда данные сохранять?


Туда же куда и раньше. Просто делать это надо не в репозитории. Твоя же любимая доктрина именно так и работает. Ты просто меняешь свойства объектов. А уже потом, когда контроллер отработал вызывается flush в специальной мидлвари, и доктрина чекает все изменения объектов, которые лежат в identity map и выполняет нужные sql запросы.
404 3305009
>>304060

И ты не учел, что перейти с PHP на другой язык, например, Питон или Го, относительно легко. Так что если завтра PHP закончится, я могу писать на Си, Раст, Питон, Го, JS, Тайпскрипт, и на других языках при наличии документации.
405 3305010
>>304150

А почему такое падение в 2021? Оно больше напоминает какую-то техническую ошибку (отвалился один из источников данных или поменялся способ подсчета), чем массовый уход с PHP. Массовый уход выглядел бы скорее как наклонная прямая или экспонента, а не резкий скачок.

А то как-то странно, тут за 1 неделю половина разработчиков ушла с PHP.
406 3305012
>>305009

>И ты не учел, что перейти с PHP на другой язык, например, Питон или Го, относительно легко


Потому что...? Да хуй знает почему, просто высрал хуйню.

Все буквально наоборот. Пхп со всем остальным программированием пересекается минимально. Пхп макаки литературно не знают никакого CS и ни на каком другом языке писать не умеют, еще и на более низкоуровневом. 90% пхп макак даже ооп не осилили. Так и хуярят скриптовые портянки, а классы используют как папки для функций.
407 3305015
>>305006

Доктрина в репозиториях ничего не хранит, обычно это просто набор методов findBySomething, которые делают запрос и возвращают список сущностей. Доктрина хранит все в Identity Map и UnitOfWork.

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



В Доктрине нет middleware никакой. Ты, наверно, имел в виду middleware из какого-то фреймворка.

> и доктрина чекает все изменения объектов, которые лежат в identity map и выполняет нужные sql запросы.



Верно.

> В том-то и дело что In memory стратегия превична. И остальные стратегии не должны протекать в репозиторий и менять его.



Стратегия подразумевает возможность заменить ее на любую другую. Очевидно, что в примере in-memory используется для упрощения диаграммы, чтобы не рисовать, как данные идут дальше в ORM и в базу данных.

И прочитай еще раз внимательно статью: https://martinfowler.com/eaaCatalog/repository.html

> A Repository mediates between the domain and data mapping layers



Написано, что это слой между доменной моделью и слоем сохранения данных.
408 3305016
>>305012

Откуда ты взял число 90%? Ты исследование читал или проводил? А то я так же могу тебе много чего рассказать про 90% TypeScript и Го-разработчиков.
409 3305019
>>305016
Ну конечно блядь, разумеется. Пхп макаки это титаны мысли. Именно таких свергениев-уберменшей и производит среда из битрикса, ларавеля и вордпресса.
410 3305023
>>305015

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


Ноу щит шерлок. Именно поэтому интерфейс, общий для ВСЕХ стратегий, определяется In memory стратегией, а не sql залупой.

>A Repository mediates between the domain and data mapping layers


>Написано, что это слой между доменной моделью и слоем сохранения данных.


Ебать ты чтец залупоглазый. "Data mapping" оказываетвся переводится как СОХРАНЕНИЕ.
Вся суть. Двух слов прочитать не может, но на серьезном ебале пытается кого-то поучать, о чем-то спорить. Пустая трата времени - пытаться таким оленям что-то объяснить.
411 3305046
>>305019
Ебать тебя трясет ИТТ. Тебя когда-то толпа пхпшников изнасиловала?

Для того, чтобы освоить другой язык В РАМКАХ ТОЙ СФЕРЫ, В КОТОРОЙ ТЫ И ТАК РАБОТАЕШЬ, не надо быть гением мысли.
412 3305061
>>305046
Сферы, хуеры. Давай побольше пизди.
Чтобы в эти сферы устроиться тебе придется пройти собес, на котором тебе будут два часа водить хуем по губам, а твой охуительно полезный опыт писанины на пхп даже читать никто не будет. Да ты и сам его из резюме вырежешь, чтобы не позориться, когда поймешь что без него приглашают чаще.
413 3305072
>>305023

>Data mapping" оказываетвся переводится как СОХРАНЕНИЕ


МГИМО финишд
Untitled.jpg75 Кб, 832x486
414 3305074
415 3305145
Год назад вкатился в пхп, полет нормальный. Язык неплохой, местами очень удобный для своих задач, но по ощущениям - потолок здесь ниже, чем в го/джаве. Т.е. условный сеньор на джаве это 500к, а на пыхе - 300. Но мне и так нормально, не вижу особо смысла перекатываться в джаву и изучать тамошний зоопарк, а от ГОвна вообще тошнит.
416 3305148
>>305145
А тебе есть с чем сравнивать?
417 3305151
>>305148
Учил питон до пыхи, трогал плюсы в молодости.
image.png3,8 Мб, 1599x1069
418 3305158
а мне джава нравилась больше, щас пхп учу и что то не то
419 3305170
>>305145
Так джава и сложнее х2
420 3305195
>>305145
Хуй с ним с потолком, но хули большинство работодателей в рф считает что пыхарю джуну не нужно платить больше 30-40к когда в других языках давно уже зп от 70к
421 3305222
>>305145

>потолок здесь ниже, чем в го/джаве. Т.е. условный сеньор на джаве это 500к, а на пыхе - 300


Забыл добавить что чистый пыхарь столько не получает, либо фулстак либо пыхарь-гошник
422 3305243
>>305222
Хуйню не неси, даже в моей говногалере чистый пыхарь-сеньор 300 получает, фронт не трогает, го в помине нет
423 3305252
>>305243
Да я прикололся чтоб проверить реально ли есть лохи сеньки пашущие за 300к и реально один такой вылез
image.png137 Кб, 600x225
424 3305261
425 3305279
>>305261
Я знал что тебя это заденет и ты скинешь именно эту пикчу
Ты даже не программист нихуя а стремящийся шкила
426 3305283
>>305279
оооо преклонитесь перед ним
он же самПРОГРАММИСТ
427 3305312
>>305279
О, шиз, который нонстоп тут хуячит "пыхеры больше 250 не получают", как дела?
Ты тот же шиз, который про "пхп не нужен, все перепишут на джс и го" затирает частенько?
428 3305331
>>304992

>ECMAScript это и есть тонна дремучего легаси.


Люто двачаю весь js мир это тонны легаси с обратной совместимостью, там даже новые версии ничего не исправят
429 3305382
>>305061
Ты даже не пытаешься работать тонко, додик...
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

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

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