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

PHP #138

 Аноним 14/03/24 Чтв 19:15:34 #1 №3086299 
php.jpg
Уроки по PHP
https://www.youtube.com/results?search_query=php+%D1%83%D1%80%D0%BE%D0%BA%D0%B8+2023

Уроки по Laravel
https://laravel.com/docs/11.x

Архитектура сложных веб-приложений. С примерами на Laravel:
https://github.com/adelf/acwa_book_ru

Шаблоны проектирования:
https://refactoring.guru/

Интересные проекты на/для PHP:
https://frankenphp.dev/
https://roadrunner.dev/
https://reactphp.org/
https://openswoole.com/
https://spiral.dev/

Остальное обсуждаем в треде
Аноним 14/03/24 Чтв 19:27:15 #2 №3086324 
А уроки для Симфони?
Аноним 14/03/24 Чтв 19:31:09 #3 №3086328 
>>3086324
Сначала уроки на го
Аноним 14/03/24 Чтв 20:20:04 #4 №3086386 
>>3086299 (OP)
Хороший перекат, надоела каша в шапке
Аноним 14/03/24 Чтв 20:28:23 #5 №3086392 
ПРЕДЫДУЩИЙ
https://2ch.hk/pr/res/3034858.html#3034858
Аноним 14/03/24 Чтв 21:05:25 #6 №3086424 
image.png
Уроки по yii2 https://coursehunter.net/course/yii2-internet-market
Аноним 14/03/24 Чтв 21:06:12 #7 №3086425 
image.png
>>3086386
Зато тэг забыл
Аноним 15/03/24 Птн 08:17:12 #8 №3086701 
>>3086299 (OP)
Был клуб, а теперь не клуб?
Аноним 15/03/24 Птн 09:02:42 #9 №3086746 
>>3086386
>>3086299 (OP)
Говно а не перекат, нет ссылки на предыдущий, ссылка на говноролики с ютуба а не учебник от опа анона. В следующий раз сам переекачу
Аноним 15/03/24 Птн 09:13:01 #10 №3086759 
>>3086746
Ещё и без тега, через поиск тред не найти
Аноним 15/03/24 Птн 09:19:16 #11 №3086766 
>>3086759
Велкам ту зе клаб бади...
Аноним 15/03/24 Птн 09:23:52 #12 №3086772 
>>3086746
Сам бы и делал тогда. А сейчас ныть поздно уже.
Аноним 15/03/24 Птн 09:26:52 #13 №3086776 
>>3086299 (OP)
>Архитектура сложных веб-приложений. С примерами на Laravel:
Здорово конечно, но на деле ты придешь в компанию работать, а там проект написанный битриксоидом который даже пхп не знает нормально.
Аноним 15/03/24 Птн 09:45:01 #14 №3086790 
>>3086772
Как вы работать собрались, если даже перекат не можете нормально оформить?
Аноним 15/03/24 Птн 10:20:09 #15 №3086807 
>>3086790
Ну этот только ты ещё собираешься, а я уже не первый год работаю. Нытиков и истеричек, если что, нигде не любят. Чето не нравится - сделай сам, все просто.
Аноним 15/03/24 Птн 10:29:59 #16 №3086813 
>>3086807
>а я уже не первый год работаю
Кем работаешь? Касса, доставка, колл-центр?
Аноним 15/03/24 Птн 11:22:41 #17 №3086875 
Аноны что запускает скрипт при каждом обращении к серверу ?
Это сервак запускает скрипт при каждом запросе сам ?
Аноним 15/03/24 Птн 11:27:08 #18 №3086879 
>>3086701
теперь параша
Аноним 15/03/24 Птн 11:27:59 #19 №3086881 
>>3086776
> проект написанный битриксоидом который даже пхп не знает нормально.
как будто ларавельщики нормально пхп знают
Аноним 15/03/24 Птн 11:51:55 #20 №3086899 
>>3086875
>обращении к серверу ?
А что такое "сервер"? Это какая-то программа?
Аноним 15/03/24 Птн 11:58:04 #21 №3086908 
>>3086881
Кстати, да.
Лара - полная хуета, а ларавельщики - говноеды и хуесосы. С умением писать хороший код на пхп лара не имеет ничего общего
Аноним 15/03/24 Птн 12:23:42 #22 №3086934 
>>3086908
Битрикс-джумла - западло, Магенто на кал похожа, цмс Друпал тоже, Вордпресс пиздятиной вонял, Мулленвега негр ебал. Zend ебланы создавали, Yii в рахе закопали - Макаров пидор был, Laravel моча на кале, Symfony писал дебил.
Аноним 15/03/24 Птн 12:30:08 #23 №3086942 
>>3086934
>Yii в рахе закопали - Макаров пидор был
Проорал
Симфони норм, кстати
Аноним 15/03/24 Птн 12:38:45 #24 №3086949 
>>3086942
Симфони может и норм, только фиг изучишь. Книг нет, обучающих материалов тоже "кот наплакал". Был сайт с документацией на русском, да и тот недавно закрылся.
Аноним 15/03/24 Птн 14:34:11 #25 №3087044 
>>3086949
Да вы заебали со своей документацией на русском. Любой браузер переводит отлично. На ютубе полно уроком по симфони на разных языках - ставишл божественный яндекс браузер и смотришь забугорные видосы на русском языке - переводит очень неблохо
Аноним 15/03/24 Птн 15:17:43 #26 №3087080 
Жидкий перекат
Аноним 15/03/24 Птн 15:23:27 #27 №3087087 
Скуфани 7.0
Аноним 15/03/24 Птн 15:28:03 #28 №3087096 
>>3087087
1С-Скуфикс
Аноним 15/03/24 Птн 16:09:58 #29 №3087165 
>>3087087
Некоторые ещё на 5.6 сидят
Аноним 15/03/24 Птн 16:28:05 #30 №3087180 
>>3087165
5.6 это скуфоскрипт, а Скуфани 7.0
Аноним 15/03/24 Птн 16:36:02 #31 №3087185 
Что про spiral кстати думаете? Взлетит, не взлетит? Вроде модно, молодежно, но чет вакух вобще нет
Аноним 15/03/24 Птн 16:40:27 #32 №3087190 
>>3087185
Пыхо велосипед от компании которая роад ранер делает
Аноним 15/03/24 Птн 16:59:33 #33 №3087211 
>>3087190
Про роад раннер в курсе, что одни разрабы. Они флексят своим трушным подходом к архитектуре: пээсары, паттерны, отсутствие магии, заявляют, что конкурируют не с симфони или ларой, а со спрингами всякими, лонг ранинг сервак и как следствие возможность писать вебсокеты, микросервисы и пр. Многообещающая хуйня в общем, но сам фреймворк я не тыкал, интересно мнение тех, кто ковырял или писал что-то, стоит вкатываться или мертворожденное говно?
Аноним 15/03/24 Птн 17:03:50 #34 №3087218 
>>3087211
Бесмысленный вопрос. Для джуномидла все что отлично от мейнстрима смерти подобно, а тимлид сам способен оценить нужно это в прокте или нет
Аноним 15/03/24 Птн 20:47:07 #35 №3087492 
>>3086949
На битрикс тяжелее уроки/инфу найти. Так что симфони в этом плане лучше. Ну и во всём она лучше, кроме количества вакансий и конкуренции и зарплаты.
Аноним 15/03/24 Птн 20:48:46 #36 №3087495 
Плохой перекат. Нелегитимный и антиньюби.
Аноним 15/03/24 Птн 21:43:57 #37 №3087556 
>>3087495
>>3087080
>>3086879
Можешь сидеть в старом треде. Ничего не поменяется
Аноним 15/03/24 Птн 21:48:38 #38 №3087566 
>>3086701
все уже изучили и выкатились в го
тред остался чтоб притворятся вкатывающимися и задавать вопрос про mysqli
Аноним 16/03/24 Суб 13:33:41 #39 №3088106 
Ононче, плез поясни за енамы.
Нихуя не отдупляюсь зочем оне. Сакральный смыл их в пыхе - что було, как в других языках? Рили.
Аноним 16/03/24 Суб 15:34:24 #40 №3088226 
>>3088106
>что було, как в других языках?
А в других языках они нахуя?
Аноним 16/03/24 Суб 16:54:59 #41 №3088285 
Нахуя задачу про студентов делать в ООП если она спокойно, проще и быстрее делается в процедурном стиле?
Аноним 16/03/24 Суб 17:09:35 #42 №3088296 
>>3088285
Для того, чтобы человек получил хотя бы первичное представление о работе с ООП-кодом?
Аноним 16/03/24 Суб 17:09:49 #43 №3088298 
>>3088285
Нахуя скатываться в айти, если ты можешь пойти в казино и стать богатым?
Аноним 16/03/24 Суб 17:11:53 #44 №3088299 
>>3088296
Может тогда дать примеры с задачами где ООП реально нужно?
Аноним 16/03/24 Суб 17:12:23 #45 №3088300 
>>3088285
Потому что забудьте нахуй процедурный стиль, ООП - это база
Аноним 16/03/24 Суб 17:17:56 #46 №3088303 
>>3088299
Приходят к тебе данные в контроллер через хттп, эти же данные приходят в друге место через консольную команду и тд их нужно сохранить. Создаешь сервис, в который из разных мест передаешь полученные данные, который их сохраняет. Внимание вопрос: где и как будешь валидировать полученные данные?
Аноним 16/03/24 Суб 17:22:21 #47 №3088307 
>>3088303
Усложним для наглядности. Полученные данные нужно ещё куда-то отправить. Другими словами их так же нужно передать во второй, третий, десятый сервисы
Аноним 16/03/24 Суб 17:24:21 #48 №3088311 
>>3088300
Хэллоу ворд тоже через опп писать?
Аноним 16/03/24 Суб 17:32:52 #49 №3088314 
>>3088285
>делается в процедурном стиле?
А что вообще на пхп сделано в процедурном стиле? Библиотека или фреймворк какой? Может приложение какое-то или сайт?
Пример можно?
Аноним 16/03/24 Суб 17:49:27 #50 №3088327 
>>3088314
Делаю сейчас задачу про студентов в процедурном, могу скинуть потом.
Аноним 16/03/24 Суб 18:02:39 #51 №3088334 
>>3088327
А нахуй мне твой код? Ты можешь хоть задом наперед писать, это дело твое.

Я имел ввиду что-то широко используемое. То за что бабки платят. Учить-то нужно то за что башляют и вакансиях требуют.
Есть что-то такое в процедурном стиле или нет?
Аноним 16/03/24 Суб 18:48:14 #52 №3088413 
>>3088285
Чтобы человек получил представление о том, что такое MVC.
Аноним 16/03/24 Суб 19:15:25 #53 №3088480 
SC2SCV.jpg
SC2Probe.jpg
SC2Drone.jpg
>>3088413
А что такое MCV?
Шо такое SCV я знаю, шо такое пробка знаю, дрона знаю. А шо такое MCV не знаю.
Аноним 16/03/24 Суб 20:18:55 #54 №3088608 
>>3088480
Игродебил тред перепутал, впрочем ничего нового.
Аноним 16/03/24 Суб 20:42:40 #55 №3088630 
>>3088608
А на пхп че игры не делают? А почему? На шарпе вон и игры и сайты делают, а с пхп че не так?
Аноним 16/03/24 Суб 22:25:06 #56 №3088833 
>>3088630
Потому что пхп для веб бекенда. А почему на шарпе бекенд не пишут? А, пишут? Ну иди работай бекендером на шарпе, раз пишут
Аноним 16/03/24 Суб 23:32:09 #57 №3088858 
>>3088106
Enum (перечисления) в PHP могут быть использованы для создания набора констант с ограниченным количеством допустимых значений. Они позволяют удобно работать с определенным набором значений и обеспечивают ясность кода, делая его более читаемым и поддерживаемым.

Преимущества использования enum в PHP:

1. Защита от ошибок. Enum позволяют предотвратить ошибки, связанные с несовместимыми значениями, так как они задают допустимые варианты значений.

2. Читаемость кода. Использование enum делает код более понятным и позволяет легко понять, какие значения могут быть использованы в определенном контексте.

3. Интеграция с IDE. Многие современные интегрированные среды разработки могут предложить автодополнение и подсказки значений enum, что облегчает работу с кодом.

Хотя необязательно использовать enum в PHP, их применение может значительно улучшить качество кода и облегчить его поддержку в будущем.
Аноним 17/03/24 Вск 02:55:08 #58 №3088922 
>>3088311
Ну да. Создаёшь SaySomethingService, а в нем метод sayHello и передаешь ему форму HelloForm, с единственным атрибутом helloTo и валидируешь его как строку. Потом пишешь юнит тесты на форму и метод в сервисе. В основном скрипте, где будешь использовать сервис, будешь передавать ему форму с заранее заданным атрибутом. А ещё нужно автолоадер свой написать не забыть. Это в одной компании на тестовом просили
Аноним 17/03/24 Вск 03:55:06 #59 №3088935 
>>3088833
А что не так?
мимо бекендер на шарпе
Аноним 17/03/24 Вск 06:23:01 #60 №3088956 
>>3088922
>SaySomethingService
А если не добавлять "Service", то у тебя мать умрет или че?
Ну пиши тогда сразу ClassSaySomethingService. Или ClassSaySomethingPhpService. Сколько еще бесполезной хуйни можно запихать в название?
Аноним 17/03/24 Вск 07:51:25 #61 №3088961 
По го чуть ли не каждый день появляются новые курсы, а по РНР одно старьё 2016 года
Аноним 17/03/24 Вск 07:57:35 #62 №3088962 
>>3088961
Вам бы только курсы и подавай. На битриксе между прочим вообще нет нормальных курсов. А те что есть показывают как "натянуть" верстку и как модифицировать уже готовые компоненты. Это буквально процентов 15 от необходимых знаний. Тута надо копаться самому во всём, потом идти в компанию, где тебе будут помогать прокачиваться первое время, иначе ты будешь плохой код писать. Так что не ной и иди вон, в свой сцаный Го или Шарп.
Аноним 17/03/24 Вск 08:10:32 #63 №3088964 
>>3088961
>По го греют лохов интенсивно, а пхп настолько кал что лохи на говнокурсы ведутся вяло
Аноним 17/03/24 Вск 08:58:18 #64 №3088974 
>>3088961
Что будешь делать через 3 года, когда го умрёт как руби, а все новые курсы будут по mojo?
Аноним 17/03/24 Вск 09:47:22 #65 №3088986 
Screenshot 2024-03-17 093856.png
>>3088974
Пчел. Вот график активности языков на гитхабе.
https://tjpalmer.github.io/languish/#y=mean&weights=issues%3D1%26pulls%3D0%26stars%3D1%26soQuestions%3D1&names=go%2Cphp%2Crust%2Ctypescript

Го то может и сдохнет. Туда ему и дорога. Но пхп от этого лучше не станет.
Тренд на дно, причем давно.
Аноним 17/03/24 Вск 10:59:34 #66 №3089034 
>>3088956
>А если не добавлять "Service", то у тебя мать умрет или че?
Постфикс Service обозначает, что у тебя там бизнес-логика лежит. В папке с этим сервисом ещё дохрена всяких классов для него может быть - от каких-то кастомных валидаторов, до обертки импорт-файла в объект.
Мы, блядь, не на уроке русского языка, вайтишник. Постфиксы и префиксы обязательны - это чисто техническая фича.
Аноним 17/03/24 Вск 12:12:31 #67 №3089095 
>>3089034
>В папке с этим сервисом ещё дохрена всяких классов
Ты типа перепутаешь, и когда тебе надо будет что-то "сказать" ты вместо SaySomething используешь NasratVTruhaniService и обосрешься?
И нахуя ты все запихал в одну папку? И вообще причем здесь папки? Ты КЛАСС называешь. Названия папок и так в неймспейсе есть.

>Постфиксы и префиксы обязательны
Ну так хули ты не пишешь ClassSaySomethingPhpService? Че ты без префикса если он обязателен?
Аноним 17/03/24 Вск 12:25:55 #68 №3089111 
>>3088956
Пишу так, как принято в приличном обществе. Ты за своим компом можешь как хочешь называть классы, а у нас стиль
Аноним 17/03/24 Вск 12:39:21 #69 №3089136 
>>3089111
ClassSaySomethingPhpServiceAbstractFactoryResult
Достаточно прилично или надо еще что-то уточнить?
Аноним 17/03/24 Вск 20:33:30 #70 №3089894 
>>3088303
>Приходят к тебе данные в контроллер через хттп
Ты описываешь как нарисовать сову, задача про студентов, животных это про то как нарисовать кружок.
Аноним 17/03/24 Вск 20:39:44 #71 №3089900 
>>3088285
>проще и быстрее делается в процедурном стиле?
Лучше всего понять ооп можно как раз таки через большую процедурную лапшу в которую ты начинаешь добавлять новый функционал, прям в одном файле хуяришь портянку на 1000 срок, потом начинаешь замечать повторение кода, похожие блоки для разных задач и т.п. И начинаешь думать что из этого срача можно вынести в отдельный класс.

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

99% объяснений ооп сводится к выдуманным собачкам и студентам.
Аноним 17/03/24 Вск 22:04:20 #72 №3089970 
>>3089900
>через большую процедурную лапшу
А с классами типа маленькая процедурная лапша?
Какую только хуйню не выдумают. Сам пхп написан с помощью процедурного подхода. Ебать сюрприз, да? Линукс, на котором весь интернет держится, написан с помощью процедурного подхода.

А есть еще функциональный подход. Структурный. Модульный. И нихуя для этого в пхп нет. Вот просто блядь нет. Совсем.
Проблема пхп не в том что процедурный подход чем-то там плох. Проблема пхп в том что на нем максимально неудобно в процедурном стиле писать.

1) Как организовать автозагрузку функций? В пхп надо файлы подключать. Файлы с классами автозагружаются, а функции? Руками хуярить?
2) В классах есть специальный конструктор, чтобы можно было зависимости в объект передавать. Специальный, отдельный, скрытый снаружи метод. А с функциями че? Синтаксиса для нормального каррирования нет, пять-шесть зависимостей превратят твои функции в монстров.
3) Типизации для функций нет. Если нужно получить объект, то можно четко указать какой именно тебе нужен. А если нужна функция преобразующая строку в число? Ты можешь только указать что принимаешь функцию, а какую - да хуй её знает. Хочешь знать какой колбек нужно в array_map передать? Так пиздуй читай документацию, по самой функции ты хуй поймешь.
4) Данные в каком виде хранить? Структур в пхп нет, только объекты и массивы. Если массивы, то это сразу минус типизация, минус стат анализ, минус любые подсказки об ошибках от IDE. Опечатался в названии поля? Ебать ты лох канеш. А вот ооп "нелохам" даже и писать нихуя не надо - за них все IDE автокомплитит. И подсказывает им: извините ооп господин, вы тут изволили обосраться и не тот объект суете, вот я вам сейчас в одно нажатие все пофикшу. А с массивами все ручками. И сколько таких массивов будет? Сотни? И все поля в них текстом, без малейшей проверки. Охуенчик.
5) Ну и как добивающий: все библиотеки, вся инфраструктура написаны в ооп стиле. Любую орм возьми - объекты, классы-хуясы. Http клиент? Объекты. Мэйлер? Объекты. Да даже блядь uuid'ы генерятся через фабрики.

В этом языке нет нихуя чтобы писать процедурный код. На этом языке никто не пишет процедурный код.
И лапша тут совершенно не причем. Ты и с классами на отличненько насрешь кучу лапши. А потом еще большую кучу когда будешь пытаться написать "нормально".
Аноним 17/03/24 Вск 23:13:22 #73 №3090074 
>>3088956
покормлю зеленого
у нас есть ДТО SaySomethin с полями text и target
у нас есть класс который перегоняет из Request в дто
и есть сервис SaySomething
как назовем каждый случай предвкушая твой ответ - есть интерфейс SaySomething и есть две реализации SaySomething - как назовем их, один в STDOUT пишет, другой echo вызывает, а как фабрику которая по условиям создаёт одну из стратегий; а как будем по проекту ориентироваться когда у нас будет 8 реализаций и несколько ассемблеров для этого дела; а когда у нас жирный проект на десяток тысяч классов?
Аноним 17/03/24 Вск 23:15:14 #74 №3090075 
>>3088986
> график активности языков на гитхабе
для пыхи написали все что можно представить и написать в рамках ограниченности самого языка, на gовне у всех самописные велосипеды
Аноним 17/03/24 Вск 23:30:25 #75 №3090085 
>>3089970
>1) Как организовать автозагрузку функций? В пхп надо файлы подключать. Файлы с классами автозагружаются, а функции? Руками хуярить?
а в Си как?

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

>3) Типизации для функций нет. Если нужно получить объект, то можно четко указать какой именно тебе нужен. А если нужна функция преобразующая строку в число? Ты можешь только указать что принимаешь функцию, а какую - да хуй её знает. Хочешь знать какой колбек нужно в array_map передать? Так пиздуй читай документацию, по самой функции ты хуй поймешь.
ты точно про процедурный код пишешь? В указанных тобой примерах в виде линукса и ядра пыхи используется сишка, где вполне себе нормальная ситуацая каста к (void⚝) и высирания этого из процедуры, а дальше ебись как хочешь

>4) Данные в каком виде хранить? Структур в пхп нет, только объекты и массивы. Если массивы, то это сразу минус типизация, минус стат анализ, минус любые подсказки об ошибках от IDE. Опечатался в названии поля? Ебать ты лох канеш. А вот ооп "нелохам" даже и писать нихуя не надо - за них все IDE автокомплитит. И подсказывает им: извините ооп господин, вы тут изволили обосраться и не тот объект суете, вот я вам сейчас в одно нажатие все пофикшу. А с массивами все ручками. И сколько таких массивов будет? Сотни? И все поля в них текстом, без малейшей проверки. Охуенчик.
struct point {int x;}; и class Point {public int x;}; - найди отличия

>5) Ну и как добивающий: все библиотеки, вся инфраструктура написаны в ооп стиле. Любую орм возьми - объекты, классы-хуясы. Http клиент? Объекты. Мэйлер? Объекты. Да даже блядь uuid'ы генерятся через фабрики.
возьми и напиши в процедурном стиле либу живущую дольше 1 месяца, будешь популярным

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

>Ты и с классами на отличненько насрешь кучу лапши
а вот это чистая правда мимо счастливый пользователь кучи лапши ооп лапши в которой никто не пользуется получением сервисов через вызов статического метода Container::getContainer()->get(ZalupaService::class)
Аноним 17/03/24 Вск 23:36:48 #76 №3090088 
Screenshot 2024-03-17 233145.png
>>3090085
>а в Си
А хуй соси.
Си пятьдесят лет и он всех заебал. Ты на раст смотри. Ядро линукса на раст переписывают.
Аноним 17/03/24 Вск 23:36:57 #77 №3090089 
>>3090085
>через вызов
через вызов конструктора, а пользуется вызовом
Аноним 17/03/24 Вск 23:37:29 #78 №3090090 
>>3090088
а банки, банки перепишем?
Аноним 17/03/24 Вск 23:42:41 #79 №3090091 
>>3090090
А ты хули примазываешься? Все перепишут, только не на пхп кал. Это не для вас переписывание. Вам в битрикс.
Аноним 17/03/24 Вск 23:56:11 #80 №3090102 
>>3090074
Ты бля с марса прилетел? У тебя есть ФРАЗА, которую надо СКАЗАТЬ. Или ЗАПИСАТЬ на ПЛЕНКУ с помощью МИКРОФОНА.
Http\Request\Talking\Phrase
Http\Controller\Talking\SayPhrase
Domain\Talking\Phrase\JsonPhrase
Domain\Talking\SayPhrase
Domain\Talking\SayJsonPhrase(JsonPhrase $phrase, Microphone $microphone): VoiceTape

