Двач.hk не отвечает.
Вы видите копию треда, сохраненную 16 июля в 04:26.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
php.jpg48 Кб, 750x857
PHP #138 3086299 В конец треда | Веб
Уроки по 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/

Остальное обсуждаем в треде
2 3086324
А уроки для Симфони?
3 3086328
>>086324
Сначала уроки на го
4 3086386
>>086299 (OP)
Хороший перекат, надоела каша в шапке
5 3086392
image.png66 Кб, 338x360
6 3086424
image.png1 Кб, 256x50
7 3086425
>>086386
Зато тэг забыл
8 3086701
>>086299 (OP)
Был клуб, а теперь не клуб?
9 3086746
>>086386
>>086299 (OP)
Говно а не перекат, нет ссылки на предыдущий, ссылка на говноролики с ютуба а не учебник от опа анона. В следующий раз сам переекачу
10 3086759
>>086746
Ещё и без тега, через поиск тред не найти
11 3086766
>>086759
Велкам ту зе клаб бади...
12 3086772
>>086746
Сам бы и делал тогда. А сейчас ныть поздно уже.
13 3086776
>>086299 (OP)

>Архитектура сложных веб-приложений. С примерами на Laravel:


Здорово конечно, но на деле ты придешь в компанию работать, а там проект написанный битриксоидом который даже пхп не знает нормально.
14 3086790
>>086772
Как вы работать собрались, если даже перекат не можете нормально оформить?
15 3086807
>>086790
Ну этот только ты ещё собираешься, а я уже не первый год работаю. Нытиков и истеричек, если что, нигде не любят. Чето не нравится - сделай сам, все просто.
16 3086813
>>086807

>а я уже не первый год работаю


Кем работаешь? Касса, доставка, колл-центр?
17 3086875
Аноны что запускает скрипт при каждом обращении к серверу ?
Это сервак запускает скрипт при каждом запросе сам ?
18 3086879
>>086701
теперь параша
19 3086881
>>086776

> проект написанный битриксоидом который даже пхп не знает нормально.


как будто ларавельщики нормально пхп знают
20 3086899
>>086875

>обращении к серверу ?


А что такое "сервер"? Это какая-то программа?
21 3086908
>>086881
Кстати, да.
Лара - полная хуета, а ларавельщики - говноеды и хуесосы. С умением писать хороший код на пхп лара не имеет ничего общего
22 3086934
>>086908
Битрикс-джумла - западло, Магенто на кал похожа, цмс Друпал тоже, Вордпресс пиздятиной вонял, Мулленвега негр ебал. Zend ебланы создавали, Yii в рахе закопали - Макаров пидор был, Laravel моча на кале, Symfony писал дебил.
23 3086942
>>086934

>Yii в рахе закопали - Макаров пидор был


Проорал
Симфони норм, кстати
24 3086949
>>086942
Симфони может и норм, только фиг изучишь. Книг нет, обучающих материалов тоже "кот наплакал". Был сайт с документацией на русском, да и тот недавно закрылся.
25 3087044
>>086949
Да вы заебали со своей документацией на русском. Любой браузер переводит отлично. На ютубе полно уроком по симфони на разных языках - ставишл божественный яндекс браузер и смотришь забугорные видосы на русском языке - переводит очень неблохо
26 3087080
Жидкий перекат
27 3087087
Скуфани 7.0
28 3087096
>>087087
1С-Скуфикс
29 3087165
>>087087
Некоторые ещё на 5.6 сидят
30 3087180
>>087165
5.6 это скуфоскрипт, а Скуфани 7.0
31 3087185
Что про spiral кстати думаете? Взлетит, не взлетит? Вроде модно, молодежно, но чет вакух вобще нет
32 3087190
>>087185
Пыхо велосипед от компании которая роад ранер делает
33 3087211
>>087190
Про роад раннер в курсе, что одни разрабы. Они флексят своим трушным подходом к архитектуре: пээсары, паттерны, отсутствие магии, заявляют, что конкурируют не с симфони или ларой, а со спрингами всякими, лонг ранинг сервак и как следствие возможность писать вебсокеты, микросервисы и пр. Многообещающая хуйня в общем, но сам фреймворк я не тыкал, интересно мнение тех, кто ковырял или писал что-то, стоит вкатываться или мертворожденное говно?
34 3087218
>>087211
Бесмысленный вопрос. Для джуномидла все что отлично от мейнстрима смерти подобно, а тимлид сам способен оценить нужно это в прокте или нет
35 3087492
>>086949
На битрикс тяжелее уроки/инфу найти. Так что симфони в этом плане лучше. Ну и во всём она лучше, кроме количества вакансий и конкуренции и зарплаты.
36 3087495
Плохой перекат. Нелегитимный и антиньюби.
37 3087556
>>087495
>>087080
>>086879
Можешь сидеть в старом треде. Ничего не поменяется
38 3087566
>>086701
все уже изучили и выкатились в го
тред остался чтоб притворятся вкатывающимися и задавать вопрос про mysqli
39 3088106
Ононче, плез поясни за енамы.
Нихуя не отдупляюсь зочем оне. Сакральный смыл их в пыхе - что було, как в других языках? Рили.
40 3088226
>>088106

>что було, как в других языках?


А в других языках они нахуя?
41 3088285
Нахуя задачу про студентов делать в ООП если она спокойно, проще и быстрее делается в процедурном стиле?
42 3088296
>>088285
Для того, чтобы человек получил хотя бы первичное представление о работе с ООП-кодом?
43 3088298
>>088285
Нахуя скатываться в айти, если ты можешь пойти в казино и стать богатым?
44 3088299
>>088296
Может тогда дать примеры с задачами где ООП реально нужно?
45 3088300
>>088285
Потому что забудьте нахуй процедурный стиль, ООП - это база
46 3088303
>>088299
Приходят к тебе данные в контроллер через хттп, эти же данные приходят в друге место через консольную команду и тд их нужно сохранить. Создаешь сервис, в который из разных мест передаешь полученные данные, который их сохраняет. Внимание вопрос: где и как будешь валидировать полученные данные?
47 3088307
>>088303
Усложним для наглядности. Полученные данные нужно ещё куда-то отправить. Другими словами их так же нужно передать во второй, третий, десятый сервисы
48 3088311
>>088300
Хэллоу ворд тоже через опп писать?
49 3088314
>>088285

>делается в процедурном стиле?


А что вообще на пхп сделано в процедурном стиле? Библиотека или фреймворк какой? Может приложение какое-то или сайт?
Пример можно?
50 3088327
>>088314
Делаю сейчас задачу про студентов в процедурном, могу скинуть потом.
51 3088334
>>088327
А нахуй мне твой код? Ты можешь хоть задом наперед писать, это дело твое.

Я имел ввиду что-то широко используемое. То за что бабки платят. Учить-то нужно то за что башляют и вакансиях требуют.
Есть что-то такое в процедурном стиле или нет?
52 3088413
>>088285
Чтобы человек получил представление о том, что такое MVC.
53 3088480
>>088413
А что такое MCV?
Шо такое SCV я знаю, шо такое пробка знаю, дрона знаю. А шо такое MCV не знаю.
54 3088608
>>088480
Игродебил тред перепутал, впрочем ничего нового.
55 3088630
>>088608
А на пхп че игры не делают? А почему? На шарпе вон и игры и сайты делают, а с пхп че не так?
56 3088833
>>088630
Потому что пхп для веб бекенда. А почему на шарпе бекенд не пишут? А, пишут? Ну иди работай бекендером на шарпе, раз пишут
57 3088858
>>088106
Enum (перечисления) в PHP могут быть использованы для создания набора констант с ограниченным количеством допустимых значений. Они позволяют удобно работать с определенным набором значений и обеспечивают ясность кода, делая его более читаемым и поддерживаемым.

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

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

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

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

Хотя необязательно использовать enum в PHP, их применение может значительно улучшить качество кода и облегчить его поддержку в будущем.
58 3088922
>>088311
Ну да. Создаёшь SaySomethingService, а в нем метод sayHello и передаешь ему форму HelloForm, с единственным атрибутом helloTo и валидируешь его как строку. Потом пишешь юнит тесты на форму и метод в сервисе. В основном скрипте, где будешь использовать сервис, будешь передавать ему форму с заранее заданным атрибутом. А ещё нужно автолоадер свой написать не забыть. Это в одной компании на тестовом просили
59 3088935
>>088833
А что не так?
мимо бекендер на шарпе
60 3088956
>>088922

>SaySomethingService


А если не добавлять "Service", то у тебя мать умрет или че?
Ну пиши тогда сразу ClassSaySomethingService. Или ClassSaySomethingPhpService. Сколько еще бесполезной хуйни можно запихать в название?
61 3088961
По го чуть ли не каждый день появляются новые курсы, а по РНР одно старьё 2016 года
62 3088962
>>088961
Вам бы только курсы и подавай. На битриксе между прочим вообще нет нормальных курсов. А те что есть показывают как "натянуть" верстку и как модифицировать уже готовые компоненты. Это буквально процентов 15 от необходимых знаний. Тута надо копаться самому во всём, потом идти в компанию, где тебе будут помогать прокачиваться первое время, иначе ты будешь плохой код писать. Так что не ной и иди вон, в свой сцаный Го или Шарп.
63 3088964
>>088961

>По го греют лохов интенсивно, а пхп настолько кал что лохи на говнокурсы ведутся вяло

64 3088974
>>088961
Что будешь делать через 3 года, когда го умрёт как руби, а все новые курсы будут по mojo?
Screenshot 2024-03-17 093856.png434 Кб, 3662x1864
65 3088986
>>088974
Пчел. Вот график активности языков на гитхабе.
https://tjpalmer.github.io/languish/#y=mean&weights=issues%3D1%26pulls%3D0%26stars%3D1%26soQuestions%3D1&names=go%2Cphp%2Crust%2Ctypescript

Го то может и сдохнет. Туда ему и дорога. Но пхп от этого лучше не станет.
Тренд на дно, причем давно.
66 3089034
>>088956

>А если не добавлять "Service", то у тебя мать умрет или че?


Постфикс Service обозначает, что у тебя там бизнес-логика лежит. В папке с этим сервисом ещё дохрена всяких классов для него может быть - от каких-то кастомных валидаторов, до обертки импорт-файла в объект.
Мы, блядь, не на уроке русского языка, вайтишник. Постфиксы и префиксы обязательны - это чисто техническая фича.
67 3089095
>>089034

>В папке с этим сервисом ещё дохрена всяких классов


Ты типа перепутаешь, и когда тебе надо будет что-то "сказать" ты вместо SaySomething используешь NasratVTruhaniService и обосрешься?
И нахуя ты все запихал в одну папку? И вообще причем здесь папки? Ты КЛАСС называешь. Названия папок и так в неймспейсе есть.

>Постфиксы и префиксы обязательны


Ну так хули ты не пишешь ClassSaySomethingPhpService? Че ты без префикса если он обязателен?
68 3089111
>>088956
Пишу так, как принято в приличном обществе. Ты за своим компом можешь как хочешь называть классы, а у нас стиль
69 3089136
>>089111
ClassSaySomethingPhpServiceAbstractFactoryResult
Достаточно прилично или надо еще что-то уточнить?
70 3089894
>>088303

>Приходят к тебе данные в контроллер через хттп


Ты описываешь как нарисовать сову, задача про студентов, животных это про то как нарисовать кружок.
71 3089900
>>088285

>проще и быстрее делается в процедурном стиле?


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

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

99% объяснений ооп сводится к выдуманным собачкам и студентам.
72 3089970
>>089900

>через большую процедурную лапшу


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

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

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

В этом языке нет нихуя чтобы писать процедурный код. На этом языке никто не пишет процедурный код.
И лапша тут совершенно не причем. Ты и с классами на отличненько насрешь кучу лапши. А потом еще большую кучу когда будешь пытаться написать "нормально".
72 3089970
>>089900

>через большую процедурную лапшу


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

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

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

В этом языке нет нихуя чтобы писать процедурный код. На этом языке никто не пишет процедурный код.
И лапша тут совершенно не причем. Ты и с классами на отличненько насрешь кучу лапши. А потом еще большую кучу когда будешь пытаться написать "нормально".
73 3090074
>>088956
покормлю зеленого
у нас есть ДТО SaySomethin с полями text и target
у нас есть класс который перегоняет из Request в дто
и есть сервис SaySomething
как назовем каждый случай предвкушая твой ответ - есть интерфейс SaySomething и есть две реализации SaySomething - как назовем их, один в STDOUT пишет, другой echo вызывает, а как фабрику которая по условиям создаёт одну из стратегий; а как будем по проекту ориентироваться когда у нас будет 8 реализаций и несколько ассемблеров для этого дела; а когда у нас жирный проект на десяток тысяч классов?
74 3090075
>>088986

> график активности языков на гитхабе


для пыхи написали все что можно представить и написать в рамках ограниченности самого языка, на gовне у всех самописные велосипеды
75 3090085
>>089970

>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)
75 3090085
>>089970

>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)
Screenshot 2024-03-17 233145.png104 Кб, 3346x236
76 3090088
>>090085

>а в Си


А хуй соси.
Си пятьдесят лет и он всех заебал. Ты на раст смотри. Ядро линукса на раст переписывают.
77 3090089
>>090085

>через вызов


через вызов конструктора, а пользуется вызовом
78 3090090
>>090088
а банки, банки перепишем?
79 3090091
>>090090
А ты хули примазываешься? Все перепишут, только не на пхп кал. Это не для вас переписывание. Вам в битрикс.
80 3090102
>>090074
Ты бля с марса прилетел? У тебя есть ФРАЗА, которую надо СКАЗАТЬ. Или ЗАПИСАТЬ на ПЛЕНКУ с помощью МИКРОФОНА.
Http\Request\Talking\Phrase
Http\Controller\Talking\SayPhrase
Domain\Talking\Phrase\JsonPhrase
Domain\Talking\SayPhrase
Domain\Talking\SayJsonPhrase(JsonPhrase $phrase, Microphone $microphone): VoiceTape

По ЧЕЛОВЕЧЕСКИ надо писать. Потому что эту хуйню потом ЧИТАТЬ надо. А ваш ебучий канцелярит шизанутый ни один адвокат не разберет. Понапишет бессмысленной хуйни, а че хотел в итоге сам не понимает.
Чтоб с вами, полуебками, в жизни так разговаривали.
81 3090457
>>090091

>пхп кал


Смысл бегать по тредам и писать что все языки говно кроме Си шарпа ?
82 3090459
>>090457
Если так не делать, придется этот самый сишарп учить, а бегая по тредам, можно весело время тратить на полезное дело...
83 3090534
>>090457

>А на пхп че игры не делают? А почему? На шарпе вон и игры и сайты делают, а с пхп че не так?


>Потому что пхп для веб бекенда. А почему на шарпе бекенд не пишут? А, пишут?


>А что не так? мимо бекендер на шарпе


>Арряяя бегают по тредам и называют пхп говном. Рряяяя.


