Этого треда уже нет.
Это копия, сохраненная 14 августа в 13:39.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
17104329354240.jpg110 Кб, 750x857
Клуб изучающих PHP #138 /php/ 3128808 В конец треда | Веб
Добро пожаловать.
Тут мы по прежнему изучаем язык PHP (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

Это тред для начинающих. Слово «классы» у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.

Предыдущий тред был тут: >>3034858 (OP)

Старые треды тут https://2ch.hk/pr/arch/ (М) (искать по слову php), а также на архиваче и в гугле по словам по словам "клуб изучающих PHP".

С чего начать - основы PHP

Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook . Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный справочник ( https://www.php.net/manual/ru/langref.php ). Или все сразу.

Если что-то непонятно, запости код и попроси подсказку или поищи задачу в архиве тредов.

Какой редактор использовать

Простые задачки можно решать в онлайн-песочницах вроде https://onlinephp.io/ , https://paiza.io/en/projects/new?language=php , https://www.programiz.com/php/online-compiler/ , но для программ посложнее лучше установить редактор. Есть (дорогая) IDE PhpStorm, есть бесплатный Netbeans и VSCode, условно-бесплатный Sublime Text. Чтобы в последних получить автодополнение для PHP, нужно установить и настроить PHP language server.

Вот инструкции по установке PHP на компьютер: https://github.com/codedokode/pasta/blob/master/soft/php-install.md
Гайд по командной строке: https://github.com/codedokode/pasta/blob/master/soft/cli.md

Что изучать дальше

Зная лишь основы PHP, сайт ты не сделаешь и работу не найдешь. Обычно от начинающего требуют чуть-чуть больше:

PHP, ООП, основы HTTP, HTML/CSS (основы верстки), JS, SQL, PDO, MVC, git, composer, какой-нибудь фреймворк (Laravel или Symfony), основы автоматического тестирования, основы linux, английский.

Вот неофициальный роадмап (карта того, что можно изучать): https://miro.com/app/board/o9J_lbUUBBQ=/

По многим из этих тем у нас есть уроки или задачки:

- для понимания, что такое веб-сервер, прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- для понимая MVC, работы с БД и формами, реши задачу про студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- далее есть более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- задача, близкая по сложности к реальным задачам на Laravel/Symfony: https://gist.github.com/codedokode/8733007
- после нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- если ты все решил, переходи к Symfony или Laravel
- почитать про паттерны можно тут https://designpatternsphp.readthedocs.io/ru/latest/ (если ты не изучил ни одного фреймворка, то это будет рановато). Если хочешь увидеть примеры использования паттернов в реальном коде - ковыряй исходники Симфони, например Symfony Forms. Ну и скажем честно, начинающему без опыта, который не видел сложный код, паттерны понять будет сложно.
- для улучшения английского можно читать news.ycombinator.com - там много статей на тему IT.

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- задачи на HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- хороший учебник по JS: https://learn.javascript.ru/
- задачи на JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- задача на SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- задачки на SQL: https://www.sql-ex.ru/ (нужна регистрация), https://sql-academy.org/ru/trainer и немного наших задачек: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что еще почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- https://phptherightway.com/
- Книга: Профессиональное программирование на PHP Джордж Шлосснейгл
- Книга: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- Про Git: https://git-scm.com/book/ru/v2
- Задачи на алгоритмы: https://codeforces.com/problemset

Дополнительно

- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html
- что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- сколько времени надо изучать все это? - все зависит от тебя, в районе 12-24 месяцев
2 3128832
А почему ни слова про битрикс в шапке?
3 3128835
>>28832
Проебался. И css забыл. Теперь новички не научатся кнопки расскрашивать. Какой же это пхп?
4 3128853
Что такое трейты? Классы обычные, классы абстрактные, интерфейсы знаю, а это что?

Макрос, который просто при использовании (use) включает некоторый код в определение класса? По типу #define из Си?
5 3128863
>>28832
Шапка вообще никуда не годится. Вот из 137 треда, со всеми ссылками: https://2ch.hk/pr/res/3034858.html (М)
6 3128877
Кстати, если уж добавили https://learn.javascript.ru/ с уроками по JavaScript, можно еще и эти ресурсы:
https://htmlbook.ru/ - справочник по HTML и CSS (старый)
https://webref.ru/ - справочник HTML и CSS (новый)
https://www.php.net/manual/ru/index.php - описание языка PHP и встроенных функций на русском
Я учился по PHP.SU в нулевых, но сейчас он закрылся.
7 3128901
>>28853
Да. Кусок логики класса, который ты можешь всунуть в любой класс. Использование трейтов считается антипатерном и хуйовой практикой
8 3128906
>>28877
Про denwer забыл, дедуля
перекот.gif404 Кб, 220x141
9 3128910
>>28835

> Проебался


В следующий раз кати с нормальными картинками сразу. Такие треды очень чувствительные к перекату и вызывают бурление по поводу проблем с шапкой. Если видишь что проебался, то кидай репорт, но только не заруинь больше никогда картинки.
10 3128911
>>28906
Никогда не понимал, зачем нужен этот кал. В Windows 7 без проблем ставится Apache. А в XP можно было запускать PHP на майкрософтовском IIS.
11 3128929
О госпаде. Всетаки втулили в шапку эту простыню из говна. Похоже пыхе реально суждено не выбраться из хуиты с задачками про два стула яблока и калькулятора на хтмле и джейквери
12 3128937
Почему никто не рекомендует эту годноту?

https://code.mu/ru/php/book/oop/
image.png147 Кб, 1509x800
13 3128951
>>28929
Профессор МГУ одобряет (кроме жквери и жабоскрипта позорного).
14 3128956
>>28937
Посмотрел мельком. Например в статических методах не раскрывается тема late static binding https://stackoverflow.com/questions/11710099/what-is-the-difference-between-selfbar-and-staticbar-in-php
15 3129098
>>28951
Че блядь? Какой профессор? Че за пик? Че сказать хотел? Ты душевнобольной?
16 3129266
>>29098
Чмоня, ты залетный с хабры? Учи матчасть, не позорься.
17 3129271
>>29266
И где эту загадочную матчасть про профессоров можно изучить? Тебя мама не учила что пиздеть хуйню без ссылок - это невежливо?
18 3129352
>>28951

>Таксист без образования не различает профессора и доцента

19 3129770
>>28808 (OP)
Нужно импортировать XSLX файл. Как я понимаю без библиотек это можно сделать только при помощи класса ZipArchive. Хотел его использовать, но мне пишут, что
'ext-zip' is missing in composer.json
То есть у PHP нет встроенной поддержки работы с Zip? Ну ладно, если честно я не понимаю, может ли установка расширения Zip привлечь к нагрузке к проекту? Я не хочу писать лиду в выходной. Но просто я не знаю о последствиях, которые может привести подключение лишнего расширения. Если это как то затормозит проект, тогда вряд ли позволят его подключить, и я скажу продакту, что использовать буду CSV.
20 3129827
>>29770
Возможно оно установлено, но в php.ini отключено. Позырькай туда
21 3129924
>>28853

Трейт это набор полей и методов, которые можно добавить в любой класс.

Если ты из трейта обращаешься к методам, которых нет в трейте, и которые должны быть в использующем трейт классе, то, по моему, надо делать их абстрактными в трейте. Чтобы код был понятнее и чтобы находить ошиюки. Но почему-то почти никто так не делает.
22 3129926
>>28901

А аргументы есть, почему это плохая практика? Если код с ними проще и понятнее, то я не готов считать это "плохой" практикой.
23 3129931
>>29770

Есть библиотека phpoffice для работы с такими документами.

> То есть у PHP нет встроенной поддержки работы с Zip?



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

> может ли установка расширения Zip привлечь к нагрузке к проекту?



Думаю, нет.
24 3129948
>>29926
А аргументы есть, почему множественное наследование "проще и понятнее", чем обычное?
25 3130205
Дальше определения (в изучении JS) что такое объекты в JS не ушел, сложно будет разобраться с AJAX?
26 3130219
>>30205
Хэш-таблица, она же словарь, она же ассоциативный массив. Если значением поля (ключа) является функция, то оно называется методом. Все просто. Такой же механизм в Lua, но в Js есть еще и наследование. Вот в PHP не знаю, как устроены объекты.

AJAX - с помощью fetch отправляешь на сервер HTTP-запрос (GET, POST и др.), тебе приходит ответ с JSON данными (или ошибка). На хабре все описано: https://habr.com/ru/articles/252941/
27 3130220
>>29770
Вот здесь посмотри про ZIP, по дефолту расширение отключено:
https://www.php.net/manual/ru/zip.installation.php
Для работы с MS Office я бы лучше подключил готовую библиотеку.
28 3130221
>>29924

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


Ужаснулся, какая это свалка должна быть, в жизни бы не стал прикасаться к подобному коду.
29 3130223
>>29271
Порридж, за вежливостью и нетоксичным общением на хабр или пикабу. А Столяров это местный мем. То, что ты не знаком с его книгами, уже говорит о многом (хотя для PHP'шника это в общем простительно).
30 3130245
>>30223
Больной на голову хуила, нахуя ты написал "учи матчасть", если учить нихуя не надо и никакой матчасти нет?
31 3130831
>>30205

JS не такой уж и сложный, если это не твой первый язык, то за неделю основные моменты прочесть и изучить можно. "AJAX" это написание кода на JS, и без знания JS тут никуда.
32 3131256
>>30245
Уебывай просто нахуй отсюда, на хабру или откуда ты вылезла, чмоня.
14385124862660.png5,1 Мб, 1920x1080
33 3132067
>>28808 (OP)
Есть задача сделать некий функционал на чистом пхп, без фреймворков. Допустим, наполнить базу товарами, сделать поиск/редактирование/удаление товаров и ещё что-то в таком духе. И нужно сделать это максимально ООП-шно.

Я накидал такую схему: есть index.php, который показывает страницу с кнопками, списками и прочим. По кнопкам срабатывают js-срипты и аяксом дёргают файл-роутер router.php. В нём подгружается класс DB.php (подключение базы), Product.php (вся работа с товарами) и другие. Далее идёт разбор реквеста и определяется, какой метод нужно дёрнуть. В каждом методе свой валидатор (выносить куда-то в конструктор, а то и в отдельные файлы-реквесты и делать ларавелоподобный валидатор будет слишком наворочено, мне кажется). То есть, метод из класса Product валидирует реквест, тут же запрашивает через PDO базу, анализирует ответ и выдаёт echo, которое возвращается аяксом в браузер.

И что-то мне это не нравится. Как бы это всё более феншуйно оформить?
34 3132079
>>32067

Ты случайно не переизобретаешь велосипед? Попробуй почитать про MVC и ООП-паттерны для работы с БД:

- https://github.com/codedokode/pasta/blob/master/arch/mvc.md
- https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md

> То есть, метод из класса Product валидирует реквест, тут же запрашивает через PDO базу, анализирует ответ и выдаёт echo, которое возвращается аяксом в браузер.



Ты совмещаешь 3 функции MVC в одном классе:

- управление обработкой запроса (что должен делать контроллер)
- внесение изменений в БД (задача модели)
- вывод результата (задача представления)

MVC - это как раз идея, как эту свалку кода разделить.
35 3132276
>>32079
Конечно, изобретаю.

Прочитал. Не совсем понятны отличия разных схем работы с БД, и главное, как это всё применить на живом проекте. Там как будто нет кусков текста. Например, class News extends ActiveRecordBase - в ActiveRecordBase , насколько я понимаю, нужно прописать методы круда.

В первой статье разобран пример

>Сначала напишем Контроллер, который будет при обращении к нему выводить список объявлений.


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

>- вывод результата (задача представления)


Запросы идут через аякс, следовательно, вью тут у всех одинаковый: просто джисоним то, что нужно отправить в браузер и делаем echo. Разве нет?
изображение.png83 Кб, 1516x352
36 3132424
Вы правда не слышали о symfonycasts? Там много хороших видеогайдов. На ютубе в основном пустышки.
37 3132491
Есть строка, нужно заменить конкретные символы на другие конкретные символы.

Вроде можно задать массив, где
ключ - что заменить;
значение - на что заменить.

И заменять по этому массиву.

Но я не ебу как.
Я помню, что когда-то делал похожее.
38 3132567
>>32491
Все, я нашел решение.
39 3132843
Бетмены, можете phar.readonly = Off в php.ini и запустить файл со следующим кодом:

$phar = new Phar('file.phar');
$phar->buildFromDirectory(__DIR__);
$phar->stopBuffering();
foreach ($phar as $file) {
echo $file->getFilename() . "\n";
}

Можно ещё в папку, в которой будет лежать этот код, кинуть ещё пару файлов. Хоть пустые txt создать.
При первом запуске, когда file.phar не существовал и только вот был создан, у вас что-нибудь выводится? Потому что у меня нихуя, хотя, говорят, должно. Если вместо

> $phar->stopBuffering();


Сделать переоткрытие

> $phar = new Phar('file.phar');


То всё чинится, но, по-моему, это говной какой-то отдаёт. Как мне получить актуальный список файлов в phar-архиве без его переоткрытия, ёпта?
40 3132994
>>32276

> Не совсем понятны отличия разных схем работы с БД, и главное, как это всё применить на живом проекте. Там как будто нет кусков текста



Там описана идея, а не дается готовый кусок кода. Самая простая реализация это TableDataGateway - когда для каждой таблицы ты делаешь класс, и помещаешь в этот класс все операции над таблицей (например: добавление записи, удаление, поиск и тд).

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



Да.

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



Да. Вот, например, у тебя есть: 1) просмотр списка товаров, 2) добавление товара 3) удаление товара - это нужно 3 контроллера (но обычно делают не 3 класса, а один класс, а в нем 3 метода).

Что касается роутера, это компонет, который смотрит на URL и решает, какой контроллер вызвать. Он обычно один. В статье про MVC для упрощения роутер не пишется на PHP, а используется возможность веб-сервера делать роутинг.

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



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

> Там же всё одинаковое, кроме самого запроса нужного метода.



В случае удаления товара и добавления товара, нам приходят разные параметры в запросе, и их по-разному надо парсить. Вот уже различие. Парсить запрос - это задача контроллера. А сервис не должен лезть в $_GET или $_POST.

Если у тебя контроллеры однотипные (например: удаление товара и удаление поста), ты можешь сделать один общий контроллер, просто передавать в него параметр, что именно мы хотим удалить - пост или товар. Так тоже можно. Но объединить в одном методе удаление записи и добавление вряд ли получится.

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



Это надо делать в контроллере. И скорее всего разные контроллеры должны возвращать разный набор данных и твоя идея сделать один класс не сработает.
40 3132994
>>32276

> Не совсем понятны отличия разных схем работы с БД, и главное, как это всё применить на живом проекте. Там как будто нет кусков текста



Там описана идея, а не дается готовый кусок кода. Самая простая реализация это TableDataGateway - когда для каждой таблицы ты делаешь класс, и помещаешь в этот класс все операции над таблицей (например: добавление записи, удаление, поиск и тд).

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



Да.

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



Да. Вот, например, у тебя есть: 1) просмотр списка товаров, 2) добавление товара 3) удаление товара - это нужно 3 контроллера (но обычно делают не 3 класса, а один класс, а в нем 3 метода).

Что касается роутера, это компонет, который смотрит на URL и решает, какой контроллер вызвать. Он обычно один. В статье про MVC для упрощения роутер не пишется на PHP, а используется возможность веб-сервера делать роутинг.

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



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

> Там же всё одинаковое, кроме самого запроса нужного метода.



В случае удаления товара и добавления товара, нам приходят разные параметры в запросе, и их по-разному надо парсить. Вот уже различие. Парсить запрос - это задача контроллера. А сервис не должен лезть в $_GET или $_POST.

Если у тебя контроллеры однотипные (например: удаление товара и удаление поста), ты можешь сделать один общий контроллер, просто передавать в него параметр, что именно мы хотим удалить - пост или товар. Так тоже можно. Но объединить в одном методе удаление записи и добавление вряд ли получится.

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



Это надо делать в контроллере. И скорее всего разные контроллеры должны возвращать разный набор данных и твоя идея сделать один класс не сработает.
41 3132998
>>32424

По Симфони есть документация на английском, которую надо прочесть в первую очередь. Симфони как раз очень хорошо документирована, хотя иногда и приходится искать ответ в коде.
42 3133013
>>32843

Phar реализует интерфейс RecursiveDirectoryIterator и является итератором. То есть, его можно перебирать в цикле и в нем есть указатель на текущий перебираемый элемент.

Возможно, что в твоем коде просто этот указатель указывает на самый последний элемент и foreach ничего не выводит. Попробуй сделать $phar->rewind() перед foreach.

Также, Phar реализует ArrayAccess. Если способ выше не заработает, попробуй сдампить, чему равен $phar[0], $phar[1] И так далее.

Также, вроде бы надо вызывать startBuffering перед добавлением файлов.
43 3133053

> Возможно, что в твоем коде просто этот указатель указывает на самый последний элемент и foreach ничего не выводит. Попробуй сделать $phar->rewind() перед foreach.



Авотхуй. Скажу больше

> var_dump(iterator_to_array($phar));


Результат

> array(0) {}



> Также, Phar реализует ArrayAccess. Если способ выше не заработает, попробуй сдампить, чему равен $phar[0], $phar[1] И так далее.


Авотхуй x2, но не совсем. $phar[0] равен нихуя. Но вот $phar["file1.txt"] возвращает object(PharFileInfo), как мне бы того и хотелось. Но проблема в чём? Я не знаю, как при всём при этом сделать что-то типа array_keys($phar). Если я знаю название файла, то да. Но я-то его могу не знать. И как быть? Итератор пустой, поэтому array_keys(iterator_to_array($phar)) не покатит.

> Также, вроде бы надо вызывать startBuffering перед добавлением файлов.


Авотхуй x3. Я пробовал, не помогло.

Я не уверен в своих выводах, потому что нуб, читать исходники на C совсем трудно, но сложилось такое впечатление. При вызове Phar::__construct(), создаётся итератор, который Phar. И всё, ёпт. Дальше мы добавляем файлы с помощью buildFromDirectory, например, а итератор не меняется.
https://github.com/php/php-src/blob/master/ext/phar/phar_object.c#L1220
Вот, смотри. spl_ce_RecursiveDirectoryIterator->constructor дёргается всего в двух местах, в Phar::__construct() и buildFromDirectory https://github.com/php/php-src/blob/master/ext/phar/phar_object.c#L1735
Но во втором случае, как я понимаю, это итератор, который, собственно, собирает файлы, которые пойдут в Phar-архив. А не сам итератор Phar-объекта.
Из чего следует картина, которую я обрисовал выше. Итератор phar-объекта создаётся в момент __construct и больше не меняется по ходу. Хочешь получить актуальный список файлов - пересоздай Phar. Так и задумано.

Где я обосрался? Или так оно всё и есть?
44 3133579
Решаю задачу, где требуется работать с большим объемом данных.
Там массивы с количеством элементов 10к+.
И localhost стал подвисать. Ему перестало хватать 30 сек.
Что можно тут сделать?
Сомневаюсь, что смогу сбавить ему нагрузку.
45 3133906
Есть какие-нибудь библиотеки или типа того для php, чтобы отправлять ajax-запросы?
Я не знаю нихуя JS и мне нужно реализовать ajax-запросы в ближайшее время.
Либо вместо библиотеки напишите какие именно темы нужно дрочить в JS, чтобы смочь написать ajax-запрос на чистом JS.
46 3133908
>>33579
Разбить данные на пакеты и обрабатывать в очереди, а не в одном запросе.
48 3134183
Я вот так вот сделал задачу про студентов в процедурном, что думаете:
https://github.com/casshh87/Project
49 3134224
>>34183
Наебалово какое-то. Где тут процедуры? Ты когда $con->prepare() пишешь у тебя в голове ничего не щелкает? Может для приличия загуглишь что такое "процедура"?
50 3134239
>>33053

Ого, ты даже в Си полез. Но, в одном из случаев найденный тобой объект это не часть объекта Phar, а он всего лишь используется для обхода дерева файлов при вызове buildDirectory().

Я замечу еще, что Phar это не просто "плоский" итератор, а RecursiveDirectoryIterator - то есть, итератор по дереву с подкаталогами. Если попытаться его перебрать, то он возвращает одну странную запись - ключом в ней является путь к phar-архиву, а при попытке поучить значение через $phar->current() мы получаем исключение. Поэтому твой foreach наверно ничего и не показывал. Но если у него вызвать getChildren(), то мы получим итератор по файлам в архиве.

Смотри код: https://3v4l.org/YvbU3#v8.3.6
51 3134242
>>33579

Есть 2 варианта:

1) оптимизировать алгоритм, может у тебя, например, там вложенные циклы можно убрать или еще что-то

2) использовать для долгих задач очередь задач - ты помещаешь в нее задачу и консольный скрипт в фоновом режиме ее выполняет.
52 3134246
>>33906

Нет, надо учить JS.
53 3134259
>>34183

У тебя здесь "слепая" SQL-инъекция: https://github.com/casshh87/Project/blob/main/add_user.php#L16 , с ее помощью можно вытянуть всю базу данных. Не подставляй данные напрямую в запрос, а используй подготовленные запросы. Про уязвимость: https://github.com/codedokode/pasta/blob/master/security/sql-injection.md

Здесь XSS-уязвимость, пользователь может вывести произвольный HTML/JS код на страницу, указав его в имени пользователя: https://github.com/casshh87/Project/blob/main/index.php#L35 . Про XSS: https://github.com/codedokode/pasta/blob/master/security/xss.md

Нету никакой валидации при регистрации - у тебя есть валидация на JS, но ее легко обойти, отключив ее в браузере либо отправив запрос напрямую через curl.