По ЧЕЛОВЕЧЕСКИ надо писать. Потому что эту хуйню потом ЧИТАТЬ надо. А ваш ебучий канцелярит шизанутый ни один адвокат не разберет. Понапишет бессмысленной хуйни, а че хотел в итоге сам не понимает.
Чтоб с вами, полуебками, в жизни так разговаривали.
Аноним 18/03/24 Пнд 11:16:11 #81 №3090457 
>>3090091
>пхп кал
Смысл бегать по тредам и писать что все языки говно кроме Си шарпа ?
Аноним 18/03/24 Пнд 11:20:50 #82 №3090459 
>>3090457
Если так не делать, придется этот самый сишарп учить, а бегая по тредам, можно весело время тратить на полезное дело...
Аноним 18/03/24 Пнд 12:11:43 #83 №3090534 
>>3090457
>А на пхп че игры не делают? А почему? На шарпе вон и игры и сайты делают, а с пхп че не так?
>Потому что пхп для веб бекенда. А почему на шарпе бекенд не пишут? А, пишут?
>А что не так? мимо бекендер на шарпе
>Арряяя бегают по тредам и называют пхп говном. Рряяяя.
Произошел лингвистический ПРОРЫВ.
Аноним 18/03/24 Пнд 12:52:08 #84 №3090608 
Вот не пойму, зачем использовать фреймвёрк, если всё равно приходится тянуть левые библиотеки. Ладно бы там какие-то специфические для проекта, дак нет же, самые базовые. Хотим мы сделать аутентификацию и авторизацию на Симфони, но сам Симфони почему-то сам не может это сделать и надо тащить какие-то лексики в проект. Что мешало разработчикам Симфони добавить аутентификацию и авторизацию в сам Симфони, чтобы не собирать потом с миру по нитке? Неужели они там не догадались, что практически в любом проекте используется аутентификацию и авторизацию?
Аноним 18/03/24 Пнд 12:52:47 #85 №3090611 
Приступаю к решению задачи про файлообменник.
Если я отключю выполнение php-файлов в папке для хранения загруженных файлов, буду хранить загруженные файлы под фейковыми именами и пользователь будет видеть фейковый файловый путь в ссылке, то какие расширения файлов мне следует не позволять загружать на свой сервер кроме .htaccess? Что может быть опасным, если я реализую выше описанные методы?
Аноним 18/03/24 Пнд 12:58:12 #86 №3090624 
>>3090608
>Вот не пойму
Пойми
https://symfony.com/components/Security%20Bundle
Аноним 18/03/24 Пнд 13:04:00 #87 №3090645 
>>3090611
Я правильно понимаю, что если я использую Laravel и у меня настроена корневая папка сервера public, а сам я буду класть загруженные файлы вне папки public, то мне необязательны фейковые имена и фейковые пути?
Потому что 1) Laravel не позволит обратиться к маршруту, которого не существует и 2) Потому что Apache не позволит обратиться к файлам вне public?
Аноним 18/03/24 Пнд 13:15:09 #88 №3090668 
>>3090645
Зачем тебе вообще давать пользователям прямой доступ к файлам?
Все равно надо проверять права доступа, владельца, сколько можно кочать.

Ну и делай это через фреймворк. Сохраняй названия и метаданные вроде расширения файлов в базе. А сами файлы храни в папке с хешем по содержимому вместо имени. Так дубли автоматически уберутся и можно несколько имен для одного файла хранить. И поиск файла можно легко организовать - разделять по папкам по первым буквам хеша:
/files/78/15/7815696ecbf1c96e6894b779456d330e
Аноним 18/03/24 Пнд 13:25:31 #89 №3090685 
>>3090668
>проверять права доступа
У меня не будет регистрации, авторизации.
Как я понял из задачи, нужно сделать 3 страницы: страницу загрузки файла, страницу просмотра файла, страницу последних 100 загруженных файлов.
Т.е. можно только загружать файлы и смотреть их, как следствие, зачем тут регистрация? Я пока что не планировал выходить за пределы задачи. Мой минимум - научиться пользоваться фреймворком и выполнить условия задачи.

>Сохраняй названия и метаданные вроде расширения файлов в базе. А сами файлы храни в папке с хешем по содержимому вместо имени.
Да, так и планировал.

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

Я пока что думою...Вроде понятно что делать, а с чего браться непонятно. Куча разрозненных условий в стиле "сделать это, сделать то".
Аноним 18/03/24 Пнд 13:26:07 #90 №3090686 
>>3090685
*Рассмотрю
Аноним 18/03/24 Пнд 13:28:10 #91 №3090688 
>>3090685
>Мой минимум - научиться пользоваться фреймворком
Так используй тогда либу ларавеля для работы с файлами.
Аноним 18/03/24 Пнд 13:31:25 #92 №3090692 
>>3090685
Забавно, что это моя вторая крупная задача. По поводу прошлой один анон писал, что я должен был заранее, перед задачей, сесть и подумать какие у меня будут классы и т.д. И я вот сейчас перед второй задачей сижу-думаю. И голова просто пустая. 0. 0 мыслей. Отчасти, мб, потому что приходится иметь дело с фреймворком, а не чистым php.
Аноним 18/03/24 Пнд 13:35:13 #93 №3090698 
>>3090611
>.htaccess
Это из старой шапки? Там до сих пор апач что-ли? Ебать. Хорошо, что её пидорнули
Аноним 18/03/24 Пнд 13:36:21 #94 №3090700 
>>3090688
>либу ларавеля
Я даже о такой не слышал.
Я пока что только в общих чертах знаю про контроллеры, виды, шаблоны и прочее, что у них описано в Architecture Concepts и Basics, ну и работу с БД.
Ну, думаю, попробую погуглить про эту либу. Гляну, мб пойму как с ней работать и нужна ли она мне.
Аноним 18/03/24 Пнд 14:04:00 #95 №3090738 
>>3090700
>Я даже о такой не слышал.
А где ты "слушал"?
https://www.google.com/search?q=ларавел+файлы
https://laravel.su/docs/10.x/filesystem
Аноним 18/03/24 Пнд 14:20:11 #96 №3090759 
>>3090102
>JsonPhrase
а если я хочу XMLPhrase? а что в твоей структуре переводит из реквеста в JsonPhrase?
Аноним 18/03/24 Пнд 14:25:34 #97 №3090764 
>>3090738
Да, я понял.
Я и написал, что пока что по основному пробежался в Laravel.
Аноним 18/03/24 Пнд 14:26:24 #98 №3090766 
>>3090102
>SayPhrase
>SayJsonPhrase
и ещё вопросик - что же такое SayPhrase в твоей структуре, почему оно лежит именно в этом неймспейсе а дальше по твоей же логике - а зачем нам называть класс SayPhrase если в неймспейсе есть слово Phrase, хватит просто Say
Аноним 18/03/24 Пнд 15:06:23 #99 №3090809 
>>3090759
>а если
>а что
CreateXMLPhrase(Http\Phrase $request): Domain\XMLPhrase
XMLPhrase::from($requestPhrase->toPhraseDTO()): self

>почему оно лежит именно в этом неймспейсе
Да похуй в каком оно неймспейсе. И абсолютно похуй как эти неймспейсы переставлять. Главное чтобы эти неймспейсы и термины были ОСМЫСЛЕННЫМИ сука. И ЧЕЛОВЕКОЧИТАЕМЫМИ блядь. Чтобы названия отражали суть процесса, который МОДЕЛИРУЕТСЯ.

Потому что код нужно будет легко ПОНЯТЬ. Понять не только что он делает, но и что он ДОЛЖЕН делать. А в коде вместо описания того что на самом деле происходит: service, result, processProperty. Бессмысленная дженерик хуйня, мусор бесполезный.
Аноним 18/03/24 Пнд 17:49:36 #100 №3091094 
>>3090809
по пути между пуком Xml мне нужно ещё зайти в базу и получить ид подписчиков на пук Xml'ем, потом это кинуть в эластик, и отдать клиенту жсон, где будем держать ид подписчиков на пук?
Аноним 18/03/24 Пнд 17:55:49 #101 №3091105 
>>3090102
>>3090809
что кстати будешь делать с тем, что у тебя коллизия имён между Http\Controller\Talking\SayPhrase и Domain\Talking\SayPhrase, будем алиасы вводить? а как что назовем алиасы?
Аноним 18/03/24 Пнд 18:55:10 #102 №3091234 
>>3091105
Че нибудь сделаю https://3v4l.org/AWrUo
Ну коллизия и коллизия. В конце концов контроллер может называться SayReceivedPhrase, а в модели будет универсальный объект Say, который может и поэму рассказать и анекдот спиздануть. Речь шла о том чтобы названия отражали моделируемый процесс, а не процесс твоей шизы.

>>3091094
>где будем держать ид подписчиков
Ну создай класс Subscribers. Модель "говорения" тут причем? Моделируй процесс "подписки" и подписывайся, хуль тебе надо?
Аноним 18/03/24 Пнд 19:00:04 #103 №3091249 
>>3090698
>апач что-ли
А что щас вместо апачи ? какой тренд ?
Аноним 18/03/24 Пнд 19:20:19 #104 №3091314 
>>3091249
Нгинкс давно же уже
Аноним 18/03/24 Пнд 20:54:48 #105 №3091399 
>>3091234
>который может и поэму рассказать и анекдот спиздануть
круто, ты изобрел такое понятие как "интерфейс"
>хуль тебе надо
понять как мы все это расположим в нашем проекте, и где будем проворачивать наши операции, и как мы назвоем наши классы
>Ну создай класс Subscribers
ну создал
Domain\Talking\Phrase\Subscribers
Domain\Talking\Phrase\JsonPhrase
Как и где мы будем из Http\Request\Talking\Phrase перегонять данные в Subscribers и JsonPhrase? А как мы будем это передавать в Domain\Talking\SayPhrase? $sayPhrase->hruknut($subscribers, $jsonPhrase), вот так что ли? А если завтра мне нужно будем передать данные про хрюкнуть, пукнуть, свистнуть и еще с десяток других?
Аноним 18/03/24 Пнд 20:56:13 #106 №3091400 
>>3091234
>>3091399
>>3091234
>в модели будет универсальный объект Say, который может и поэму рассказать и анекдот спиздануть
А, или ты это собрался все в одном униврсальном классе Say разместить? А буква S тебе о чем-нибудь говорит?
Аноним 18/03/24 Пнд 21:06:57 #107 №3091412 
>>3090608
не используй, просто ты в итоге напишешь тот же самый фреймворк у меня на проекте из сторонних либ только фреймворк и доктрина, например, из фич фреймворка пользуемся только роутингом
Аноним 18/03/24 Пнд 21:28:25 #108 №3091445 
>>3091399
>изобрел такое понятие как "интерфейс"
А точно не абстрактный класс?

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

>Как и где
А как и где мы Http\Request\Talking\Phrase создавали?

>А как мы будем это передавать в Domain\Talking\SayPhrase?
Так это SayPhrase или SubscribeToPhrase?

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

>А, или ты это собрался все в одном униврсальном классе Say разместить?
Если Say универсальный, то разместить. Если не универсальный, то не разместить. Вопросы?
Аноним 18/03/24 Пнд 22:12:30 #109 №3091495 
>>3091445
>точно не абстрактный класс
точно, абстрактный класс знает как хрюкать, а интерфейс говорит, что может издать звук, а будет это хрюк, пук или свист уже не от него зависит

>Создавай репозиторий, создавай проект
вне работы использовать пхп? нет спасибо

>А как и где мы Http\Request\Talking\Phrase создавали
в нашем абстрактном проекте

>Так это SayPhrase или SubscribeToPhrase?
так а мне откуда знать, я понятия не имею, что за сущность SayPhrase, как и любой человек, который поддерживает твой проект без ненужных постфиксов в виде Service, Assembler, Interface и т.д.

>Садишься и пишешь код, который будет пукать, потом код который будет хрюкать, а потом десяток других
Да это-то понятно, а как мне понять, куда мой код писать? Что делает SayPhrase, что делает SayJsonPhrase? Это сущность ОРМ, сервис, ДТО?

>Если Say универсальный, то разместить. Если не универсальный, то не разместить.
>Вопросы?
Да:
1)Как мы из Http\Request\Talking\Phrase будем перегонять данные в SayPhrase/SayJsonPhrase (что они делают я так до сих пор и не могу понять, не заглянув в сам код).
2)Где мы будем перегонять данные из Http\Request\Talking\Phrase в SayJsonPhrase
3)Что мы будем делать, если завтра нам понадобится добавить еще десять таких же сущностей, как JsonPhrase и Subscribers?
4)Почему твой класс JsonPhrase говорит, в какой он умеет формат, но не говорит, что он такое, я должен в голове держать, что это ДТО, а не сервис? А если у тебя еще увеличится вложенность неймспейса, и внизу появятся сервисы, как я должен визуально отфильтровать что у тебя дто, что у тебя бизнес-логика, а что у тебя просто перегоняет из реквеста в дто?
5)Что именно делает твой универсальный класс Say? А как мы будем расширять его логику? А что будем делать, когда Say научится хрюкать, пукать, писать в базу, эластик и отправлять эмейлы? А как мне на это написать юнит-тест? А как мне добавить в него логику, чтобы ничего не сломать? А как мне по нему ориентироваться, если в нём уже более 5к строк кода и идешка сама начинает реализовывать его функционал в виде пукать при индексации?
Аноним 18/03/24 Пнд 23:51:46 #110 №3091625 
>>3091495
>Как мы из Http\Request\Talking\Phrase будем перегонять данные в SayPhrase/SayJsonPhrase
Так же как из $_POST в Http\Request\Talking\Phrase

>Где мы будем перегонять данные из Http\Request\Talking\Phrase в SayJsonPhrase
Там же где будет создаваться SayJsonPhrase.

>Что мы будем делать, если завтра нам понадобится добавить еще десять таких же сущностей, как JsonPhrase и Subscribers?
Добавлять сущности. Если нужно добавить в модель новое поведение, а этого поведения в модели нет, то его нужно добавить. А если нужное поведение уже есть, то добавлять его не нужно.

>Что именно делает твой универсальный класс Say?
Если он универсальный, то все что нужно. На то он и универсальный.
>А как мы будем расширять его логику?
Если нужно расширять логику, то получается что он не универсальный.
>А что будем делать, когда Say научится хрюкать, пукать, писать в базу, эластик и отправлять эмейлы?
Сами классы ничему не учатся. Это ты их учишь что делать. Нахуя ты его всему этому научил?
>А как мне на это написать юнит-тест?
Тебе нужно по очереди протестировать каждый возможный сценарий использования класса.
>А как мне добавить в него логику, чтобы ничего не сломать?
Проверить, после добавления логики, что ничего не сломалось.
>А как мне по нему ориентироваться, если в нём уже более 5к строк кода
Я бы рекомендовал использовать IDE. В современных IDE навигация и поиск очень помогают ориентации.

Еще вопросы?
Прям чувствую что подбираемся к экзистенциальному. Как написать тест, как добавлять логику, как ничего не сломать. Не стесняйся. Спрашивай сразу: как быть охуенным, как жить заебись, смысл и суть вселенной. Все расскажу.
Аноним 19/03/24 Втр 07:45:40 #111 №3091763 
>>3091625
>Я бы рекомендовал использовать IDE
спасибо за предложение, только не очень понятно как ориентироваться по твоему шизофреническому проекту, к тому же не очень понятно чем поможет иде в твоей куче говна на 5к+ строк кода

итого какие выводы делаем из написанного
>Так же как из $_POST в Http\Request\Talking\Phrase
абстрагироваться от сущности реквеста - нинужна

>Там же где будет создаваться SayJsonPhrase
понял, DI тоже не нужно, делаем руками

>Добавлять сущности
я так понял если завтра в твоём неймспейсе ниже Phrase что-то появится, то я должен буду догадаться, что это ДТО, а в них вложен ещё один уровень сервисов ниже?

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

>Нахуя ты его всему этому научил?
так это ты кучу говна научил и хрюкать и пукать вместо SayingInterface и дальше к частному в виде FurtingService и т.д.

>Тебе нужно по очереди протестировать каждый возможный сценарий использования класса
>Проверить, после добавления логики, что ничего не сломалось.
товарищ архитектор, а вы хотя бы раз писали код за деньги? а поддерживали кучу легаси говна?
Аноним 19/03/24 Втр 08:55:04 #112 №3091790 
>>3091763
>не очень понятно чем поможет иде в твоей куче говна на 5к+ строк кода
5к строк это маленький проект.
IDE помогает навигации. Например, в шторме при нажатии на ctrl+click на вызов метода перейдешь к его объявлению и наоборот. Ctrl+q вызовет окно с описанием сигнатуры. Также есть поиск всех мест использования класса/метода в проекте. И многое другое.

>будем?
>будем
>выводы: нинужна
Ну если нинужна, то не будем.

>DI тоже не нужно, делаем руками
А когда ты в di конфиге имплементацию интерфейсу прописываешь это уже руками или еще нет?

>если пользоваться твоим методом наименования то проект крутой
Называй вещи своими именами, а не своими именами не называй.

>SayingInterface
Супертип должен принимать в виде параметров также супертипы и сохранять свои сигнатуры для всей иерархии. Это подразумевает пресуппозицию что нужные элементы в эту иерархию в принципе вписываются. Если все твои нафантазированные "пуки" и "с десяток других" сводятся к одному супертипу и к одной и той же сигнатуре обрабатывающего их метода, то универсальный супертип SayingInterface возможен, а если не сводятся то нет.

>товарищ архитектор, а вы хотя бы раз писали код за деньги? а поддерживали кучу легаси говна?
Да.
И в принципе готов доказать это словом и делом. Без "нет спасибо" "голова болит" и "сейчас некогда". Давай хоть сейчас телегу/дискорд - дядя сеньор будет по губам тебе водить.
Аноним 19/03/24 Втр 09:27:08 #113 №3091799 
пхп говно

переубедите
Аноним 19/03/24 Втр 10:06:19 #114 №3091841 
>>3091799
переубедите говно

пхп
Аноним 19/03/24 Втр 10:13:13 #115 №3091850 
>>3091841
согласен

/thread
Аноним 19/03/24 Втр 17:36:28 #116 №3092489 
Аноны поясните за знания безопасности для вкатуна. Я помню еще давно были всякие sql инъекции, щас я смотрю в ларавел есть встроенные политики. Что то еще надо знать прям отдельно ? Типо могу я случайно что то проебать и чел снесет мне нахуй сайт ?
Если говорить о том же битрексе, там 1с, всякие платежи и т.п.
Аноним 19/03/24 Втр 19:44:12 #117 №3092818 
>>3091799
Зачем переубеждать? Пока зумеры, вкатунье и прочий скам так думает, нам же лучше
Аноним 19/03/24 Втр 20:44:05 #118 №3092904 
>>3091790
>IDE помогает навигации
Это я понимаю, и активно использую шорт-каты, например, два раза нажать клавишу Shift, а зачем ввести, что я хочу найти, из-за чего, собственно, и был затеян спор. В предложенной тобой архитектуре это сделать намного проблемнее, поскольку надо в голове держать большое количество деталей, и предложенные тобой неймспейсы только усложнят навигацию

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

>Называй вещи своими именами, а не своими именами не называй.
так я и хочу чтобы п.1, пытаюсь понять, как именно мы будем различать сущности в проекте!

>дядя сеньор
готов признать, что я, потенциально, слабее тебя технически, сомнения сложились из-за твоего чрезвычайного максимализма
Аноним 19/03/24 Втр 21:51:48 #119 №3092996 
>>3092904
>Это я понимаю, и активно использую шорт-каты, например, два раза нажать клавишу Shift
Поиск по всему слишком "шумная" команда. Нахуя тебе файлы искать если они так же как классы называются? Ctrl+N поиск класса, но тоже вопрос: откуда тебе знать какое имя искать вообще?
Alt+F7 - вот самый часто используемый поиск. Читаешь код, видишь че-то непонятное - ctrl+Q, если все еще непонятно alt+F7. Сразу видно код класса, где и как его создают, где и как его методы вызывают.

>В предложенной тобой архитектуре
Вот и довкатывались. Пчел, именование классов это не "архитектура". И даже раскладывание по папочкам это не "архитектура".
Вот двойной EventLoop собранный из "большого" асинхронного HTTP EventLoop'а и внутреннего "малого" синхронного Domain EventLoop'а - это уже похоже на архитектурный стиль. Только ни о чем подобном речи не было. Потому что это тема на несколько книг только чтобы термины прояснить, а не пуками на дваче перекидываться.

>как именно мы будем различать сущности в проекте!
Ты даже термин "сущность" неправильно используешь. Сущность - это то что по определению уникально и отличимо.

>из-за твоего чрезвычайного максимализма
"Ну вы кароч давайте называйте моделируемые вещи так как они в реальности называются, а то непонятно нихуя".
Ебать максималист. Бунтааарь. Парадигму ломает, эджи бой.
Аноним 20/03/24 Срд 14:10:56 #120 №3093630 
изображение.png
Laravel > Symfony
Аноним 20/03/24 Срд 14:33:56 #121 №3093683 
>>3093630
Все правильно. Присутствие ларавеля в твоем коде больше чем присутствие симфони. Симфони у себя в проекте вообще хуй найдешь. А вот ларавель это ОГРОМНЫЙ кусок говна в каждом твоем классе.
Поэтому да, LARAVEL > symfony
Аноним 20/03/24 Срд 16:33:30 #122 №3093823 
>>3093683
Так в ларавеле же больше магии, соответственно меньше кода, не?
Аноним 20/03/24 Срд 16:57:46 #123 №3093840 
>>3093823
Кода меньше в апи платформ, а в ларке кода много
Аноним 20/03/24 Срд 19:21:22 #124 №3094043 
>>3093840
>твоем коде
>твоем классе
>апи платформ
Аноним 21/03/24 Чтв 09:01:45 #125 №3094538 
У симфони можно доку в пдф где-нибудь скачать?
Аноним 21/03/24 Чтв 09:16:42 #126 №3094551 
>>3094043
Ну все правильно. Спор же ларка вс симфони. В апи платформ больше магии чем в базовой симфони, но кода писать значительно меньше чем в ларке.
Аноним 21/03/24 Чтв 09:17:59 #127 №3094552 
>>3094538
Хуйня, там слишком много ссылок на сторонние ресурсы, будешь постоянно меду пдф и браузером свитчится.
Аноним 21/03/24 Чтв 11:15:02 #128 №3094620 
IMG20240321111324.jpg
Что лучше? Бук или докс? На Ларе пишу уже овер 5 лет, хочу в симфони вкатиться лучше поздно чем никогда
Аноним 21/03/24 Чтв 12:26:56 #129 №3094688 
Файл .htaccess не будет работать, если задать ему другое название (не .htaccess)?
Если я разрешаю пользователю загружать .htaccess и сохраняю его на сервере только после переименования, то северу ничего не будет?
Аноним 21/03/24 Чтв 12:30:40 #130 №3094694 
>>3094688
А если я сохраняю vzomsraki.sh или spizditparol.vba или neminer.exe и сохраняю их на сервере, то серверу ничего не будет?
Аноним 21/03/24 Чтв 12:34:28 #131 №3094698 
>>3094694
Здесь забава - отвечать не по существу?
Аноним 21/03/24 Чтв 12:37:14 #132 №3094705 
Не вдупляю что делать с ООП-шными контроллерами (у меня раньше в качестве контроллера был просто скрипт). Показывать форму и принимать с нее данные нужно разными экшенами?
Вот мне нужно принимать файл от пользователя. Все страницы крутятся вокруг файла. Мне нужен ресурсный контроллер?
Аноним 21/03/24 Чтв 12:46:12 #133 №3094711 
>>3094705
А файл, загруженный пользователем он gj ndjtve в пхп вообще куда попадает?
Аноним 21/03/24 Чтв 12:54:36 #134 №3094716 
>>3094711
Я должен проверить файл, подготовить его и сохранить на жесткий диск. Вопроса твоего я не понял.
Аноним 21/03/24 Чтв 13:05:40 #135 №3094724 
>>3094705
Показывать форму и принимать с неё данные нужно разными экшенами, да.