Произошел лингвистический ПРОРЫВ.
84 3090608
Вот не пойму, зачем использовать фреймвёрк, если всё равно приходится тянуть левые библиотеки. Ладно бы там какие-то специфические для проекта, дак нет же, самые базовые. Хотим мы сделать аутентификацию и авторизацию на Симфони, но сам Симфони почему-то сам не может это сделать и надо тащить какие-то лексики в проект. Что мешало разработчикам Симфони добавить аутентификацию и авторизацию в сам Симфони, чтобы не собирать потом с миру по нитке? Неужели они там не догадались, что практически в любом проекте используется аутентификацию и авторизацию?
85 3090611
Приступаю к решению задачи про файлообменник.
Если я отключю выполнение php-файлов в папке для хранения загруженных файлов, буду хранить загруженные файлы под фейковыми именами и пользователь будет видеть фейковый файловый путь в ссылке, то какие расширения файлов мне следует не позволять загружать на свой сервер кроме .htaccess? Что может быть опасным, если я реализую выше описанные методы?
86 3090624
87 3090645
>>090611
Я правильно понимаю, что если я использую Laravel и у меня настроена корневая папка сервера public, а сам я буду класть загруженные файлы вне папки public, то мне необязательны фейковые имена и фейковые пути?
Потому что 1) Laravel не позволит обратиться к маршруту, которого не существует и 2) Потому что Apache не позволит обратиться к файлам вне public?
88 3090668
>>090645
Зачем тебе вообще давать пользователям прямой доступ к файлам?
Все равно надо проверять права доступа, владельца, сколько можно кочать.

Ну и делай это через фреймворк. Сохраняй названия и метаданные вроде расширения файлов в базе. А сами файлы храни в папке с хешем по содержимому вместо имени. Так дубли автоматически уберутся и можно несколько имен для одного файла хранить. И поиск файла можно легко организовать - разделять по папкам по первым буквам хеша:
/files/78/15/7815696ecbf1c96e6894b779456d330e
89 3090685
>>090668

>проверять права доступа


У меня не будет регистрации, авторизации.
Как я понял из задачи, нужно сделать 3 страницы: страницу загрузки файла, страницу просмотра файла, страницу последних 100 загруженных файлов.
Т.е. можно только загружать файлы и смотреть их, как следствие, зачем тут регистрация? Я пока что не планировал выходить за пределы задачи. Мой минимум - научиться пользоваться фреймворком и выполнить условия задачи.

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


Да, так и планировал.

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


Как вариант рассматрю.

Я пока что думою...Вроде понятно что делать, а с чего браться непонятно. Куча разрозненных условий в стиле "сделать это, сделать то".
90 3090686
>>090685
*Рассмотрю
91 3090688
>>090685

>Мой минимум - научиться пользоваться фреймворком


Так используй тогда либу ларавеля для работы с файлами.
92 3090692
>>090685
Забавно, что это моя вторая крупная задача. По поводу прошлой один анон писал, что я должен был заранее, перед задачей, сесть и подумать какие у меня будут классы и т.д. И я вот сейчас перед второй задачей сижу-думаю. И голова просто пустая. 0. 0 мыслей. Отчасти, мб, потому что приходится иметь дело с фреймворком, а не чистым php.
93 3090698
>>090611

>.htaccess


Это из старой шапки? Там до сих пор апач что-ли? Ебать. Хорошо, что её пидорнули
94 3090700
>>090688

>либу ларавеля


Я даже о такой не слышал.
Я пока что только в общих чертах знаю про контроллеры, виды, шаблоны и прочее, что у них описано в Architecture Concepts и Basics, ну и работу с БД.
Ну, думаю, попробую погуглить про эту либу. Гляну, мб пойму как с ней работать и нужна ли она мне.
95 3090738
>>090700

>Я даже о такой не слышал.


А где ты "слушал"?
https://www.google.com/search?q=ларавел+файлы
https://laravel.su/docs/10.x/filesystem
96 3090759
>>090102

>JsonPhrase


а если я хочу XMLPhrase? а что в твоей структуре переводит из реквеста в JsonPhrase?
97 3090764
>>090738
Да, я понял.
Я и написал, что пока что по основному пробежался в Laravel.
98 3090766
>>090102

>SayPhrase


>SayJsonPhrase


и ещё вопросик - что же такое SayPhrase в твоей структуре, почему оно лежит именно в этом неймспейсе а дальше по твоей же логике - а зачем нам называть класс SayPhrase если в неймспейсе есть слово Phrase, хватит просто Say
99 3090809
>>090759

>а если


>а что


CreateXMLPhrase(Http\Phrase $request): Domain\XMLPhrase
XMLPhrase::from($requestPhrase->toPhraseDTO()): self

>почему оно лежит именно в этом неймспейсе


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

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

>>091094

>где будем держать ид подписчиков


Ну создай класс Subscribers. Модель "говорения" тут причем? Моделируй процесс "подписки" и подписывайся, хуль тебе надо?
103 3091249
>>090698

>апач что-ли


А что щас вместо апачи ? какой тренд ?
104 3091314
>>091249
Нгинкс давно же уже
105 3091399
>>091234

>который может и поэму рассказать и анекдот спиздануть


круто, ты изобрел такое понятие как "интерфейс"

>хуль тебе надо


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

>Ну создай класс Subscribers


ну создал
Domain\Talking\Phrase\Subscribers
Domain\Talking\Phrase\JsonPhrase
Как и где мы будем из Http\Request\Talking\Phrase перегонять данные в Subscribers и JsonPhrase? А как мы будем это передавать в Domain\Talking\SayPhrase? $sayPhrase->hruknut($subscribers, $jsonPhrase), вот так что ли? А если завтра мне нужно будем передать данные про хрюкнуть, пукнуть, свистнуть и еще с десяток других?
106 3091400
>>091234
>>091399
>>091234

>в модели будет универсальный объект Say, который может и поэму рассказать и анекдот спиздануть


А, или ты это собрался все в одном униврсальном классе Say разместить? А буква S тебе о чем-нибудь говорит?
107 3091412
>>090608
не используй, просто ты в итоге напишешь тот же самый фреймворк у меня на проекте из сторонних либ только фреймворк и доктрина, например, из фич фреймворка пользуемся только роутингом
108 3091445
>>091399

>изобрел такое понятие как "интерфейс"


А точно не абстрактный класс?

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


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

>Как и где


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

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


Так это SayPhrase или SubscribeToPhrase?

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


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

>А, или ты это собрался все в одном униврсальном классе Say разместить?


Если Say универсальный, то разместить. Если не универсальный, то не разместить. Вопросы?
109 3091495
>>091445

>точно не абстрактный класс


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

>Создавай репозиторий, создавай проект


вне работы использовать пхп? нет спасибо

>А как и где мы 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к строк кода и идешка сама начинает реализовывать его функционал в виде пукать при индексации?
109 3091495
>>091445

>точно не абстрактный класс


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

>Создавай репозиторий, создавай проект


вне работы использовать пхп? нет спасибо

>А как и где мы 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к строк кода и идешка сама начинает реализовывать его функционал в виде пукать при индексации?
110 3091625
>>091495

>Как мы из Http\Request\Talking\Phrase будем перегонять данные в SayPhrase/SayJsonPhrase


Так же как из $_POST в Http\Request\Talking\Phrase

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


Там же где будет создаваться SayJsonPhrase.

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


Добавлять сущности. Если нужно добавить в модель новое поведение, а этого поведения в модели нет, то его нужно добавить. А если нужное поведение уже есть, то добавлять его не нужно.

>Что именно делает твой универсальный класс Say?


Если он универсальный, то все что нужно. На то он и универсальный.

>А как мы будем расширять его логику?


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

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


Сами классы ничему не учатся. Это ты их учишь что делать. Нахуя ты его всему этому научил?

>А как мне на это написать юнит-тест?


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

>А как мне добавить в него логику, чтобы ничего не сломать?


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

>А как мне по нему ориентироваться, если в нём уже более 5к строк кода


Я бы рекомендовал использовать IDE. В современных IDE навигация и поиск очень помогают ориентации.

Еще вопросы?
Прям чувствую что подбираемся к экзистенциальному. Как написать тест, как добавлять логику, как ничего не сломать. Не стесняйся. Спрашивай сразу: как быть охуенным, как жить заебись, смысл и суть вселенной. Все расскажу.
111 3091763
>>091625

>Я бы рекомендовал использовать IDE


спасибо за предложение, только не очень понятно как ориентироваться по твоему шизофреническому проекту, к тому же не очень понятно чем поможет иде в твоей куче говна на 5к+ строк кода

итого какие выводы делаем из написанного

>Так же как из $_POST в Http\Request\Talking\Phrase


абстрагироваться от сущности реквеста - нинужна

>Там же где будет создаваться SayJsonPhrase


понял, DI тоже не нужно, делаем руками

>Добавлять сущности


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

>Если он универсальный


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


если пользоваться твоим методом наименования то проект крутой, а если не пользоваться - то возможно существование проекта

>Нахуя ты его всему этому научил?


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

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


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


товарищ архитектор, а вы хотя бы раз писали код за деньги? а поддерживали кучу легаси говна?
112 3091790
>>091763

>не очень понятно чем поможет иде в твоей куче говна на 5к+ строк кода


5к строк это маленький проект.
IDE помогает навигации. Например, в шторме при нажатии на ctrl+click на вызов метода перейдешь к его объявлению и наоборот. Ctrl+q вызовет окно с описанием сигнатуры. Также есть поиск всех мест использования класса/метода в проекте. И многое другое.

>будем?


>будем


>выводы: нинужна


Ну если нинужна, то не будем.

>DI тоже не нужно, делаем руками


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

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


Называй вещи своими именами, а не своими именами не называй.

>SayingInterface


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

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


Да.
И в принципе готов доказать это словом и делом. Без "нет спасибо" "голова болит" и "сейчас некогда". Давай хоть сейчас телегу/дискорд - дядя сеньор будет по губам тебе водить.
113 3091799
пхп говно

переубедите
114 3091841
>>091799
переубедите говно

пхп
115 3091850
>>091841
согласен

/thread
116 3092489
Аноны поясните за знания безопасности для вкатуна. Я помню еще давно были всякие sql инъекции, щас я смотрю в ларавел есть встроенные политики. Что то еще надо знать прям отдельно ? Типо могу я случайно что то проебать и чел снесет мне нахуй сайт ?
Если говорить о том же битрексе, там 1с, всякие платежи и т.п.
117 3092818
>>091799
Зачем переубеждать? Пока зумеры, вкатунье и прочий скам так думает, нам же лучше
118 3092904
>>091790

>IDE помогает навигации


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

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


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

>Называй вещи своими именами, а не своими именами не называй.


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

>дядя сеньор


готов признать, что я, потенциально, слабее тебя технически, сомнения сложились из-за твоего чрезвычайного максимализма
119 3092996
>>092904

>Это я понимаю, и активно использую шорт-каты, например, два раза нажать клавишу Shift


Поиск по всему слишком "шумная" команда. Нахуя тебе файлы искать если они так же как классы называются? Ctrl+N поиск класса, но тоже вопрос: откуда тебе знать какое имя искать вообще?
Alt+F7 - вот самый часто используемый поиск. Читаешь код, видишь че-то непонятное - ctrl+Q, если все еще непонятно alt+F7. Сразу видно код класса, где и как его создают, где и как его методы вызывают.

>В предложенной тобой архитектуре


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

>как именно мы будем различать сущности в проекте!


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

>из-за твоего чрезвычайного максимализма


"Ну вы кароч давайте называйте моделируемые вещи так как они в реальности называются, а то непонятно нихуя".
Ебать максималист. Бунтааарь. Парадигму ломает, эджи бой.
изображение.png1,1 Мб, 866x885
120 3093630
Laravel > Symfony
121 3093683
>>093630
Все правильно. Присутствие ларавеля в твоем коде больше чем присутствие симфони. Симфони у себя в проекте вообще хуй найдешь. А вот ларавель это ОГРОМНЫЙ кусок говна в каждом твоем классе.
Поэтому да, LARAVEL > symfony
122 3093823
>>093683
Так в ларавеле же больше магии, соответственно меньше кода, не?
123 3093840
>>093823
Кода меньше в апи платформ, а в ларке кода много
124 3094043
>>093840

>твоем коде


>твоем классе


>апи платформ

125 3094538
У симфони можно доку в пдф где-нибудь скачать?
126 3094551
>>094043
Ну все правильно. Спор же ларка вс симфони. В апи платформ больше магии чем в базовой симфони, но кода писать значительно меньше чем в ларке.
127 3094552
>>094538
Хуйня, там слишком много ссылок на сторонние ресурсы, будешь постоянно меду пдф и браузером свитчится.
IMG20240321111324.jpg82 Кб, 1080x623
128 3094620
Что лучше? Бук или докс? На Ларе пишу уже овер 5 лет, хочу в симфони вкатиться лучше поздно чем никогда
129 3094688
Файл .htaccess не будет работать, если задать ему другое название (не .htaccess)?
Если я разрешаю пользователю загружать .htaccess и сохраняю его на сервере только после переименования, то северу ничего не будет?
130 3094694
>>094688
А если я сохраняю vzomsraki.sh или spizditparol.vba или neminer.exe и сохраняю их на сервере, то серверу ничего не будет?
131 3094698
>>094694
Здесь забава - отвечать не по существу?
132 3094705
Не вдупляю что делать с ООП-шными контроллерами (у меня раньше в качестве контроллера был просто скрипт). Показывать форму и принимать с нее данные нужно разными экшенами?
Вот мне нужно принимать файл от пользователя. Все страницы крутятся вокруг файла. Мне нужен ресурсный контроллер?
133 3094711
>>094705
А файл, загруженный пользователем он gj ndjtve в пхп вообще куда попадает?
134 3094716
>>094711
Я должен проверить файл, подготовить его и сохранить на жесткий диск. Вопроса твоего я не понял.
135 3094724
>>094705
Показывать форму и принимать с неё данные нужно разными экшенами, да.

Ты про ларавель?
Ресурсный контроллер - это контроллер для круда. Можешь создать его и запретить методы, которые не нужны в роутах, а можешь сам создать нужные методы да и всё. Этот не принципиальный вопрос
136 3094725
>>094716
Пользователь заполнил форму, выбрал файл и отправил тебе запрос.
Твой код начал этот запрос обрабатывать. Проанализировал ссылку, выбрал контроллер, метод контроллера. Дальше начинает работать твой код. Так вот файл, отправленный пользователем, он где? Что с ним вообще можно сделать? Его можно передать в какой-то другой контроллер?
137 3094726
>>094688
У апача говна есть ещё всякие .htpasswd, если ты назовешь его так то повлияет (в целом названия каких файлов ищет апач вроде в его конфигах настраивается), если задашь имя, которое конфиг не ищет - не повлияет, но нахуя так делать с кем я блядь сижу? Уж лучше принимай содержимое файла вместо самого файла, валидируй и сохраняй, но и это тоже говно и сам апач говно. Скорее всего ты хуйню какую-то делаешь
138 3094731
>>094725

>Что с ним вообще можно сделать?


Нужно сохранить о нем данные в БД и сохранить сам файл на жёсткий диск. Затем будут 2 страницы: на одной выводится информация об одном, конкретном файле, на второй странице краткая информация о последних 100 загруженных файлах. Ну и рядом с информацией о файле должна быть ссылка, чтобы пользователь мог этот файл скачать.
139 3094736
>>094726

>Скорее всего ты хуйню какую-то делаешь


Да я только учусь.

>принимай содержимое файла вместо самого файла, валидируй и сохраняй