У тебя весь код собран в одном файле - и обработка запроса, и вывод HTML. Это очень плохой подход, так как, например, с таким кодом не может работать верстальщик, не знающий PHP - ему было бы удобнее, если бы отдельно были шаблоны, а отдельно логика. Это описано тут: https://github.com/codedokode/pasta/blob/master/php/templates.md

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

Я тебе предлагаю сделать такие исправления:

- убрать все SQL-инъекции (использовать подготовленные запросы)
- убрать все XSS-уязвимости (сделать экранирование при выводе всех переменных)
- разбить код на 2 части: в одном файле логика, в другом - HTML-шаблон
- добавить валидацию данных при регистрации на стороне PHP

В процедурном подходе я не вижу ничего плохого, но в моем понимании, это когда у тебя есть отдельно файлы с функциями (процедурами), а отдельно шаблоны. И каждая функция выполняет какую-то свою задачу. А у тебя все перемешано в кучу. Если тебе интересно улучшить свой код, можешь писать вопросы, я отвечу.
53 3134259
>>34183

У тебя здесь "слепая" SQL-инъекция: https://github.com/casshh87/Project/blob/main/add_user.php#L16 , с ее помощью можно вытянуть всю базу данных. Не подставляй данные напрямую в запрос, а используй подготовленные запросы. Про уязвимость: https://github.com/codedokode/pasta/blob/master/security/sql-injection.md

Здесь XSS-уязвимость, пользователь может вывести произвольный HTML/JS код на страницу, указав его в имени пользователя: https://github.com/casshh87/Project/blob/main/index.php#L35 . Про XSS: https://github.com/codedokode/pasta/blob/master/security/xss.md

Нету никакой валидации при регистрации - у тебя есть валидация на JS, но ее легко обойти, отключив ее в браузере либо отправив запрос напрямую через curl.

У тебя весь код собран в одном файле - и обработка запроса, и вывод HTML. Это очень плохой подход, так как, например, с таким кодом не может работать верстальщик, не знающий PHP - ему было бы удобнее, если бы отдельно были шаблоны, а отдельно логика. Это описано тут: https://github.com/codedokode/pasta/blob/master/php/templates.md

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

Я тебе предлагаю сделать такие исправления:

- убрать все SQL-инъекции (использовать подготовленные запросы)
- убрать все XSS-уязвимости (сделать экранирование при выводе всех переменных)
- разбить код на 2 части: в одном файле логика, в другом - HTML-шаблон
- добавить валидацию данных при регистрации на стороне PHP

В процедурном подходе я не вижу ничего плохого, но в моем понимании, это когда у тебя есть отдельно файлы с функциями (процедурами), а отдельно шаблоны. И каждая функция выполняет какую-то свою задачу. А у тебя все перемешано в кучу. Если тебе интересно улучшить свой код, можешь писать вопросы, я отвечу.
54 3134263
>>34183

И еще здесь ошибка: https://github.com/casshh87/Project/blob/main/search.php#L29C9-L29C34

strtolower работает только с латиницей, надо использовать mb_strtolower.
55 3134340
>>34183
чувак ты 87 года выпуска?
56 3134378
>>34340
Да, а что?
57 3134454
>>34183
Каким же нужно быть быдлом, чтобы в свой логин впихнуть циферки
58 3134470
>>34454
Каким же надо быть дегенератом, чтобы читать название фейкоакка
59 3134475
>>34470
Stassssss777, плиз. Иди задачки про студентов решай, авось с завода свалишь
20240425005023.jpg119 Кб, 1200x800
60 3134489
image.png24 Кб, 212x238
61 3134498
>>34489
$$$PapkaNagibat0r228$$$
62 3134531
>>34239

>Но, в одном из случаев найденный тобой объект это не часть объекта Phar, а он всего лишь используется для обхода дерева файлов при вызове buildDirectory()


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

> Если попытаться его перебрать, то он возвращает одну странную запись - ключом в ней является путь к phar-архиву, а при попытке поучить значение через $phar->current() мы получаем исключение. Поэтому твой foreach наверно ничего и не показывал. Но если у него вызвать getChildren(), то мы получим итератор по файлам в архиве.


Хотел было сказать, что ты не прав, но ты прав! И это странно. Один и тот же код:

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
var_dump('первый перебор');
foreach ($phar as $file) {
var_dump($file);
}
var_dump('второй перебор');
foreach ($phar->getChildren() as $file) {
var_dump($file);
}
var_dump('третий перебор');
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $file) {
var_dump($file);
}

При первом запуске (phar.phar не существует), первый перебор пустой. Второй и третий не пустые. При втором (phar.phar уже есть), первый перебор не пустой. Второй и третий тоже не пустые. Из чего, упрощая, формулирую такой вывод: чтобы получить обновлённые данные о содержимом PHAR, нужно не сам объект итерировать, а его getChildren(). И поскольку оно работает всегда, и при первом, и при втором, и при каком угодно запуске, для получения списка файлов правильно использовать не

> foreach ($phar as $f) {}


а

> foreach ($phar->getChildren() as $f) {}


Ну, с поправкой на то, что это бы ещё в рекурсивитераторитератор завернуть, чтобы он ходил по вложенным папкам. Сейчас разговор не об этом.
Нихуя не понятно почему так. Типа, при 2+ запусках он же и без getChildren() может получить список файлов. А при первом - только с getChildren(). Это что получается? При первом запуске, когда архива ещё нет, он добавляет в него файлы так, будто $phar - директория, в которой находится директория, в которой находятся файлы. А при последующих, $phar - директория, в которой находятся файлы. И почему тогда

> foreach (new RecursiveIteratorIterator($phar)) {}


не работает? В смысле, не выводит список файлов актуальный. Он же автоматически должен дёргать getChildren() и любую такую фигню, нет?

> Если попытаться его перебрать, то он возвращает одну странную запись - ключом в ней является путь к phar-архиву, а при попытке поучить значение через $phar->current() мы получаем исключение


Видимо, по этой причине? Потому что Phar добавляет какую-то свою костыльную магию, и как бы итератор, но не совсем обычный?
Видимо, это уже какие-то совсем дебри. Будем считать, что разобрались. Спасибо!
62 3134531
>>34239

>Но, в одном из случаев найденный тобой объект это не часть объекта Phar, а он всего лишь используется для обхода дерева файлов при вызове buildDirectory()


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

> Если попытаться его перебрать, то он возвращает одну странную запись - ключом в ней является путь к phar-архиву, а при попытке поучить значение через $phar->current() мы получаем исключение. Поэтому твой foreach наверно ничего и не показывал. Но если у него вызвать getChildren(), то мы получим итератор по файлам в архиве.


Хотел было сказать, что ты не прав, но ты прав! И это странно. Один и тот же код:

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
var_dump('первый перебор');
foreach ($phar as $file) {
var_dump($file);
}
var_dump('второй перебор');
foreach ($phar->getChildren() as $file) {
var_dump($file);
}
var_dump('третий перебор');
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $file) {
var_dump($file);
}

При первом запуске (phar.phar не существует), первый перебор пустой. Второй и третий не пустые. При втором (phar.phar уже есть), первый перебор не пустой. Второй и третий тоже не пустые. Из чего, упрощая, формулирую такой вывод: чтобы получить обновлённые данные о содержимом PHAR, нужно не сам объект итерировать, а его getChildren(). И поскольку оно работает всегда, и при первом, и при втором, и при каком угодно запуске, для получения списка файлов правильно использовать не

> foreach ($phar as $f) {}


а

> foreach ($phar->getChildren() as $f) {}


Ну, с поправкой на то, что это бы ещё в рекурсивитераторитератор завернуть, чтобы он ходил по вложенным папкам. Сейчас разговор не об этом.
Нихуя не понятно почему так. Типа, при 2+ запусках он же и без getChildren() может получить список файлов. А при первом - только с getChildren(). Это что получается? При первом запуске, когда архива ещё нет, он добавляет в него файлы так, будто $phar - директория, в которой находится директория, в которой находятся файлы. А при последующих, $phar - директория, в которой находятся файлы. И почему тогда

> foreach (new RecursiveIteratorIterator($phar)) {}


не работает? В смысле, не выводит список файлов актуальный. Он же автоматически должен дёргать getChildren() и любую такую фигню, нет?

> Если попытаться его перебрать, то он возвращает одну странную запись - ключом в ней является путь к phar-архиву, а при попытке поучить значение через $phar->current() мы получаем исключение


Видимо, по этой причине? Потому что Phar добавляет какую-то свою костыльную магию, и как бы итератор, но не совсем обычный?
Видимо, это уже какие-то совсем дебри. Будем считать, что разобрались. Спасибо!
63 3134574
>>34378
да чет зацепился за 87, того ж года, ты вкатился?
64 3134679
>>34574
Да. Видишь задачки уже решает
65 3135064
>>34259

>использовать подготовленные запросы


А как сделать сортировку по клику на имя столбца с помощью подготовленного запроса ? Там вроде нельзя подставлять имя столбца в плейсхолдер.
66 3135072
>>35064

В такой ситуации подставляем переменную напрямую, но предварительно проверяем, что она входит в разрешенный список полей.
67 3135074
>>34531

По-хорошему, надо бы разобраться на уровне Си, специально это сделано или баг, и если баг, то зарепортить.
68 3135111
>>35072
Понятно, а запрос оставить подготовленным или обычным писать ? есть смысл делать подготовленный запрос если у меня нет никаких параметров забинденых ?
69 3135458
>>35111

Если нет параметров, то не надо делать.
70 3135625
>>35064
Это делается с помощью сервиса со схемой базы, который знает какие должны быть названия таблиц и колонок. Ты получаешь название колонок оттуда, а не подставляешь напрямую. https://3v4l.org/fugVD

А подстановка значений должна работать всегда. Поэтому для соединения с базой всегда используют PDO. Офк никто не делает это руками, а пишут сервис, который делает это за тебя.
71 3135718
>>35625

>Это делается с помощью сервиса со схемой базы,


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

Теперь новый прикол - решив вынести это во вью файл началась магия. Через ссылки в html переворот не работает, если рисую ссылки через php echo - все работает.

Грубо говоря мне щас надо в уме, в голове представить как скрещивается пхп код с html, в каком порядке это все выстраивается, выполняется, почему если сверху в body написать скрипт эффект один, если снизу другой, если вынести в верх файла из body эффект третий.

А нахуй мне все это надо ?
72 3135721
Короче если я во вью файле пишу html код и подставляю в ссылку <?php перменная ?> то она не меняет значение по клику.
Если пишу echo '<a> .... ' - заебись все робит.
73 3135722
В ссылку я подставляю query запрос что бы через него изменить вид сортировки в переменной и её уже отправить в запрос.

И разгадка явно кроется в том что я инклюжу view файл в мой основной пхп код он склеивается, а вот что происходит с html парашей не ясно куда и как она лепится.
74 3135732
>>35722
>>35721
>>35718
*fix ошибка найдена - не падайте только, я лишние кавычки ставил в ссылку href=?param="<?php ?>". Кодинг явно не моё.
75 3135736
>>35732
Пчел, код пишентся в phpstorm, ане на салфетке. Шторм тебе все ошибки подсветит.
76 3135786
Всем привет!

Подскажите, пожалуйста, у нас в компании автотесты пишутся на phpunit и мне надо подхватить это (я тестер ручник).

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

Слышал про ооп, классы, экземпляры классов (даже понимаю, что это такое), но никогда не пробовал.

И вот мне показали код на phpunit и я увидел, что там тесты на нативном пхп идут. У меня был опыт с codeception/cypress, но там всё очень-очень просто, типа такого (для человека, кто базово знает программирование всё очень и очень даже понятно)
$I = new WebGuy($scenario);
$I->wantTo('Хочу убедиться, что форма скрипта Toupper работает корректно');
$I->amOnPage('toupper.html');
$I->see('Конвертируй меня!');

Так вот, у меня вопрос: стоит ли проговаривать с командой, что пхпюнит будет сложнее и дольше мне осваивать и проще внедрить тот же кодсепшн?

А если я не прав, то за сколько примерно можно подтянуть пхп, чтобы писать код в пхпюнит?
77 3135915
>>35786
Ты же должен понимать ооп, ди и пр штуки чтобы писать юнит тесты. Нужнао же понимать как внедрить моковые объекты например
78 3135948
>>35915
В идеале да, я это понимаю, что должен понимать и знать, но на собесе об этом слова не было. Распрашивали о прошлом опыте автотестов, я так и сказал, что тестил фронт на сайпрессе и селениуме, но там детский код был, а тут чистый пхп с ооп, которого я не знаю, тут получается по-хорошему учить программирование на пхп до уровня джуна как минимум, чтобы писать такие тесты
79 3135952
>>35948
Хз, я всегда думал, что юнит тесты сами разрабы пишут. Сомневаюсь, что джун может в ди, да и описание моков требует понимание того, что там в коде происходит
80 3135959
Как в phpstorm выделять по вертикали? В гугле пишут комбинации которые мне окно перетаскивают
81 3135982
>>35952
Так у нас разрабы и пишут сами эти тесты, просто мне (тестеру) тоже нужно развивать автоматизацию.

Из проектов у нас апи и мобилки. С апи работал только как ручник в постмане. С мобилками ваще не работал.

Хз, надо будет обговаривать походу этот момент. Либо ебашить ещё и пхп.

Сколько кстати просить повышения к ЗП при таком условии, что я с нуля документацию пишу, вкатываюсь в автоматизацию и буду учавствовать в её развитии? Пока что зп 110, через 3-5 месяцев получится убедить их грейднуть мне зп хотя бы до 130-150к?
82 3136109
>>28808 (OP)
Есть какой-нибудь грамотный вариант решения задачки.
Допустим есть строки, которые отображают числовые значения Но есть проблема, так как целочисленные значения отображаются вместе с нулем, то есть
64 => 64.0
75 => 75.0
653.34 => 653.34
343.2 => 343.2
Как сделать так, чтобы отобразить эти значения в нормальном виде, то есть 64.0 в виде 64, а 75.0 в 75, а 653.34 отсалось таким же?
84 3136213
>>36164
Как ты нашел этот ответ? Как ты правильно загуглил? Спасибо
85 3136220
>>36213
php remove zeros after decimal
86 3136232
>>36220
Как тебе в голову пришла именно эта мобинация слов? Ведь если бы было 3143.00034, тогда не нужно было удалять нули?
87 3136238
>>35959

Если у тебя линукс и Alt + клик перетаскивает окно, попробуй правый Alt или погугли, как поменять клавишу для перетаскивания (может быть программой вроде Gnome Tweaks, если у тебя Gnome). В моем линуксе окно перетаскивается по Win + клик и проблем нет.
88 3136459
>>36238
Да, у меня линукс, а какие клавиши там по умолчанию для вертикального выделения?
89 3136471
>>36459
>>36238
Всё не надо, попробовал на винде это альт с кликом или альт шифт. Спасибо за совет, не догадался бы что линукс свинью подкинул
90 3136476
>>36232
Php remove ze...
Дальше браузер сам подсказал
91 3136816
А это нормально что даже решение задачи уровня 2х2 в кодинге вызывает у меня паническую атаку и я в душе не ебу как сопоставить эти закорючки скобочки буковки чтобы получить решение?
Думаю даже школьник бы интуитивно догадался, а я не могу
Как развить элементарную логику?
92 3136841
>>36816
Для этого нужно постоянно изучать и применять новое. Возьми почитать книжку по дискретной математике, будет в любом случае полезно.
93 3136970
Когда вставляешь данные в БД нужны плейсхолдеры.
А когда достаешь из БД?
Если я сохраню sql-код в БД и запрошу его SELECT, то СУБД просто отдаст его или выполнит?
94 3136974
>>36816

>задачи уровня 2х2


Что это?
95 3137042
Отправил POST данные на сервер, при перезагрузке страницы выскакивает уведомление о том, повторить ли отправку формы.
Есть способы убрать кроме редиректа?
Screenshot 2024-04-27 at 16-13-13 Отформатируй этот код php function solution ($world $str) { $length strlen($str) $last mbsubstr($world -$length) print $last . n } solution( samurai ai ) solution( sumo omo ) sol[...].png22 Кб, 776x149
96 3137189
Когда phpstorm сможет также?
97 3137202
Какой положняк по switch против множества elseif? Я сначала думал, что круто, а потом узнал, что это аналог == вместо ===, теперь сомневаюсь. Было бы просто синтаксическим вопросом - ок, но ведь и поведение меняется слегка.
98 3137289
>>36471

А почему Линукс? Может быть, разработчики IDE не учли эту особенность? Она известна уже много лет. Ну и линуксы разные, у меня клавиша Win используется для перетаскивания окон. В твоем Линуксе тоже скорее всего можно поменять эту клавишу. Что у тебя за оболочка, Gnome? KDE?
99 3137292
>>36970

Плейсхолдеры нужны только при вставки. При их использовании БД правильно экранирует все спецсимволы (вроде кавычек) и в БД вставится ровно тот текст, который ты передал. При получении из БД ты получишь его в точно таком же виде. SQL код, вставленный в БД, не выполнится - можешь проверить и посмотреть, что вставится.
100 3137293
>>37042

Надо делать Post-Redirect-Get.
101 3137295
>>37042

Либо аякс.
102 3137328
>>35074
Как же PHP срёт вонюче. Всем похуй, но.

1. > При втором (phar.phar уже есть), первый перебор не пустой. Второй и третий тоже не пустые.
Толку от этого примерно нихуя. Он как бы не пустой, но содержит не актуальные данные. Типа, есть у нас phar.phar. Мы запускаем скрипт, добавляя в него какой-то новый файл. Так вот первый перебор этого нового файла в себя не включает, а содержит снимок на момент запуска скрипта.
Иначе говоря, вообще нет ситуаций, в которых $phar имело бы смысл перебирать, только $phar->getChildren() может содержать актуальные данные.

2. Допустим, ну и хуй с ним! - скажет мне анон. Я и так пришёл к выводу

> нужно не сам объект итерировать, а его getChildren()


Ага. Только есть одно но:

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


Это нихуя не так, лол. С первого взгляда - так, но со второго - нет.

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
var_dump('первый перебор');
foreach ($phar as $file) {
var_dump($file);
}
var_dump('второй перебор');
foreach ($phar->getChildren() as $file) {
var_dump($file);
}
var_dump('третий перебор');
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $file) {
var_dump($file);
}

Этот код работает. Всё как будто хорошо. Но что будет, если, например, удалить все переборы, кроме третьего? Просто закомментирую их.

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
//var_dump('первый перебор');
//foreach ($phar as $file) {
//var_dump($file);
//}
//var_dump('второй перебор');
//foreach ($phar->getChildren() as $file) {
//var_dump($file);
//}
var_dump('третий перебор');
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $file) {
var_dump($file);
}

Хуяк! При 2+ запуске будет

> Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct failed to open dir: operation failed



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

Добавил перед третьим проходом ещё один пустой проход по $phar

> foreach ($phar as $f) {}


Хуяк! Всё заработало. Того же самого эффекта можно добиться через

> $phar->seek($phar->count());


Но если делать так, то при 1 запуске (когда phar.phar ещё нет) будет ошибка.
И да, бля, Phar::seek именно на Phar::count(), без декремента. Какого хуя? Мы ведь выходим за границы итератора.
А вот)
Я нихуя не понимаю, короче. Сейчас, вроде, оно работает именно так, как мне нужно, но почему это работает - хуй поймёшь.

Вот финальный рабочий код:

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
foreach ($phar as $f) {}
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $f) {
var_dump($f);
}

За каким хуем нужен пустой

> foreach ($phar as $f) {}


Я вообще не понимаю, но он нужен.
102 3137328
>>35074
Как же PHP срёт вонюче. Всем похуй, но.

1. > При втором (phar.phar уже есть), первый перебор не пустой. Второй и третий тоже не пустые.
Толку от этого примерно нихуя. Он как бы не пустой, но содержит не актуальные данные. Типа, есть у нас phar.phar. Мы запускаем скрипт, добавляя в него какой-то новый файл. Так вот первый перебор этого нового файла в себя не включает, а содержит снимок на момент запуска скрипта.
Иначе говоря, вообще нет ситуаций, в которых $phar имело бы смысл перебирать, только $phar->getChildren() может содержать актуальные данные.

2. Допустим, ну и хуй с ним! - скажет мне анон. Я и так пришёл к выводу

> нужно не сам объект итерировать, а его getChildren()


Ага. Только есть одно но:

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


Это нихуя не так, лол. С первого взгляда - так, но со второго - нет.

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
var_dump('первый перебор');
foreach ($phar as $file) {
var_dump($file);
}
var_dump('второй перебор');
foreach ($phar->getChildren() as $file) {
var_dump($file);
}
var_dump('третий перебор');
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $file) {
var_dump($file);
}

Этот код работает. Всё как будто хорошо. Но что будет, если, например, удалить все переборы, кроме третьего? Просто закомментирую их.

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
//var_dump('первый перебор');
//foreach ($phar as $file) {
//var_dump($file);
//}
//var_dump('второй перебор');
//foreach ($phar->getChildren() as $file) {
//var_dump($file);
//}
var_dump('третий перебор');
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $file) {
var_dump($file);
}

Хуяк! При 2+ запуске будет

> Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct failed to open dir: operation failed



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

Добавил перед третьим проходом ещё один пустой проход по $phar

> foreach ($phar as $f) {}


Хуяк! Всё заработало. Того же самого эффекта можно добиться через

> $phar->seek($phar->count());


Но если делать так, то при 1 запуске (когда phar.phar ещё нет) будет ошибка.
И да, бля, Phar::seek именно на Phar::count(), без декремента. Какого хуя? Мы ведь выходим за границы итератора.
А вот)
Я нихуя не понимаю, короче. Сейчас, вроде, оно работает именно так, как мне нужно, но почему это работает - хуй поймёшь.