Ты про ларавель?
Ресурсный контроллер - это контроллер для круда. Можешь создать его и запретить методы, которые не нужны в роутах, а можешь сам создать нужные методы да и всё. Этот не принципиальный вопрос
Аноним 21/03/24 Чтв 13:07:16 #136 №3094725 
>>3094716
Пользователь заполнил форму, выбрал файл и отправил тебе запрос.
Твой код начал этот запрос обрабатывать. Проанализировал ссылку, выбрал контроллер, метод контроллера. Дальше начинает работать твой код. Так вот файл, отправленный пользователем, он где? Что с ним вообще можно сделать? Его можно передать в какой-то другой контроллер?
Аноним 21/03/24 Чтв 13:10:32 #137 №3094726 
>>3094688
У апача говна есть ещё всякие .htpasswd, если ты назовешь его так то повлияет (в целом названия каких файлов ищет апач вроде в его конфигах настраивается), если задашь имя, которое конфиг не ищет - не повлияет, но нахуя так делать с кем я блядь сижу? Уж лучше принимай содержимое файла вместо самого файла, валидируй и сохраняй, но и это тоже говно и сам апач говно. Скорее всего ты хуйню какую-то делаешь
Аноним 21/03/24 Чтв 13:17:31 #138 №3094731 
>>3094725
>Что с ним вообще можно сделать?
Нужно сохранить о нем данные в БД и сохранить сам файл на жёсткий диск. Затем будут 2 страницы: на одной выводится информация об одном, конкретном файле, на второй странице краткая информация о последних 100 загруженных файлах. Ну и рядом с информацией о файле должна быть ссылка, чтобы пользователь мог этот файл скачать.
Аноним 21/03/24 Чтв 13:23:53 #139 №3094736 
>>3094726
>Скорее всего ты хуйню какую-то делаешь
Да я только учусь.
>принимай содержимое файла вместо самого файла, валидируй и сохраняй
Какие конкретно действия за этими словами стоят? Я вкатун и ничего серьезного не писал, а тем более не работал с файлами в php, поэтому сильно не обессудь.
В любом случае, спасибо за ответ. И тому челу спасибо, который отвечал мне про контроллеры!
Аноним 21/03/24 Чтв 13:30:15 #140 №3094740 
>>3094724
>Ты про ларавель?
Да
>Проанализировал ссылку, выбрал контроллер, метод контроллера
У меня главная проблема, что я не знаю какие контроллеры и/или экшены должны быть в контроллере.
У меня есть главная страница, которая должна показывать форму.
Получается это экшен index() в контроллере?
Принимать результаты формы должен другой экшен. Не знаю как по стандарту называют такой экшен. Ну вот уже 2 экшена. Один показывает форму, другой принимает. Потом нужно показывать отдельный файл. Это уже третий экшен? Потом нужно показывать список файлов. Это уже 4-ый экшен?

Как я понял, ресурсный контроллер соответствует CRUD аббревиатуре. У меня из глаголов "создать, изменить, посмотреть, удалить" можно только будет создать (сохранить файл) и посмотреть. Собственно это то, что немного отталкивает от мысли, что нужен ресурсный контроллер.

Не нужно серьезно воспринимать мою простыню. Я всего лишь вкатун, который ничего не понимает и еще не освоился с понятиями. Пощадите, двачеры.
Аноним 21/03/24 Чтв 13:48:58 #141 №3094743 
>>3094736
>какие конкретно действия...
Ну ты принимаешь файл. Пусть клиент отправляет тебе просто текст этого файла и название, если надо, а ты создавай файл сам и заполняй его этим текстом. Как проверить файл на валидность, это уже отдельная песня
Аноним 21/03/24 Чтв 13:52:16 #142 №3094745 
>>3094740
Каких-нибудь требований к тому как называть экшоны нет. Как понятней - так и называй. И да, на каждый запрос - ответ - один экшон
Аноним 21/03/24 Чтв 13:59:41 #143 №3094749 
>>3094740
Еще один.
Ты не "показываешь форму". Не "вызываешь сервис".
Ты даешь пользователю выполнить конкретное действие в твоей системе. "Сохранить файл", "задать дату рождения", "пернуть".

"Форма" это просто рюшечка, красивая обертка. Нет никаких "результатов формы". Ты предоставляешь АДРЕС РЕСУРСА в виде ссылки. Чтобы этим ресурсом пользоваться никакая форма вообще не нужна. И вообще не важно каким образом пользователь этот адрес получил. Хоть по почте, хоть случайно набрал. Важно что если он отправил по этому адресу правильные данные - твой код эти данные обработал.
Аноним 21/03/24 Чтв 14:02:11 #144 №3094754 
>>3094743
Хорошо, возьму на заметку. Спасибо.
>>3094745
Окей, понял. Спасибо, анон.
Аноним 21/03/24 Чтв 14:04:41 #145 №3094755 
>>3094749
>результатов формы
Ну да, выразился мб нескладно. Под "результатами формы" имел ввиду данные, которые приходят с формы.
Аноним 21/03/24 Чтв 14:10:36 #146 №3094764 
>>3094538
А толку? Доктрина, твиг и ещё куча сторонних библиотек - это отдельные ресурсы со своими доками.
Аноним 21/03/24 Чтв 14:17:36 #147 №3094768 
У меня еще один вопрос, аноны.
Мне нужно принимать комментарии к файлам.
Правильно хранить комментарии в той же таблице, в которой будет храниться информация о файле или нужна отдельная таблица и потом создавать ключи, чтобы связать таблицы?
Аноним 21/03/24 Чтв 14:19:30 #148 №3094770 
>>3094768
*Комментарий автора при загрузке файла если что. Там не обсуждение.
Аноним 21/03/24 Чтв 14:34:15 #149 №3094781 
>>3094770
В той же таблице
Аноним 21/03/24 Чтв 14:37:08 #150 №3094784 
>>3094781
Ок.
Аноним 21/03/24 Чтв 14:45:41 #151 №3094795 
>>3090608
>Неужели они там не догадались
Догадались. И написали Ларавел. Заодно гайд и доки по нему сделали, и вообще по-челоечески всё оформили. Ларавел - это Симфони здорового человека.
Аноним 21/03/24 Чтв 15:14:27 #152 №3094824 
>>3094795
Проблемы лары в антипаттернах, что усложняет жизнь при ентерпрайз разработке. С другой стороны всё это можно обойти: отказаться от елоквента, отвязаться от фасадов сервис локаторов при тестировании, валидировать данные не через реквест объект в самом хттп контроллере и пр. Но во первых придётся поебаться, а во вторых это не ларавель вей, что делает его не ентерпрайз фреймворком
Аноним 21/03/24 Чтв 15:15:47 #153 №3094829 
>>3094824
Но богатая экосистема вокруг лары хороша: джетстрим, ливеваре, реверб и пр
Аноним 21/03/24 Чтв 15:20:41 #154 №3094836 
>>3092818
кому нам скуфидзе ты же тупой
Аноним 21/03/24 Чтв 17:59:16 #155 №3095023 
Сап, пхпшники. Знакомый планирует делать интернет-магазин, и хочет для этого использовать БИТРИКС. Как отговорить человека?
Какие есть вменяемые альтернативные решения, чтобы было сравнимо по стоимости и скорости разработки (точнее совокупной стоимости готового продукта - полностью рабочего интернет-магазина, учитывающего законодательство РФ, с интеграцией с онлайн-кассами, онлайн-оплатой, системой учёта и всеми прочими приблудами)? Делать всё это на ларавеле выйдет сильно дороже и дольше?
Аноним 21/03/24 Чтв 18:23:29 #156 №3095078 
>>3095023
Скажем так запуститься быстро и дёшево это правда на битриксе, если ему нужно прям то что поставляется из коробки. А вот дальнейшее сопровождение это будет пиздецкая боль, где за небольшую хуйню будут насчитывать 40+ часов. Плюс работа с со скидками тоже пиздц боль, там всё через жопу и если у него интеграция с 1С, то она будет постоянно косячить и 1сники с битриксоидами будут валить друг на друга.
Короче зависит от задачи, если небольшой ассортимент и работа с товарами вручную, то проще взять это говно, поскольку битриксоиды за еду натянут верстку с жиквери.
Аноним 21/03/24 Чтв 18:36:21 #157 №3095097 
>>3095078
Ассортимент большой, нужна нормальная интеграция с 1С.
Аноним 21/03/24 Чтв 18:39:03 #158 №3095099 
>>3095023
>Знакомый планирует делать интернет-магазин, и хочет для этого использовать БИТРИКС. Как отговорить человека?
А зачем тратить время на душевнобольных?
Дело тут даже не в битриксе. Нахуя в 2к24 интернет магазин? Какой долбоеб в него вообще полезет? Все кто хочет легко и быстро торговать, торгуют на маркетплейсах, в вк, в телеге в инсте.

Как траффик в эту никому нахуй не нужную парашу нагнать? Вот ты бы сам полез закупаться на хуй пойми каком сайте? Это сегодня что-то из разряда "вот создам щас свою соц сеть и стану миллиардером".
Аноним 21/03/24 Чтв 18:41:46 #159 №3095102 
>>3095099
Два чая адеквату. Но расширю предъяву до: кому нахуй нужны сайты в принципе, в 2024?
Аноним 21/03/24 Чтв 18:55:57 #160 №3095119 
>>3095097
Тогда лучше на каком-нибудь ларавеле все сделать, с битриксом наебутся в перспективе

>>3095099
Бывает нужен тем кто работает оффлайн и соответственно трафик пойдет с этих магазинов, ты не знаешь контекста, а уже людей долбоебами называешь
Аноним 21/03/24 Чтв 19:15:49 #161 №3095127 
>>3095119
Ну да, это так и работает: каждый заходящий в оффлайн магаз берет на выходе буклет и заходит на твой сайт. Потому что там такое... нихуя? Единственный способ кого-то из оффлайна заманить - это материальный интерес. Скидки/бонусы "только на сайте". Проблема в том что это РАСХОДЫ. Причем большие. А бляди без нового купончика на твой сайт один хуй не придут, а даже если и придут, то не придут в оффлайн магаз. Клиенты-то нужны НОВЫЕ.

Пиздец, курс маркетинга для даунят. В этом треде вообще никого не из под мамкиной сиськи нет? Ни в чем блядь не разбираются.
Аноним 22/03/24 Птн 01:33:31 #162 №3095473 
изображение.png
>>3095127
>Ни в чем блядь не разбираются.
Вижу ты осведомлен и у тебя есть бизнес, приносящий дохуя денег, а таксуешь битриксуешь для души.
Если кабанычи готовы за это платить деньги, то наверное это имеет смысл для них, но мамкин маркетолог, поедая макарошки "красная цена", лучше всех знает как им обустроить их бизнес.
Аноним 22/03/24 Птн 10:59:58 #163 №3095678 
>>3095473
Магическое мышление в деле. "Наверное", ну охуеть теперь.
То что в этом треде вообще пишется слово "битрикс" это результат маркетинга. За это заплачены большие бабки. А кто заплатит за маркетинг Drupal?
Аноним 22/03/24 Птн 11:12:41 #164 №3095692 
>>3095473
Удвоил.
Аноним 22/03/24 Птн 11:26:37 #165 №3095712 
>>3095678
Ну не битрикс, а чего-нибудь другое, я просто что-то близкое к твоему интеллекту написал. Суть в том что кабаныч несёт студии деньги за определённые услуги и ты либо оказываешь ему услугу, либо идёшь нахуй и он закажет у других. А как и для чего ему это надо он лучше знает., твоё дело написать код с нужным ему функционалом.

>Магическое мышление в деле. "Наверное", ну охуеть теперь.
"Наверное" в данном контексте, это для разгона нейронов в твоей голове чтобы ты сам себе задал этот вопрос.
Аноним 22/03/24 Птн 12:06:38 #166 №3095743 
>>3095712
Ты так и будешь на разный лад повторять "ну значит так надо", "не нашего ума дело"?
Если ты не видишь причинно-следственную связь - это не значит что её нет.
Вот это и называется тупостью.

Сайт -> маркетинг -> клиенты
CMS -> маркетинг -> клиенты
Студия -> маркетинг -> клиенты

И студия и владельцы битрикса за привлечение клиентов ПЛАТЯТ. И не просто льют траффик, а формируют спрос. Студия лечит про бренд и узнаваемость, битрикс лечит про интеграцию с 1С.

И эта схема умерла. Вся блядь, нет её в 2к24 году. Битрикс сейчас продает не CMS, а CRM. "Студии" в бодишопы и галеры перестраиваются. Никому нахуй не нужен очередной "интернет магазин". Никто не ходит в 2к24 по случайным сайтам. Бля, да обыватель сегодня вообще интернетом через браузер почти не пользуется. Все делается через приложения.
Аноним 22/03/24 Птн 13:09:28 #167 №3095791 
>>3095743
>Сайт -> маркетинг -> клиенты
>CMS -> маркетинг -> клиенты
>Студия -> маркетинг -> клиенты
Мы сейчас о каких услугах или товарах говорим? О каких объёмах продаж? О какой сфере? А клиенты b2b или b2c? Ожидает заказчик увеличение клиентов или упрощает существующие процессы для тех же b2b клиентов? Нужна ли клиенту интеграция с crm и 1С? И ещё сотни вопросов.
Ты пытаешься блеснуть какой-то частью интеллекта, но забываешь что каждый клиент разный и у каждого разные задачи. Ты чего-то как-то усреднил до примитивной модели рассказываешь про каких-то маркетологов из 1С, они подливают масла в огонь, но скорее это то что клиенты хотят именно битрикс и настаивают на нём не рассматривая другие варианты и это плохо.

>И эта схема умерла. Вся блядь, нет её в 2к24 году. Битрикс сейчас продает не CMS, а CRM. "Студии" в бодишопы и галеры перестраиваются. Никому нахуй не нужен очередной "интернет магазин". Никто не ходит в 2к24 по случайным сайтам. Бля, да обыватель сегодня вообще интернетом через браузер почти не пользуется. Все делается через приложения.
Уровень экспертизы прямо прёт, разумеется у тебя есть статистка, которая подтверждает свои слова. Возможно в сегменте b2c маркетплейсы отжали большую часть рынка, но помимо этого сегмента есть множество других задач
Аноним 22/03/24 Птн 13:32:46 #168 №3095825 
>>3095743
Ещё раз двачну адеквата. Даж в моей галере клиенты сайты почти не заказывают, в основном это парсеры, апи для приложух, боты какие-нибудь
Аноним 22/03/24 Птн 13:58:36 #169 №3095857 
Ебать вы тут накидали охуительной аналитики, даже не зная, что за интернет-магазин, в какой сфере, зачем он нужен и есть ли за ним что-то помимо самого интернет-магазина.

>>3095119
>Тогда лучше на каком-нибудь ларавеле все сделать, с битриксом наебутся в перспективе
Спасибо, попробую продавить этот вариант.
Аноним 22/03/24 Птн 14:23:22 #170 №3095884 
>>3095791
>Мы сейчас о каких услугах или товарах говорим?
Вейк ап джо байден. Ты с кем и о чем до этого разговаривал?
Речь шла про "интернет магазин" в 2024 году от рождества христова. И что эта концепция умерла, по тому что "виртуальной улицы", по которой покупатель должен в этот "интернет магазин" попадать, больше нет. Никто больше не набирает в гугле "Мои пердя купить скорожарку ДЕШЕВО". Твоя скорожарка либо висит на озоне, либо твоя телега рекламится в группе "любители скорожарок".

>>3095857
>Ебать вы тут накидали охуительной аналитики, даже не зная, что за интернет-магазин
Это очередной маркетплейс хуйни, который вы хотите сбацать по прайслистам поставщиков и оптовиков.
Какая там у вас мулька? "Мы будем продавать в конкретной нише"? "Мы будем продавать эксклюзив. Нигде нет, у нас есть." Или может "Вот есть предприятия, мы знаем точно что им надо, вот будем им пихать ГАРАНТИРОВАННО"?
Аноним 22/03/24 Птн 14:51:19 #171 №3095920 
>>3095884
> Это очередной маркетплейс хуйни, который вы хотите сбацать по прайслистам поставщиков и оптовиков.
Нет.
Аноним 22/03/24 Птн 15:07:29 #172 №3095936 
>>3095884
>Вейк ап джо байден. Ты с кем и о чем до этого разговаривал?
Сам обосрался и теперь меня долбоебом пытаешься выставить лол

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

>"Мои пердя купить скорожарку ДЕШЕВО"
А если эта хуйня не присутствует на маркетплейсе, либо требует дополнительных услуг связанных с транспортировкой и установкой или нужно выставлять счет на юрлицо.
Например те же спилт системы, ты можешь купить на озоне, потом искать васяна который прикрутит и тебя пошлют нахуй с гарантией, потому что монтажник сделал что-то не так, либо найти те кто оказывает услугу в комплексе и будет нести гарантию за всё.
Те же электротовары, тебе нужно подбирать по характеристикам, на маркетплейсах фильтры не всегда сделаны как надо и не всегда есть то что нужно для сборки того шкафа. А подобрать под одну рамку розетки с выключателями целая история. В специализированных магазинах эти вопросы уже решены, плюс там почти всегда приложены всякие сертификаты и пдфки с харатеристиками, они бывают часто нужны тем кто выходит на тендеры.
По сантехнике отдельная история, попробуй набери все причиндалы для пвх труб и сами трубы на маркетплейсе, это даже в леруа проблематично сделать иной раз не говоря о том что они не в каждом регионе есть
Вот тебе 3 случая, плюс там может быть различные интеграции с crm и 1С, свои кабинеты для b2b партнеров чтобы с ними работать в автоматическом режиме и тд и тп.
Аноним 22/03/24 Птн 15:17:07 #173 №3095945 
>>3095920
Пчел. "Большой ассортимент", но на нормальных программистов денег нет. Тут не надо гением быть, все и так понятно.
Аноним 22/03/24 Птн 15:28:59 #174 №3095957 
>>3095936
>магазины разные и задачи у них разные
А я тебе говорю что покупателям в этих магазинах неоткуда взяться. Органического траффика туда нет. Точка. Если обывателя не устраивают фильтры на озоне он не идет в гугл и не перебирает две страницы выдачи в поисках удобных фильтров. Для него существует ТОЛЬКО ТО ЧТО ОН ВИДИТ.

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

Для этого не нужен никакой "сайт". Он прибыль в этой схеме не приносит. Системы учета нужны, парсеры конкурентов нужны, управление продажами/маркетингом нужно. "Интернет магазин" не нужен.
Аноним 22/03/24 Птн 15:35:29 #175 №3095964 
>>3095957
Короче ты выиграл в споре, иди в хуй, блядь с тобой как с нейросетью говоришь
Аноним 22/03/24 Птн 16:06:59 #176 №3096015 
>>3095964
"Душный" забыл написать.
Конгресс, немцы какие-то… Голова пухнет. Надо значит надо. Че тут думать.
Аноним 22/03/24 Птн 16:19:26 #177 №3096038 
>>3096015
>Конгресс, немцы какие-то… Голова пухнет. Надо значит надо. Че тут думать.
Вот вот, прям как Шариков, только тут вместо взять всё и поделить, взять всё и сравнить с маркетплейсами. Советы кабанчикам космических масштабов как им обустроить бизнес лол.
Покормил
Аноним 22/03/24 Птн 17:53:08 #178 №3096156 
>>3095945
Ну ты и Шерлок, как ты раскусил-то меня? Всё в точку.
Аноним 28/03/24 Чтв 10:28:25 #179 №3103004 
Посоветуйте годную инфу про валидацию данных
Аноним 28/03/24 Чтв 13:07:04 #180 №3103364 
>>3103004
https://laravel.com/docs/11.x/validation
https://symfony.com/doc/current/validation.html
Аноним 28/03/24 Чтв 18:03:50 #181 №3104009 
d6jwhqb-2c734c65-fe7e-4e50-83f7-a1c95364811f.jpg
Как это сообщение убрать?
Аноним 28/03/24 Чтв 20:57:36 #182 №3104285 
>>3103004
regex
Аноним 28/03/24 Чтв 23:53:28 #183 №3104472 
>>3104009
Или на завод
Аноним 29/03/24 Птн 22:28:34 #184 №3105974 
>>3087044
>>3086949
какой нахуй рюсик. Вы английский если на техническом уровне не знаете - даже не суйтесь в айти. Это просто полный тупик, если прогер не может доки на английском прочитать. Финиш, блядь, просто финиш.
Аноним 30/03/24 Суб 05:06:11 #185 №3106155 
>>3105974
Ебать диван пукнул. Сейчас бы изучать инглиш, в эпоху переводчиков любой хуйни, даже текста на картинках
Аноним 30/03/24 Суб 21:58:09 #186 №3107145 
Посоветуйте нейросеть для начинающего программиста, чтобы подсказывала короткие куски кода
Аноним 30/03/24 Суб 23:29:41 #187 №3107308 
>>3105974
Что такое «технический уровень»? Я знаю про шкалу A1—C2.
>>3106155
Индус накатил в прод хуйню, переводчик лёг. Что ты будешь делать?
Аноним 31/03/24 Вск 02:11:32 #188 №3107392 
>>3107308
Работать не пробовал?
Аноним 31/03/24 Вск 02:15:11 #189 №3107394 
>>3107308
"Технический уровень" - это самый распространённый уровень владения английским среди айти-пидорунделей. Когда грамматика и говорение на нуле, но доку прочитать могут + про ШЕДУЛЕР, ПАФ и СЕСУРИТИ попиздеть могут три слова.
Аноним 31/03/24 Вск 02:27:38 #190 №3107400 
image.png
image.png
>>3107394
Точно, у скуфов это ещё называется инженерным английским (чего, блядь?). Вспомнил древний образец такого фрукта, он всерьёз думает, что умеет читать правильно.
Аноним 31/03/24 Вск 04:01:27 #191 №3107411 
image.png
image.png
image.png
>>3107400
ну тут ты не прав, у слова два произношения и оба валидные
Аноним 31/03/24 Вск 04:13:41 #192 №3107412 
>>3107411
>>3107400
>>3107392
Да всем похуй, сосите, хохлы
Аноним 31/03/24 Вск 08:21:33 #193 №3107439 
волк-ничем-не-хуже-сеньера-он-так-же-проходит-собес.mp4
Объясни, как ты сможешь конкурировать с такими?
Аноним 31/03/24 Вск 12:01:25 #194 №3107557 
>>3107411
То, которое приводит скуф с картинки выше, ни разу не правильное, но интеллектуальное большинство повторяет за ним. Так что надо переучивать их.
Аноним 31/03/24 Вск 12:48:19 #195 №3107617 
>>3107439
Ты заебал уже срать этой хуйней во всех тредах, шиз ебаный.
Аноним 31/03/24 Вск 13:14:01 #196 №3107648 
>>3107439
ccылку на фулл плиз
Аноним 31/03/24 Вск 13:15:28 #197 №3107650 
>>3107648
нашёл
Аноним 31/03/24 Вск 13:44:24 #198 №3107670 
>>3107557
Ты читать умеешь транскрипции? У слова router ДВА произношения - рутер и роутер, оба правильные. Если ты дальше с этим споришь, то ты еблан
Аноним 31/03/24 Вск 14:07:29 #199 №3107687 
>>3107670
Второе произношение на русский правильно передаётся раутер. Это ты транскрипцию не умеешь читать. Тоже учил инженерный английский?
Примеры слов, которые на русский правильно передавать с -оу-: load (highloadхайлоуд), roadmap (роудмэп). Только их как раз тут почему-то почти все читают неправильно. Придётся учить вас.
Аноним 31/03/24 Вск 15:32:37 #200 №3107754 
Сочаны, где прочитать как микросервисы на пи эйч пи делают?
Аноним 31/03/24 Вск 15:39:52 #201 №3107757 
>>3107754
Если задаешь такой вопрос, то тебе это не надо.
Аноним 31/03/24 Вск 20:14:19 #202 №3107974 
>>3107687
А, твой доёб к раутер/роутер, ок, согл, тут ты прав.
Аноним 01/04/24 Пнд 08:17:56 #203 №3108309 
image.png
Пхпаны, подскажите по Ларавелю, на кой вот эта штука нужна, если используется все равно только .env файлик?