Какие конкретно действия за этими словами стоят? Я вкатун и ничего серьезного не писал, а тем более не работал с файлами в php, поэтому сильно не обессудь.
В любом случае, спасибо за ответ. И тому челу спасибо, который отвечал мне про контроллеры!
140 3094740
>>094724

>Ты про ларавель?


Да

>Проанализировал ссылку, выбрал контроллер, метод контроллера


У меня главная проблема, что я не знаю какие контроллеры и/или экшены должны быть в контроллере.
У меня есть главная страница, которая должна показывать форму.
Получается это экшен index() в контроллере?
Принимать результаты формы должен другой экшен. Не знаю как по стандарту называют такой экшен. Ну вот уже 2 экшена. Один показывает форму, другой принимает. Потом нужно показывать отдельный файл. Это уже третий экшен? Потом нужно показывать список файлов. Это уже 4-ый экшен?

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

Не нужно серьезно воспринимать мою простыню. Я всего лишь вкатун, который ничего не понимает и еще не освоился с понятиями. Пощадите, двачеры.
141 3094743
>>094736

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


Ну ты принимаешь файл. Пусть клиент отправляет тебе просто текст этого файла и название, если надо, а ты создавай файл сам и заполняй его этим текстом. Как проверить файл на валидность, это уже отдельная песня
142 3094745
>>094740
Каких-нибудь требований к тому как называть экшоны нет. Как понятней - так и называй. И да, на каждый запрос - ответ - один экшон
143 3094749
>>094740
Еще один.
Ты не "показываешь форму". Не "вызываешь сервис".
Ты даешь пользователю выполнить конкретное действие в твоей системе. "Сохранить файл", "задать дату рождения", "пернуть".

"Форма" это просто рюшечка, красивая обертка. Нет никаких "результатов формы". Ты предоставляешь АДРЕС РЕСУРСА в виде ссылки. Чтобы этим ресурсом пользоваться никакая форма вообще не нужна. И вообще не важно каким образом пользователь этот адрес получил. Хоть по почте, хоть случайно набрал. Важно что если он отправил по этому адресу правильные данные - твой код эти данные обработал.
144 3094754
>>094743
Хорошо, возьму на заметку. Спасибо.
>>094745
Окей, понял. Спасибо, анон.
145 3094755
>>094749

>результатов формы


Ну да, выразился мб нескладно. Под "результатами формы" имел ввиду данные, которые приходят с формы.
146 3094764
>>094538
А толку? Доктрина, твиг и ещё куча сторонних библиотек - это отдельные ресурсы со своими доками.
147 3094768
У меня еще один вопрос, аноны.
Мне нужно принимать комментарии к файлам.
Правильно хранить комментарии в той же таблице, в которой будет храниться информация о файле или нужна отдельная таблица и потом создавать ключи, чтобы связать таблицы?
148 3094770
>>094768
*Комментарий автора при загрузке файла если что. Там не обсуждение.
149 3094781
>>094770
В той же таблице
150 3094784
151 3094795
>>090608

>Неужели они там не догадались


Догадались. И написали Ларавел. Заодно гайд и доки по нему сделали, и вообще по-челоечески всё оформили. Ларавел - это Симфони здорового человека.
152 3094824
>>094795
Проблемы лары в антипаттернах, что усложняет жизнь при ентерпрайз разработке. С другой стороны всё это можно обойти: отказаться от елоквента, отвязаться от фасадов сервис локаторов при тестировании, валидировать данные не через реквест объект в самом хттп контроллере и пр. Но во первых придётся поебаться, а во вторых это не ларавель вей, что делает его не ентерпрайз фреймворком
153 3094829
>>094824
Но богатая экосистема вокруг лары хороша: джетстрим, ливеваре, реверб и пр
154 3094836
>>092818
кому нам скуфидзе ты же тупой
155 3095023
Сап, пхпшники. Знакомый планирует делать интернет-магазин, и хочет для этого использовать БИТРИКС. Как отговорить человека?
Какие есть вменяемые альтернативные решения, чтобы было сравнимо по стоимости и скорости разработки (точнее совокупной стоимости готового продукта - полностью рабочего интернет-магазина, учитывающего законодательство РФ, с интеграцией с онлайн-кассами, онлайн-оплатой, системой учёта и всеми прочими приблудами)? Делать всё это на ларавеле выйдет сильно дороже и дольше?
156 3095078
>>095023
Скажем так запуститься быстро и дёшево это правда на битриксе, если ему нужно прям то что поставляется из коробки. А вот дальнейшее сопровождение это будет пиздецкая боль, где за небольшую хуйню будут насчитывать 40+ часов. Плюс работа с со скидками тоже пиздц боль, там всё через жопу и если у него интеграция с 1С, то она будет постоянно косячить и 1сники с битриксоидами будут валить друг на друга.
Короче зависит от задачи, если небольшой ассортимент и работа с товарами вручную, то проще взять это говно, поскольку битриксоиды за еду натянут верстку с жиквери.
157 3095097
>>095078
Ассортимент большой, нужна нормальная интеграция с 1С.
158 3095099
>>095023

>Знакомый планирует делать интернет-магазин, и хочет для этого использовать БИТРИКС. Как отговорить человека?


А зачем тратить время на душевнобольных?
Дело тут даже не в битриксе. Нахуя в 2к24 интернет магазин? Какой долбоеб в него вообще полезет? Все кто хочет легко и быстро торговать, торгуют на маркетплейсах, в вк, в телеге в инсте.

Как траффик в эту никому нахуй не нужную парашу нагнать? Вот ты бы сам полез закупаться на хуй пойми каком сайте? Это сегодня что-то из разряда "вот создам щас свою соц сеть и стану миллиардером".
159 3095102
>>095099
Два чая адеквату. Но расширю предъяву до: кому нахуй нужны сайты в принципе, в 2024?
160 3095119
>>095097
Тогда лучше на каком-нибудь ларавеле все сделать, с битриксом наебутся в перспективе

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

Пиздец, курс маркетинга для даунят. В этом треде вообще никого не из под мамкиной сиськи нет? Ни в чем блядь не разбираются.
изображение.png407 Кб, 674x680
162 3095473
>>095127

>Ни в чем блядь не разбираются.


Вижу ты осведомлен и у тебя есть бизнес, приносящий дохуя денег, а таксуешь битриксуешь для души.
Если кабанычи готовы за это платить деньги, то наверное это имеет смысл для них, но мамкин маркетолог, поедая макарошки "красная цена", лучше всех знает как им обустроить их бизнес.
163 3095678
>>095473
Магическое мышление в деле. "Наверное", ну охуеть теперь.
То что в этом треде вообще пишется слово "битрикс" это результат маркетинга. За это заплачены большие бабки. А кто заплатит за маркетинг Drupal?
164 3095692
>>095473
Удвоил.
165 3095712
>>095678
Ну не битрикс, а чего-нибудь другое, я просто что-то близкое к твоему интеллекту написал. Суть в том что кабаныч несёт студии деньги за определённые услуги и ты либо оказываешь ему услугу, либо идёшь нахуй и он закажет у других. А как и для чего ему это надо он лучше знает., твоё дело написать код с нужным ему функционалом.

>Магическое мышление в деле. "Наверное", ну охуеть теперь.


"Наверное" в данном контексте, это для разгона нейронов в твоей голове чтобы ты сам себе задал этот вопрос.
166 3095743
>>095712
Ты так и будешь на разный лад повторять "ну значит так надо", "не нашего ума дело"?
Если ты не видишь причинно-следственную связь - это не значит что её нет.
Вот это и называется тупостью.

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

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

И эта схема умерла. Вся блядь, нет её в 2к24 году. Битрикс сейчас продает не CMS, а CRM. "Студии" в бодишопы и галеры перестраиваются. Никому нахуй не нужен очередной "интернет магазин". Никто не ходит в 2к24 по случайным сайтам. Бля, да обыватель сегодня вообще интернетом через браузер почти не пользуется. Все делается через приложения.
167 3095791
>>095743

>Сайт -> маркетинг -> клиенты


>CMS -> маркетинг -> клиенты


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


Мы сейчас о каких услугах или товарах говорим? О каких объёмах продаж? О какой сфере? А клиенты b2b или b2c? Ожидает заказчик увеличение клиентов или упрощает существующие процессы для тех же b2b клиентов? Нужна ли клиенту интеграция с crm и 1С? И ещё сотни вопросов.
Ты пытаешься блеснуть какой-то частью интеллекта, но забываешь что каждый клиент разный и у каждого разные задачи. Ты чего-то как-то усреднил до примитивной модели рассказываешь про каких-то маркетологов из 1С, они подливают масла в огонь, но скорее это то что клиенты хотят именно битрикс и настаивают на нём не рассматривая другие варианты и это плохо.

>И эта схема умерла. Вся блядь, нет её в 2к24 году. Битрикс сейчас продает не CMS, а CRM. "Студии" в бодишопы и галеры перестраиваются. Никому нахуй не нужен очередной "интернет магазин". Никто не ходит в 2к24 по случайным сайтам. Бля, да обыватель сегодня вообще интернетом через браузер почти не пользуется. Все делается через приложения.


Уровень экспертизы прямо прёт, разумеется у тебя есть статистка, которая подтверждает свои слова. Возможно в сегменте b2c маркетплейсы отжали большую часть рынка, но помимо этого сегмента есть множество других задач
168 3095825
>>095743
Ещё раз двачну адеквата. Даж в моей галере клиенты сайты почти не заказывают, в основном это парсеры, апи для приложух, боты какие-нибудь
169 3095857
Ебать вы тут накидали охуительной аналитики, даже не зная, что за интернет-магазин, в какой сфере, зачем он нужен и есть ли за ним что-то помимо самого интернет-магазина.

>>095119

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


Спасибо, попробую продавить этот вариант.
170 3095884
>>095791

>Мы сейчас о каких услугах или товарах говорим?


Вейк ап джо байден. Ты с кем и о чем до этого разговаривал?
Речь шла про "интернет магазин" в 2024 году от рождества христова. И что эта концепция умерла, по тому что "виртуальной улицы", по которой покупатель должен в этот "интернет магазин" попадать, больше нет. Никто больше не набирает в гугле "Мои пердя купить скорожарку ДЕШЕВО". Твоя скорожарка либо висит на озоне, либо твоя телега рекламится в группе "любители скорожарок".

>>095857

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


Это очередной маркетплейс хуйни, который вы хотите сбацать по прайслистам поставщиков и оптовиков.
Какая там у вас мулька? "Мы будем продавать в конкретной нише"? "Мы будем продавать эксклюзив. Нигде нет, у нас есть." Или может "Вот есть предприятия, мы знаем точно что им надо, вот будем им пихать ГАРАНТИРОВАННО"?
171 3095920
>>095884

> Это очередной маркетплейс хуйни, который вы хотите сбацать по прайслистам поставщиков и оптовиков.


Нет.
172 3095936
>>095884

>Вейк ап джо байден. Ты с кем и о чем до этого разговаривал?


Сам обосрался и теперь меня долбоебом пытаешься выставить лол

>>095884

>Речь шла про "интернет магазин" в 2024 году от рождества христова


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

>"Мои пердя купить скорожарку ДЕШЕВО"


А если эта хуйня не присутствует на маркетплейсе, либо требует дополнительных услуг связанных с транспортировкой и установкой или нужно выставлять счет на юрлицо.
Например те же спилт системы, ты можешь купить на озоне, потом искать васяна который прикрутит и тебя пошлют нахуй с гарантией, потому что монтажник сделал что-то не так, либо найти те кто оказывает услугу в комплексе и будет нести гарантию за всё.
Те же электротовары, тебе нужно подбирать по характеристикам, на маркетплейсах фильтры не всегда сделаны как надо и не всегда есть то что нужно для сборки того шкафа. А подобрать под одну рамку розетки с выключателями целая история. В специализированных магазинах эти вопросы уже решены, плюс там почти всегда приложены всякие сертификаты и пдфки с харатеристиками, они бывают часто нужны тем кто выходит на тендеры.
По сантехнике отдельная история, попробуй набери все причиндалы для пвх труб и сами трубы на маркетплейсе, это даже в леруа проблематично сделать иной раз не говоря о том что они не в каждом регионе есть
Вот тебе 3 случая, плюс там может быть различные интеграции с crm и 1С, свои кабинеты для b2b партнеров чтобы с ними работать в автоматическом режиме и тд и тп.
173 3095945
>>095920
Пчел. "Большой ассортимент", но на нормальных программистов денег нет. Тут не надо гением быть, все и так понятно.
174 3095957
>>095936

>магазины разные и задачи у них разные


А я тебе говорю что покупателям в этих магазинах неоткуда взяться. Органического траффика туда нет. Точка. Если обывателя не устраивают фильтры на озоне он не идет в гугл и не перебирает две страницы выдачи в поисках удобных фильтров. Для него существует ТОЛЬКО ТО ЧТО ОН ВИДИТ.

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

Для этого не нужен никакой "сайт". Он прибыль в этой схеме не приносит. Системы учета нужны, парсеры конкурентов нужны, управление продажами/маркетингом нужно. "Интернет магазин" не нужен.
175 3095964
>>095957
Короче ты выиграл в споре, иди в хуй, блядь с тобой как с нейросетью говоришь
176 3096015
>>095964
"Душный" забыл написать.
Конгресс, немцы какие-то… Голова пухнет. Надо значит надо. Че тут думать.
177 3096038
>>096015

>Конгресс, немцы какие-то… Голова пухнет. Надо значит надо. Че тут думать.