Вот финальный рабочий код:

$phar = new Phar('phar.phar');
$phar->buildFromDirectory('.');
foreach ($phar as $f) {}
foreach (new RecursiveIteratorIterator($phar->getChildren()) as $f) {
var_dump($f);
}

За каким хуем нужен пустой

> foreach ($phar as $f) {}


Я вообще не понимаю, но он нужен.
103 3137542
104 3137567
В каком году вообще сделаны ваши уроки?
Навевает 2008
105 3137568
было не легко но я справился полчаса зачем то делил вместо умножения, идем дальше
image.png171 Кб, 1051x693
106 3137571
и нахуя это? в чем проблема просто вызвать переменную и переписать ее значение на нужное, всяко проще чем ебаться с прибавлением убавлением чисел
107 3137573
>>37571
Например ты чтобы делать всякое с переменными в которых ты не знаешь что будет лежать?
$killToDeathRatio = $kills / $deaths
$circleCircumference = $circleDiameter * 3.14159265

Пример в гайде просто для наглядности
108 3137575
>>37568
Когда ты вводишь циферки просто в программу это называется ЛИТЕРАЛ. Вот у тебя тут ЧИСЛОВЫЕ ЛИТЕРАЛЫ и они присваиваются переменным. Вся идея ЛИТЕРАЛОВ что они всегда должны в программе объясняться где-то рядом с собой. Когда ты значение в переменную записываешь, то понятно становится что обозначает ЛИТЕРАЛ. Но когда ты оперируешь значениями, там не должно быть никаких неоднозначных литералов.
Твоя программа должна читаться как инструкция на английском. И в седьмой строке у тебя должно было быть записано правило расчёта курса. А в правиле не должно быть никакой конкретики, литералы в правиле абсолютно непонятно что означают, правило действует для всех долларов и рублей.
Поэтому тебе надо было там написать
$roubles = $dollars * $exchangeRate;
Видишь как в этой строке потерялась конкретика про числа? Ты абстрагировался от конкретики и теперь стал настоящим программистом.
Либо я тебя покормил, либо тебя ждёт долгая дорога, типа лет десять до первой вакухи
109 3137576
>>37571
Это просто наследие ассемблера PDP-11, не обращай внимания. Тогда программировали на перфокартах и надо было каждый символ экономить.
Все пиздец к такой записи привыкли и от неё отказываться уже поздно, будешь постоянно в программах встречать.
110 3137578
>>37571
слушай сюда сынка нах айти это тебе не про комфорт это про сверление тебе в анусай всякой старой хуеты которая просто есть и которую нужно просто принять и затолкнуть поглубже в очко если ты хочешь найти работу
111 3137580
>>37575

>Поэтому тебе надо было там написать


$roubles = $dollars * $exchangeRate;
Звучит разумно, по моему я так и написал впервые, но не там где нужно.
Сейчас буду решать задачку про кубик!
Ждите через пол дня
112 3137781
>>37542

Согласно информации из интернета, Alt для перетаскивания окон можно отключить в настройках:

System > Control Center > Windows > Behaviour > Movement Key

Поменять Alt на Super Key (это так в Линуксе называется клавиша с логотипом Windows) или что-нибудь еще.
113 3137789
>>37571

Это короче писать и нагляднее, по крайней мере для меня:

$x += 10; // сразу понятно, что надо увеличить x на 10

$x = $x + 10; // надо чуть дольше читать чтобы понять, что тут делается

Если же ты имел в виду "почему нельзя написать просто $x = 20", то ответ, иногда мы сами не знаем, чему будет равна переменная, но хотим ее увеличить на 10.

Но тот анон про наследие PDP (компьютер из 70-х), возможно, и прав. Эта конструкция унаследована из языка Си (так что теперь ты заодно знаешь, как увеличивать переменные в Си).
114 3137790
>>37568

Надо было использовать переменные, а не числа в строчке 7. Сейчас, если ты хочешь узнать, сколько стоят 300 долларов, тебе надо 2 раза менять числа. А желательно, чтобы число 200 было написано только один раз и достаточно было поменять его в одном месте.
115 3138439
>>37789

> как увеличивать переменные в Си


ШОК! СЕНСАЦИЯ!
УВЕЛИЧЬ СВОЮ ПЕРЕМЕННУЮ ДО 64 БИТОВ! НАДО ВСЕГО ЛИШЬ В НАСТРОЙКАХ КОМПИЛЯТОРА УКАЗАТЬ ПРОСТОЙ, КОПЕЕЧНЫЙ...
116 3138477
>>37189
Давно может
117 3138479
Еще можно и в ручную всё настроить
118 3138481
Хочу Rabbitmq освоить. Есть нормальная документация по библиотеке?
119 3139199
Что не так со скобочками { } в preg_match в пхп ? эта хуйня ломает мне regexp там где нужно указать минимум 1 символ { 1 }.
120 3139201
>>39199
Всё я разобрался надо u в конце добавить было, а то с русскими буквами не отображалось.
121 3139458
>>39201
Молодец. Ты вкатишься.
122 3139490
У меня есть сайт, сделанный на Laravel, как теперь его выкинуть на какой-нибудь хостинг?
Или лучше, как из локального сервера сделать доступный из интернета сервер?
На компе стоит Apache
otvetit-polzovateliu-at-navalnyleha-kto-to-znaetFvRyOo9E.mp42,2 Мб, mp4,
540x710, 0:07
123 3139504
>>38477
А как?
124 3139616
Что джуна отличает от сеньора?
Джун это тоже самое, что и сеньор, только без опыта работы?
Или джун это тупой говнокодер, который в будущем должен стать сеньором с чистым кодом?
125 3140061
>>39616
Да много чем отличается, посмотри матрицы компетенций разных крупных компаний, там детально расписано.
126 3140106
>>39616

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

Битрикс > лара/симф > Го > пенсия

Твёрдо и чётко.
128 3140305
На первую работу выходил как пхпшник. Но спустя неделю стал полноценным фронтендером на Вуе и нуксте. И с тех пор прошло больше двух лет
Стоит пытаться вернуться в пхп? Возможно ли это без просадок зарплаты?
129 3141657
>>39504
Зайти в настройки, в поиске code style и зайти в php
130 3142426
>>28808 (OP)
Как перевести число с Е в десятичное?
1231231231233,21 отображается как 1,23123123123321E12, хотя мне нужен первый вариант
131 3142481
Здарова пачаны, нужно выучить пхп на хорошем уровне (на уровне типизации и расмотра полноценного ООП, МВС и прочей белиберды).

Мне просто для себя, я как тестер просто хочу ещё как хобби нахуй после работы сидеть и кодить
132 3142518
>>42426
Умножить на 10 в 12 степени

А если серьёзно, то обернуть в double(x) попробуй
133 3142533
>>42481
Тогда учи нормальный язык. Нахуя жрать говно если ты не на грани голодной смерти?
134 3142597
>>42533
Какой? Я питон хотел, но че т не знаю. Остальные не зашли в своё время, когда учился в ВУЗе

++, #, джаву, джс, пхп, лисп знаю на уровне циклов и условий.

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

Пока особо интересны пхп и питон (но на питоне вроде матан хуян нужно классно знать, а я могу только 2+2 сложить)
135 3142657
>>42597
Ты даже близко не смыслишь в программировании. Учи любой, кроме пхп - python, c#, haskell. Просто покрути колесо с именами япов и что выпадет то и учи абсолютно без задней мысли.
image.png248 Кб, 1852x1000
136 3142687
>>42657
В смысле не смыслю в программировании? Я даже знаю, что такое полиморфизм и паттерны проектирования.

Выпал го, ебаный в рот
137 3142765
>>42687
Ну го заебись. И строго типизированный и компилируемый и популярный и в девопсе юзается и в вебе и можно на мобилки даже че-то склепать, даже игровой движок есть. Выпало лучшее что можно "для себя" изучать. Может только синтаксис не очень понравится, но мозг быстро привыкнет.
138 3142770
>>42518
>>42426
А если серьезно? Неужели на php нет функции, которая занимается преобразованием чисел с E?
139 3142778
>>42770
number_format()
140 3142779
Есть тут битриксоиды? Сколько времени на работу тратите из 8 часового рабочего дня? Есть время на саморазвитие (laravel или другие стеки) или только во вне рабочее время получается?
141 3142857
>>28808 (OP)
fgetcsv возвращает округленный вариант ячейки? А как сделать так, чтобы возвращался полный вариант?
142 3142859
>>42778
>>42426
Нашел такой вариант BigDecimal::of($cellValue);
number_format() не подходит
Но теперь оказывается не совпадение между данными полученными из XLSX файла и CSV файла. Так как XLSX отдает числа с E, а CSV формат числа округляет
143 3142907
Подкиньте книг или статей, где основательно, живым языком рассказывают как работает php под капотом.
144 3143236
>>42426
floatval() если у тебя оно строка
145 3143254
Есть какие-нибудь крупные задачи на php и js одновременно?
Чтобы в js пришлось писать не только аякс-запросы.
Ну и подкиньте идеи какое веб-приложение можно написать, где пригодился бы js.
Хочу попрактиковаться.
image.png97 Кб, 588x683
146 3143305
Соре, за относительный нерелейтед, но все же спрошу.
Анон-лапочка в одном из разделов скинул кастомный CSS для макабы, который скрывал все посты, к которым не прикреплены картинки/шебм, а я его пролюбил - помогите плес придумать его заново
Помню только логику внутри, типа сначала всем блокам сообщений ставился скрытый статус, а затем те что с медиа раскрывались обратно
147 3143330
>>43254
любой фронт не статичный как кал
148 3143349
>>43305
Уот так уот https://jsfiddle.net/q6vcs359/

В идеале разумеется нужен JS скрипт, который будет встроенный класс post_type_hidden проставлять, тогда будет функционал обратного раскрытия работать и вообще все будет как обычно работать. Но если нужно просто скрыть все навсегда, то и так пойдет.
149 3143353
>>43349
Ах ты мое солнышко, спасибо!
150 3143767
Если мне надо асинхронные данные загрузить в ларе типо списка фильмов, мне нужно какие то библиотеки подрубать async ? и где это хранить в самой ларе, в отдельном файле ?
151 3143772
>>43767
Я так понял очереди этим занимаются.
152 3143828
>>37189
А нахуя если psr 12 устарел
153 3143835
>>43772
Чем? Асинхронных данных не бывает и я уверен, что речь идёт об аяксе из жикевери и к ларе это никакого отношения не имеет
154 3143947
В пхп файле если пишу html код то не работает background url(1.jpeg) тупо не грузит картинку, если в html файлике то все ок работает.
155 3144046
>>43947
Через xamp все работает, через встроенный пыха сервер нет ну и хуй с ним.
156 3144061
>>43947
Держи в курсе
157 3144940
>>28808 (OP)
Почему похапешники все время воруют нашего слоняру PostgreSQL?
Ведь всем известно, что слоник PHP зеленого цвета.
158 3145278
>>42779
Я на битриксе РАБотал, съебал в конце прошлого года. Если в кратце, то это лютая потогонка, никаких сил и времени на саморазвитие не остается
159 3145408
>>44940
А может это постсикуэль ворует? Наш слоник раньше появился
160 3145412
>>45278
Ну это хотя бы опыт с пхп. Я блчть пять лет в 1с пердолю, вот у нас рил потогонка без перспектив, щас вот вкатываюсь в пхп
161 3146407
И с помощью ini_set, и с помощью set_include_path, я могу добиться ровно одного и того же. Просто первое более универсальное и как бы более низкий уровень, а второе под конкретную директиву include_path. Правильно понял?
162 3146819
Аноны скорректируйте меня по вкату плз, я разобрался кое как со студентами т.е. понял все составляющие. Так же я полистал книжонку по ларе, типо сделал туду лист, увидел мидллвар, валидацию, языки, аутинфекацию. Потыкал mysql.

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

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

Ощущение что я вообще не могу все это говно выучить одновременно.
163 3146835
>>45412
Чел битрикс это опыт говна, ничему нормальному ты там не научишься, но проебешь кучу сил времени на освоение битриксовых костылей
164 3146838
>>46819
Да, конечно, стоит, если состряпал хотя бы 1 проектик на ларе. Только на собесах поймешь чего не хватает, учить будешь более предметно
165 3146854
>>46838
Вот сколько раз замечаю, что любите вы вкатуны пиздеть чего не знаете. Ну если ты не был на собесах никогда, так нахуй ты пиздишь хуйню какую-то выдуманную?

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

Только на этом этапе с тобой вообще живые люди разговаривать будут. И офк нужно будет еще не обосраться на тех единицах собесов, на которые тебя ВОЗМОЖНО пригласят.
Вот и думай.
166 3147037
>>46854

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


Ну вообще, анон, мб прав.
Я проходил тестовое.
Это, конечно, не собес, но все же.
Узнал немного нового.
+ появилась мотивация JS учить.
Щас вот дочитываю учебник.

>Не будет у тебя никаких собесов.


И все что дальше - согласен.
Работодатели вообще пидорасы.
2 раза давали мне тестовое задание, 2 раза я его делал, кидал им и они два раза просто игнорили. Просто игнорили. Джун все равно что пыль для них, раз само величество лид или сеньор не могут написать "Мы уже нашли человека на эту должность" или "Вы нам не подходите".
image.png783 Кб, 640x640
167 3147411
>>45408
История появления логотипа PostgreSQL хорошо известна:

https://postgrespro.ru/blog/company/postgresqlogo

> Слон, как талисман постгреса был предложен в 1997 году по мотивам произведения Агаты Кристи «Слоны умеют помнить». (Я помню, как на своей страничке гордо вешал логотип Постгреса в виде гепарда).


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



> Наш слоник раньше появился



Но он был зеленым, а не синим. Не надо воровать чужих слонов.
image.png80 Кб, 1024x1024
168 3147437
"Наш слоняра" (c), кстати, красного цвета.

https://en.wikipedia.org/wiki/Republican_Party_(United_States)
169 3147441
>>47437
Пожоже на ермолку с пейсами
170 3147664
>>47037
Накрути опыта, год хотя бы. Не можешь сам - найди наставника, который поможет
171 3148251
Как понять что готов к изучению ооп?
172 3148311
>>48251
Никак.
Бери и учи.
Со временем освоишься.
Сначала будет каша в голове, потом станет легче.
173 3148312
>>47664
Да разве в опыте дело?
Если бы было дело в нем, то наверное тестовое не давали бы?
174 3148325
>>43772
гугли axios
175 3148417
>>48325
В 2024 fetch везде работает...
176 3148436
Что нужно знать веб-программисту об ОС?
Текущие познания: ОС - важная штука. Есть винда, линукс, макос.
Что еще нужно знать?
177 3148809
>>42907

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


Под капотом языком работают только битриксоиды
178 3148845
>>48312
Будет опыт, будут и вакансия без тестового.
image.png12 Кб, 297x207
179 3149861
Куда вкатываться после Yii2?
laravel / symfony?

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

Вопрос только времени.
1. Что там вообще нужно знать чтобы вот пойти и получить работу?
2. Интересует именно удаленка.
3. Имея опыт с yii / slim framework норм ли напиздеть про опыт с симфони, а то требуют от 3х лет именно с симфони.
4. Если еще DDD навернуть, то нужно Вернона читать или Эванса для начала хватит чтобы работать?
5. И какой стек для Симфони учить? Какой набор инструментов? Стат анализ нужен? Очереди какие? Какая база для работы?
6. И какие проекты на симфе делают? бек с json'ом и rest? Или сайты для домашней выпечки? Какие задачи у вас были?
7. Ну и прав что хочу Симфони выучить? Мол, можно конечно ларавель, но зачем, если можно лучше выучить и иметь норм работу, а не говносайты клепать? Что короче на перспективу?
180 3149984
>>49861
На перспективу спираль. Во всех вакансиях пишут: фреймворкнейм или любой другой популярный фреймворк. Нахуя тебе учить очередной однотипный фреймворк? Вкатывайся в спираль и роадраннер а потом и в го
181 3149987
>>49861
На перспективу спираль. Во всех вакансиях пишут: фреймворкнейм или любой другой популярный фреймворк. Нахуя тебе учить очередной однотипный фреймворк? Вкатывайся в спираль и роадраннер а потом и в го
182 3150252
>>49987
Спираль это на перспективу, года 2 в нём копаться, слишком сложно.
183 3150278
>>50252
Че бля? Ты же сам переул, что похуй на сложно. Какие года два нахуй?
184 3150317
Часто анон в практике имеет дело с генераторами?
Генераторы это имба?
Когда их стоит использовать?
185 3150355
Зачем вы учите пхп? Ему же пизда
186 3150450
>>50278
Ты видел доку этого инструмента. Там с ума сойдёшь сколько новых концепций. Это все равно что сейчас хаскель сесть изучать после пхп. Ты с ума сойдёшь уже на рекурсии. Так что не годится. Рекомендуй мне либо ларавел либо симпхони.
187 3150491
>>50317
А что учить?
188 3150492
>>50450
Ну не траль)))0000
189 3150516
>>50355
Что-что. Девопс конечно, что же ещё.
190 3150518
>>50355
Нет, вкат возможен только в пэхапе
191 3150522
>>50491
Сварку, например. В сварщики вкатиться хотя бы реально. Учить сейчас любой ЯП - это путь в никуда. Есть смысл, только если у тебя есть знакомые, которые помогут с трудоустройством ну или ты порридж студент 1-2 курса, который волчком крутится будет и пробиваться на стажировки.
192 3150658
Я тут подумал, вы извините, не хотел вас демотивировать. Просто реально ощущение такое что про вкат можно забыть. Если 10 лет назад брали с улицы любого бомжа и реально можно было изи вкатится, то сейчас это пиздец. Охуевшие требования, ебучие автофильтры, по 1000 откликов на вакансию.
193 3150676
>>48436
Нужно еще знать что такое хромбук и что на нем запускаются андроид приложения. Еще была какая-то история с указанием битности в user-agent у windows, но уже не помню в чем.
https://deviceatlas.com/blog/list-of-user-agent-strings
https://user-agents.net/devices/desktops
194 3150696
>>50658
Да, максимум куда можно вкатиться - пэхапе и 1с
но на пэхапе ты будешь битрикс херню клепать за 50к
195 3150755
>>50658
Люди, которые плачут по поводу требований, ответьте на вопрос: зачем брать человека, знания которого о программировании сопоставимы со знанием школьника 9-го класса, который сел изучать основы любого ЯП?
196 3150791
>>50755
Да как вы заебали, суки. Я пройду собес на джунскую вакансию. Знаний достаточно. Проблема в том, что на собес еще хуй попадешь, это из разряда фантастики.
197 3150942
>>50791
Вкат все, закрыайте тред
198 3151228
>>50942
Согласен. Все треды по вкату надо закрывать. Заебали еще инфоцыгане, пиздящие везде про то, как охуенно в айтишечке и что на работу устроится можно хоть в 40 лет без опыта с нуля без вышки, после говнокурсов скиллбокса или самообучения даже. Это все пиздеж. На деле ты заканчиваешь свой говнокурс за 200к, тебе дают пдф: Иван Говнов прослушал курс "пхп от бомжа до синьора". Ну либо не дают, если ты самообучался. Дальше ты создаешь резюме на ебаном пидаристическом хх сру. Где, кстати, инфоцыги тоже сидят, вообще вся система найма - это говно ебаное, не только в айти. Там, кстати, на этом хх сру предлагают запилить тебе резюме за бабки, за такую услугу залупляют ценник 10к+. Ну и сидишь ты как долбоеб со своим говнорезюме без опыта или с накрученным (а особо тупые индивиды год обучения в скиллбоксе себе в опыт записывают) и буквально сосешь хуи. На вакансию джуниора в ООО Вектор в мухосрани, у которых у самих весь сайт в рот отъебан и вообще на джумле сделан и отвалился сертификат (тру стори, реальный случай), 200 откликов висит. Звонит тебе хуй, спрашивает сколько ты хочешь денег, говоришь 20 тысяч хочу, а он тебе отвечает: извините, 20 не можем предложить без опыта. А по остальным откликам либо отказ проставляется, либо тишина. И сидишь ты как долбоеб клацаешь отклики во все подряд, а вдруг хотя бы на собеседование пригласят, но везде отказы или игнор и по 1000 откликов на вакансию. Очередь за забором стоит. А если тебе повезло и тебя позвали на собеседование - будут тебя дрочить от 2х часов на позицию стажера за 15к в офисе с отвалившимися обоями, заебывая тупорылыми вопросами, которые не имеют никакого отношения к тому, чем ты будешь заниматься. А ебани-ка алгоритм тасования Фишера-Йетса. Как это ты не знаешь? Ну все, не прошел. И опять все по новой, жмакаешь по кнопкам "Откликнуться" на каждой вакансюльке, надеясь что еще раз повезет и пригласят на собеседование. А там тоже за 2 часа дрочева есть вероятность на каком-нибудь вопросе проебаться.
Совсем охуели уже, пидорасы. Не вы, если что, а те, кто вот это все говно устроил с таким дрочевом лютейшим при найме.
198 3151228
>>50942
Согласен. Все треды по вкату надо закрывать. Заебали еще инфоцыгане, пиздящие везде про то, как охуенно в айтишечке и что на работу устроится можно хоть в 40 лет без опыта с нуля без вышки, после говнокурсов скиллбокса или самообучения даже. Это все пиздеж. На деле ты заканчиваешь свой говнокурс за 200к, тебе дают пдф: Иван Говнов прослушал курс "пхп от бомжа до синьора". Ну либо не дают, если ты самообучался. Дальше ты создаешь резюме на ебаном пидаристическом хх сру. Где, кстати, инфоцыги тоже сидят, вообще вся система найма - это говно ебаное, не только в айти. Там, кстати, на этом хх сру предлагают запилить тебе резюме за бабки, за такую услугу залупляют ценник 10к+. Ну и сидишь ты как долбоеб со своим говнорезюме без опыта или с накрученным (а особо тупые индивиды год обучения в скиллбоксе себе в опыт записывают) и буквально сосешь хуи. На вакансию джуниора в ООО Вектор в мухосрани, у которых у самих весь сайт в рот отъебан и вообще на джумле сделан и отвалился сертификат (тру стори, реальный случай), 200 откликов висит. Звонит тебе хуй, спрашивает сколько ты хочешь денег, говоришь 20 тысяч хочу, а он тебе отвечает: извините, 20 не можем предложить без опыта. А по остальным откликам либо отказ проставляется, либо тишина. И сидишь ты как долбоеб клацаешь отклики во все подряд, а вдруг хотя бы на собеседование пригласят, но везде отказы или игнор и по 1000 откликов на вакансию. Очередь за забором стоит. А если тебе повезло и тебя позвали на собеседование - будут тебя дрочить от 2х часов на позицию стажера за 15к в офисе с отвалившимися обоями, заебывая тупорылыми вопросами, которые не имеют никакого отношения к тому, чем ты будешь заниматься. А ебани-ка алгоритм тасования Фишера-Йетса. Как это ты не знаешь? Ну все, не прошел. И опять все по новой, жмакаешь по кнопкам "Откликнуться" на каждой вакансюльке, надеясь что еще раз повезет и пригласят на собеседование. А там тоже за 2 часа дрочева есть вероятность на каком-нибудь вопросе проебаться.
Совсем охуели уже, пидорасы. Не вы, если что, а те, кто вот это все говно устроил с таким дрочевом лютейшим при найме.
199 3151376
Какие хорошие раньше были сайты: http://celnet.ru/OSI1.php
Все спокойно, гладко, тихо.
Современные сайты в большинстве - тысячи окошек, уведомлений, реклама, которая вылетает и закрывает весь экран.
И какой-то 1% мб действительно хороших сайтов.
200 3151393
>>51376
особенно ебучие spa... технология то збс, но исполнение...
201 3151406
Приведите пример использования анонимных классов.
202 3151408
>>51228
Так так так, у вас в резюме написано 10 лет сеньером, это все хорошо, но что если строку умножить на два....
203 3151541
>>51406
Когда лень создавать обычный класс.
204 3151550
>>51541
Умно.
А если без жирноты?
205 3151555
Как же я заебался из-за одного учебного проекта.
Никак не могу добиться желаемого поведения.
А самое обидное, что там целый проект, а в треде хуй расскажешь что именно у тебя происходит и чего ты хочешь добиться.
Блять, ну за що.
206 3151567
>>51550
Если без жирноты, то ни разу не приходил случай, чтобы использование анонимных классов было в идее архитектуры. Лично сам его использовал так: сторонняя библиотека хочет принять в функцию класс из собственной библиотеки. Мне нужно, чтобы получился другой результат после вызова этой функции, но создавать целый класс у себя не хочется, поэтому я прямо там динамично создаю анонимный класс наследник и передаю его функции. Поэтому не знаю о других способах использования анонимного класса, кроме как удобного обхода такого рода ограничений. Да вот те же анонимные функции, тоже ведь тема для удобства.
207 3151573
А вас домашние не дразнят? Ну там вроде "Джуниор ты мой 20 летний" или "Сеньер-помидор", например.
208 3151579
>>51573
Максимум, если не можешь почитать какую угодно технику, скажут: "Ты же программист! Почему не можешь!"
209 3151580
>>51579
Починить*
210 3151583
>>51579
Да тоже сталкиваюсь с этим постоянно. у меня батя системный администратор, но занимаеются абсолютно всей техникой в организации от принтеров до камер и еще сайт им пилит и админит. Постоянно ругается, что я ничего не умею.
211 3151618
>>51376
Это больше к кабанам вопросы, это им обязательно нужно справа внизу чат с менеджером и 10 всплывающих модалок с рекламой
212 3152244
Вкатываюсь в 1с-битрикс. Вопросы?
213 3152332
>>52244
Подумой...
214 3152351
>>52332
Кушоть хочеца
215 3152717
>>52244
Первый год будешь только битриксом заниматься, во второй год можешь выйти на полставки за те же деньги (~40-50к) и по 4 часа задротить норм фреймворк или вообще другой язык и другой стек, через полгода выходишь в отпуск, в отпуске ебашишь по 12 часов и параллельно ищешь работу, обязательно привираешь, если это тру-фреймворк, что уже что-то делал на нём, а если другой стек, то тоже ври, что работал уже с тру-фреймворком.