Ибо в database.php у меня в поля 'mysql' вписано нечто, не относящееся к реальности, а все работает

Есть ли способ заставить переключаться между базами (например, отдельные базы для разных регионов), меняя поле name в этом самом DB::connection?
Аноним 01/04/24 Пнд 10:46:37 #204 №3108419 
>>3108309
> на кой вот эта штука нужна
Чтобы выбрать к какой БД подключиться

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

> Ибо в database.php у меня в поля 'mysql' вписано нечто, не относящееся к реальности, а все работает
А еще у тебя туда переменные из енв файлика вписаны, но твой мозг их проигнорил, потому что для него это сложно

> Есть ли способ заставить переключаться между базами (например, отдельные базы для разных регионов), меняя поле name в этом самом DB::connection?
Для этого и создано
Аноним 01/04/24 Пнд 11:24:38 #205 №3108454 
image.png
>>3108419
То есть вот от этой секции в env можно безболезненно избавиться, чтобы она не перезаписывала конфиг?

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

>Для этого и создано
Спасибо за пояснение, попробую!
Аноним 01/04/24 Пнд 12:29:13 #206 №3108507 
>>3108454
> То есть вот от этой секции в env можно безболезненно избавиться, чтобы она не перезаписывала конфиг?
Ага и хранить пароли там. Потом ещё на гитхаб выкати

> Переменные там как раз не вписаны, что меня и дизориентировало
Вписаны. Скрином пруфай, они там по дефолту стоят
Аноним 01/04/24 Пнд 12:55:05 #207 №3108549 
>>3107145
Phind
Аноним 01/04/24 Пнд 13:12:00 #208 №3108572 
>>3108507
Ну что ты сразу набрасываешься, это же клуб изучающих.
А где тогда нормально хранить пароли от баз если их несколько десятков? Как это устроить?
Аноним 01/04/24 Пнд 13:27:18 #209 №3108584 
>>3108572
В переменных окружения же. На то тебе и .env, который .gitignore игнорит
Аноним 01/04/24 Пнд 13:31:01 #210 №3108590 
>>3108549
Ничосе он там объясняет. Спасибо большое
Аноним 01/04/24 Пнд 13:33:19 #211 №3108594 
>>3108584
а, то есть надо насоздавать в енв строчек вида

DB_base01=pw123
DB_base02=pw234

и в конфиге database.php ларавеля писать для каждого подключения

'password' => env(DB_base01, ' ')

Такое?
Аноним 01/04/24 Пнд 14:26:54 #212 №3108637 
>>3108594
Еп. Только переменные окружение принято писать большими буковами. И после того, как напишешь это скорее всего нужно будет кеш конфига скинуть
Аноним 01/04/24 Пнд 23:21:54 #213 №3109295 
У меня цикл whileeach проходится по массиву объектов.
Каждому элементу нужно задать id.
id внутри whileeach меняется.
Так вот, эта хуйня (whileeach) просто берет значение id (то ли на последней, то ли на последней итерации) и вставляет, блять, всем.
Как убрать это ебучее поведение? Никакие, блять, передача по ссылке не помогли. Как заставить это говно изменять переменную и класть в объект именно то, чему равна переменная на итерации?
Аноним 01/04/24 Пнд 23:24:10 #214 №3109298 
>>3109295
ЗАВОД
А
В
О
Д
Аноним 01/04/24 Пнд 23:29:12 #215 №3109305 
>>3109298
Пошел нахуй, пидор.
Аноним 02/04/24 Втр 01:27:29 #216 №3109370 
>>3109295
КОД
О
Д

https://3v4l.org/
Аноним 02/04/24 Втр 09:58:01 #217 №3109555 
Чё по производительности array относительно stdClass? Примерно одинаково, или что-то из этого шустрее и я в каких-то ситуациях должен использовать одно из, если хочу оптимизировать код?

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

Охуенно вы перекатили, конечно, ничего не скажешь
Аноним 02/04/24 Втр 10:32:45 #218 №3109583 
>>3086701
ЛГБТ нынче запрещено, поэтому гей-клуб закрыли
Аноним 02/04/24 Втр 11:01:21 #219 №3109603 
>>3109555
Как у вас, блядь, такие вопросы вобще возникают?
Или большинство людей сумасшедшие или адекваты перестали совсем в интернет отписываться
Аноним 02/04/24 Втр 11:56:10 #220 №3109661 
>>3109603
> уииииииииииии хрю-хрю-хрю
Аноним 02/04/24 Втр 14:41:59 #221 №3109894 
а как можно по условию удалять массива части?

https://3v4l.org/CXiRT
Аноним 02/04/24 Втр 14:48:23 #222 №3109900 
>>3109894
https://www.php.net/manual/ru/function.array-filter.php
Аноним 03/04/24 Срд 00:21:51 #223 №3110347 
>>3109555
>что-то из этого шустрее
Шустрее в чем? Чтобы создать stdClass тебе изначально нужен массив, гений.

>скорость работы
Какую "работу" выполняет "массив"?

>количество потребляемой памяти
"Массив" - это данные, а объект - те же данные + метаданные. Как сам думаешь, шерлок?

>>3109603
>Или большинство людей сумасшедшие или адекваты перестали совсем в интернет отписываться
Весна. Тут и так не самая умная часть программача сидит, а весной резьбу и у людей покрепче рвет.
Аноним 03/04/24 Срд 07:06:23 #224 №3110457 
>>3109900
Ооо, не думал о таком его применении, спасибо!
Аноним !6Applef0d2 03/04/24 Срд 15:34:57 #225 №3110783 
>>3109894
unset($array[$key])
Аноним 04/04/24 Чтв 02:50:35 #226 №3111284 
>>3110457
Пожалуйста. Кроме array_filter() обрати также внимание на функции array_map(), array_reduce(), array_walk(), array_walk_recursive(). Многие манипуляции над массивами можно свести к применению этих функций в том или ином порядке.
Аноним 04/04/24 Чтв 05:44:39 #227 №3111317 
>>3109894
>>3109900
>>3110783
>>3111284
Способов куча. Какой из них лучше подходит, зависит от того что в действительности нужно сделать https://3v4l.org/p3I5k Из твоего примера непонятно что конкретно тебе нужно.

В целом числовые ключи вещь ненадежная, в пхп куча функций которые их постоянно переписывают, за этим хуй уследишь. Поэтому нужно сразу мыслить категориями: "первые четыре ЭЛЕМЕНТА", "последние четыре ЭЛЕМЕНТА", а не "где значение КЛЮЧА наверное вот такое". Либо у тебя ассоциативный массив, в котором ключи это не рандомно сгенерированные циферки.
Аноним 04/04/24 Чтв 10:20:31 #228 №3111406 
Сап пхпач, на связи нюфак самоучка. Пишу небольшой таск менеджер, с обвесами в виде админки и системы юзеров, на чистом php, без ООП. По началу всё было заебись, но сейчас проект разросся до кучи папок и файлов, которые надо как то структурировать и привести к единому оформлению, в связи с чем решил воспользоваться MVC паттерном. Но проблема в том, что в нем как раз используется ООП, да и сама структура мне не понятна. Пробовал почитать мануалы со страниц гугла, но ясности они особо не дали. Вообще как вы считаете, нужно ли заморачиваться с рефакторингом или не стоит и можно просто организовать всё по папкам и подпапкам и забить хуй? Если всё таки нужно, то посоветуйте годные книги или гайды, чтобы углубиться в это и начать понимать.
Аноним 04/04/24 Чтв 10:40:10 #229 №3111424 
>>3111406
Почему сразу не начал пилить в ООП и MVC?
Аноним 04/04/24 Чтв 11:10:57 #230 №3111465 
>>3111424
Не шарю в них. Да и думал, что проект будет маленький, чисто добавить и удалить задачу, как ту ду лист, а потом то одно захотелось прикрутить, то другое, в итоге стало трудно разобрать где что лежит.
Аноним 04/04/24 Чтв 11:38:20 #231 №3111499 
>>3111465
>трудно разобрать где что лежит
проблемы с памятью?
Аноним 04/04/24 Чтв 11:40:09 #232 №3111504 
>>3111406
>на чистом php, без ООП
А это как? Дай гитхаб.
Я такой хуйни литературно за десять лет ни разу не видел. У тебя типа файлы с десятками функций или че? А как ты эти файлы подгружаешь? Типа инклудишь каждый раз как функцию из файла используешь или все сразу как-то? А с данными че? Ты типа гоняешь просто массивы по этим функциям?
Аноним 04/04/24 Чтв 11:45:04 #233 №3111508 
>>3111504
Может как в пхп 3 писали: без без единой точки входа. Пхп файл == страница, содержит хтмл, логику на пхп и сиквель запросы к субд.
Аноним 04/04/24 Чтв 11:48:06 #234 №3111513 
>>3111508
чем не микросервисная архитектура... только каждый микосервис рендерит хтмл
Аноним 04/04/24 Чтв 11:49:58 #235 №3111516 
>>3111508
Я такую хуйню не застал. Я когда учился уже пятая версия вышла. Я сразу на классах писал.

А как делать то что "не рендерит"? Типа роутинг тот же? Роутер получается должен нужный файл инклудить или как?
Аноним 04/04/24 Чтв 11:50:19 #236 №3111518 
>>3111513
Главное говолангерам не показывать, а то тоже начнут так писать.
Аноним 04/04/24 Чтв 11:51:10 #237 №3111520 
>>3111516
Роутера нет, роутит браузер с одного пхп файла на другой
Аноним 04/04/24 Чтв 11:52:26 #238 №3111522 
>>3111513
Ты будешь сильно удивлен, но в рест апи именно хтмл как формат по умолчанию упоминается.
Аноним 04/04/24 Чтв 11:55:25 #239 №3111527 
>>3111520
То есть в каждом файле ВЕСЬ код ВСЕГО? Это даже на процедурный подход не похоже. Это какой-то новый уровень говнокода.
Аноним 04/04/24 Чтв 12:02:28 #240 №3111538 
>>3111527
Почему всего? В файле post.php редактирование и просмотр поста, в файле list.php список постов и т. д. Общую логику тебе ничто не мешает вынести в отдельные либы.
Аноним 04/04/24 Чтв 12:04:24 #241 №3111542 
>>3111538
Так я об этом и спрашивал. Как это устроено? Списки функций? Как с неймингом быть? Что эти функции принимают? Как хранятся переменные и конфиги?
Аноним 04/04/24 Чтв 12:07:15 #242 №3111545 
>>3111542
Я не знаю как тот анон сделал. В микросервисах тоже зачастую один и тот же код дублируют от сервиса к сервису и еще для этого монорепы создают. Только в современных микросервисах фронт контроллер все же есть.
Аноним 04/04/24 Чтв 12:11:59 #243 №3111553 
>>3111545
Бля, мне не нужна лекция по микросервисам, меня от этого говна уже блевать тянет.

Я хотел узнать как работает то чего я никогда не видел.
Этот как рабочее авто из пивных банок, или вертолет из жигулей. Настолько всрато, что вызывает восхищение и удивление: как оно вообще работает? Оно ведь по законам физики не должно.
Аноним 04/04/24 Чтв 12:13:39 #244 №3111557 
>>3111406
MVC без ООП реализуется легко
Аноним 04/04/24 Чтв 12:14:30 #245 №3111558 
>>3111557
>легко
Кода и примеров на гитхабе конечно же не будет.
Аноним 04/04/24 Чтв 12:17:15 #246 №3111562 
>>3111558
Любой пет проект на голанге?
Аноним 04/04/24 Чтв 12:19:22 #247 №3111564 
>>3111499
С оформлением.

>>3111504
>А это как? Дай гитхаб.
Всм как? Просто код без классов и методов. Гитхаб не дам, там деанон.
> У тебя типа файлы с десятками функций или че?
Да. А должен быть отдельный файл под каждую функцию?
>А как ты эти файлы подгружаешь?
>Типа инклудишь каждый раз как функцию из файла используешь или все сразу как-то?
Через include каждый файл в свою страницу или часть страницы.
>А с данными че? Ты типа гоняешь просто массивы по этим функциям?
Да.
>>3111553
Я как будто читаю школьника, который в первый раз увидел дисковый телефон и не может понять, где на нем тачскрин.

>>3111557
Так легко, что ты даже не написал как.
Аноним 04/04/24 Чтв 12:19:56 #248 №3111565 
>>3111562
Давай выкидывай нахуй из своего голанга структуры, модули и систему типов. Тогда и пизди. Легко ему, вообще охуеть.
Аноним 04/04/24 Чтв 12:24:13 #249 №3111573 
>>3111565
Модули и структуры это не ооп это модульная парадигма https://ru.wikipedia.org/wiki/Модульное_программирование
Аноним 04/04/24 Чтв 12:25:40 #250 №3111575 
>>3111564
И хули? В голанге ты это используешь вместо ооп, а в пхп этого всего нет, долбоебина. Ты в каком треде пишешь, чучело?
Аноним 04/04/24 Чтв 12:33:44 #251 №3111583 
>>3111564
Ну так если тебе действительно нужна помощь, то создавай новый акк, копируй код и кидай сюда с дискордом или телегой. Или ты думал тебе помощь по почерку оказывать будут? Без всего этого тебе так и отпишут "нормально делай - нормально будет".
А за ооп можешь Бертрана Мейера почитать
https://en.wikipedia.org/wiki/Object-Oriented_Software_Construction
https://vk.com/doc64104152_423568378?hash=xitHQivyObzyqbzPbHtgU7yYCrBAAfP4bK2x4EVObZs
семьсот страниц чистого кайфа - врачи вместо снотворного прописывают.
Аноним 04/04/24 Чтв 18:27:41 #252 №3111899 
>>3111575
Что это, ебанушка? Ты стекломоя объебался что ли, не можешь понять кому отвечаешь.
Аноним 04/04/24 Чтв 21:18:17 #253 №3112073 
>>3111899
Бес попутал. Я за здоровьем слежу - как настоящий пхп программист пью только бояру. Не в глазах беда, диавол за руку дернул.
Аноним 05/04/24 Птн 15:11:20 #254 №3112809 
Так, а мне репозиторий должен возвращать дтошки или сервис должен возвращать дтошки использую репозиторий?
Аноним 05/04/24 Птн 15:22:54 #255 №3112822 
>>3112809
Должна быть абстрактная фабрика синглтонов с фабричными методами возвращающими репозитории для дтошек
Аноним 05/04/24 Птн 15:29:40 #256 №3112827 
>>3112822
Поперхнулся малиновым пориджем
Аноним 05/04/24 Птн 15:34:12 #257 №3112829 
Я понял. Пыхе нужен ребрендинг. Объективно, php - лучший ЯП на текущий момент, но этот всратый слон с "php" на пузе, прямиком из девяностых, всё портит. Нужно что-то красивое, стилевое, чтоб пориджам нравилось. Тогда и инфоцыгане подтянутся
Аноним 05/04/24 Птн 15:44:56 #258 №3112838 
>>3112829
https://www.youtube.com/watch?v=YWMG2Sn72y0
Аноним 05/04/24 Птн 15:53:18 #259 №3112849 
image.png
>>3112829
Аноним 05/04/24 Птн 16:15:55 #260 №3112878 
Screenshot 2024-04-05 161416.png
>>3112829
Я просто хочу разобраться, а нахуя в самом лучшем языке постоянно писать пикрелейтед залупу?
Аноним 05/04/24 Птн 16:17:57 #261 №3112880 
>>3112878
потому что язык - шаблонизатор
Аноним 05/04/24 Птн 16:29:36 #262 №3112899 
>>3112880
Ну так и писались бы эти закорючки ебаные когда пишешь ШАБЛОН. Нахуй они везде?
Аноним 05/04/24 Птн 16:32:51 #263 №3112905 
IMG20240405163122.jpg
IMG20240405163205.jpg
>>3112878
Такой ответ устроит?
Аноним 05/04/24 Птн 16:46:13 #264 №3112917 
>>3112905
Бля, точно. Про $this ебучий я и забыл. Про знак доллара уебанский тоже.
Аноним 05/04/24 Птн 16:57:40 #265 №3112930 
>>3112917
А про стрелочку? Про стрелочку помнишь?
Аноним 05/04/24 Птн 22:26:15 #266 №3113281 
>>3112829
>Объективно, php - лучший ЯП на текущий момент
Это ты смешно пошутил, назвав расширение для HTML лучшим языком программирования.
Аноним 05/04/24 Птн 22:29:26 #267 №3113285 
>>3113281
Ты с джаваскриптом перепутал
Аноним 05/04/24 Птн 22:30:24 #268 №3113287 
>>3112917
Сейчас бы пиздеть на фичу, которая делает пых, самым легкочитаемым яп
Аноним 05/04/24 Птн 23:24:25 #269 №3113324 
>>3113285
Почему любой код PHP начинается с HTML-тега?
Аноним 05/04/24 Птн 23:26:13 #270 №3113325 
Вообще-то на PHP написано 80% домашних страничек, гостевых книг и форумов из нулевых инторнета, как вы можете на него гнать!
Аноним 05/04/24 Птн 23:58:53 #271 №3113340 
>>3113324
Сейчас бы в 2024 веке не знать хтмл тегов
Аноним 06/04/24 Суб 00:01:36 #272 №3113342 
>>3113325
Не. На пыхе написано 80% интернета и какая-то часть это домашние странички из нулевых. Что поделать, лучше языка пока не придумали, приходится на топ 1 писать, не лапшу же на го говнокодить
Аноним 06/04/24 Суб 01:34:13 #273 №3113375 
>>3113342
Я просто хочу разобраться, а сколько DNS серверов написано на пыхе? Да и вообще, работу каких сегментов сети интернет обеспечивает пхп? А то тут пишут что это пхп - просто шаблончики с хтмл страничками, ето так?
Аноним 06/04/24 Суб 11:52:33 #274 №3113601 
>>3113324
Пхп код начинается с пхп треда
Аноним 06/04/24 Суб 11:59:57 #275 №3113607 
>>3113601
Границы пхп нигде не заканчиваются...
Аноним 06/04/24 Суб 12:02:46 #276 №3113612 
Что по битриксу почитать/посмотреть для вкатуна ? Битрикс 1С или есть еще какие то другие ? Вдруг другой работы не будет.
Аноним 06/04/24 Суб 12:12:48 #277 №3113621 
>>3113612
>Вдруг другой работы не будет.
Лучше бомжевать чем работать битриксойдом
Аноним 06/04/24 Суб 12:28:30 #278 №3113651 
>>3112899
Ты тупой? Язык и есть шаблонизатор, все пхп файлы и есть файлы шаблона. В старину и в битриксе обращались напрямую к файлу .php где был шаблон страницы. Это сейчас на нём пытаются писать на фреймворках полноценные приложения с жизненным циклом в один реквест di и прочими закосами под спринг
Аноним 06/04/24 Суб 12:30:58 #279 №3113660 
>>3112930
Это говно, почему вообще до такого додумались? Как так получилось что конкатенация через точку из-за чего стало невозможным применить её в другом месте и пошли костыли со стрелками
Аноним 06/04/24 Суб 12:54:06 #280 №3113713 
>>3113660
Таксист, спок. Стрелочка из сишки.
Аноним 06/04/24 Суб 12:59:27 #281 №3113720 
>>3113713
А конкатинация строк точкой из перла https://www.perl.com/article/8/2013/3/31/Perl-string-functions-concatenate-substring-and-split/
Аноним 06/04/24 Суб 13:05:45 #282 №3113730 
>>3113651
Как-то быстро перешли от "Объективно лучший ЯП" к "старое говно, которое мешает писать нормальный код".

>>3113713
>>3113720
Ну если из ПЕРЛА и из древней хуйни, которой пятьдесят лет, то ладно. Не жили богато, нехуй начинать.
Аноним 06/04/24 Суб 13:18:06 #283 №3113755 
>>3113730
Ну как бы так. Когда Расмус Ледорф делал пыху то
1) Крутыми языками считались сишка и перл, а питухон и руби были магргинальными язычками, которые только только появились. Ты бы не стал сейчас писать коммерческий софт на nim или zig. Вот и Расмус Ледорф за основу взял языки на которых он писал в то время.
2) Пыха изначально не планировалась как язык, подобно питону. Делали быстрый шаблонизатор, с килерфичей - визуальной отладкой ошибок прямо на странице, а не логированием в файлы.
Аноним 06/04/24 Суб 13:24:24 #284 №3113766 
>>3113755
Расмус Лердорф* точнее

хуй поймешь как этих скандинавов правильно звать
Аноним 06/04/24 Суб 13:34:03 #285 №3113774 
>>3113660
Так через стрелку лучше же. Более наглядно и код лучше читается. Одно из удачнейших решений, наряду с долларом
Аноним 06/04/24 Суб 13:36:33 #286 №3113777 
>>3113375
Пхп - для веб приложений практически любой сложности. В тех, редких случаях, когда он с чемто справляется похуже, используют подпорки на го
Аноним 06/04/24 Суб 13:37:29 #287 №3113778 
quote-i-m-not-a-real-programmer-i-throw-together-things-until-it-works-then-i-move-on-the-rasmus-lerdorf-82-6-0602.jpg
>>3113755
Ну дык. Было - сплыло.
Шаблоны спиздили себе жс макаки. Апач пиздой накрылся, мускуль об стену уебали. Теперь пхп ходит за джавой и подбирает кал пятилетней давности. При том сама джава считается устаревшим говном мамонта. Получается пхп говно говна?