Вот вот, прям как Шариков, только тут вместо взять всё и поделить, взять всё и сравнить с маркетплейсами. Советы кабанчикам космических масштабов как им обустроить бизнес лол.
Покормил
178 3096156
>>095945
Ну ты и Шерлок, как ты раскусил-то меня? Всё в точку.
179 3103004
Посоветуйте годную инфу про валидацию данных
d6jwhqb-2c734c65-fe7e-4e50-83f7-a1c95364811f.jpg19 Кб, 1424x64
181 3104009
Как это сообщение убрать?
182 3104285
183 3104472
>>104009
Или на завод
184 3105974
>>087044
>>086949
какой нахуй рюсик. Вы английский если на техническом уровне не знаете - даже не суйтесь в айти. Это просто полный тупик, если прогер не может доки на английском прочитать. Финиш, блядь, просто финиш.
185 3106155
>>105974
Ебать диван пукнул. Сейчас бы изучать инглиш, в эпоху переводчиков любой хуйни, даже текста на картинках
186 3107145
Посоветуйте нейросеть для начинающего программиста, чтобы подсказывала короткие куски кода
187 3107308
>>105974
Что такое «технический уровень»? Я знаю про шкалу A1—C2.
>>106155
Индус накатил в прод хуйню, переводчик лёг. Что ты будешь делать?
188 3107392
>>107308
Работать не пробовал?
189 3107394
>>107308
"Технический уровень" - это самый распространённый уровень владения английским среди айти-пидорунделей. Когда грамматика и говорение на нуле, но доку прочитать могут + про ШЕДУЛЕР, ПАФ и СЕСУРИТИ попиздеть могут три слова.
190 3107400
>>107394
Точно, у скуфов это ещё называется инженерным английским (чего, блядь?). Вспомнил древний образец такого фрукта, он всерьёз думает, что умеет читать правильно.
191 3107411
>>107400
ну тут ты не прав, у слова два произношения и оба валидные
192 3107412
>>107411
>>107400
>>107392
Да всем похуй, сосите, хохлы
волк-ничем-не-хуже-сеньера-он-так-же-проходит-собес.mp41,3 Мб, mp4,
640x360, 0:13
193 3107439
Объясни, как ты сможешь конкурировать с такими?
194 3107557
>>107411
То, которое приводит скуф с картинки выше, ни разу не правильное, но интеллектуальное большинство повторяет за ним. Так что надо переучивать их.
195 3107617
>>107439
Ты заебал уже срать этой хуйней во всех тредах, шиз ебаный.
196 3107648
>>107439
ccылку на фулл плиз
197 3107650
>>107648
нашёл
198 3107670
>>107557
Ты читать умеешь транскрипции? У слова router ДВА произношения - рутер и роутер, оба правильные. Если ты дальше с этим споришь, то ты еблан
199 3107687
>>107670
Второе произношение на русский правильно передаётся раутер. Это ты транскрипцию не умеешь читать. Тоже учил инженерный английский?
Примеры слов, которые на русский правильно передавать с -оу-: load (highloadхайлоуд), roadmap (роудмэп). Только их как раз тут почему-то почти все читают неправильно. Придётся учить вас.
200 3107754
Сочаны, где прочитать как микросервисы на пи эйч пи делают?
201 3107757
>>107754
Если задаешь такой вопрос, то тебе это не надо.
202 3107974
>>107687
А, твой доёб к раутер/роутер, ок, согл, тут ты прав.
image.png8 Кб, 292x105
203 3108309
Пхпаны, подскажите по Ларавелю, на кой вот эта штука нужна, если используется все равно только .env файлик?

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

Есть ли способ заставить переключаться между базами (например, отдельные базы для разных регионов), меняя поле name в этом самом DB::connection?
204 3108419
>>108309

> на кой вот эта штука нужна


Чтобы выбрать к какой БД подключиться

> если используется все равно только .env файлик?


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

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


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

> Есть ли способ заставить переключаться между базами (например, отдельные базы для разных регионов), меняя поле name в этом самом DB::connection?


Для этого и создано
image.png8 Кб, 153x198
205 3108454
>>108419
То есть вот от этой секции в env можно безболезненно избавиться, чтобы она не перезаписывала конфиг?

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


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

>Для этого и создано


Спасибо за пояснение, попробую!
206 3108507
>>108454

> То есть вот от этой секции в env можно безболезненно избавиться, чтобы она не перезаписывала конфиг?


Ага и хранить пароли там. Потом ещё на гитхаб выкати

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


Вписаны. Скрином пруфай, они там по дефолту стоят
207 3108549
208 3108572
>>108507
Ну что ты сразу набрасываешься, это же клуб изучающих.
А где тогда нормально хранить пароли от баз если их несколько десятков? Как это устроить?
209 3108584
>>108572
В переменных окружения же. На то тебе и .env, который .gitignore игнорит
210 3108590
>>108549
Ничосе он там объясняет. Спасибо большое
211 3108594
>>108584
а, то есть надо насоздавать в енв строчек вида

DB_base01=pw123
DB_base02=pw234

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

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

Такое?
212 3108637
>>108594
Еп. Только переменные окружение принято писать большими буковами. И после того, как напишешь это скорее всего нужно будет кеш конфига скинуть
213 3109295
У меня цикл whileeach проходится по массиву объектов.
Каждому элементу нужно задать id.
id внутри whileeach меняется.
Так вот, эта хуйня (whileeach) просто берет значение id (то ли на последней, то ли на последней итерации) и вставляет, блять, всем.
Как убрать это ебучее поведение? Никакие, блять, передача по ссылке не помогли. Как заставить это говно изменять переменную и класть в объект именно то, чему равна переменная на итерации?
214 3109298
>>109295
ЗАВОД
А
В
О
Д
215 3109305
>>109298
Пошел нахуй, пидор.
216 3109370
217 3109555
Чё по производительности array относительно stdClass? Примерно одинаково, или что-то из этого шустрее и я в каких-то ситуациях должен использовать одно из, если хочу оптимизировать код?

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

Охуенно вы перекатили, конечно, ничего не скажешь
218 3109583
>>086701
ЛГБТ нынче запрещено, поэтому гей-клуб закрыли
219 3109603
>>109555
Как у вас, блядь, такие вопросы вобще возникают?
Или большинство людей сумасшедшие или адекваты перестали совсем в интернет отписываться
220 3109661
>>109603

> уииииииииииии хрю-хрю-хрю

221 3109894
а как можно по условию удалять массива части?

https://3v4l.org/CXiRT
223 3110347
>>109555

>что-то из этого шустрее


Шустрее в чем? Чтобы создать stdClass тебе изначально нужен массив, гений.

>скорость работы


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

>количество потребляемой памяти


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

>>109603

>Или большинство людей сумасшедшие или адекваты перестали совсем в интернет отписываться


Весна. Тут и так не самая умная часть программача сидит, а весной резьбу и у людей покрепче рвет.
224 3110457
>>109900
Ооо, не думал о таком его применении, спасибо!
!6Applef0d2 225 3110783
>>109894
unset($array[$key])
226 3111284
>>110457
Пожалуйста. Кроме array_filter() обрати также внимание на функции array_map(), array_reduce(), array_walk(), array_walk_recursive(). Многие манипуляции над массивами можно свести к применению этих функций в том или ином порядке.
227 3111317
>>109894
>>109900
>>110783
>>111284
Способов куча. Какой из них лучше подходит, зависит от того что в действительности нужно сделать https://3v4l.org/p3I5k Из твоего примера непонятно что конкретно тебе нужно.

В целом числовые ключи вещь ненадежная, в пхп куча функций которые их постоянно переписывают, за этим хуй уследишь. Поэтому нужно сразу мыслить категориями: "первые четыре ЭЛЕМЕНТА", "последние четыре ЭЛЕМЕНТА", а не "где значение КЛЮЧА наверное вот такое". Либо у тебя ассоциативный массив, в котором ключи это не рандомно сгенерированные циферки.
228 3111406
Сап пхпач, на связи нюфак самоучка. Пишу небольшой таск менеджер, с обвесами в виде админки и системы юзеров, на чистом php, без ООП. По началу всё было заебись, но сейчас проект разросся до кучи папок и файлов, которые надо как то структурировать и привести к единому оформлению, в связи с чем решил воспользоваться MVC паттерном. Но проблема в том, что в нем как раз используется ООП, да и сама структура мне не понятна. Пробовал почитать мануалы со страниц гугла, но ясности они особо не дали. Вообще как вы считаете, нужно ли заморачиваться с рефакторингом или не стоит и можно просто организовать всё по папкам и подпапкам и забить хуй? Если всё таки нужно, то посоветуйте годные книги или гайды, чтобы углубиться в это и начать понимать.
229 3111424
>>111406
Почему сразу не начал пилить в ООП и MVC?
230 3111465
>>111424
Не шарю в них. Да и думал, что проект будет маленький, чисто добавить и удалить задачу, как ту ду лист, а потом то одно захотелось прикрутить, то другое, в итоге стало трудно разобрать где что лежит.
231 3111499
>>111465

>трудно разобрать где что лежит


проблемы с памятью?
232 3111504
>>111406

>на чистом php, без ООП


А это как? Дай гитхаб.
Я такой хуйни литературно за десять лет ни разу не видел. У тебя типа файлы с десятками функций или че? А как ты эти файлы подгружаешь? Типа инклудишь каждый раз как функцию из файла используешь или все сразу как-то? А с данными че? Ты типа гоняешь просто массивы по этим функциям?
233 3111508
>>111504
Может как в пхп 3 писали: без без единой точки входа. Пхп файл == страница, содержит хтмл, логику на пхп и сиквель запросы к субд.
234 3111513
>>111508
чем не микросервисная архитектура... только каждый микосервис рендерит хтмл
235 3111516
>>111508
Я такую хуйню не застал. Я когда учился уже пятая версия вышла. Я сразу на классах писал.

А как делать то что "не рендерит"? Типа роутинг тот же? Роутер получается должен нужный файл инклудить или как?
236 3111518
>>111513
Главное говолангерам не показывать, а то тоже начнут так писать.
237 3111520
>>111516
Роутера нет, роутит браузер с одного пхп файла на другой
238 3111522
>>111513
Ты будешь сильно удивлен, но в рест апи именно хтмл как формат по умолчанию упоминается.
239 3111527
>>111520
То есть в каждом файле ВЕСЬ код ВСЕГО? Это даже на процедурный подход не похоже. Это какой-то новый уровень говнокода.
240 3111538
>>111527
Почему всего? В файле post.php редактирование и просмотр поста, в файле list.php список постов и т. д. Общую логику тебе ничто не мешает вынести в отдельные либы.
241 3111542
>>111538
Так я об этом и спрашивал. Как это устроено? Списки функций? Как с неймингом быть? Что эти функции принимают? Как хранятся переменные и конфиги?
242 3111545
>>111542
Я не знаю как тот анон сделал. В микросервисах тоже зачастую один и тот же код дублируют от сервиса к сервису и еще для этого монорепы создают. Только в современных микросервисах фронт контроллер все же есть.
243 3111553
>>111545
Бля, мне не нужна лекция по микросервисам, меня от этого говна уже блевать тянет.

Я хотел узнать как работает то чего я никогда не видел.
Этот как рабочее авто из пивных банок, или вертолет из жигулей. Настолько всрато, что вызывает восхищение и удивление: как оно вообще работает? Оно ведь по законам физики не должно.
244 3111557
>>111406
MVC без ООП реализуется легко
245 3111558
>>111557

>легко


Кода и примеров на гитхабе конечно же не будет.
246 3111562
>>111558
Любой пет проект на голанге?
247 3111564
>>111499
С оформлением.

>>111504

>А это как? Дай гитхаб.


Всм как? Просто код без классов и методов. Гитхаб не дам, там деанон.

> У тебя типа файлы с десятками функций или че?


Да. А должен быть отдельный файл под каждую функцию?

>А как ты эти файлы подгружаешь?


>Типа инклудишь каждый раз как функцию из файла используешь или все сразу как-то?


Через include каждый файл в свою страницу или часть страницы.

>А с данными че? Ты типа гоняешь просто массивы по этим функциям?


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

>>111557
Так легко, что ты даже не написал как.
248 3111565
>>111562
Давай выкидывай нахуй из своего голанга структуры, модули и систему типов. Тогда и пизди. Легко ему, вообще охуеть.
249 3111573
>>111565
Модули и структуры это не ооп это модульная парадигма https://ru.wikipedia.org/wiki/Модульное_программирование
250 3111575
>>111564
И хули? В голанге ты это используешь вместо ооп, а в пхп этого всего нет, долбоебина. Ты в каком треде пишешь, чучело?
251 3111583
>>111564
Ну так если тебе действительно нужна помощь, то создавай новый акк, копируй код и кидай сюда с дискордом или телегой. Или ты думал тебе помощь по почерку оказывать будут? Без всего этого тебе так и отпишут "нормально делай - нормально будет".
А за ооп можешь Бертрана Мейера почитать
https://en.wikipedia.org/wiki/Object-Oriented_Software_Construction
https://vk.com/doc64104152_423568378?hash=xitHQivyObzyqbzPbHtgU7yYCrBAAfP4bK2x4EVObZs
семьсот страниц чистого кайфа - врачи вместо снотворного прописывают.
252 3111899
>>111575
Что это, ебанушка? Ты стекломоя объебался что ли, не можешь понять кому отвечаешь.
253 3112073
>>111899
Бес попутал. Я за здоровьем слежу - как настоящий пхп программист пью только бояру. Не в глазах беда, диавол за руку дернул.
254 3112809
Так, а мне репозиторий должен возвращать дтошки или сервис должен возвращать дтошки использую репозиторий?
255 3112822
>>112809
Должна быть абстрактная фабрика синглтонов с фабричными методами возвращающими репозитории для дтошек
256 3112827
>>112822
Поперхнулся малиновым пориджем
257 3112829
Я понял. Пыхе нужен ребрендинг. Объективно, php - лучший ЯП на текущий момент, но этот всратый слон с "php" на пузе, прямиком из девяностых, всё портит. Нужно что-то красивое, стилевое, чтоб пориджам нравилось. Тогда и инфоцыгане подтянутся
image.png66 Кб, 800x566
259 3112849
Screenshot 2024-04-05 161416.png1 Кб, 178x40
260 3112878
>>112829
Я просто хочу разобраться, а нахуя в самом лучшем языке постоянно писать пикрелейтед залупу?
261 3112880
>>112878
потому что язык - шаблонизатор
262 3112899
>>112880
Ну так и писались бы эти закорючки ебаные когда пишешь ШАБЛОН. Нахуй они везде?
263 3112905
>>112878
Такой ответ устроит?
264 3112917
>>112905
Бля, точно. Про $this ебучий я и забыл. Про знак доллара уебанский тоже.
265 3112930
>>112917
А про стрелочку? Про стрелочку помнишь?
266 3113281
>>112829

>Объективно, php - лучший ЯП на текущий момент


Это ты смешно пошутил, назвав расширение для HTML лучшим языком программирования.
267 3113285
>>113281
Ты с джаваскриптом перепутал
268 3113287
>>112917
Сейчас бы пиздеть на фичу, которая делает пых, самым легкочитаемым яп
269 3113324
>>113285
Почему любой код PHP начинается с HTML-тега?
270 3113325
Вообще-то на PHP написано 80% домашних страничек, гостевых книг и форумов из нулевых инторнета, как вы можете на него гнать!
271 3113340
>>113324
Сейчас бы в 2024 веке не знать хтмл тегов
272 3113342
>>113325
Не. На пыхе написано 80% интернета и какая-то часть это домашние странички из нулевых. Что поделать, лучше языка пока не придумали, приходится на топ 1 писать, не лапшу же на го говнокодить
273 3113375
>>113342
Я просто хочу разобраться, а сколько DNS серверов написано на пыхе? Да и вообще, работу каких сегментов сети интернет обеспечивает пхп? А то тут пишут что это пхп - просто шаблончики с хтмл страничками, ето так?
274 3113601
>>113324
Пхп код начинается с пхп треда
275 3113607
>>113601
Границы пхп нигде не заканчиваются...
276 3113612
Что по битриксу почитать/посмотреть для вкатуна ? Битрикс 1С или есть еще какие то другие ? Вдруг другой работы не будет.
277 3113621
>>113612

>Вдруг другой работы не будет.


Лучше бомжевать чем работать битриксойдом
278 3113651
>>112899
Ты тупой? Язык и есть шаблонизатор, все пхп файлы и есть файлы шаблона. В старину и в битриксе обращались напрямую к файлу .php где был шаблон страницы. Это сейчас на нём пытаются писать на фреймворках полноценные приложения с жизненным циклом в один реквест di и прочими закосами под спринг
279 3113660
>>112930
Это говно, почему вообще до такого додумались? Как так получилось что конкатенация через точку из-за чего стало невозможным применить её в другом месте и пошли костыли со стрелками
280 3113713
>>113660
Таксист, спок. Стрелочка из сишки.
281 3113720
282 3113730
>>113651
Как-то быстро перешли от "Объективно лучший ЯП" к "старое говно, которое мешает писать нормальный код".