Ну и вот, спустя 1.5-2 года ты выходишь на норм стек. Правда придётся эти 2 года работать за гроши (~40-50к). Ну и возможно третий год тоже, если не на мидла отсобесишься.

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

Конечно всё познаётся в сравнении. Например, по сравнению с кассиром, оставившим свои мечты далеко позади, ты будешь в более выгодном положении, но ведь ты мог бы лучше, и ты ещё на этапе выбора - можешь или не можешь (не хочешь, выбираешь путь полегче)
216 3152884
>>52717
50к это после устройства, 100к на второгй год, 200к на третий год, а дальше как получится. Зарплаты беру из жизни и hh.
217 3152895
>>42779
Я думаю это больше зависит от чиловости конторки, я работаю меньше 4 часов всегда.

1С это очень неплохо, я бы остался там, и становился экспертом.
218 3153476
>>52895
С каких пор навернуть говна половником стало неплохо?
220 3153521
>>49861

>Куда вкатываться после Yii2


в другой яп лара если боишься голодной смерти симф если хочешь сурйозный энтерпрайз за чуть больший прайс чем лара
221 3153523
>>51406
если нужно сделать мок твоего говна в рантайме а пхпюнит не позволяет использовать религия
222 3153555
Почему данный код выдает 33, а не 5 или 23:
echo 2 + print 3;
Screenshot 2024-05-12 234046.png23 Кб, 1890x74
223 3153596
>>53555
Потому что пхп это язык из говна в говне.
224 3153769
Если стоит домашняя винда, то хуй мне, а не возможность работать с Docker?
225 3153772
>>53769
Можешь поставить на Виндовс VMWARE, в него поставить LInux, а в линуксе докер.
226 3153774
>>53772
поставить на Виндовс VMWARE
в него поставить Linux
в Linux поставить VirtualBox
в VirtualBox поставить Виндовс
в Виндовс поставить Linux
а в него уже поставить кубер

Зато какой уровень изоляции! Ни один хакир не прорвется!
227 3153818
>>53774
Ох, что-то сложно, полегче есть?
228 3153824
>>53818

> полегче есть?



Hyper-V
Но на домшнюю виндоуз его не взгромоздить.
229 3153899
Читаю паттерны проектирования Банды Четырех и не понимаю что имеется ввиду.

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

Про наследование интерфейса понял, а вот про наследование класса - нет.

Есть кто может пояснить этот момент?
230 3154004
>>53899

Да воду льет с заумным видом
Наследование интерфейсов - для описания отличных от родителя интерфейсов
Наследование класса - для описания отличных от родителя обьектов

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

Ну это я так вижу
231 3154144
>>53521
Какой другой яп, пиши подробнее. И на какую зп?
Бекендеры идут либо в яву, либо в GO.
232 3154150
>>54004

>Да воду льет с заумным видом


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

>Наследование интерфейсов - для описания отличных от родителя интерфейсов


>Наследование класса - для описания отличных от родителя классов


Так-то да, а так-то нет. Ноу щит шерлок.

Но вот тебе загадка: есть типы Email и ValidEmail. ValidEmail умеет все что умеет обычный Email, и вообще ничего нового или оригинального в нём нет, все унаследовано. А разница между ними в том, что в базу можно сохранять только ValidEmail, а непровалидированный Email нельзя. https://3v4l.org/hkTDp#v8.3.7
Так вот вопрос: что в данном случае наследуется? Интерфейс, класс или тип?
233 3154159
>>53899

>Читаю паттерны проектирования Банды Четырех


Читай это
1. Head first - объяснение
2. Примеры и тесты https://designpatternsphp.readthedocs.io/ru/latest/index.html
3. Wiki - тут годные примеры.
4. Паттерны на канале Немчинского, в самом начале канала, самые старые (у него там 3 курса по паттернам было, в разных курсах есть недостающие паттерны) + на торренте foxminded новый курс по паттернам.
5. Вторая книга - погружение в паттерны, тоже норм.
Есть еще книга зандстры - там годный DI-контейнер, но все паттерны со всратыми примерами и больше путают.
234 3154177
>>54150
Для друого языка, конечно
Думаю что наследуюется интерфейс, раз они ничем не отличаются больше
Но буду благодарен если обьяснишь
(я вообще фронтендер)
235 3154190
>>54159
Спасибо, анон, за наводки.
Обязательно все гляну.
236 3154201
>>54190
Там тот же GoF, если что, только более понятный, а не текст из 90х.
По ссылке и в вики - примеры на PHP.
В книге Зандстры тоже GOF и немного примеров от Фаулера, текст всрато написан, похоже на гугл переводчик. Но один раз прочитать не помешает. Зандстру нужно читать когда уже опыт имеешь более менее, чтобы понимать нахуя то, нахуя это
237 3154213
Пачаны, хотите скину в тред 2 тестовых и 1 теоретическое, которое мне давали на отклики?
238 3154214
>>54213
Вакансии бэк и фуллстек, джун, джун+.
239 3154225
>>54213
Кидай конечно заебал
240 3154226
>>54213
Кидай, интересно
241 3154232
>>52884
Я и пишу, что первый год 40-50к, второй год 80-100к, но т.к. выходим на полставки ради развития в ларавел, то зп делим на 2 и получаем те же 40-50к, но зато на полставки. А в третий год пиздуем в ларавел мидлом за 100-150к уже на фулл ставку, но придётся врать, что работал с ларавел.
242 3154233
>>54226
>>54225
Бэк, джун:

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

- В хлеву живут 10 коров и 20 кур;
- Корова может давать 8-12 литров молока за один надой;
- Курица может нести 0-1 яйцо за одну кладку;
- У каждой коровы и курицы на ферме есть уникальный регистрационный номер.

Реализовать, используя php, объектно-ориентированную систему: прототип сбора продукции. Реализовать структуру классов, задействовать механизм наследования.

Класс фермы (Farm) должен быть автономным, сам вести учёт номеров животных, сбор и подсчет продукции. Решение должно быть расширяемым, добавление новых типов животных и продукции не должно приводить к модификации непосредственно класса Farm.

Система должна уметь:

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

Реализация графического интерфейса не требуется. Реализация хранения данных в БД или файлах не требуется.

Задание рассчитано на проверку навыков работы с ООП.

Способ первичной инициализации списка животных - на ваше усмотрение.

При запуске скрипта main.php в консоли:

- Система должна добавить животных в хлев (10 коров и 20 кур).
- Вывести на экран информацию о количестве каждого типа животных на ферме.
- 7 раз (неделю) произвести сбор продукции (подоить коров и собрать яйца у кур).
- Вывести на экран общее кол-во собранных за неделю шт. яиц и литров молока.
- Добавить на ферму ещё 5 кур и 1 корову (съездили на рынок, купили животных).
- Снова вывести информацию о количестве каждого типа животных на ферме.
- Снова 7 раз (неделю) производим сбор продукции и выводим результат на экран.
242 3154233
>>54226
>>54225
Бэк, джун:

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

- В хлеву живут 10 коров и 20 кур;
- Корова может давать 8-12 литров молока за один надой;
- Курица может нести 0-1 яйцо за одну кладку;
- У каждой коровы и курицы на ферме есть уникальный регистрационный номер.

Реализовать, используя php, объектно-ориентированную систему: прототип сбора продукции. Реализовать структуру классов, задействовать механизм наследования.

Класс фермы (Farm) должен быть автономным, сам вести учёт номеров животных, сбор и подсчет продукции. Решение должно быть расширяемым, добавление новых типов животных и продукции не должно приводить к модификации непосредственно класса Farm.

Система должна уметь:

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

Реализация графического интерфейса не требуется. Реализация хранения данных в БД или файлах не требуется.

Задание рассчитано на проверку навыков работы с ООП.

Способ первичной инициализации списка животных - на ваше усмотрение.

При запуске скрипта main.php в консоли:

- Система должна добавить животных в хлев (10 коров и 20 кур).
- Вывести на экран информацию о количестве каждого типа животных на ферме.
- 7 раз (неделю) произвести сбор продукции (подоить коров и собрать яйца у кур).
- Вывести на экран общее кол-во собранных за неделю шт. яиц и литров молока.
- Добавить на ферму ещё 5 кур и 1 корову (съездили на рынок, купили животных).
- Снова вывести информацию о количестве каждого типа животных на ферме.
- Снова 7 раз (неделю) производим сбор продукции и выводим результат на экран.
243 3154235
>>52895
При чём тут 1С и эксперт??? Речь про Битрикс.
244 3154243
>>54225
>>54226
Фуллстек, джун/джун+

Нужно написать микро-приложение, делающее выборку (копирование статей) из wikipedia во внутреннюю БД, с возможностью дальнейшей навигации и поиска по скопированным статьям:

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

- После ввода ключевого слова и нажатии кнопки «Скопировать» должен производиться запрос к сайту wikipedia.org c поиском статьи по соответствующему слову/словосочетанию (для простоты примем, что оно полностью совпадает с названием статьи в Wikipedia). Запрос и копирование контента может производится любыми спобосами в т.ч. используя MediaWiki API.

- Если целевая статья найдена, то нужно скопировать голый текст статьи (plain text) без тегов в собственную БД с последующим разбором на слова-атомы (любое сочетание символов без пробелов и знаков препинания). Эти данные потребуются для осуществления поиска по ключевому слову (см. ниже).

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

- Поиск должен работать по внутренней БД на основе слов-атомов содержащихся в статье (учитывается точное совпадение, морфология не нужна). Слова-атомы должны храниться в отдельной таблице, связь со статьями осуществляется через специальную связующую таблицу (ID слова, ID статьи, Кол-во вхождений). Результаты поиска выдаются в порядке убывания кол-ва вхождений ключевого слова в статье.

Под словом атомом подразумевается любая последовательность символов [a-Zа-Я0-9]. Для примера, во фразе: «Юрий Гагарин полетел в космос в 1961 году» будут следующие атомы: юрий, гагарин, полетел, в, космос, 1961, году.

- При клике на заголовок статьи, ее содержимое должно открывается в блоке справа (без перезагрузки страницы и без использования iframe).

Обязательно использование следующих библиотек и приемов:
- соблюдение принципа MVC (в случае реализации без фреймворка)
- MySQL: таблицы innodb c внешними ключами
- скрипты должны нормально работать на PHP 8.2 (без вывода каких-либо ошибок при error_reporting = E_ALL)

Данное требования не обязательное, но большим плюсом будет реализация системы на любом php-фреймворке (если есть опыт, то можно взять полноценный фреймворк типа Laravel, если опыта не достаточно, то совет - использовать микро-фреймворк или нативный подход без фреймворка). Также одними из оценочных параметров будет:
- Внешний вид интерфейса, никакой графики рисовать не нужно, но хорошая блочная верстка с соблюдением правил типографики и аккуратным внешним видом будет большим преимуществом. Возможно использование css-фреймворков (как вариант, bootstrap или tailwindcss).

- Аккуратный код (форматирование кода, поддержка стандарта кодирования PSR, комментарии к коду phpdoc). Это один из наиболее важных критериев, просьба обратить на него внимание.
244 3154243
>>54225
>>54226
Фуллстек, джун/джун+

Нужно написать микро-приложение, делающее выборку (копирование статей) из wikipedia во внутреннюю БД, с возможностью дальнейшей навигации и поиска по скопированным статьям:

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

- После ввода ключевого слова и нажатии кнопки «Скопировать» должен производиться запрос к сайту wikipedia.org c поиском статьи по соответствующему слову/словосочетанию (для простоты примем, что оно полностью совпадает с названием статьи в Wikipedia). Запрос и копирование контента может производится любыми спобосами в т.ч. используя MediaWiki API.

- Если целевая статья найдена, то нужно скопировать голый текст статьи (plain text) без тегов в собственную БД с последующим разбором на слова-атомы (любое сочетание символов без пробелов и знаков препинания). Эти данные потребуются для осуществления поиска по ключевому слову (см. ниже).

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

- Поиск должен работать по внутренней БД на основе слов-атомов содержащихся в статье (учитывается точное совпадение, морфология не нужна). Слова-атомы должны храниться в отдельной таблице, связь со статьями осуществляется через специальную связующую таблицу (ID слова, ID статьи, Кол-во вхождений). Результаты поиска выдаются в порядке убывания кол-ва вхождений ключевого слова в статье.

Под словом атомом подразумевается любая последовательность символов [a-Zа-Я0-9]. Для примера, во фразе: «Юрий Гагарин полетел в космос в 1961 году» будут следующие атомы: юрий, гагарин, полетел, в, космос, 1961, году.

- При клике на заголовок статьи, ее содержимое должно открывается в блоке справа (без перезагрузки страницы и без использования iframe).

Обязательно использование следующих библиотек и приемов:
- соблюдение принципа MVC (в случае реализации без фреймворка)
- MySQL: таблицы innodb c внешними ключами
- скрипты должны нормально работать на PHP 8.2 (без вывода каких-либо ошибок при error_reporting = E_ALL)

Данное требования не обязательное, но большим плюсом будет реализация системы на любом php-фреймворке (если есть опыт, то можно взять полноценный фреймворк типа Laravel, если опыта не достаточно, то совет - использовать микро-фреймворк или нативный подход без фреймворка). Также одними из оценочных параметров будет:
- Внешний вид интерфейса, никакой графики рисовать не нужно, но хорошая блочная верстка с соблюдением правил типографики и аккуратным внешним видом будет большим преимуществом. Возможно использование css-фреймворков (как вариант, bootstrap или tailwindcss).

- Аккуратный код (форматирование кода, поддержка стандарта кодирования PSR, комментарии к коду phpdoc). Это один из наиболее важных критериев, просьба обратить на него внимание.
245 3154244
>>54150

>Но вот тебе загадка: есть типы Email и ValidEmail. ValidEmail умеет все что умеет обычный Email, и вообще ничего нового или оригинального в нём нет, все унаследовано. А разница между ними в том, что в базу можно сохранять только ValidEmail, а непровалидированный Email нельзя. https://3v4l.org/hkTDp#v8.3.7


>Так вот вопрос: что в данном случае наследуется? Интерфейс, класс или тип?



Интерфейс точно нет, т.к. интерфейсы определяют только сигнатуры методов. ValidEmail является подклассом класса Email. Твёрдо и чётко.
246 3154247
>>54233
Вот это хорошая задача. Все бы такое давали. Даже просто посмотреть как кандидат напишет симуляцию времени и уже многое понятно будет.

Есть только один минус. Реальные задачи в сто раз скучнее и нихуя симулировать там не придется.
247 3154248
>>54225
>>54226
Тестовые вопросы.
! Не собес !

#1
В БД mysql есть одна единственная таблица «abc» с полями: id (int), name (varchar), cnt (int). В таблице содержится порядка 10 млн записей. Что нужно сделать, что быстро работали следующие запросы (3 разных случая)? Все остальные факторы кроме скорости чтения не критичны.
SELECT FROM abc WHERE name = 'xxx' AND cnt = yyy
SELECT
FROM abc WHERE cnt = xxx AND name LIKE 'yyy%'
SELECT FROM abc ORDER BY cnt ASC

#2
Как на php можно перенаправить стандартный лог ошибок в свой кастомный файл?