>>3113774
Знак евро объективно лучше доллара > $
Аноним 06/04/24 Суб 13:38:02 #288 №3113779 
>>3113651
Не пытаются, а успешно пишут. В топе популярных веб фреймворков, пхпшные уверенно лидируют
Аноним 06/04/24 Суб 13:40:53 #289 №3113782 
Screenshot 2024-03-17 093856.png
>>3113779
Ты хотел сказать "писали"? Пикрелейтед активность языка на гитхабе. Пхп ныряет прямо в могилу. Нихуя нового на нем написано не будет уже.
Аноним 06/04/24 Суб 13:43:26 #290 №3113783 
>>3113782
>тайпскрипт
Это не срез по бекенду. Нахуя ты это принёс?
Аноним 06/04/24 Суб 13:43:36 #291 №3113784 
>>3113777
>Пхп - для веб приложений практически любой сложности. В тех, редких случаях, когда он с чемто справляется похуже
А с чем пхп справляется лучше джавы или шарпа? У пхп макак так-то всегда только одно преимущество было - ДЕШЕВИЗНА.
Аноним 06/04/24 Суб 13:45:49 #292 №3113787 
>>3113784
Скорость разработки продукта того же качества, например. Более низкий порог входа
Аноним 06/04/24 Суб 13:46:25 #293 №3113788 
Screenshot 2024-02-04 115556.png
>>3113783
У меня для тебя плохие новости https://bun.sh/
Аноним 06/04/24 Суб 13:50:08 #294 №3113792 
>>3113787
>Более низкий порог входа
>того же качества
Пчел. Нам-то не гони.
Мы тута в пхп треде сидим, говно нюхаем. То валидаторы на трейтах с магией, то бирикс скуфы на массивах, то целые сайты на иклудах.
Аноним 06/04/24 Суб 13:57:58 #295 №3113796 
>>3113788
Также как и на пыхе. А если я сервак ребутну после того как запущу то, что на пыхе? Ирл почти любой сервак запускается командой: docker compose up -d
Аноним 06/04/24 Суб 13:59:16 #296 №3113798 
>>3113792
Так пхп это 80% рынка. Ясен хуй, что в таком огромном озере дохуя говна
Аноним 06/04/24 Суб 13:59:48 #297 №3113799 
>>3113796
Запущу то, что на пике
Фикс
Аноним 06/04/24 Суб 14:06:38 #298 №3113802 
>>3113788
Как это относится к тому, что ты с гитхаба притащил? Давай тогда стату по юзанию бана с тайпскриптом vs пыха. Покекаем всем тредом
Аноним 06/04/24 Суб 14:11:09 #299 №3113805 
>>3113802
>успешно пишут
>Вот статистика что не пишут
>врети неправильна
>Все правильно
>А зато...
Обтекай. Нового аналога симфони или ларавеля на пхп не будет никогда.
Можешь переходить к стадии "ИНУЖНО".
Аноним 06/04/24 Суб 14:13:32 #300 №3113806 
>>3113798
Так "того же качества" или "дохуя говна"?
Аноним 06/04/24 Суб 14:31:49 #301 №3113823 
>>3113805
От чего обтекать? От того, что ты пукнул, а на пруфах обосрался?
Аноним 06/04/24 Суб 14:32:59 #302 №3113825 
>>3113806
Того же качества определённый процент и определённый процент говна. Дурачка включить решил?
Аноним 06/04/24 Суб 14:42:53 #303 №3113834 
Screenshot 2024-04-06 143800.png
Screenshot 2024-04-06 143914.png
>>3113823
Пчел. Это интерактивный график. Ты его как не крути, а пхп в жопе. Никто на нем писать либы не хочет. https://tjpalmer.github.io/languish/

>>3113825
Это ты решил включить дурачка. Порог входа ниже, а качество кода такое же. Динамическая типизация качество повышает и знаки доллара, не иначе.
Аноним 06/04/24 Суб 17:17:54 #304 №3114012 
>>3112829
Двачую. Я когда шапку делал в прошлых тредах немного приуныл пока искал подходящий логотип с слоном.
Аноним 06/04/24 Суб 22:39:07 #305 №3114545 
>>3113713
>сишки
Говно дедов и байтослесарей, никто на нём в здравом уме писать не будет в 2024, кроме узкоспециализированной хуйни типа ОС и прошивок где нужно экономить каждый байтик памяти.

>>3113720
>А конкатинация строк точкой из перла
Тогда весь замысел понятен, пыха по сути выросла из перла
Аноним 06/04/24 Суб 22:41:14 #306 №3114548 
>>3113779
Ну круто, формы мы вам перезвоним на ларавеле должен же кто-то писать
Аноним 06/04/24 Суб 23:59:09 #307 №3114649 
Как сделать так, чтобы на одной странице было 2 формы и при нажатии одной единственной кнопки "отправить", данные с двух форм отправлялись на свои разные адреса? В контексте ларавель.
Аноним 07/04/24 Вск 00:13:28 #308 №3114664 
>>3114649
Почему не отправлять данные из одной формы на один адрес? Визуально разделить форму fieldset'ами, а в контроллере данные из реквества отправлять в соответствующие сервисы?
Аноним 07/04/24 Вск 00:50:10 #309 №3114697 
>>3114664
>данные из реквества отправлять в соответствующие сервисы
У меня такая ситуация:
Пользователь выбирает файл для загрузки на сервер и по желанию может написать комментарий к файлу.
Сейчас и файл, и комментарий летят на один адрес и обрабатываются одним экшеном, комментарий сохраняется в ту же таблицу, в которой хранятся метаданные файла.
Но в будущем я планирую добавить древовидные комментарии.
И вот тут, наверное, нужен другой контроллер, который будет этим заниматься. Какой-нибудь, например, CommentController. Который будет добавлять новые комментарии и показывать. И раз уж у меня будет отдельный контроллер для комментов, то зачем оставлять добавление комментария в том контроллере, который принимает файлы? Вот я и думаю как сделать так, чтобы файлы сохранял на диск и в БД один контроллер, а комментарий к файлу другой контроллер. Но при этом у формы был бы один адрес, по которому она показывалась, одна кнопка submit. Чтобы пользователь если не ввел ничего в поле комментария, то все равно бы отправлялись обе формы и обрабатывались разными контроллерами.
Аноним 07/04/24 Вск 00:53:33 #310 №3114699 
>>3114664
Надеюсь ты меня понял.
Мне просто не нравится, что область, которую условно можно назвать "комментарии" будет в разных местах в коде - в контроллере FileController (сохраняет содержимое файла и добавляет метаданные файла в БД) и в контроллере CommentController.
Раз уж работаю с комментариями, то логично работать с ними в одном месте. И даже если это комментарий, который добавляется при загрузке файла, то, наверное стоит поместить его не в FileController, а в CommentController.
Аноним 07/04/24 Вск 00:56:17 #311 №3114701 
>>3114664
Я пока еще не начал реализовывать у себя древовидные комментарии. Но сейчас представляю так:
пользователь загружает файл, добавляет комментарий (если хочет).
Комментарий к файлу, который добавил пользователь при его загрузке - это начало обсуждения. Любой желающий может ответить на этот комментарий и начнется цепочку комментариев.
Аноним 07/04/24 Вск 06:29:13 #312 №3114887 
14249686221236279717.png
13830458751378301307.jpg
>>3114649
>>3114697
>>3114699
>>3114701
Пчел, ты понимаешь разницу между:
Создать файл и прокомментировать содержимое.
И
Ответить на комментарий?

У тебя будет форма ответа на еще не существующий комментарий при создании файла? У тебя отвечающие на комментарии будут создавать свои файлы?

Пиздец, ребенок, который никогда не видел RGHost пытается на ощупь его воссоздать.
Аноним 07/04/24 Вск 15:01:14 #313 №3115302 
>>3114697
У тебя отдельно есть сущность файла с атрибутами: название; описание(комментарий); путь, по которому он хранится; владелец, возможно что-то еще.
И отдельно сущность комментария с атрибутами: текст, владелец, родительский комментарий.
Поэтому у тебя отдельно контроллер для файлов и отдельно для комментариев.


Аноним 07/04/24 Вск 18:43:00 #314 №3115591 
>>3114887
>У тебя будет форма ответа на еще не существующий комментарий при создании файла? У тебя отвечающие на комментарии будут создавать свои файлы?
Нет и нет.
>>3115302
Ну окей, я тебя понял. Спасибо за ответ.
Аноним 07/04/24 Вск 18:51:11 #315 №3115601 
>>3115302
У меня есть еще один смутный момент.
FileController отдает страницу, на которой отображается информация о конкретном файле.
Но на этой же страницы, наверное, внизу должна быть форма для комментариев и сами комментарии. А раз у меня будет отдельный контроллер под комментарии, то как я буду это реализовать...Т.е. экшен FileController достает из БД метаданные файла, подключает Вид с переданными данными, а как теперь туда присобачить контроллер для комментариев, чтобы он вытаскивал комментарии из БД?

Вообще нихуя не понимаю какими критериями я должен руководствоваться при создании контроллеров. Я создал один контроллер - FileController, потому что изначально мое приложение только с файлами и работало в основном.

И я не знаю как контроллеры могут взаимодействовать друг с другом...
Аноним 07/04/24 Вск 19:14:35 #316 №3115620 
>>3115601
У тебя файл связан с комментариями отношением один ко многим. Соответственно orm позволяет тебе получить коллекцию связанных с файлом комментариев, обратившись к соответсвующему атрибуту файла. Изучай документацию по отношениям. И вообще изучай документацию.

https://laravel.com/docs/11.x/eloquent-relationships
https://symfony.com/doc/7.1/doctrine/associations.html
Аноним 07/04/24 Вск 19:22:13 #317 №3115634 
>>3115620
Я знаю, что я глупенький, поэтому не сильно обессудь.
Ты хочешь сказать, что мне комментарии к файлу получать в FileController?
Если да, то чем будет заниматься CommentController? Только добавлять новые в БД (принимая данные с формы отправки комментария)?
Пока что изменение и удаления комментария не планируется.
Аноним 07/04/24 Вск 19:43:57 #318 №3115665 
>>3115634
Хочу сказать, что ты можешь получить коллекцию связанных с файлом комментариев как очередной атрибут файла: $file->name, $file->description, $file->comments, $file->...

Контроллеры нужны для того, чтобы собственно держать управление взаимодействием разных частей приложения в одном месте. В идеале сами по себе они вообще ничего не делают.
Аноним 07/04/24 Вск 19:56:46 #319 №3115678 
>>3115665
Ну ладно, в любом случае спасибо тебе, анон, за человеческий ответ.
Аноним 08/04/24 Пнд 07:48:19 #320 №3116059 
IMG20240408074645.jpg
Битриксоиды, признавайтесь, кто это сделал?
Аноним 08/04/24 Пнд 08:31:59 #321 №3116071 
>>3116059
>/home/bitrix/www/local/templates/webu/components/bitrix/news/practicum/bitrix/news.detail/.default/res
Бля, мне хуево.
Аноним 08/04/24 Пнд 10:03:56 #322 №3116167 
>>3113755
>Крутые языки
Ребенок, ты траллить нпс пытаешься что ли? Лучше старайся.
Аноним 08/04/24 Пнд 15:33:31 #323 №3116399 
>>3116167
Дед, с чем ты не согласен?
Аноним 08/04/24 Пнд 15:36:27 #324 №3116403 
Си лучший из компилируемых языков, а перл - лучший из интерпретируемых. Лисп для престарелых инцелов.
Аноним 08/04/24 Пнд 16:59:02 #325 №3116436 
17108554530830-news.png
>>3116399
Знай, малолетний дебил, что самый крутой язык это язык твоей мамки, это тебе любой из треда подтвердит.
Аноним 08/04/24 Пнд 17:03:33 #326 №3116439 
>>3116436
Дед, уроки сделал?
Аноним 08/04/24 Пнд 19:58:31 #327 №3116548 
Укатываюсь в Spiral Framework. Теперь буду его форсить и обоссывать ларавель и симфони. Будьте в курсе
Аноним 08/04/24 Пнд 20:02:01 #328 №3116550 
>>3116548
Ну и дебс. Теперь будешь все руками делать, когда лариане и симфонисты готовые решения накатывают и скафолдингом пукают.
Аноним 08/04/24 Пнд 20:07:16 #329 №3116551 
>>3116550
Да мне похуй. Я хочу работать с современными йобами типа grpc, микросервисов и нормально тестировать приложение без ларавельских сервис локаторов, фасадов и актив рекордов. А на ларе я уже без недели 8 лет хуярю. Нужно развиваца
Аноним 08/04/24 Пнд 20:12:38 #330 №3116553 
>>3116551
за 8 лет пыхи надо развиваться в го или жабу, учить сети, кубер, глубины субд, а не эту хуиту.
Аноним 08/04/24 Пнд 20:43:28 #331 №3116567 
>>3116553
Го может и стоит глянуть, как подпорку для пыха. Может какнить видосов на ютубе накачу, хоть ознакомиться что там к чему. Джавы рот ебал. По спиралю взялся доку читать, покамест доставляет, глянем, что дальше будет. Хуйово, что её никто не знает, даж в гугле хуй че нагуглить, а про итт тред и говорить смысла нет
Аноним 08/04/24 Пнд 20:58:36 #332 №3116571 
>>3116403
>перл - лучший из интерпретируемых
Из мертвых.
Аноним 08/04/24 Пнд 21:01:41 #333 №3116574 
>>3116567
Ты не понял. Ты микропенисы с куберами и жрпс в пыхе не изучишь. Надо сначало идти туда где эти проблемы правильно решаются, а потом уже это в пыху тащить. Это как бы Тейлор Отвель никогда рельсы не щупал и не писал на них, но ларку с них стал копировать. Ты просто не поймешь проблем связанных с мипросервисми или IaC, если будешь все время вокруг пыхи крутится. Потому что большинсто пыхарей скажет - А НАМ НИНАДА, У НАС И ТАК ВСЕ РАБОТАИТ и будут по-своему правы. Вот к примеру API кубера. Понадобится тебе в кубере ингрес кофигурировать динамически. Будешь качать говнолибу от Васяна на пыхе или возьмешь широко используемые библиотеки на питоне или голанге? Или еще лучше пример, где ты возьмешь в пыхе хорошие примеры того как накатывать миграции в кубере, как это правильно делается без костылей?
Аноним 08/04/24 Пнд 22:27:07 #334 №3116665 
>>3116567
>Го может и стоит глянуть, как подпорку для пыха. Может какнить видосов на ютубе накачу, хоть ознакомиться что там к чему. Джавы рот ебал.
Это так забавно выглядит, ведь ГО это буквально джава на минималках. Это как из джавы выкинуть даже те немногие удобства что там есть и сидеть хуярить классах с публичными полями, статическими функциями, без обработки исключений (привет if err != nil), и вручную ресайзить массивы копированием (привет append). Такого говнокода на джаве даже в кошмарах индусов нет, а люди прямо ГОРДЯТСЯ что так пишут. А почему?

Потому что не джава! омномномном
Аноним 08/04/24 Пнд 22:35:07 #335 №3116668 
>>3116665
Голенг свободный язык развиваемый сообществом как и пыха, хоть и спонсируется корпорацией, а жава разрабатывается внутри корпорации и как ее можно использовать решает корпорация. Нету двух версий голенга, коммерческой и бесплатной. Некоторым людям срамно стакой технологией работать.

мимо
Аноним 08/04/24 Пнд 22:35:59 #336 №3116670 
>>3116668
Некоторым людям срамно с такой технологией как жава работать.

фикс
Аноним 08/04/24 Пнд 22:41:21 #337 №3116673 
>>3116668
>а жава разрабатывается внутри корпорации и как ее можно использовать решает ко
нет, джава развивается сообществом через JCP
Аноним 08/04/24 Пнд 23:31:10 #338 №3116691 
image.png
>>3116665
>Это так забавно выглядит, ведь ГО это буквально джава на минималках
Аноним 08/04/24 Пнд 23:58:06 #339 №3116706 
>>3116665
>err != nil
Это старая холиварная тема, лол. Мне самому это не нравится, но сторонники подобных проверок считают ексепшены антипатерном. И не без основательно, ведь тебе приходится прикидывать эту хуйню из слоя в слой и пр
Аноним 09/04/24 Втр 00:02:44 #340 №3116707 
>>3116691
>УРЕЕЕЕТИ
Аноним 09/04/24 Втр 14:18:21 #341 №3117271 
>>3086299 (OP)
где работу искать сука, три вакансии нахуй на линкедоне
походу только в рф на нём и пишут
Аноним 09/04/24 Втр 14:24:13 #342 №3117275 
17122597972590.mp4
>>3117271
ХЭЙ! Петухи-свидетели неумирания. Объясните человеку, что его вордпресс кал до смерти копейкой обеспечит.
Аноним 09/04/24 Втр 21:38:44 #343 №3117600 
Расскажите манячке-ньюфане как работать с протоколами в php.
Я очень смутно представляю что такое протокол. Ну, совокупность правил...В моем представлении. Пока знакомлюсь с ними и они ощущаются так, что я не понимаю "а как их трогать-то?".
Как-то вообще с протоколами можно что-то делать?
Что именно?
В php это вообще возможно?
И вообще зачем это нужно?
Я ничего серьезного не писал, я вообще не понимаю зачем мне работать с протоколами, но нужно же учиться новому.
Аноним 09/04/24 Втр 21:42:42 #344 №3117606 
>>3117600
Расскажите манячке-ньюфане как работать с дыраколами в php.
Я очень смутно представляю что такое дырокол. Ну, совокупность железяк...В моем представлении. Пока знакомлюсь с ними и они ощущаются так, что я не понимаю "а как их трогать-то?".
Как-то вообще с дыроколами можно что-то делать?
Что именно?
В php это вообще возможно?
И вообще зачем это нужно?
Я ничего серьезного не писал, я вообще не понимаю зачем мне работать с дыроколами, но нужно же учиться новому.
Аноним 09/04/24 Втр 21:44:17 #345 №3117608 
>>3117606
А нормальный ответ будет?
У тебя либо желчь к вкатунам, либо сам ничего не знаешь, а писать чешутся руки.
Аноним 09/04/24 Втр 21:55:19 #346 №3117614 
>>3117608
https://beej.us/guide/bgnet0/html/split-wide/
Аноним 09/04/24 Втр 22:02:05 #347 №3117623 
>>3117614
Спасибо большое, анон.
Аноним 10/04/24 Срд 00:48:24 #348 №3117673 
url.webp
>>3117275
Все умерло, пиздуй на завод, чмоха.
Аноним 10/04/24 Срд 01:49:46 #349 №3117690 
Да ну нахуй.mp4
>>3117673
Но есть жи графики. Есть жи статистика что 80% говна в интернете написано на пхп! Язык жи развивается, вон атрибуты как в джаве сделали почти.
Аноним 10/04/24 Срд 09:25:12 #350 №3117774 
17126231221580-news.jpg
>>3117690
На завод гайки точить. Все графики врут.
Аноним 10/04/24 Срд 12:24:18 #351 №3117906 
>>3117774
блять, на заводе в рахе так-то ща больше платят чем пых-макакам
Аноним 10/04/24 Срд 15:30:18 #352 №3118106 
>>3117906
Ну и отлично, главное чтобы на пожрать и хату хватало, на остальное как то похуй. На заводе не все работать могут, вот меня например трясёт от людей а таблетки я пить не хочу
Аноним 10/04/24 Срд 16:44:16 #353 №3118183 
17055966597620-news.png
>>3117906
Все так. Что ты забыл в треде если токарный станок тебя давно ждет?
Аноним 10/04/24 Срд 18:05:24 #354 №3118275 
>>3118183
Это битриксрвый пхп макарий, который работает за еду. Посмотрел пару инфоциганских видосов за современные тренды и теперь бегает по всей доске со своим го
Аноним 10/04/24 Срд 18:06:49 #355 №3118278 
>>3113621
Уже бомжевал, теоретик?
Аноним 10/04/24 Срд 19:44:48 #356 №3118392 
Аноны, есть у кого ссылки на хороший мануал по основам линукс? Скиньте пожалуйста.
Аноним 10/04/24 Срд 21:41:01 #357 №3118549 
Пацаны, о каких типах архитектуры стоит знать джуну из этого списка:
- Монолитная архитектура;
- Микросервисная архитектура;
- Сервис-ориентированная архитектура (SOA);
- Бессерверная архитектура (Serverless-архитектура);
- Service Mesh;
- Twelve-Factor Apps («12-факторное приложение»);
- Гексагональная архитектура;
- Чистая архитектура.

На что из этого списка стоит обратить особое внимание? Не хочу разбираться в том, что в профессиональном мире считается отжившем говном, которое используется полтора калеками
Аноним 10/04/24 Срд 21:57:50 #358 №3118575 
>>3118549
Начни с того что никакой "гексагональной архитектуры" не существует. Чел тупо выдумал хуйню чтобы красивые слайды нарисовать.

А остальное просто совсем разные вещи. Это как написать: "пацаны вот есть архитектура стула, архитектра залупы и архитектура танца, что из этого устарело?"
Аноним 10/04/24 Срд 22:13:02 #359 №3118597 
>>3118549
Зачем джуну углубленно знать архитектуру? Его в самом деле посадят что-нибудь проектировать, а не перекладывать джейсоны?
Аноним 10/04/24 Срд 22:37:28 #360 №3118628 
>>3118597
Ну представление-то иметь надо.
С чего-то же придется расти?
Ну и наверное плюсик к кандидату, что он такой умный-заумный, знает такие умные слова как микросервисная архитектура...
Аноним 10/04/24 Срд 22:39:47 #361 №3118631 
>>3118549
>из этого списка:
Все эти слова о том как делить приложение на большие логические блоки, но они ничего не говорят о том как писать код. У тебя может все быть красиво разложено по логическим модулям и файликам, но внутри быть полная неразбериха.

>в профессиональном мире
В современной разработке профессионалов очень мало. Мейнстрим почти полностью состоит из говна и движется все глубже в говно. Впрочем, так происходит не только в разработке.
Аноним 10/04/24 Срд 22:42:16 #362 №3118636 
От балды кинул отклик на вакансию, где искали джуна.
Мне написали на следующий день: "Здравствуйте, ваш отклик нас заинтересовал" (я им описал какие проекты делал), вот вам тестовое задание".

Я сделал, скинул на следующий день. Сначала этот пидорас не читал сообщения с этим тестовым, а потом прочитал и начал молчать.

Что в головах у таких людей?

Причем самое смешное эта вакансия висит где-то дней 20. И что, никого до сих пор не могут найти?
Аноним 10/04/24 Срд 22:46:02 #363 №3118638 
>>3118549
>о каких типах архитектуры стоит знать джуну из этого списка
Нет такой должности как "джун", это образное выражение, не буквально.

>- Монолитная архитектура;
В пхп мире самая распространенная.

>- Микросервисная архитектура;
Имеет смысл использовать в больших компаниях.

>- Сервис-ориентированная архитектура (SOA);
Ну это тоже самое, что и микросервисы. Микросервисы эволюционировали из SOA.

>- Бессерверная архитектура (Serverless-архитектура);
Считается самой продвинутой на данный момент.

>- Service Mesh;
Ну это вариация микросервисов. Где коммуникация осуществляется через прокси.

>- Twelve-Factor Apps («12-факторное приложение»);
Это просто чьё-то оценочное мнение, а не архитектура.

>- Гексагональная архитектура;
Неведомая ёбаная хуйня. Первый раз слышу.

>- Чистая архитектура.
Это вообще название книги.

>На что из этого списка стоит обратить особое внимание?
На монолиты, микросервисы и serverless.
Аноним 10/04/24 Срд 23:08:13 #364 №3118665 
>>3118628
>Ну представление-то иметь надо.
Тоже верно.