>>113713
>>113720
Ну если из ПЕРЛА и из древней хуйни, которой пятьдесят лет, то ладно. Не жили богато, нехуй начинать.
283 3113755
>>113730
Ну как бы так. Когда Расмус Ледорф делал пыху то
1) Крутыми языками считались сишка и перл, а питухон и руби были магргинальными язычками, которые только только появились. Ты бы не стал сейчас писать коммерческий софт на nim или zig. Вот и Расмус Ледорф за основу взял языки на которых он писал в то время.
2) Пыха изначально не планировалась как язык, подобно питону. Делали быстрый шаблонизатор, с килерфичей - визуальной отладкой ошибок прямо на странице, а не логированием в файлы.
284 3113766
>>113755
Расмус Лердорф* точнее

хуй поймешь как этих скандинавов правильно звать
285 3113774
>>113660
Так через стрелку лучше же. Более наглядно и код лучше читается. Одно из удачнейших решений, наряду с долларом
286 3113777
>>113375
Пхп - для веб приложений практически любой сложности. В тех, редких случаях, когда он с чемто справляется похуже, используют подпорки на го
quote-i-m-not-a-real-programmer-i-throw-together-things-until-it-works-then-i-move-on-the-rasmus-lerdorf-82-6-0602.jpg79 Кб, 850x400
287 3113778
>>113755
Ну дык. Было - сплыло.
Шаблоны спиздили себе жс макаки. Апач пиздой накрылся, мускуль об стену уебали. Теперь пхп ходит за джавой и подбирает кал пятилетней давности. При том сама джава считается устаревшим говном мамонта. Получается пхп говно говна?

>>113774
Знак евро объективно лучше доллара > $
288 3113779
>>113651
Не пытаются, а успешно пишут. В топе популярных веб фреймворков, пхпшные уверенно лидируют
Screenshot 2024-03-17 093856.png434 Кб, 3662x1864
289 3113782
>>113779
Ты хотел сказать "писали"? Пикрелейтед активность языка на гитхабе. Пхп ныряет прямо в могилу. Нихуя нового на нем написано не будет уже.
290 3113783
>>113782

>тайпскрипт


Это не срез по бекенду. Нахуя ты это принёс?
291 3113784
>>113777

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


А с чем пхп справляется лучше джавы или шарпа? У пхп макак так-то всегда только одно преимущество было - ДЕШЕВИЗНА.
292 3113787
>>113784
Скорость разработки продукта того же качества, например. Более низкий порог входа
Screenshot 2024-02-04 115556.png92 Кб, 1734x1246
293 3113788
>>113783
У меня для тебя плохие новости https://bun.sh/
294 3113792
>>113787

>Более низкий порог входа


>того же качества


Пчел. Нам-то не гони.
Мы тута в пхп треде сидим, говно нюхаем. То валидаторы на трейтах с магией, то бирикс скуфы на массивах, то целые сайты на иклудах.
295 3113796
>>113788
Также как и на пыхе. А если я сервак ребутну после того как запущу то, что на пыхе? Ирл почти любой сервак запускается командой: docker compose up -d
296 3113798
>>113792
Так пхп это 80% рынка. Ясен хуй, что в таком огромном озере дохуя говна
297 3113799
>>113796
Запущу то, что на пике
Фикс
298 3113802
>>113788
Как это относится к тому, что ты с гитхаба притащил? Давай тогда стату по юзанию бана с тайпскриптом vs пыха. Покекаем всем тредом
299 3113805
>>113802

>успешно пишут


>Вот статистика что не пишут


>врети неправильна


>Все правильно


>А зато...


Обтекай. Нового аналога симфони или ларавеля на пхп не будет никогда.
Можешь переходить к стадии "ИНУЖНО".
300 3113806
>>113798
Так "того же качества" или "дохуя говна"?
301 3113823
>>113805
От чего обтекать? От того, что ты пукнул, а на пруфах обосрался?
302 3113825
>>113806
Того же качества определённый процент и определённый процент говна. Дурачка включить решил?
303 3113834
>>113823
Пчел. Это интерактивный график. Ты его как не крути, а пхп в жопе. Никто на нем писать либы не хочет. https://tjpalmer.github.io/languish/

>>113825
Это ты решил включить дурачка. Порог входа ниже, а качество кода такое же. Динамическая типизация качество повышает и знаки доллара, не иначе.
304 3114012
>>112829
Двачую. Я когда шапку делал в прошлых тредах немного приуныл пока искал подходящий логотип с слоном.
305 3114545
>>113713

>сишки


Говно дедов и байтослесарей, никто на нём в здравом уме писать не будет в 2024, кроме узкоспециализированной хуйни типа ОС и прошивок где нужно экономить каждый байтик памяти.

>>113720

>А конкатинация строк точкой из перла


Тогда весь замысел понятен, пыха по сути выросла из перла
306 3114548
>>113779
Ну круто, формы мы вам перезвоним на ларавеле должен же кто-то писать
307 3114649
Как сделать так, чтобы на одной странице было 2 формы и при нажатии одной единственной кнопки "отправить", данные с двух форм отправлялись на свои разные адреса? В контексте ларавель.
308 3114664
>>114649
Почему не отправлять данные из одной формы на один адрес? Визуально разделить форму fieldset'ами, а в контроллере данные из реквества отправлять в соответствующие сервисы?
309 3114697
>>114664

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


У меня такая ситуация:
Пользователь выбирает файл для загрузки на сервер и по желанию может написать комментарий к файлу.
Сейчас и файл, и комментарий летят на один адрес и обрабатываются одним экшеном, комментарий сохраняется в ту же таблицу, в которой хранятся метаданные файла.
Но в будущем я планирую добавить древовидные комментарии.
И вот тут, наверное, нужен другой контроллер, который будет этим заниматься. Какой-нибудь, например, CommentController. Который будет добавлять новые комментарии и показывать. И раз уж у меня будет отдельный контроллер для комментов, то зачем оставлять добавление комментария в том контроллере, который принимает файлы? Вот я и думаю как сделать так, чтобы файлы сохранял на диск и в БД один контроллер, а комментарий к файлу другой контроллер. Но при этом у формы был бы один адрес, по которому она показывалась, одна кнопка submit. Чтобы пользователь если не ввел ничего в поле комментария, то все равно бы отправлялись обе формы и обрабатывались разными контроллерами.
310 3114699
>>114664
Надеюсь ты меня понял.
Мне просто не нравится, что область, которую условно можно назвать "комментарии" будет в разных местах в коде - в контроллере FileController (сохраняет содержимое файла и добавляет метаданные файла в БД) и в контроллере CommentController.
Раз уж работаю с комментариями, то логично работать с ними в одном месте. И даже если это комментарий, который добавляется при загрузке файла, то, наверное стоит поместить его не в FileController, а в CommentController.
311 3114701
>>114664
Я пока еще не начал реализовывать у себя древовидные комментарии. Но сейчас представляю так:
пользователь загружает файл, добавляет комментарий (если хочет).
Комментарий к файлу, который добавил пользователь при его загрузке - это начало обсуждения. Любой желающий может ответить на этот комментарий и начнется цепочку комментариев.
312 3114887
>>114649
>>114697
>>114699
>>114701
Пчел, ты понимаешь разницу между:
Создать файл и прокомментировать содержимое.
И
Ответить на комментарий?

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

Пиздец, ребенок, который никогда не видел RGHost пытается на ощупь его воссоздать.
313 3115302
>>114697
У тебя отдельно есть сущность файла с атрибутами: название; описание(комментарий); путь, по которому он хранится; владелец, возможно что-то еще.
И отдельно сущность комментария с атрибутами: текст, владелец, родительский комментарий.
Поэтому у тебя отдельно контроллер для файлов и отдельно для комментариев.
314 3115591
>>114887

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


Нет и нет.
>>115302
Ну окей, я тебя понял. Спасибо за ответ.
315 3115601
>>115302
У меня есть еще один смутный момент.
FileController отдает страницу, на которой отображается информация о конкретном файле.
Но на этой же страницы, наверное, внизу должна быть форма для комментариев и сами комментарии. А раз у меня будет отдельный контроллер под комментарии, то как я буду это реализовать...Т.е. экшен FileController достает из БД метаданные файла, подключает Вид с переданными данными, а как теперь туда присобачить контроллер для комментариев, чтобы он вытаскивал комментарии из БД?

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

И я не знаю как контроллеры могут взаимодействовать друг с другом...
316 3115620
>>115601
У тебя файл связан с комментариями отношением один ко многим. Соответственно orm позволяет тебе получить коллекцию связанных с файлом комментариев, обратившись к соответсвующему атрибуту файла. Изучай документацию по отношениям. И вообще изучай документацию.

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

Контроллеры нужны для того, чтобы собственно держать управление взаимодействием разных частей приложения в одном месте. В идеале сами по себе они вообще ничего не делают.
319 3115678
>>115665
Ну ладно, в любом случае спасибо тебе, анон, за человеческий ответ.
IMG20240408074645.jpg530 Кб, 1080x1325
320 3116059
Битриксоиды, признавайтесь, кто это сделал?
321 3116071
>>116059

>/home/bitrix/www/local/templates/webu/components/bitrix/news/practicum/bitrix/news.detail/.default/res


Бля, мне хуево.
322 3116167
>>113755

>Крутые языки


Ребенок, ты траллить нпс пытаешься что ли? Лучше старайся.
323 3116399
>>116167
Дед, с чем ты не согласен?
324 3116403
Си лучший из компилируемых языков, а перл - лучший из интерпретируемых. Лисп для престарелых инцелов.
17108554530830-news.png395 Кб, 1920x942
325 3116436
>>116399
Знай, малолетний дебил, что самый крутой язык это язык твоей мамки, это тебе любой из треда подтвердит.
326 3116439
>>116436
Дед, уроки сделал?
327 3116548
Укатываюсь в Spiral Framework. Теперь буду его форсить и обоссывать ларавель и симфони. Будьте в курсе
328 3116550
>>116548
Ну и дебс. Теперь будешь все руками делать, когда лариане и симфонисты готовые решения накатывают и скафолдингом пукают.
329 3116551
>>116550
Да мне похуй. Я хочу работать с современными йобами типа grpc, микросервисов и нормально тестировать приложение без ларавельских сервис локаторов, фасадов и актив рекордов. А на ларе я уже без недели 8 лет хуярю. Нужно развиваца
330 3116553
>>116551
за 8 лет пыхи надо развиваться в го или жабу, учить сети, кубер, глубины субд, а не эту хуиту.
331 3116567
>>116553
Го может и стоит глянуть, как подпорку для пыха. Может какнить видосов на ютубе накачу, хоть ознакомиться что там к чему. Джавы рот ебал. По спиралю взялся доку читать, покамест доставляет, глянем, что дальше будет. Хуйово, что её никто не знает, даж в гугле хуй че нагуглить, а про итт тред и говорить смысла нет
332 3116571
>>116403

>перл - лучший из интерпретируемых


Из мертвых.
333 3116574
>>116567
Ты не понял. Ты микропенисы с куберами и жрпс в пыхе не изучишь. Надо сначало идти туда где эти проблемы правильно решаются, а потом уже это в пыху тащить. Это как бы Тейлор Отвель никогда рельсы не щупал и не писал на них, но ларку с них стал копировать. Ты просто не поймешь проблем связанных с мипросервисми или IaC, если будешь все время вокруг пыхи крутится. Потому что большинсто пыхарей скажет - А НАМ НИНАДА, У НАС И ТАК ВСЕ РАБОТАИТ и будут по-своему правы. Вот к примеру API кубера. Понадобится тебе в кубере ингрес кофигурировать динамически. Будешь качать говнолибу от Васяна на пыхе или возьмешь широко используемые библиотеки на питоне или голанге? Или еще лучше пример, где ты возьмешь в пыхе хорошие примеры того как накатывать миграции в кубере, как это правильно делается без костылей?
334 3116665
>>116567

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


Это так забавно выглядит, ведь ГО это буквально джава на минималках. Это как из джавы выкинуть даже те немногие удобства что там есть и сидеть хуярить классах с публичными полями, статическими функциями, без обработки исключений (привет if err != nil), и вручную ресайзить массивы копированием (привет append). Такого говнокода на джаве даже в кошмарах индусов нет, а люди прямо ГОРДЯТСЯ что так пишут. А почему?

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

мимо
336 3116670
>>116668
Некоторым людям срамно с такой технологией как жава работать.

фикс
337 3116673
>>116668

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


нет, джава развивается сообществом через JCP
image.png178 Кб, 807x310
338 3116691
>>116665

>Это так забавно выглядит, ведь ГО это буквально джава на минималках

339 3116706
>>116665

>err != nil


Это старая холиварная тема, лол. Мне самому это не нравится, но сторонники подобных проверок считают ексепшены антипатерном. И не без основательно, ведь тебе приходится прикидывать эту хуйню из слоя в слой и пр
340 3116707
>>116691

>УРЕЕЕЕТИ

341 3117271
>>086299 (OP)
где работу искать сука, три вакансии нахуй на линкедоне
походу только в рф на нём и пишут
17122597972590.mp41,4 Мб, mp4,
1280x720, 0:05
342 3117275
>>117271
ХЭЙ! Петухи-свидетели неумирания. Объясните человеку, что его вордпресс кал до смерти копейкой обеспечит.
343 3117600
Расскажите манячке-ньюфане как работать с протоколами в php.
Я очень смутно представляю что такое протокол. Ну, совокупность правил...В моем представлении. Пока знакомлюсь с ними и они ощущаются так, что я не понимаю "а как их трогать-то?".
Как-то вообще с протоколами можно что-то делать?
Что именно?
В php это вообще возможно?
И вообще зачем это нужно?
Я ничего серьезного не писал, я вообще не понимаю зачем мне работать с протоколами, но нужно же учиться новому.
344 3117606
>>117600
Расскажите манячке-ньюфане как работать с дыраколами в php.
Я очень смутно представляю что такое дырокол. Ну, совокупность железяк...В моем представлении. Пока знакомлюсь с ними и они ощущаются так, что я не понимаю "а как их трогать-то?".
Как-то вообще с дыроколами можно что-то делать?
Что именно?
В php это вообще возможно?
И вообще зачем это нужно?
Я ничего серьезного не писал, я вообще не понимаю зачем мне работать с дыроколами, но нужно же учиться новому.
345 3117608
>>117606
А нормальный ответ будет?
У тебя либо желчь к вкатунам, либо сам ничего не знаешь, а писать чешутся руки.
347 3117623
>>117614
Спасибо большое, анон.
url.webp9 Кб, 343x480
348 3117673
>>117275
Все умерло, пиздуй на завод, чмоха.
Да ну нахуй.mp4150 Кб, mp4,
630x360, 0:01
349 3117690
>>117673
Но есть жи графики. Есть жи статистика что 80% говна в интернете написано на пхп! Язык жи развивается, вон атрибуты как в джаве сделали почти.
17126231221580-news.jpg849 Кб, 1024x1024
350 3117774
>>117690
На завод гайки точить. Все графики врут.
351 3117906
>>117774
блять, на заводе в рахе так-то ща больше платят чем пых-макакам
352 3118106
>>117906
Ну и отлично, главное чтобы на пожрать и хату хватало, на остальное как то похуй. На заводе не все работать могут, вот меня например трясёт от людей а таблетки я пить не хочу
17055966597620-news.png811 Кб, 606x804
353 3118183
>>117906
Все так. Что ты забыл в треде если токарный станок тебя давно ждет?
354 3118275
>>118183
Это битриксрвый пхп макарий, который работает за еду. Посмотрел пару инфоциганских видосов за современные тренды и теперь бегает по всей доске со своим го
355 3118278
>>113621
Уже бомжевал, теоретик?
356 3118392
Аноны, есть у кого ссылки на хороший мануал по основам линукс? Скиньте пожалуйста.
357 3118549
Пацаны, о каких типах архитектуры стоит знать джуну из этого списка:
- Монолитная архитектура;
- Микросервисная архитектура;
- Сервис-ориентированная архитектура (SOA);
- Бессерверная архитектура (Serverless-архитектура);
- Service Mesh;
- Twelve-Factor Apps («12-факторное приложение»);
- Гексагональная архитектура;
- Чистая архитектура.

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