#3
Есть код и запрос к БД, чтобы вы в нем изменили? Почему?:
$DB->query("SELECT
FROM abc WHERE id=" . $_GET['id']);

#4
В БД есть таблица заказов (orders) с полями:
date - дата оформления заказа
customer_name - имя клиента
order_price - сумма заказа

Напиши sql запросы для выборки:
Запрос, который покажет сколько денег принес каждый отдельно взятый покупатель с группировкой по месяцам.
Запрос, который выведет имена клиентов, у которых суммарные покупки за весь период превысили 10 тыс. руб. и одновременно никогда не было заказов менее 500 руб.

#5
Есть две javascript-функции:
function f(a,b) { return a+b }
и
var f = function(a,b) { return a+b }

Есть ли между ними разница? Если есть то какая?

#6
Чем принципиально отличаются между собой условия LEFT JOIN и INNER JOIN в sql? Какой вариант JOIN может дать потенциально больше результатов (строк) и почему?

#7
Вам нужно реализовать консольный php-скрипт на сервере под Unix, который бы выводил каждые 15 секунд фразу «Hello». После вывода «Hello» скрипт всегда завершает работу. Напишите этот скрипт и пошагово расскажите, что нужно сделать, чтобы выполнялись исходные условия.

#8
Напишите на php функцию для распределения рублевой скидки по купону на все товары в корзине пропорционально стоимости товара. На входе в функцию передаются два параметра: размер скидки в рублях (!) и массив из цен товаров, на выходе тот же массив цен, но уже с учетом скидки: distribute_discount(int $discount, array $prices) → return array $prices;
247 3154248
>>54225
>>54226
Тестовые вопросы.
! Не собес !

#1
В БД mysql есть одна единственная таблица «abc» с полями: id (int), name (varchar), cnt (int). В таблице содержится порядка 10 млн записей. Что нужно сделать, что быстро работали следующие запросы (3 разных случая)? Все остальные факторы кроме скорости чтения не критичны.
SELECT FROM abc WHERE name = 'xxx' AND cnt = yyy
SELECT
FROM abc WHERE cnt = xxx AND name LIKE 'yyy%'
SELECT FROM abc ORDER BY cnt ASC

#2
Как на php можно перенаправить стандартный лог ошибок в свой кастомный файл?

#3
Есть код и запрос к БД, чтобы вы в нем изменили? Почему?:
$DB->query("SELECT
FROM abc WHERE id=" . $_GET['id']);

#4
В БД есть таблица заказов (orders) с полями:
date - дата оформления заказа
customer_name - имя клиента
order_price - сумма заказа

Напиши sql запросы для выборки:
Запрос, который покажет сколько денег принес каждый отдельно взятый покупатель с группировкой по месяцам.
Запрос, который выведет имена клиентов, у которых суммарные покупки за весь период превысили 10 тыс. руб. и одновременно никогда не было заказов менее 500 руб.

#5
Есть две javascript-функции:
function f(a,b) { return a+b }
и
var f = function(a,b) { return a+b }

Есть ли между ними разница? Если есть то какая?

#6
Чем принципиально отличаются между собой условия LEFT JOIN и INNER JOIN в sql? Какой вариант JOIN может дать потенциально больше результатов (строк) и почему?

#7
Вам нужно реализовать консольный php-скрипт на сервере под Unix, который бы выводил каждые 15 секунд фразу «Hello». После вывода «Hello» скрипт всегда завершает работу. Напишите этот скрипт и пошагово расскажите, что нужно сделать, чтобы выполнялись исходные условия.

#8
Напишите на php функцию для распределения рублевой скидки по купону на все товары в корзине пропорционально стоимости товара. На входе в функцию передаются два параметра: размер скидки в рублях (!) и массив из цен товаров, на выходе тот же массив цен, но уже с учетом скидки: distribute_discount(int $discount, array $prices) → return array $prices;
248 3154251
>>54243
А вот это уже рак ебаный. Писать приложение ага, делать больше нехуй. "Аккуратно" шлем этих шизиков нахуй.
249 3154255
>>54159
У Зандстры там не только паттерны, но и углублённое объяснение пхп, что полезно.
250 3154261
>>54251
У компании, от лица которой кидали мне тестовое такой план (они сами написали):
- сначала читают отлик - если норм, то шлет тестовые вопросы;
- если норм тестовые вопросы, то шлют тестовое - сделать мини-приложение;
- если и тестовое норм, то устраивают собес;
- если нужно, то лайвкодинг и потом, мб, тебя возьмут.

Вакансия джун, 40-80к
251 3154264
>>54251

>Писать приложение ага, делать больше нехуй


А на работе что делать будешь? Решать задачи про фермеров и подсчет куриц в курятнике?
252 3154269
>>54264
Ну на работе платят деньгу, буду делать приложение. А тут сидеть пердеть невесть сколько дней, как бэ я что - раб?
253 3154275
>>54264
>>54261
На работе тебе за РУТИНУ платят ЗАРПЛАТУ. А здесь куча рутины: поднять базу, вебсервер, все это протестить, прокликать. Если делать НОРМАЛЬНО, то это несколько рабочих дней возни.

А в первом варианте, буквально в затравке задачи написано что это РАЗВЛЕЧЕНИЕ. Способ отвлечься от рутины с пользой.
254 3154304
>>54261
c зп 40к конечно это сильно
А вилка еще от чего зависит, лол?
Я думаю если прошел тестовое - то 80.
А там видимо как обычно, ты прошел все задания, а потом тебя будут пытаться попускать на 40к

При этом нужно знать:
sql,php oop,mvc,фреймворк,АККУРАТНЫЙ КОД,поднять веб сервер с этим говном, хотя бы немного линуксовые команды
255 3154307
>>54248
7 и 8 это вопросы-подъебки. Они к пхп вообще никакого отношения не имеют.
Первый вопрос "как в юникс системе сделать Х?", знание пхп тут не поможет никак.

Второй вопрос вообще из области финансов и бухгалтерии. "Как разделить скидку 17₽ на 3 товара?". Это что-то из разряда: "а в какую сторону округляем дробные копейки?".
256 3154308
>>54304
Просто напоминаю, что в 1с можно зайти с улицы на 25-50к не зная абсолютно нихуя. А там спокойно при желании до 150
Конечно ты в меньшей степени будешь технарем, но если вопрос только в бабках - 1с лучше галер
257 3154345
>>54232
Не понимаю зачем уходить в Laravel, если оставаясь с битриксом можно получать столько же.
258 3154352
>>54345
пацаны из пхп-треда засмеют если узнают что ты битриксойд
259 3154478
>>54345
Главное ЗА ЧТО получать. Что непосредственно приходится делать. Насколько это престижно/приятно? Если завтра за уборку толчков заплатят больше, ты пойдешь толчки мыть? То-то же.
260 3154498
>>54243
О, я это делал. Не взяли :(
(после этой хуйни перестал вообще тестовые делать)
261 3154512
>>54498
А фидбек какой был? Что сказали про твое тестовое?
262 3154534
>>54512
Ну исходя из того что я все таки побывал на собесе, тестовое было "более менее". Хотя спустя время(чуть меньше год) смотря на него испытываю стыд.
263 3154581
>>54345
За тем, что битрикс вот-вот схлопнется, а с ларавел ты можешь на любой мvc-фреймворк перейти.
264 3154604
>>54498
Я тоже делал.
Прочитали сообщение о том, что выполнил тестовое и ничего не ответили.
265 3154616
>>54498
>>54604
А все потому что вот это >>54233 тестовое даже проверять интересно. Как проводящий собесы говорю.

А эту дрисню >>54243 и писать пытка, и проверять пытка. Просто имаджинируйте ебло синьора, у которого месяц подряд утро начинается с проверки этой хуйни. Опять же, как проводящий собесы говорю: 99% случаев это никто даже не читает нахуй. Смотрят на пару ключевых вещей, типа кодстайла, array() со скобочками и все нахуй.
266 3154618
>>54616
Нахуя смотреть array(), если рубокоп автоматически меняет их по PSR???
267 3154630
>>54618
Так откуда они тогда нахуй в коде возьмутся? Значит что-то ту не так.

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

Бесплатный труд никто не уважает. Особенно когда вы лезете как тараканы в бесконечную очередь.
268 3154636
>>53596
А как она может возвращать один, если она уже возвращает то что ей передали (строку, число, null)?
269 3154660
>>54636

>она уже возвращает то что ей передали


Ну продемонстрируй как print возвращает то что ему передали.
https://3v4l.org/qSStf
270 3154711
>>54636
То что ей передали, она выводит на экран. А потом возвращает один.
Можно проверить при помощи var_dump(print ('')).

Тебе нужно на php.net посмотреть описание (сигнатуру) данной функции и в будущем почаще туда заглядывать.
271 3154735
>>54144
ну так ты сам расписал можешь еще в шарп попробовать но его контингент на доске самый вонючий... заставляет задуматься
272 3154897
>>54581

>За тем, что битрикс вот-вот схлопнется, а с ларавел ты можешь на любой мvc-фреймворк перейти.


Битрикс это тоже MVC, схлопнется скорее Laravel, он существует 13 лет, когда как битрикс уже больше 20.

>>54478

>Главное ЗА ЧТО получать.


Ты сравниваешь смену профессии со сменой фреймворка, это разные вещи, хотя может кто то реально боится говорить что он программирует на битриксе.
273 3154923
>>54897

>Ты сравниваешь смену профессии со сменой фреймворка


Ок. Поправлю аналогию.

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

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

Так понятно?
274 3154931
>>28808 (OP)
Где и как искать чиловую работу на пхп где можно проебываться и работать по часу в неделю?
275 3154938
>>54923
Если бы мне предложили большую сумму, за работу дворника возле моего дома, то я бы согласился. Все работы хороши, мне бы не хотелось общаться с людьми, которые жертвуют своим временем, что бы по каким то выдуманным стандартам быть круче и лучше. Вот если бы за Laravel больше платили, это другое дело.
276 3154941
>>54938

>Все работы хороши


Как по одной фразе понять что додстер ни дня в жизни не работал.
277 3154942
>>54308

> не зная абсолютно нихуя


очко ставишь что нихуя?
278 3154951
>>54941
Уважение к людям любых профессий это признак того что я не работал?...
279 3154960
>>54942
Ставлю и рот и очко
280 3154966
>>54951
Нет, скорее "я бы работал дворником и кем угодно, если бы.."
281 3154973
>>54966
Я работал дворником до программирования, мне больше нравилось. Придем, в каморке нальем, поедим, разговоры сразу интересные начинались, участок не большой, работы было часто на пару часов. Уходил как отдохнувший, зарядка для тела, и люди приятные.
282 3155029
>>54973
Но ты ни дворником не работал, ни программистом. Ты шиз-фантазер.
283 3155126
>>54973

Чего только не напридумывают тут сидя
284 3155159
>>55029
Как раскусил? Мне для совершенствования стратегии по наёбу вкатунцов.

27 лвл тнн рнн лист 70к фуллстек битрикс программер
285 3155198
У вас так тоже, вкатуны?
Чуть больше года занимаюсь php и...
Меня постоянно преследует одно негативное ощущение.
Ощущение, что все хуево, все зашло в тупик, нет прогресса в коде.
Я это ощущение так часто ощущаю, что просто игнорирую по типу "Да-да, все хуево, ну и похуй, ебашим дальше".
Но все-таки осадочек есть.
Я не стою на месте, изучаю что-то каждый день.
Понимаю, что часть знаний и умений придет со временем и опытом.
К примеру, вот я тут писал про книгу Банду Четырех.
Я ее читал еще осенью того года.
И тогда я нихуя не понимал.
А сейчас нахожу смысл в этих словах.
Мб я не стал гением ООП, но до меня начинает доходить как правильнее думать.
изображение.png40 Кб, 902x254
286 3155201
Мечта.
287 3155202
>>55198
Гений ООП, выше по треду было тестовое с симуляцией фермы. Животные на ферме производят "продукт" с определенной периодичностью. Как реализуешь течение времени на ферме? ООП буквально для этой задачи придумывался - создать объекты и запустить симуляцию. Что по этому "банда питухов" пишет?
288 3155209
>>55202
Я и не гений ООП, анонче.

Задачу с фермой решал. И тогда еще больше понял, что у меня все хуево с проектированием. Собственно, поэтому я и читаю Банду Четырех. У них в книге (в начале) довольно неплохо рассказывается логика объектно-ориентированного проектирования.
289 3155210
>>55209
Логика рассказывается с точки зрения банальной эрудиции. Ооп понимается и очень неплохо. Понимаются понятия, определяются определения. Только вот

>Как реализуешь течение времени на ферме?


Где?
290 3155211
>>55210
Что ты ко мне приебался с этой задачей?

>Как реализуешь течение времени на ферме?


Я ебу?

Вот тебе строка из моего кода:
$productsForFirstWeek = $farm->receiveProductsIn_N_Days(7);

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

И похуй, что хуйня. Сделал как мог.
Мб щас почитаю книгу и сделаю лучше.
291 3155213
>>55211

>Что ты ко мне приебался с этой задачей?


Пытаюсь понять что там до тебя "начинает доходить". Судя по всему нихуя.

Массив есть, табличка с продукцией есть. Где ООП?
Доярка типа так и подкатывает к корове и грит: ну че давай сразу за неделю выливай молока, я в область на ногточки поеду, отдохну от тебя.
292 3155215
>>55213
Если я раньше нихуя не понимал, а сейчас нахожу смысл в том, что написано в книге означает то, что я сейчас с ебу возьму и спроектирую классы для любой задачки?
293 3155216
>>55213
Ты понимаешь разницу между "понять прочитанное" и "уметь применять на практике прочитанное"?
294 3155218
>>55215
>>55216
Но объяснить что конкретно ты понял ты тоже не можешь?
295 3155222
>>55218
Я могу написать, серьезно.
Но я же знаю, что ты меня засрешь.
296 3155223
>>55222
Ну а сам ты как думаешь?
Задачу ты решить не можешь, применить на практике понятое ты не можешь. Если ты это понятое озвучишь, то тебя "засрут".

Есть подозрение что ты нихуя не понял.
297 3155224
>>55223

>Есть подозрение что ты нихуя не понял.


Ты моя мама, что так печешься обо мне?

>Ну а сам ты как думаешь?


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

>Ты моя мама, что так печешься обо мне?


Это ведь ты начал рассказывать что ты наконец-то что-то понял.
Я попросил тебя решить тестовую задачу. Ты поплыл.
Я спросил тебя что ты понял. Ты порвался.

>считаешь себя еба-программистом


Еба, не еба, но я задачу создания симуляции фермы решить могу. В ооп стиле. А у тебя эксель получился вместо ооп.
299 3155235
>>55230

>Я попросил тебя решить тестовую задачу. Ты поплыл.


Смысл мне ее решать, если я еще не дочитал книгу?

>Я спросил тебя что ты понял. Ты порвался.


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

>Еба, не еба, но я задачу создания симуляции фермы решить могу. В ооп стиле.


Так бери с полки пирожок, анонче.
300 3155243
>>55235

>Аноны я понял


>Что ты понял?


>Не скажу


Каждый раз забываю в каком треде нахожусь. Столько шизиков и ебанашек даже в /b нет.
301 3155246
>>55243
Эх.
Когда-нибудь я перестану вестись на тебя.
Мне кажется, что ты тот самый анон, который иногда тут поебывает мозги людям в треде.
У тебя одна и та же тактика - начать выяснять профессионализм собеседника, а когда идешь с тобой на конструктивный диалог, то ты сливаешь тему в другое русло.
Вот и тут слил. Реально - хотел бы узнать что я там понял, так согласился бы на мое условие.
302 3155249
>>55246
Не знаю как там в мире шизов, а в нормальном мире когда что-то хотят узнать - спрашивают. Я спросил. Меня интересовал ответ на вопрос, а не твоя шиза и какие-то выдуманные правила.
303 3155365
>>55029
Я тебя как то задел? Ты никак не аргументируешь свои слова, это выглядит очень странно.
304 3155381
Если в вакансии есть Ларка, но есть и битрикс, то стоит суваться?
(Из-за ларки, конечно, в надежде, что они дадут выбор писать на ларке, а не битриксе).
305 3155414
>>55381
Нет, будешь писать на битриксе, а потом как "подрастешь" начнут доверять лару
306 3155460
>>55381
А может и нет лары вообще,лол
307 3155623
У меня js запрашивает у сервера html-код.
Вместо того, чтобы создавать очередной контроллер для этого или callback в маршрутах, лучше сделать внутреннее API?
308 3155629
Почему так много вакансий на битрикс?
309 3155647
>>55629
чтобы ты мог работать, дурак
310 3155663
>>55647
Но я не хочу писать на битрикс. :(
311 3155680
А обязательно перед битриксом изучать тру-фреймворк? Или пох и можно просто сразу заняться битриксом? Мне бы не хотелось тратить драгоценное время на хуиту. Планирую заниматься битриксом до конца жизни либо моей либо битрикса.
312 3155742
>>55663

>не хочу


будешь!
313 3156077
Нужно ли знать как работать с папками, все эти mkdir?
314 3156157
>>56077
Нужно кому?
315 3156172
>>56157
Битриксоиду? Надо?
316 3156178
>>55623
а api ты где опишешь
317 3156247
>>56172
А открыть доку и прочитать когда надо будет с папками работать битриксоид не может?
318 3156284
>>56247
Я курсы смотрю от гикбрейнс пока что. Там ничего про это нет.
319 3156334
>>56284
А курсы как проходить курсы ты прошел?
Пчел, надо уметь УЗНАТЬ. Понадобилось - узнал. Никто блядь не учит доку, её читаю по мере необходимости.
320 3156354
>>56077
А хули там знать?
321 3156359
>>56077

>Нужно ли знать как работать с папками, все эти mkdir?



Нууу, с одной стороны да. А с другой на собесе не спросят, дадут задачу на это - разберешься
322 3156431
Даже если я работаю с Laravel, я должен выносить sql-запросы из контроллера в отдельный класс-сервис для работы с БД?
323 3156438
>>56431
Нет.
324 3156447
>>56431
Далбаёб, laravel - это mvc фреймворк. Если следовать логике mvc, то всё что относится к работе с БД, все валидации и проч должно сидеть в модели. Как говорят, thin controllers, fat models. Класс-сервис это ты по-сути переизобретаешь модель. Либо ты просто не понимаешь философию mvc.
325 3156450
>>56447
Ну да, хуево понимаю MVC.
+ Меня смутило, что в Laravel для каждой таблицы создается Модель и класс Модели тут просто посредник между кодом и соот. таблицей. Классы Модели, которые создаются в app/Models, это и есть сущности? Если мое приложение генерирует сущность Post, то я должен использовать класс, который сгенерится в папке app/Models?
И потом его же использовать, чтобы сохранить в БД?
326 3156452
Чем отличный хороший джуновский код от кода миддла/сеньора?
327 3156456
>>56452
Код мидла/сеньера не выдаст плавающий баг через пару тысяч запусков например
328 3156463
>>56456
К делу мой пост не отросится, но вот вчера весь день ебался с многопоточностью. Множество тредов обмениваются сообщениями и не должны блокироваться.

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

Синьор.
329 3156498
Допустим такую ситуацию:
Есть класс Service1 и Service2.
Service2 использует методы Service1.
Затем, вместо Service1, мы хотели бы использовать другой класс, например Service3.
Я правильно понимаю, что проблема тут решается тем, что заводится интерфейс, в нем объявляются сигнатуры Service1, в а коде Service2 вместо Service1 прописывается интерфейс в тайпхинте?
330 3156512
>>56498
Нет, неправильно.
331 3156514
>>56512
Пиши как правильно.
!6Applef0d2 332 3156516
>>56431
>>56450

>И потом его же использовать, чтобы сохранить в БД?


Можешь создать класс-репозиторий, который будет класть данные в базу. Но все равно для каждой сущности придется делать свой репозиторий, потому что так удобнее этим пользоваться.
Это репозитории в популярном представлении
https://habr.com/ru/articles/248505/
Тут представление человека, который поел говна
https://habr.com/ru/articles/316836/

>Меня смутило, что в Laravel для каждой таблицы создается Модель


Это вроде как одна часть из сути MVC. В БД в таблицах хранятся сущности. В коде сущности хранятся в классах. Поэтому что твои модели, это представители сущностей из таблицы. Ты с какого фреймворка перекатываешься?
333 3156529
>>56498
Может передать два сервиса или создать сервис4, который работает с сервисом3?

>в тайпхинте


Если в тайпхинте конструктора указать интерфейс, то Di не сможет ведь подставить зависимость. Значит сервис2 ты передаешь в другие методы сервиса1? Если так, то я бы отказался от такого и передавал результат работы сервиса2, а не его самого.
334 3156533
>>56529

>Если в тайпхинте конструктора указать интерфейс, то Di не сможет ведь подставить зависимость.


Разве Laravel не позволяет связать между собой интерфейс и класс-реализацию? Там вроде есть какой-то метод привязки.
Не то? https://laravel.com/docs/10.x/container#binding-interfaces-to-implementations

>Может передать два сервиса или создать сервис4, который работает с сервисом3?



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

>создать сервис4, который работает с сервисом3?


Зачем создавать связь между сервисом3 и сервисом4?
335 3156535
>>56516

>Ты с какого фреймворка перекатываешься?


С сырого php на Laravel.

Спасибо за ответ.
Текст по ссылкам прочитаю позже.
336 3156553
>>56533
Не щарю в ларавель, но ты планируешь делать так?
$this->app->bind(Интерфейс::class, Сервис1::class);
$this->app->bind(Интерфейс::class, Сервис3::class);

public function __construct(protected Интерфейс $сервис) {...}
337 3156562
>>56553
Э-э-э...
Короче, чел, все это был теоретический вопрос.
У меня нет пока что практической надобности все это реализовывать.
И то, каким образом это реализуется в Laravel, это вообще отдельное дело. Я больше про логику ООП спрашивал.
Часто в статьях про полезность интерфейса, приводят пример с тем, что нужно новая реализация и для этого подсовывают интерфейс, а не конкретный класс. А потом уже аргументом дают объект определенного класса-реализации. Я только спрашивал правильно ли я понял шаги, которые нужно предпринять для того, чтобы разрулить ситуацию, описанную выше.
338 3156601
>>56562

>правильно ли я понял шаги


Неправильно. Если тебе нужно поменять используемый сервис, то ты МЕНЯЕШЬ СЕРВИС. Был один - стал другой. Причем тут интерфейс вообще?
IMG20240515132102.jpg149 Кб, 1080x967
339 3156754
На это мы откликаемся?
340 3156781
>>56754
Я вот дописываю код за 4 программистами, у которых тоже была свобода действий при решений задач. Где-то graphql, где-то простой rest, где-то просто ссылки, которые в гете читают токен и json возвращают. С другой стороны, никто не триггерит отказом пул реквестов.
200078.jpg16 Кб, 416x258
341 3156826
Какой же у пхп ебнутый синтаксис. Вот здесь например, интуитивно хочется ввести this->$name, но все надо писать наоборот - у тебя метод обращения к переменной пишется как переменная, а свойство которая переменная, надо писать просто по имени. Смотри не перепутай, почему так - да хуй знает, мы ещё не определились у нас свойства класса это переменная, или свойство класса с отдельным модификатором.
342 3156852
>>56826
Все логично.
Ты обращаешься к переменной класса, а не к значению переменной.

>Какой же у пхп ебнутый синтаксис.


Попиши еще неделю и привыкнешь.
343 3156854
Сколько бы бугурта ни писали про php, а я его всегда буду любить.
Простой, логичный язык (если не лезть в какие-то дебри).
В сравнении с js просто рай.
Как лампово у меня прошло обучение php и как странно обучение js.
ООП в php красивое, логичное, ООП в js какой-то мрак - объекты существуют сами по себе, без классов. Объекты могут пиздить функционал другого объекта, просто объявив у себя свойство prototype, и так уж и быть, можно создать классы.
А в php просто - объявил класс, написал new ClassName() и все, все просто и готово. Или я чего-то не знаю?
344 3156861
>>56826
А хули ты думал - язык говна.
Как в нормальных языкаш пишется? Да просто "name". Ну на крайняк "this.name", и все вызовы по цепочке через "." - "farm.barn.cow.feed(food)"

Но теперь ты в языке говна. Доллары, закорючки блядь какие-то, побольше слов.
345 3156898
>>56861
В сишке и в сиплюсишке пишется a->b когда a - поинтер на структуру
346 3156927
>>56898

>пишется


Или не пишется. Смекаешь?
347 3157081
>>56927
Ну хочешь, можешь не писать в ООП-стиле. Пиши процедурным. Кто ж запрещает-то, а, другалёчек-вкатунёчек?
348 3157084
>>56431
По-хорошему у тебя должен быть отдельный слой приложения. В таком случае контроллеры становятся ответственными лишь за работу с http-обертками, сессиями и куки.

Так, например, PostController::create() получает данные от пользователя и делегирует вызов сервису PostService::create(). Сервис пытается создать запись в базе данных и передает управление обратно контроллеру. После чего контроллер возвращает пользователю http-ответ с сообщением об успехе или неудаче операции.

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

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

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

Отдельный доменный слой означает, что вычисления перестали зависеть от фреймворка и ядро приложения можно запустить хоть в Laravel, хоть в Symfony, хоть на самописных компонентах.

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

>>56447

> fat models


Неактуально для Eloquent. Eloquent модели - это ActiveRecord'ы, по умолчанию ответственные за взаимодействие с базой данных и представление табличной записи в виде объекта. Если дополнительно нагрузить их логикой, получится каша.

Чтобы делать толстые модели, придется либо использовать ORM, реализующую шаблон DataMapper, либо воспринимать Eloquent'овские модели как DTO и транслировать их в непосредственно доменные сущности.
349 3157131
>>57081
Причем здесь ооп вообще, еблан?
В плюсах есть объект а есть ССЫЛКА НА ОБЪЕКТ. Это не одно и тоже и к ссылке ты как к объекту обращаться не можешь.
Поэтому ты пишешь (*cowREFERENCE).milk или ЕСЛИ ХОЧЕШЬ cowREFERENCE->milk
Это называется ДЕРЕФЕРЕНСИНГ. Очень специфичная штука. А напрямую к свойствам и методам объекта ты обращаешься как и везде cow.milk

Офк в пхп никакого дереференсинга нет. И если в плюсах стрелочка это способ сложную вещь сделать проще, то в пхп это ебучая графомания на ровном месте.
350 3157134
>>57131
У тебя в плюсах this это референс или ссылка?

мимо
351 3157138
Ну и почему графомания. В перле вообще три символа $, @ %
352 3157141
>>57138
И тоже кстати $obj->prop
353 3157143
>>57084

>отдельный слой


>интерфейс взаимодействия


>слой для бизнес-логики


>слой приложения


>реализована в доменных службах


>доменный слой


>ядро приложения


>на самописных компонентах


>доменный слой


>менять стек технологий


>толстые модели


>шаблон DataMapper


>модели как DTO


>доменные сущности


Ну ты и насрал.
354 3157146
нормально делай, нормально будет
355 3157147
>>57134
this это УКАЗАТЕЛЬ
Вот только в плюсах чтобы обратиться к свойству ВНУТРИ класса this использовать не обязательно, просто обращаешься по имени свойства.
В отличии от пхп говна.

>>57138
>>57141
Ну дык самый пиздатый пример для подражания. Надо еще их брайнфака что-нибудь перенять.
356 3157151
>>56854
Поддвачну. В пыхе можно писать как хуяк-хуяк и вбитрикс и будет все нормалды. Так и можно делать полноценную DDD CQRS залупу и приложения уровня "джавапиздец". Причем джавапиздец получается менее душный чем в самой джаве.
357 3157155
>>57147
Время было суровое - подражали кому могли. А сейчас же вротпрес не выкунуть ради красивого синтаксиса. Точнее можно выкинуть пхп из вордпреса и будет вордпрес со своим интерпритатором и никому не нужный красивый пыхыпы...
358 3157453
>>57084
Спасибо за ответ, анон!
359 3157521
Что анон думает про анемичную модель?
360 3157525
>>57521
Что ее 99% используют по дефолту. Потому что легче так думать : взял данные, побработал данные, положил результат. Рич модель выглядит как притягивание за уши ооп, потому что с точки зрения опыта кодеров главное это фреймворки и инфраструктура, а бизнеслогика лежит где-то на перефирии их сознания.
361 3157674
>>56498

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

Они могут зависеть от одного и того же модуля(интерфейса), но прям друг другу дрюкать методы - это ты спагетти хуйню очень быстро наваяешь.
362 3157716
>>28808 (OP)

>изучаем язык PHP


>(а также JS/CSS/HTML


Почему такое только в php встречается?
Какую вакансию не открой кабанчик хочет и знания фронта и бека, но платят как за что-то одно.
Нахуй его учить, спрашивается?
363 3157751
>>57716
Открой asp.net или ruby или java или nodejs или петухончик свой любимый. Везде определённый процент вакансий с требованием знания вротенда есть. Особенно на асп.нет, где ангуляр нужон. А теперь иногда и реакт. В пхп по крайней мере юзается либо жиквери либо вьюжс, что гораздо легче нежели ангуляр. А в основном и вовсе просто HTML CSS JS, что как бы является неоспоримой БАЗОЙ для любого веб-разработчика.

Какой же ты веб-разработчик, если не знаешь ТРЁХ КИТОВ вебни???
364 3157773
>>57751
Правильно, нужно быть человеком-оркестром.
Лучше знать всего по вершкам, чем знать что-то хорошо и углубленно.
Молодец, кабанчик, продолжай дальше!
365 3157847
Есть у кого-нибудь хороший материал по практике написания тестов на PHPUnit с нуля?
Документацию PHPUnit прочитал.
Хотелось бы материал, где автор от начала до конца проводит читателя и показывает весь процесс написания теста.
366 3157873
>>57847
1) Хочешь фичу
2) Пишешь минимальный тест, который не проходит
3) Реализуешь фичу так, чтобы тест проходил
4) Снова переходишь к п.1
Одна фича - один небольшой тест.
367 3157903
>>57773
Ну ты можешь плакаться сколько угодно, только правда от этого не изменится. Кабанам нужен специалист, а не звдрот какой-то.
368 3157941
>>57873

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


>Реализуешь фичу так, чтобы тест проходил


>выкидываешь нахуй


>реализуешь фичу КАК НАДО


>кусок говна из первого пункта надо переписать


>переписываешь


>отвалилось еще десять кусков говна


>забиваешь на тесты хуй


Вот так это все в реальности вышлядит. КОгда тестов становится хотябы сотня - ты большую часть времени тратишь на попытки понять че там написано и хули они все упали ОПЯТЬ
369 3158439
Как же поублюдски работает композер в докере. Точнее фреймворки виноваты, что пихают кучу логики в секцию scripts в composer.json Копировать весь код проекта
COPY ./ ./
предер запуском
RUN composer install
Получется что любое измненение кода перезапускает composer install
Нельзя разделить инсталяцию зависимостей и копирование исходников в контейнер
370 3158442
>>58439

>Копировать весь код проекта


Приходится копировать весь код проекта
371 3158454
>>58439
А бля, пожаловался и допер что делать
надо просто --no-scripts запускать композер после
COPY ./composer.json ./composer.lock ./
372 3158470
>>58454
Но потом в докерфайле надо эти скрипты самостоятельно выполнять после копирования исходников
373 3158533
Стоит ли учить симфони? Или ларавель? Работал с yii2.

Какие проекты на симфе пилят? Сложный там собес? Что спрашивают?
374 3158537
>>57903
Кабанам нужен лох с навыками сеньера и зп стажора, и так и будет если такие как ты будут это спускать с рук
375 3158685
Как там с битриксом? Экзамены помогут устроиться на удалёнку ждуном? Хочу стать отпетым битриксологом.
376 3158735
>>58685
ты готов зафаршмачить свое фио?
377 3158775
>>58735
Судя по количеству вакансий битрикс, ничего он себе не зафаршмачит.
378 3158852
Кого-нибудь вообще спрашивали про ОС на собеседованиях?
Системные вызовы, прерывания, многопоточность?
379 3158922
Открыл впервые за несколько месяцев вопросы, которые могут задать на собеседовании, и поплыл: одна тишина и бе-ме.
Н-дэ, а я думал, что уверенно знаю php.
380 3158999
>>58922
Покажи что за вопросы
382 3159035
>>58852
не спрашивали
мимо завалил 50+ собесов
383 3159047
>>59035

>мимо завалил 50+ собесов


Если ты серьезно, то чому так?
Расскажи про свой опыт собеседований.
Просят ли на удаленных собеседованиях включать вебку?
Что спрашивают обычно?
384 3159069
>>59047

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


Не ссы, инцел. Никто не будет заставлять тебя показывать твою инцельскую морду
385 3159079
>>59069
Хуууух.
Как камень с сердца.
Спасибо, анон, что обнадежил.
изображение.png34 Кб, 1303x155
386 3159082
Это игра слов?
387 3159118
>>57847
На хекслете есть курс по тестированию на пыхе
388 3159125
>>59118
Уже бегу заносить им ~100к
389 3159128
>>59125
Зачем? Там подписка есть за 4к
390 3159731
>>59128
Ну так заплоти 4к выкочай все их дерьмо и выкладывай сюда.
391 3159764
>>28808 (OP)
Посоветуйте материалы по доктрине, кроме доки
392 3159825
>>58533
Ларавель нужно знать хотя бы просто для большего охвата вакансий. На Yii что-то уже совсем мало проектов становится.
393 3159837
>>59764
Курс от симфоникастс, дамп 2024 года

https://rutracker.org/forum/viewtopic.php?t=6504004
394 3159972
Наверное лучшая шапка всего раздела
395 3159982
>>59972
Конеш, её лучший в мире ОП когда-то написал. Его наверное тут уже и нет давно. Или на пенсию ушёл, или помер, или бросил двач наконец.
396 3159984
>>59982
Мне кажется, что он приходит иногда
397 3159997
Каждый раз наступаю на одни и те же грабли.
Нахожу новую книгу по программированию -> Предвкушаю знания, которые помогут мне писать код -> читаю воду на протяжении десятка страниц.

Вот сейчас прочитал 18 страниц воды и это не считая введения!

Книга DDD, Эванса, первая глава.

Надеюсь, что дальше будет лучше.
398 3160002
>>59997
Достаточно посмотреть Елисеева, чтобы понять что такое ДДД. Чел уже второй год простой аукцион пишет. Зато расширяемо! Кабан бы уже расширился от злости...
399 3160010
>>59997

>книгу по программированию


А с чего ты взял что это книга по программированию? Это книга по ПРОЕКТИРОВАНИЮ.
Идеи Эванса на стыке инженерии, социологии и менеджмента. Код там вообще дело десятое.

>>60002

>второй год простой аукцион пишет. Зато расширяемо


DDD вообще не про расширяемость. И не про скорость. DDD - это в первую очередь про организацию КОМПАНИИ, которая производит АВТОМАТИЗАЦИЮ БИЗНЕСА. Причем бизнеса сложного. Настолько сложного что традиционный проектный подход займет ГОДЫ.

Когда надо быстро - пишут быстро, хоть с использованием ddd, хоть без. То что он тянет кота за яйца целый год, говорит только о том что он никуда не спешит.
400 3160011
>>60010
Но преподносится это почему-то как ПРАВИЛЬНО НАЧИНАТЬ ПРОЕКТЫ, а не как транформировать автоматизацию большого бизнеса. Адекватный кабан не будет 2 года платить по 3 сотыги, чтобы получить в итоге стандартный круд. Два года будете писать за 30 тыр.
401 3160012
>>60011

>Адекватный кабан


Кабан это "частник"? ИП? Офк не будет. Это ж только на руки три сотыги, там налогов еще на столько же. А еще софта на столько же. Ты вообще в курсе сколько стоит джира на сто аккаунтов хотя бы? IDE купи, слак купи, микропенис офис в бухгалтерию купи.

>преподносится это почему-то как ПРАВИЛЬНО НАЧИНАТЬ ПРОЕКТЫ


А мой хуй преподносится как трехкилограмовая булава. Кем преподносится? Кому преподносится? Вот что уважаемый человек пишет в предисловии книги:

>Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing.


Откуда ты высрал про "начинать проекты"?
402 3160014
>>60012
Преподносится теми, кто зарабатыает на вкатунах курсами как правильно писать по DDD. Потом вкатуны приходят в шарашкину контору и донимают утомленных сенек "правильным подходом".
403 3160015
>>60010

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


Так программирование тесно связано с проектированием.
Как можно писать хороший код, не зная как его структурировать так, чтобы при новых изменений, не отвалилась часть программы?
Любой программист должен быть одновременно и проектировщиком приложений (в какой-то степени).
404 3160017
>>60014

>на вкатунах курсами как правильно писать по DDD


А эти курсы с тобой в одной комнате?
405 3160018
>>60015

>Так программирование тесно связано с проектированием.


А хуй тесно связан с пиздой, да вот тольк не каждый хуй в пизде бывал. Смекаешь?
406 3160019
>>60017
Я тебе рассказал об одном...
407 3160025
>>60018
Ну так без проектирования программиста возьмут максимум в шаражкину контору и то ему будет трудно, если есть совесть.
Мало писать код, нужно еще понимать куда его писать.
408 3160028
>>60025
Какой долбоеб доверит джуну что-то проектировать?
409 3160031
>>60019
А схуя-ли ты решил что это курс для вкатунов? У елисеева своя аудитория, которая торчит у него на сайте годами. Причем по большей части это люди, которых он пересаживал с юи на современные подходы. То есть люди с ГОДАМИ опыта в разработке.
410 3160035
>>60028
Я о проектировании в частности, а не о проектировании всего приложения.
Например, не писать толстые контроллеры, выносить логику в сервисы, это же ведь тоже часть проектирования?
411 3160039
>>60035

>не писать толстые контроллеры


И в чем тут "проектирование"? Ты просто переливаешь код по разным классам. Вот факт "наличия контроллера" уже тянет на "проектирование". Но такие решения рядовой программист не принимает.
412 3160044
>>60039
А что такое архитектура?
Если говорить про ООП, то это не совокупность классов и то, как они взаимодействуют друг с другом?
Проектирование это не задавание архитектуры приложению?
Вынесение логики в отдельный класс-сервис и связь этого класса-сервиса с методом контроллера это не часть проектирования архитектуры?
413 3160047
>>60044
Тебя послушать, так и строчки кода местами поменять это АРХИТИКТУРА. Давай с другой стороны зайдем. Что по твоему НЕ архитектура вообще?
414 3160055
>>60047
Писать код в лоб, без структуры.
Вот пример: https://github.com/adelf/acwa_book_ru/blob/master/manuscript/2-di.md
Пример кода после слов "Рассмотрим новое требование к этому приложению из прошлой главы — загрузка аватара пользователя и посылка email после регистрации".

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

Даже джун должен понимать, что кидать несколько ответственностей в один класс - это плохо. А разве разделение ответственностей на несколько классов не является частью проектирования системы?
415 3160062
>>60047
Раз уж зашел разговор, то что в твоем представлении архитектура и проектирование?
416 3160069
>>60055
Ты тупо свел определение к тавтологии. Если все твое программирование это архитектура, то в отдельном определении нет смысла - ты просто программируешь.

>>60062
Это рамки, в которых ты пишешь свой код.
"Должен быть контроллер" это архитектурное решение. Твое мнение по этому поводу никого не ебет, было принято решение, был выбран/написан фреймворк, ебало на ноль и пиши контроллер.
417 3160082
>>60069

>Твое мнение по этому поводу никого не ебет


Да я и не спорил с этим.

>ебало на ноль и пиши контроллер


Ну есть же какие-то стандарты как писать контроллер.
Ты берешь джуна, сажаешь его писать контроллер, думая, что он будет писать контроллер как и все остальное программисткое общество, а он создает 100-строковый метод с валидацией, обращением к БД и т.д.
418 3160101
>>60082
Это как раз и означает что никакой архитектуры в этом месте нет. Меня уже начинает утомлять писать одно и тоже по сто раз.

Ты посадил джуна писать код. Контроллер он написал. Потому что есть архитектура, есть рамки, за которые он выйти не может. Он ОБЯЗАН написать контроллер.

А внутри контроллера у тебя нет нихуя, поэтому он пишет что может/хочет. Все что ты перечисляешь это пожелания доброго здоровья и приятного аппетита, никакой архитектуры в этом нет. Просто по факту того что у тебя в контроллере можно написать любую хуйню. Когда можно писать любую хуйню - это и есть отсутствие архитектуры.
419 3160186
Почему решение о том, ответить на мой отклик или нет, зависит от какой-то пизды-hr-щицы, которая никогда код в своей жизни не видела и у которой знания в стиле популярной психологии?
420 3160326
>>60028
Я как устроился и закончил пару небольших задач, техлид доверил потихоньку переписывать легаси в clean architecture + ddd. Освоил за недельку Боба Мартина и Вон Вернона и погнал-погнал.
Пока одобрительно кивает и подсказывает, когда возникают сложности. Надеюсь, не подведу.
Мимо джун с месяцем опыта
421 3160343
По докеру подскажите хороших материалов? Желательно статья или книга (не видево), дока чет не нравится, одно и то же разжевывают
422 3160470
>>60326
Маня фантазер
423 3160536
>>60343
Docker Deep Dive
Untitled-1.png48 Кб, 162x282
424 3160791
Пацаны, может кто-нибудь подсказать, как можно добавить тень к тексту в виджетах на винде? Хочу, чтобы на календаре было также, как на часах.
Календарь качал отсюда https://gadgetsrevived.com/967/ там все сделано на css html и js, можно тупо архиватором распаковать, если нет желания в систему ставить. Проблема только в том, что я шарю в этом на очень элементарном уровне, типа могу теги в тексте добавить. Я в курсе про text-shadow, там дата например выводится шрифтом с размером 75, я пробовал втыкать text-shadow в разные места, где есть это 75 в итоге либо никакого эффекта, либо ломается отображение.
inb4: щас бы в 2к24 ставить виджеты. ну привык я так, хули на андроиде виджеты норм, почему на десктопе нельзя, лучше помогите советом
425 3160807
А, еще. На часах там циферблат и стрелки сделаны рисунком, берутся из .png, а в календаре все надписи текстом, так что напрямую по аналогии сделать не получится.
426 3160817
>>60791
Иди в тред по js
427 3160840
>>60817
Ну тут тоже в шапке написано

>Тут мы по прежнему изучаем язык PHP (а также JS/CSS/HTML/SQL)


тем более я так понял, там на js только функции, которые нажатия обрабатывают и дату из стстемы берут, они мне не нужны. А все что касается внешнего вида сделано на css c html.
428 3161258
>>60840
chat.reka.ai - тупая сетка в такой простой задаче поможет
429 3161276
>>60840
Аноны с треда js больше знают по html/css.
430 3161922
Что мог сделать не так?
По видосам и гайдам повторяю сборку пэхапе и нджинкс, но файлики качаются, вместо открытия
Подозреваю что нджинкс до контейнера пэхапе достучаться не может. В конфиге нджинкса прописывал и имя контейнера и айпишник(
431 3161947
>>61922
А нашел, локейшн другой поставил и заработало
432 3162073
Как понять что тестировать в своем пет-проекте?
добавление тестирования в пет-проект чисто в учебных целях
433 3162159
>>62073
То что будешь использовать то и тестируй.
Напиши по тесту на каждый сколь нибудь сложный метод в контроллерах/сервисах/моделях чтобы удостовериться что они делают то что от них нужно и выдают ошибку там где нужно.
434 3162463
Здравствуйте, уважаемые читатели, у меня к Вам есть вопрос по технологии называемой wordpress. Мне нужно для отделения моего училища создать сайт с 5 страницами wordpress, и ещё постов штуки 3-5 иметь, которые то удаляют, то добавляют.

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

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

Или всё таки стоит приложить усилия и статику переделать на шорткоды?

Спасибо.
435 3162488
>>57084
Рад тебя видеть. Кста не понимаю почему все юзают эти сервисы вместо операций. Отличие сервисов что они хранят промежуточные состояния данных объекта, а операции это типа статические методы в которые мы заносим входные данные включая объект с этим состоянием. У нас архитектура так сделана, что нужно использовать операции, из плюсов они дают независимость и универсальность, а еще в тестах проще.

Рэасскажи какого использовать сервисы? Мне кажется в том и суть что бывают ситуации когда необходимо брать промежуточные состояния, есть еще что-нибудь из плюсов на практике?
436 3162497
>>62488

>Отличие сервисов что они хранят промежуточные состояния данных объекта


Откуда ты это взял? Это на каких курсах такую чушь прогоняют?

>а еще в тестах проще


Интересно каким образом ты пишешь тесты на методы, внутри которых используются "типа статические методы".
437 3162610
Нахуя контейнеризировать приложения?
438 3162840
>>62610

Для создание детерменированного окружения, упрощения деплоя
изображение.png18 Кб, 1273x182
439 3162881
Кто пойдет устраиваться, аноны?
440 3162898
Что в плане html/css должен знать бэк-программист?
441 3162915
>>62488

> Рад тебя видеть.


Мы знакомы?

> не понимаю почему все юзают эти сервисы вместо операций


Не знаю, я вкатился чуть больше, чем месяц назад и пока не набрался опыта.
Как я вижу, сервисы (ApplicationService'ы) просто агрегируют в себе операции над сущностями. Я думаю, сервисы актуально делить на отдельные юзкейсы и прочий CQRS , если логика приложения разрастается и сервис становится монструозным классом с кучей различных зависимостей.
В элементарных же проектах такое разделение будет оверкиллом.

Впервые слышу о том, что сервисы хранят промежуточные состояния.
hjfghhgkkkddfrer34.jpg136 Кб, 1280x720
442 3163104
>>62915

>ApplicationService'ы


>операции над сущностями


>отдельные юзкейсы


>прочий CQRS


>логика приложения


Как же ты наваливаешь.
1000031197.jpg62 Кб, 686x598
443 3163149
Почему так?
Screenshot 2024-05-20 173211.png1,5 Мб, 3170x860
444 3163154
445 3163165
>>56447

>Как говорят, thin controllers, fat models



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

>>62915

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



На отдельные ЧТО? Как же мы вам перезвоним
446 3163171
>>63149

Рассмешил. Кстати, используй property promotion, для таких как ты старались
447 3163179
>>63154
Я сам так написал, хотел проверить заработает ли. Потом понял что аргументы в функции (методе) могут называться как угодно при присвоении значения свойству
Desktop 2024.05.20 - 17.46.30.06.mp43 Мб, mp4,
1920x1080, 0:12
448 3163187
>>63179

>Я сам так написал


Ну и еблан значит. Кто же сам такую хуйню пишет?
Просто надо нормальной Ide пользоваться, а не микрософтовским калом.
449 3163340
>>62497
У вас там условно объект машина заносится в сервис, а дальше уже методы вызываются у сервиса. В этих методах проводятся действия над машиной, бывает несколько подряд и только потом (?) изменения сохраняются в бд, поэтому и зовется промежуточные состояния, поэтому сервисы и придумали как мне кажется.

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

А допустим вам нужно посчитать стоимость машины на основании свойств модели, вы этот метод тоже суёте в сервис или используете отдельный класс со статическими методами?
450 3163356
>>63340

> и только потом (?) изменения сохраняются в БД



Просто мы создаём класс операций обработки модели или можем создать класс операций изменяющей бд, у вас аналогично или строго работа с моделью?
451 3163362
>>63340

>объект машина заносится в сервис


Откуда и как?
452 3163377
>>63362
Тогда мне интересно из другого сервиса или того же самого? В чём тогда прикол, я наткнулся на говноинтерпритацию про то, что модель хранится в сервисе как свойство?
453 3163386
>>63377
Скорее на какой-то странный извод функциональщины. В ооп по определению все где-то хранится - объект должен лежать в другом объекте и так вплоть до самого верхнего в Index.php
454 3163683
>>63356

>мы создаём


> у вас аналогично


>У вас там


Чел, ты с какой планеты?
455 3163686
>>63179
Новичок постигает основы и ахуевает, что название переменной не должно быть идентично названию переменной класса.
456 3163703
>>62610
>>62898
>>63149
>>56447
Сука, какие же вы тупорылые нахуй... Не удивлен, что пхп в говне
457 3163725
>>63703
Не обольщайся, Д'Артаньян.
458 3163814
Подскажите зеленому.
Нужно делать много INSERTов за один http-запрос.
Очереди могут помочь в оптимизации этого?
Если что, с очередями никогда не имел дело, только разбираюсь что это.
459 3163818
>>63814
Да. Очень здорово спасают, когда нужно выполнять долгие процессы.
460 3163837
>>56447

Так, ну если он не прав
Разве нельзя в сущность методы работы с бд прописывать?
А допустим есть общие запросы для всех сущностей, их могу вынести в отдельный класс? Или такое тоже бэээд праактиикс?
461 3163861
>>63814

Если не обязательно чтоб запросы были в одной транзакции, то очередями хорошо оптимизируется, да
462 3163883
>>63861

>чтоб запросы были в одной транзакции


Кажется нужно, чтобы были.
На данный момент я использую LOAD DATA INFILE.
Но мне не нравится этот вариант.
Потому что приходится создавать файлы для этого.
И у меня почему-то не получилось переназначить папку, из которой LOAD DATA INFILE может читать файлы.
463 3163889
>>63861
Так можно сделать одной большой транзакцией. Будет долго выполнятся, но на бэке, где нет таймаута или он очень большой. А на фронте клиенту просто будет показано, что его операция стартовала и выполнятся.
464 3163891
>>63883
В документации написано:
"Если задано ключевое слово LOCAL, то файл читается с клиентского хоста. Если же LOCAL не указывается, то файл должен находиться на сервере."

Что такое клиентский хост? Что такое сервер в данном случае?

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

Что такое "быть доступными для чтения всем пользователям" я тоже не понимаю.
465 3163904
>>63891
Для службы бд и службы сервера наверное. Мы не использовали LOCAL ни разу, просто указываем путь к файлу, который лежит в проекте (/var/www)

LOAD DATA INFILE '/var/www/csv/data.csv'
INTO TABLE survey
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
466 3164018
>>63703
Да не трясись ты так, гандон ебаный
467 3164083
>>63814
>>63818
>>63861
Че вы несете то блядь? Че за хуйню вы городите? Что там оптимизируется?

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

Как очереди это оптимизируют? ДА НИКАК. Очереди позволяют не ждать инсерты прямо сейчас. Но нагрузка на сервер от очередей только увеличивается, потому что нужно дополнительный сервис крутить и выделять ему проц и память.
468 3164093
>>64083

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



Бред же. Можешь этого демона хоть на отдельном серваке держать. Это легко масштабируется, и не будет ботлнечить, а база будет.

> Как очереди это оптимизируют? ДА НИКАК. Очереди позволяют не ждать инсерты прямо сейчас.



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

>Очереди позволяют не ждать инсерты прямо сейчас


Мы это и обсуждаем.
470 3164099
Собираюсь свитчиться из фронтенда в пхп бекенд. Подводные?
471 3164121
>>64093

>Можешь этого демона хоть на отдельном серваке держать. Это легко масштабируется


А другой сервак бесплатный или че? Охуенно соптимизировали - ну мы кароч выделили еще один сервак.

Если просто вернуть ответ ДО sql на вставку и ОПТИМИЗИРОВАТЬ эту вставку, то обходимся без нахуй не нужных тут очередей, да еще и ресурсы сервера экономим.

Дегенеративные масштабируемые долбоебы блядь.
472 3164122
>>64099
Рынок в целом беднее, ниже ЗП, много говнокода, меньше всяких плюшек от компаний, выше шанс нарваться на говноконтуру/потогонку
473 3164126
>>64122

> рынок в целом беднее и ниже ЗП


Согласен. Хотя у фронтов сейчас тоже сильно зепка просела из-за тысяч вкатунов

> много говнокода


Во фронтенде тоже

> плюшек меньше и потогонок больше


Тоже
Зато больше перспектив, легче свитчиться с работы на работу и когда-нибудь можно будет прыгнуть на другой яп или фреймворк. А вот фронтенда - это мертвая тема
474 3164152
>>64122

А битрикс конторы лютая потогонка?
Меня это больше всего калит на прежней, не прогерской работе, но тоже галера
475 3164166
>>64122

> Рынок в целом беднее, ниже ЗП



Ниже чем на фронтенде? Лол, чел...

> много говнокода



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

> меньше всяких плюшек от компаний



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

> выше шанс нарваться на говноконтуру/потогонку



Это на собесе определяется.
476 3164177
>>64166

>Это на собесе определяется.


Вкатун не палится.
477 3164178
>>64152
Да, битрикс это самое потогонное, что есть в вебе. В принце работа на cms-ках это мелкие студии, которые зарабатывают на перепродаже времени разработчика, поэтому там максимально ебут за время потраченное на задачу. Оценивать её будешь не ты кто-то другой, а если не уложишься, то это твои проблемы
478 3164198
>>64178

Как же заебала потогонка за гроши
Ладно бы просто спокойно пукать за 50к, так выебут и высушат. В выходные мозги ебать будут и кд с утра до ночи.
479 3164201
>>64178

Думаешь не стоит за 20к на стажку в местную контору идти?
У меня щас зп 80 не на прогерской позиции. а там стаж капать будет + на ларе тоже пишут. По сайту конторы - какие-то ивенты устраивают и +- прилично для моего региона

Стажка говорят месяц за эти гроши, потом думаю до 50 сжалятся поднять, но это мои домыслы
Сам то битрикс не трогал никогда
480 3164208
>>64201

>Сам то битрикс не трогал никогда


И слава богу!
И больше не упоминай его в нашем ламповом треде.
481 3164214
>>64208
Сам то сразу на симфонию залетел без стажа?
482 3164218
>>64214
Я вот залетел на лару на стажа. Мне дали пописать на ней всего 2-3 месяца, а потом свитчнули в чистый фронт. Теперь я второй год работаю чистым фронтом и хочу умереть...
Мимо. Но битрикса никогда бы в жизни не коснулся
483 3164219
>>64218

> на стажа


Без стажа
484 3164227
>>64201

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

Если бы я шел туда к чему душа лежит, а это изучение языков, лингвистика и тд, получал бы хуй с маслом
485 3164228
>>64227
Ебать, ты бохач... А я на фронтенде за копейки кнопки крашу
steamuserimages-a.akamaihd.jpg43 Кб, 555x472
486 3164233
>>64227

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


Если ты дебил, то как зарабатываешь такие большие деньги?
487 3164241
>>64233

>Если ты дебил, то как зарабатываешь такие большие деньги?



Ну устроился мидлом на 240, и через 2 года апнули до 270. При том я все еще мидол. У нас в компании 300+ синоры, и когда кого-то в должности(названии) повышают про это пишут в HR чат.

А дебил потому что 7 лет в айти, первые 3.5 года был джуниор разрабом. Очень очень нужно много времени. Один раз был период когда я попробовал стать ВОЛКОМ и пойти пройти собес на синьора. Вроде бы 7 лет опыта достаточно, прохожу собесы, вылетаю на испыталке 2 раза подряд.

Вернулся на джуна за 240 с синьора за 300 потому что не тяну.

У нас есть чел, наняли тоже на мидла на 240к, второй год в айти. И тут я со своими 7 годами.
488 3164243
>>64241

> 7


Блять, 5 лет опыта. Ну короче поняли да
489 3164253
>>64218

Эти ваки на фронт с "50 к, уметь ВСЕ + год стажа" и 200 откликов сразу дизморалью давят, понимаю

>>64227
Даже не представляю насколько счастливо ты живешь...

мимо будущий битриксоид 20к
490 3164260
>>64218
Но ты вроде как молодой еще, а я 25 скуф
Можешь скопить бабла и попробовать вырваться в лучшую жизнь
491 3164267
>>64260

> 25 скуф


А я 23-летний скуф с весом 52 кило и патлами скорее думер. Пытался сто раз вырваться в чистый бекенд, но всегда возвращался во фронтенд. В каждой из очередной контор.
492 3164269
>>64267
Поэтому мне уже 100% пизда
493 3164272
>>64260
>>64267
А кто-то в 27 лет только вкатывается в битрикс на 20к в месяц, но пизда почему-то вам
494 3164274
>>64272

Это ты вкатывался? И как оно?
495 3164276
>>64274

>только вкатывается

496 3164280
>>64276
Жду тогда обратной связи по итогам вката, коллега

мимо напиздевший про 25 лвл, когда ему 26 и почти 27 битриксоид-скуф 20к
497 3164281
>>64280
Так я тебя и имел ввиду, дурачок. Это я жду обратной связи по итогам твоего вката
498 3164288
25 лет это нормально для вката, можно даже говна попробовать и не гоняться за журавлями в небе.
499 3164291
>>64288
Я вкатился в 20.8 лет. Пожрал говна на фронтенде, неудачно выкатился в бекенд и продолжаю красить кнопки. Заебало
500 3164301
>>64291
Больше 5 лет на фронтеде? И что, там все так плохо?
501 3164302
>>64291
Вас уже много или ты и правда семенишь весь день?
502 3164305
>>64301
Не, скоро третий год пойдет
>>64302
Есть три фронтенд-додика. Один из них я и я самое ебанное чмо. Второй не может устроиться после реактоговна никуда. Третий хуярит за копейки много лет и не может поменять работу
503 3164308
>>64305

Я третий
504 3164321
>>64253

>Даже не представляю насколько счастливо ты живешь...



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

> мимо будущий битриксоид 20к



А ты уверен? Ищи ларавель вакансию лучше, там быстрее росто будет, если не такой дубич как я может за 2 года станешь МИД ЛОМ
505 3164409
>>64321
Я к сожалению не могу в офисе работать, поэтому только удалёнка. Как ты понимаешь, удалёнка для нубов есть только в битриксе, поэтому придётся потеть битрикс (1-2 года) > битрикс + лара/симф (1-2 года) > мидол лара/симф.

Или думаю прям щяс устроиться в техпод 2/2 и потихоньку пердолить труфрейворк и параллельно искать работку за гроши на удалёнке. Может за год повезёт найти работку.
506 3164412
>>64409

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


Звучит, как какая-то хуйня, извини.

Мимо уже много работаю на удаленке фронтендером. Начинал с удаленки в качестве laravel + vue фулстека. И у меня нет ни одного знакомого-вкатуна, у которого были бы трудности устроиться на стажировку за 20-40 к удаленно
507 3164418
>>64412
Найс мрии, другалёк! Я-то знаю, что это невозможно. Битрикс даёт всем нубам возможности, надо это ценить. Никакой ларавель или симфони не приютят нубика без айтишной вышки.
508 3164424
>>64418

> айтишной вышки


Я дропнул эту хуйню и говорю же, работаю на удаленке со вката. Только лайфхак в одном - я всегда откликался на ваки без пометки "Без опыта", а с пометкой "1-3 года опыта"
изображение.png65 Кб, 913x398
509 3164453
>>64424
Как контрить? "ой, а я и не заметил сперва, что там опыт требуется!"
510 3164455
>>64453
У тебя вордпресс на пикче, а не ларка
511 3164461
>>64412
Ну ты наверное до СВО спокойно устроился, а нам приходится доедать объедки в виде Битрикса
512 3164466
>>64409

А это уже не я

битриксоид 20к
513 3164468
>>64461

> СВО


Эээээ, не, устроился летом - почти сразу после начала гойды
514 3164480
>>64466
Какая разница кто есть кто? У нас одна судьба - и это битрикс.
515 3164516
Я через джва месяца 21 июля закончу экзамены в шараге и пойду в мухосранскую вебстудию на стажу фуллкакера ларавел вью.

Подскажите, пожалуйста, как sql выучить за ровно джва месяца от корки до корки?
516 3164551
>>64516
А вы в шараге не учили его? Я учил так:

1) 2000 практических заданий в вузе по SQL (все они есть в инете. Также можешь поискать sql-тренажеры) и лабы по проектированию БД и их нормализации
2) Напиши апишку, где ты (охуеть!) будешь делать запросы к базе с выборками
3) Готово