>С чего-то же придется расти?
Расти придётся с говноцмс как правило. Вордпресс, битрикс. Либо интернет-магазины - cs cart, woocommerce, magento и проч.

>Ну и наверное плюсик к кандидату, что он такой умный-заумный, знает такие умные слова как микросервисная архитектура...
Да нет, всем похуй. Мир пхп - это почти всегда один монолит. Вся фишка пхп в том что ты можешь скачать цмс, за 3 копейки накатить готовых плагинов, купить двух васянов за две палки колбасы и у тебя опа! Интернет-магазин готов. Фреймворки всякие типа symfony, laravel есть, но это уже не 2 копейки. Те кто хочет всякие микросервисов, изначально пхп не выберут, а возьмут какой-нибудь golang или java или на крайний случай c#. Потому что на них разрабатывать приятнее. Ну и скорость у них лучше.
Аноним 11/04/24 Чтв 13:22:39 #365 №3119042 
image.png
Мне говорят, что у меня не очевидно, что функция должна возвращать минимальное значение, которое не null. Я говорю, что если это не очевидно, то у читающего 12 IQ. Почему я не прав?
Аноним 11/04/24 Чтв 13:35:59 #366 №3119060 
>>3119042
1) На чтение 2 меньше времени тратится, а значит она лучше. Код в функии выносят не только для переиспользования, но и для самодокументорованности кода

2) Коммерческий код это не шарады. Всем поебать какой ты умный. Людям хочется меньше тратить время на чтение твоего кода.
Аноним 11/04/24 Чтв 13:46:23 #367 №3119069 
>>3119060
Вторую как раз я и написал. Спасибо, так и скажу.
Аноним 11/04/24 Чтв 14:48:29 #368 №3119117 
>>3118665

У тебя прослеживается стереотип, что монолит это плохо, а микросервисы хорошо. Но мода на микросервисы закончилась пару лет назад.
Аноним 11/04/24 Чтв 14:50:01 #369 №3119121 
>>3118183
там так-то тоже разряд требуется, дебич
корочки выдают всякие
Аноним 11/04/24 Чтв 14:50:42 #370 №3119123 
>>3118636

Может он тупо занят срочной задачей? Скорее всего они поручили проверять задания сеньору, и ему надо как-то успевать и работу делать и десятки тестовых проверять.
Аноним 11/04/24 Чтв 14:52:40 #371 №3119124 
>>3119117
>У тебя прослеживается стереотип, что монолит это плохо, а микросервисы хорошо
Я так не говорил это ты за меня додумал. Моя позиция что каждая архитектура уместна в определенных ситуациях и не уместна в других.
Аноним 11/04/24 Чтв 14:55:17 #372 №3119130 
>>3117906

На заводе надо таскать тяжелые бованки, которые не каждый тут поднимет, много грязи, заусенцев, грубой работы, стружки, искры, масло летит во все стороны, переработки, грохот, визг. А для программирования сил много не надо, лишь бы кнопки нажимать мог.
Аноним 11/04/24 Чтв 15:12:32 #373 №3119152 
>>3117600

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

Данные практически всегда и везде передаются как набор байт (например, данные в Интернете передаются как байты, данные на диске и в памяти компьютера хранятся как байты). Байт это (если по-простому) целое число от 0 до 255. Соответственно, все, что может термометр передать это один или несколько байт. Вот протокол как раз и определяет, как преобразовать температуру в байты и обратно.

Если у тебя температура всегда целая, и в диапазоне от 20 до 80 градусов, то ты можешь просто передать ее в виде одного байта с значением температуры. А если она может быть отрицательной, например от -20 до +80, то ты можешь перед передачей прибавить к ней 20, а при получении вычесть 20. То есть, -15 градусов передается как (-15 + 20) = байт с кодом 5. Это называется "бинарный протокол": данные напрямую преобразуются в значения байт.

Есть еще вариант использовать текстовый протокол. В этом случае мы сначала преобразуем температуру в текст, а затем передаем коды букв в получившемся тексте. Например, пусть температура -10 градусов. Мы передаем коды символов -, 1, 0, "конец строки". Для кодирования символов используем кодировку ASCII:

Текст - 1 0 конец
Коды 45 49 48 10

То есть, -10 кодируется как 45, 49, 48, 10. Текстовый протокол требует больше байт, но зато его легче читать человеку и отлаживать.

> Как-то вообще с протоколами можно что-то делать?

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

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

> И вообще зачем это нужно?

Чтобы обмениваться данными с другими устройствами, другими компьютерами. Представь завод, например, где много датчиков, и они обмениваются данными с центральным компьютером. Или представь мобильное приложение, которое обменивается данными с сервером: показывает пользователю картинки с сервера, а когда пользователь лайкает их, оно посылает данные на сервер. В обоих случаях нужен протокол для передачи данных.
Аноним 11/04/24 Чтв 15:19:28 #374 №3119164 
>>3114697

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

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

Если тебя беспокоит дублирование кода (это хорошо если так), то просто сделай отдельно функцию сохранения файла и отдельно функцию добавления комментария и вызывай их из контроллера.
Аноним 11/04/24 Чтв 15:20:13 #375 №3119165 
>>3114699

Вынеси работу с комментариями в отдельный класс или набор функций и вызывай их из контроллеров.
Аноним 11/04/24 Чтв 15:23:16 #376 №3119169 
>>3119124

Тогда почему "те, кто хочет микросервисов, выберут golang или java"? Не вижу связи вообще. На PHP тоже возможно переусложнять код и разбазаривать деньги работодателя на микросервисы.

А что касается "приятнее", то приятнее писать на Питоне. Го это не "приятнее", это "терпеть и мучаться чтобы выжать побольше производительности", а java/c# это километры бойлерплейта.
Аноним 11/04/24 Чтв 15:48:58 #377 №3119216 
>>3119169
>Тогда почему "те, кто хочет микросервисов, выберут golang или java"?
Потому что вся фишка пхп - большое количество готовых плагинов, cms. Ни у кого нет такого количества маркетплейсов, где можно за 3 копейки купить готовый скрипт. Но когда не нужен готовый скрипт, ты пишешь микросервисы с нуля - какой смысл выбирать пхп? Он слишком дохуя прощает разной хуйни. Типа прощения необъявленной переменной или конверсия в другой тип. Асинхронный код писать сложно. Язык уже старичок. Можно использовать для чего угодно, но какой смысл?
Аноним 11/04/24 Чтв 15:52:48 #378 №3119224 
>>3119042
Бля, какой же кал.
А че ты int написал? Писал бы уже mixed тогда. Че только на null проверять, проверял бы еще и на Int. А еще надо на неотрицательные значения проверить. Иксы блядь какие-то. Короче хуйня полная.

Вот так это делается в реальности https://3v4l.org/HIUHb#v8.1.12
А вот так это принято делать в ооп языках https://3v4l.org/VvrQN#v8.1.12
Озаботиться что у него правильные данные это задача того, кто код вызывает. А ооп и система типов позволяют в принципе неправильные состояния предотвратить.

Причем этот говнокод это чисто пхпшное явление. Вот по этому к пхп макакам как к говну относятся.
Вот пример того как это будет выглядеть на функциональном F# https://onecompiler.com/fsharp/429yg5uum Все понятно, четко. Мы еще на уровне системы типов задали корректное поведение. Никакой ебанутой угадайки, пятилетке этот код покажи и он все поймет.
Аноним 11/04/24 Чтв 16:32:20 #379 №3119281 
>>3119224
Пиздец ты ебанутый
Аноним 11/04/24 Чтв 17:00:07 #380 №3119318 
Добрый день, аноны.
Подскажите, можно ли написать одно универсальное правило для автозагрузки в composer.json?
Чтобы не добавлять каждый раз "Codemu\\demo{number}\\": "src/d{number}"?

--------------------------------------------------------
"psr-4": {
"Codemu\\": "src/",
"Codemu\\demo02\\": "src/d02",
"Codemu\\demo03\\": "src/d03",
"Codemu\\demo04\\": "src/d04"
}
--------------------------------------------------------

Структура катологов:

codemu
src
d01
d02
d03
d04
...
d99
-----------------------------------------------------------
То есть типа:

"psr-4": {
"Codemu\\demo[0-9][0-9]\\": "src/d[0-9][0-9]"
}
Аноним 11/04/24 Чтв 17:06:26 #381 №3119322 
>>3119224
страшно спросить какие поля будут у класса age в будущем
Аноним 11/04/24 Чтв 17:09:09 #382 №3119329 
>>3119318
Подскажите, можно ли написать одно универсальное правило для автозагрузки в composer.json?
Чтобы не добавлять каждый раз "Codemu\\demo{number}\\": "src/d{number}"?

"psr-4": {
"Codemu\\": "src/",
"Codemu\\demo02\\": "src/d02",
"Codemu\\demo03\\": "src/d03",
"Codemu\\demo04\\": "src/d04"
}

Структура катологов:

codemu
-src
--d01
--d02
--d03
--d04
...
--d99

То есть типа:

"psr-4": {
"Codemu\\demo[0-9][0-9]\\": "src/d[0-9][0-9]"
}
Аноним 11/04/24 Чтв 17:20:36 #383 №3119341 
>>3119322
compare(), equalTo(), plus(). Да любые действия, которые можно выполнять с возрастом, почему нет? Value Object же.
Аноним 11/04/24 Чтв 17:24:43 #384 №3119352 
>>3119329
Проще всего будет называть директории demo02, demo03. Но если тебя это не устраивает, ты можешь зарегистрировать собственный автозагрузчик, в котором опишешь нужные тебе правила.
https://getcomposer.org/doc/01-basic-usage.md#autoloading
Аноним 11/04/24 Чтв 17:42:56 #385 №3119393 
>>3119341
научись сначала поля от методов отличать, потом сюда пиши, еблан
Аноним 11/04/24 Чтв 18:01:04 #386 №3119433 
>>3119060
>Код в функии выносят не только для переиспользования, но и для самодокументорованности кода
И даже это не самое главное почему пишут функции.
Аноним 11/04/24 Чтв 18:15:31 #387 №3119452 
>>3119393
И зачем ты подорвался? Свойств тоже будет столько, сколько нужно сущности предметной области.
Аноним 11/04/24 Чтв 18:43:00 #388 №3119505 
>>3119452
ну давай, перечисляй свойства, червь книжный
Аноним 11/04/24 Чтв 19:09:36 #389 №3119566 
>>3119164
Окей, анон.
Спасибо за ответ.
Аноним 11/04/24 Чтв 19:15:04 #390 №3119578 
>>3119123
Одна из версий.
Ему либо похуй
Либо он боится ставить какие-то дедлайны.
Одно дело молчать - молчание это неопределенность ответа.
Другое дело написать "Давайте я посмотрю ваше тестовое к следующей субботе и тогда же напишу свой ответ". Это ж реально придется брать и в субботу что-то там смотреть, отвечать человеку.

Но отклик он до сих пор не отклонил.
Аноним 11/04/24 Чтв 19:17:09 #391 №3119585 
>>3119322
А они должны быть? Речь ведь не о количестве полей. А о том что "возраст" это не просто "int". Возраст нельзя складывать, возраст не может быть отрицательным, да куча правил.

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

А по поводу того удобно ли это, красиво ли это. Ответ: конечно это неудобно и уебищно. Вот именно это и имеют ввиду, когда называют пхп устаревшей парашей.
Я привел пример как это делается в современном языке, с нормальной системой типов:
type RawAge = Int of int32 | String of string
type NonZeroNaturalInt = NonZeroNaturalInt of uint16
type Age = Age of NonZeroNaturalInt
type ValidateAge = (RawAge option) -> Result<Age,string>

И все. Не надо ниче городить, на каждый тип одна строчка. Причем пишущий функцию валидации ОБЯЗАН проверить все варианты. И вернуть ОБЯЗАН неотрицательное число. А тот кому нужен Age ОБЯЗАН использовать функцию валидации на том говне, из которого он этот Age пытается получить.

Но это все лирика. В реальности пхп макаки до сих пор "считают классы", как семечки в кульке или спички в коробке, срут нулами повсюду, а главное, не могут ни ооп код писать, ни функциональный. Ни в пизду ни в красную армию. Застряли в каком-то говенном лимбо, на каждом собесе долбят этот ебучий солид, паттерны, ооп. А хули толку? Определение заучил, башкой с умным видом покивал и пошел хуярить функции, которые принмают хуй пойми че, и хуй пойми че возвращают.
Аноним 11/04/24 Чтв 19:30:29 #392 №3119604 
>>3119224
У тебя супер класс Age, как я должен понять что это возраст а не музыкальный жанр или название фильма ? Age может быть у человека, у планеты, у продукта.

Как минимум UserAge <- TimeAge <- abstract Age <- Object
Аноним 11/04/24 Чтв 19:34:11 #393 №3119606 
>>3119604
Та же история про говноязык. В пхп нет модулей. Поэтому только неймспейсы.
А строить шизофренические иерархии это точно такой же говнокод. Наследование еще лет десять назад прикопали.
Аноним 11/04/24 Чтв 19:53:22 #394 №3119635 
>>3119585
>в говне обязан, а в пхп не обязан, поэтому язык говно

Кто обязывает не пилить объект-значения? Бог? Или так принято? Ну так с этим можешь проследовать нахуй, у жс вон принято было онли снежинки на странице делать, а оно вон как вышло
Аноним 11/04/24 Чтв 19:57:39 #395 №3119642 
>>3119606
Сейчас бы в 2024 о качестве языка переживать. Промптеров будет с каждым днем все больше...
Аноним 11/04/24 Чтв 19:58:33 #396 №3119644 
>>3119224

Почему ты сделал тип MinAge? Чем он отличается от Age? Чисто теоретически, MinAge для одной группы людей может быть больше чем MinAge во второй, ты для сравнения их еще одну функцию и еще один тип создашь?
Аноним 11/04/24 Чтв 20:14:23 #397 №3119666 
>>3119635
>Бог? Или так принято?
А кто обязывает завязывать шнурки и ходить еблом вперед? Да никто в общем-то. Можешь ходить задом-наперед, постоянно спотыкаясь. Но как только ты со своей походкой влетишь в нормального пешехода - получишь в еблет. Так это и работает.

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

Тип говорит о том что гарантированно был проведен процесс отбора. А чтобы гарантировать правильность процесса отбора существуют юнит тесты. В них и проверяют правильно ли функция отбора выбирает минимум, что мы на самом деле считаем минимумом итд. Мы когда СВОЙ код пишем нас это все в принципе не ебет.
Аноним 11/04/24 Чтв 20:42:29 #398 №3119682 
>>3119666
>шнурки
Ебать ты даун, даже не понял, что я написал
Аноним 11/04/24 Чтв 21:02:11 #399 №3119698 
image.png
>>3119585
хуя ты высрал, шиз
должны, потому что это объект
твой понос дальше читать не собираюсь
Аноним 12/04/24 Птн 06:33:13 #400 №3119906 
Зашел в интерактивный режим git консоли, сделал индексацию недавно измененных файлов, а как выйти-то теперь, чтобы сделать коммит?
Аноним 12/04/24 Птн 06:58:37 #401 №3119911 
>>3119906
q
Аноним 12/04/24 Птн 07:01:26 #402 №3119912 
>>3119906
Если я правильно тебя понял, то ты добавил файлы в индекс и теперь хочешь сделать коммит.

Тогда так:
git commit -m 'First commit'

Если сделать так, то откроется редактор по умолчанию (у меня Vim):

git commit

Там нужно написать в самом верху: First commit

Потом нужно сохранить изменения. Если редактор Вим, то нужно нажать:
esc
:
wq
Аноним 12/04/24 Птн 08:44:29 #403 №3119935 
В объект можно передать массив, типа конфига, в этом массиве неинициализированные объекты (т.е классы) для фабрики. Норм ли решение потом в цикле проверять их тип (интерфейс)? Или проверять когда фабрика создает? Но тогда получается что есть потенциальная закладка с ошибкой в приложении.
Аноним 12/04/24 Птн 09:06:55 #404 №3119941 
>>3119152
Я другой анон, бля круто расписал, было интересно прочитать
Аноним 12/04/24 Птн 09:12:24 #405 №3119944 
image.png
>>3119224
Я не пишу библиотеку для работы с возрастом. Но ты молодец.
Аноним 12/04/24 Птн 11:22:29 #406 №3120044 
>>3119944
Это не он молодец, это ты дегенерат каких нельзя допускать до программирования.
Аноним 12/04/24 Птн 11:52:32 #407 №3120088 
image.png
>>3119906
>Зашел в интерактивный режим git консоли, сделал индексацию недавно измененных файлов, а как выйти-то теперь, чтобы сделать коммит?
Классика
Аноним 12/04/24 Птн 16:33:43 #408 №3120381 
>>3118549
Все читай - все учи. Сейчас можешь только обзоры почитать о них, но готовься что ничего не поймешь, т.к. большинство из них вращается на DDD и на паттернах и принципах.

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

Всякую залетную хуету не слушай, типа вордпресс-мастеров/обрыганов-быдланов, они сами на дне и тебя утянут к себе, им профессия не по кайфу, они ее терпят
Аноним 12/04/24 Птн 21:52:10 #409 №3120628 
>>3120381
>Паттерны покажут как работает ООП.
Каким образом? Паттерн - это просто способ сделать что-то.
Аноним 12/04/24 Птн 22:35:17 #410 №3120647 
>>3120381
>разбираешься с паттернами
Как можно разобраться с паттернами не написав много кода, где возникнет проблема и возможность применить паттерн. Типо здрасьте я вот паттерны в туду листе применяю, ну или в моем фреймворке.

Это же хуйня в вакууме. Так же как с ООП. Вот я наебашил тыщу строк кода в одном файле императивно, повторил 10 одинаковых кусков кода, походу мне надо почитать про ООП.

А обычно так - прочитал про переменные, про циклы, а потом давай ооп учить с интерфейсами, собачками.
Аноним 13/04/24 Суб 00:27:13 #411 №3120704 
>>3120647
это база
Аноним 13/04/24 Суб 00:42:35 #412 №3120707 
>>3120628
>>3120647
Что ты забыл в программировании? Иди гайки крути блядь
Аноним 13/04/24 Суб 00:59:07 #413 №3120711 
Ларка вообще поддерживает get-параметры в URL, именно что в объявлении маршрутов?
Или только параметры маршрута?
Или параметры маршрута это и есть get-параметры?
Аноним 13/04/24 Суб 06:11:12 #414 №3120739 
>>3120707
Ебанат, как изучение паттернов объясняет ООП? Как способ сделать что-то может объяснять концепцию другого понятия?
Аноним 13/04/24 Суб 06:16:39 #415 №3120741 
1-344.png
>>3120647
>императивно
ООП - тоже императивная парадигма.
Аноним 13/04/24 Суб 07:43:42 #416 №3120769 
>>3120711
прочитай про http, нативно есть только post и get, и да, в ларке они есть.
Аноним 13/04/24 Суб 11:18:57 #417 №3120860 
>>3120711
На уровне контроллера ей все равно гет там или пост. Используй объект запроса для получения его параметров - там одинаково.
Аноним 13/04/24 Суб 12:04:14 #418 №3120888 
>>3120739
Ты дебил, тебе объяснять смысла нет, раз ты мозгом подумать не можешь и найти связь между ними. Такие как ты - залетная хуета в айти. У тебя даже базовой способности мыслить нет. И быдлячая тупорогость быка, держиморды.

Из твоих ответов уже ясно, что ты нихуя не умеешь писать ООП-код и непонимаешь паттерны, но зато в комментах ебальник свой малограмотный разкрываешь
Аноним 13/04/24 Суб 12:07:58 #419 №3120891 
https://www.php.net/manual/ru/fileinfo.installation.php
> Этот модуль включён по умолчанию.
> Windows-пользователи должны подключить идущий в комплекте поставки php_fileinfo.dll DLL файл в php.ini для включения данного расширения.
На основании этого противопоставления я предполагаю, что включён он в жму/пинус. Однако, я посмотрел php.ini из php8.2-common от debian bookworm, и увидел там:
> ;extension=fileinfo
Важная оговорка только, я смотрел не на реальной системе, а скачав сорцы пакета из репозитория debian, так что, возможно, где-то обосрался.
И чё, и как это понимать? Было предположение о том, что на жмупинус это расширение статически компилировано в сам PHP, но судя по тому, что в этот пакет входит файл
> /usr/lib/php/20220829/fileinfo.so
Это нихуя не так. Есть линуксоиды, у которых девственный php.ini? Чё там как? Строка закомментирована, расширение работает? Алсо, я понимаю, что дистрибутивов много, но debian это база. И было бы странно заявлять такое в доке, когда debian ведёт себя иначе.

А задался я этим ебанутым вопросом вообще через попытку понять, как вообще устроены расширения в PHP. Есть вот PECL, это понятно. Есть расширения, которые идут с пыхой в комплекте, и их нужно включить в php.ini. Ага. А есть JSON, который вроде расширение, но идёт в комплекте, и идёт в комплекте в другом смысле. Его не нужно включать в php.ini, он интегрирован в ядро. Хотя, вроде как, расширение. А есть DateTime, который находится в разделе расширений, но судя по
> Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.
Вообще не расширение. И вот я нихуя не понимаю, где граница между
1. Не расширения
2. Расширения, которые расширения вроде как, но интегрированы в PHP и не особо отключаемы (если только на сборке пердолиться)
3. Расширения, которые расширения, и включены по умолчанию, но могут быть отключены в php.ini
4. Всякие другие расширения, типа PECL
Граница между 1 и 4 понятна, а между 2 и 3 не особо.

Типа fileinfo это как JSON? Тогда почему у fileinfo есть so/dll-файл, а у JSON нет? А если ответ нет, то каким образом он включён по умолчанию, если судя по тому, что видел я (а я, напоминаю, мог видеть левую хуйню), в php.ini у дебиана он отключён?
Аноним 13/04/24 Суб 12:52:22 #420 №3120919 
>>3120888
Ебанат, паттерны != ООП и ООП != паттерны. На вопрос ты так и не ответил, сдулся, ожидаемо.
Аноним 13/04/24 Суб 12:55:18 #421 №3120920 
>>3120888
>найти связь между ними
А хули её вообще надо искать? Почему эта связь не очевидна, тебе в твою объебанную солями башку не приходило? Может авторы паттернов использовали функциональные принципы, а на ооп хуй клали?

Каждый раз в голос в таких дегенератов. У тебя тупо определения ооп сформулированного нет, а ты какие-то связи говна с мочей фантазируешь. Ты просто очередной процедурный хуесос, который классы использует как папочки для своих говенных функций. ООП-КОД ебать.
Аноним 13/04/24 Суб 13:47:20 #422 №3120944 
>>3120919
>>3120920
Быдлос подъездный, всеми силами пытаешься узнать но тебе не говорят)). Я тебе нихуя больше не скажу, потому-что ты залетная поебень в айти и отрицала. Тебе нужно быстро, чтобы еще мозг не пух и еще чтобы не работать и еще чтобы деньги давали. Но в результате ты получишь хуй и потеряешь время. Пиздуй на завод гайки крутить, пока не поздно. С твоей психологией отрицалы не место в профессии. Ты почему отрицаешь? Потому что у тебя голова нагружается когда ты это все читать начинаешь, тебе плохо от этого, тебе в тягость сидеть весенним днем учить, разбираться, поэтому ты визжишь НЕНУЖНА ЭТА, РРЯЯ, ЗОЧЕМ ПАТТЕРНИ, транслируешь свою боль всем окружающим. Ты в инете увидел что это НАДО, у тебя сразу жопная боль, НЕТ НИНАДО, тебе хочется пойти погулять или поиграть, а не учить. Но жопная боль неспроста, ты подсознательно понимаешь что надо, а твоя животная сущность говорит что не надо, ты с этого эндорфинчики неполучишь и твой скулежь направлен не для того чтобы разобраться, а чтобы себя успокоить, это твоя маня-защита.

