Предыдущий тред был тут: >>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 месяцев
ИДЕ для пхп мне сделай бесплатную
Ну ты понел
В нетбинсе есть бесплатная пыха иде. Только там плагины для симфони и пр устарели. Но они опенсорсные возьми и сам пофиксь.
>Вы даже иде бесплатную сделать не в состоянии. О чем вообще ты говоришь?
Маня, учись ездить на вс коде с плагинами, если не в состоянии скачать шторм бесплатно без регистрации
Мне приходится в блокноте писать из за того, что жидбрейнс монополисты и мрази.
Реализацию на пыхе можешь здесь посмотреть https://github.com/felixfbecker/php-language-server
Почитать как на голеге писать парсер в книжке Writing an interpreter in Go
Есть VS code and sublime
>на голенге
Чтобы на нем писать нужна ИДЕ. А тут, сюрприз, жидбрейнс тоже монополисты ебаные. Да они на всех яп монополисты, кроме C/++/#, JS/TS и все, нахуй.
Нихуя не понимаю.
Особенно слоты. Вот переменная $slot. И что дальше-то? Что она из себя представляет? Какие-то строчки html-кода? А в какой части кода нужно определять значение этой переменной? Да и вообще я не понял как это руками применять. Когда создается компонент на основе классов, то создается пхп класс и файл представления. Класс немного понял зачем, а представление зачем? Чтобы объявить там тег компонента и через атрибуты html передать значения переменных или что...
Все, я понял.
Но опять же от опыта зависит. Тут видно что джуна ищут или миддла который не знает сколько стоит миддл
нужно будет организовать впн сервис (Сайт с управлением openvpn)
я бы сделал это за 12*5 часов, сейчас я инвестор, понимаю что двачеры дауны и даю месяц
Фронт и бек на php8.2+, mysql. (nginx, php-fpm, mariadb, debian)
если не можешь в логику - не пиши.
мамкины фрилансеры хотят дохуя, поэтому здесь
телега @xvidis
Мускулы. Таскать коробки
А с хуев ему стать не актуальным
У меня сейчас аутентификация проходит так: проверяется куки на наличие токена, если его нет, то редирект на страницу ввода пароля, если пароль верный, устанавливается куки с токеном. Мб нужно не куки использовать, а сессию? Я никогда не работал с сессиями и не понимаю зачем они мне нужны... Никогда не было так, чтобы я сидел и такой: "Тут точно нужна сессия". Как я понимаю, сессия и куки это способ системе рассматривать несколько запросов к сайту под одной личностью, отличие в том, что куки проще и хранятся в браузере, а не на сервере.
Куки можно перехватить.
>Никогда не было так, чтобы я сидел и такой: "Тут точно нужна сессия"
Может это издержки фреймфорка, но у нас в проекте аутентификация всегда начиналась с сессии на бэке. Это потом уже, по мере расрастания проекта, добавлялись jwt в куки.
>>1008826 (OP)
Я использую Xdebug в PHPStorm. Во время дебага я хотел бы найти, когда происходит присвоение какой-то переменной или элементу массив значение 'Участвует в акции'. То есть проблема в том, что я не знаю где именно это происходит и куда записываются переменные. Можно ли как-то найти то место, где происходит присваивание какой-то переменной, свойству или элементу массива значением 'Участвует в акции'?
Типа поставить условие, если любое хранилище информации получает значение 'Участвует в акции', тогда сделай стоп?
Текст получается из БД, поэтому по тексту в проекте не получится найти. А проект легаси, поэтому сложно дебажить
А также что означает ":", например, docker run -d -r /host/dir:/container/dir test/webserver?
А также то, что означает "монтировать" в контексте томов docker.
У меня недавно так получилось, что я клонировал один такой репозиторий с bitbucket и у меня самостоятельно скачался торрент + открылись страницы с криптой и торрентом. Что делать с этой хуйней? Я ньюфаня. Перенести инструменты разработки в виртуальную машину и только там кодить?
Нет, нельзя
Пиздец, уже не могут стек вызовов просмотреть и пробежаться по нему, я хуею с вас
Надо было ставить Линукс
без опыту анрил думаю
звали на стажку в начале 23, на тот момент изучал 5 месяцев примерно, но очканул условий и отказался. Потом вышел в другую контору через полгода примерно(никак не выйду теперь).
з.ы. был прекол - позвали не тех собес, лясим-трясим, все ок, тимлид сказал что ему нравятся ответы. Но в потом спросил готовился ли я к собесу, типа слишком хорошо отвечал. Я честно сказал что не готовился, слишком дохуя всего себе поставил в план изучения. Обещали написать и конечно нихуя не пишут уже неделю.
Вот как блять с такими - плохо отвечать - плохо, хорошо отвечать - тоже плохо. Почему в этой сфере все такие ебненькие?
Испугался что ты его подсидишь
Все решил демпинг. Нашли кандидата за еду, который готовился к собесу, потому что ему очень нужна эта работа.
Все просто.
Если собес на сеньку, то нужно изображать занятость и вообще не тратьте мое время у меня каждая минута это огромные бабки, которые вам только снятся .
Если на мидла. То нужно говорить что еще работаешь за хорошую зепку, но хочешь роста в компании, а на текущем месте его нет.
Если на джуна, то нужно показывать что очень хочешь работать и учится 27/7 хоть за еду
>менее чем за полгода
Вводные какие? Если полный ноль, то нет. Если есть опыт, то опять же какой.
Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.
Вроде всегда продавцы курсов питон доили на эту тему. Но тут не в рынке дело а что у самого питона почему-то считается, что низкий порог вхождения, в цыганских схемах для обучения это важно чтобы вкатуну пыль пустить типа смотри прогресс пошёл
>всегда продавцы курсов питон доили на эту тему
Ну сейчас еще больше людей появилось которые смежные услуги предоставляют.
>схемах для обучения это важно чтобы вкатуну пыль пустить типа смотри прогресс пошёл
Ну эта тема с фронтендом тоже хорошо продаётся, первую страницу сверстали из header, main, footer и всё люди уже на рынок труда собираются. Теперь таких фронтендеров как говна за баней.
У меня такой вопрос. Юзают ли программисты Apache/Nginx
напрямую? Или это удел администраторов?
почему я задаю этот вопрос. Например я могу создать веб-приложение используя фреймфорк (Laravel, django, node и т.д.), которые возьмут всю поднаготную.
Но в тоже время на докерхабе node/apache одни из лидеров по скачиваниям. Кто их использует напрямую и зачем?
>Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.
ААА СУКА Я ВО ФРОНТ ЕНД НЕ СМОГ ПОПАСТЬ ПО ЭТОЙ ПРИЧИНЕ, ПОСМОТРЕЛ НА СТАТИСТИКУ, ПЫХА НОРМ ПО КОНКУРЕНЦИИ. НО БЛЖДАД И СЮДА ТАБУН ГОЛОДРАНЦЕВ РВЕТСЯ ВПЕРДЕ МЕНЯ!!!1!! ИДИТЕ НАХУЙ СУКИ В ТАКСИ И НА СТРОЙКЕ ХОРОШО ПЛАТЯТ. МНЕ СКОРО 30 ЛЕТ, Я НЕ ХОЧУ НА ЗАВОД ОБРАТНО
Пыха медленно работает с I/O, поэтому выгодно отдавать статические файлы через веб-сервер, минуя php. В большинстве случаев дополнительная логика тут все равно не нужна.
Да, ебаные продаваны курсов нашли нишу которая была занята скуфами. Даже пидор хауди хо недавно видос запилил по пыхе (вылезло в реках), хотя раньше ему подобные даже не знали что кроме жс и питона другие языки есть.
Минуточку, хауди хо ещё в 2к21 году видосы пилил, где говорил, что вкот проще всего делать через Битрикс и ВордПресс.
Губами
А что, в России в него разве не также просто вкатиться? Я что-то не вижу повсеместно курсов по вордпрессу, только джавв и петухон везде вылазят
Хз, попробуй. Потом отпишешься если вкатился
Есть VS Code, есть протокол LSP и language server вроде phpactor. Конечно, есть шероховатости и недоработки, но это все при желании можно исправить. Если бы каждый жалующийся на отсутствие IDE внес хотя бы 100 строк доработок, думаю, IDE давно бы была готова.
Если ты ориентируешься на Россию, то тебе нужны протоколы с обфускацией, так как чистый OpenVPN легко распознается и блокируется.
Ты про кривую кодировку либо же про ошибку? Ошибка в том, что у тебя включено расширение 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.
Отличия сессии и кук:
- сессия годится для кратковременного (1-7 суток) хранения данных, куки до нескольких лет
- данные в сессии не видны пользователю, а куки он может видеть и модифицировать (но ты можешь их шифровать для защиты от этого)
- объем кук ограничен 1024 байтами, в сессию можно запихнуть побольше данных
Сессия при этом использует куки, но только для хранения идентификатора сессии.
>>285928
Нельзя, если все правильно настроено и используется HTTPS.
Контейнер докера это что-то вроде виртуальной машины: он изолирован от основной (хост) системы. И директории и файлы с хост-системы в нем не видны. "Том" как раз позволяет сделать директорию хост-системы видимой внутри контейнера. "Примонтировать том" значит подключить "том", то есть директорию хоста, чтобы он стал виден внутри контейнера.
> А также что означает ":"
Это разделитель, который отделяет имя директории на хосте и место, куда ее надо примонтировать внутри контейнера. То есть на хосте у тебя директория имеет путь /some/dir, а в контейнере ее можно примонтировать по другому пути, например, other/dir.
Я советую изучить основы использования и администрирования Linux, прежде чем браться за Докер - без этого многое непонятно.
Само по себе клонирование подразумевает просто скачивание файлов из репозитория к тебе на машину. А вот если ты их запустишь, не проверяя, то может произойти что угодно. Могу посоветовать проверять файлы антивирусом (можно упаковать в zip и отправить на вирустотал, если ты не можешь позволить себе антивирус), и виритуальная машина тоже неплохой вариант.
Не понял вопрос, куда они его пихают? Mimetype это просто обозначение для типа файла, например image/png.
>>287809
Прокси, VPN, но он все равно денег начнет просить со временем.
>>287873
Отказать мог не только тимлид, а еще кто-то другой, например, служба безопасности. Или вдруг оказалось, что кандидат сейчас не очень-то и нужен из-за смены планов.
Апач в наши дни особо использовать смысла нет. На продакшене используют nginx + php-fpm (это не то же самое, что php), а локально ты можешь настроить то же самое или запускать php в режиме веб-сервера: https://www.php.net/manual/ru/features.commandline.webserver.php
Кстати мне нравится, что в новой капче надо уметь различать кандзи. Не зря учил!
>Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.
Я даже догадываюсь у кого ты это слышал 😑
https://youtu.be/aY3fRexyhAI?t=247
Вакансий на вордпрессе меньше по сравнению с битриксом. Толку от твоих курсов если на нем работы в РФ мало так что для вката лучше все таки битрикс
>для вката лучше все таки битрикс
А чем лучше? Что это дает помимо ачивки что вкатился? С битрикса опыт не сильно релевантный. Опыт работы на битрикс требуют аналогично други вакансиям.
>Смекаешь?
Нет, не смекаю. Потому что, например, я изучил laravel и иду на вакансию и после мне предлагают битрикс. И чем идея? Будут обучать битриксу или мне придется самостоятельно его осваивать? И в том и в другом случае это для бизнеса проёб.
Много вакансий где надо писать на ларавеле используя битрикс апи. Никому чистый фреймворк в вакууме не сдался. На фреймворке решают бизнес задачи и если бизнесу надо, чтобы заявка с сайта попадала в воронку в Битрикс CRM, то хоть на хаскеле с есодом пиши, придется с битриксом взаимодействовать.
Чел, 99% задач программистов сводятся к тому, чтобы одно говно к другому прилепить. Даже голангером ты пойдешь ебаные бизнес задачи решать, а не в хакатонах учавствовать.
мимо шел
Нормально гоев прогревает)
И чем он плох и в чем он не прав? Я серьезно без подъебов
Это лучший канал по вайти что я видел, говорит довольно объективные и реальные вещи без цели продажи курсов
>И чем он плох и в чем он не прав?
Да никто не говорит что он плох. Просто рубит на хомяках бабки, норм тема)
> вещи без цели продажи курсов
Ну конечно, только на бусти подпишись)
> Просто рубит на хомяках бабки
>только на бусти подпишись
Ну ты ебать срыв покровов устроил, он буквально говорит что делает это тупо ради бабок и все его каналы называются аля дайте деняк.
На качество роликов это никак не влияет, он не пускает пыль в глаза про то как ты сейчас из грузчиков за неделю станешь наносеком за неделю. В чем он не прав в видосах то
Нет, все теперь на битриксе
>про то как ты сейчас из грузчиков за неделю станешь наносеком за неделю
Падажжи, а что нет? Я не стану наносеком???7??
мимо грузчик
>Интересно что сейчас набирает популярность тезис что пыха === изи вкат в it.
О чем ты, шиз? Он всегда был популярен.
>кто нить вкатывался в 23-24 году менее чем за полгода в пхп разработку?
Ну я за две недели вкатился недавно. Правда до этого пол года пытался вкатиться на ноде пока не осознал что она мертва. Два дня почитал о пыхе на метаните, сделал половину пет проекта на ларавеле и создал резюме с 1.5 годом накрученного опыта. Прошёл три собеса и получил оффер. Причём оффер получил с самого первого собеса. Ну а если ты с нуля вкатываешься то за пол года вкатиться более чем реально. Просто нужно не быть распиздяем и уделять по 5-6 часов учёбе каждый день, избегая траты времени на всякую лишнюю залупу
Любой кабанчик тебе пиздит, недоплачивает и желает чтобы тебя поскорее черный ящик с AI заменил.
>Просто нужно не быть распиздяем и уделять по 5-6 часов учёбе каждый день,
Вот в dr чел ведет дневничок, как вкатывается в пхп/ларавел с марта 22 года, ежедневно уделяя учебе по 7 часов в день. Можешь пойти, заценить.
>Можешь пойти, заценить.
Заценил. Чел третий год не может дойти до примитивнейшей мысли что нужно крутить опыт и пиздеть на собесах. Значит его уровень интеллекта катастрофически низок. У таких 8 часов обучения по эффективности равны примерно 20 минутам у нормисов.
Ну да, давно пользовался им. Интересно может ли он в 1с программирование русскими буковками
>У таких 8 часов обучения по эффективности равны примерно 20 минутам у нормисов.
Под нормисом себя наверное подразумеваешь? Или нет, ты даже круче нормиса? 100 часов их занятий равны 1 минуте твоей, не меньше.
Как не зайду на двач, так в голосину кекаю с коупинга местных чсв-обезьян.
>Под нормисом себя наверное подразумеваешь?
Ну смотри, я вкатился за 1.5 года уделяя вкату в среднем полутора часа в день и ебланя буквально неделями. Тот чел даже ни на один собес не попал за 2.5 года вката. И тут получается два варианта:
Либо я 180iq сверх человек, а тот чел нормис
Либо я нормис, а тот чел долбаёб. И ты соответственно.
Ну и учитывая что я решил вкатываться через бэк на ноде сверхчеловеком меня трудно назвать. В итоге получается что ты долбаёб.
Папка мой меня устроил тимлидом в свой it отдел. Говорит пора учиться руководить. Ну и плюс по "моей сфере" всё таки, как никак я инженер-программист дипломированный. Хожу шугаю работяг и играю в игоры остальное время.
Вопрос к вкатунам, хули вы такие тупые?
Это для умника выше, который думает что вкат как-либо связан с обучением или знаниями, когда это чистая социалка, пусть зачастую и не такая прямолинейная, как в моём примере. Вкатиться можно ваще ничего не зная про программирование, в интернете полно присеров где челы проходили собесы, наебывая даже техлмдов. При этом полно реально крутых программистов, которые нигде не работали и им с нуля будет пиздец как тяжко вкатиться. Я лично знаю ебейше талантливого джависта, которого слали нахуй даже дно-вакансии, в итоге он просто стал сам писать скрипты на заказ и зарабатывает теперь прилично, а hrы ему отказы ставили, вот и думайте головой
У тебя логическая ошибка. Скорость вката напрямую не коррелирует с твоими знаниями. Ты можешь выучить хоть всё айти мира, но если тебя hr автоматически бракует по опыту, то эти знания тебе никак не помогут.
Опять-же пример с моим знакомым джавистом. У чела по факту опыт с десяток лет, но он кодил не для коммерции, а для себя, рння у мамы на шее. Потом прижало зарабатывать и его нахуй посылали даже на дно-вакансиях, ибо hrы срали брать чела 28 лет без образования и опыта, хотя у него уровень уверенного мидл+ по знаниям.
Можно потратить немного времени на софты, это не рокет саенс. Твой знакомый как минимум мог бы популярно сделать что-нибудь полезное для людей и за счёт этого получить рефералку. Это посильно для уверенного мидла+.
А если за 2.5 года львиная доля - это дноработа и бытовуха? А чисто на кодинг был 1 месяц и то твердо и четко не было известно получится ли покодить или опять отвлекут и придется всё бросать на затычку жизненных дыр?
Давай тоньше
В это нужно углубляться или это все не используется на работе как правило?
class MyClass
{
public ?int $google = null;
public function __construct()
{
$this->google = '3';
$this->google = ''; //Exception
}
}
Не совсем понял, что ты хочешь сделать. Пустая строка и null-значение - это принципиально различные данные. Скорее всего у тебя ошибки в проектировании, если с этим возникают затруднения.
Ну вот в $_POST например ['google' => ''], а в форме MyClass это свойство не обязательное. В твоем фреймфорке если загрузить данные из поста в форму, он разберется, что пустую строку нужно в null превратить? И если нет, то как у вас данные с формы на фронте попадают в класс формы?
>Пустая строка и null-значение - это принципиально различные данные
А если в int записать (string)"3.01", то он не ругается что там флоат. Я понимаю что это numeric. Но там же в обявлении типа стоит не просто int а ?int. Можно было бы наверное еще проверку на длину строки делать.
>>292371
$this->google = '3';
Тоже строка, но он разруливает преобразование тут.
>немного времени на софты
Но есть нюанс, что софты зависят а некой степени от внешки, харизмочки, от врождённого характера и врождённого ай си кью. За немного времени нереал пофиксить стартовые характеристики наролленые в генетической лотерее.
Ты полагаешься на неявное преобразование типов, которое может без предупреждения меняться от версии к версии интерпретатора.
Советую зафиксировать типы везде, где это возможно и ограничить жонглирование типами через declare strict_types. Так у тебя с меньшей вероятностью что-то сломается, будет проще дебажить и не нужно будет держать в голове, что как и каким образом к чему приводится.
В твоём случае правильно было бы (1) делать проверку строки на empty и в зависимости от результата возвращать либо null либо (2) делать следующую проверку на int через фильтры и либо возвращать int либо выбросить исключение с ошибкой валидации.
https://www.php.net/manual/en/function.filter-var.php
Фреймворки делают то же самое, но прячут логику под капотом, позволяя тебе просто выбрать нужные для конкретного параметра правила валидации.
>>292383
Избавляйся от иллюзии, что ты живёшь в рпг с фиксированными параметрами. На самом деле не существует никакой таблицы статов и проверки от них не кидаются.
Но конечно чмоня, неспособный компенсировать недостатки хотя бы упорством, не сможет конкурировать с другими людьми. Его даже жалеть неинтересно.
>declare strict_types
Вот отсюда и пошли все беды. Раньше вот хорошо было, создал класс со свойством public $google и все. Потом приходят зумеры и про то как здорово иметь строгую типизацию и все. Начинаешь под капотом там в фреймфорк лезть, трейты писать, блокировать инпуты если они пустые, чтобы в пост или гет запрос не попали пустые строки.
>делать проверку строки на empty
Упустил что 0 все таки стоит записывать. 0 и не заполненный инпут это разные вещи иногда.
> Начинаешь под капотом там в фреймфорк лезть, трейты писать, блокировать инпуты
Никогда не возникало таких проблем.
> Упустил что 0 все таки стоит записывать
Да, ты прав. Надёжнее использовать 0 === strlen(trim($input)).
>Раньше вот хорошо было, создал класс со свойством public $google и все. Потом приходят зумеры и про то как здорово иметь строгую типизацию и все.
Еблуша, как раз зумеры в типизацию не умеют. А говорить, что строгая типизация хуже нестрогой может только совсем бездарный вкатыш с нулем опыта работы на нормальных проектах
>Никогда не возникало таких проблем.
Ты ларавель используешь наверное? Или в симфони тоже есть обнуление пустых строк в реквесте?
>Вот отсюда и пошли все беды. Раньше вот хорошо было, создал класс со свойством public $google и все. Потом приходят зумеры и про то как здорово иметь строгую типизацию и все.
Ебать дебил
>то как у вас данные с формы на фронте попадают в класс формы?
Какие нахуй классы формы?
мимо ларавел боярин
Я так класс для получения данных с фронта и их валидации называю. Вы всегда с Eloquent-ми работаете получается?
Не. Запросы приходят в роут и спрашивают "чё-каво"? В роуте написано "пиздуйте в контроллер". Но когда залётные пасанчики пытаются зайти с ноги в контроллер, им мидлвара (смотрящий) говорит "не-не-не, вы кто ваще и чо такие дерзкие?". Запрос представляется по форме смотрящему и либо идёт нахуй, либо его заворачивают в закуток к остальным реквестам, где проходит уже шмон-валидация. Всё достают из карманов и предъявляют "чо у тебя тире короткое?". Если запрос чотко понимает, куда попал, и какой положняк на хате, то проблем с содержимым не будет. И вот тогда-то его и пустят в хату (контроллер). В принципе, при шмоне можно что-то дополнительно напихать запросу в панамку, либо изъять ненужное. В любом случае, в контроллер он попадёт уже чистеньким, без всякого сифилиса.
Ну у нас в ларочке форм-реквесты есть, в которых можно играться с данными, валидировать, преобразовывать, перед передачей в контроллер и далее.
А ну понял. Это мидлваре у вас там есть, а я просто тоже самое делаю в контроллере.
А, ну под капотом там пади мидлеваре, да. Просто я макака тупая - не вникаю особо.
Норм паста, схоронил
>>292379
С какой стати пустая строка вдруг должна стать null? В php строки используются не только для изъятия значений из полей. Пустые строки, как и не пустые, должны корректно сшиваться друг с другом безо всяких дополнительных движений. К примеру, для генерации текста наподобие $a$b$c, где $b это color="green" в теге font, и т. п.
>> Упустил что 0 все таки стоит записывать
>Да, ты прав. Надёжнее использовать 0 === strlen(trim($input)).
Зачем strlen звать? (trim($input) === "") быстрее. На пустых строках до 10%. А на длинных почему-то одинаково считает. Не очень понимаю. По логике вроде на первом символе уже должен дать false. Хотя если strlen - это макрос над всегда известеным где-то рядом со строкой значением в памяти, то должно, наоборот, быстрее считаться сравнение с нулём...
Щас бы сидеть какие-то 10% на функции в пыхе считать...
>Он всегда был популярен.
Вот лысый уебан твердит что нет https://www.youtube.com/watch?v=aY3fRexyhAI
Присоединяюсь к реквесту
Мне впадлу протыка твоего смотреть. Пыха всегда была один из основных легких путей.
как же я орнул с этого объяснения MVC )) АЖ ХРЮКНУЛ
К счастью, вкатыши не повалят массово на пыху, ведь она умирает, на ней не пишут новые проекты, все переписано на го и прочая шиза от псевдопрограммистов.
Нейронка так и поняла, что ты с помощью гета пытаешься получить инфу о файле, которая где-то на бэке хранится.
https://stackoverflow.com/questions/15201976/file-uploading-using-get-method
https://www.php.net/manual/en/features.file-upload.php
> твой ротик,
и твоя тугая попка, с тех пор как отребью массово впарят что пыха изивей, а не умирающая рвотно-блевота.
Вот когда разбавишь участь питухондриев и жаберов тогда и попиздишь за популярность
Мб чтоб маслят не привлекать, за счет этих лозунгов и едем
Насколько я понял, тебе обязательно использовать GET? Так-то для вывода инфы о файле используется запрос OPTIONS.
Из того что сам знаю: hls и dash, но не понимаю генерируют ли они их «налету» или заранее режут на чанки и по CDN рассылают? Как это работает вообще? Просто как я это вижу, для своего сата, например: заходит чел на сериал, выбирает серию, я на сервере в этот момент через запуск ffmpeg начинаю нарезать кусочки и отправляю на клиент плейлист с таймингами и ссылками на куски(m3u8, например)
Но это же достаточно долго(5-6 секунд ждать челу пока там все приготовится для вещания такое себе), поэтому и задаюсь вопросом, может популярные чата заранее нарезают видос и потом просто их как статику уже отдают?
Нашел репозиторий с Dockerfile, docker-compose файлами. Скопировал файловую структуру, названия папок, нажал docker-compose up и...ошибки, ошибки, ошибки...Гуглишь ошибки, ничего не помогает. как я заебался почему с этой хуйней столько проблем...8 часов въебал сегодня на эту шляпу и профита 0, ничего толком не развернул. ну что что мне блять делать чтобы это говно работало, почему все так сложно блять
За то девопсы свою зарплату и получают.
Хз, докер - это чудо чудесное. При самом примитивном использовании без каких-то особых заморочек там и обезьяна разберется.
Не хочу в офис ходить, поэтому буду битрикс учить и на удаленку сразу залечу, а дальше как видно будет
Так я готов. Но скока вешать в граммах?! Вот куплю я два гига, а потом окажется, что Эластик меньше чем на 10 даже не запустится. Вот и спрашиваю.
На впс же всегда можно без проблем накинуть мощей нажатием одной кнопки.
10 тебе, наверное, не понадобиться, а 2 таки будет мало.
Все же уже обсосано в интернете. Так и вбей - сколько гигов надо ебластику.
Самые низкие зп на рынке
Зачем он нужен тогда?
>сколько времени надо изучать все это? - все зависит от тебя, в районе 24-48 месяцев
А в жс за 8 месяцев можно вкатиться
Да там в шапке шиза
Ну и пиздуй в свою жаву. Там наверняка только синтаксис знать надо и 300к твои.
Кабанидзе, спок
>ТРЕБУЮТ
Так требуют, что ни разу с этим не сталкивался
Или ты еблан на фуллстек-вакансии смотришь? Так они и на джаве есть
Ну в "плюсом будет" почти всегда фронт подтягивают. Оно вроде и не обязательно, но чтобы обскакать конкурентов...
мимо
Кстати да, или еще какую рандомную дрисню
Ставь roadrunner, сейчас модно на нем приложения заводить.
Большинство вакансий - фулстек, часть с желательным умением во фронт, минимум вакансий - чистая пыха.
на хх так, может конечно не 80, но больше половины точно.
Пыха вакухи это в основном в аутсорс студии с битриксом, а в "нативном" битриксе фуллSuck это норма.
Пхп вака на чистый бек это уже более серьезные кабаны, а их конечно меньше, вот вы ходит что фуллsuck в основном.
Там, где ищут со знанием фронта - очевидно, ооо васянка, куда не стоит идти даже если бы там была чистая пыха в требованиях. Вакансий с голым пхп полным-полно, хуй знает че вы тут устроили
пиздаболы ебаные везде есть требования фронта на пыхе умеренные хумеренные но есть верстала ваш посрать отойдет с запором ты будешь за ним говно чистить
И чтобы изменилось в твоей жизни?
Фронт для работы на ларе не нужен. В нормальных конторах всегда есть разделение на фронт и апишку. Если в вакухе написано что нужно знать фронт - значит перед вами вакуха нищей черве-пидорской галеры и она вам не нужна, если вы не червь-пидор, конечно.
>Если в вакухе написано что нужно знать фронт - значит перед вами вакуха нищей черве-пидорской галеры и она вам не нужна
База
Только лара кал ебаный
>Фрезерный станок тупа кал малые у меня знакомый слесарь с 8 годами опыта срал и ссал на него
Ларавель предпочитает конвенцию конфигурации, поэтому в коде получается порядочно магии. К тему же местная ORM намертво связывает бизнес-модель и базу данных и, чтобы эти слои разделить, придётся вручную мапить eloquent-записи в классы модели.
> фасады
В доке есть табличка соответствия фасадов и имён классов. При желании можно пробросить их в конструктор через di.
Она и нужна только для того, чтобы привязать код проекта к фреймворку неявными зависимостями.
>Да фасады ебучие
Лол, меня недавно один крендель собеседовал, тоже про фасады втирал. Вообще не понимаю, что вы до них докопались? Ну фасады. Ну скрывают реализацию всей хуйни под капотом. Блин, это фреймворк, он для этого и создан. Что не так-то?
Недавно по работе пришлось с композом дохуя возиться, аж хуёк привставал что не надо этот говнокод лопатить
Кому-то не нравится, что валидация прописывается на уровне контроллеров или форм реквестов, а не на уровне сущностей\моделей.
Тащить валидацию реквеста в модель? Это где такие упоротые сидят?
А почему бы и нет? Кто, если не модель, должна знать, какие данные в нее можно сохранять?
Пример: юзер загружает фото. Берём файл, делаем ресайз, сохраняем на диск, пишем в базу путь до него. Допустим, есть ограничение на размер файла. В ларавеле реквест не пройдёт дальше валидатора. А там, получается, произойдёт загрузка, ресайз и сохранение в сторедж, а потом база "да не, чот ты здоровый больно, давай ошибку юзеру вернём"?
Ну сделаешь модель для работы с загрузкой фото, на уровне контроллера или напрямую вызовешь валидейт или из метода аплоад.
>>299326
Давай другой пример. Все как ты и описал, юзер загружает фото, только лимит не на это фото, а на общий объем загруженных файлов.
То есть правила не статические, а определяются СОСТОЯНИЕМ СИСТЕМЫ. Это состояние нужно в каком-то виде откуда-то получить, проверить на соответствие правилам, а потом изменить. Это и есть буквально работа с моделью. Это то зачем модель вообще существует.
Правила типа: длина строки, только цифры/буквы/залупы, мыло/телефон простые. Их можно легко продублировать, даже в js запихнуть. А начнешь дублировать работу с состоянием - потеряшь консистентность. Понадобится работу с лимитами по файлам поменять - будешь скакать как козел по всему проекту, да еще обязательно где-то правила поменять забудешь.
А зп? 55к до вычета?
Воспринимай работу как изменчивый рынок с клиентами, а не как блядь воспринимает папика, к которому хочет присосаться. Понимай что ты можешь продать, а что не можешь. Будет легче жить.
Ставь линукс или по крайней мере wsl. Когда вкатишься, тебе все равно никто не даст разрабатывать под виндой без виртуализации, это моветон.
Тот же Rails
Процессы используются через разные варианты : запуск через крон, очереди в ларке. Инженер не ждет когда ему лазерную сварку подгонят, а берет синюю изоленту и..
2 системы поставь или виртуалку.
Wsl + docker ставь.
Челы с годами опыта год могут сидеть без работы
С годами на 5.6.x и жиквери?
Ну хоть не десятилетия!
Налету генерировать будет очень дорого, поэтому все режется и конвертируется заранее, думаю что консольными утилитами вроде ffmpeg (у нее впечатляющий набор возможностей).
> Но это же достаточно долго(5-6 секунд ждать челу пока там все приготовится для вещания такое себе), поэтому и задаюсь вопросом, может популярные чата заранее нарезают видос и потом просто их как статику уже отдают?
Именно так.
Какая у тебя цель? Развернуть этот репозиторий или изучить Докер? Если изучить, то лучше начинать с простых примеров: к примеру, установи Докер-образ с PHP и пробрось директорию с кодом внутрь него.
Напомню, что перед изучением Докера надо изучить основы работы в Линусе и основы администрирования.
Ну и можешь еще конечно описать, что ты делал и какая вышла ошибка, может так будет быстрее разобраться.
Ошибка 502 (bad gateway) означает, что nginx пытался переслать запрос на бекенд, но он либо неверно указан, либо не работает. Тебе надо почитать документацию nginx (благо она на русском есть) и проверить каждую строчку в конфиге.
Elastic обычно много ест, минимум 1 Гб если данных мало. И на дохлом VPS он будет где-то минуту стартовать только. Попробуй в его конфиге по максимуму все отключить тогда.
А Докер может использовать много места на диске (гигабайты) под образы.
При выборе VPS обращай внимание на систему виртуализации, так как они по-разному считают память: 1 Гб на OpenVZ может быть эквивалентен 512 Mb на KVM. Не знаю как сейчас, а раньше в дешевых VPS как раз OpenVZ и использовалась.
Кстати за 3 Гб памяти (KVM) плачу 5 евро в месяц и то это дорого так как это Европа, а не Россия.
Не валидацию реквеста, а валидацию модели. Причем делается это с помощью аннотаций по типу:
class User
{
#[Assert\NotBlank]
private string $email;
...
Выгода в том, что ты всегда модешь валидировать модель, независимо от того, откуда ты ее взял: из базы, создал руками, создал через форму итд. Это как раз правильный и удобный подход.
А как ты валидируешь модель из базы, если у тебя правила повешены на форму?
При этом, ты также можешь делать дополнительную валидацию на уровне формы или добавить правила валидации в DTO, так как их можно повесить вообще на любой класс, не обязательно модель базы данных.
Это как раз правильная и грамотная архитектура, выбранная в Симфони.
Все зависит от того, как ты выстроишь архитектуру. Ты можешь повесить валидатор и на форму, или сделать свой виджет для загрузки файлов, который их будет обрабатывать по твоим правилам.
В Симфони правила валидации можно добавить вообще к любому классу, и это правильно.
Попробуй так, в файле 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
Попробуй так, в файле 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
Давай разберемся. 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 и посмотри, исправится ли проблема.
Также, включи показ расширений в проводнике.
Так JS тоже однопоточный, несмотря на промисы. Попробуй что-то тяжелое посчитать и у тебя весь веб-сервер зависнет.
А где у тебя контейнер с php-fpm? Ты только nginx же описал тут. И, конечно, было б хорошо объяснения добавлять, а то образовательная ценность стремится к нулю.
Пердеж, ты спокуху то оформи. Совершенство не требует изменений.
Да разобрался уже, можно вручную добавить закинув папку и define и через композер поставить
Ну так у него только с нжинксом не получается
Внутри тела функции можно объявить локальные переменные. Зачем? Затем, что они нужны только на момент выполнения функции. А что если объекты это и есть функции? Что такое объект с точки зрения наиболее часто даваемого определения? Это совокупность состояния и функций, которые работают с этим состоянием. А что такое локальные переменные внутри функции? Разве не состояние и операции, которые работают с этим состоянием? Отсюда следует, что определяя атрибуты объекта, нужно давать ему такие атрибуты, которые нужны на момент выполнения его методов, а остальные вынести как параметры этих методов. Меня эта тема до сих пор волнует, а именно: как понять какие атрибуты должны быть у объекта? И не заливайте мне о том, что нужно моделировать аналогичный объект из реального мира, ведь в любом случае приходится отбрасывать часть атрибутов из-за того, что они оказываются ненужными для выполнения задачи. Получаются, что нужно отталкиваться не от того, как представлен объект в реальном мире, а от того, какие задачи он решает, какое состояние ему для этого нужно и как я выше написал, нужно делать его атрибутами только те атрибуты, которые нужны на момент выполнения задачи. Что думаете, аноны?
> Зачем?
Для читаемости и удобства. Записывание промежуточных результатов выполнения процедуры в переменные с понятными именами - более очевидное и поддерживаемое решение, чем цепочка вложенных вызовов.
Сравни
$this->step4($this->step3($this->step2($this-step1())));
И
$step1 = $this->step1();
$step2 = $this->step2($step1);
$step3 = $this->step3($step2);
$step4 = $this->step4($step3);
Между вызовами step3() и step4() может быть промежуточный вызов, не возвращающий результата, но оставляющий побочные эффекты, необходимые для корректной работы step4(). В таком случае придется записать результат step3() в переменную и затем передать ее в step4().
Думаю, что ты вкатун, который хуйней страдает.
>Получаются, что нужно отталкиваться не от того, как представлен объект в реальном мире, а от того, какие задачи он решает, какое состояние ему для этого нужно и как я выше написал, нужно делать его атрибутами только те атрибуты, которые нужны на момент выполнения задачи.
Охуеть! Он познал АБСТРАКЦИЮ!
Так это немного не про то. Тяжелыми вычислениями при желании можно что угодно раком поставить
Асинхронщина.
В JS есть такая штука, называется Event Loop. И вот она позволяет, например, сделать запрос на сервер и как-бы подписаться на ответ. А пока ответа нет выполнять другие команды. А после того, как ответ придет - выполнить ту часть кода, для которой требовались эти данные. И, я так понимаю, пхп из коробки такое делать не умеет?
PHP такое делать умеет, но в нем это не очень удобно и никто особо так не делает.
Судя по всему, ты просто не понял, про что я говорил.
>FastCGI-скрипты высрал@умер
Ты путаешь FastCGI и CGI. Зачем тебе в принципе своё мнение по этому вопросу? Только честно
>Ты путаешь FastCGI и CGI
Ну ок, высрал@умер с пулом заранее заготовленных говнопроцессов, и вся эта хуйня по-прежнему сосёт по производительности у современных технологий примерно в 3 раза. Это всё ещё не сервис, это пачка скриптов, понимаешь, челик? Так делали пердиксы в нулевые. У тя небось ещё и I/O синхронный в твоих говноскриптах, да, скуфандрий?
А тебя че трясет то так?
Но есть и плюсы:
в некоторых случаях ты не работаешь на большую корпоративную кассу, а забираешь деньги с этого херово сделанного сайтика себе.
подумай об этом.
Тебе надо изучить, что такое FatCGI, потому что по моему, ты ничего не понял. FastCGI процесс не завершается после обработки запроса и может обработать много запросов подряд.
Названия "современных" технологий, которые быстрее в 3 раза, и при этом не менее удобны, писать ты, конечно же, не будешь.
В атрибуты ты кладешь то, что должно сохранятся между вызовами методов (между вызовами любой пары методов).
В PHP (в отличие от устаревшего Си) длина строки в байтах записана отдельно, и никто по символу ее не считает. А вот если ты вызовешь mb_strlen, то будет подсчет.
Щас надо учиться на оператора нейросетей, бумерки!
Троллинг тупостью
Poe через Протон хорошо работает
Тебе же сказали ставить WSL, дура. А вообще удаляй эту игру - она только все твое свободное время украдет и ты не вкатишься в айти
Как быть? Можно ли в симфони использовать только действительно нужный мне функционал, как например формы, роуты, шаблон твиг, а остальное уже на своё усмотрение?
Но ведь если с нуля писать, то там говнокод по идее и будет, с нуля реализовывать mvc, не имея огромного опыта в этом может быть провальной идеей, или стоит попробовать? По идее мне не так важно, чтобы внутри была конфетка, на которую отрадно смотреть, самое главное с безопасностью сайта не наговнять, это одно из моих главных соображений при разработке. Есть какие-нибудь статьи/ресурсы специально под мой кейс?
>Хочу сделать сайт на пыхе
Это не задача, это фантазия.
Что тебе конкретно надо?
Тебе нужен форум ДЛЯ ДЕЛА, чтобы на этом форуме завтра общались конкретные люди, котрые сидят и ждут этот функционал?
Тогда бери готовое решение https://flarum.org/ и ставь его.
Ты хочешь изучить язык чисто ДЛЯ СЕБЯ? Разобраться как работают веб приложения, изучить тему? Тогда пиши форум сам, на технологии, котроая позволяет хуячить быстро https://laracasts.com/series/lets-build-a-forum-with-laravel
Ты хочешь получить навык ДЛЯ ЗАРАБОТКА? Тогда ебись с симфони, делай все по бест практисам и въебывай кучу времени.
Господи, делай на ларавел и все, ебаный в рот.
> Можно ли в симфони использовать только действительно нужный мне функционал, как например формы, роуты, шаблон твиг, а остальное уже на своё усмотрение?
Конечно. Любой фреймворк предлагает только платформу, а то, что на ней будет реализовано - решаешь уже ты сам.
Например, вместо использования orm ты мог бы создать рядом с классом сущности класс-репозиторий, в котором уже делал бы sql запросы в базу данных через pdo.
Т.е. организовать структуру вроде следующей:
Model
| Comment
| | Comment.php
| | CommentRepositoryInterface.php
Infrastructure
| Persistence
| | PdoCommentRepository.php
Ещё можешь посмотреть в сторону микрофреймворков вроде Slim.
Разве репозиторий может обращаться к бд? Это же просто хранение сущностей, по идее надо уже другой класс делать для самого обращения к бд?
мимо
Просто нужно разделять интерфейс репозитория и его реализации. Слой приложения, дергающий репозиторий видит только интерфейс вроде:
interface CommentRepository {
find($commentId): Comment;
save($comment): void;
remove($comment): void
// ...
}
Для него репозиторий - это просто коллекция объектов, к которой он может обращаться и не задумываться о том, как объекты хранятся на самом деле.
А непосредственной логикой хранения занимаются реализации интерфейса, которых можно придумать безграничное количество: PdoCommentRepository, OrmCommentRepository, CacheCommentRepository, MemoryCommentRepository, FileCommentRepository, ...
Спасибо. Есть книги какие-нибудь где про это почитать можно и как потом применять это все на практике? То есть понимать, когда следует использовать определённый паттерн, а когда и без него обойтись можно?
Книг посоветовать не могу, но могу указать направление - проектирование и архитектура.
Так в Symfony так и есть?
Репазиторий это дата шлюз. Остается проблемка
1) DataMapper - бизнес логика должна вызывать метод persist на EntityManager и соответственно получает зависимость от EntityManager, что не очень гуд с точки зрения чистой архитектуры.
2) ActiveRecord - бизнес логика должна вызывать save на объектах, которые возвращаются из репозитория. Соответственно ломается независиость бизнес логики от ORM. Это нарушение закона Деметры.
мимо
Репозиторий ничего не хранит, это не реалиация хранилища. Это чистый паттерн gateway
>репозиторий - это просто коллекция
>Репазиторий это дата шлюз
>Строго говоря, это не коллекция
>Репозиторий ничего не хранит
Сколько шизов - столько и мнений.
Нахуй он нужен твой оп. Мне не нужен. Репозиторий как колекция трактуется у мартина фаулера. Но посмотри на практический пример из док симфони https://symfony.com/doc/2.x/doctrine/repository.html
то репозиторий нечего не хранит in memory, это классический шлюз для изоляции бизнес логики от ORM
Пример из nestjs точно такой же https://docs.nestjs.com/techniques/database#repository-pattern
Не. Я говорю как раз про паттерн, а не реализацию.
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
>А зачем Фаулер говорит про in-memory collection я хз.
Затем что это писалось для нормальных языков, а не для однопоточных одноразовых пхп ебланов?
Нет это не совсем так. Ждун напишет. скл портянку в контроллере, а лид как закричит
- Долбаеб, тонкие контроллеры!
Джун испугается и вынесет весь код в сервис. Тимлид увидит это и опять закричит
- Долбаеб, вынеси запросы в репозиторий!
Покажи другой пример. Репозиторй это кеш по-твоему, чтобы он был одновременно коллекцией in-memory и посредником? Я понимаю он хотел сказать что репозиторй содержит методы типичные для коллекций. Но это не суть паттерна репозиторий, суть в том что это обертка-посредник.
>он хотел сказать
Ты недавно из шкилы? Марьванна влечивает "что этим хотел сказать пушкин", а он просто был закомплексованным карликом с темной кожей и кривым ебалом и в тот день набухался сильнее обычного.
Додик, там помимо сейва еще дохуя интересного: транзакции, блокировки при чтении и прочая реляционная поебень. Как ты все это впихивать в свой репозиторий будешь?
Я уж не говорю что репозиторий может сохранять данные сразу в несколько мест, в базу и в тот самый кеш, а еще в эластик, а еще в очередь события отправлять. Если ты не кукаретик, а реальный код пишешь, то сразу приходит понимание что репозиторий всего этого делать не может и не должен.
Поэтому он блядь и остается просто ин мемори коллекцией, которую анализируют другие сервисы и построив по этой коллекции список изменений сохраняют данные туда куда надо и как надо.
Я устал быть никем и бояться вката
Увидел в шапке книжку с аниме картинками и я смотрю аниме так что мне сюда
Я больше не боюсь не вкатиться я боюсь ничего не делать ещё 5 лет подряд
Иди в тестировщики лучше, там за месяц можно вкатиться, а на разраба, даже пхпшника, придется долго и упорно учиться.
да-да, лал, у меня один знакомый дЖва года уже вкатывается в тестировщики
Это просто не правда, зачем ты врешь мне, анон?
Когда я заходил сюда 5 лет назад с вопросом о тупейшей задаче мне очень вежливо ответили и указали на недостатки
А нахуй нам в пхп-семье анимешник? Пиздуй в петухон или джс
Пинал хуи и плакал, больше причин не бывает. Может быть ещё он просто ДУМАЛ вкатить но не вкатывался, но это проходит за выше обозначенные причины.
ns1\funcA();
ns2\funcA();
ns3\funcA();
funcA() везде одна и та же. И таких функций, как она, много.
А ты почему не вкатился?
Не знал об айти?
Как и все потыкал чето решил что не мое что тупой и забил
В том и разница, что сюда сто лет никто не приходит с задачами. Никто код не пишет. Просто пытаются превратить тред в филиал "перезвоним" шизочата.
К сожалению, не подходит. Мне нужно, чтобы работало следующим образом:
Foo1\Bar1\Namespace1\funcA();
Foo1\Bar1\ns1\funcA();
Это вложенное пр-во. Очень жаль, что нет такой возможности в языке.
Если бы ты сидел в этом треде каждый день, как и я, то ты бы со мной согласился. Я сижу в этом треде уже год и только наблюдаю мертвый тред и агрессивное быдло. Единственный человек, который нормально отвечает, это ОП, но он бывает тут редко, возможно, и тогда ответил тебе именно он.
Приходишь с задачей, вопросом, кодом.
Ожидание: конструктивный добрый ответ.
Реальность:
- игнор;
- агрессивный ответ.
Либо ответят троллингом, либо плохим советом, либо с наездом "ты хули задаешь вопрос по теме, которую не знаешь?", либо вообще не по теме, либо прямо не отвечают на вопрос.
Где твой вопрос с кодом? Кидай линк.
Я восимь лет назад вкатился. Пять лет назад тоже было просто прийти в студию и сказать что хочешь делать сайты. Ну задали бы тебе пару вопросов про ООП и CSS, для ответа на которых хватило неделю чтения смехуечков на программаче.
>Лучше задачи решайте на алгоритмы
Тебе платят деньги за решение бизнес-задач, а не тупые алгоритмы которые нужны только чтобы пройти собес в Яндекс, сбер и другие параши
Залупа понурая, ты стекломоя наебнул и в пространстве не ориентируешься? Ты в каком треде находишься сейчас, синька?
прости что задел твое хрупкое эго кодомартышка а я анонов наставляю на истинный путь и собратьев по пхп
Какие алгоритмы ты уже выучил?
А пыха умрет вместе с вебом или как-то отдельно сама по себе? Если сама по себе, то в вебе, если уж на то пошло, гораздо полезнее паттерны знать.
То на что заменяют пхп прямой сейчас? Тайпскрипт, го. Там нихуя этой ооп дрисни нет.
В голосину
Как понравиться эйчарке
Если ты хочешь именно разобраться, то возможно, стоит попробовать начать без фреймворка (чтобы понять, как все работает), а потом перейти на фреймворк (чтобы не изобретать велосипеды). Советую Симфони. Понадобится знание ООП, MVC, паттернов.
Если хочешь разобраться реально, то возьми хотя бы slim, как тебе выше советовали, и подрубай там к нему че хочешь.
> Как быть? Можно ли в симфони использовать только действительно нужный мне функционал, как например формы, роуты, шаблон твиг, а остальное уже на своё усмотрение?
Можно. Сейчас фреймворк Симфони делается из компонентов, и ты можешь подключать только нужные. Или ты можешь создать свой собственный фреймворк, используя компоненты Симфони: https://symfony.com/doc/current/create_framework/index.html
И, кстати, официальные туториалы по Симфони довольно хорошие.
Могу дать пару статей по безопасности: https://github.com/codedokode/pasta/tree/master/security
persist может вызывать сам репозитрий, когда ты добавляешь в него объект.
Не очень представляю, как это должно работать с active record, но тут тоже save должен делать репозиторий.
>>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 это клюз к внешним системам.
>>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 это клюз к внешним системам.
Это посредник, который делает взаимодействие с хранилищем более конкретным, "объектно-ориентированным", как выражается Фаулер.
Без репозитория, у тебя будут общие методы вроде "найти записи в таблице по критерию", "вставить запись", "обновить запись", "удалить записи по критерию".
С Репозиторием у тебя будут более конкретные методы: "добавить объявление", "скрыть объявление", "поднять объявление", "удалить устаревшие объявления", "найти новые объявления", "найти объявления пользователя".
Нет, он не является коллекцией, а выглядит для вызывающего кода как коллекция.
> Додик, там помимо сейва еще дохуя интересного: транзакции, блокировки при чтении и прочая реляционная поебень. Как ты все это впихивать в свой репозиторий будешь?
Интересный вопрос, в Доктрине транзакции делаются уровнем выше репозиториев. А блокировки при чтении, наверно можно и в репозиторий засунуть. Отправка в несколько мест может делаться как через Репозиторий (в Доктрине есть события), так и выше него.
> Поэтому он блядь и остается просто ин мемори коллекцией, которую анализируют другие сервисы и построив по этой коллекции список изменений сохраняют данные туда куда надо и как надо.
Я не вижу такого у Фаулера: https://martinfowler.com/eaaCatalog/repository.html - на диаграмме взаимодействия именно репозиторий инициирует поиск/сохранения данных.
А зачем тебе несколько синонимов для одной функции? Обычно ты просто импортируешь функцию как:
use function Database\Util\quoteIdentifier;
Нейсмпейс показывает, к какому модулю или компоненту относится функция и вряд ли она может относиться к нескольким сразу.
>>303551
Зная алгоритмы, ты сможешь придумать решения получше.
на 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, где надо сделать побыстрее, не для серьезных задач).
Объекты и классы нужны обязательно, как без них.
В 9 из 10 вакансий он есть вот просто сука как железное требование сидит ты обязан знать или иди нахуй
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, нам очень интересно
Длинные-короткие варианты, во-первых. Одни читаемы, другие компактны. yet_another_compiler и yac. Во-вторых, что-то пишется по-разному, а означает одно и то же. ffmpeg и avconv.
Есть же class_alias, почему бы не быть namespace_alias.
linux\ffmpeg\exec()
linux\avconv\exec()
Однако такой возможности нет. Есть только некий алиас внутри любого пр-ва. Но я даже не могу прописать глобальное use linux\ffmpeg as linux\avconv. Хотя вроде бы было бы логично.
>Ехала доктрина через доктрину
Орм протекла тебе в труханы. Изолировали изолировали да не выизолировали.
>Я не вижу
Кушай морковку.
>сохранения данных
А этого на схеме нет, мистер пиздобол с выборочным зрением. Потому что увеличит эту схему в несколько раз.
Короче.
Проектировать репозитории нужно без орм, доктрин-хуин и sql дерьма. Потому что эта залупа разрастается как раковая опухоль и начинает диктовать свои условия и влиять на проектируемые решения.
Еще и оторвать это говно от проекта будет невозможно. Банально выходит третья доктрина, а додики уже настолько зависимы от особенностей второй версии что им для перехода на новую нужны тысячи человекочасов.
>лежит JS со всем его дремучим легаси
Каким нахуй легаси? Жс макаки уже сто лет как пишут на подмножествах языка типа ECMAScript и тайпскрипта и никакого "легаси" в глаза не видели.
>Назови аналог Доктрины, Симфони на тайпскрипте?
Ну вот https://typeorm.io/ , дело тут исключительно в популярности. Как только на жабоскрипте взлетит аналог ларавеля - пхп тут же пизда. Даже кривая уебищная нода отъела часть рынка. А как только появится что-то нормальное, пхп макаки тупо станут не нужны, так и будут легаси десятилетней давности поддерживать.
>Назови аналог Доктрины, Симфони на Go?
Напиши в го треде этот вопрос, развлеки пацанов.
Вся эта орм-спринг залупа заебала всех в край еще лет десять назад. Все уже давно отсмеялись над абстрактными фабриками фабрик, бесконечными аннотациями и прочим говном. И только пхп уверенно колеса катит туда где была джава десять лет назад. И похуй что от джавы всех давно тошнит и все это считается устаревшим многословным калом. Мы блядь едем. Сделаем так же но хуже, с опозданием на десять лет. И не в коем случае не сдохнем.
План надежный, стоит вкатываться.
Понимаю, что для йододефицитного сложно ввести в поиск "php" и поглядеть первые 5-10 вакансий. Но поверь, это не так трудно
Но ты и правда долбоеб. Фронт просят почти в 2/3 вакансий, что даже и близко не 9/10. Но даже отсеивая вакансии с фронтом, мы получаем больше 1к вакансий - откликайся, не хочу.
Но поплакать на двачике важнее, чем немного применить мозги
> как только появится что-то нормальное, пхп макаки тупо станут не нужны
Джава не похоронила пыху, шарп не похоронил пыху, петухон не похоронил пыху, даже говноланг не похоронил, а лишь дополнил, но вот джс обязательно похоронит, вот-вот, надо лишь немного потерпеть!
>рряяяя вакансий нет
>так вот же вакансии
>ррряяяя не те вакансии!11
Очередной троллинг тупостью
Бля, ну вот хуй знает. Ну как с долбоебами разговаривать? Кто там писал про агрессию? А как нахуй без агрессии с вот такими поленьями разговаривать?
Как это в твоем тупорылом понимании работать должно? Джава или шарп своими действиями ЗАПРЕЩАЮТ писть код на пхп? Или как блядь? Пхп сервера отключаются потому что вышел новый язык?
Вот тебе факты. Прямо сейчас задачи которые делались на пхп растаскивают по разным языкам.
1. Отрисовку хтмл отжали фронтендеры полностью, все крупные сайты рендерятся на жабоскрипте сейчас.
2. Все тяжелые задачи, процессинги и числодробилки отжали го программисты.
3. Вся новомодная микросервисная хуйня строится сразу на го.
4. Очереди-хуечереди, события. Все это крайне хуево работате на пхп, потому что нужно держать открытый коннект, а пхп дохнет как сука и по памяти течет. Переносят на го.
Что остается? Остается то что делается с помощью фреймворков - круды, орм, бизнес логика.
Схуя-ли это тоже не уйдет жабоскрипт макакам? Они дешевле, их больше, проще нанимать, не надо держать две команды, у них прямо сейчас есть языки на котороых даже проще писать бизнес логику, с встроенной готовой многопоточностью, быстрые и эффективные.
Ответ: а он уйдет. Раньше были звоночки, а сейчас вам в КОЛОКОЛ НАХУЙ ЕБАШУТ. То что делало пхп долю рынка огромной - вордпресс перекатывают на жабоскрипт. И перекатят. И че останется? Дрочить копейки в столетнем легаси кале на битриксе? Если для тебя, тупорогого это и есть "не похороны", то хули тут сказать? Кайфуй, перспективно, свежо. На это стоит въебать жизнь.
Главное, почаще это писать, и тогда точно сбудется! Нужно верить!)
Ножкой сколько раз топнул , пока писал?
Людей, которые прогнозируют какие-то вещи, не приводя пруфов, статистики, аргументированной аналитики, в моей молодости называли пиздоболами. Особо упрямым еще и ебало били в кровь.
>Фронт просят почти в 2/3 вакансий, что даже и близко не 9/10
Ну 6\10 - это довольно таки близко к 9\10...
Но разве становление вордпреса жс фёрст по мнению его основателя это не аргумент? Даже сам Расмус Лердорф говорил что вордпрес это база пыхи, а не эти ваши хреньворки.
мимо
Как нехуй делать на голенг перепишут. Большая компания. Они облако развивают.
Да уйдет и уйдет, ваще поебать. Направление работы остается тем же.
Дохуя пхп макак и го тыкает периодически и с фронтом работает.
В рамках одного направления хули бы не полистать доку и не перекатиться тихонько.
Мем смешной, ситуация страшная.
Пруфстер, а ты видел где-то обратное? Ты где видел какой-то рост пхп?
Какбы факт падения даже не обсуждается. Весь спор идет только о том насколько быстро падает.
>Направление работы остается тем же
И каким же, долбоебина? Копаться в битрикс кале? Заебись направление. Перспективное.
>И каким же, долбоебина? Копаться в битрикс кале? Заебись направление. Перспективное
Веб разработка, шлюха тупорылая.
Просто отвалился вордпресс. Популярность лары, симфы и yii никуда не делась, че высрать-то хотел?
Верь, не верь. А там уже сейчас свой мир с ебанутыми фасадами и классами, которые пол фреймворка наследуют.
А что интересно?
Гайд из шапки двенадцатилетней давности? Или мнение долбоебов которые в треде пять лет сидят, но не то что работать, ни одной строчки кода не написали?
>А что интересно?
>Гайд из шапки двенадцатилетней давности? Или мнение долбоебов которые в треде пять лет сидят, но не то что работать, ни одной строчки кода не написали?
Неиронично это интересней очередного хуесоса пиздобольного с ютуба с кликбейтом для даунов типа тебя.
>Ребята примите в php семью
А зачем тебе? Работа на PHP это по сути даже не айти. Так, веб скриптинг
Они там "уже написаны". И ты будешь только все это гвоно перставлять, а не код писать.
А надо каждый раз с нуля все хуярить, чтобы быть ТРУ?
Такое кукарекать может только петушара, которая ни на кассе никогда не стояла, ни траншеи не копала, ни даже за пределы мкада не выезжала, скорее всего.
Опять троллинг тупостью, еблуша не в кусре, что такое фреймворк
> Как только на жабоскрипте взлетит аналог ларавеля
Не взлетит они спринг копируют или пыху десятилетней давности
>То что делало пхп долю рынка огромной - вордпресс перекатывают на жабоскрипт. И перекатят.
Это правда или твоя фантазия?
Поплачь еще
>>лежит JS со всем его дремучим легаси
> Каким нахуй легаси? Жс макаки уже сто лет как пишут на подмножествах языка типа ECMAScript и тайпскрипта и никакого "легаси" в глаза не видели.
ECMAScript это и есть тонна дремучего легаси. Примеры:
- можно обратиться к несуществующему свойству объекта и не будет исключения
- можно делить на ноль и не будет исключения
- до сих пор есть глобальные переменные, достаточно забыть слово let
>>Назови аналог Доктрины, Симфони на тайпскрипте?
> Ну вот https://typeorm.io/ ,
Нет UnitOfWork (методов вроде flush()), надо вручную каждую сущность сохранять. Иногда это неплохо, но иногда хочется больше автоматизации.
Интересно, кстати, что он так похож на Доктрину, что переучиться наверно можно за день. Такие же классы с аннотациями, как будто с PHP никуда и не уходил. У них еще и валидатор похож на тот, что в Симфони. Ну правда, все почти как в PHP.
Но вот PHP не надо компилировать при редактировании, а тайпскрипт надо. Да, там система типов получше, но в PHP через phpDoc тоже можно сложные типы городить.
> Вся эта орм-спринг залупа заебала всех в край еще лет десять назад.
Ты считаешь, что база данных больше не нужны и не актуальны? Или какую альтернативу ты предлагаешь для ORM? Руками SQL-запросы писать? Напиши конкретно.
При импорте ты можешь создать синоним:
use function My\longNamedFunction as lnf;
Но это ухудшит читабельность и понятность. Мне не хочется расшифровывать сокращения при чтении кода.
Я об этом написал в своем посте, но может быть я плохо выразил мысль. На схеме у Фаулера изображен Репозиторий и у него есть (увеличено на твоей картинке) Стратегия сохранения данных, в данном примере это Стратегия сохранения в память. Но само название "Стратегия" подразумевает что она может быть заменена на другую Стратегию - например, Стратегию сохранения в БД, Стратегию сохранения в key-value хранилище и тд. Слово "strategy" в названии это отсылка к паттерну Стратегия. Там не написано "in-memory storage", а "in-memory strategy"
То есть, на диаграмме у Фаулера показана идея, что есть Репозиторий, с которым работает код, а в качестве бекенда к Репозиторию можно подключить одну из Стратегий, и таким образом выбрать, куда будут сохраняться данные. Логика сохранения данных специально вынесена из Репозитория в Стратегию, чтобы ее можно было менять. Но я бы назвал Стратегию (заменяемой) частью Репозитория.
Фаулер не имел в виду, что Репозиторий всегда хранит данные в памяти. Он имел в виду, что можно выбирать, где их хранить, с помощью смены Стратегии.
> Проектировать репозитории нужно без орм, доктрин-хуин и sql дерьма. Потому что эта залупа разрастается как раковая опухоль и начинает диктовать свои условия и влиять на проектируемые решения.
Так а куда данные сохранять? Ты от БД предлагаешь отказаться или предлагаешь какой-то альтернативный способ сохранять данные? Какой?
Что-то платят мало. Переходи на го, тут повкуснее предложения:
- https://spb.hh.ru/vacancy/107385037?query=%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA+Go&hhtmFrom=vacancy_search_list
- https://spb.hh.ru/vacancy/107897289?query=%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA+Go&hhtmFrom=vacancy_search_list
Или на Си++ хотя бы:
- https://spb.hh.ru/vacancy/107634243?query=%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA+Go&hhtmFrom=vacancy_search_list (судя по описанию, работа унылая, но зато избавит от риска мобилизации)
Ты все упрощаешь. Перевод сайта на SPA имеет и недостатки:
- медленная загрузка, покажи мне SPA, которое при холодной загрузке показывает контент, а не крутящийся круг
- большая нагрузка на браузер из-за мегабайтов, как правило, не оптимизированного JS-кода
Поэтому, если можно сразу отдать с сервера контент и не требуется особой интерактивности, то я бы предпочел рендерить на сервере.
Но я сам использую Vue для написания простых бессерверных приложений для себя (интерактивные прототипы UI, простая программа для развития слуха). Vue и реактивное программирования мне нравятся для задач, где важно сделать как можно быстрее, когда без разницы производительность и скорость загрузки.
Что касается Го, я ловлю себя на мысли, что было бы интересно попробовать писать на нем нативные GUI-приложения с GTK вместо Си++, так как он более высокоуровневый и в нем есть сборка мусора. Если там есть еще какая-то реактивная или data binding библиотека, я определенно хотел бы попробовать написать, например, простую DAW или отладчик. Хотя Go не для этого делался, но все равно хочется попробовать.
> микросервисы
Отличный способ тратить деньги работодателя и время, не принося ничего взамен.
Залупа ты понурая. В том-то и дело что In memory стратегия превична. И остальные стратегии не должны протекать в репозиторий и менять его. В in memory стратегии нет save, значит и во всех остальных нет.
>Так а куда данные сохранять?
Туда же куда и раньше. Просто делать это надо не в репозитории. Твоя же любимая доктрина именно так и работает. Ты просто меняешь свойства объектов. А уже потом, когда контроллер отработал вызывается flush в специальной мидлвари, и доктрина чекает все изменения объектов, которые лежат в identity map и выполняет нужные sql запросы.
И ты не учел, что перейти с PHP на другой язык, например, Питон или Го, относительно легко. Так что если завтра PHP закончится, я могу писать на Си, Раст, Питон, Го, JS, Тайпскрипт, и на других языках при наличии документации.
А почему такое падение в 2021? Оно больше напоминает какую-то техническую ошибку (отвалился один из источников данных или поменялся способ подсчета), чем массовый уход с PHP. Массовый уход выглядел бы скорее как наклонная прямая или экспонента, а не резкий скачок.
А то как-то странно, тут за 1 неделю половина разработчиков ушла с PHP.
>И ты не учел, что перейти с PHP на другой язык, например, Питон или Го, относительно легко
Потому что...? Да хуй знает почему, просто высрал хуйню.
Все буквально наоборот. Пхп со всем остальным программированием пересекается минимально. Пхп макаки литературно не знают никакого CS и ни на каком другом языке писать не умеют, еще и на более низкоуровневом. 90% пхп макак даже ооп не осилили. Так и хуярят скриптовые портянки, а классы используют как папки для функций.
Доктрина в репозиториях ничего не хранит, обычно это просто набор методов 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
Написано, что это слой между доменной моделью и слоем сохранения данных.
Откуда ты взял число 90%? Ты исследование читал или проводил? А то я так же могу тебе много чего рассказать про 90% TypeScript и Го-разработчиков.
Ну конечно блядь, разумеется. Пхп макаки это титаны мысли. Именно таких свергениев-уберменшей и производит среда из битрикса, ларавеля и вордпресса.
>Стратегия подразумевает возможность заменить ее на любую другую.
Ноу щит шерлок. Именно поэтому интерфейс, общий для ВСЕХ стратегий, определяется In memory стратегией, а не sql залупой.
>A Repository mediates between the domain and data mapping layers
>Написано, что это слой между доменной моделью и слоем сохранения данных.
Ебать ты чтец залупоглазый. "Data mapping" оказываетвся переводится как СОХРАНЕНИЕ.
Вся суть. Двух слов прочитать не может, но на серьезном ебале пытается кого-то поучать, о чем-то спорить. Пустая трата времени - пытаться таким оленям что-то объяснить.
Ебать тебя трясет ИТТ. Тебя когда-то толпа пхпшников изнасиловала?
Для того, чтобы освоить другой язык В РАМКАХ ТОЙ СФЕРЫ, В КОТОРОЙ ТЫ И ТАК РАБОТАЕШЬ, не надо быть гением мысли.
Сферы, хуеры. Давай побольше пизди.
Чтобы в эти сферы устроиться тебе придется пройти собес, на котором тебе будут два часа водить хуем по губам, а твой охуительно полезный опыт писанины на пхп даже читать никто не будет. Да ты и сам его из резюме вырежешь, чтобы не позориться, когда поймешь что без него приглашают чаще.
Учил питон до пыхи, трогал плюсы в молодости.
Так джава и сложнее х2
Хуй с ним с потолком, но хули большинство работодателей в рф считает что пыхарю джуну не нужно платить больше 30-40к когда в других языках давно уже зп от 70к
>потолок здесь ниже, чем в го/джаве. Т.е. условный сеньор на джаве это 500к, а на пыхе - 300
Забыл добавить что чистый пыхарь столько не получает, либо фулстак либо пыхарь-гошник
Хуйню не неси, даже в моей говногалере чистый пыхарь-сеньор 300 получает, фронт не трогает, го в помине нет
Да я прикололся чтоб проверить реально ли есть лохи сеньки пашущие за 300к и реально один такой вылез
Я знал что тебя это заденет и ты скинешь именно эту пикчу
Ты даже не программист нихуя а стремящийся шкила
О, шиз, который нонстоп тут хуячит "пыхеры больше 250 не получают", как дела?
Ты тот же шиз, который про "пхп не нужен, все перепишут на джс и го" затирает частенько?
>ECMAScript это и есть тонна дремучего легаси.
Люто двачаю весь js мир это тонны легаси с обратной совместимостью, там даже новые версии ничего не исправят
Ты даже не пытаешься работать тонко, додик...
> Го,
> GUI-приложения с GTK вместо Си++
Не лучший выбор, если хочется не ебаться с памятью, то возьми лучше Vala он с GC или Rust там при компиляции все делается. У go много синтаксических ограничений и делать окошки на нем будет больно
Это же найм на закрытие ноубрейн задач за знание вложенных циклов. Для кого-то шанс закатиться в айти. Кто по умнее, дальше перетечет в более продвинутую разработку.
Это набор битриксоидов, там если не заблудился и нашел нужный кабинет в офисе уже хорошо
>Потому что...? Да хуй знает почему, просто высрал хуйню.
Потому что все высокоуровневые языки +- похожи и используют общие программисткие концепции?
Ну и какие у тебя концепции, дура?
Структур данных нет. Модульности нет. Нормальной ситемы типов нет. Многопоточности нет. Мьютексов нет. Промисов нет. Даже авейта нет.
Ооп наиуебищнейшее. Дженериков нет. Перегрузки методов нет. Ковариантности при наследовании нет.
Какие у тебя нахуй общие концепции? Концепция переменной? Да ты с десятью годами знаний пхп завалишь собес на джуна на любой дргуой язык, даже на жабоскрипт.
Бля, вкатун умные слова где-то в соседнем треде прочитал и пришел сюда срать, ору нахуй
Как там дела в 2010, кстати?
>Как там дела в 2010
Бакс по 30. Я поступил в универ на прикладную информатику. Устроился на свою первую работу эникеем в мелкоконтору почти за 1к бачей. Сняли хату с корешем за 15к. Сидим пьем пивас с кальмарами и играем в god of war на третьей плойке.
А у тебя как дела в 2024?
А ты с какой целью итт трясешься уже который день? Что ты пытаешься объяснить/доказать?
Что пхп хуевый язык? Так мы в курсе
Что пхп умирает? Так уже лет дохуя умирает, заебались слушать
Что пхп никому не нужен? Вакансии говорят об обратном
Что есть современные, пиздатые языки, лишенные минусов пыхи? Ну есть, и что? Ты забываешь, что программист - наемный рабочий, ему платит бизнес, а бизнесу безоблачно поебать на многопоточность, типы, промисы и прочую поеботу, бизнесу важна прибыль. Если ты даешь бизнесу рабочее решение в разумные сроки за разумные деньги - ты молодец. И само собой, далеко не каждому бизнесу надо держать 1000 rps, обрабатывать несколько задач в многопотоке, обложиться десятками микросервисов и постоянно масштабироваться. И есть огромное количество проектов, которые несколько пыхеров реализуют быстрее и дешевле, чем несколько джавистов/говноебов
Скорее всего, пхпшница не дала
Либо долго смеялась с фронтендершами над его маленький пиструнчиком
>Бакс по 30. Я поступил в универ на прикладную информатику. Устроился на свою первую работу эникеем в мелкоконтору почти за 1к бачей. Сняли хату с корешем за 15к. Сидим пьем пивас с кальмарами и играем в god of war на третьей плойке.
А до тряски в пхп треде ты как докатился?
Как можно заниматься вебразработкой и не знать нтмл сиэсэс жиэс? С таким подходом только на завод на конвеер кнопку нажимать.
>Как можно заниматься вебразработкой и не знать нтмл сиэсэс жиэс?
Легенды гласят, что для гениальных гениев есть вакансии, в которых только бек...
Кабанидзе заебал уже тут лохов искать никто тебе фулстачить за одну зп бекендера не будет
>уже который день
>который месяц
Пофиксил.
Не понимаю, раньше он успешно игнорировался. Внезапно всем скучно стало что ли на работе или в отпуск все вышли. Что вы с тредом сделали.
Ну для тебя твоя тряска мож и заебись. Я спрашиваю - как докатился?
А че не так с тредом? Жизнь макаки - вечное изучение. Вот изучаем пыху через призму шизы вротендера.
Но вы же нихуя не изучаете. Вы просто сидите в треде и нихуя н делаете. Оставляете себе оправдание, вот завтра начну исправлять свою жизнь, возможность все еще есть. И так годами.
Поэтому вас так корежит при любом упоминании что часики то тикают. Это же получается что ты не "без пяти минут программист-300к-наносек", а просто хуйлуша который выдумал себе манямир, а реально что-то сделать не может.
Да тут вкатунов то три калеки, шиз. Давно все вкатились, кто хотел.
>rc.local
Так это процесс разработки. Файлы редактируются, результат проверяется ежеминутно. И нужно при этом не тыркать каждый раз ./update_all.sh.
ИП Ельмикеев Евгений Иванович пади?
Придется копаться в говне в поиске бриллианта.
Я тут подумал. nginx вообще непричём, скорее всего. А php-fon может проверять, что файл был изменён, чтобы его перекэшировать и уже тогда пропустить через препроцессор.
Я когда ищу в гугле "php препроцессор", он не понимает меня, и пишет: "да да, php это препроцессор". А мне нужно препроцессор для php! )) Благо можно -hypertext написать. Там есть какой-то модуль, нештатный, но даже это выглядит как накладные расходы, т. к. не нужно это запускать каждый раз, а лишь единожды.
Я так понял тебе нужно один раз запускать php файл "через препроцессор php", как только н изменился. Можно например поставить ежеминутный крон на скрипт, который проверяет не изменился ли файл. и затем его запускает.
Конечно.
Зарплата 15к, зато:
Комфортный просторный офис в центре села Пупки-Залупки
Печенье, чай и туалетная бумага в офисе
Интересные и сложные задачи
Добрый и приветливый коллектив
Ну если ты сам с Пупок-Залупок, то можно несколько месяцев побатрачить, если ток вкатываешься
Вроде бы и да, но так себе. Из области решений за пределами web-tools. Во-1, иногда нужно сразу запустить, мгновенно. Исправил - запустил. Это секунда. Тогда уж можно на хоткей повесить... Это всё кривые решения. Опять-таки файлов куча остаётся в проекте валяться, темповых, названия которых не соотвествуют содержанию, потому что я редактирую одни, генерирую другие, притом nginx читает вторые; ещё и часть файлов без этой заморочки - 1 к 1. Туфта.
Нельзя, пошел нахуй кабан.
Начинающий специалист это не школьник с неделей опыта, плати 80к или соси мне яйца
Сосать будешь ты вместе с сотнями таких же додиков на улице, вкатунишка.
Вот видишь какой у нас хороший тредик, даже плюс на вакансии дает.
А вообще, скрин выше из реальной вакансии, просто компания как-то связано с контентом для игроков доты и кс.
Зря. codedocode разве тебя не предупреждал, чтобы ты обязательно выполнил задачу список студентов?
Да там че все в кучу намешано, я хз. В любом случае что-то такое ты будешь делать на любом своем первом пете на ларе.
да, я 2023 к ним откликнулся, они мне это скинули, а скипнул. Потом они через неделю примерно написали почему не стал делать. Лал блять.
Молодец
Можно в ответ было спросить, можно ли решить эту задачу на PHP.
И если честно, уже надоедает это натье про фронтенд. За то время, пока вы жалуетесь тут, можно основы HTML, CSS, JS, DOM, браузерные API выучить несколько раз.
Нужен. Вакансии же есть.
Че, решил протыка своего прорекламить?
Пока ты фублятькаешь, он уже сеньерит на чатГПТ
Я мастер на все руки - фулстек-гений.
Помню этого говнокодера, он еще неправильно понял принцип единственной обязанности и хуячил в тестовых на каждый класс по одному методу, а потом удивлялся почему его на работу не берут
А, сука, совсем засвистел. Ну вы поняли...
Да мы поняли что ты про своего протыка в /dr/, угомонись уже.
Тут нет работающих. Тут сидят только шизы, регулярно генерирующие находящийся на грани правды бред.
я гребу, за 4 мрота
Я лучше вас понимаю этот паттерн, не шутите со мной.
Попробуй тоньше
>пыхарей щас дефицит?
Да, и давно. На пыхарынке дохуя дедов, которые даже на 8-й пыхе будут писать как на 4-й, даже за MVC не пояснят. И даже среди тех, кто в курсе современных трендов, полно додиков, которые не в курсе, как работает композер
Ну и запомни основы, может пригодится в будущем. Вроде ничё сложного. Многие большие системы на этой хуйне построены.
>дали задачку по геометрии
Поняли что ты дебил не шаришь за rabbitmq и решили тебя слить задав вопрос не по теме
это мидл вакансия?
блин, вот если б это у многих было на джунасинкера в требованиях, я бы откликался
Это значит только то, что на пыхарыке вагон легаси.
можно ли для веб-проекта пользоваться возможностями только ларавельки, не используя при этом рестапи и чудо.джс фреймворки? вот захотел я там вывести что-нибудь в блейдшаблоне, ну и вывожу собственно. а то мне сказали, что это нарушает MVC, но почему-то блейд не ограничивает меня в этом, и писать небольшие вставки я могу, что-то вроде <p>Имя: {{randomCollection->name}}</p>. Ну и эндпоинты у меня не в апи роутах, а веб роутах. А анимашки накидываю в обычном js css.
я с джсом еле как обращаюсь, а тут еще и реакты какие-то. Вот чего я не смогу достичь с таким подходом, что можно было бы достичь с rest api + framework.js?
Давай немного проясним понятия.
>рестапи
API это способ одной программе общаться с другой программой. Есть программа, которая собирает данные метеослужб, есть сайт, который публикует погоду, сайт просит программу прислать данные о погоде, чтобы отобразить их для пользователей. Как им общаться? API.
REST API это одна из реализаций API.
В общем говоря, REST API это про HTTP-запросы, каждый из которых представляет собой одну из CRUD-операций. Сайт хочет получить данные о погоде, сайт делает GET HTTP-запрос.
>чудо.джс фреймворки
Набор готовых решений, чтобы писать код было быстрее и приятнее.
><p>Имя: {{randomCollection->name}}</p>
Эта строка, по моему мнению, не нарушает MVC.
MVC это архитектурный шаблон.
Почти весь твой код делится на три слоя:
Модель, Представление, Контроллер.
Модель - совокупность классов, которые делают какие-то вычисления, короче, работают с данными, например, считают стоимость налога.
Представление - обычно шаблоны, которые представляют собой, в частности, в ларавель, blade php файлы с php переменными.
Контроллер - совокупность классов, содержат методы (экшены), каждый из которых содержит инструкцию "что делать, если произошло такое-то событие".
Что такое событие? Пользователь отправил форму. Нужно как-то отреагировать. Значит будет контроллер с соот. методом, например, создать пользователя.
Нарушением MVC в случае с представлением, будет то, если ты будешь писать код в шаблонах.
Не прочитать свойство, а, например, установить значение для свойства объекта. Или подключиться к БД. Или посчитать тот же налог.
Должно быть так:
Есть кнопка, например, "посчитать налог". Пользователь кликает по ней, формируется теоретическое системное событие.
Оно ловится контроллером, конкретным его методом. Контроллер берет нужную ему информацию из HTTP Request.
Передает эти данные каким-нибудь классам Модели. Вызывает методы у какого-нибудь класса Модели, который считает налог и потом берет значение этого налога и отдает в представление, вызывая view()->with(...);
Т.е. в представлении спокойно можно читать значение переменных и значения свойств объектов, главное никаких вычислений.
>эндпоинты у меня не в апи роутах
Должны быть в api.
>я с джсом еле как обращаюсь
Учебник по js + читаешь YDK JS.
>framework.js
Попробуй vue, мне очень нравится.
Давай немного проясним понятия.
>рестапи
API это способ одной программе общаться с другой программой. Есть программа, которая собирает данные метеослужб, есть сайт, который публикует погоду, сайт просит программу прислать данные о погоде, чтобы отобразить их для пользователей. Как им общаться? API.
REST API это одна из реализаций API.
В общем говоря, REST API это про HTTP-запросы, каждый из которых представляет собой одну из CRUD-операций. Сайт хочет получить данные о погоде, сайт делает GET HTTP-запрос.
>чудо.джс фреймворки
Набор готовых решений, чтобы писать код было быстрее и приятнее.
><p>Имя: {{randomCollection->name}}</p>
Эта строка, по моему мнению, не нарушает MVC.
MVC это архитектурный шаблон.
Почти весь твой код делится на три слоя:
Модель, Представление, Контроллер.
Модель - совокупность классов, которые делают какие-то вычисления, короче, работают с данными, например, считают стоимость налога.
Представление - обычно шаблоны, которые представляют собой, в частности, в ларавель, blade php файлы с php переменными.
Контроллер - совокупность классов, содержат методы (экшены), каждый из которых содержит инструкцию "что делать, если произошло такое-то событие".
Что такое событие? Пользователь отправил форму. Нужно как-то отреагировать. Значит будет контроллер с соот. методом, например, создать пользователя.
Нарушением MVC в случае с представлением, будет то, если ты будешь писать код в шаблонах.
Не прочитать свойство, а, например, установить значение для свойства объекта. Или подключиться к БД. Или посчитать тот же налог.
Должно быть так:
Есть кнопка, например, "посчитать налог". Пользователь кликает по ней, формируется теоретическое системное событие.
Оно ловится контроллером, конкретным его методом. Контроллер берет нужную ему информацию из HTTP Request.
Передает эти данные каким-нибудь классам Модели. Вызывает методы у какого-нибудь класса Модели, который считает налог и потом берет значение этого налога и отдает в представление, вызывая view()->with(...);
Т.е. в представлении спокойно можно читать значение переменных и значения свойств объектов, главное никаких вычислений.
>эндпоинты у меня не в апи роутах
Должны быть в api.
>я с джсом еле как обращаюсь
Учебник по js + читаешь YDK JS.
>framework.js
Попробуй vue, мне очень нравится.
А если я хочу вывести свойство, но с функцией date_format во вьюшке, это нарушает MVC? Я вроде бы значений никаких не присваиваю в этом случае
По поводу restapi и эндпоинтов. Я к тому, что вот эти джсончики перегоняются на клиент фреймворка (реакт, вью, etc.). Я эндпоинтом называю определенный uri, мне так проще (хоть это мб и неправильно). Как я написал, там для роутов есть отдельные пхпфайлы, вроде бы web.php и api.php. Так вот, у меня нет отдельного клиентского фреймворка, куда бы я отдавал джейсоны, я решил все эндпоинты(uri) писать в web.php, и в контроллерах я не джсончики отдаю, а рендерю вьюшки, если это можно так сказать, а на вьюшки кидаю что-то, что содержит данные. Соответственно, я не хочу юзать фреймворк.js пока намеренно, мне хочется сделать демо именно через документацию ларавеля + небольшими запросами в гугл по js. Мб вопрос неправильно задал, но суть в этом - могу ли я на вьюшках и компонентах блейда все сделать, или мне придется в дальнейшем к фреймворк.js обращаться и джсончики туда гонять?
Остальное мне понятно, но возможно я опять не так выражаюсь. В любом случае, спасибо за ответы!
>А если я хочу вывести свойство, но с функцией date_format во вьюшке, это нарушает MVC? Я вроде бы значений никаких не присваиваю в этом случае
С чего оно должно нарушать mvc? Форматирование даты у тебя ведь к отображению данных относится, а это именно слой представления.
За компоненты блейд не могу вести речь, потому что я их не трогал и мельком читал о них в документации.
Ну, js фреймворк не является обязательным инструментом.
Как я понял тебя:
Твой код генерирует какие-то данные и ты, вместо того, чтобы отдать их в формате JSON, отдаешь их в виде php-переменных.
Если так, то это нормальная ситуация.
Да в целом крудошлепство не сильно сложное, просто не понимаю, в чем я не прав после выполнения тестового. Мне так и предъявили, что я нарушаю МВС
>date_format во вьюшке, это нарушает MVC?
Тебе именно так и сказали? Дело именно в форматировании данных?
>>310143
> в чем я не прав
Я коллеге 2 часа доказывал, что округлять на вьюшке дробное число это нормально. Он рассказывал, что мне нужно почитать умные книжки умных людей и тогда я пойму, что вьюшки должны только показывать данные и не изменять их.
Так данные не меняются, они просто форматируются...
По такой логике можно дойти и до того, что вьюшка должна представлять собой только сам жесон и ничего более.
Лучше ваще шибко много не читать вумного, а то фляга засвистит.
А ты спроси этого долбоеба: как понять что число нужно округлить и до скольки знаков? Ну типа вот какое-то поле с числом, его нужно округлять? На нем же блядь это не написано.
> что это нарушает MVC, но почему-то блейд не ограничивает меня в этом
Может он еще за тебя само проект должен сделать?
>Мне так и предъявили, что я нарушаю МВС
Мож ты не понял в чем предъява на самом деле?
А так - можешь посмотреть, как работают с блейдом и вкраплениями в него js на админка ларавелевских типа оркида или бэкпака.
И ваще - не тяни с вкатом во vue параллельно. Можешь попробовать через ларавеловскую inertia. Занятный вроде инструмент, хотя я толком его не тыкал.
Вот, я тоже делал раунд по флоат свойству на вьюшке
В итоге собеседующий сказал РАУНД то, что я нарушил MVC.
Скорее всего я и в правду не должен был счетчик юзать для красоты. Там прост айдишники поломались несколько раз после делитов, рефреш миграции в падлу делать было. В таблице просто считал i по foreach записи в коллекции и выводил в качестве отдельного поля. Вероятно, я тут неправым оказался и надо было просто все-таки рефрешнуть. Прям чтоб какие-то экшны, рендеры новых вьюшек (лол) на вьюшке не делал. Только самые простецкие действия. Можно было на это указать, но мне просто написали, что я нарушил мвс.
Было бы неплохо, но я стараюсь сам
>В итоге собеседующий сказал РАУНД то, что я нарушил MVC.
Ну собеседующий олень значит. Там долбоёбы тоже иногда встречаются.
Ну попробуй на следующем собеседовании данные обернуть в класс, назови дто. И преобразования с числами делай там в конструкторе.
Уже несколько лет подряд проигрываю с того как пхп макаки перепутали DTO И POJO.
>Уже несколько лет подряд проигрываю с того как пхп макаки перепутали DTO И POJO
Скучная же у тебя житуха...
Хочу прочитать книгу по основам программирования.
Не конкретные детали какого-то языка, а программисткие концепции. Не про то, что такое переменная, а что такая функция, а вообще, чтобы такая книга задавала программисткое мышление.
Sicp.
В чем разница между этими уровнями связности (cohesion)?
Одна функция получет собаку, по информации на ошейнке формирует анкету, вторая функция берет анкеты и вставлет их в очередь на прививки, третья функция по анкете достает собаку и делает ей прививку.
Одна функция приходит к собаку, моет ее, а затем уходит. Затем приходит вторая функция и делает мытой собаке прививку и уходит. Собака идет дальше.
С временной связанностью собака не подходит. Потому что во всех этих трех связанностях нельзя вызвать функцию, которая делает прививки собакам, потому что система еще нет мытой собаки, ачтобы ее получить нужно сначала дать системе грязную собаку, чтобы она ее помыла. У них получается временнАя связанность.
Опять с чтением беда. Буковы не даются никак.
Cohesion - это мера связанности ВНУТРИ модуля. А мера связаности МЕЖДУ модулями - это coupling.
Что ты несешь.
У тебя вторая похоже на первую.
Третья похожа на первую.
Не серчай, анон, мне кажется, что авторы этого опуса, просто хуйню написали (я пробовал читать на языке оригинала и понятней не становилось).
В первом передаются данные между модулями, во втором случае - управление. У нас то все объекты по ссылке передаются, так что разницы никакой, потому что объект один и тот же и последовательность та же.
$class = new A();
$class = $service1->doSmth($class);
$class = $service2->doSmth($class);
return $class;
$class = new A();
$service1->doSmth($class);
$service2->doSmth($class);
return $class;
Но если мытая собака это отдельный класс и отличается от грязной собаки, то будет работать только первый вариант.
$classB = $service1->doSmth(new A());
return $service2->doSmth($classB);
Чтобы работал второй вариант, оба класса должны наследоваться от собаки, которую можно помыть и привить.
$class = new P();
$service1->doSmth($class);
$service2->doSmth($class);
return $class;
Ну вот короче https://3v4l.org/FA71K убираешь указатели получаешь временную связанность
>Ну вот короче
Не, там бред все таки получился.
Тебе, хуесосу гнилозубому, впервые за весь тред скинули КОД, а ты ноешь. Какой же ты конченный пидарас все-таки.
Один ответ. Один.
Я сколько тут сижу, постоянно вижу одну и ту же картину, джун что-то спросил, на него сразу агро. Ощущение, что сижу в треде с низкоквалифицированными обезьянами, которые только умеют жопой вертеть перед джуном, у которого 0 знаний, а как речь заходит о чем-то сложном, так сразу пиздак закрывается и тред полумертвый. Вот и вся ваша суть. Знаний 0, а выебонов много.
почитай книги Столярова
Щас бы в этих говнопереводах разбираться.
Так ты не джун. Ты хуесос.
Вот парень, который тебе попытался ответить - джун. У него какие-то перспективы есть. А такое говно как ты тут нахуя? Твой код где? Ты просто срешь бессмысленной шизой.
Мне больше нравится вариант в котором кохешен - это зацепление, а связность коуплинг
Мне больше нравится вариант в котором кокпежен - это зацепеление, а завязность коукупинг.
у Крэга Лэрмана попробуй про ГРАСП почитать. Мож там понятней будет
В том и дело, чел, что задали казалось бы такой базовый вопрос, ответ на который должен знать любой тут сидящий гений ООП, который любит щемить джунов, а ответов хуй, да нихуя.
>>311457
Вот тебе пример такого человека.
К чему он это писал? Что в посте или пике натолкнуло его написать это? Он сам не знает, у него единственное желание защемить. Никто не путал связность и связанность, но надо же обосрать. "Не умеешь читать буковы", при том, что в тексте про связанность нихуя, только уровни связности.
Как можно знать, что имел в виду какой-то долбоеб, который коряво в корявом переводе высрал по две строчки на пункт?
>К чему он это писал? Что в посте или пике натолкнуло его написать это?
Во втором посте он базу написал, если что. Прочитавшему одну статейку по теме просто сложно это осознать.
Всё так. Все умники итт - крутые только когда вкатун (даже не джун) в треде задаёт наивные вопросы. Потому что сами от этих вкатунов ничем не отличаются.
Реально хорошие программисты здесь почти не сидят, а те кто сидят - отвечают раз в год.
>Потому что сами от этих вкатунов ничем не отличаются.
На платят, а вкатун на шее у мамки сидит и завтраками ее кормит.
Платить могут кому угодно. Как и не платить.
А суть в том, что знаний у вас никаких нет. Анон выше прав, тут бесполезно спрашивать любой вопрос сложнее "как написать хеллоу-ворлд", потому что сразу молчок, ибо вы нихуя не знаете, только пиздите.
Да угомонись уже трястись, Семен. Тебе написали, какую книжку почитать. Пока все главы про ГРАСП не проштудируешь - не возвращайся.
По какой теме ты мне говоришь? Я тебе свой опыт описываю, ВСЕ вопросы сложнее "я вчера вкатился посоветуйте IDE" тут игнорируются. Максимум какой-нибудь один ответ будет, абсолютно мимо кассы. Зато если спросить какую-то примитивную хуету, то тут местные жители сразу активизируются и могут насрать 100 постов обсуждения "зачем объявлять типы переменных", причём делают это с таким важным видом, что аж на смех пробивает.
Идею связности впервые представили Уэйн Стивенс, Гленфорд Майерс и Ларри
Константайн (Stevens, Myers, and Constantine, 1974). На уровне проектирования
классов ее практически вытеснили более современные концепции, такие как аб#
стракция и инкапсуляция, однако на уровне проектирования отдельных методов
эвристический принцип связности по#прежнему полезен.
Из книги, откуда сделал скрин этот анон >>311398
Я наконец-то понял одну вещь.
Нет ничего страшного в том, что один объект зависит от другого объекта.
Главное это то, от какой части объекта зависит второй объект - от стабильной или нестабильной.
Потому что если от нестабильной, то нестабильная часть начнет меняться, а за ней, как волна, и остальные части кода, которые зависят от нее.
Детали реализации (переменные объекта, реализация публичных методов) это нестабильная часть, поэтому и есть правило "программировать на уровне интерфейса, а не на уровне реализации".
Ну что, могу брать пирожок с полки?
Ты перепутал результат выполнения программы и саму программу.
Кофе - результат выполнения, тут вообще не обсуждалось.
Как из тейка "я понял как писать программы правильнее" выходит "я обязан написать конкретный код"?
Нет, не обязан.
По-твоему, если я узнаю как работает какая-то техника, я обязан создать ее с нуля своими руками?
Если ты учишься СОЗДАВАТЬ ТЕХНИКУ, то хули толку пиздеть о том что ты научился, если ты ничего при этом не создал?
Мне всего лишь хотелось поделиться радостной новостью с людьми, которые хоть что-то понимают в программировании.
Кому мне это рассказывать? Если я своей тян начну рассказывать детали проектирования программ, то она сдохнет от скуки.
Очевидно, что знание будет применяться ПОТОМ, когда встанет такая необходимость.
У меня сейчас чисто теоретические занятия программированием. Ну ты и сам должен понимать, что ощутить ценность принципов проектирования можно только на сложных системах. Что я тебе тут должен высрать? Свой последний проект?
1280x720, 0:05
>У меня сейчас чисто теоретические занятия программированием
А у меня теоретические занятия в качалке и бассейне. Я пока изучил баттерфляй и становою 150. Ценность принципов ощутил.
Потом когда начну тонуть, к удивлению всех, схвачу спасателя и сним подмышкой ебану баттерфляем к берегу, а там начну его над головой вертеть. Вот моя теретическая тян охуеет.
Окей. Удачи тебе, анон!
>Ну ты и сам должен понимать, что ощутить ценность принципов проектирования можно только на сложных системах.
Вот такую хуету
>Главное это то, от какой части объекта зависит второй объект - от стабильной или нестабильной.
>Потому что если от нестабильной, то нестабильная часть начнет меняться, а за ней, как волна, и остальные части кода, которые зависят от нее.
любая макака поймет на интуитивном уровне на первом же "проекте" в пяток функций.
Не смог найти токсичный ответ на пост с пожеланием удачи?
Будь добрее, анончик, а еще будь не таким ленивым, у тебя вообще есть работа? Я-то хоть учусь, чем-то полезным занят, а ты как будто 24/7 срешь тут своим троллингом тупостью.
Вас тут не двое, еабанат. Вижу я как ты учишься - понял концепцию для пятиклашки и прибежал хвастаться и обсуждать.
Мне-то хотя бы ЗП капает, пока я тут написываю.
$dateStart = new DateTimeImmutable($model->date_start, $timeZone);
$dateEnd = new DateTimeImmutable($model->date_end, $timeZone);
Против
$startDate = new DateTimeImmutable($model->date_start, $timeZone);
$endDate = new DateTimeImmutable($model->date_end, $timeZone);
Я бы назвал первого челоека занудой, а второго - легкомысленным.
легкомысленность
Забей на выравнивания. Мне тоже мой окр не давал покоя долго. По итогу будешь тупо вхолостую эти пробелы дрочить. Ты надрочил все эти отступы, а кто-то другой в импорты строчку добавил, прожал автоформат и все сжал опять.
Закончится все тем, что тебе на ревью придет пул реквест, в котором половина изменений будут какие-то ебаные пробелы и выравнивания. Вот тут-то ты взвоешь и поймешь как ты ебал мозги остальным все это время. И окончательно забьешь хуй на это бесполезное выдрачивание.
В идеале такое выравнивание должно быть чисто визуальное, без изменения кода, как лигатуры например. Но хуй такое где есть.
Дурка
Почему получением данных и передачей их контроллеру занимается сервис? Это же прямая обязанность репозитория и его можно напрямую к контроллеру приклеить.
Репозиторий возвращает не "данные", а Entity. Он не может тебе вернуть "список идентификаторов" или "название" или добавить какое-то новое поле к результату.
Для получения "данных" никаких репозиториев не надо, достаточно интерфейса для доступа к хранилищу. Репозиторий для того и делают, чтобы полностью абстрагироваться от способа хранения и получать конкретные готовые объекты, не зная кто и как их там достал и собрал.
В контроллерах репозитории не используют потому что контроллер - это часть фреймворка, а твоя программа должна НЕ ЗАВИСЕТЬ от всей внешней хуйни. Плюс дублирование кода. Есть контроллер, есть консольная команда, а есть хендлер очереди с событиями. Все вызывают одну и ту же логику. Ты по три раза будешь эту логику дублировать? Твое приложение должно работать без всего этого говна. Выкинул нахуй контроллеры и фреймворк, подключил "in memory" хранилище и твой код работает. Это и есть ОТСУТСТВИЕ ЗАВИСИМОСТЕЙ. Это и есть ТЕСТИРУЕМЫЙ КОД.
Ну а если у тебя тупо круд, который тупо маппит напрямую поля из формы на модель, так и используй для этого ебучий ларавель, в котором это все за пол минуты генерируется само. Какие нахуй репозитории.
Сервис нужен чтобы обрабатывать данные, а не для того чтобы возвращать результат выполнения функции из репозитория. Вот у нас есть интерфейс для сервиса, в котором есть save(Object $model) и все наследники имеют одну и ту же функцию
$this->repository->save($model). Не дай Бог увидят эту статью еще и get(int $id) туда добавят.
Ебать насрано в башке.
Если у тебя репозиторий, то тебе в своем коде уже нихуя сохранять не надо. Наследники какие-то блядь.
Вот, пикрелейтед, ссу тебе на ебало.
Все верно, если у меня репозиторий, то мне в моем коде уже ничего из базы брать не надо. Сохранением и получением данных из базы занимается репозиторий потому что.
>EbaloId $ebaloId
Это ты здорово сделал. Апишки постоянно пилишь что ли?
Сохранением, транзакциями и прочей sql хуйней занимается не репозиторий, а мидлварь, через которую вызывается контроллер.
Любитель оскорблений, функционального программирования и го, хейтер длинных названий классов, ты?
1280x720, 0:06
>Любитель оскорблений
По заслугам. Ниразу не оскорбил человека просто потому что он, например, запостил решение задачи из шапки, каким бы плохим оно не было. А быкам и долбоебам сам бог велел шершавым по губам проводить.
>функционального программирования
Не сказал бы. Я любитель нормальных систем типов, по совпадению они в основном в функциональных языках.
>и го
Вообще мимо. Го - это сблев говна.
>хейтер длинных названий классов
Тоже мимо.
Лень перепечатывать, скопируй сам в онлайн и кинь ссылку
https://bugs.php.net/bug.php?id=50029&thanks=3
Ты рофлишь, ебобо? Я инспекции для файла отключил чтобы это вообще прочитать можно было. Отсутствие конструкторов и половины используемых классов тебя не смутило?
Ну да, мы же тут код ревьюеры с 200коммитов в наносекунду. Вот теперь хорошо, исправляй свой пенис теперь
А что делает кругла скобка с переменной? Я бы еще понял если бы было
>(new $a)()
Но там ведь $this->a уже проиницировано, строчкой выше. Почему без скобок ошибка, а со скобками ее нет? В интернете не нахожу инфы.
Спасибо. Не знал что он там может что-то путать. Выглядит очевидно.
>Тебе же скидывали
Там непонятно.
Нет. Ты имеешь в виду, что у переменной и названии класса одинаковое название?
От названия переменной ничего не зависит тут. Он пытается вызвать метод в классе. Там в ошибке написано об этом.
Ну а внутри класса он всегда пытается вызвать метод, даже если метода нет, а есть только свойство. Хули тут удивляться, это пхп кал. Нос затыкай и ныряй.
Стоит ли учить пыху 1 языком и в целом вкатываться в неё? Есть ли возможность вката, как тут обстоят дела?
Кароче, я вкатун без бекграунда, но по натуре типичный анальник.
Больше всего интересен веб и уже после мобилки, хочется делать красивые сайтики и приложения, чтоб мог оценить и пощупать, что сам создал, это мне в айти привлекло (хотя мб и это быстро заебет и станет однотипной рутиной). Может какие-то прикольные высоконагруженные сервисы, да хоть что в принципе.
О пыхе я узнал года 4 назад и отмёл, т.к. тогда пели, язык для макак, станешь говнокодером, дрочить одно и тоже за копейки, пыха умирает, но это самый простой способ, если хочешь быстро зарабатывать начать. И вот до сих пор я слышу как пыха умирает, как она устарела, для скуфов и все такое. В итоге вакансий дохуя и она самая популярная в вебе.
Кто-то говорит, что это скрытый гем, пока все ломятся в петухон/другую хайповую хуйню аля Go, пыха непопулярная из-за стереотипов, а здесь работы дохуя, знать и учить меньше, чем в тот же го, поэтому это находка для вката.
Но здесь же я читал, что люди жалеют, что связались, переспектив нет, погрязли в этой хуйне.
Попробовав, мне пыха понравилась, просто и красиво, но похоже на ту же джаву. В целом всё просто и понятно чё как на практике учить и к чему стремиться, у меня есть запросы на сайтецы, а это и цель, и путь, и мотивация, и дисциплина, и фидбэк, и комм. опыт в резюме.
Но начались но...
Количество вакансий оказались фейковыми (в моей мухосрани 7 вакух, но везде фигурируют битрикс или просто цмс), а если убрать их, то останется 1!!! И то там битрикс, но еще ларавель плюсом, считай 0. А вакух на ларавеле/симфони, также мало, как и остальных. И якобы мне пояснили, что вкидывают такие вакансии без опыта, чтобы перебирать лучших кандидатов за порцию риса, я им как вкатун тоже не всрался, нет легкого вката.
Т.е. это я буду просто клепать сайтики в конструкторе, и допиливать сайт/нужные плагины пилить? Ну как бы это же дно, с прогерством мало что имеет, и тут развития не будет, т.е. вообще бесперспективно, буквально макака.
Да и тут в треде читал жаловались, что связались с пыхой, не все так радужно. Еще и язык узкоспеализирован. Выглядит сомнительно.
Другое дело в моих глазах - джава. Строгая, кладезь годнейшей литры, всякой базы знаний, еще и общего назначения, тут полностью превосходит пыху. Но пиздец пугает что долго и сложно учить, что я не вывезу и проебу время, что это тебе не ИП Аганесян, а энтерпрайз, все ебать как серьезно, требования высокие, уже в вакансиях часто хантят студентов, и что там ничего нового не создают и не смогу пощупать, задачи может и разнообразные, зато там тоже наверное заебет делать хуй пойми что хуй пойми зачем. Зато она вечная, востребована, там и вакансии есть (но мало в мухосране), и бабки, и видно, что она развивается и популярна, в банках куча стажировок для джавы (даже на удаленке), в пыхе я никогда ничего такого не видел, да и в целом прикольно в таком бигтехе/финтехе себя попробовать, а не дрочить сайтецы всю жизнь. На крайняк я думал может попиздую в школу21 (но это маловероятно, это всё бросать и переезжать за 500км+, шансов мало) или хотя бы перекачусь попроще в петухон/жс на базе (или лучше не оставлять себе возможности ссыкануть и слиться)
Ну или все таки попытка быстрого вката в пхп, может куда на ларавель/симфони проползу, а потом задрочу JS (все равно требует) и попытаюсь во фронт, если не моё, то тогда начну гребсти в сторону Go/Node.js, что-то поперспективнее кароч
Я хз, может просто забуриться на месяц и в то, и в то, и что уже душа прикажет? Пыха звучит как синица, более приземлено, а джава - как жаворонок, но тяжело поверить, что смогу и вкачусь, сложно (хотя я мб хуйню стереотипную напридумывал и будет норм). Ну или как средне-специальное и высшка.
Есть еще с#, но чет не особо аргументы предпочесть этим двум его. Типа как джава++, но такой литры годной вряд ли найду, работы меньше, зп чуть меньше, такого ажиотажа не видел вокруг него, и копнув узнал, что там почти все вакухи - фулстэк
Остальные языки : типо жс/го/котлин/swift не вижу смысла учить первым уж точно, специфично и либо конкуренция/нет работы для вкатуна
Стоит ли учить пыху 1 языком и в целом вкатываться в неё? Есть ли возможность вката, как тут обстоят дела?
Кароче, я вкатун без бекграунда, но по натуре типичный анальник.
Больше всего интересен веб и уже после мобилки, хочется делать красивые сайтики и приложения, чтоб мог оценить и пощупать, что сам создал, это мне в айти привлекло (хотя мб и это быстро заебет и станет однотипной рутиной). Может какие-то прикольные высоконагруженные сервисы, да хоть что в принципе.
О пыхе я узнал года 4 назад и отмёл, т.к. тогда пели, язык для макак, станешь говнокодером, дрочить одно и тоже за копейки, пыха умирает, но это самый простой способ, если хочешь быстро зарабатывать начать. И вот до сих пор я слышу как пыха умирает, как она устарела, для скуфов и все такое. В итоге вакансий дохуя и она самая популярная в вебе.
Кто-то говорит, что это скрытый гем, пока все ломятся в петухон/другую хайповую хуйню аля Go, пыха непопулярная из-за стереотипов, а здесь работы дохуя, знать и учить меньше, чем в тот же го, поэтому это находка для вката.
Но здесь же я читал, что люди жалеют, что связались, переспектив нет, погрязли в этой хуйне.
Попробовав, мне пыха понравилась, просто и красиво, но похоже на ту же джаву. В целом всё просто и понятно чё как на практике учить и к чему стремиться, у меня есть запросы на сайтецы, а это и цель, и путь, и мотивация, и дисциплина, и фидбэк, и комм. опыт в резюме.
Но начались но...
Количество вакансий оказались фейковыми (в моей мухосрани 7 вакух, но везде фигурируют битрикс или просто цмс), а если убрать их, то останется 1!!! И то там битрикс, но еще ларавель плюсом, считай 0. А вакух на ларавеле/симфони, также мало, как и остальных. И якобы мне пояснили, что вкидывают такие вакансии без опыта, чтобы перебирать лучших кандидатов за порцию риса, я им как вкатун тоже не всрался, нет легкого вката.
Т.е. это я буду просто клепать сайтики в конструкторе, и допиливать сайт/нужные плагины пилить? Ну как бы это же дно, с прогерством мало что имеет, и тут развития не будет, т.е. вообще бесперспективно, буквально макака.
Да и тут в треде читал жаловались, что связались с пыхой, не все так радужно. Еще и язык узкоспеализирован. Выглядит сомнительно.
Другое дело в моих глазах - джава. Строгая, кладезь годнейшей литры, всякой базы знаний, еще и общего назначения, тут полностью превосходит пыху. Но пиздец пугает что долго и сложно учить, что я не вывезу и проебу время, что это тебе не ИП Аганесян, а энтерпрайз, все ебать как серьезно, требования высокие, уже в вакансиях часто хантят студентов, и что там ничего нового не создают и не смогу пощупать, задачи может и разнообразные, зато там тоже наверное заебет делать хуй пойми что хуй пойми зачем. Зато она вечная, востребована, там и вакансии есть (но мало в мухосране), и бабки, и видно, что она развивается и популярна, в банках куча стажировок для джавы (даже на удаленке), в пыхе я никогда ничего такого не видел, да и в целом прикольно в таком бигтехе/финтехе себя попробовать, а не дрочить сайтецы всю жизнь. На крайняк я думал может попиздую в школу21 (но это маловероятно, это всё бросать и переезжать за 500км+, шансов мало) или хотя бы перекачусь попроще в петухон/жс на базе (или лучше не оставлять себе возможности ссыкануть и слиться)
Ну или все таки попытка быстрого вката в пхп, может куда на ларавель/симфони проползу, а потом задрочу JS (все равно требует) и попытаюсь во фронт, если не моё, то тогда начну гребсти в сторону Go/Node.js, что-то поперспективнее кароч
Я хз, может просто забуриться на месяц и в то, и в то, и что уже душа прикажет? Пыха звучит как синица, более приземлено, а джава - как жаворонок, но тяжело поверить, что смогу и вкачусь, сложно (хотя я мб хуйню стереотипную напридумывал и будет норм). Ну или как средне-специальное и высшка.
Есть еще с#, но чет не особо аргументы предпочесть этим двум его. Типа как джава++, но такой литры годной вряд ли найду, работы меньше, зп чуть меньше, такого ажиотажа не видел вокруг него, и копнув узнал, что там почти все вакухи - фулстэк
Остальные языки : типо жс/го/котлин/swift не вижу смысла учить первым уж точно, специфично и либо конкуренция/нет работы для вкатуна
>года 4 назад и отмёл
Так а хули ты делал четыре года? Джун, котрого я менторил четыре года назад, давно сеньор. Две тачки сменил и хату купил. А все потому что у него не было возможности хуи четыре года околачивать.
Приехал в большой город, учился, подрабатывал и пхп дрочил. К тому моменту когда диплом получал он уже мидлом был. И уж поверь, он шизоидные фанфики страницами не высирал. Ебашил как конь.
Ага, конечно. Наоборот про пхп как будто больше говорить только стали, особенно в видосиках на тему вката и что будет популярно в следующем году. Не удивлюсь если через пару лет это будет новый пайтон по количеству вкатывающихся
>>316996
> К тому моменту когда диплом получал он уже мидлом был
Не работая мидлом стал? Еще скажи сразу на 400к пошел после выпуска
>Ебашил как конь.
>Не работая мидлом стал?
Ну тут понятно. Какое нахуй программирование, когда двух предложений прочитать не можешь.
На Yii2 древние снгшные проекты, в дальнем зарубжье laravel, symfony, zend.
https://mkdev.me/posts/top-5-php-frameworks-laravel-vs-yii-vs-zend-vs-phalcon-vs-symfony-their-good-and-bad-sides
Но ты не будешь ебурить каждый день, если у тебя нет какой-то работы, где тебя пушат, подогревают, поддувают, где у тебя каждый день какие-то задачи, постоянное повышение квалификации, ментор и всё вот это вот.
Чтобы чисто сидя дома самому ебурить хотя бы год, да не надо год, хотя бы полгода, нужно иметь железную волю и дисциплину, либо быть просто фанатиком программирования, типа как я. Я прихожу домой, мне ничё неохота делать, пожру, поскролю шебм тред, захожу по ssh на работу и продолжаю ебурить то на чём остановился на работе, но уже в чиловом режиме. Либо свои проги пилю. Либо у ChatGPT чё-то выясняю по каким-то вопросикам.
И ещё момент, что если ты не хочешь, но будешь себя заставлять ебурить каждый день, то ты выгоришь за 1-2 года до вегетососудистой дистонии и сляжешь, потому что невозможно насиловать себя каждый день, тем что тебе не хочется. Может даже раньше, смотя какая нервная система.
Другое дело то что есть люди которым вообще нихуя не хочется в жизни кроме как лежать в кресле и скролить двач или играть в игрульки, чиля в виртуальных мирах. Таким советую начать делать свою игру, без рофлов. Хотя бы чё-то браузерное на спрайтах с 2D анимацией. Взять с какой-то игры готовые спрайты и клепать из них. Очень многое вам даст в плане развития как прогера.
>Другое дело то что есть люди которым вообще нихуя не хочется в жизни кроме как лежать в кресле и скролить двач или играть в игрульки, чиля в виртуальных мирах. Таким советую начать делать свою игру, без рофлов. Хотя бы чё-то браузерное на спрайтах с 2D анимацией. Взять с какой-то игры готовые спрайты и клепать из них. Очень многое вам даст в плане развития как прогера.
Кушать на что? Силы где взять?
Дак наверняка у мамы на шее сидит, она покормит. Либо если вынужден работать, а работа выжимает до суха, так что приходишь после смены нулевой, то я не вижу другого выхода кроме как менять работу на более чиловую, но с меньшей оплатой, после которой хотя бы можно чё-то поделать, а не просто лечь и провалиться в сон. Ну типа глупо задавать вопрос как вкатиться если я не могу ничего изучать и пушить потому что у меня нет времени и сил. Никак тогда. Ищи варики как сделать так чтобы было время и силы. Потом рассмотришь вопрос как их использовать чтобы вкатиться.
>Но это нереальная хуйня, химия мозга не та.
Ну да. Кто-то выиграл в генетическую лотерею, кто-то - нет.
> . Таким советую начать делать свою игру, без рофлов
Нахуй этим заниматься если у тебя нет видения своего или желания его создать. Делать клон клона очередной, который соберёт 1 скачивание на итче?
Охуительные истории. Оказывается чтобы батрачить нужны какие-то особенные гены. Просто кое-кто очень заебато пригрел сраку.
Ебать ты оптимист. Люди реально заряженные до релиза в 90% случаев не доползают. А тут чмоня, который четыре года сиськи мял чтобы начать просто че-то делать, да так и не начал.
Какая нахуй игра, ставлю косарь, что он даже курс не досмотрит на ютабе бесплатный, не то шо код какой-то писать.
Я ответил челику, котрый решил что будет какой-то клон и будут какие-то скачивания.
Ты с утра уже наебенился? Или ты тоже в генетическую лотерею мозги проебал?
О чем ты думал когда в веб вкатывался? Эта самая худшая область, это место куда идет каждый вкатун (после питона разумеется). Сам я начинал с джавы, с полного нуля, ни о чем не думал, просто ресурс нашел удобный. Джава мне очень понравилась, я после нее синтаксис котлина, пхп и жс на изи освоил. Но на джаве работать не собирался ибо там челы знающие от корки до корки спринг, мавен и прочее вкатиться не могли годами также, да и в ентерпрайс работать мне не судьба.
Ради интереса еще попробовал андроид, да ахуенно конечно, но вакансий 0, тупо 0. Веб макакинг на пхп/ларавел учил уже для вузовского проекта, понимая что вкат в веб с такой же нулевой вероятностью возможен. Сейчас выбор стоит или дрочить эту залупу в вебе дальше или на 360 развернуться и вкатываться в ембедед. Там уже давно курсы для вкатунов есть и профессия +- хлебная, когда читал учебник по микроэлектронике даже нравилось, хоть и с физикой тяжко очень было в школе как и с математикой. Лучше уж это чем дрочить эти ссаные фреймворки и драться с толпами обезумевших от нищеты вкатунов в веб, ЕЕ и мобилки
Че несёшь? Я говорю что смысла нет за свою игру браться уебку типа того анона. Даже если он допердит её тихонько до релиза, с таким подходом будет унылый кал
>я начинал с джавы, с полного нуля
>работать не собирался
>попробовал андроид
>но вакансий 0
>Веб макакинг на пхп/ларавел учил
>на 360 развернуться и вкатываться в ембедед
>тяжко очень было в школе
Ну судя по улу разворота в школе внатуре было тяжеловато.
Давай рассказывай сколько лет ты уже занимаешься любой хуйней кроме работы и запишем тебя в наш клуб с особой химией мозга.
че такого то блять учил джаву голую, плавно андроид с котлином начал учить используя джаву
веб я учил просто для вуза ибо я ненавижу веб туда вкат закрыт
но душа всегда лежала к нормальной работе руками, чтобы меня уважали, чтобы я был востребован, а не был посмешищем - обезьяной которая красит кнопки как миллиарды таких же вкатунов
>Охуительные истории. Оказывается чтобы батрачить нужны какие-то особенные гены.
Ну да. Для всего нужны особые гены. Иначе хули не все вокруг Илоны Маски?
Действительно.
Кому достались гены от родителей, которые кормят и не дают сдохнуть от голода - те сидят пердят в кампуктере и годами делают вид что куда-то там вкатываются.
А те кому достались гены от родителей, который съебались в закат или сдохли, не оствив после себя нихуя кроме долгов - те въебывают на работе и строят карьеру.
Генетический детерминизм епты.
> но душа всегда лежала к нормальной работе руками, чтобы меня уважали, чтобы я был востребован, а не был посмешищем
Проблемы эго. Пытаешься через жопу все делать. Хочешь уважения в обществе и от этого профессию выбераешь, хотя твоё эго от плевка разобьется. Просто кто-то скажет, что ему похуй на то, что ты вместо веба пошёл в хуйню в два раза сложнее, и вот получается чувак перекрыл все твои усилия двойные одним своим похуизмом, лол.
Это очень тупо, ищи уважения другим способ. А лучше на шаг назад отойди и вообще уважения не ищи. Ты вообще дебил свою жизнь тратить на то чтобы какое-то абстрактное уважение иметь в обществе. Которое мало того, что говно, так ещё и твое уважение разрушиться может за секунду
> - обезьяной которая красит кнопки как миллиарды таких же вкатунов
Если считаешь, что твоё счастье зависит от того, красишь ли ты кнопки, то удачи в жизни, лол.
Ты пытаешься найти какое-то противоречие, там, где его нет, шиз ебаный, или что?
Просто пытался по вежливей намекнуть что ты зажравшийся ленивый мудак.
И все твои "лотереи" излечит знаменитая генная терапия из комбинации декабрьской погоды и недельного голода.
>Если считаешь, что твоё счастье зависит от того, красишь ли ты кнопки, то удачи в жизни, лол.
А что ты при смерти будешь вспоминать? То как красил кнопки? Или какую то пользу обществу принес разноцветными кнопками? То то же
> какую то пользу обществу принес
Почему не в копах на гойде? Принеси пользу обществу жидов.
Не хочешь? Ой, а что так?
Буду вспоминать, как закапывался в книжки, чтобы выучить сложную хрень просто потому что она сложная и я как дитя малое мечтаю об уважении, но не знаю как его получить другим нормальным способом. Окда
тебе надо ещё раз серьёзно подумать о том какую философию жизни ты себе выстроил и зачем/почему
Посодействуй развитию ИИ, принеси вклад в технологическое будущее и последующий неизбежный коммунизм
>>317521
В первую очередь речь о твоей морали. "Что ты сделал?" "За что ты гордишься собой?" "Чем ты лучше других?". Если не задаешься вопросами ты нпс, серая масса. НПС не нужно быть лучше других, ему нужно быть как все. Вкатунцом на курсах скилбокса или кассиром в пятерочке
>Размышления человека в пубертате
Смысл жизни человека не в том, чтобы быть лучше кого-то, а в том, чтобы делать то, что ему нравится, по возможности, и без вреда окружающим и частично себе. Т.е. здравый гедонизм.
> В первую очередь речь о твоей морали. "Что ты сделал?" "За что ты гордишься собой?" "Чем ты лучше других?". Если не задаешься вопросами ты нпс, серая масса. НПС не нужно быть лучше других, ему нужно быть как все. Вкатунцом на курсах скилбокса или кассиром в пятерочке
Дебилушка, меня просто не определяет то какой стек и язык я юзаю. Вот и всё.
Если ты жизни не видишь без того, чтобы быть лучше других в каждой хуйне, то ты макака. Не по стеку, а по восприятию мира.
Судя по тому как ты цепляешься за такую хуйню как язык, который ты используешь, то помимо этого ничего за душой у тебя и нет, а ещё мне пытаешься что-то говорить. Просто компенсируешь, причём самым беспонтовым способом. Из-за компа выйди, посмотри что ты вне его делаешь
В общем я годную тему принёс вам. Я долго рассуждал над тем, почему на западе делают качественные товары, а у нас хуёвые. Почему буквально любой западный товар лучше российского. Я нашёл причины этого и проследил историю как так вышло. Но речь сейчас не об этом. После того как я разобрался в этом вопросе, я понял что никогда не смогу этого изменить, это слишком сложная задача даже для авторитарного диактора, что уж говорить о просто омешке.
Но я понял, что могу сделать кое-что. А именно я могу начать писать код высокого качества. Так чтобы любой кто посмотрит на этот код, причмокнет и скажет про себя "да, этот код явно американский". Типа как люди смотрят на иномарку, например ей под капот, а там нигде ни капли масла, всё красиво и аккуратно, работает годами без сбоев, легко ремонтируется, везде есть удобный доступ, легко обслуживается. Я решил что мой код тоже будет таким же.
Ну как вам такая идея?
Ну и где код? Давай показывай американский код. Все хотят посмотреть на заграничное.
Я ещё не готов его показать. Пока я с трясущимися руками переписываю несколько небольших прог с самописного кала на популярные зависимости и композер. Как говорится МОСКВА НЕ СРАЗУ СТРОИЛАСЬ.
> отличное знание javascript!
Буквально в каждой второй вакансии...
И зачем мне пхп если я сразу во фронтендеры могу пойти раз уж это ОБЯЗАТЕЛЬНО
Думал есть ещё время, а потом случилась гойда я и просто лежал ничего не хотел делать пару лет, вот только недавно в себя пришел поняв что жизнь продолжается
Из каждого утюга твердили что рф осталось пару месяцев и будет новый развал совка, новые девяностые, потом мобка, потом выборы, короче надежды на перемены нет и я лежал просто в стену смотрел, ну и постепенно вылез из этого и стал думать о вкате
Ну то, что развал откладывается стало понятно месяца через 2 да и мобка шла недели 2 - до запуска реестра повесток смысла трястись ваще не было. Хз, че ты там трясся 2 года, наоборот надо было вкатываться, чтобы из гулага бежать иметь возможность.
мимо вкатившийся за месяц до мобки*
А щас ты по идее должне впасть в апатию из-за нейросеток.
>ебурить
Зачем? Чтобы вкатиться в айти достаточно 1-1.5 года ленивого изучения стека и прохождения собесов. И никакого ебуривания, полутора часа в день в среднем вполне достаточно.
потому что кабаны пидоры, хоть и сесть и заглотнуть сразу
Уже два дня прошло, никто даже не говорит об этом. Ты бы ещё из прошлого треда посты принёс
Лениво изучил тебе за щеку, в 2025 из за конкуренции надо знать много, следовательно каждый день по 4+ часа. Полтора года. Такого обьема работы даже для вката в более денежные и нужные профессии не надо, ибо вся вузовская программа умещается нуу в год такой интенсивной работы, максимум два. И будешь зато тру пролетарием, рабочим человеком, а не кнопкодавом
Че за профессии такие? Чтобы пердя в кресле вкатиться, да еще и без убивания 4-6 лет на реальную корочку?
На дваче анон в сантехника перекатился из айти, твоя конкуренция - тупорылые петровичи за 40, а гайдов на ютубе полным полно, еще и на практике можешь у себя что то починить или у родственников. Вкат занимает 2 недели. Зп та же самая. Без гемороя от сидения на жопе и инфарктов. Еще советуют холодосы чинить, там буквально 2 детали, а рубить будешь по 300к+
Да-да, хорошо там, где нас нет.
Но я то работал техником, который катается по клиентам\объектам, живет там, хуйню какую-то чинит\настраивает. Постоянный контакт с какими-то pidarashkami.
В рот я ебал.
А чтобы гемороя не было - гулять выходи или в бассик запишись.
>твоя конкуренция - тупорылые петровичи за 40
>Вкат занимает 2 недели
>Зп та же самая
> Без гемороя
>холодосы чинить, там буквально 2 детали, а рубить будешь по 300к+
Бля, это даже для тролинга тупо, это походу отрабатывает лахта гейткиперов или же обосравшийся вкатун
Еще забыл добавить про курьеров и таксистов
> лахта гейткиперов
Я думаю это реальная тема. Иногда прям видно, что человек просто специально хочет отвадить кого-то от вката, причём с тейками разной толстоты, кто-то толстит, кто-то очень тонко пытается хуйню писать
Ну это работает и в обратную сторону - не каждому по кайфу гайки крутить.
>следовательно каждый день по 4+ часа. Полтора года.
Мне хватило 1.5 часа с недельными проёбами и полутора года. Причём реально что-то учил я только первый год, остальные полгода тупо собесился.
>Такого обьема работы даже для вката в более денежные и нужные профессии не надо
Таких профессий в РФ нет. Чтобы ты полутора годика лениво попердел в диван, поездил по ушам интервьверу и лутанул оффер на 140к с повышением вплоть до 300+к в течение пары лет, реально работая при этом часа 4 в день, да ещё и удалённо. Сантехником он становиться рекомендует, ахуеть вообще. Может ещё Бомбас порекомендуешь? Тоже с нуля лям дают и 200к каждый месяц.
>из за конкуренции надо знать много
Все верно.
Компании, от которых нет ощущения ООО рога и копыта, ставят зепку около 100к (как максимальное значение), а потом месяц ищут себе джуна. При чем ты можешь быть неплохим, даже хорошим специалистом, но такие компании будут ждут того самого, принца, который могет в несколько раз больше, чем остальные вкатуны. И что смешно, потом эти компании открывают ту же должность через несколько месяцев. Либо прошлый джун вылетел, либо они так никого и не наняли.
> Чтобы ты полутора годика лениво попердел в диван, поездил по ушам интервьверу и лутанул оффер на 140к с повышением вплоть до 300+к в течение пары лет
А пыха тут причем?
Тут мужики с 8 годами опыта бояться 200к попросить
> Тут мужики с 8 годами опыта бояться 200к попросить
Так это проблема пыхи? Как будто на другом языке он бы не боялся. Я слышал есть и мидлы (не на пхп) за 80к
А ты сразу на вк и яндекс пошёл работать?
>даже хорошим специалистом
В чем? В 20% процентах задач, которые надо перекрыть и которые все равно решаются на 80% чатгопотой?
И надо еще 4 спеца набрать? Один запросики пишет, второй - крудики, третий - компоненты во вью клепает, четвертый докерфайлы пишет. И каждому плати, каждый должен вникать в проект.
Все, во что нужно вникнуть - бизнеслогика. Остальное напишет любая макака с чатгопотой. Достаточно иметь мало-мальские знание везде.
> Все, во что нужно вникнуть - бизнеслогика. Остальное напишет любая макака с чатгопотой. Достаточно иметь мало-мальские знание везде.
Что за бизнес логика такая? Типа как кабан мыслит и что ему от тебя нужно?
Ну типа
Что интересного?
Катишься катишься и вкатываешься по итогу, другое дело история не вкатившегося, это как надо постараться чтобы не вкатиться делая что и все
Мне как вкатывающему интересно что представляют из себя остальные вкатывающиеся.
Я уже не понимаю кто я (игнорируем опыт): стажёр, джун или миддл по навыкам.
мимо
Если не работал, то ты ты ниже джуна - просто вкатутосик обыкновенный
> Что интересного?
Да так просто путь в целом и что человек сам при своём опыте считает полезным или интересным сказать взглянув с его высоты в прошлое.
Интересно какой бэкграунд был, по времени сколько заняло ну и тд
> как надо постараться чтобы не вкатиться делая что и все
Наверное хуи пинать. В бэ вот тип несколько дней подряд треды про вкат делал, думаю сейчас на выходных отдохнет под пивко и в понедельник новый тред будет.
Правильно. Кабану нужен человек-оркестр, еще бы полы мыл, цены ему бы не было.
Ну да. И дело то в том, что технологии уже это позволяют. Сейчас не 2011.
зачем напомнили суки...
Это пиздец. Еще если устроишься, то на работе с трекерами работать, какое дерьмо только не придумают.
А у вкатунов типа есть выбор?
Отличная CMS, учи быстрее.
Вкатись в тестировщики через волков и учи свою джаву
>Битрикс
Не лезь сука, оно тебя сожрет, начав работать с битриксом ты возненавидишь программирование думая что оно везде такое как в этой цмске
пчел...
Оно почти везде такое, куча говна без документации и тестов, которая каким-то чудом работает, а тебе надо прикручивать к ней костыли
Ок, потом не говори что мы не предупреждали
Буквально так. Дают доступ к песочнице и акк в боевой. Дальше пукаешь как их апи требует. Открываешь и читаешь епты https://developer.tbank.ru/docs/api
когда как
могут дать апи для редиректа на оплату-колбэка
могут дать апи на которые срать данными карты юзверя
могут через айфрейм насрать qr кодом для оплаты из банковского приложения
смотря как твой кабанчик договорится
Меня шеф подначивал, чтобы я все-таки получил phd. Говорил, что это на имидже сыграет, отправим тебя на php meetup от нашей компании, зарплату повысим.
Мы один раз только там были, когда он проводился в нашем городе. Там был совободный микрофон на пару минут, но мы приходили только послушать.
Int(var)
Но нет блять, надо писать зачем-то
(int) var;
Теряя вообще любую логику и связь с реальностью, хотя везде это сделано так, что ты метод вызываешь и переменную туда передаешь, синтаксис такой, который ты используешь везде в других местах, но тут так нельзя
Да похуй ваще. Какие-то вкатунские заморочки.
>Int(var)
зри в корень, прежде чем писать бред
intval(var) - как ты хотел + быстрее чем первый вариант. Языку почти 20 лет, потому и много разных конструкций. Разобрался бы в вопросе сначала.
Тут в сеть слили ред флаги яндекса при найме раб скота на их галеру. Контора пидарасов как есть. Однако промелькнул там один забавный скриншот, на котором кое кому проводят шершавым по губам.
Вот оно реальное отношение к пхп макакам. Да, контора гнилых чсв хуесосов. Но зато искренне. Для внутреннего пользования. Пхп макака - не программист. Можно ныть, отрицать, да кому он этот ебаный яндекс нужен. Просто как факт: крупнейшая айти контора в стране ссыт нам на ебло. Мы для них не релевантны. Питон кал релевантен, а пхп говно нет.
> Тут в сеть слили ред флаги яндекса при найме раб скота на их галеру. Контора пидарасов как есть. Однако промелькнул там один забавный скриншот, на котором кое кому проводят шершавым по губам.
Есть такие конторы. Есть ещё такие, где тебя захотят на полиграфе проверить и гороскоп составить. И что теперь? Скинуть можно и дальше искать
Конторы-хуеры. Главное что из всех языков поссали только на пхп. Вот и думай головой.
Такие конструкции не только в пхп есть
А тут кто-то в хуяндекс собирался?
А так - тупо, конечно, бекенд опыт не считать за бекенд опыт.
Я так понимаю без него на работу не берут?
Как то раз поставил убунту обрыгался сильно и вернулся на божественную десяточку
хуй знает брат, я не понимаю требования знать линукс, а виндоус блять не надо знать? Что имеется вообще ввиду под этим
У "программиста" на пхп не может быть детей, женщина никогда не свяжет жизнь с таким человеком. На него смотрят с жалостью и опаской на улице, ему уступают место в транспорте как инвалиду, с ним даже за руку никто не здоровается. Какие там дети? И тем более возрастные. Это чудо если пхпшник не залезет в 30 лет в петлю
Ну Че пацаны прошел курс на степике, освоил базис синатксиса, на этой неде посмотрю ксс и чтмл, и еще раз повторю синаксис
дальше линупс и ооп
Все равно ошибка, уже все пробовал прописывать, может вместо локалхост что-то другое надо? Запускаю через докер
Так ты порт из докера какой прокинул? В контейнер заходил, через консоль логинлся? Постгря в контейнере вообще стартовала?
Порт 5432 и 8080 для интерфейса. В контейнере заходил но залогинится не получилось, постоянно пишет нет такого пользователя, сам стартовал, да. Вот мой докер композе юмл:
db:
image: postgres:latest
container_name: postgres-container
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: root
POSTGRES_DB: postgres
ports:
- "5432:5432"
pgadmin:
image: dpage/pgadmin4
container_name: pgadmin-container
environment:
PGADMIN_DEFAULT_EMAIL:
PGADMIN_DEFAULT_PASSWORD: admin
ports:
- "8080:80"
depends_on:
- db
Ладно похуй, через DBBeaver залогинился
Лол, так ты коннектишься к контейнеру с постгресом через другой контейнер. localhost - это, внезапно, ХОСТ. А контейнеры то в сети докера. Вот и используй либо алиас, который ты контенеру с постгресом дал "db", либо внутренний докеровский айпи контейнера.
Спасибо, так и думал что что-то в локалхосте не так
Пробуй теперь фронтенд, походу бекенд не твое если ты решил снова вкатываться
он во фронт вообще никогда не вкатится, там вход закрыт
Я ненавижу джаваскрипт потому что мои линупсоидные кумиры заклеймили эту технологию как ересь.
А что ты хотел от пхп скуфов? Работу сделали, а потом в танчики онлайн идут гонять, а саморазвитие это не про них
Я в двоечку катаю
Так это дохуя
Вопрос: почему нет ажиотажа? Полно же ваканский. Почему вокруг одни джава макаки? Почему?
Спасибо
Пхп ето кал, будешь с 1с-битриксом работать, поэтому люди сюда особо и не лезут, перспектив нет. Все новые проекты нынче на голанге и питоне
Голанг сразу мимо, его только для высоконагруженных мест должны использовать, а большинство работ так или иначе мелкобизнес или типа того, у кого нет хайлодово, хуедов, ну и го не нужен.
На джангу вроде не так много вакансий, хз
> Стоит ли еще не нюхавшему писик и еще не работавшему студенту 3го курса профильной вышки закатываться в пыху?
Нет.
>Вопрос: почему нет ажиотажа? Полно же ваканский. Почему вокруг одни джава макаки? Почему?
Потому что для студента с профильной вышкой PHP это выстрел себе в ногу.
>Потому что для студента с профильной вышкой PHP это выстрел себе в ногу.
Ну я потому и спрашиваю, потому что по ощущениям так оно и есть. Просто как будто можно залететь куда-нибудь пыхером, крутануть кое-чего там-сям и перекатиться на го и с пыхи это удобное делается.
>>323330
>Все новые проекты нынче на голанге и питоне
Голанг точно не, нижнего удваиваю >>323331
Нет вакансий на чистого гошника, он идет парой с другим языком бэкенда.
Давайте думать, придумываем.
Студенту с профильной вышкой качать надо только знания и навыки. Ничего крутить не нужно. Для вас есть стажировки в нормальные (относительно) компании. Был бы я не твоем месте я бы трайхардил стажки на любой бэк-язык со строгой типизацией.
>Был бы я не твоем месте я бы трайхардил стажки на любой бэк-язык со строгой типизацией.
Да, наверное, так это и выглядит со стороны, хз. В яшке вот пососал хуяру один раз, поэтому не пытался снова. Понял, что это для красноглазиков с рождения. Честно меня заебало уже все и чувствую что чуть-чуть и вообще выгорю, поэтому я и пытаюсь найти какой-то "простой" путь. Да и вообщем-то боюсь совсем рынок упустить, сейчас то есть возможность запрыгнуть (и то только с коркой), а дальше как будет - большой вопрос.
Чел, переубеждать не стану. Хочешь - пожалуйста.
Рыночек никуда не денется, меньше шизов слушай которые рассказывают что айти все и вообще всех нас нейроеки заменят, вкатывайся туда где тебе нравится
Смотря где живешь, если в пердях тогда, да, лучше пхп. Если в ДСах, тогда лучше что-нибудь еще посмотри
>Рыночек никуда не денется
Лол блять, вообще-то уже делся, у тебя больше половины компаний из страны съебались, и очередь за забором таких же как ты. Рыночек как раз таки порешал айти
Самый высокоуровневый императивный код, склеивающий твою кучу утилит и прочих сферических абстракций в вакууме в полезную работу, которую кабан хочет видеть. Да, ты почти угадал.
Ранец собрал на понедельник? Это ещё из сей тянется, в C# и джава то же самое.