Мимо вротендер
720630.jpg29 Кб, 562x287
517 3164556
518 3164626
>>64516
Смотря как выучить. Если разбираться в джойнах, то неделя.
tnRaBnv0Flw.jpg61 Кб, 723x717
519 3164631
БИТРИКС, БРАТЬЯ И СЕСТРА!
БИТРИИИИИИИИИИИИКС
520 3164650
>>64631

На доске нужен битриксотред
521 3164822
>>64218

А ты тоже на галере где для мелко-среднего биза сайтики клепают?
522 3164836
>>64551
У нас 1 семестр был по базам данных, я всё забыл уже, что там было.

Ты все 2000 задач прорешал? Ну едрить меня в корень, я не успею за джва месяца.
изображение.png3 Кб, 132x397
523 3164943
Почему пидорасы, увидев, что откликнувшийся на вакансию им не подходит, не могу сразу отказать? Религия не позволяет? Нахуя джуна держать в подвешенном состоянии.
524 3164995
Ненавижу ебучие многомерные массивы. Сколько же с ними ебки.
525 3164996
>>64995
Какого хуя у ебучей ларки нет метода проверки наличия ключа по регулярному выражению.
Приходится городить монстра для решения этой задачи.
526 3164999
>>64996

>городить монстра


Ебать ты лох
https://3v4l.org/Yvuve
527 3165002
>>64999
Пиздец у тебя еба-инструкции - 4 функции в одной строке.
Как научиться также?
528 3165048
>>64836