Поэтому я тебе хуй что напишу, чтобы ты вкатывался лет 10, себя успакаивая)).

Если бы хотел реально получить ответ, ты бы впитывал каждую строчку и пытался бы разобраться, а не спорил и не вел себя как обезъянка малолетняя, визжащая
Аноним 13/04/24 Суб 14:04:43 #423 №3120954 
>>3120891

У меня на макоси также, то есть расширения закомментированы, но они работают.

В файле php.ini:
;extension=fileinfo
;extension=mbstring

При этом,
> php -m | grep fileinfo
fileinfo

> php -m | grep mbstring
mbstring

То есть данные библиотеки работают "из коробки" без дополнительных манипуляций.
Соответственно скомпилированы заранее и включены по дефолту.

Там в исходниках есть файл типа Configure (или как-то так) и в нем указано, какие модули нужно подключить во время установки php.
Аноним 13/04/24 Суб 14:30:57 #424 №3120965 
>>3120954
Спасибо. А можешь глянуть, mbstring.so и fileinfo.so в ext вообще лежат? Ну или что на макоси вместо so.
И совсем классно будет, если в случае их наличия, ты попробуешь их удалить временно, и запустить какую-нибудь функцию из mbstring/fileinfo. Потому что если у тебя так, как я нарыл в debian (в php.ini отключено, но работает, но so-файл есть), то варианта два. Либо, несмотря на то, что в php.ini строка закомментирована, грубо говоря, дефолтное значение true. Если её раскомментируешь, директива перезапишется тем же самым, ничего не произойдёт. Либо это статическая компиляция расширения прям в бинарник PHP, и нахера тогда so-файл вообще кидают. Просто, чтобы был, вдруг кому надо?
Аноним 13/04/24 Суб 15:05:07 #425 №3120995 
>>3120920
>Почему эта связь не очевидна
Тебе она неочевидна потому-что ты не знаешь ни паттерны, ни принципы.

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

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

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

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

Поэтому тебе правильно сказали - иди уроки делать, дурачок
Аноним 13/04/24 Суб 15:26:15 #426 №3121005 
>>3120995
>паттерны которые ослабляют связь между слоями
Я просто хочу разобраться, а как измерить "ослабление" связи? Или хотя бы что такое "слой"? Если у меня "толстый" контроллер, то слой тоже "толстый"? Ладно, нахуй подробности, эти слои они вертикальные или горизонтальные?
Аноним 13/04/24 Суб 15:52:22 #427 №3121036 
>>3120995
Чиво, блять? Какой то словесный понос. Правильно тебе сказали здесь >>3120920 у тебя нет понимания ничего вообще. Еще раз, для особо одаренных... Паттерны != ООП и ООП != паттерны.
Аноним 13/04/24 Суб 15:56:40 #428 №3121040 
>>3121005
Собес решил провести под видом дурачка?

>измерить "ослабление" связи
Паттерн - pub-sub, еще Observer. В народе: События.
По принципу инверсии зависимостей, принимаем что-то внешнее (объект событий) что соответствует интерфейсу с ним и работаем, не привязываясь к чему-то конкретному, при этом не привязываемся к тому кто эти события будет получать или публиковать.

>то такое "слой
Уровни приложения: Сущности, Сервисы приложений/домена, Ядро, Инфраструктура

>Если у меня "толстый" контроллер, то слой тоже "толстый"
А если код захотите переиспользовать? Будете контроллер копировать? Не хотите Сервис запилить для этого?

>эти слои они вертикальные или горизонтальные?
Смотря какая архитектура.

Ну что, берете меня, товарищ-собеседующий?
Аноним 13/04/24 Суб 15:59:38 #429 №3121044 
>>3121036
>Паттерны != ООП и ООП != паттерны.
Докажи
Аноним 13/04/24 Суб 16:07:51 #430 №3121048 
>>3121040
>По принципу инверсии зависимостей, принимаем что-то внешнее
И чего? Ты как зависимость не инвертируй, а она все равно никуда не девается. "Связь" не ослабляется нихуя, додстер.

>что соответствует интерфейсу
>с ним и работаем, не привязываясь к чему-то конкретному
И какое поведение выражает этот интерфейс? В интерфейсе будут "конкретные" методы, с конкретными типами. И все возможные объекты событий должны в эти "конкретные" рамки вписываться.

>при этом не привязываемся к тому кто эти события будет получать или публиковать.
С этого вообще в гилос. У тебя в твоем супер независимом и "отвязанном" классе будет прописан USE всей этой требухи. И твой код намертво будет к этой событийной модели прикручен. И если когда твой универсальный интерфейс придется поправить под очередное хитровыебанное событие, ты попрешься все это переписывать.

Итого. связи никуда не делись, конкретика осталась, зависимость есть.
Независимо отвязался. Ебать ты кукоретик.
Аноним 13/04/24 Суб 16:10:01 #431 №3121052 
>>3121048
Бля, иди нахуй. Просто я сейчас осознал что ты конченный, когда прочитал первый твой ответ. Пошел нахуй школьник. Еще перед свиньей бисер метать
Аноним 13/04/24 Суб 16:18:40 #432 №3121057 
0 dA-HdcF-5dtVjuhb.webp
adt.png
>>3121005
>Я просто хочу разобраться, а как измерить "ослабление" связи?
Смотря про какой код речь. Есть связанность или зацепление (coupling) и связность или прочность (cohesion). Ни то ни другое не никак не зависит от ООП и наличия в языке классов. Почитай сначала про это.
https://medium.com/german-gorelkin/low-coupling-high-cohesion-d36369fb1be9

>Или хотя бы что такое "слой"?
Это логическая (абстрактная) единица кода. Физически может выражаться по разному. Как объект, функция, модуль, не важно на самом деле. Важно чтобы нижние слои ничего не знали про верхние, и чтобы любой слой можно было заменить не меняя ничего в других слоях. Достигается это использованием интерфейсов (имеется ввиду интерфейс как абстракция ввобще, не имеется ввиду именно фича языка, как например интерфейсы в Java). Советую почитать 2 главу СИКП чтобы понять интерфейсы.
http://aliev.me/runestone/Introduction/WhyStudyDataStructuresandAbstractDataTypes.html
Аноним 13/04/24 Суб 16:29:36 #433 №3121071 
>>3120965

>mbstring.so и fileinfo.so в ext вообще лежат?

> ls include/php/ext
curl dom gd hash json mbstring mysqlnd pdo random simplexml spl xml
date filter gmp iconv libxml mysqli pcre phar session sockets standard

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

> find . -type f -name ".so"
./lib/php/20230831/opcache.so
./lib/httpd/modules/libphp.so

А вот если удалить файл opcache.so, тогда появляется увеломление об ошибке:
> php -v
Failed loading /usr/local/opt/php/lib/php/20230831/opcache.so: ...

Тоже появляется ошибка если удалить файл xdebug.so, который находится в другом месте
pecl -> /usr/local/lib/php/pecl

> cd /usr/local/lib/php/pecl
> find . -type f -name '
.so'
./20220829/xdebug.so
./20210902/xdebug.so
./20230831/xdebug.so

Но там нет других файлов, кроме xdebug.so.
Аноним 13/04/24 Суб 16:31:12 #434 №3121075 
>>3121057
Бля, нахуй ты ему отвечаешь, пусть нахуй идет. Он же ебнутый, базы даже не знает а со взрослыми пытается разговаривать. Харкни ему в ебало макротой и дай пинка детенышу, именно такого отношения он заслуживает. Что нихуя не знает основ, а клюв зато свой открывает
Аноним 13/04/24 Суб 16:40:50 #435 №3121091 
>>3120965
Да, кстати, после того как раскомментировал mbstring в php.ini, появилась ошибка:

PHP Warning: PHP Startup: Unable to load dynamic library 'mbstring' (tried: ...)
Аноним 13/04/24 Суб 16:48:03 #436 №3121101 
>>3121052
>мера того, насколько взаимозависимы разные подпрограммы или модули.
>мера
Начали за здравие. Ух бля, щас начнут мерять.
>Cвязность характеризует то, насколько хорошо все методы класса или все фрагменты метода соответствуют главной цели
>насколько хорошо
Так насколько блядь? Хорошо делать хорошо, а не хорошо делать не хорошо. Мы че бля в детском саду? -У тебя там связность больше или зацепление? -ХОРОШО.
Правильно там автору в комментах по губам водят.