А остальное просто совсем разные вещи. Это как написать: "пацаны вот есть архитектура стула, архитектра залупы и архитектура танца, что из этого устарело?"
359 3118597
>>118549
Зачем джуну углубленно знать архитектуру? Его в самом деле посадят что-нибудь проектировать, а не перекладывать джейсоны?
360 3118628
>>118597
Ну представление-то иметь надо.
С чего-то же придется расти?
Ну и наверное плюсик к кандидату, что он такой умный-заумный, знает такие умные слова как микросервисная архитектура...
361 3118631
>>118549

>из этого списка:


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

>в профессиональном мире


В современной разработке профессионалов очень мало. Мейнстрим почти полностью состоит из говна и движется все глубже в говно. Впрочем, так происходит не только в разработке.
362 3118636
От балды кинул отклик на вакансию, где искали джуна.
Мне написали на следующий день: "Здравствуйте, ваш отклик нас заинтересовал" (я им описал какие проекты делал), вот вам тестовое задание".

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

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

Причем самое смешное эта вакансия висит где-то дней 20. И что, никого до сих пор не могут найти?
363 3118638
>>118549

>о каких типах архитектуры стоит знать джуну из этого списка


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

>- Монолитная архитектура;


В пхп мире самая распространенная.

>- Микросервисная архитектура;


Имеет смысл использовать в больших компаниях.

>- Сервис-ориентированная архитектура (SOA);


Ну это тоже самое, что и микросервисы. Микросервисы эволюционировали из SOA.

>- Бессерверная архитектура (Serverless-архитектура);


Считается самой продвинутой на данный момент.

>- Service Mesh;


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

>- Twelve-Factor Apps («12-факторное приложение»);


Это просто чьё-то оценочное мнение, а не архитектура.

>- Гексагональная архитектура;


Неведомая ёбаная хуйня. Первый раз слышу.

>- Чистая архитектура.


Это вообще название книги.

>На что из этого списка стоит обратить особое внимание?


На монолиты, микросервисы и serverless.
363 3118638
>>118549

>о каких типах архитектуры стоит знать джуну из этого списка


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

>- Монолитная архитектура;


В пхп мире самая распространенная.

>- Микросервисная архитектура;


Имеет смысл использовать в больших компаниях.

>- Сервис-ориентированная архитектура (SOA);


Ну это тоже самое, что и микросервисы. Микросервисы эволюционировали из SOA.

>- Бессерверная архитектура (Serverless-архитектура);


Считается самой продвинутой на данный момент.

>- Service Mesh;


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

>- Twelve-Factor Apps («12-факторное приложение»);


Это просто чьё-то оценочное мнение, а не архитектура.

>- Гексагональная архитектура;


Неведомая ёбаная хуйня. Первый раз слышу.

>- Чистая архитектура.


Это вообще название книги.

>На что из этого списка стоит обратить особое внимание?


На монолиты, микросервисы и serverless.
364 3118665
>>118628

>Ну представление-то иметь надо.


Тоже верно.

>С чего-то же придется расти?


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

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


Да нет, всем похуй. Мир пхп - это почти всегда один монолит. Вся фишка пхп в том что ты можешь скачать цмс, за 3 копейки накатить готовых плагинов, купить двух васянов за две палки колбасы и у тебя опа! Интернет-магазин готов. Фреймворки всякие типа symfony, laravel есть, но это уже не 2 копейки. Те кто хочет всякие микросервисов, изначально пхп не выберут, а возьмут какой-нибудь golang или java или на крайний случай c#. Потому что на них разрабатывать приятнее. Ну и скорость у них лучше.
image.png32 Кб, 465x379
365 3119042
Мне говорят, что у меня не очевидно, что функция должна возвращать минимальное значение, которое не null. Я говорю, что если это не очевидно, то у читающего 12 IQ. Почему я не прав?
366 3119060
>>119042
1) На чтение 2 меньше времени тратится, а значит она лучше. Код в функии выносят не только для переиспользования, но и для самодокументорованности кода

2) Коммерческий код это не шарады. Всем поебать какой ты умный. Людям хочется меньше тратить время на чтение твоего кода.
367 3119069
>>119060
Вторую как раз я и написал. Спасибо, так и скажу.
368 3119117
>>118665

У тебя прослеживается стереотип, что монолит это плохо, а микросервисы хорошо. Но мода на микросервисы закончилась пару лет назад.
369 3119121
>>118183
там так-то тоже разряд требуется, дебич
корочки выдают всякие
370 3119123
>>118636

Может он тупо занят срочной задачей? Скорее всего они поручили проверять задания сеньору, и ему надо как-то успевать и работу делать и десятки тестовых проверять.
371 3119124
>>119117

>У тебя прослеживается стереотип, что монолит это плохо, а микросервисы хорошо


Я так не говорил это ты за меня додумал. Моя позиция что каждая архитектура уместна в определенных ситуациях и не уместна в других.
372 3119130
>>117906

На заводе надо таскать тяжелые бованки, которые не каждый тут поднимет, много грязи, заусенцев, грубой работы, стружки, искры, масло летит во все стороны, переработки, грохот, визг. А для программирования сил много не надо, лишь бы кнопки нажимать мог.
373 3119152
>>117600

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

Данные практически всегда и везде передаются как набор байт (например, данные в Интернете передаются как байты, данные на диске и в памяти компьютера хранятся как байты). Байт это (если по-простому) целое число от 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. Текстовый протокол требует больше байт, но зато его легче читать человеку и отлаживать.

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



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

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

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



Чтобы обмениваться данными с другими устройствами, другими компьютерами. Представь завод, например, где много датчиков, и они обмениваются данными с центральным компьютером. Или представь мобильное приложение, которое обменивается данными с сервером: показывает пользователю картинки с сервера, а когда пользователь лайкает их, оно посылает данные на сервер. В обоих случаях нужен протокол для передачи данных.
373 3119152
>>117600

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

Данные практически всегда и везде передаются как набор байт (например, данные в Интернете передаются как байты, данные на диске и в памяти компьютера хранятся как байты). Байт это (если по-простому) целое число от 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. Текстовый протокол требует больше байт, но зато его легче читать человеку и отлаживать.

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



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

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

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



Чтобы обмениваться данными с другими устройствами, другими компьютерами. Представь завод, например, где много датчиков, и они обмениваются данными с центральным компьютером. Или представь мобильное приложение, которое обменивается данными с сервером: показывает пользователю картинки с сервера, а когда пользователь лайкает их, оно посылает данные на сервер. В обоих случаях нужен протокол для передачи данных.
374 3119164
>>114697

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

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

Если тебя беспокоит дублирование кода (это хорошо если так), то просто сделай отдельно функцию сохранения файла и отдельно функцию добавления комментария и вызывай их из контроллера.
375 3119165
>>114699

Вынеси работу с комментариями в отдельный класс или набор функций и вызывай их из контроллеров.
376 3119169
>>119124

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

А что касается "приятнее", то приятнее писать на Питоне. Го это не "приятнее", это "терпеть и мучаться чтобы выжать побольше производительности", а java/c# это километры бойлерплейта.
377 3119216
>>119169

>Тогда почему "те, кто хочет микросервисов, выберут golang или java"?


Потому что вся фишка пхп - большое количество готовых плагинов, cms. Ни у кого нет такого количества маркетплейсов, где можно за 3 копейки купить готовый скрипт. Но когда не нужен готовый скрипт, ты пишешь микросервисы с нуля - какой смысл выбирать пхп? Он слишком дохуя прощает разной хуйни. Типа прощения необъявленной переменной или конверсия в другой тип. Асинхронный код писать сложно. Язык уже старичок. Можно использовать для чего угодно, но какой смысл?
378 3119224
>>119042
Бля, какой же кал.
А че ты int написал? Писал бы уже mixed тогда. Че только на null проверять, проверял бы еще и на Int. А еще надо на неотрицательные значения проверить. Иксы блядь какие-то. Короче хуйня полная.

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

Причем этот говнокод это чисто пхпшное явление. Вот по этому к пхп макакам как к говну относятся.
Вот пример того как это будет выглядеть на функциональном F# https://onecompiler.com/fsharp/429yg5uum Все понятно, четко. Мы еще на уровне системы типов задали корректное поведение. Никакой ебанутой угадайки, пятилетке этот код покажи и он все поймет.
379 3119281
>>119224
Пиздец ты ебанутый
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]"
}
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]"
}
381 3119322
>>119224
страшно спросить какие поля будут у класса age в будущем
382 3119329
>>119318
Подскажите, можно ли написать одно универсальное правило для автозагрузки в 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]"
}
382 3119329
>>119318
Подскажите, можно ли написать одно универсальное правило для автозагрузки в 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]"
}
383 3119341
>>119322
compare(), equalTo(), plus(). Да любые действия, которые можно выполнять с возрастом, почему нет? Value Object же.
384 3119352
>>119329
Проще всего будет называть директории demo02, demo03. Но если тебя это не устраивает, ты можешь зарегистрировать собственный автозагрузчик, в котором опишешь нужные тебе правила.
https://getcomposer.org/doc/01-basic-usage.md#autoloading
385 3119393
>>119341
научись сначала поля от методов отличать, потом сюда пиши, еблан
386 3119433
>>119060

>Код в функии выносят не только для переиспользования, но и для самодокументорованности кода


И даже это не самое главное почему пишут функции.
387 3119452
>>119393
И зачем ты подорвался? Свойств тоже будет столько, сколько нужно сущности предметной области.
388 3119505
>>119452
ну давай, перечисляй свойства, червь книжный
389 3119566
>>119164
Окей, анон.
Спасибо за ответ.
390 3119578
>>119123
Одна из версий.
Ему либо похуй
Либо он боится ставить какие-то дедлайны.
Одно дело молчать - молчание это неопределенность ответа.
Другое дело написать "Давайте я посмотрю ваше тестовое к следующей субботе и тогда же напишу свой ответ". Это ж реально придется брать и в субботу что-то там смотреть, отвечать человеку.

Но отклик он до сих пор не отклонил.
391 3119585
>>119322
А они должны быть? Речь ведь не о количестве полей. А о том что "возраст" это не просто "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 пытается получить.

Но это все лирика. В реальности пхп макаки до сих пор "считают классы", как семечки в кульке или спички в коробке, срут нулами повсюду, а главное, не могут ни ооп код писать, ни функциональный. Ни в пизду ни в красную армию. Застряли в каком-то говенном лимбо, на каждом собесе долбят этот ебучий солид, паттерны, ооп. А хули толку? Определение заучил, башкой с умным видом покивал и пошел хуярить функции, которые принмают хуй пойми че, и хуй пойми че возвращают.
392 3119604
>>119224
У тебя супер класс Age, как я должен понять что это возраст а не музыкальный жанр или название фильма ? Age может быть у человека, у планеты, у продукта.

Как минимум UserAge <- TimeAge <- abstract Age <- Object
393 3119606
>>119604
Та же история про говноязык. В пхп нет модулей. Поэтому только неймспейсы.
А строить шизофренические иерархии это точно такой же говнокод. Наследование еще лет десять назад прикопали.
394 3119635
>>119585

>в говне обязан, а в пхп не обязан, поэтому язык говно



Кто обязывает не пилить объект-значения? Бог? Или так принято? Ну так с этим можешь проследовать нахуй, у жс вон принято было онли снежинки на странице делать, а оно вон как вышло
395 3119642
>>119606
Сейчас бы в 2024 о качестве языка переживать. Промптеров будет с каждым днем все больше...
396 3119644
>>119224

Почему ты сделал тип MinAge? Чем он отличается от Age? Чисто теоретически, MinAge для одной группы людей может быть больше чем MinAge во второй, ты для сравнения их еще одну функцию и еще один тип создашь?
397 3119666
>>119635

>Бог? Или так принято?


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

>>119644

>Чисто теоретически, MinAge для одной группы


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

Тип говорит о том что гарантированно был проведен процесс отбора. А чтобы гарантировать правильность процесса отбора существуют юнит тесты. В них и проверяют правильно ли функция отбора выбирает минимум, что мы на самом деле считаем минимумом итд. Мы когда СВОЙ код пишем нас это все в принципе не ебет.
398 3119682
>>119666

>шнурки


Ебать ты даун, даже не понял, что я написал
image.png1,3 Мб, 1606x1065
399 3119698
>>119585
хуя ты высрал, шиз
должны, потому что это объект
твой понос дальше читать не собираюсь
400 3119906
Зашел в интерактивный режим git консоли, сделал индексацию недавно измененных файлов, а как выйти-то теперь, чтобы сделать коммит?
401 3119911
402 3119912
>>119906
Если я правильно тебя понял, то ты добавил файлы в индекс и теперь хочешь сделать коммит.

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

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

git commit

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

Потом нужно сохранить изменения. Если редактор Вим, то нужно нажать:
esc
:
wq
403 3119935
В объект можно передать массив, типа конфига, в этом массиве неинициализированные объекты (т.е классы) для фабрики. Норм ли решение потом в цикле проверять их тип (интерфейс)? Или проверять когда фабрика создает? Но тогда получается что есть потенциальная закладка с ошибкой в приложении.
404 3119941
>>119152
Я другой анон, бля круто расписал, было интересно прочитать
image.png427 Кб, 415x497
405 3119944
>>119224
Я не пишу библиотеку для работы с возрастом. Но ты молодец.
406 3120044
>>119944
Это не он молодец, это ты дегенерат каких нельзя допускать до программирования.
image.png270 Кб, 640x503
407 3120088
>>119906

>Зашел в интерактивный режим git консоли, сделал индексацию недавно измененных файлов, а как выйти-то теперь, чтобы сделать коммит?


Классика
408 3120381
>>118549
Все читай - все учи. Сейчас можешь только обзоры почитать о них, но готовься что ничего не поймешь, т.к. большинство из них вращается на DDD и на паттернах и принципах.

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

Всякую залетную хуету не слушай, типа вордпресс-мастеров/обрыганов-быдланов, они сами на дне и тебя утянут к себе, им профессия не по кайфу, они ее терпят
409 3120628
>>120381

>Паттерны покажут как работает ООП.


Каким образом? Паттерн - это просто способ сделать что-то.
410 3120647
>>120381