> все задачи прорешал?


Да, у меня был на это семестр длиной в 4-5 месяцев. Но сейчас ты главное реши хотя бы задачек 20-30 и можешь отдыхать - главное охватить все темы из этого роадмапа, идущие до Data Intergrity And Security (на это хватит считанные неделю или две)

https://roadmap.sh/sql

А вообще может ты зря так жопу рвешь. Вот я перед первой работой отдрочился идеально в SQL, Ларке с Пыхой, Докере и всем, на чем можно написать апишку. А меня через неделю уже посадили, без предварительный задач по бекенду, писать фронт. И я уже много лет работаю им
529 3165090
>>65048
Благодарю, дай Б-г здоровьица
530 3165105
>>65048

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


А могло быть хуже и тебя могли бы посадить на битрикс
531 3165143
Пытаюсь понять SOLID и паттерны проектирования.
И вот главное препятствие это абстракщина!
Ахуенно сказать "У класса должна быть только одна ответственность", а как насчет критериев, чтобы определить одна или не одна ответственность у класса?
Какое же, блять, говно обычно встречается в интернете и книгах, когда пытаешься разобраться в этой теме.
И причем! Самое смешное! В книгах по программированию та же абстрактная чушь.
532 3165187
>>64943
Щас бы ради какого-то джуна, которых очередь за забором, лишний раз пальчиком с маникюром шевелить
533 3165202
>>63187
А что это за странный синтаксис комментирования с ещё одной звездочкой:

/
@param mixed $s
@param int $v
@param $var
534 3165217
>>65202
phpDoc-комментарии.
535 3165223
>>65187
Потому и пидораски.
Хуйня ебанная, начинает свою работу в обед, заканчивает в начале вечера. Что она там, блять, делает, тупая пизда?
И этой хуйне еще платят деньги, блять.
536 3165308
>>65143

Да да, а еще бывает эти книги пишут не практикующие программисты, а теоретики около-математики, десять вкладок в гугле потом с попыткой найти пример кода хотя бы на каком-то языке...
537 3165313
Я не понимаю.
Объясните.
Мой код обращается к внешнему API.
Сначала я создал класс HuinyaApiService.
У него 3 метода:
- точка входа;
- сделать запрос;
- обработать ответ от внешнего API.
Потом я подумал: у меня во всех трех методах логика, направленная на конкретный запрос, а если я захочу сделать другой запрос?
Ок. Сделаю на каждый запрос отдельный класс, а всем въебу интерфейс. И у меня в голове не укладывается. Я ж не ебу, какой тип аргументов будет принимать каждый класс, который реализует этот интерфейс, как я смогу поддерживать совместимость сигнатур?
538 3165316
130к
Знание и опыт применения PHP 7 от 3 лет лет

Это норма?
539 3165323
>>65048

Обалдеть, есть отдельный постгре роадмап

Без разницы же что учить первым mysql or postgre?
Вроде вак на мускуле много на пэхе
540 3165399
>>65143
>>65308
Это ты кукаретик. Математика точная наука, а солид хуелид залупа невнятная. Тебя конкретно спросли человек: "как насчет критериев, чтобы определить одна или не одна ответственность у класса?"

А тебе и ответить нечего, потому что старый шиз высрал каких-то акторов, какие-то блядь причины меняться, какую-то хуйню-малафью.
541 3165423
>>65323
Если ты тот вкатун, который летом вкатится на стажировку, учи мускуль и не выебуйся. А если даже там будет постгря, то там нужно будет знать ту же базу, а всякими кишочками тебя ебать не будут
542 3165425
>>65316
Норма. Я видел недавно 3 ваки на хабр.карьере, где требуют за 120 к 5 лет опыта и навыки девопса у пхп-бекендера а я еще жалуюсь, что фронтом получаю чуть больше сотыги за 1.8 года попыта...
543 3165469
>>65399

Я хуже кукоретика, я вкатудон и просто пытаюсь понять их абстрактные понятия, не вижу тут ничего такого
Таненбаума еще предложи почитать
544 3165473
>>65425
Тем временем 1с 100к 1 год опыта, заставляет задуматься
scr.png388 Кб, 1989x1615
545 3165521
>>65048

>https://roadmap.sh/sql


>идущие до Data Intergrity And Security


Объясните, пожалуйста, насчёт Data Intergrity And Security. Правильно ли я понимаю, что там только две темы про Security: это
"GRANT and REVOKE" и вторая "Database Security Best Practices", а все остальные блоки только про Data Intergrity?
maxres35566dsdefault.jpg166 Кб, 1280x720
546 3165554
>>65469

>Я хуже кукоретика


>еще предложи


Ну собственно типикал пхп параша. Нихуя не знаю, но какую-то хуйню надо высрать непременно.
547 3165577
>>65399

Ну да, в математика же не построена же на абстракциях, на понимание которых у людей могут годы уйти)
orig.jpg652 Кб, 1920x1080
548 3165581
>>65577
Тезис был: математика точнее и понятнее, чем солид дрисня, которая вся про "я так чувствую, а я не так, пошел нахуй". Так что твой пердеж не в кассу.
1000005041.jpg23 Кб, 444x292
549 3165608
550 3165807
Что анон думает про хуки свойств?
https://sergeymukhin.com/blog/php-84-property-hooks
551 3165855
>>65143
Ну ответственность, синоним роли, задачи которые берёт на себя. Его ответственность определяется на этапе проектирования контекстной области.

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