>Достигается это использованием интерфейсов (имеется ввиду интерфейс как абстракция ввобще, не имеется ввиду именно фича языка
А можно пример "интерфейса как абстракции вообще"? Похуй на каком языке, просто интересно.

То что ты пытаешься криво и странно объяснить называется ПОЛИМОРФИЗМ. Но что такое в итоге "слои"? Это синоним полиморфизма? Это что-то что просто использует полиморфизм? Исходя из того что ты написал это "неважно что на самом деле", но с использованием полиморфизма. Тут чисто по логике получается что ты просто обозвал полиморфизм как-то по другому. https://www.wolframalpha.com/input?i=%28a+%7C%7C+%21a%29+%26%26+b
Аноним 13/04/24 Суб 16:56:58 #437 №3121109 
>>3121071
> dom
> json
> random
> session
Это ещё что за нафиг? JSON в виде расширения? Ещё и .h. Выглядит так, как будто это исходник PHP. Или, как минимум, что-то специфичное для макоси. Но ты подкинул мне хорошую идею, глянуть https://github.com/php/php-src/tree/master/ext И что я там вижу? Например, директорию JSON.
Короче, складывается ощущение, что положняк такой.
1. Вообще ни разу не расширения, прям сердцевина ядра, ёпта. Например, "Arrays". Несмотря на то, что в документации оно находится в разделе "Variable and Type Related Extensions", это прям вообще база, и в папке ext такого нет.
2. Расширения, которые, однако, были интегрированы в ядро, и теперь они не совсем расширения. Например, JSON когда-то был расширением PECL, а потом его добавили в ядро. А, скажем, random - расширение, которое изначально делалось из расчёта на то, что его интегрируют в ядро, и отдельно никогда не существовало.
3. "Внешние" расширения, которые подключаются в php.ini с помощью extension. При этом, в зависимости от того, как PHP собран, 2 может переходить в 3 и обратно. Вот, например, для винды fileinfo это внешнее расширение. А для твоей сборки - интегрированное в ядро, не требующее активации в php.ini.
Видимо, чтобы окончательно разобраться, нужно будет установить линукс в виртуалку и попробовать самостоятельно собрать PHP пару раз.
Аноним 13/04/24 Суб 17:02:07 #438 №3121117 
>>3121109
Хотя, хуйню сказал.
> https://github.com/php/php-src/blob/master/ext/spl/spl_array.c
Значит, есть разница между расширением в том смысле, как организуют код разработчики PHP (в этом смысле, почти всё - расширение). И расширением в том смысле, что есть какой-то стандартный базовый набор расширений, подразумевается, что они активны во всех мало-мальски стандартных сборках, и, следовательно, можно считать их частью языка. А есть то, что где-то может быть включено, где-то - нет. С точки зрения внутреннего устройства PHP всё это расширения, но с точки зрения того, что расширениями принято называть при использовании PHP, расширения только второе.
Аноним 13/04/24 Суб 19:19:40 #439 №3121279 
Тред захвачен зеленым шизиком.
Аноним 13/04/24 Суб 19:21:12 #440 №3121283 
>>3121279
Таксистом, который не знает что такое .h файлы.
Аноним 13/04/24 Суб 19:37:07 #441 №3121314 
>>3121101
>А можно пример
https://share.sourceacademy.org/asovhsih

>называется ПОЛИМОРФИЗМ
Нет, но мне сейчас некогда это обсуждать. Позже.
Аноним 13/04/24 Суб 19:47:26 #442 №3121329 
изображение.png
>>3121279
PWNED by VKatun
Аноним 13/04/24 Суб 19:57:08 #443 №3121340 
>>3121314
И что в этом примере "интерфейс"? Функция принимающая хуй пойми че и возвращающая хуй пойми че - это щас абстракцией называется?
Аноним 13/04/24 Суб 20:08:13 #444 №3121353 
>>3121340
Интерфейс это шизик, он предоставляет тебе доступ к своим высерам где он НОД итеративно считает. Тыкаешь на шизика получаешь высер, реализацию высера не обязан знать.
Аноним 13/04/24 Суб 21:11:24 #445 №3121443 
adt.png
>>3121340
Рисунок наглядно демонстрирует, что такое абстрактный тип данных и как он работает. Пользователь взаимодействует с интерфейсом, используя операции, определённые в АТД. По сути, абстрактный тип данных - это оболочка, с которой работает клиент. Реализация скрыта на уровень ниже, и её детали пользователя совершенно не беспокоят.
http://aliev.me/runestone/Introduction/WhyStudyDataStructuresandAbstractDataTypes.html
Аноним 13/04/24 Суб 22:25:06 #446 №3121540 
16638983287450.png
>>3121443
>Рисунок наглядно демонстрирует
Аноним 14/04/24 Вск 03:22:01 #447 №3121660 
Что новичку имеет смысл делать в плане логирования?
У меня установлен Apache, как я понял, он сам делает логирование.
Мне, как новичку, это логирование вообще нужно?
Что вообще имеет смысл логировать? Всякие exception, которые я явно буду выкидывать?
Я прочитал доку Laravel, хочу закрепить на практике, но не знаю что именно мне делать для этого.
Аноним 14/04/24 Вск 05:34:22 #448 №3121676 
image.png
>>3121443
>Рисунок наглядно демонстрирует
Как одна область может значить разные вещи? Ты дебил? Это не вопрос.
Аноним 14/04/24 Вск 10:55:07 #449 №3121776 
>>3111406
Глянь курса Лаврика по основам пхп на рутрекере, он там что-то аодобное делает
Аноним 14/04/24 Вск 15:19:22 #450 №3122178 
>>3121660
если есть какие-то интеграции, то всё что туда отправляешь и что получаешь, когда какой пользак в приложуху залогинился/разлогинился, поменял пароль, тронул что-то важное, когда данные валидацию не проходят, чтобы когда пользак придёт "пук хрюк ни работаит" ты бы мог по логам глянуть и ему ткнуть, и да, когда exception то логируешь вместо того чтоб юзеру показывать
Аноним 15/04/24 Пнд 17:42:14 #451 №3123822 
изображение.png
Срыгнули все под шконку, владелец треда ИТТ. Держу в курсе, я разобрался! Разобрался, каким образом
> fileinfo
> Этот модуль включён по умолчанию.
Теоретически, расширения включаются и отключаются через правку php.ini. Но на практике, как минимум дебилыанщики (и, соответственно, все deb-based) вертели это, они могут включать и отключать расширения, путём создания файла типа fileinfo.ini по адресу /etc/php/8.2/mods-available/
Пакет PHP под линуксом содержит в себе скрипт, который запускается при установке пакета. Пикрелейтед. Таким образом, мы и получаем такую ситуацию: so-файл в ext есть, но в php.ini он отключен, но расширение работает.
Аноним 16/04/24 Втр 03:04:27 #452 №3124227 
Что анон использует регулярно в своей практике из этого списка?

Список:
CodeSniffer
Psalm
Phan
PHPStan
Аноним 16/04/24 Втр 06:05:07 #453 №3124243 
>>3124227
CodeSniffer
Аноним 16/04/24 Втр 07:34:45 #454 №3124280 
>>3124227
CodeSniffer, PHPStan
+
плагин для шторма (Php Inspections (EA Extended)), который анон советовал в одном из прошлых тредов.
Аноним 16/04/24 Втр 08:31:18 #455 №3124331 
>>3123822
А можно поинтересоваться у владельца тренда, нахуя ставить пхп на виртуалку с дебианом, если есть альпин?
Аноним 16/04/24 Втр 08:38:47 #456 №3124341 
>>3124331
А нахуя усложнять себе дев экспириенс? Не смешивай технические критерии для продовой конфигурации, и для платформы для разработки

мимо
Аноним 16/04/24 Втр 08:44:30 #457 №3124347 
>>3124341
>docker compose up -d и все
>усложнять
>они могут включать и отключать расширения, путём создания файла типа fileinfo.ini по адресу /etc/php/8.2/mods-available/
>Таким образом, мы и получаем такую ситуацию: so-файл в ext есть, но в php.ini он отключен, но расширение работает
>не усложнять
Ты под солями?
Аноним 16/04/24 Втр 08:52:02 #458 №3124353 
>>3124347
Я бы поставил пыху через homebrew (в виртуале если под виндой) и не ебал мозги в его ситуации. Про докеры можешь мне не расказывать, та же отладка с дебагером усложняется. Попробуй еще в кубернетесе локально разрабатывать.

Докер для пыхи нужен локально, когда другого варианта нет. В той же симфони в дефолтной конфигурации докера, которая создается symfony new project, в докере только постгрес
Аноним 16/04/24 Втр 08:56:54 #459 №3124363 
>>3124353
не виртуалке если под виндой конечно, а в WSL, хотя это тоже VM
Аноним 16/04/24 Втр 09:34:48 #460 №3124440 
Зачем в phpstorm этот сюр с проверкой орфографии, пунктуации и прочей хуйни?
Я на уроке русского или что, блять?
Аноним 16/04/24 Втр 09:38:15 #461 №3124444 
>>3124353
>Докер для пыхи нужен локально, когда другого варианта нет
Бля, каждый раз проигрываю с таких петушиных голов. Ну если ты не работал никогда, так нахуй ты высираешься пиздежом?

Все твои маняфантазии работают только в мире где ты единственный разработчик. Очевидно что наманяфантазировать ВЗАИМОДЕЙСТВИЕ с остальными сотрудниками ты не можешь, потому что его у тебя никогда и не было.

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

А виртуалка это одновременно и способ хранения конфигурации и способ её доставки в точности куда надо. Это наиболее удобный и быстрый способ решения неизбежных проблем. Неизбежных блядь. Поэтому кукаретическая пиздабольская скотина легчайше палится, когда начинает кукарекать о том чего не знает.
Аноним 16/04/24 Втр 09:39:33 #462 №3124446 
>>3124440
Так а нахуй ты уроки русского прогуливал? В чем проблема писать правильно?
Аноним 16/04/24 Втр 09:50:06 #463 №3124459 
>>3124444
У меня сейчас пыха в кубере вообще, потому что субд в кубере и другие микросервисы в кубере и все это локально будет запускаться и локально деплоится тилтом. А еще я девконтейнерами остоянно пользовался в микросервисном проекте,а другие разрабы локально запускали для удобства.
Твоя доставка конфиграции нужна для манек, которые нихуя не понимают, что делают. Любой разраб сделает по своему на своем компе. Так что твой совет, обязательно запускать пыху через докер, да еще в кастррованом альпине имеет нулевую ценность.
Аноним 16/04/24 Втр 09:54:52 #464 №3124465 
>>3124446
Ты видел, блять, какие там проверки?
Вот тебе пример:
Избыточные определения. В правильно составленном предложении не должно быть больше одного придаточного определения.

Я лингвист или пхп-макака?
Аноним 16/04/24 Втр 09:58:43 #465 №3124475 
>>3124459
>Любой разраб сделает по своему на своем компе
Ага, въебет восьмую версию когда проект под 7.4, подключит пару новых модулей модулей и будет с кайфом писать атрибуты. Я так-то про соли пошутил, а ты внатуре угашенный.
Аноним 16/04/24 Втр 10:00:47 #466 №3124484 
>>3124475
Чтобы это не делать, докер не нужен чтобы пыху запускать. Достаточно понимать что делаешь.
Аноним 16/04/24 Втр 10:00:56 #467 №3124486 
>>3124465
>Я лингвист или пхп-макака?
Ты не умеешь грамотно писать по русски. Шторм тут при чем? Нахуя вообще писать в коде по русски отдельный вопрос. Пиши по английски, он проще.
Аноним 16/04/24 Втр 10:04:04 #468 №3124495 
>>3124484
Слушай, вкатун. О том и было написано, пенек осиновый, что понимать нужно не только тебе. А если бы люди так легко понимали бы друг друга, то ты давно завалил бы свое ебало. Но ты все еще пердишь в тред, смекаешь?
Аноним 16/04/24 Втр 10:05:43 #469 №3124499 
>>3124486
>Шторм тут при чем?
Просто неожиданно, что в редакторе КОДА почему-то такой сильный дроч на правила рандом-нейм языка.

И ладно бы он подчеркивал, если бы я писал "отрибут", а не "атрибут". А он еще и анализирует, нет ли у меня лишних придаточных определений.

Как будто пишу сочинение на ЕГЭ по русскому.
Аноним 16/04/24 Втр 10:09:19 #470 №3124503 
>>3124499
У тебя просто включен плагин, скорее всего этот https://plugins.jetbrains.com/plugin/12175-grazie-lite Он просто берет отсюда https://languagetool.org/ru правила и делает проверку. В шторма можно отключить вообще все, даже проверку самого пхп.
Аноним 16/04/24 Втр 10:15:21 #471 №3124514 
>>3124495
Твоя маня конфигурация не будет работать на задачах у другого разраба. За семь лет своего вкатунства не раз сталкивался, когда кто-то предлает все унифицировать, а потом все нахуй шлют эти докер композы велосипедные. Спрашиваешь такого унификатора, а почему ты так сделал, мне надо очереди у ларки дебажить, ты все в один контейнер запихнул? А ему НИНАДА.

Еще раз. Я не утверждал что контейнеризаци не нужна для разработки. Я сказал что она не обязательна. А еще она палки в колеса ставит. Если контенеризация неизбежда, то придется терпеть, а не кайфовать от удобства.

Тебовать кастрированый альпин для разработки - это и есть вкатунство чистой воды.
Аноним 16/04/24 Втр 10:16:52 #472 №3124517 
В чём сакральный смысл phar.readonly? Не, я не то чтобы против, и не к тому, что я это отключу и у мамы молодец. Но, по сути, всё, что нам гарантирует этот механизм - что phar-файл в ходе исполнения не изменит своё содержимое. Всё. Профита в этом практически нихуя. Если в phar-файле дырявый говнокод, который позволяет хацкеру заставить пыху выполнить свой код, то хацкер всё равно сможет удалить какой-нибудь файл вне пределов phar, например. Или не сможет, потому что ФС пошлёт его нахуй с такими правами, но это уже другой вопрос.
Хуй знает, пойдём от обратного. phar.readonly выключен. Внутри phar-файла дырявый говнокод, так что хацкер заставляет phar-файл модифицировать свои внутренности. Чё дальше? Во-первых, нужно дать по ебалу тому, кто этот дырявый говнокод написал. Во-вторых, если хацкер может заставить пыху внутри phar выполнить что-то лишнее, то он уже может это сделать, ёпт. Что мы потеряли от отключения phar.readonly?
В доках сказано, что всё ради безопасности, и строго наказывают phar.readonly не трогать. А профита особого я не вижу. Если код внутри phar-файла нормальный, то и вопроса нет. Если дырявый, то phar.readonly насрать не помешает.
Аноним 16/04/24 Втр 10:33:08 #473 №3124543 
>>3124514
>Твоя маня конфигурация не будет работать на задачах у другого разраба.
Что блядь значит "моя"? Она одна всего. Если нужно новое расширение в пхп подключить что по твоему делают, наркоман? Конфигурацию меняют блядь. Но меняют ВСЕ. В этом вся суть, конфигурация привязана к коммиту с кодом. Сразу с кодом ты получаешь конфиг под которым он гарантированно работает. И если тебе за чем-то нужно поменять конфигурацию, то ты точно так же меняешь её для всех.

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

Короче, давай сворачивай пиздежь, ты заебал тупостью троллить.
Аноним 16/04/24 Втр 10:49:03 #474 №3124553 
Хочу посчитать количество записей в таблице (Laravel, Eloquent ORM)
Пишу:
User::query()->count().
Мне нужен int, а этот пидорас возвращает мне коллекцию Eloquent.
Как преобразовать в скаляр?
Аноним 16/04/24 Втр 11:06:49 #475 №3124563 
изображение.png
Все, кто плохо себя ведут в этой жизни, будут в следующей писать на битриксе?
Аноним 16/04/24 Втр 11:13:01 #476 №3124569 
>>3124563
Зато можешь говорить людям что работал в касперском
Аноним 16/04/24 Втр 11:14:42 #477 №3124570 
>>3124553
https://laravelplayground.com/#/snippets/332226e1-57a7-4c02-b8c6-1fe95a1aea6f
Аноним 16/04/24 Втр 11:20:40 #478 №3124572 
>>3124517
Если в phar-файле дырявый говнокод, который позволяет хацкеру заставить пыху выполнить свой код, то хацкер всё равно сможет удалить какой-нибудь файл вне пределов phar, например

Ты не понимаешь как выглядит экплуатация этой херни. Когда у кулхацкера есть исполнение кода ему уже нахуй не сдалось ебаться с pharами. phar нужен чтобы чтение файлов с возможностью подставить protocol wrapper превратить в rce. Как phar архив попадёт на систему - другой вопрос, он может попасть тупо upload-ом, или через такую же кривую запись с protocol wrapperом.

Дальше, эта опция не запрещает менять твой phar файл. Точнее это и тоже, только оно сделано чтобы запретить создавать любые phar файлы из пыхи. В целом ты прав, что способ поднасрать найдётся, только RCE придётся делать на гонках, а не тупо записью.
Аноним 16/04/24 Втр 11:21:03 #479 №3124573 
>>3124570
Я пишу
User::count()
Шторм мне пишет, что нет такого метода у Модели.
А код мне выводит, что это экземпляр Collection.
Аноним 16/04/24 Втр 11:35:32 #480 №3124595 
>>3124573
>А код мне выводит, что это экземпляр Collection
https://github.com/illuminate/database/blob/master/Query/Builder.php#L3321
>return (int)
А мне телки из тиндера шлют нудесы, а кореша говорят что я пиздабол, потому что я там не зареган даже.
Аноним 16/04/24 Втр 11:36:13 #481 №3124596 
>>3124553
Он не возвращает коллекцию елоквента. Не пизди
Аноним 16/04/24 Втр 11:56:23 #482 №3124644 
>>3124595
Я тебе по коду говорю.
У меня что в dump() показывает, то тебе и пишу.
Аноним 16/04/24 Втр 12:00:53 #483 №3124654 
>>3124644
А я говорю что у меня хуй до колен. Еще могу рассказать что работаю в гуголе и получаю 300к в наносек. А вот показать не могу, смекаешь?
Аноним 16/04/24 Втр 12:01:53 #484 №3124656 
>>3124654
У меня в коде написано:
$test = User::count();
dump($test).

Что показывает dump:
Illuminate\Database\Eloquent\Collection

Я хуй знает почему так.
Аноним 16/04/24 Втр 12:03:44 #485 №3124661 
>>3124654
Ладно, все.
Приношу извинения.
У меня dump печатался из другого if.
Аноним 16/04/24 Втр 12:07:19 #486 №3124671 
>>3124661
>У меня в коде написано:
>$test = User::count();
>dump($test).
> Ну и нахуя ты пиздишь? Там не так написано.
>Бля буду, так
>Запости код
>А, да. Там не так.
Как называется эта болезнь?
Аноним 16/04/24 Втр 12:09:24 #487 №3124672 
>>3124671
Болезнь называется на сонливую голову пошел писать код.
Я упустил момент, что значение из формы приходит не int, а string (ебучий "0", а не 0!).
Вот и не заметил, что код пошел не по тому if.
Сорри, пацаны, вы правы, а я дурак.
Аноним 16/04/24 Втр 12:10:30 #488 №3124674 
>>3124572
> оно сделано чтобы запретить создавать любые phar файлы из пыхи
Моей проблемой было то, что я как-то упустил этот нюанс. А сейчас уточнил - да, действительно. Параметр phar.readonly можно читать как
0 пыха может и читать и создавать phar
1 (дефолт) пыха может только читать phar
Тогда его существование выглядит более оправданным. Единственное, мой комментарий о безопасности ведь не снимается? То есть, нельзя сказать, что эта фича заметно влияет на безопасность. Скорее, ридонли-режим включают по принципу типа KISS, всё, что тебе не прям нужно, должно быть отключено, ибо мало ли что? Потому что я не вижу больших потенциальных угроз и проблем в факте того, что на этой системе можно собирать phar-файлы. Совсем не eval или какая-нибудь подобная ебанина, с которой легко отстрелить свою ногу. Если код дырявый, то миллион способов насрать и без phar. Если код не дырявый, то phar никак не повлияет на безопасность в негативную сторону. В чём я не прав?
Аноним 16/04/24 Втр 12:11:46 #489 №3124678 
>>3124672
Ты "упустил момент" что если хочешь помощи, то запости блядь код, который "не работает", а не свои фантазии. Каждый раз одно и тоже.
Аноним 16/04/24 Втр 12:19:10 #490 №3124691 
>>3124671
Эта болезнь называется "я у мамы анонимус".
мимоанонимус
Аноним 16/04/24 Втр 13:53:27 #491 №3124782 
17114556934260-b.png
>>3124678
>Каждый раз одно и тоже.
Вкатывальщики ссут свой код показывать.
Каждый вкатывальщик думает, что уважаемые мидлы ИТТ говна в своей жизни не видели и его засрут как это бывает у них в конфочке вайтишников, где они только туториалы видят с тремя строчками кода.
Аноним 16/04/24 Втр 14:09:46 #492 №3124806 
>>3124782
>Вкатывальщики ссут свой код показывать.
Предлагаешь все репы с хеллоу-ворлдами и API генерирующими бугурт-пасты выкладывать публично?
Аноним 16/04/24 Втр 14:48:07 #493 №3124858 
17107724288750-po.webp
>>3124806
>все
Где я написал про все? Ты имбецил?
Когда ты к врачу приходишь с жалобой на боль в жопе, то все жопы мира ему показываешь или только свою - которая захворала?
Аноним 16/04/24 Втр 15:16:18 #494 №3124897 
Kartoshechka (233).png
>>3124858
Я показываю ему ВСЕ свои жопы.
Аноним 16/04/24 Втр 17:35:45 #495 №3125155 
14337570.jpg
>>3124897
Аноним 16/04/24 Втр 17:42:24 #496 №3125173 
1.png
>>3125155
Множество жеп состоящее из одной жопы, тоже описывается квантором Все. Даже больше я, тебе скажу, что в теории множеств любой предикат к элементам пустого мнодества будет истенен, для Всех элементов этого пустого множества. См пикрил

мимо шел
Аноним 16/04/24 Втр 17:54:33 #497 №3125207 
>>3125173
Так это тавтология. Тавтологию, как и твой пост, можно отбросить, потому что она нерелевантна для вывода.
Аноним 16/04/24 Втр 18:20:17 #498 №3125257 
версиябесплатныйгостиныйзадание257.png
>>3125207
Так это яскозительство. Яскозительство как и твой пост можно отбросить, потому что оно вообще не несёт информационной нагрузки.
Аноним 16/04/24 Втр 20:48:36 #499 №3125511 
>>3124674
Да, имхо ты прав, оно закрывает простые вектора эксплуатации, но скорее всего изначальный вектор можно эксплуатировать как-нибудь ещё. Надо поднимать историю появления этого флага, мб в pr будет больше кейсов.
Аноним 17/04/24 Срд 09:35:21 #500 №3125932 
image.png
Вот, допустим я записал скрипт в файл, как мне теперь его вызвать из PHP?
И можно ли перезаписывать текущий файл, который сейчас выполняется?
Аноним 17/04/24 Срд 11:30:14 #501 №3126114 
>>3125932
> как мне теперь его вызвать из PHP?
include 'hello.php'

>можно ли перезаписывать текущий файл
можно
Аноним 18/04/24 Чтв 11:01:49 #502 №3127155 
> Отличный вопрос! Термин "рекурсивный" в названии RecursiveDirectoryIterator может вызвать недоумение, так как сам по себе этот итератор не производит рекурсивного обхода подкаталогов. Однако, его называют "рекурсивным", потому что он предоставляет возможность обрабатывать структуры каталогов, которые потенциально включают вложенные каталоги, и он способен быть использованным в рекурсивном контексте при помощи RecursiveIteratorIterator. Вот почему его название отражает его потенциальное применение, а не непосредственное поведение

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

Меня нигде не наебали?
Аноним 18/04/24 Чтв 12:14:21 #503 №3127266 
>>3127155
Да, тебя наебали. Это классика пхп кала.

Что в RecursiveDirectoryIterator "рекурсивного"? Чем он от обычного итератора отличается? Он имплементирует интерфейс RecursiveIterator. А там че? Там два новых метода: getChildren() и hasChildren(). А кто будет эти методы вызывать? Надо же блядь их вызвать, проверить что там есть куда "рекурсировать". Можно вызвать самому. А можно использовать итератор, который "итерирует по рекурсивным итераторам" и умеет сначала проверять есть ли там вложенность.

А вот какого хуя RecursiveDirectoryIterator имплементируя RecursiveIterator и зная что у него может быть вложенность сам не итерирует по подкаталогам? Потому что пошел нахуй, вот почему. ЗАХОТЕЛИ ТАК. Ага блядь, я наследуюсь не для того чтобы изменить поведение, а чтобы "предоставить возможность изменить поведение". Или не изменить, а отнаследовался чисто по приколу.

И такие "приколы" в этой параше на каждом шагу. Начиная от разного порядка аргументов и заканчивая тем, что массив это на самом деле функция.
Язык - бардак, язык - куча мусора. Фрактал отсоса.
Аноним 18/04/24 Чтв 12:28:40 #504 №3127287 
ну вот почему так блять когда ставишь по мануалу какойто софт обязательно будут лезть ебучие ошибки у всех все так гладко, а у тебя всегда как у долбаеба нихуя не получается.
Аноним 18/04/24 Чтв 12:36:02 #505 №3127295 
>>3127266
Спасибо. В ответе, выходит, ничуть не наебали. А вот разработчики PHP - На-ду-ли! Просто нагло обманули! Просто водят за нос, обманывают! Насрали в язык какой-то неинтуитивной сранью, а ты разбирайся с этим, пытаясь понять, что имели в виду эти реально контуженные обиженные жизнью имбецилы.
Аноним 18/04/24 Чтв 12:48:12 #506 №3127312 
>>3127287
У всех всегда так. Они просто пиздят
Аноним 18/04/24 Чтв 12:49:53 #507 №3127313 
screenshot18-2-543119560.png
>>3127266
>Массив это функция
Аноним 18/04/24 Чтв 12:57:11 #508 №3127320 
151355410100032.jpg
>>3127313
https://3v4l.org/qUD5oJ
Че не смеетесь? Не смешно? Не поняли? ЭТО ПХП!
Аноним 18/04/24 Чтв 13:25:38 #509 №3127370 
>>3127320
Массив - каллабл, потому что каллабл кал. Как из этого следует, что массив это функция?
Аноним 18/04/24 Чтв 13:47:14 #510 №3127410 
>>3127370
https://3v4l.org/pbskB
Аноним 18/04/24 Чтв 14:24:05 #511 №3127478 
Я правильно понимаю, что если один из аргументов метода - битовая маска, то стоит относиться к ней так, будто внутри происходит что-то типа
> $bitmask = $flags | $defaultFlags
Например, сигнатура метода:
> public RecursiveDirectoryIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
Я передаю в качестве $flags значение FilesystemIterator::UNIX_PATHS. Значит, по идее. в функцию вместо FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO передаётся FilesystemIterator::UNIX_PATHS. Но как показали мои наблюдения, фактическое поведение относительно $key и $current не меняется. Из чего следует два предположения:
1. В данном случае, нет никакого технического смысла в том, что $flags имеет значения по умолчанию в сигнатуре. Потому что эти значения совпадают с тем, что указано где-то в теле метода. Нахуя, в таком случае, они дублируются в сигнатуре? У меня одно предположение - чтобы сигнатура метода являлась как бы документацией. Смотришь на сигнатуру и сразу понятно, с чем переданные тобою флаги мерджится будут.
2. Передача 0 в качестве битовой маски - способ как бы сказать "используй значения по умолчанию", возможность пропустить указание аргумента.
Аноним 18/04/24 Чтв 18:12:22 #512 №3127760 
Почему phpstorm не может в нормальное форматирование? Он мне там целые пустые строки оставляет посреди кода
Аноним 18/04/24 Чтв 18:38:40 #513 №3127814 
Screenshot 2024-04-18 182953.png
>>3127760
Базарю - шторм с парой макросов может половину местных вкатунов без работы оставить.
Аноним 18/04/24 Чтв 20:28:54 #514 №3127933 
123.jpg
>>3127814
Осталось только научить его убирать пустые переносы строк, наверное отдельное расширение с ии запилить придется
Аноним 18/04/24 Чтв 20:43:43 #515 №3127952 
Screenshot 2024-04-18 203650.png
Screenshot 2024-04-18 203734.png
LnTc-BEz3W9dz3j9P4ptHQqeBSxupQ9Bqbq29yPQCKle8rEl6HKhOI4kw9EyDGJHFkRqi4qxr-VynLKPZs7THtkianGoh1uGN26bjkJaRhZmVXpPiNOQH216oAT0pyq6nCTWsoqAFTj7gbPQpsgGJNDlLn0o5p80FA4i6MPK51guJdxHKueq5BRfTmwBymZG9zG6DAlGMhgYDLOmhBQLuu1hNDJAJQ627DBIiN4tAXgg66P-Ze8pGft.webp
>>3127933
Аноним 19/04/24 Птн 02:11:08 #516 №3128096 
>>3127952
Пердолить конфиги чтобы иде удалила пустые места в коде

Мда, уж лучше и проще нейронку попросить
Аноним 19/04/24 Птн 02:25:40 #517 №3128098 
>>3127933
Нахуя ты запрос к БД делаешь в шаблоне?
Аноним 19/04/24 Птн 02:49:26 #518 №3128100 
>>3128098
Он настолько восхитился тем, что плагин может пустые строки убрать, что решил, что это будущее, которое заменит ждунов. Какого кода ты от него ожидаешь?
Аноним 19/04/24 Птн 02:51:39 #519 №3128101 
>>3128096
"Дорогая нейронка, вот тебе двести мегабайт нашего с пацанами кода. Ну вообще то он не наш, а нашего работодателя. Но мама учила что нужно делиться. Пусть этот код попадет в датасет и послужит компании микрософт хорошим подспорьем.
В общем, удали пожалуйста в коде пустые места. Где? Нуу... вот тебе список правил, как и где удалять, типа конфиг такой. Заранее спасибо."
Аноним 19/04/24 Птн 05:57:34 #520 №3128118 
>>3127478
Бамп. Или я настолько непонятно сформулировал вопрос?
Аноним 19/04/24 Птн 12:11:31 #521 №3128399 
>>3128098
Чтобы вывести список студентов
Аноним 19/04/24 Птн 12:22:48 #522 №3128423 
>>3128399
Почитай про разделение php и html кода.
Про паттерн MVC.
Аноним 19/04/24 Птн 12:29:07 #523 №3128437 
Бля, пацаны, выручайте.
До последних дней никогда в жизни не видел линукс.
Только вчера создал ВМ, поставил на нее гостевую ОС - lubuntu последней версии.
Короче, задача такая:
написать скрипт php, который выводит Hello, завершается, ждет 15сек и снова сам запускается и так по циклу.
Написал php-скрипт, где просто:
echo 'Hello',
потом установил cron, написал ему задание:
* /usr/bin/php /opt/lampp/htdocs/dasboard/hello.php
Я знаю, что пока что эта хуйня будет выполняться раз в минуту что-либо, но я бы хотел добиться хотя бы этого.
И я хуй знает, работает ли это, вводил команду:
grep CRON /var/log/syslog
Но мне вывод этой команды нихуя не сообщил
Я нихуя не понимаю, выполняется мой скрипт или нет и если да, то куда летит этот Hello.
Такие пироги, найдутся тут те, кто может помочь? Маюсь уже второй день.
Я еще там указывал файл, куда писать (что писать - я хуй знает, потому что этот cron понял поверхностно), но файл только создавался и в него нихуя не писалось.
Аноним 19/04/24 Птн 12:31:15 #524 №3128440 
>>3128437
Нужно, чтобы именно скрипт завершался после вывода Hello.
А потом сам запускался через 15с.
И снова вывод Hello и снова завершение.
И так по кругу.
Аноним 19/04/24 Птн 13:43:44 #525 №3128562 
>>3128437
Каждый раз одно и то же. Рассказал про свой первый раз, про цвет залупы и про то что делаешь хуйню. А по сути дела ничего не рассказал. Ты понимаешь разницу между тем что "нужно сделать" и тем что ты "решил что нужно сделать"?

Откуда ты взял про линукс? Откуда ты взял про крон? Ты буквально следующим постом "уточняешь" задачу и там ниче про линукс и крон нет. Ты пишешь "задача написать скрипт php". Ты этот скрипт вместо с кроном и линуксом будешь отдавать? Или может задача на самом деле "заставить скрипт запускаться раз 15 секунд под линуксом"? Так какого хуя ты именно это не написал?

Короче, похуй что там НА САМОМ ДЕЛЕ от тебя хотят, вот тебе твой крон.
/usr/bin/php /opt/lampp/htdocs/dasboard/hello.php >> /tmp/date.log
sleep 15; /usr/bin/php /opt/lampp/htdocs/dasboard/hello.php >> /tmp/date.log
Первый запуск в первую секунду минуты, второй в пятнадцатую, третий... итд.
>> /tmp/date.log запишет вывод скрипта в нужный файл.
Аноним 19/04/24 Птн 14:00:30 #526 №3128593 
>>3128562
Чувствую себя долбаебом.
Спасибо, анон!
Можешь еще подсказать, как заставить cron не просто выполнять php скрипт, а выполнять его, открывая в браузере?
У меня стоит xampp.
Аноним 19/04/24 Птн 14:06:03 #527 №3128601 
Screenshot 2024-04-19 140447.png
>>3128593
Ну открой файл с логами в браузере, лол.
Аноним 19/04/24 Птн 14:09:28 #528 №3128612 
>>3128601
Ага.
Я хочу так:
Запустить локальный сервер
Запустить крон задачу
И вот чтобы крон переходил по адресу http://localhost/dashboard/hello.php
И так каждые 15с.
Можешь подсказать?
Аноним 19/04/24 Птн 14:23:25 #529 №3128638 
>>3128612
https://stackoverflow.com/questions/6971595/how-to-set-a-cron-job-to-open-a-web-page-in-the-browser-using-crontab
https://askubuntu.com/questions/514167/how-to-start-a-gui-application-from-cron
Бля, я надеюсь это пранк, типа открывающегося сидирома. Не могу имаджинировать ебало того кто будет сидеть за компом.
Аноним 19/04/24 Птн 14:26:18 #530 №3128640 
>>3128612
Я не он и читал жопой, но у тебя какая-то каша в голове. Каким образом крон должен переходить по адресу? Тебе чё надо вообще? Надо, чтобы просто исполнялся PHP-скрипт - одно. Надо, чтобы дёргалась страница на твоём локальном сервере - другое. Это тогда по крону нужно дёргать curl, который будет идти на http://localhost/dashboard/hello.php А если окажется, что тебе курла мало и на самом деле там будет какая-нибудь клаудфлара, то смотри в сторону puppeteer.
Аноним 19/04/24 Птн 14:54:45 #531 №3128658 
>>3128638
>>3128640
Все, всем большое спасибо.
Я добился того, чего хотел.
Аноним 19/04/24 Птн 15:32:02 #532 №3128711 
Как паттерны ООП учить на пхп? Мэтта Зандстра читать?
Аноним 19/04/24 Птн 15:46:27 #533 №3128714 
>>3128423
Я в процедурном делаю
Аноним 19/04/24 Птн 16:36:38 #534 №3128762 
>>3128711
Если знаешь хорошо лару, почитай архитектуру на ней из оп поста. Я сам читал и смотрел дохуя по паттернам и никак не мог въехать нахуя нужна эта отдельная дисциплина. Там же норм поясняются проблемы и как паттерны их решают
Аноним 19/04/24 Птн 16:43:41 #535 №3128765 
>>3128762
А я не знаю хорошо лару, я только чуть чуть голую пыху позадротил на хеллоу ворлды
Аноним 19/04/24 Птн 16:46:28 #536 №3128769 
>>3128711
Подписка на Хекслете, там есть трек по ООП
Аноним 19/04/24 Птн 17:18:10 #537 №3128809 
ПЕРЕКАТ!
ПЕРЕКАТ!
ПЕРЕКАТ!

https://2ch.hk/pr/res/3128808.html
Аноним 19/04/24 Птн 17:25:01 #538 №3128818 
>>3128765
И нахуя ты в паттерны тогда лезешь?
Аноним 19/04/24 Птн 17:37:56 #539 №3128828 
>>3128809
Нахуя ты это делаешь, если у тебя руки из очка? Ты куда-то опаздываешь? В тематике треды до тысячи постов спокойно висят.
Аноним 19/04/24 Птн 17:41:39 #540 №3128831 
>>3128828
Не успел перекатить с хтмлем и цссом в шапке? Этого больше не будет. Смирись
Аноним 19/04/24 Птн 17:44:24 #541 №3128833 
>>3128831
Я ничего никуда не перекатываю. Потому что нахуя? Там до сих пор прошлый тред с нормальной шапкой висит, залупа ты понурая.
Аноним 19/04/24 Птн 17:46:51 #542 №3128838 
>>3128833
Ну так сиди там со своим ?> из 1997 года
Аноним 19/04/24 Птн 17:53:09 #543 №3128850 
>>3128838
А знаешь, пожалуй я его перекачу. И побампаю. Надо же такому охуевшему вафлеру по губам провести. Десять лет сидели с кайфом, щас какое-то чмо залетное будет тут че-то пиздеть.
Аноним 19/04/24 Птн 18:14:35 #544 №3128887 
Клуб изучающих PHP продолжает свою работу.
С нормальной шапкой и сохранением нумерации.
>>3128882 (OP)
>>3128882 (OP)
>>3128882 (OP)
Аноним 19/04/24 Птн 18:21:44 #545 №3128894 
>>3128850
Битрикс тред создай и там сиди лол. В целом мне похуй на самом деле. Делай что хочешь
Аноним 21/04/24 Вск 03:54:04 #546 №3130193 
Многожопые квантовые яскозители.
На вашем этом пхп такое не напишеш.
Аноним 21/04/24 Вск 03:59:52 #547 №3130194 
>>3128118
Ты ебанутый.
Какой-то херью маешься.
comments powered by Disqus

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