>разбираешься с паттернами


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

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

А обычно так - прочитал про переменные, про циклы, а потом давай ооп учить с интерфейсами, собачками.
411 3120704
>>120647
это база
412 3120707
>>120628
>>120647
Что ты забыл в программировании? Иди гайки крути блядь
413 3120711
Ларка вообще поддерживает get-параметры в URL, именно что в объявлении маршрутов?
Или только параметры маршрута?
Или параметры маршрута это и есть get-параметры?
414 3120739
>>120707
Ебанат, как изучение паттернов объясняет ООП? Как способ сделать что-то может объяснять концепцию другого понятия?
1-344.png19 Кб, 1058x451
415 3120741
>>120647

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


ООП - тоже императивная парадигма.
416 3120769
>>120711
прочитай про http, нативно есть только post и get, и да, в ларке они есть.
417 3120860
>>120711
На уровне контроллера ей все равно гет там или пост. Используй объект запроса для получения его параметров - там одинаково.
418 3120888
>>120739
Ты дебил, тебе объяснять смысла нет, раз ты мозгом подумать не можешь и найти связь между ними. Такие как ты - залетная хуета в айти. У тебя даже базовой способности мыслить нет. И быдлячая тупорогость быка, держиморды.

Из твоих ответов уже ясно, что ты нихуя не умеешь писать ООП-код и непонимаешь паттерны, но зато в комментах ебальник свой малограмотный разкрываешь
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 у дебиана он отключён?
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 у дебиана он отключён?
420 3120919
>>120888
Ебанат, паттерны != ООП и ООП != паттерны. На вопрос ты так и не ответил, сдулся, ожидаемо.
421 3120920
>>120888

>найти связь между ними


А хули её вообще надо искать? Почему эта связь не очевидна, тебе в твою объебанную солями башку не приходило? Может авторы паттернов использовали функциональные принципы, а на ооп хуй клали?

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

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

Если бы хотел реально получить ответ, ты бы впитывал каждую строчку и пытался бы разобраться, а не спорил и не вел себя как обезъянка малолетняя, визжащая
423 3120954
>>120891

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

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

При этом,

> php -m | grep fileinfo


fileinfo

> php -m | grep mbstring


mbstring

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

Там в исходниках есть файл типа Configure (или как-то так) и в нем указано, какие модули нужно подключить во время установки php.
424 3120965
>>120954
Спасибо. А можешь глянуть, mbstring.so и fileinfo.so в ext вообще лежат? Ну или что на макоси вместо so.
И совсем классно будет, если в случае их наличия, ты попробуешь их удалить временно, и запустить какую-нибудь функцию из mbstring/fileinfo. Потому что если у тебя так, как я нарыл в debian (в php.ini отключено, но работает, но so-файл есть), то варианта два. Либо, несмотря на то, что в php.ini строка закомментирована, грубо говоря, дефолтное значение true. Если её раскомментируешь, директива перезапишется тем же самым, ничего не произойдёт. Либо это статическая компиляция расширения прям в бинарник PHP, и нахера тогда so-файл вообще кидают. Просто, чтобы был, вдруг кому надо?
425 3120995
>>120920

>Почему эта связь не очевидна


Тебе она неочевидна потому-что ты не знаешь ни паттерны, ни принципы.

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

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

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

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

Поэтому тебе правильно сказали - иди уроки делать, дурачок
426 3121005
>>120995

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


Я просто хочу разобраться, а как измерить "ослабление" связи? Или хотя бы что такое "слой"? Если у меня "толстый" контроллер, то слой тоже "толстый"? Ладно, нахуй подробности, эти слои они вертикальные или горизонтальные?
427 3121036
>>120995
Чиво, блять? Какой то словесный понос. Правильно тебе сказали здесь >>120920 у тебя нет понимания ничего вообще. Еще раз, для особо одаренных... Паттерны != ООП и ООП != паттерны.
428 3121040
>>121005
Собес решил провести под видом дурачка?

>измерить "ослабление" связи


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

>то такое "слой


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

>Если у меня "толстый" контроллер, то слой тоже "толстый"


А если код захотите переиспользовать? Будете контроллер копировать? Не хотите Сервис запилить для этого?

>эти слои они вертикальные или горизонтальные?


Смотря какая архитектура.

Ну что, берете меня, товарищ-собеседующий?
429 3121044
>>121036

>Паттерны != ООП и ООП != паттерны.


Докажи
430 3121048
>>121040

>По принципу инверсии зависимостей, принимаем что-то внешнее


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

>что соответствует интерфейсу


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


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

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


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

Итого. связи никуда не делись, конкретика осталась, зависимость есть.
Независимо отвязался. Ебать ты кукоретик.
431 3121052
>>121048
Бля, иди нахуй. Просто я сейчас осознал что ты конченный, когда прочитал первый твой ответ. Пошел нахуй школьник. Еще перед свиньей бисер метать
432 3121057
>>121005

>Я просто хочу разобраться, а как измерить "ослабление" связи?


Смотря про какой код речь. Есть связанность или зацепление (coupling) и связность или прочность (cohesion). Ни то ни другое не никак не зависит от ООП и наличия в языке классов. Почитай сначала про это.
https://medium.com/german-gorelkin/low-coupling-high-cohesion-d36369fb1be9

>Или хотя бы что такое "слой"?


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

>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.
433 3121071
>>120965

>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.
434 3121075
>>121057
Бля, нахуй ты ему отвечаешь, пусть нахуй идет. Он же ебнутый, базы даже не знает а со взрослыми пытается разговаривать. Харкни ему в ебало макротой и дай пинка детенышу, именно такого отношения он заслуживает. Что нихуя не знает основ, а клюв зато свой открывает
435 3121091
>>120965
Да, кстати, после того как раскомментировал mbstring в php.ini, появилась ошибка:

PHP Warning: PHP Startup: Unable to load dynamic library 'mbstring' (tried: ...)
436 3121101
>>121052

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


>мера


Начали за здравие. Ух бля, щас начнут мерять.

>Cвязность характеризует то, насколько хорошо все методы класса или все фрагменты метода соответствуют главной цели


>насколько хорошо


Так насколько блядь? Хорошо делать хорошо, а не хорошо делать не хорошо. Мы че бля в детском саду? -У тебя там связность больше или зацепление? -ХОРОШО.
Правильно там автору в комментах по губам водят.

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


А можно пример "интерфейса как абстракции вообще"? Похуй на каком языке, просто интересно.

То что ты пытаешься криво и странно объяснить называется ПОЛИМОРФИЗМ. Но что такое в итоге "слои"? Это синоним полиморфизма? Это что-то что просто использует полиморфизм? Исходя из того что ты написал это "неважно что на самом деле", но с использованием полиморфизма. Тут чисто по логике получается что ты просто обозвал полиморфизм как-то по другому. https://www.wolframalpha.com/input?i=%28a+%7C%7C+%21a%29+%26%26+b
437 3121109
>>121071

> 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 пару раз.
438 3121117
>>121109
Хотя, хуйню сказал.

> https://github.com/php/php-src/blob/master/ext/spl/spl_array.c


Значит, есть разница между расширением в том смысле, как организуют код разработчики PHP (в этом смысле, почти всё - расширение). И расширением в том смысле, что есть какой-то стандартный базовый набор расширений, подразумевается, что они активны во всех мало-мальски стандартных сборках, и, следовательно, можно считать их частью языка. А есть то, что где-то может быть включено, где-то - нет. С точки зрения внутреннего устройства PHP всё это расширения, но с точки зрения того, что расширениями принято называть при использовании PHP, расширения только второе.
439 3121279
Тред захвачен зеленым шизиком.
440 3121283
>>121279
Таксистом, который не знает что такое .h файлы.
441 3121314
>>121101

>А можно пример


https://share.sourceacademy.org/asovhsih

>называется ПОЛИМОРФИЗМ


Нет, но мне сейчас некогда это обсуждать. Позже.
изображение.png54 Кб, 221x245
442 3121329
>>121279
PWNED by VKatun
443 3121340
>>121314
И что в этом примере "интерфейс"? Функция принимающая хуй пойми че и возвращающая хуй пойми че - это щас абстракцией называется?
444 3121353
>>121340
Интерфейс это шизик, он предоставляет тебе доступ к своим высерам где он НОД итеративно считает. Тыкаешь на шизика получаешь высер, реализацию высера не обязан знать.
adt.png39 Кб, 260x279
445 3121443
>>121340
Рисунок наглядно демонстрирует, что такое абстрактный тип данных и как он работает. Пользователь взаимодействует с интерфейсом, используя операции, определённые в АТД. По сути, абстрактный тип данных - это оболочка, с которой работает клиент. Реализация скрыта на уровень ниже, и её детали пользователя совершенно не беспокоят.
http://aliev.me/runestone/Introduction/WhyStudyDataStructuresandAbstractDataTypes.html
16638983287450.png34 Кб, 1488x1488
446 3121540
>>121443

>Рисунок наглядно демонстрирует

447 3121660
Что новичку имеет смысл делать в плане логирования?
У меня установлен Apache, как я понял, он сам делает логирование.
Мне, как новичку, это логирование вообще нужно?
Что вообще имеет смысл логировать? Всякие exception, которые я явно буду выкидывать?
Я прочитал доку Laravel, хочу закрепить на практике, но не знаю что именно мне делать для этого.
image.png41 Кб, 260x279
448 3121676
>>121443

>Рисунок наглядно демонстрирует


Как одна область может значить разные вещи? Ты дебил? Это не вопрос.
449 3121776
>>111406
Глянь курса Лаврика по основам пхп на рутрекере, он там что-то аодобное делает
450 3122178
>>121660
если есть какие-то интеграции, то всё что туда отправляешь и что получаешь, когда какой пользак в приложуху залогинился/разлогинился, поменял пароль, тронул что-то важное, когда данные валидацию не проходят, чтобы когда пользак придёт "пук хрюк ни работаит" ты бы мог по логам глянуть и ему ткнуть, и да, когда exception то логируешь вместо того чтоб юзеру показывать
изображение.png14 Кб, 1081x136
451 3123822
Срыгнули все под шконку, владелец треда ИТТ. Держу в курсе, я разобрался! Разобрался, каким образом

> fileinfo


> Этот модуль включён по умолчанию.


Теоретически, расширения включаются и отключаются через правку php.ini. Но на практике, как минимум дебилыанщики (и, соответственно, все deb-based) вертели это, они могут включать и отключать расширения, путём создания файла типа fileinfo.ini по адресу /etc/php/8.2/mods-available/
Пакет PHP под линуксом содержит в себе скрипт, который запускается при установке пакета. Пикрелейтед. Таким образом, мы и получаем такую ситуацию: so-файл в ext есть, но в php.ini он отключен, но расширение работает.
452 3124227
Что анон использует регулярно в своей практике из этого списка?

Список:
CodeSniffer
Psalm
Phan
PHPStan
453 3124243
>>124227
CodeSniffer
454 3124280
>>124227
CodeSniffer, PHPStan
+
плагин для шторма (Php Inspections (EA Extended)), который анон советовал в одном из прошлых тредов.
455 3124331
>>123822
А можно поинтересоваться у владельца тренда, нахуя ставить пхп на виртуалку с дебианом, если есть альпин?
456 3124341
>>124331
А нахуя усложнять себе дев экспириенс? Не смешивай технические критерии для продовой конфигурации, и для платформы для разработки

мимо
457 3124347
>>124341

>docker compose up -d и все


>усложнять


>они могут включать и отключать расширения, путём создания файла типа fileinfo.ini по адресу /etc/php/8.2/mods-available/


>Таким образом, мы и получаем такую ситуацию: so-файл в ext есть, но в php.ini он отключен, но расширение работает


>не усложнять


Ты под солями?
458 3124353
>>124347
Я бы поставил пыху через homebrew (в виртуале если под виндой) и не ебал мозги в его ситуации. Про докеры можешь мне не расказывать, та же отладка с дебагером усложняется. Попробуй еще в кубернетесе локально разрабатывать.

Докер для пыхи нужен локально, когда другого варианта нет. В той же симфони в дефолтной конфигурации докера, которая создается symfony new project, в докере только постгрес
459 3124363
>>124353
не виртуалке если под виндой конечно, а в WSL, хотя это тоже VM
460 3124440
Зачем в phpstorm этот сюр с проверкой орфографии, пунктуации и прочей хуйни?
Я на уроке русского или что, блять?
461 3124444
>>124353

>Докер для пыхи нужен локально, когда другого варианта нет


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

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

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

А виртуалка это одновременно и способ хранения конфигурации и способ её доставки в точности куда надо. Это наиболее удобный и быстрый способ решения неизбежных проблем. Неизбежных блядь. Поэтому кукаретическая пиздабольская скотина легчайше палится, когда начинает кукарекать о том чего не знает.
462 3124446
>>124440
Так а нахуй ты уроки русского прогуливал? В чем проблема писать правильно?
463 3124459
>>124444
У меня сейчас пыха в кубере вообще, потому что субд в кубере и другие микросервисы в кубере и все это локально будет запускаться и локально деплоится тилтом. А еще я девконтейнерами остоянно пользовался в микросервисном проекте,а другие разрабы локально запускали для удобства.
Твоя доставка конфиграции нужна для манек, которые нихуя не понимают, что делают. Любой разраб сделает по своему на своем компе. Так что твой совет, обязательно запускать пыху через докер, да еще в кастррованом альпине имеет нулевую ценность.
464 3124465
>>124446
Ты видел, блять, какие там проверки?
Вот тебе пример:
Избыточные определения. В правильно составленном предложении не должно быть больше одного придаточного определения.

Я лингвист или пхп-макака?
465 3124475
>>124459

>Любой разраб сделает по своему на своем компе


Ага, въебет восьмую версию когда проект под 7.4, подключит пару новых модулей модулей и будет с кайфом писать атрибуты. Я так-то про соли пошутил, а ты внатуре угашенный.
466 3124484
>>124475
Чтобы это не делать, докер не нужен чтобы пыху запускать. Достаточно понимать что делаешь.
467 3124486
>>124465

>Я лингвист или пхп-макака?


Ты не умеешь грамотно писать по русски. Шторм тут при чем? Нахуя вообще писать в коде по русски отдельный вопрос. Пиши по английски, он проще.
468 3124495
>>124484
Слушай, вкатун. О том и было написано, пенек осиновый, что понимать нужно не только тебе. А если бы люди так легко понимали бы друг друга, то ты давно завалил бы свое ебало. Но ты все еще пердишь в тред, смекаешь?
469 3124499
>>124486

>Шторм тут при чем?


Просто неожиданно, что в редакторе КОДА почему-то такой сильный дроч на правила рандом-нейм языка.

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

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

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