Твой вопрос на уровне как считается индекс демократичности, что посчитает оптимальным автор этого говнища, то и является критерием. В единственной ответственности можно посчитать количество используемых репозиториев, использование классов вне собственного контекста и насколько в принципе была проделана декомпозиция при реализации.
552 3165870
Посоветуйте материалы с простыми примерами ООП на практике
553 3165878
>>65313
Ты можешь создать класс HuyinaRequestData, у него будут поля body, поля используемых метатегов и прочее что нужно. При посылании запроса будет отправляться этот объект через xml. Ты получаешь этот запрос, достаёшь его body и читаешь как его парсить из документации внешнего источника. Методы парсинга создаёшь также в отдельных классах.

Так, у тебя методы DrochitHuy() и TrahatBab() принимают HuiynaRequestData с body, где лежит описание хуя. Для обоих методов ты используешь одинаковый класс парсинга.

А вот метод DrochitPizda() уже будет принимать описание пизды, поэтому делаешь другой класс парсинга. А если они суют хуй в пизду, то шлёшь нахуй изучать твою документацию.
Screenshot 2024-05-22 211058.png148 Кб, 1716x464
554 3165881
>>65855

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


Пчел. Старый давно высрал "более точное определение". Зоны контекстов какие-то выдумал, ебобо. Нахуй ты DDD сюда вообще приплел, это вообще из другой оперы.

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

У тебя либо есть метрика, которой точно и в автоматическом режиме можно проверить любой код на соответствие SRP, либо ты в душе не ебешь что это SRP вообще такое.
555 3165887

> можно посчитать количество


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

Задачи например могут требовать потенциальной расширяемости разных уровней, а продукт может указывать ограничения контекстной зоны твоей задачи.
123.jpg29 Кб, 290x412
556 3165893
Блять, ну что за пиздец
557 3165895
>>65881

> Зоны контекстов


На тот момент ещё не приплёл, чтобы писать прочитанные паттерны ему нужно придавать смыслы (контексты) их компонентам.

SRP относится не только к ООП, его просто внесли в оопшные принципы SOLID. Я верю только в уровни декомпозиции, хотел только передать ему, что эти принципы были написаны для проектирования, а не написания классов.
558 3165902
Когда он будет править говнокод после дедов, обязательно заинтересуется всякими метриками ранее прочитанных принципов и сможет их ощутить. А пока он с этим не столкнулся, только так
559 3165906
>>65895
SRP в частности и SOLID в целом - это чисто оопшный сектантский новояз. Нигде за пределами ооп эта терминология не применяется.

В ФП единица кода это функция, то есть SRP и ISP в пределе, дальше делить некуда. Эти термины просто становятся бессмыслицей. А системщики просто угарают над раковой опухолью из бесконечных абстракций.

Единственная точка пересечения здесь - термин "модуль". Но по иронии как раз таки в пхп никаких модулей нет. И пхп программисты в принципе не понимают что это такое, тупо смотрят пустыми квадратными глазами, и шепчут: Ну я же use прописал и пользуюся классом. Как по другому-то?
560 3166135
Что сейчас с рынком пхп? Думаю вкатываться. В остальных направлениях пиздецовая конкуренция, к пхп вроде пердиксы прохладны, - не модно.
561 3166184
>>65870
Хекслет по подписке
562 3166208
>>66135
Битрикс не популярен, но ларавел и симфони что-то на уровне asp.net, такая же конкуренция, только в асп.нет чаще требуют вышку айтишную, ну и сам стек немного дольше осваивать. Думаю норм вариант, но если есть айтишная вышка, то лучше го.

В среднем на джуновские ларавел/симфони вакансии откликов 150-300, на стажерские по 500+ - это по удалёнке.

ПО офису для джунов примерно 30-60 откликов в течение недели, если не дс. Зп джунов 30-60к на старте. Советую стажерские вакансии даже не рассматривать, там либо вообще не платят, либо платят до 20к, лучше потрать это время на прокачку до джуна.

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

В общем, конкуренция на уровне терпимо, но уже на пределе, ещё немного, 1-2-3 года и будет уровень 500+ на джуновские, 1000+ на стажёрские. Пхп начинает потихоньку хайпиться, в основном ларавел стек.
563 3166212
>>66135
В наш офис пришло 50 вакансий, большая часть на удалёнку. В основном 1сники и заводчане. Если ты идёшь в продукт, то покажи знания сверх языка, пока что лучший показатель того что ты не вкатун с курсов это знание докера. О тебе хотя бы задумаются среди всех других. Учи технологии используемые в продуктах и без проблем вкатишься.
564 3166223
Если я вставляю данные в БД, которые сгенерированы системой, то я могу спокойно не использовать плейсхолдеры? Или лучше перестраховаться?

Если что, то код вставляет id статьи (генерируется самой БД - автоинкремент, сначала вставляются данные в таблицу со статьями, я беру id оттуда), id автора (генерируется самой БД, аналогично с id статьи), количество слов в статье (генерируется моим кодом).
565 3166262
Как думаете, стоит ли в названии писать, что метод возвращает id?
Чтобы по названию метода сразу было ясно, что он не просто совершает работу, которая описана в названии, но и возвращает id?
566 3166294
>>66262
Если функция называется create, то лучше возвращать весь объект, а не только id. А вообще достаточно указать возвращаемый тип int, чтобы заставить посмотреть, что возвращает функция.
567 3166952
Сап, я нуб, пытаюсь вкатиться. Сейчас делаю интернет магазин в качестве пет проекта. Товары это книги. И на странице товара нужно отобразить описание которое включает количество страниц, издательство, год издания и аннотацию. Как это в базе хранить? Сначала я думал добавить отдельный столбец для года издания, аннотации, количества страниц, затем сделать таблицу для издательств и связать таблицу товара с с ней. А потом подумал, а ведь можно сделать одно поле для издательства - внешний ключ и одно поле описание и туда засунуть сразу все: и аннотацию, и год издания, и количество страниц, а затем все это разбирать на фронтэнде джаваскриптом. Как будет лучше?
568 3167027
>>66952

>Сначала я думал добавить отдельный столбец для


Ну так че не сделал?
569 3167357
>>66223
сделай модель с методами вставки с плейсхолдерами и эти методы переиспользуй для всего
570 3167359
>>66952
js точно не надо разбирать, бек должен отдать только определенные данные, готовые к отрисовке. Если у тебя большой количество ключей получается в данных, подумай что бы хранить json с ними(посмотри такой тип столбца)
571 3167378
>>66952
фильтровать и сортировать по году издания будет неприятно. Даже если это pgsql. Каждый раз когда я фильтрую через like по json blob-у. Мне кажется что это хуйня противна Богу.
572 3167379
Как выбрать тип данных mysql для строки, чтобы не получилось так, что часть строки отвалится?
У меня 2 строки:
303 символа, занимает 305 байт по UTF-8 кодировке.
2504 символа, занимает 2508 байт по UTF-8 кодировке.

Выбираю между VARCHAR, TINYTEXT и TEXT.
573 3167381
>>67379
Пусть меня поправят, Но я, когда вижу, что количество символов больше 255, всегда ставлю TEXT.
574 3167382
>>67379
Не использовать mysql парашу.
В postgres берешь text и все.
575 3167457
>>66208

> ещё немного, 1-2-3 года и будет уровень 500+ на джуновские, 1000+ на стажёрские. Пхп начинает потихоньку хайпиться, в основном ларавел стек.



Кек, а ещё говорят умирающий язык, вангую всех остальных переживет
576 3167463
При чем здесь иврит?
577 3167466
>>67457
Нас точно переживет. Вот вы можете представить себя стариком, до сих пор программирующим на PHP?
578 3167850
>>67466
Можете представить себя стариком, до сих пор вкатывающимся на PHP?

Фикс
579 3168117
Хочу писать блоги, контентные системы, интернет-магазины.
Только вордпресс остается учить, да?
580 3168155
>>68117

>вордпресс


>писать


Ты ебнутый?
581 3168158
>>68117
Битрикс учить надо, вордпресс давно уже не в моде
582 3168266
>>67379

Не знаю поч тебе текст советуют
Возможно это боты, согласно теории мертвого интернета
Я бы выбрал варчар с указанным количеством, если тебе известно максимальное
Можно на фронте предупреждать о максимальном количестве символов (вроде это норм для всех сайтов )
583 3168275
Какого черта он мне пустой массив создает, если условие когда игроков больше одного:
https://onlinephp.io/c/66399
584 3168339
>>68275
Делай вардамп allMales, тогда увидишь.
585 3168365
>>68275
Потому что тебе ооп дадено чтобы действия по объектам разбивать. Когда все на своем месте и тестировать легко. А ты понаписал какой-то хуйни, черт ногу сломит.

Вот как надо: https://onlinephp.io/c/fb607
586 3168420
>>68266

>известно максимальное


Нет, максимальное мне неизвестно.
Это я так, взял два из множества примеров.
587 3168423
>>68266
>>68420
В мусклепараше TEXT хранится менее эффективно. Отсюда все эти пляски вокрг варчаров, измерение количества символов и прочая поебень. Заканчивается все это тем что че-то опять в колонку не лезет, и нужно опять максимальную длину увеличивать. А это БЛОКИРУЮЩАЯ операция. То есть на время этого изменения ниче вставить или прочитать из таблицы будет нельзя. Если в таблице хотя-бы миллион записей, то это пизда. Несколько минут вся твоя система не будет работать и приносить бабки.

А в постгресе все текстовые данные хранятся одинаково. Поэтому ты можешь со спокойной душой ставить TEXT и одним хотфиксом в своем коде мгновенно менять максимальную длину фамилии, чтобы очередной Абу Мухаммад Муслих ад-Дин Абдуллах ибн Саади Ширази мог зарегистрироваться и купить себе дилдак.
588 3168427
Как всегда, блять.
Берусь за проект и зависаю на этапе проектирования кода.
Как разделить все http-запросы к своему приложению на классы-контроллеры?
Вот у меня 2 сущности. Ага! Получается 2 ресурсных контроллера?
А если вторая сущность сохраняется только во время сохранения первой? Что делать-то? Нужно не 2 ресурсных контроллера, а один общий?
Или же все-таки нужно 2 ресурсных контроллера и один над ними, который их координирует?
Блять, короче, в пизду. Код я не буду показывать, рассказывать конкретику тоже.
Да-да, я пидорас, прошу помощи и сам же не раскрываю деталей. Но, блять, я не хочу писать километровую пасту о том, что у меня за проект.
589 3168430
>>68427
Пчел. Экшн контроллера = url. Контроллер берет данные из запроса, вызывает код, который делает дела и возвращает данные для ответа. Все.
Говнокод свой можешь не показывать, уже имаджинировал какая там лапша.
590 3168432
>>68430

>Экшн контроллера = url


И что, что url?
Как мне разделить совокупность url на отдельные контроллеры?

>Говнокод свой можешь не показывать


А у меня и нет кода.
Я второй день сижу и пытаюсь понять какие мне контроллеры нужно создать.
591 3168435
>>68432

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


У тебя должно быть по обрабатывающему методу на каждую ссылку. А роутер просто этот метод вызывает. Можешь эти методы хоть в один файл запихать, кому не похуй.
592 3168445
>>68430
если вторая сущность самостоятельно не "живет", то один контроллер.
всю лапшу по поводу перекладывания данных из запроса, вызов валидаторов и проч - убиваешь в класс-репозиторий ну или сервис.
в контроллере только управление.
в модели только crud(с возможность фильтрации).
ВСЮ бизнес-парашулогику в отдельный класс.
Снимок экрана в 2024-05-25 17-45-28.png84 Кб, 997x730
593 3168910
Где можно загрузить готовую схему для форматирования php кода?
594 3169069
>>68910
Нажимаешь на шестеренку, там импорт.
595 3169071
>>68423

Спасибо за инфу
596 3169184
>>69069
Это я понял, откуда сам файл для импорта взять?
597 3169204
Почему постоянно ошибка на 51 строке?
https://onlinephp.io/c/232ef
Screenshot 2024-05-26 021225.png7 Кб, 424x68
598 3169312
>>69204
Что по твоему возвращает функция END()? Загадка тысячелетия блядь.
20240526133828.jpg98 Кб, 955x938
599 3169665
Способ крякнуть шторм на линуксе не нашли еще?
600 3169808
>>69665
Как работало через ja-netfilter так и работает.
601 3170705
PhpStorm это как тянка. Прожорливая, но я ее все равно люблю и готов нести ей новые оперативки.
602 3170775
>>70705

>Прожорливая


Да ты ебанулся. Клиент телеги 360 мегабайт жрет. Я уже лет десять рабочей пекарни с меньше 16гб оперативы не видел. А у меня так лет пять 32 везде, и на работе и дома.
603 3171526
Какой же я кретин. Выбрал тупое решение и теперь код такой сложный, что я сам в нем путаюсь каждую минуту. А проект уже написан наполовину, блять.
604 3171546
>>71526
Но ты ничего не выбирал. И код не писал. Зачем ты вываливаешь сюда свой бред?
605 3171549
>>71546
Доброе утро, пидор. И пошел нахуй.
606 3171855
>>71526
Что за проект?
607 3171952
>>71855
Ты тут недавно? Нет никакого проекта. Ни строчки кода нет. Есть только шизик-фантазер.
608 3172046
>>71855
Тестовое.
609 3172049
>>71952
Хули ты сидишь тут, пиздуй работать.
610 3172108
>>68365
Круто конечно, но мне кажется это у тебя черт ногу сломит, вот я сделал и у меня всё лаконично и понятно:
https://onlinephp.io/c/3b7a0
611 3172169
>>72108

>Проверяем, существует ли объект игрока перед обращением к свойству win


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

Просто посмотри на два пика. Мне даже комментарии писать не надо, код читается как реальная игра. И при этом у меня игра более комплексная получилась, потому что я добавил симуляцию револьвера, с нормальными одноразовыми пулями.
612 3172334
>>69665
Вот этот скрипт добавь крон на 30 дневный таймер


#!/bin/bash

# Remove specific Evaluation Key
for a in "AppCode" "CLion" "DataGrip" "DataSpell" "GoLand" "IntelliJ" "IntelliJIdea" "PhpStorm" "PyCharm" "Rider" "RubyMine" "WebStorm" "Resharper" "dotCover" "dotMemory" "dotPeak" "dotTrace"
do
echo "Removing evaluation key for $a"
rm -f $HOME/.config/JetBrains/$a/eval/.key
rm -f $HOME/.config/JetBrains/$a/.key
rm -f $HOME/.config/JetBrains/$a*/options/other.xml
done

# Remove prefs
rm -rf $HOME/.java/.userPrefs/jetbrains/
rm -f $HOME/.java/.userPrefs/prefs.xml
613 3172594
Какого хуя в одной части кода Laravel возвращает коллекцию связанных с моделью моделей, а в другой - хуй - пустая коллекция?
614 3172612
>>72594
Оказалось, что метод all() не возвращает с каждой моделью связанные модели, а метод find() возвращает. Цирк какой-то, блять.
615 3172621
>>72612
Все, понял.
Оказывается когда я указываю названия полей в all(), то хуй мне, а не связанные модели!
616 3172639
>>72621
А поля, через которые свзяываются другие модели ты указывашь?
617 3172663
>>72594

>Какого хуя говно воняет говном?

618 3172695
>>72663
Пиши, что не говно.
619 3172698
>>72639
Да, я хз.
У меня отношения между таблицами - многие ко многим.
Я сделал в обоих метод belongsToMany().
А в методе all() указывал только поля, которые мне нужны от родительской модели. Я думал, что он вытащит мне все родительские модели с этими полями и дополнительно подтянет связанные модели, но хуй там плавал.
Я хз как там указать, чтобы и связанные модели доставал.
Поэтому просто оставил all() через аргументов.
620 3172699
>>72698
без*
621 3172712
>>72695
SQL
Что запросил - то и получил.
622 3172747
Почему как только я добавил тег script на свою html страницу в Laravel, так страница стала дико долго загружаться?
При том, что в самом скрипте нихуя ничего тяжелого не происходит.
Блять, ну что за говно, почему с этим js в laravel у меня постоянно ебли.
623 3172786
>>72698
Ты написал, что указал список полей в all(), указывал ли ты там поля, через которые в таблице джойнятся другие таблицы? Просто в yii2 если в select() не указывать поля, которые связывают один класс с другим, то вытянуть связанный класс не получится.
624 3172845
>>72786
Да, похуй, чел. Я закинул Модель вПредставление и оказалось, что мне нужны были все поля. Так что все гуд.
625 3173679
Вопервых перекатите, уже 600+ сообщений, тред потерялся в поиске.
Вовторых. Я кор пыхи изучил как мне кажется достаточно, закрепил задачками на кодворсе. Сейчас сижу читаю про ООП. Читаю и вроде бы всё понятно, но сука как это всё применять? Откуда мне брать инфу, примеры применения ООП? Как закрепить на практике именно ООП?
626 3173785
>>73679

>перекатите


Рано и бессмысленно.

>Читаю и вроде бы всё понятно...и остальные вопросы


А теперь начинается самое сложное. Нужно научиться объектно-ориентированному проектированию. Удачи дрочить SOLID, шаблоны проектирования, DDD.
627 3173788
Пачаны, а вы всегда делаете обе валидации: html и на бэке?
628 3173791
>>73679

>Сейчас сижу читаю про ООП


Это что-то из разряда:
Я конькам научился достаточно, вчера весь вечер на них простоял. Теперь нужно научиться кататься. Кто знает где по близости есть каток? И как не разбить себе башку? Это же опасно, на железных штуках по льду. И как равновесие держать вообще?

Осталось кароч начать да кончить. На пхп пишут только ооп код. Это как раз то что нужно уметь делать в первую очередь.

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

>Как закрепить на практике именно ООП?


Писать код в ооп стиле с самого начала. А ты думал это уколом в жопу делается или что?

>>73785

>Удачи дрочить SOLID, шаблоны


Чушь полная. Никто не "дрочит" солид. Просто пишут код, а потом срутся по солиду этот код или нет.
629 3173821
>>73788
ты что фуллSUCK?

на беке 100% нужно все валидировать от фронта.
630 3173843
Вы когда-нибудь отдаете что-то кроме 500, 404 и 401?
631 3173860
У меня есть поле формы.
В это поле может прийти от 1 до нескольких значений.
Поле текстовое.
Как сделать так, чтобы поле было одно, а на сервер приходил массив из этих значений?
Единственное, что я придумал - просить пользователя вводить значения через запятую, а потом самому на сервере разбирать на массив, но есть же и человеческий вариант?
632 3173871
>>73860
Человеческий вариант - делать для каждого значения свое поле. Это, конечно, если ты не марсианин или ебанат. Это на марсе практикуют писать по несколько значений в одно поле, потому что им делать больше нехуй, как сидеть ловить пропущенные запятые.
633 3173875
>>73871

>Человеческий вариант - делать для каждого значения свое поле.


А я ебу сколько пользователь передаст мне значений?
Он может хотеть оставить и 1, и 2, и 3 значения.
Ну да, можно было бы с помощью js насоздавать лишних полей.
Потом на бэке относиться к ним как к одной сущности, которую нужно проверять одинаково, сохранять одинаково.
634 3173891
>>73875
Пчел. Ну башкой-то надо думать. Ок, нужно вклячить несколько значений, но без разделительного символа. Ты как ЗАПОЛНЯЮЩИЙ это поле каким образом ХОТЕЛ бы это сделать? Как бы тебе было УДОБНО? Да не ебаться с этим полем вообще. Пусть дегенерат, который его накодил сам это гвоно и заполняет.
orehus-stiker.png38 Кб, 512x512
635 3173943
>>73891

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


Справедливо.
636 3174019
Создал ветку в гит, создал на ней файлы, потом понял, что мне нахуй не нужны. Удалил зачем-то ветку. Но, конечно-конечно, НЕЛЬЗА ЖЕ ПОТЕРЯТЬ ВЕЛИКИЙ КОД!!! И поэтому у меня в локальном репозитории отображается не код с последнего коммита, а, блять, локальная версия той хуйни, которую я не выкинул в удаленный репозиторий. Как отменить локальные изменения?
637 3174292
>>74019
git reset --hard удалит все незакоммитченное
git stash вырежет все незакоммитченное и сохранит

Как по мне лучше стэшить. Удалить стеш всегда успеешь, а можешь вообще не удалять - жрать он не просит. Зато в стеш можно всегда посмотреть. В шторме есть для этого удобный интерфейс.
638 3174382
>>73875
Пчел для это есть жиес - менять форму на фронте, на банке только ловить поля, одно поле - одно значение.
640 3175010
>>74872
Это фиаско. Не суметь нормально перекатить...
В натуре тред криворуких отбросов.
641 3175199
>>75010
А что не так?
wheelb.jpg1,4 Мб, 1984x2560
642 3175335
а вы тоже неделю делаете тестовое задание, потом вас игнорят, потом снова делаете тестовое задание неделю, потом вас игнорят, потом с...
Screenshot 2024-05-31 124311.png316 Кб, 1574x1516
643 3175407
>>75199
Где?
644 3175598
>>75335

>Делать тестовые на 8+ часов рабочего времени бесплатно


Вообще да, я заебался делать тестовые, а потом наблюдать как меня гостят. У меня есть гитхаб с проектами, хотите смотреть мой код - смотрите на него.
GaecXsgZG8Y.jpg37 Кб, 604x604
645 3175630
>>75407
Ааа блэт, тег забыл
646 3175640
>>72334
Не сработало
647 3175649
Срыгиваю из вью в пхп + вью фулстек
648 3175727
>>75649
харош
Screenshot 2024-05-31 160939.png10 Кб, 778x70
649 3175732
>>75640
Пчел...
650 3175984
>>75732
На линуксе не работает
Screenshot 2024-05-31 223423.png418 Кб, 3780x1072
651 3176094
>>75984
Пчел...
Тред утонул или удален.
Это копия, сохраненная 14 августа в 13:39.

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

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