Тебовать кастрированый альпин для разработки - это и есть вкатунство чистой воды.
472 3124517
В чём сакральный смысл phar.readonly? Не, я не то чтобы против, и не к тому, что я это отключу и у мамы молодец. Но, по сути, всё, что нам гарантирует этот механизм - что phar-файл в ходе исполнения не изменит своё содержимое. Всё. Профита в этом практически нихуя. Если в phar-файле дырявый говнокод, который позволяет хацкеру заставить пыху выполнить свой код, то хацкер всё равно сможет удалить какой-нибудь файл вне пределов phar, например. Или не сможет, потому что ФС пошлёт его нахуй с такими правами, но это уже другой вопрос.
Хуй знает, пойдём от обратного. phar.readonly выключен. Внутри phar-файла дырявый говнокод, так что хацкер заставляет phar-файл модифицировать свои внутренности. Чё дальше? Во-первых, нужно дать по ебалу тому, кто этот дырявый говнокод написал. Во-вторых, если хацкер может заставить пыху внутри phar выполнить что-то лишнее, то он уже может это сделать, ёпт. Что мы потеряли от отключения phar.readonly?
В доках сказано, что всё ради безопасности, и строго наказывают phar.readonly не трогать. А профита особого я не вижу. Если код внутри phar-файла нормальный, то и вопроса нет. Если дырявый, то phar.readonly насрать не помешает.
473 3124543
>>124514

>Твоя маня конфигурация не будет работать на задачах у другого разраба.


Что блядь значит "моя"? Она одна всего. Если нужно новое расширение в пхп подключить что по твоему делают, наркоман? Конфигурацию меняют блядь. Но меняют ВСЕ. В этом вся суть, конфигурация привязана к коммиту с кодом. Сразу с кодом ты получаешь конфиг под которым он гарантированно работает. И если тебе за чем-то нужно поменять конфигурацию, то ты точно так же меняешь её для всех.

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

Короче, давай сворачивай пиздежь, ты заебал тупостью троллить.
474 3124553
Хочу посчитать количество записей в таблице (Laravel, Eloquent ORM)
Пишу:
User::query()->count().
Мне нужен int, а этот пидорас возвращает мне коллекцию Eloquent.
Как преобразовать в скаляр?
изображение.png19 Кб, 667x213
475 3124563
Все, кто плохо себя ведут в этой жизни, будут в следующей писать на битриксе?
476 3124569
>>124563
Зато можешь говорить людям что работал в касперском
478 3124572
>>124517
Если в phar-файле дырявый говнокод, который позволяет хацкеру заставить пыху выполнить свой код, то хацкер всё равно сможет удалить какой-нибудь файл вне пределов phar, например

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

Дальше, эта опция не запрещает менять твой phar файл. Точнее это и тоже, только оно сделано чтобы запретить создавать любые phar файлы из пыхи. В целом ты прав, что способ поднасрать найдётся, только RCE придётся делать на гонках, а не тупо записью.
479 3124573
>>124570
Я пишу
User::count()
Шторм мне пишет, что нет такого метода у Модели.
А код мне выводит, что это экземпляр Collection.
480 3124595
>>124573

>А код мне выводит, что это экземпляр Collection


https://github.com/illuminate/database/blob/master/Query/Builder.php#L3321

>return (int)


А мне телки из тиндера шлют нудесы, а кореша говорят что я пиздабол, потому что я там не зареган даже.
481 3124596
>>124553
Он не возвращает коллекцию елоквента. Не пизди
482 3124644
>>124595
Я тебе по коду говорю.
У меня что в dump() показывает, то тебе и пишу.
483 3124654
>>124644
А я говорю что у меня хуй до колен. Еще могу рассказать что работаю в гуголе и получаю 300к в наносек. А вот показать не могу, смекаешь?
484 3124656
>>124654
У меня в коде написано:
$test = User::count();
dump($test).

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

Я хуй знает почему так.
485 3124661
>>124654
Ладно, все.
Приношу извинения.
У меня dump печатался из другого if.
486 3124671
>>124661

>У меня в коде написано:


>$test = User::count();


>dump($test).


> Ну и нахуя ты пиздишь? Там не так написано.


>Бля буду, так


>Запости код


>А, да. Там не так.


Как называется эта болезнь?
487 3124672
>>124671
Болезнь называется на сонливую голову пошел писать код.
Я упустил момент, что значение из формы приходит не int, а string (ебучий "0", а не 0!).
Вот и не заметил, что код пошел не по тому if.
Сорри, пацаны, вы правы, а я дурак.
488 3124674
>>124572

> оно сделано чтобы запретить создавать любые phar файлы из пыхи


Моей проблемой было то, что я как-то упустил этот нюанс. А сейчас уточнил - да, действительно. Параметр phar.readonly можно читать как
0 пыха может и читать и создавать phar
1 (дефолт) пыха может только читать phar
Тогда его существование выглядит более оправданным. Единственное, мой комментарий о безопасности ведь не снимается? То есть, нельзя сказать, что эта фича заметно влияет на безопасность. Скорее, ридонли-режим включают по принципу типа KISS, всё, что тебе не прям нужно, должно быть отключено, ибо мало ли что? Потому что я не вижу больших потенциальных угроз и проблем в факте того, что на этой системе можно собирать phar-файлы. Совсем не eval или какая-нибудь подобная ебанина, с которой легко отстрелить свою ногу. Если код дырявый, то миллион способов насрать и без phar. Если код не дырявый, то phar никак не повлияет на безопасность в негативную сторону. В чём я не прав?
489 3124678
>>124672
Ты "упустил момент" что если хочешь помощи, то запости блядь код, который "не работает", а не свои фантазии. Каждый раз одно и тоже.
490 3124691
>>124671
Эта болезнь называется "я у мамы анонимус".
мимоанонимус
17114556934260-b.png387 Кб, 680x643
491 3124782
>>124678

>Каждый раз одно и тоже.


Вкатывальщики ссут свой код показывать.
Каждый вкатывальщик думает, что уважаемые мидлы ИТТ говна в своей жизни не видели и его засрут как это бывает у них в конфочке вайтишников, где они только туториалы видят с тремя строчками кода.
492 3124806
>>124782

>Вкатывальщики ссут свой код показывать.


Предлагаешь все репы с хеллоу-ворлдами и API генерирующими бугурт-пасты выкладывать публично?
17107724288750-po.webp5 Кб, 270x304
493 3124858
>>124806

>все


Где я написал про все? Ты имбецил?
Когда ты к врачу приходишь с жалобой на боль в жопе, то все жопы мира ему показываешь или только свою - которая захворала?
Kartoshechka (233).png342 Кб, 600x600
494 3124897
>>124858
Я показываю ему ВСЕ свои жопы.
14337570.jpg154 Кб, 640x1081
495 3125155
1.png9 Кб, 489x215
496 3125173
>>125155
Множество жеп состоящее из одной жопы, тоже описывается квантором Все. Даже больше я, тебе скажу, что в теории множеств любой предикат к элементам пустого мнодества будет истенен, для Всех элементов этого пустого множества. См пикрил

мимо шел
497 3125207
>>125173
Так это тавтология. Тавтологию, как и твой пост, можно отбросить, потому что она нерелевантна для вывода.
версиябесплатныйгостиныйзадание257.png79 Кб, 225x225
498 3125257
>>125207
Так это яскозительство. Яскозительство как и твой пост можно отбросить, потому что оно вообще не несёт информационной нагрузки.
499 3125511
>>124674
Да, имхо ты прав, оно закрывает простые вектора эксплуатации, но скорее всего изначальный вектор можно эксплуатировать как-нибудь ещё. Надо поднимать историю появления этого флага, мб в pr будет больше кейсов.
image.png71 Кб, 1518x936
500 3125932
Вот, допустим я записал скрипт в файл, как мне теперь его вызвать из PHP?
И можно ли перезаписывать текущий файл, который сейчас выполняется?
501 3126114
>>125932

> как мне теперь его вызвать из PHP?


include 'hello.php'

>можно ли перезаписывать текущий файл


можно
502 3127155

> Отличный вопрос! Термин "рекурсивный" в названии RecursiveDirectoryIterator может вызвать недоумение, так как сам по себе этот итератор не производит рекурсивного обхода подкаталогов. Однако, его называют "рекурсивным", потому что он предоставляет возможность обрабатывать структуры каталогов, которые потенциально включают вложенные каталоги, и он способен быть использованным в рекурсивном контексте при помощи RecursiveIteratorIterator. Вот почему его название отражает его потенциальное применение, а не непосредственное поведение



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



Меня нигде не наебали?
503 3127266
>>127155
Да, тебя наебали. Это классика пхп кала.

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

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

И такие "приколы" в этой параше на каждом шагу. Начиная от разного порядка аргументов и заканчивая тем, что массив это на самом деле функция.
Язык - бардак, язык - куча мусора. Фрактал отсоса.
504 3127287
ну вот почему так блять когда ставишь по мануалу какойто софт обязательно будут лезть ебучие ошибки у всех все так гладко, а у тебя всегда как у долбаеба нихуя не получается.
505 3127295
>>127266
Спасибо. В ответе, выходит, ничуть не наебали. А вот разработчики PHP - На-ду-ли! Просто нагло обманули! Просто водят за нос, обманывают! Насрали в язык какой-то неинтуитивной сранью, а ты разбирайся с этим, пытаясь понять, что имели в виду эти реально контуженные обиженные жизнью имбецилы.
506 3127312
>>127287
У всех всегда так. Они просто пиздят
screenshot18-2-543119560.png508 Кб, 923x646
507 3127313
>>127266

>Массив это функция

151355410100032.jpg40 Кб, 960x720
508 3127320
>>127313
https://3v4l.org/qUD5oJ
Че не смеетесь? Не смешно? Не поняли? ЭТО ПХП!
509 3127370
>>127320
Массив - каллабл, потому что каллабл кал. Как из этого следует, что массив это функция?
510 3127410
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 в качестве битовой маски - способ как бы сказать "используй значения по умолчанию", возможность пропустить указание аргумента.
512 3127760
Почему phpstorm не может в нормальное форматирование? Он мне там целые пустые строки оставляет посреди кода
Screenshot 2024-04-18 182953.png179 Кб, 2000x1288
513 3127814
>>127760
Базарю - шторм с парой макросов может половину местных вкатунов без работы оставить.
123.jpg67 Кб, 724x658
514 3127933
>>127814
Осталось только научить его убирать пустые переносы строк, наверное отдельное расширение с ии запилить придется
516 3128096
>>127952
Пердолить конфиги чтобы иде удалила пустые места в коде

Мда, уж лучше и проще нейронку попросить
517 3128098
>>127933
Нахуя ты запрос к БД делаешь в шаблоне?
518 3128100
>>128098
Он настолько восхитился тем, что плагин может пустые строки убрать, что решил, что это будущее, которое заменит ждунов. Какого кода ты от него ожидаешь?
519 3128101
>>128096
"Дорогая нейронка, вот тебе двести мегабайт нашего с пацанами кода. Ну вообще то он не наш, а нашего работодателя. Но мама учила что нужно делиться. Пусть этот код попадет в датасет и послужит компании микрософт хорошим подспорьем.
В общем, удали пожалуйста в коде пустые места. Где? Нуу... вот тебе список правил, как и где удалять, типа конфиг такой. Заранее спасибо."
520 3128118
>>127478
Бамп. Или я настолько непонятно сформулировал вопрос?
521 3128399
>>128098
Чтобы вывести список студентов
522 3128423
>>128399
Почитай про разделение php и html кода.
Про паттерн MVC.
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 понял поверхностно), но файл только создавался и в него нихуя не писалось.
524 3128440
>>128437
Нужно, чтобы именно скрипт завершался после вывода Hello.
А потом сам запускался через 15с.
И снова вывод Hello и снова завершение.
И так по кругу.
525 3128562
>>128437
Каждый раз одно и то же. Рассказал про свой первый раз, про цвет залупы и про то что делаешь хуйню. А по сути дела ничего не рассказал. Ты понимаешь разницу между тем что "нужно сделать" и тем что ты "решил что нужно сделать"?

Откуда ты взял про линукс? Откуда ты взял про крон? Ты буквально следующим постом "уточняешь" задачу и там ниче про линукс и крон нет. Ты пишешь "задача написать скрипт 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 запишет вывод скрипта в нужный файл.

526 3128593
>>128562
Чувствую себя долбаебом.
Спасибо, анон!
Можешь еще подсказать, как заставить cron не просто выполнять php скрипт, а выполнять его, открывая в браузере?
У меня стоит xampp.
Screenshot 2024-04-19 140447.png18 Кб, 856x244
527 3128601
>>128593
Ну открой файл с логами в браузере, лол.
528 3128612
>>128601
Ага.
Я хочу так:
Запустить локальный сервер
Запустить крон задачу
И вот чтобы крон переходил по адресу http://localhost/dashboard/hello.php
И так каждые 15с.
Можешь подсказать?
529 3128638
>>128612
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
Бля, я надеюсь это пранк, типа открывающегося сидирома. Не могу имаджинировать ебало того кто будет сидеть за компом.
530 3128640
>>128612
Я не он и читал жопой, но у тебя какая-то каша в голове. Каким образом крон должен переходить по адресу? Тебе чё надо вообще? Надо, чтобы просто исполнялся PHP-скрипт - одно. Надо, чтобы дёргалась страница на твоём локальном сервере - другое. Это тогда по крону нужно дёргать curl, который будет идти на http://localhost/dashboard/hello.php А если окажется, что тебе курла мало и на самом деле там будет какая-нибудь клаудфлара, то смотри в сторону puppeteer.
531 3128658
>>128638
>>128640
Все, всем большое спасибо.
Я добился того, чего хотел.
532 3128711
Как паттерны ООП учить на пхп? Мэтта Зандстра читать?
533 3128714
>>128423
Я в процедурном делаю
534 3128762
>>128711
Если знаешь хорошо лару, почитай архитектуру на ней из оп поста. Я сам читал и смотрел дохуя по паттернам и никак не мог въехать нахуя нужна эта отдельная дисциплина. Там же норм поясняются проблемы и как паттерны их решают
535 3128765
>>128762
А я не знаю хорошо лару, я только чуть чуть голую пыху позадротил на хеллоу ворлды
536 3128769
>>128711
Подписка на Хекслете, там есть трек по ООП
537 3128809
ПЕРЕКАТ!
ПЕРЕКАТ!
ПЕРЕКАТ!

https://2ch.hk/pr/res/3128808.html (М)
538 3128818
>>128765
И нахуя ты в паттерны тогда лезешь?
539 3128828
>>128809
Нахуя ты это делаешь, если у тебя руки из очка? Ты куда-то опаздываешь? В тематике треды до тысячи постов спокойно висят.
540 3128831
>>128828
Не успел перекатить с хтмлем и цссом в шапке? Этого больше не будет. Смирись
541 3128833
>>128831
Я ничего никуда не перекатываю. Потому что нахуя? Там до сих пор прошлый тред с нормальной шапкой висит, залупа ты понурая.
542 3128838
>>128833
Ну так сиди там со своим ?> из 1997 года
543 3128850
>>128838
А знаешь, пожалуй я его перекачу. И побампаю. Надо же такому охуевшему вафлеру по губам провести. Десять лет сидели с кайфом, щас какое-то чмо залетное будет тут че-то пиздеть.
544 3128887
Клуб изучающих PHP продолжает свою работу.
С нормальной шапкой и сохранением нумерации.
>>3128882 (OP)
>>3128882 (OP)
>>3128882 (OP)
545 3128894
>>128850
Битрикс тред создай и там сиди лол. В целом мне похуй на самом деле. Делай что хочешь
546 3130193
Многожопые квантовые яскозители.
На вашем этом пхп такое не напишеш.
547 3130194
>>128118
Ты ебанутый.
Какой-то херью маешься.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 16 июля в 04:26.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски