Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
1183 80 293

Клуб изучающих PHP #113 /php/ Аноним 02/11/19 Суб 04:20:05 15111461
php-noob-1.png (33Кб, 500x500)
500x500
cat-cafe-osaka.jpg (157Кб, 1024x683)
1024x683
1393868234423.jpg (202Кб, 1024x768)
1024x768
welcome-to-php.png (188Кб, 853x480)
853x480
Опять зима стоит у двери, а мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.

В нашем треде отвечают почти на все вопросы, только бампайте каждые 5 дней.

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

Предыдущий тред был тут: >>1475112 (OP) . Все старые треды есть в архиве: https://phpclub.tech/ (там есть поиск, так что можно легко найти обсуждение какой-то задачи или ответы на свой старый пост) или ищутся в гугле по словам "клуб изучающих php" и в архиваче.

Мейлач лежит? Есть запасной тред на доброчане: /s/res/23225.xhtml#i46467

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

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

С чего начать

У нас есть свои уроки по основам PHP, они собраны и выложены по адресу http://codedokode.github.io/phpbook (вас отредиректит на другой домен, не читайте, не сохраняйте, не запоминайте его, он временный). Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то можно начать с него. Он простой и понятный. Там есть задачи, их нужно решать (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению. С другой стороны, если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.

Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).

Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.

Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.

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

- для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, PDO, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony 3/Doctrine 2
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.

Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:

https://github.com/codedokode/pasta/blob/master/soft/php-install.md
https://github.com/codedokode/pasta/blob/master/soft/apache-install.md

Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md

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

Параллельно стоит подучивать английский, на первых порах можно без него, но по мере развития придется все чаще сталкиваться с англоязычными статьями, так что лучше не откладывать. Читать можно news.ycombinator.com - это что-то вроде их хабра. Также можно начинать смотреть фильмы и видео на английском.

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

- HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- 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/
- MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1
- Новости IT на англ. https://news.ycombinator.com/
- какой-то древний, устаревший, но большой и на русском справочник по веб-разработке, посоветованный аноном: https://starcat.dp.ua/doc/wdh/

Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492

У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.

Платиновые вопросы

- Почему PHP? Потому что вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу.
- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Аноним 02/11/19 Суб 04:22:47 15111472
grammar.png (56Кб, 500x644)
500x644
Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:

PSR-1: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md
Аноним 02/11/19 Суб 04:27:00 15111493
Напомню себе, как будет время, проверить из позапредыдущего треда:

- https://github.com/asdasdasdasddasasdasdas/StudentList из >>1448614
- https://github.com/baraboolka/StudentList из >>1460026
- https://github.com/hikkej/student_list из >>1460537
- https://github.com/asdasdasdasddasasdasdas/Filesharing из >>1462815
- https://github.com/deadj/student-list/ из >>1466025 и >>1475811

Если я кого-то еще пропустил или не ответил, можно напомнить о себе в этом треде. В прошлом треде >>1475112 (OP) на большинство постов даны ответы.
Аноним 02/11/19 Суб 10:37:26 15112004
Может не туда вопрос а нуден ли пхп в 2019?
Аноним 02/11/19 Суб 11:31:39 15112305
Оп продает свои говнокурсы! Не верьте ему! Он никогда не был рпограммыстом!
Аноним 02/11/19 Суб 11:59:08 15112376
>>1511230
И какие курсы он продает?
Аноним 02/11/19 Суб 12:29:26 15112667
>>1511162
Таки спорно. С одной стороны, ты прав и действительно нет смысла что-то усложнять, если нужно выкинуть пользователю html-ку с парой кнопок, то jquery будет гораздо проще.
Но:
1) jquery уже подрастерял свою актуальность, не полностью, но... Во-первых, браузеры подсократили различия между собой (только говносафари ещё удивляет), нет такой острой необходимости в умной обёртке, учитывающей их. Во-вторых, сам js уже эволюционировал, на ванильном js-е можно сделать то же самое с чуть-чуть большим количеством кода.
2) Любой софт имеет тенденцию к усложнению со временем. Тебе нужно показать пользователю одну формочку, вторую, добавить валидацию, эффектик, что-то ещё, анимацию красивую... и в какой-то момент ты понимаешь, что оно слиплось в ком из лапшевызовов апи браузера и работы с глобальным состоянием, стоящий на костылях и хаках, чтоб быстрее. И переделать это на любой нормальный фреймворк займёт часов 20. И ты приходишь такой к начальнику и говоришь, что да, добавить новую форму - два часа, но тебе нужно ещё двадцать, потому что вот так вот. И ты услышишь следующие аргументы: "а чего ты сразу нормально не сделал?", "ну оно же работает сейчас, правильно?", "у нас нет денег на бессмысленные украшательства, не трать на это времени", "просто добавь кнопку, как-нибудь потом перепишешь" и тд и тп. В итоге будешь жить с этим легаси-говном или, матерясь, срочно переписывать его нормально.
Я это к чему, у бизнеса почти никогда нет ресурсов переделывать то, что и так приносит ему денег. Проще уже сразу сделать нормально, потратив на жалкий час больше, там не так много работы, сделать одну сраную форму на сраном реакте и пропустить через сборщик. Зато потом легче будет, если что.
Аноним 02/11/19 Суб 12:30:23 15112698
Вопрос по dependency injection container (использую PHP-DI http://php-di.org).

Как взаимодействовать с контейнером из классов? У меня есть индексный файл, в нём создаётся контейнер и через контейнер получается главный класс приложения. Примерно так:

```
$dicBuilder = new \DI\ContainerBuilder();
$dicBuilder->addDefinitions("config.php");
$dicBuilder->useAutowiring(false);
$dic = $dicBuilder->build();

$blog = $dic->get(\Core\Blog::class);
$blog->run();
```

А вот как мне получить доступ к $dic из остальных классов? В голову пришли следующие варианты:

0. Создать статическое свойство/синглтон, который будет хранить контейнер. Интуитивно кажется, что это хуёвая идея. Типа, использую DIC, но сам контейнер доступен "глобально".
1. Вставить код создания контейнера (4 строчки) в каждый класс. Возможно, это наиболее правильно, но куча копипаста ведь.
2. Создать такой же контейнер в контейнере. Т. е. в config.php пишу примерно следующее:
```
\DI\Container::class => function ( ContainerInterface $c ) {
$dicBuilder = new \DI\ContainerBuilder();
$dicBuilder->addDefinitions( "dic-cfg.php" );
$dicBuilder->useAutowiring( false );
$dic = $dicBuilder->build();

return $dic;
}
```
Вроде не самое неадекватное решение, но получается, что я в контейнере создаю абсолютно такой же контейнер и дальше уже работаю с ним. Да и опять же - копипаст, пусть и всего 2 раза.
3. Изменить код в индексном файле на примерно следующий:
```
$dicBuilder = new \DI\ContainerBuilder();
$dicBuilder->addDefinitions("config.php");
$dicBuilder->useAutowiring(false);
$dic = $dicBuilder->build();

$dic->set(\DI\Container::class, $dic);

$blog = $dic->get(\Core\Blog::class);
$blog->run();
```
Т. е. добавить контейнер в самого себя через set. На первый взгляд выглядит адекватно, но, возможно, я что-то упускаю.

Как поступить более правильно? Или, может, все варианты сосут и есть какой-то другой?
Аноним 02/11/19 Суб 13:03:50 15113049
Аноним 02/11/19 Суб 13:05:49 151130610
>>1511269
Все варанты - костыли с говном, никогда не делай такого. Любой контейнер зависимостей имеет встроенные способы разрешения этих самых зависимостей. Ищи в документации - там всё есть, только поискать.
А вот то, что ты не почитав нормально доки по либе, которую решил использовать, да ещё и потом костыли писать начал - хуёво. Избегай такой практики - самому же потом фейспалмами лицо разбивать не придётся.
Аноним 02/11/19 Суб 13:11:56 151130811
>>1511200
Иначе поставь вопрос - чем лучше питон, или нода или руби? И зачем тебе, допустим предпринимателю выбирать не пхп?
То что хотят программисты - это маня хотелки. Важно что хотят те кто платят бабки. И думаю всякие помидоры всегда пляшут от этого.
Аноним 02/11/19 Суб 13:19:26 151131112
Аноним 02/11/19 Суб 14:11:03 151133113
>>1511308
Не понимаю зачем ты на такие посты отвечаешь. Каждый тред очередной шизоид всплывает с таким вот вопросом.
И невдомёк болезному, что те, кто варится в этой всей теме знают рыночек побольше его, причём в разы. Вопрос нубский, жирный и неуместный.
Аноним 02/11/19 Суб 14:12:55 151133314
>>1511331
>Вопрос нубский

Ну так я нуб, думаю с чего начать. Вот и спросил.
Тут ведь для начинающих тред.
Аноним 02/11/19 Суб 14:15:02 151133415
>>1511333
>думаю с чего начать
Думай молча.

>Тут ведь для начинающих тред.
Т.е. ты тут ждёшь только таких же как ты - думающих с чего начать? И что толку от такого треда?
Аноним 02/11/19 Суб 14:38:43 151135016
>>1511334
>Думай молча.

С чего ты решил что ты можешь мне указывать?

>Т.е. ты тут ждёшь только таких же как ты - думающих с чего начать? И что толку от такого треда?

С чего ты решил что тут должно быть как ты хочешь?
Аноним 02/11/19 Суб 14:42:51 151135317
>>1511269
>Как взаимодействовать с контейнером из классов?
Вся соль контейнера в том что тебе не нужно взаимодействовать с ним из классов. Ты в конструкторах описываешь нужные зависимости, и контейнер эти зависимости за тебя резолвит.

>Как поступить более правильно? Или, может, все варианты сосут и есть какой-то другой?
У любой программы есть точка входа, подумай какая точка входа нужна для твоего приложения и что она должна делать? Для твоего веб приложения упрощенно это почти всегда инициализация, рут -> обработчик. Т.к. контейнер в иерархии находится ближе точке входа то у тебя есть возможность просто сказать ему, контейнер - вызови обработчик и передай ему все зависимости. (На этом этапе еще тесно можно общаться с роутером и биндингом переменных рутов и переменными обработчика, например /post/:id и передавать в $id это значение).
И почему ты автовайринг выключил? Это же пушка
Аноним 02/11/19 Суб 14:45:02 151135518
>>1511311
Почему нет? Представь что ты в public/index.php подключаешь этот файл, получаешь объект контейнера, и всё, ты можешь инитить любой класс, тот же роутер, ну а дальше понятно.
Аноним 02/11/19 Суб 14:57:24 151136319
>>1511353
>Вся соль контейнера в том что тебе не нужно взаимодействовать с ним из классов

В принципе, я предполагал такой вариант. Это объясняет, почему в доках ничего по этому поводу нет.

>И почему ты автовайринг выключил? Это же пушка

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

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

>>1511355
Ну, допустим. А какие очевидные минусы имеются к варианта 3 (кинуть контейнер через set)? Или тут уже принципиальной разницы нет?
Аноним 02/11/19 Суб 16:25:07 151139920
>>1511363
>Ну, допустим. А какие очевидные минусы имеются к варианта 3 (кинуть контейнер через set)? Или тут уже принципиальной разницы нет?

Я, если честно, вообще не понял зачем ты контейнер засовываешь в контейнер и как это тебе поможет. Это же какой-то бред на уровне return $var === true ? true : false;

>как передать в объект два разных объекта одного и того же класса. Автовайринг тут, очевидно, не сработает.
Автовайринг сработает, но скорее всего по дефолту передастся две ссылки на один и тот же объект, хотя реализация вообще разная может быть. Для таких случаев используются биндинг или фабрики, например у тебя класс принимает два одинаковых интерфейса, но ты хочешь две разные реализации засунуть. (Хотя выглядит это очень странно и тупо)
Аноним 02/11/19 Суб 16:37:08 151140421
Аноны, помогите разобраться с отправкой почты. Не понимаю как это должно работать.
есть нативная функция mail() в пхп, которая для отправки почты использует встроенный почтовый сервис операционной системы. В линукс он есть по дефолту.Я работаю с вин7, и у меня это функция не работает.
Так же существует smtp - протокол и smtp-сервера. Что бы отправить на такой сервер письмо - необходимо что бы данное письмо соответствовало стандарту smtp. Для этого используют библиотеки типа PHPMailer.
Я правильно понимаю?

Если я работаю из винды, то мне требуется поставить smtp сервер какой нибудь. Настроить его, и уже из своих скриптов отправлять на него письма, которые уже этот сервер будет рассылать куда нужно.
Так?
Аноним 02/11/19 Суб 16:51:10 151141022
>>1511404
>я работаю из винды
Опенсервер что ли?
Аноним 02/11/19 Суб 16:54:31 151141123
.png (114Кб, 1588x887)
1588x887
Вопрос по БД. Допустим есть здоровенный JSON на 1.5к строк, который отдает сервер, и мне нужно его сохранить в бд. Структура сложная как пикрилейтед. Какая структура таблиц делается в таких случаях? На каждый array делать новую табличку и привязывать по айдишнику что ли?
Аноним 02/11/19 Суб 17:06:12 151141524
>>1511410
Есть разница между опен сервером и ручной сборкой апач + пхп?
И то и другое есть
Аноним 02/11/19 Суб 17:23:15 151142625
>>1511415
Почту из опенсервера отсылаешь?
Аноним 02/11/19 Суб 17:28:34 151143926
>>1511411
Либо да (нет), либо хранить как json в sql базе, либо хранить как json в json-ориентированной базе типа монгодб на выбор
Аноним 02/11/19 Суб 18:09:44 151146627
>>1511439
> в json-ориентированной базе типа монгодб
Спасибо няша, не знал про существование такого.
Аноним 02/11/19 Суб 18:22:20 151147628
>>1511426
Вообще ниоткуда не отсылаю пока что, хочу толково понять что к чему. О том и вопрос
Аноним 02/11/19 Суб 18:43:51 151149529
Поясните что есть api? Это ссылкка, которая возвращает какие то данные (для фронтенда в json, например)?
Аноним 02/11/19 Суб 18:46:42 151149830
Почитал про phpMailer, в документации сказано что он позволяет отправлять из винды письма на smtp сервер. То есть реализует некий smtp клиент ? Этот клиент не может быть написан на пхп, так как является системным приложением и написан на с++?
Я правильно цепочку понимаю:
Мой пхп код -- вызываю smtp клиент, он формирует письмо и отправляет на smtp сервер, который отправляет письмо адресату . Так ?
Аноним 02/11/19 Суб 19:15:06 151152731
15719211225700.jpg (87Кб, 720x696)
720x696
>>1511146 (OP)
Здарова, пыхеры.

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

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

Кстати, что за хуйню ублюдочный оракл сделал с сайтом mysql? Вчера зашел и ахуел


Сам жээс фулстак.
Аноним 02/11/19 Суб 22:14:28 151164132
Аноним 03/11/19 Вск 00:46:16 151168933
Как понять работу контейнера? Допустим я зарегестрировал зависимость в контейнере симфони
$conteiner->register('request', Request::class);
Когда я буду получать реквест в конструкторах других классах мне будет возвращаться один и тот же обьект?
Или есть у меня зависимость шаблонизатора Twig. Я хочу в этот шаблонизатор добавить глобальную переменную класса Session.
$container->register('twig', Environment::class)
->addArgument(new Reference('twig.loader'))
->addMethodCall('addGlobal',['session', new Reference('session')]);

Если мне, допустим, нужно определить Session еще и в конструкторе асбтрактного контроллера. У меня будет один и тот же обьект Session в обоих случаях? Или создадутся 2 разных обьекта? Смотрю примеры фреймворков (Symfony, Laravel) вообще ничего не ясно. Доки симфони по контейнеру прочитал, думаю, десяток раз. Не вижу там этой инфы. Еще меня смущает использование таких обьектов как $app, response в контроллерах. Как они обьявлены глобально?
Подскажите хотя бы как это загуглить, ибо как не ищу выдает одни и те же доки на разных языках, но там только описано как задать зависимость, например.
Аноним 03/11/19 Вск 01:20:03 151171234
>>1511689
>У меня будет один и тот же обьект Session в обоих случаях? Или создадутся 2 разных обьекта?
А тебе в исходниках посмотреть не судьба эти методы?
Аноним 03/11/19 Вск 01:41:07 151173035
>>1511712
Без негатива и всего этого, но я не понимаю о каких ты методах.
Аноним 03/11/19 Вск 02:41:10 151174436
>>1511730
Да я без негатива вроде, хз.
Смотри тот метод, где разрешается зависимость очевидно - как оно там работает. Исходники-то открыты.
Ты ж программист.
Аноним 03/11/19 Вск 02:52:54 151174737
>>1511744
Я уже все пересмотрел. Сейчас пробовал респонсы создавать разные контейнером и менять в контент. Пришел к выводу что он создается один и тот же. Это радует.
Только пропала одна проблема - появляется новая. Symfony Session компонент просто не работает. Когда пытаюсь его создать - пишет что сессия уже запущена. Но на метод $session->isStarted() возвращает false. Пробовал и session_abort до этого делать и гуглить. В гугле самая большая проблема в том, что выдает запросы по работе с самим фреймворком, а не с компонентом.
Аноним 03/11/19 Вск 02:53:30 151174838
>>1511747
Но, конечно же, "все пересмотрел" !== "все понял и разобрал"
Аноним 03/11/19 Вск 04:45:30 151177139
Здравствуйте аноны!
Я в некотором замешательстве. Лениво учу python довольно продолжительное время, знаю синтаксис и не более. Да и то поверхностно. Не могу понять где применить этот язык и куда двигаться, везде кричат что нет вакансий, дикая конкуренция итд. Короче полная дизмораль. Подумываю пересесть на стул с php. Скажите, у вас есть четкий алгоритм прихода к успеху на работу? Не уткнусь ли я в лес непонимания куда мне двигаться дальше? У меня тройка по математике и я хочу простую ламповую работку для сыча. Пхп тоже требует адский стек технологий?
Аноним 03/11/19 Вск 09:50:45 151181440
>>1511498
бамп!
Аноны, кто в теме объясните подробно.
Как phpmailer может отправлять напрямую письма из винды, если это поидее надстройка над mail(), которая по дефолту вызывает в linux функцию sendmail, а в виндовс на сколько я понимаю не вызывает нихуя ( или вызывает какую то виндовую почтовую службу все таки? )


Аноним 03/11/19 Вск 09:53:43 151181541
>>1511689
В принципе в контейнере всегда должен храниться один и тот же объект. Когда ты запрашиваешь объект, идет проверка - если объекта в "хранилище" контейнера нет - он создается, а если нет - возвращается уже созданный объект.
У ОП-a есть урок который позволит понять чуть лучше:
https://github.com/codedokode/pasta/blob/master/arch/di.md
Аноним 03/11/19 Вск 11:53:58 151186442
>>1511814
>кто в теме объясните подробно
В гугле куча статей, а ты до нас доебался.
Аноним 03/11/19 Вск 13:20:23 151194743
>>1511815
Ты не прав. В контейнерах может лежать по сути фабрика, есть такой подход. В том же симфони контейнере можно указать, тебе кэшировать объект или каждый раз пересобирать его заного.
Ну и да, главная задача контейнера - резолвить зависимости между компонентами, а все прочие кэши-хуеши - дело десятое.
мимо
Аноним 03/11/19 Вск 14:00:40 151197944
>>1511771
Везде нужен стек. Но на пхп легче, можно хоть в те же вордпрессы вкатиться. Я хоть и нуб, но не особо понимаю преимущество питона в вебе, язык сам по себе тормознутый, так еще и конкуренты аля пхп => и работы меньше.
Аноним 03/11/19 Вск 14:36:29 151201545
>>1511689

Тебе правильно посоветовали: изучать исходный код.

Контейнер Симфони относительно сложный, для изучения лучше взять что-нибудь простое вроде Pimple:

- https://pimple.symfony.com/
- https://github.com/silexphp/Pimple

Контейнер Симфони сложнее, так как он позволяет конфигурировать сервисы через конфиги вроде YML-файлов, а также в нем есть "компиляция" - генерация единого PHP-файла с заложенными в нем настройками, что позволяет сразу загрузить этот файл, а не читать и не разбирать конфиги в дальнейшем. Это повышает производительность.

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

Это зависит от контейнера и его настроек. Возможно и то, и то. В Симфони, например, есть специальная опция для выбора, возвращать один и тот же объект или создавать новый: https://symfony.com/doc/3.4/service_container/shared.html

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

foreach ($requests as $request) {
$container->set('request', $request);
$kernel->handle($request);
}

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

Раньше Симфони использовала scopes, чтобы не допускать такие ситуации и удалять сервисы вместе с request. Но позже их убрали: https://symfony.com/blog/new-in-symfony-2-8-deprecating-scopes-and-introducing-shared-services Вместо request теперь в контейнер кладут request_stack, который возвращает актуальный request, что по моему не сильно лучше и не исключает того, что долгоживущий сервис сохранит себе копию request.

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

> $container->register('twig', Environment::class)
> ->addArgument(new Reference('twig.loader'))

Это, кстати, можно настраивать с помощью конфига, а не писать кодом. Правда тогда для оптимизации придется делать "компиляцию" контейнера.

> Еще меня смущает использование таких обьектов как $app, response в контроллерах. Как они обьявлены глобально?

Ты бы дал пример кода или ссылку, а то непонятно, о чем речь. Непонятно, где ты их увидел, какой фреймворк или библиотеку использовал, какой версии. Симфони, например, умеет смотреть на тип аргументов в методе контроллера и автоматически передавать туда подходящие объекты (мануал: https://symfony.com/doc/3.4/controller.html#fetching-services-as-controller-arguments )
Аноним 03/11/19 Вск 14:39:38 151201746
Аноны, объясните, почему я не могу через composer удалить пакеты которые требуют версию php большую чем я в данный момент использую?
Юзал 7.2, ставил пакеты требующие именно 7.2.
Откатил до 7.0 - теперь composer не может их удалить

>>v6.4.1 requires php ^7.2 -> your PHP version (7.0.32) does not satisfy that requirement.

Такая вот ошибка пишется.
Аноним 03/11/19 Вск 15:21:15 151204247
Аноним 03/11/19 Вск 15:47:16 151207148
>>1512017

Композер, как я понимаю, обновляет версии в большую сторону. Проще всего удалить папку vendor и composer.lock и запустить установку заново.
Аноним 03/11/19 Вск 15:47:23 151207249
ОП, спасибо за ответы! Ты няша:3
Аноним 03/11/19 Вск 17:22:43 151220050
>>1511771
Бамп вопросу, я может не совсем правильно спросил, имелось ввиду смогу ли я вкатится во что нибудь простенькое вроде пилить сайтики на фрилансе. На начальном этапе и 20-30к зарплата ьудет норм. Что для этого необходимо знать?
Аноним 03/11/19 Вск 18:28:08 151224151
>>1512200
Очень много всего, на самом деле. Для начала, попробуй сделать студентов или файлообменник из оп поста. Дальше уже сам будешь видеть какие у тебя пробелы.

Алсо, не рекомендую сразу во фриланс нырять, ты с 90% будешь пилить адовый говнокод.
Аноним 03/11/19 Вск 19:27:34 151227552
>>1512015
Ребят, я уже спрашивал но конкретного ответа не получил. Какая загруженость на работе в веб-конторах? На данный момент я сижу с утра до ночи и либо код пишу либо что то читаю. Пока что все устраивает, но понимаю, что если дальше так продолжу то выгорю или ослепну нахуй. А на счет работы боюсь что меня возьмут, а я не буду успевать работу выполнять.
Аноним 03/11/19 Вск 19:29:03 151227753
>>1512241
Тоесть ты предлагаешь учиться на собственных проектах. Придумывать сайт с функционалом, потом реализовывать его. Что скажешь о cms, оно вообще нужно или сразу фреймворк учить? Имеет ли смысл пилить свой движок для сайта?
Аноним 03/11/19 Вск 19:39:06 151228154
>>1512275
Сильно зависит от конторы. Среднее по больнице никто не даст.
Аноним 03/11/19 Вск 19:45:05 151228455
>>1512277
У пхп ждунов только ларавел конторы. Бойся как огня всяких вордпресс контор. Не делай сложных заданий дома. Налегай на жс. Быстрее вкатишься.
Аноним 03/11/19 Вск 19:57:30 151229456
>>1512284
А если контора делает и на cms и на фреймворках?
Аноним 03/11/19 Вск 20:01:55 151229857
>>1512294
Хочешь СМС изучать или программистом стать? Программист не ограничен пхп проектами.
Аноним 03/11/19 Вск 20:16:06 151230658
>>1512298
Да и вообще ты сможешь себя программистом в полном смысле считать только когда в командной разработке участвовал. СМS подразумевает что один чушка по быстрому накидывает плагинов и проверяет чтобы это все минимально работало.
Аноним 03/11/19 Вск 20:22:23 151230959
>>1512298
Это не мой пост, мне лучше чтобы без cms , а то это зашквар как я понял. У python и php есть точки соприкосновения? Будет профит если знать оба языка?
Аноним 03/11/19 Вск 20:27:16 151231760
>>1512306
У меня в городе просто нет вакансий для чистого Laravel junior. Везде упоминается Yii как минимум. А то и на cms скажут шаблон натянуть - хер знает. Стоит ли мне без опыта в такую контору идти чтобы его набраться? Или сидеть ждать чуда/искать фриланс на ларке/symfony.
Аноним 03/11/19 Вск 20:28:36 151232061
>>1512309
Зашкар или не зашкар понятия какие-то детские. Это твой путь или не твой, может кто хочет стать cms одиночкой на арворке. Кто-то веники вяжет и неполохо себя чувствует.
Аноним 03/11/19 Вск 22:42:14 151247462
>>1512241
>Алсо, не рекомендую сразу во фриланс нырять, ты с 90% будешь пилить адовый говнокод.

Тут считаю двоякая ситуация. Для большинства войти-в-ойти это что то типа двери в нарнию, где тебя добрые дяди возьмут к себе, научат и платить будут. В принципе это потенциально возможно.
Но в этом контексте я считаю что личные качества значат больше чем навык, навык придет по итогу если код писать. А вот решительность, активность, предприимчивость, умение искать работу и себя подавать - это стоит гораздо дороже всех прочих личных навыков, и на самом деле не просто так из воздуха берется. А уж если ты еще и начинающий.
Я это к тому говорю, что по итогу на любой скилл будет покупатель. Я лично видел статичный прости Господи лендиг это был пиздец ужас, на табличной верстке за который взяли 10 тыщ. Тут полтреда за 10 к и месяц времени фреймворк ебанет и магазин поверхнего. Утрирую конечно. Но работать зная что ты учишься,и тебе еще и бабла заплатят, пусть и на дошик - это гораздо приятнее.
Поэтому эти вещи стоит прокачивать, просто реально по себе искать задачи. Люди на такой хуйне зарабатывают порою, что диву даешься. Кабанчики не зря подскакивают в этой жизни.



>>1512298
>>Программист не ограничен пхп проектами.
Золотые слова. Я как в пхп основательно въехал - для меня в node.js все значительно яснее стало.

Аноним 04/11/19 Пнд 00:22:27 151253363
>>1512474
>Золотые слова. Я как в пхп основательно въехал - для меня в node.js все значительно яснее стало.
Хочу когда с пхп разберусь и стану хотя бы мидлом - начать учить другие языки. Считается ли это нормой? Помню в треде писали что нужно выбирать что то одно - там и сидеть.
Аноним 04/11/19 Пнд 00:30:41 151253664
>>1512533
Скорее наоборот, чтобы стать мидлом придется учить другие языки и технологии. Иначе будешь на одном месте сидеть.
Аноним 04/11/19 Пнд 00:41:24 151254365
>>1512533
У бекендеров принято ещё и фронтенд знать хоть как-то. Тот же js тебе по-любому изучать придётся. Никто не мешает потом на него перекатиться.
Ноду ту же щупал, наверное, каждый второй из местных.
Аноним 04/11/19 Пнд 11:06:05 151274066
>>1511814
Кажется я понял почему PHPmailer может отправлять smtp-почту - потому что соединение реализуется черкз сокеты. А их пхп нативно поддерживает.
Я прав?
Аноним 04/11/19 Пнд 11:16:12 151274367
>>1512740
>черкз сокеты. А их пхп нативно поддерживает.
через костыль
Аноним 04/11/19 Пнд 12:28:55 151277568
Аноним 04/11/19 Пнд 13:02:32 151278769
>>1512775
Да никакого костыля. Как все языки работает с сокетами через с обертку
Аноним 04/11/19 Пнд 13:13:50 151279170
Делаю задачку по учебнику,
что не так?

<?php
error_reporting (-1);

$human1 = mt_rand(1,6);
$human2 = mt_rand(1,6);

$cpu1 = mt_rand(1,6);
$cpu2 = mt_rand(1,6);

$humanSum = ($human1 + $human2);
$cpuSum = ($cpu1 + $cpu2);

if ($humanSum > $cpuSum);{
echo "Победа человека!\n";
}
elseif($humanSum < $cpuSum);{
echo "Победа ИИ!\n";
}
else ($humanSum == $cpuSum);{
echo "Ничья!\n";
}
?>

Аноним 04/11/19 Пнд 13:20:21 151280171
>>1512791
>что не так?
Ты нам в угадайку играть предлагаешь что ли? Проблему опиши.
Аноним 04/11/19 Пнд 13:32:53 151281872
>>1512801
Идеон говорит что-то не так с синтаксисом PHP Parse error: syntax error, unexpected 'elseif' (T_ELSEIF), expecting end of file in /home/m5d2V4/prog.php on line 16

ПХП Шторм подсвечивает выделенные жирным скобки как Expecting statement

<?php
error_reporting (-1);

$human1 = mt_rand(1,6);
$human2 = mt_rand(1,6);

$cpu1 = mt_rand(1,6);
$cpu2 = mt_rand(1,6);

$humanSum = ($human1 + $human2);
$cpuSum = ($cpu1 + $cpu2);

if ($humanSum > $cpuSum);{
echo "Победа человека!\n";
}
elseif($humanSum < $cpuSum);{
echo "Победа ИИ!\n";
}
else ($humanSum == $cpuSum);{
echo "Ничья!\n";
}
?>
Аноним 04/11/19 Пнд 13:33:38 151282273
>>1512818
} перед elseif
и } перед else
Аноним 04/11/19 Пнд 13:59:46 151285374
>>1512822
>if ($humanSum > $cpuSum);{
>elseif($humanSum < $cpuSum);{
Точка с запятой тут не ставится.
Аноним 04/11/19 Пнд 14:09:21 151286175
>>1512853
Точно! Спасибо.

Но теперь Шторм ругается на

else ($humanSum == $cpuSum) {
echo "Ничья!\n";
}

Cannot use [] for reading
Аноним 04/11/19 Пнд 14:10:46 151286476
>>1512861
У тебя опять синтаксис неправильный.
Аноним 04/11/19 Пнд 14:14:35 151286677
>>1512864
В чем?
Сдается не шторм мозги ебет по поводу { и [
NoLaifer 04/11/19 Пнд 14:18:51 151287278
памагити

не могу понять почему не преобразует в верхний регистр
https://ideone.com/8zFsVm
NoLaifer 04/11/19 Пнд 14:19:12 151287379
>>1512872
клавиша шифт, задание
Аноним 04/11/19 Пнд 14:47:14 151291080
>>1512866
>В чем?
Ты теперь на каждый пук будешь у нас спрашивать?
Сходи и сам посмотри как правильно писать на пхп надо.
Аноним 04/11/19 Пнд 14:55:45 151292381
>>1512910
Если такой психованный, мог бы не отвечать.
Вахтер местный что ли?
Аноним 04/11/19 Пнд 15:00:55 151292882
>>1512927
будем надеяться,что тебя забанят
Аноним 04/11/19 Пнд 15:02:42 151293283
Аноним 04/11/19 Пнд 15:31:23 151297084
7.png (17Кб, 1416x261)
1416x261
Анон, делаю калькулятор (пушо с переводом цифр в слова не справился):
1) Откуда берётся ноль? Пробовал убрать с помощью $i+1, но не вышло.
2) Я хочу, чтобы у меня в $a записывались числа при помощи цикла, после чего при появления знака '+' - он прекращал записывать цифры в $a и начал следующие цифры после знака '+' записывать в $b. Как это реализовать?
Аноним 04/11/19 Пнд 15:38:06 151297585
>>1512970
Или я хуйню делаю и лучше сделать через прег_сплит?
Аноним 04/11/19 Пнд 15:52:06 151298986
>>1512975
>я хуйню делаю
Вся твоя жизнь в трёх словах.
Аноним 04/11/19 Пнд 17:38:39 151308187
>>1512970

У тебя не видно чему равен $input и чему равно начальное значение $a. Может, там такой код?

$a = 0;
....
$a = $a . $char;

Здесь оператор точка перед склеиванием преобразует число 0 в строку "0" и к ней приклеит следующую цифру.

Аноним 04/11/19 Пнд 17:39:25 151308388
Аноним 04/11/19 Пнд 17:51:27 151310189
>>1513081
Бля, точно, спасибо.

А как можно добавлять число к числу, без преобразования в строку?
$a += - не преобразует, но он тогда просто прибавляет цифры. Какой-то оператор для этого существует?
Аноним 04/11/19 Пнд 17:53:47 151310390
>>1513083
Поэтапно разбери и посмотри, что работает, а что нет.
Аноним 04/11/19 Пнд 17:59:37 151310991
>>1513083
даже когда>>1513103
не присваивается в функции строка
но я не понимаю почему
там есть равно, значит должно блин
сейчас кстати попробую обьявить
$str= ' ';
Аноним 04/11/19 Пнд 18:01:55 151311392
>>1513101

А не надо вначале было класть 0. Помести в переменную пустую строку.

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

число = число умножить на 10 + новая цифра.
Аноним 04/11/19 Пнд 18:10:51 151312793
>>1513113
>А не надо вначале было класть 0. Помести в переменную пустую строку.
Так поменял я, я говорю о том, как сделать так, чтобы переменные добавлялись не в строку и чтоб на выходе получалась НЕ строка.

>Формула такая:
Формула чего?..
Аноним 04/11/19 Пнд 19:15:59 151318094
>>1512536
>>1512543
Ну фронтэнд это ясное дело. Просто все обычно к стеку так привязаны, советуют делать упор конкретно на него. А я хочу и все фреймворки шарить, и в ноде копаться, и в питоне. Но если так даже принятно, то в чем вся "болезненость" перехода на другой язык? Или это все сказки неосиляторов?
Аноним 04/11/19 Пнд 19:19:53 151318295
Аноним 04/11/19 Пнд 21:34:04 151332296
>>1513180
>> Но если так даже принятно, то в чем вся "болезненость" перехода на другой язык? Или это все сказки неосиляторов?

Я с ноды начинал, у нее документация для нуба - ад адский. Я вообще нихуя не понимал. Че от чего наследуется, и нахуя оно вообще нужно. И как из этого говна сайт собрать. Потом между делом изучил питона синтаксис, но питон рыночек порешал. На нем крайне мало для нуба работы.
По итогу пришел в пхп, выучил sql, и так по гайдам, по видосам и прочем я разобрался и в сессиях, и в ООП и в том как вообще должно быть организованно приложение. Слои, контейнеры и все такое.
Я все еще нуб, но именно на пхп я начал понимать что к чему.
Сейчас для одного человека пилю личный кабинет для сайта, за небольшие деньги, типа первый проект. И все дается через боль, но идет вперед.
И когда я возвращаюсь к node иногда - я прям гораздо проще понимаю что к чему, яснее.
Но это я с позиции нубаря.
Аноним 04/11/19 Пнд 23:13:02 151341097
>>1513180
>А я хочу и все фреймворки шарить,
Время
>и в ноде копаться, и в питоне.
Время x20
>Но если так даже принятно, то в чем вся "болезненость" перехода на другой язык?
Во времени. Если ты можешь тратить на это всё по 25 часов в сутки большую часть своего свободного времени то все ок.
Нет проблемы выучить yii, laravel и symfony ибо в целом они все mvc, только со своими внутренними правилами. Если поймешь какой-нибудь один из них, то с другими будет уже проще разбираться.
Тоже самое и с другими языками программирования. В них свой синтаксис, свои нюансы, свои библиотеки/фреймворки/мода.
Нужно следить за новыми версиями языка/фрейворка. Обновляться если в новой версии есть какие то исправления по критическим проблемам / улучшение производительности.
Я все ржу когда вспоминаю как в 7.0 или 7.1 зарезервировали слово Object и на одном проекте пришлось в коде все это переименовывать
Нет смысла быть человеком-оркестром. Стоит грамотно выбирать то, что учить.
Плюс не забывай, что если постоянно работать и/или учиться то можно просто ебнуться и выпилиться.



Аноним 04/11/19 Пнд 23:48:50 151342498
Ребзя, а как понять на каком уровне находится анон и какой уровень нужен, чтобы идти на РАБоту?
Понятно, что учиться можно бесконечно. Да и некоторые аноны с нулевыми знаниями работать шли и там уже учились.
Аноним 05/11/19 Втр 00:41:18 151345499
>>1513410
>Нет проблемы выучить yii, laravel и symfony ибо в целом они все mvc
Ну я узнал о psr-7. И сейчас в компонентах ковыряюсь. Как я понимаю в пхп фреймворки все на одном фундаменте построены.
>В них свой синтаксис, свои нюансы, свои библиотеки/фреймворки/мода.
Мне кажется синтаксис другого языка не очень долго учить, мода - да. Не знаю почему, но не верится что для перехода с той же пыхи на руби или питон у мидла потребуется более 1 месяца. Ну потеряю я на месяц-два чуть чуть в зп, лучше чем на люстре вздернуться.
>Плюс не забывай, что если постоянно работать и/или учиться то можно просто ебнуться и выпилиться.
На самом деле я уже начинаю этого бояться. Слишком спешу и времени много уделяю, жаль что выбора другого нет.

>>1513424
Можешь откликнуться на вакансию - пришлют тестовое. Даже если ты его не сможешь сделать/сделаешь плохо, то для тебя это какой никакой а опыт. Возьмут - хорошо, не возьмут так хоть практики прибавиться.
Аноним 05/11/19 Втр 01:20:04 1513474100
>>1513410
>Нет смысла быть человеком-оркестром. Стоит грамотно выбирать то, что учить.
А я считаю, что поковырять стоит всё что интересно и дотянешься, но при этом иметь собственный стек в котором сечёшь.
Аноним 05/11/19 Втр 09:08:48 1513557101
Как решается эта задача?

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

1×1 = 1
2×2 = 4
...
9×9 = 81

Я не понимаю вообще эти ебаные циклы.
Это какая-то дичь.
Аноним 05/11/19 Втр 10:09:27 1513572102
>>1512787
назови мне библиотеку,где сокеты норм работают в пхп?
Аноним 05/11/19 Втр 10:57:13 1513600103
>>1513557
Скачай видеоурок какой-нибдуь и посмотри. Или на ютубе. Всё станет ясно и понятно.
Советую именно так делать. Если всё ещё не поймёшь - гугли как сделать такой цикл (таблица умножения). Но не копируй, а разбери по строке, что происходит и почему прибегаю к туториалам, которые ты прошёл.
Аноним 05/11/19 Втр 11:10:43 1513610104
>>1511149
То у одного регнуться нельза, у другого дебильные ограничения на название группы, у кого-то код отформатирован так, будто копипейстом за одну ночь настрочено.

Вы там своё говно вообще тестируете?
Аноним 05/11/19 Втр 12:26:08 1513665105
>>1513600
Сможешь ли ты в спойлере хотя бы показать как?
Логика от меня начисто ускользает.
Я третий день сижу за этим и похоже зря теряю время.
Аноним 05/11/19 Втр 12:42:08 1513680106
>>1513665
Если надо что-то совсем плюшевое, то:
for I>N
{
echo "<tr>$X</tr><tr>x</tr><tr>$X</tr><tr>=</tr><tr>pow($X)</tr>"
}
Аноним 05/11/19 Втр 12:56:51 1513693107
>>1513680
Вообще нихуя не понял.
Слишком сложно.
Слишком ебануто.
Я всё, всем удачи.
Аноним 05/11/19 Втр 12:58:09 1513695108
Аноним 05/11/19 Втр 13:09:37 1513703109
>>1513693
чувак так далеко не уедешь. Расскажи как ты пытался решить эту проблему, какой код писал, что именно было не понятно.
Аноним 05/11/19 Втр 14:08:15 1513746110
>>1513695
а почему говорят,что лучше нода с сокетами?
Аноним 05/11/19 Втр 14:31:25 1513761111
>>1513693
Ты совсем что ли тупенький?
for ($i=0;$i<9;$i++){
}


Дальше сам разбирайся
Аноним 05/11/19 Втр 14:32:54 1513762112
>>1513703
Я знаю что не уеду.

Я не понимаю ебучего принципа как это говно работает, это ускользает от моей человеческой логики.

Ну теперь когда я пробомбился, я не понял почему у меня не умножает

$a =1
$b = $a*$a;

for ($a = 1; $a < 10; $a++) {
echo "$a X $a = $b";
}

А надо чтобы выводило:
1Х1 = 1
2Х2 = 4
3Х3 = 9

И так далее до 10.

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

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

Просто цикл при увеличении на единицу понятен, но дальше просто космическая пропасть сложности.



Аноним 05/11/19 Втр 14:36:11 1513763113
>>1513762
for ($b=1; $b<=9; $b++) {
for ($i = 1; $i <= 9; $i++) {
echo "$b $i = " . $b $i . "<br>";
}
}

Или
for ($i = 1; $i <= 9; $i++) {
echo "$i $i = " . $i $i . "<br>";
Аноним 05/11/19 Втр 14:36:50 1513764114
там знак умножения проебался, сам вставишь >>1513763
Аноним 05/11/19 Втр 14:37:53 1513766115
>>1513762
Просто не твоё.
В IT много разных профессий - попробуй что-нить более понятное и не задротное.
Аноним 05/11/19 Втр 14:38:11 1513767116
>>1513762
>$a =1
>$b = $a$a;
Не нужно

>for ($a = 1; $a < 10; $a++) {
правильно
>echo "$a X $a = $b";
неправильно.
echo "$a X $a = " . $a
$a;
Аноним 05/11/19 Втр 14:39:29 1513770117
lsyfyl.jpg (30Кб, 600x600)
600x600
>>1513410
> Нет проблемы выучить yii, laravel и symfony ибо в целом они все mvc
Тащемта то, что называется mvc в yii и (частично) laravel - это хуита, которую перенесли из старых GUI-шных приложений и не адаптировали нормально под веб.
Ну и в принципе, 99 погромистов из 100 понимают "модель" как слой работы с базой данных, "контроллер" как место, где нужно писать (бизнес) логику, а "вьюху" как место, где нужно принтить данные.
Что, естественно, не так.
Аноним 05/11/19 Втр 14:40:29 1513772118
>>1513763
>>$b<=9;

А зачем тут равно?

Один знак < меньше достаточен только 10 указать и явно все окончится 9кой.
Аноним 05/11/19 Втр 14:41:19 1513773119
>>1513770
>Что, естественно, не так.
А как? Ворвался - отвечай на свой ответ чтобы не быть баттхёртом.
Аноним 05/11/19 Втр 14:49:11 1513780120
>>1513772
Потому что мне захотелось так сделать?
Аноним 05/11/19 Втр 14:56:54 1513785121
>>1513780
Я думал что за каждым символом стоит большее понимание чем просто: захотелось.

Аноним 05/11/19 Втр 14:58:55 1513789122
>>1513785
Ты хули доебался, долбоёбина?
Ну блядь, сука, мне надо числа от ОДНОГО до ДЕВЯТИ выводить, я и сделал цикл от ОДНОГО до ДЕВЯТИ, а не десяти. Иди на хуй, чёрт ебаный
Аноним 05/11/19 Втр 15:00:42 1513790123
>>1513789
Если стоит просто < 10, 9 и будет последней цифрой и 10 не выведет никак.

В остальном твой бомбаж как бы говорит что ты говно.
Аноним 05/11/19 Втр 15:02:44 1513792124
>>1513790
>послал выблядка на хуй
>анон считает, что это бомбёж а не призыв к действию
Выключай свои маняфантазии и иди работать.
Аноним 05/11/19 Втр 15:03:49 1513794125
image.png (54Кб, 1276x680)
1276x680
Пытаюсь получить бесплатный домен tk на freenom.com, и не получается. Они прикрыли лавочку, или я где-то туплю? Где ещё можно получить домен бесплатно? Мне любой, лишь бы его можно было прикрутить к уже купленному vps.
Аноним 05/11/19 Втр 15:07:54 1513798126
>>1513792
Я понял что ты тот шизик что тут срет.
Аноним 05/11/19 Втр 15:21:30 1513810127
layers.jpg (48Кб, 600x450)
600x450
>>1513773
Если вкратце, то:

"Модель" обычно понимается как "набор классов-моделей бд", что ошибочно. "Модель" является "моделью бизнес-области", по аналогии с математической моделью.
По сути, работа программиста - это моделирование некие бизнес-процессы средствами программного кода.
Соответственно, модель ничего не знает про то, на чём она работает, не знает ничего про базу данных и всё такое, там пишется платформо-независимый код.
Далее, "вьюха" и "контроллер", эти штуки нужны были в те времена, когда софтина крутилась на одной машине с пользователем, соответственно, была задача "отображать" что-то на экране и "контролировать" приложение, улавливая сигналы. Сейчас в вебе как бы всё давно не так, mvc, mvp и прочее актуальны для десктопов и мобилок.

Сейчас в вебе нужен слой транспорта/интерфейсов (сокеты/http/grpc/*), вызывающий слой приложения (содержит юз-кейзы), который уже вызывает конкретный сценарии из модели и связывает их в конкретный юз-кейз.
При этом оно всё базируется на инфраструктурном уровне, который уже содержит реализации работы с бд (к примеру, в виде репозиториев) и прочее.

Там много всего и ещё больше тонкостей, читай про clean architecture, hexagonal architecture и domain driven design.
Аноним 05/11/19 Втр 16:06:20 1513848128
>>1513810
Ты как-то нахватался всего по верхам.
Ерунду написал.
Аноним 05/11/19 Втр 16:41:24 1513872129
Аноним 05/11/19 Втр 16:52:46 1513881130
Знаете, лично я не понимаю, почему ВСЮ логику сейчас принято пихать в модель. А в контроллере остаётся только передаточное звено. "О, юзер хочет сделать вот это - пнём вот этот метод модели и отдадим юзеру результат!". Я не вижу, чем этот подход лучше, чем толстый контроллер. Ну, кроме "стильно-модно-молодёжно".
Аноним 05/11/19 Втр 17:07:05 1513891131
>>1513881
Покажи кодом - что сам написал на эту тему. Кукарекать в треде любой ждун умеет.
Аноним 05/11/19 Втр 17:08:34 1513893132
>>1513881
Всем. Тестируемость, гибкость, расширяемость.
Аноним 05/11/19 Втр 17:12:28 1513896133
>>1513881
>толстый контроллер
Лапша не нужна.
Аноним 05/11/19 Втр 17:27:23 1513905134
>>1513891
А это уже переход на личности. Давай так: я мимокрокодил и вообще не кодил ничего, окей? Ты в любом случае круче меня.
>>1513893
>>1513896
Вот хоть убей не вижу профита.
Аноним 05/11/19 Втр 17:28:12 1513906135
>>1513905
>не вижу профита
Так это твои проблемы.
Аноним 05/11/19 Втр 17:47:08 1513915136
>>1513905
>я мимокрокодил и вообще не кодил ничего
А какой тогда смысл с тобой вообще время терять? Притащил статей чтобы срач начать, а сам отношения к разработке не имеешь.
Иди-ка ты в/б, дружок.
Аноним 05/11/19 Втр 18:11:29 1513923137
Анишки, пока вы сретесь, может кто подскажет:
имеет место проблема с кешированием сайта, сделанного на slim
Суть проблемы - делается урл типа /delete/2
по нему система удаляет файл с айдишником 2, обычный анлинк. Проблема в том, что к концу дня этот урл перестает удалять файл.
НО, если я очищаю кэш браузера, то урл начинает работать и срабатывает еще пару раз. А потом по-новой очищай. Вопрос - кто-нибудь сталкивался с подобным? Куда хоть копать? В сторону браузера? В сторону хостера (бегет)? В сторону слима? Я добавил в шапку сайта заголовок с ноу-кэш. Не помогает. Смотрел в трех разных браузерах - везде одинаково.
Аноним 05/11/19 Втр 18:43:08 1513950138
>>1513923
>Куда хоть копать?
Я бы копал в сторону хттп-заголовков на запрет кэширования.
Аноним 05/11/19 Втр 18:43:26 1513951139
>>1513950
А, в глаза ебус. Сорян.
Аноним 05/11/19 Втр 19:34:59 1513977140
>>1513848
Ты или по пунктам критикуй, или не возникай. И да, сам попробуй уложить архитектуру приложений в 2 абзаца.
Ну и да, если совсем кратко:
- "модель" - это модель предметной области, содержит бизнес-логику
- "контроллер" - это то, что нужно делить на две части, собственно, "хендлер" (вычитывает нужные данные из запроса) и "юз-кейз" (валидирует данные, вызывает модель)
- "вьюха" не нужна совсем.
Аноним 05/11/19 Втр 19:38:09 1513979141
>>1513810
>Соответственно, модель ничего не знает про то, на чём она работает, не знает ничего про базу данных
Минуточку, а скул-запросы куда лепить? В контроллер? Или во вью? Куда их ещё-то, как не в модель? И как можно написать запрос, который будет ничего не знать, в какую базу он полезет: в оракл или в майскул?
Аноним 05/11/19 Втр 19:41:53 1513980142
>>1513979
в сервис
контроллеру насрать, каким образом получается нужный набор объектов из модели
он только говорит "а дай-ка мне такие объекты"

потому что завтра ты поменяешь БД на обращение к микросервису, и чо, будешь контроллер еще переписывать?
а там и до гуя дойдешь?
Аноним 05/11/19 Втр 19:52:00 1513989143
>>1513980
Анон дело говорит. Ты описываешь интерфейс, скажем:
interface UsersRepository {
public function Load(int $userId);
public function Save(int $userId);
public function LoadByName(string $name);
}
И используешь его в сервисах и юз-кейзах. А этот интерфейс уже может реализовывать MysqlUsersRepository, который и делает запросы.
Аноним 05/11/19 Втр 20:24:18 1514006144
swoole для реал проэетов пойдет или ну его наз и поставить ноду?
Аноним 05/11/19 Втр 20:24:53 1514007145
Аноним 05/11/19 Втр 20:29:34 1514009146
>>1513977
>по пунктам критикуй
Пережовывали сто раз уже на форумах. Нах ты сюда это принёс, болезный? Ни кода, ни своих наработок - только чужие статьи и чужие мысли.
Кого критиковать, тебя? Ты никто вообще.
Аноним 05/11/19 Втр 20:30:03 1514011147
>>1514006
Хз, я не пробовал, но с большой настороженностью отношусь к любым таким надстройкам над php. Может и норм, но я бы всё равно ноду взял.
Аноним 05/11/19 Втр 20:32:13 1514013148
>>1514011
ну я про то же.асинк-это не про пых
Аноним 05/11/19 Втр 20:35:48 1514015149
>>1513980
>потому что завтра ты поменяешь БД на обращение к микросервису, и чо, будешь контроллер еще переписывать?
Зачем контроллер? Модель. А "сервис" - это уже не MVC же получится. Я что-то запутался в вебе образца 2019.

Олсо, за это "мы делаем сайт визитку, но вдруг завтра он станет порталом на микросервисах и оракловой базой в распределённом кластеере? Давайте предусмотрим всё!" известный всем нам товарищ рекомендовал в своей книге (обязательной для изучения любому программисту) пиздить ногами.
Аноним 05/11/19 Втр 20:39:51 1514018150
>>1514015
Что за книга? Прям увожением проникся к товарищу.
городить абстракции на абстракции только потому, что так можно, и может пригодиться когда-нибудь - признак дегенерата от программирования
Аноним 05/11/19 Втр 20:45:31 1514020151
>>1514018
>Что за книга?
Честно говоря, я забыл и как его звали, и как называлась книга. Не то Кнут, не то Страуструп, а может ещё кто-то из их компании. Постоянно мелькает эта книга, а я постоянно забываю название.
Аноним 05/11/19 Втр 20:57:30 1514028152
Как делать задачу?
Клавиша shift
Если ты общаешься в интернете, то, наверно, заметил, что у некоторых людей есть дурная привычка, вопреки всем правилам и нормам русского языка, начинать все предложения (и даже иногда имена) с маленькой буквы. Поскольку никакие аргументы на таких людей не действуют, давай исправим их текст с помощью языка PHP.

Не знаю как составить регулярное выражение для разделения текста на строки. Не получается впихнуть пробел в такое выражение '/[.!?]+/u' .

http://sandbox.onlinephpfunctions.com/code/943693eba4c9584583afc1fa406796417445212a
Аноним 05/11/19 Втр 21:01:04 1514030153
>>1514020
Ну я понел примерно.
Помню первые парсеры писал и с ООП игрался - наворачивал одно на другое вечерами - библиотеку на фасад, с тором чтоб и многопоточно, и по SOLID всё надо красиво. Потом заметил, что я третий день пишу ёбань и ни строчки конкретной логики, и написал за полтора часа всё что надо. Тогда и понятно стало, что тормозить надо все эти фантазии и писать конкретику, иначе дроч один.
Аноним 05/11/19 Втр 21:01:21 1514031154
>>1514015
Надо, Федя. Надо. Это за бабло заказчику извлоль быстрее, некогда проектировать и так сойдет. Когда учишься нужно айл ду май бест всегда делать. Вот наспупит реальный случай, когда сеньор-помидор психанет и нахер уволится, и придется тебе придумывать архитектуру 1000 человекочасов. А ты обосрешься и будешь дальше всю жижнь свои мокрописьки писать. Оно конечно понятно что 90% веба - это мокрописки. Но хочедца расти над собой.
Аноним 05/11/19 Втр 21:07:12 1514035155
>>1514030
Ты еще Энгельса с Марксом покритикуй, мол чо там думать, все взять и поделить.
Аноним 05/11/19 Втр 21:12:21 1514045156
>>1514035
Когда котлеты будут, товарищ? Обещали ближе к выходным, а уже среда.
Аноним 05/11/19 Втр 21:20:32 1514051157
>>1514045
- Дарья, когда котлеты будут?
- Через десять минут Филипп Филиппович.
- Молодой человек, изволите обследоваться, приходите после обеда к трем часам.
Аноним 05/11/19 Втр 21:21:57 1514053158
>>1514051
Молодой человек, помогите пожалуйста
>Не получается впихнуть пробел в такое выражение '/[.!?]+/u'
Аноним 05/11/19 Втр 21:25:40 1514058159
Аноним 05/11/19 Втр 21:27:44 1514060160
Объясните нюфане, если компания хочет создать приложение и собирается использовать фреймворки, то она берет фреймворк для пхп вроде ларавеля ИЛИ она берет фреймворк для джс вроде реакта ИЛИ она берет и то, и другое и пытается их помирить?
Аноним 05/11/19 Втр 21:33:09 1514064161
>>1514060
Она берет фреймворк типа битрикс и берет джуна типо знающего жиквери и пытается их померить
Аноним 05/11/19 Втр 21:35:00 1514065162
>>1514058
/[.!?]+/u =====> /\s/u
Разбивает теперь по словам....
Возможно я неправильно описал проблему.
С предыдущей маской /[.!?]+/u получается это
__________________________________________________________
array(3) {
[0]=>
string(11) "ну что"
[1]=>
string(47) " не смотрел еще black mesa "
[2]=>
string(86) "я собирался скачать ,но все как-то некогда было"
}
__________________________________________________________

Вроде бы всё ок, но остаются пакостные пробелы в начале и конце строки... Как бы их убрать?
Аноним 05/11/19 Втр 21:35:16 1514067163
>>1514064
> померить
Школьник иди нахуй, борда для 18+.
Аноним 05/11/19 Втр 21:37:01 1514071164
какая у ларки производительность в приеме запроса и отдаче странички?
Аноним 05/11/19 Втр 21:37:12 1514072165
>>1514067
Я хател напесать "помереть" извенити
Аноним 05/11/19 Втр 21:52:21 1514102166
Аноним 05/11/19 Втр 21:54:01 1514105167
>>1514067
>борда для 18+
Тематика вроде для всех. Обычный форум в общем-то, только анонимный.
Аноним 05/11/19 Втр 21:55:08 1514109168
.png (4Кб, 904x22)
904x22
Аноним 05/11/19 Втр 21:57:41 1514115169
image.png (101Кб, 1032x727)
1032x727
>>1514109
А это нафига тогда запилили?
Аноним 05/11/19 Втр 22:01:41 1514118170
>>1514115
Шоб ты долго не искал самое важное
Аноним 05/11/19 Втр 22:09:36 1514126171
>>1514015
Понятно, что для сайта-визитки сложного бекенда не надо.
Но:
1) Не все пишут сайты-визитки;
2) Софт имеет свойство усложняться, а не упрощаться со временем;

Я приведу аналогию с канализационной системой и прочей инфраструктурой. Проектируешь ты такой городской район и тебе говорят, что там 3.5 хижины находятся. И ты бросаешь им провода с соседнего здания, пару труб - и все счастливы.
А потом появляется ещё хижина, ещё одна, домик, домик, магазинчик, маленький заводик, офисное здание, блядский сраный небоскрёб и статуя огромного кота.
И если ты в какой-то момент (а может даже сразу) не сделал нормальную развязву, систему распределения и так далее, то в итоге всё превратиться в тайские коммуникации (https://om-ek.ru/image/cache/catalog/photo/vxTa4HosZ4w-800x600.jpg).
Именно для этого и придумали архитекутуру, методы, паттерны и так далее - как набор инструментов и способов выстраивать инфраструктуру так, чтобы в итоге не самоудавиться случайно.
И говняный MVC при усложнении логики - это отличный способ навернуть говнеца, ещё говнеца поверху и запечь в совершенно нечитаемый дерьмонолит, разработчики которого уволятся или умрут от ужаса, фичи будут пилиться годами, вызывая каскады регрессий и всё такое.
Так что не будь дауном, применяй паттерны и инструменты с умом и не ври мне тут, что "не нужно и всё и так работает", всегда после таких слов я заглядывал в код разработчика и видел кромешный пиздец.
Нормально делай и нормально будет.
Аноним 06/11/19 Срд 00:34:17 1514268172
>>1514028
Разбей исходную строку на предложения. В них сделай заглвные буквы и склей. Чтобы регулярки подбирать удобно пользоваться этим https://regex101.com

Аноним 06/11/19 Срд 00:39:46 1514275173
>>1514065
А, увидел. Вообще способов много можно придумать, сам не помню каким делал. Но сейчас первое что в голову приходит - разбить строку на предложения, потом предложения на слова. И все это склеить. Но мне кажется можно сделать как то легче с помощью регулярок
Аноним 06/11/19 Срд 11:56:45 1514439174
>>1514126
>Нормально делай и нормально будет.

Что почитать чтобы сразу нормально делать на пхп?
Аноним 06/11/19 Срд 12:14:24 1514446175
>>1514439
Для начала, использовать онли симфони либо ларавел, если мало опыта. yii и cms-ки - это архитектурный ад.
Во-вторых, прочитать гайды, советы и бест практики по выбранному фремворку.
В-третьих, выше уже писали. Изучать clean architecture, hexagonal architecture и ddd, а затем их реализации на php, лучше на конкретном фремворке. Лучше пока ещё ничего не придумали.
Аноним 06/11/19 Срд 13:08:45 1514480176
>>1514446
>используйте симфони если мало опыта
Вот этого не слушайте - он бредит.
Аноним 06/11/19 Срд 13:16:16 1514485177
>>1514480
Ты в глаза долбишься что-ли?
Симфони, либо ларавел, если мало опыта.
Много опыта -> симфони
Мало опыта -> ларавел
Аноним 06/11/19 Срд 18:57:19 1514749178
>>1514446
Интересно где найти контору, которая делает все на чем то одном. Как правило это студия где делается все и на всем, от wordpress до laravel. Или ДСах это норма?
Аноним 06/11/19 Срд 22:11:09 1514958179
Привет если кто работал с битриксом а в особенности их рест апи сочуствую

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

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

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

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

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

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

Наличие всяких жидких штучек вроде серверного батчинга с референсами через по сути обращение к серверным php переменным не сильно в этом помогает, мы даже думаем тупо не поддерживать такое.
Аноним 07/11/19 Чтв 04:59:34 1515134180
cat.jpg (49Кб, 1242x968)
1242x968
>>1511146 (OP)

САП, двач, нужна помощь.

У меня есть три класса с профессиями. Задача: Создать страничку, где с помощью <form> и <select> дать пользователю возможность выбрать профессию, ajax запросом отправить ее на сервер, где нужно получить список полей (свойств класса), сформировать под каждое из них <input> и снова отправить на сервер, где создать выбранный объект класса и записать информацию о создании в лог.
Если пользователь изменит профессию, то список полей должен обновиться.

Что у меня получилось:
1. Создать классы, унаследоваться, разобраться с __constructor, __get и __set и все такое;
2. Создать класс-логгер;
3. Разобраться с запросами и ответами, манипуляцией dom с помощью jquery, добавлением, удалением и обновлением элементов страницы.

Что у меня не получается:
Разобраться с тем, как создать объект на основании информации их $_POST['prof'].

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

$object = new $_POST['prof']; - так объект создать нельзя

get_class_vars($_POST['prof']); - так нельзя посмотреть методы класса

get_class_vars($_POST['prof']); - так нельзя посмотреть методы объекта.

Я понимаю, что это бред, так как я получаю в $_POST['prof'] строку, а не класс. Но не понимаю, как тогда мне сассоциировать с этой строкой класс, как на ее основании создать объект и заполнить его данными.

К задаче есть подсказка:"Что бы получить список полей (то есть список всех свойств класса профессии), можно создать специальный метод, который будет получать массив всех свойств при помощи функции https://www.php.net/manual/ru/function.get-object-vars.php.
Например, для водителя это будет: Имя, возраст, зарплата, стаж, категории, марка личного автомобиля".

Но мне она особо не помогает, так как я концепцию как таковую не оч понимаю.

Двач, очень прошу, объясни в чем тут дело? Как правильно?

Аноним 07/11/19 Чтв 06:20:27 1515143181
>>1515134
У тебя же есть конструктор, почему бы тебе не закинуть в его конструктор $_POST?
Аноним 07/11/19 Чтв 06:39:31 1515146182
>>1515143
Три разных класса же, я же не знаю заранее какой класс выберет пользователь.
Аноним 07/11/19 Чтв 08:18:06 1515166183
>>1514749
Зависит от конкретной конторы и её типа. Если тебя интересуют аутсорсеры, то те, которые подешевле, берутся за всё подряд. Те, которые подороже, могут себе позволить крупных закачиков и какую-никакую архитектуру, они так и так будут тяготеть к нормальным фреймворкам. Но тут всегда нужно очень внимательно смотреть на саму контору, чтобы в ад не попасть, даже крупняк бывает очень херовый и лучше бы в такой не попадать.
А у продуктовых контор основной продукт уже на чём-то написан, можно хоть на собеседовании об этом спрашивать.
Аноним 07/11/19 Чтв 08:37:52 1515171184
>>1514485
> симфони
медленная и усложненая система
Аноним 07/11/19 Чтв 09:13:23 1515179185
>>1515166
Ну у меня в городе из контор только пару контор берущихся за любую работу как я понимаю (любой регион и любая сложность). Я вот начитался, и теперь боюсь идти, ибо скорее всего работать придется со всем cms/yii/laravel
Аноним 07/11/19 Чтв 09:34:12 1515186186
>>1515171
Современный, хорошо задизайненный набор компонентов. Лучше в мире php пока не придумали.
Аноним 07/11/19 Чтв 09:34:48 1515187187
>>1515179
Ну упрашивай и договаривайся, чтобы на laravel работать тогда.
Аноним 07/11/19 Чтв 10:27:13 1515215188
Цикл в цикле это говнокод ?
Аноним 07/11/19 Чтв 10:43:58 1515220189
>>1515215
Смотря когда. Иногда без него не обойтись, но по возможности лучше так не делать, конечно.
Аноним 07/11/19 Чтв 11:20:10 1515240190
>>1515134
>ajax запросом отправить ее на сервер, где нужно получить список полей (свойств класса), сформировать под каждое из них <input> и снова отправить на сервер
Мне кажется это лишнее, лучше сразу их куда-нибудь скласть и при смене пункта в селекте рисовать нужные инпуты.
Аноним 07/11/19 Чтв 11:44:40 1515253191
>>1515134
Если задача - просто дать пользователю возможность менять профессию, то городить что-то со свойствами классов изначально ошибочно.
Делаешь класс UserStorage с методами add и get, делаешь класс ProfessionStorage с теми же методами add и get, делаешь класс UserProfessionStorage с методами addForUser и getForUser.
(Чтобы не заморачиваться с бд, то каждый из классов, может писать и читать из файлика, это изи пишется)
так что твоё действие "получить для юзера профессию" будет выглядеть, как:
$profId = $userProfs->getForUser($user->id); // возвращает id профессии или null.
if ($profId !== null) {
$prof = $professions->load($profId);
// тут делаешь с профессией, что хочешь.
}

Аноним 07/11/19 Чтв 12:19:48 1515272192
>>1515146
Фабричный метод тебе в помощь.
Хотя, скорее всего, ты неправильно архитектуру пилишь с ООП это надо продумывать.
Аноним 07/11/19 Чтв 12:35:09 1515284193
>>1515253

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

>>1515272

Такие были условия задачи. Не уверен, что там подразумевались паттерны, но постараюсь разобраться, спасибо тебе.
Аноним 07/11/19 Чтв 14:28:35 1515372194
Посаны, разбираюсь с ООП.
Собственно, такие вопросы: https://ideone.com/8Xfm05
1. Есть price и weight. Если я хочу с ними работать, например с учётом ндс цену вывести, то в каком виде и где я должен рассчитывать ндс? Без разницы куда вставить расчёт ндс? Внутри product?
2. функции - являются методами, верно?
3. Если я хочу создать отдельный метод, в котором будет выводиться только цена и ндс, то надо просто создать второй метод с нужными данными, после чего вызвать его? Нужно ли мне ещё один констракт создавать для этого, потому что при создании new Product у меня будут значение кроме ндс и цены, такие как вес, название и пр.?
Аноним 07/11/19 Чтв 14:29:53 1515375195
>>1515372
>3.
Так, с 3им разобрался, нужно указывать все значения констракта, просто новый метод не будет их выводить. Тупанул.
Аноним 07/11/19 Чтв 14:39:00 1515384196
>>1515372
1. Ты неправильно понимаешь "суть" (тм) ООП. ООП - это не про то, чтобы нафигачить классов, это про то, чтобы представлять код в виде объектов (сервисов), каждый из которых выполняет свою работу и по необходимости обменивается сообщениями (вызовами методов) с другими. Всякие инкапсуляции и наследования - это уже частность, следствие объектности.
Также прочитай про SOLID, в частности про принцип единой ответственности.
Грубо говоря - если у тебя есть user, то это просто объект для хранения данных о пользователя, и всё, кроме геттеров и сеттеров там ничего держать не нужно.
Если тебе нужно считать цену - то тебе нужен PriceCalculator, который берёт, скажем, продукт и возвращает посчитанную цену для него.
Если тебе нужно вывести что-то куда-то (запринтить объект в виде html в output), то тебе нужен Renderer, View или что-то такое.

Короче, на каждую область логики тебе нужен свой сервис, не смешивай всё в одном.

2. Метод - это функция, исполняемая в контексте или конкретного объекта (может обращаться к его свойствам), или класса (если метод статический).
Аноним 07/11/19 Чтв 14:57:56 1515397197
images.jpeg (5Кб, 225x225)
225x225
Анончики, кто работал с яндекс облаком? Не могу разобраться с api для загрузки объекта в хранилище. Может кто помочь?
Аноним 07/11/19 Чтв 15:35:47 1515448198
>>1515384
>1
Ух. Понятнее не стало. Т.е. мне нужно создать метод подсчёта цены, так? Т.е. должна быть функция подсчёта цены, к которой я буду обращаться в будущем.

Алсо, создам я, например, функцию прайскалькулятор, которая будет подсчитывать цену с ндс. А после чего я её просто засуну в функцию printInfo, верно?
Блин, чё-т сложно и непонятно.

Блин-блинский. Вообще ниче не понимаю. Пойду дальше туториалы смотреть.
Аноним 07/11/19 Чтв 15:53:54 1515478199
А знаете ли вы, что строка в php - это не обязательно последовательность букв? С таким же успехом строка в php может быть цепочкой произвольных байтов. И если именно с такой точки зрения рассматривать строки, то можно без всяких проблем совершать в php байтовые операции.
Аноним 07/11/19 Чтв 16:15:07 1515508200
>>1515448
Ну, общую суть ты уловил.
Ни один твой клас не должен делать всё, он должен исполнять только свою конкретную работу, не больше. Представь свой код в виде конвейера, в котором каждый твой класс - это или объект, лежащий на ленте, или робот, которой чего-то там делает над объектом, лежащим на ленте.
(собственно, код - это и есть конвейер, он исполняется по одной инструкции, сверху вниз, отдельными "операторами" - функциями, ну ты понял)
Соответственно, твой класс Product задизайнен неверно, потому что у него откуда-то нарисовался метод printInfo(). А твой класс Product, очевидно, хранит информацию о продукте. Всё, если тебе нужно принтить продукт - создавай productPrinter либо Renderer, что-то такое.

Твой код должен выглядеть условно как-то так:
Роутер (принимает запросы и вызывает коллбек) -> Хендлер (получает объект запроса и вызывает нужный сценарий из бизнес-сервиса) -> Бизнес-сервис (описывает сценарии типа "добавить продукт в корзину", "оплатить заказ", вызывая специализированные сервисы по необходимости) -> Инфраструктурные сервисы (база данных, калькуляторы, счётчики, любая фигня) -> начинаем возвращаться назад -> Бизнес-сервис (всё рассчитал, сохранил, возвращает ответ) -> Хендлер (получил от бизнес-сервиса ответ, прокидывает его в сервис, отвечающий за отображение ответа) -> Отображатель (или View, выводит или возвращает какие-то данные в каком-то виде, например продукты в json или ордеры в html)
Аноним 07/11/19 Чтв 16:41:41 1515531201
>>1515508
>Соответственно, твой класс Product задизайнен неверно, потому что у него откуда-то нарисовался метод printInfo(). А твой класс Product, очевидно, хранит информацию о продукте. Всё, если тебе нужно принтить продукт - создавай productPrinter либо Renderer, что-то такое.
Это весьма сомнительное умозаключение. Сделать для дебага функцию printInfo у продукта - это совсем не такая уж плохая идея.
А вообще не плохо было бы сделать сразу несколько классов для продуктов:
1) Продукт как модель, хранящий данные продукта и работающий с базой данных.
2) Продукт как View, отображающий продукт тем или иным образом. Таких View может быть разумеется несколько.
3) Контроллер для продукта, который получает запросы пользователя, выбирает нужный продукт, объединяет нужный продукт с нужной View и выдаёт ответ пользователю.
Аноним 07/11/19 Чтв 16:51:29 1515543202
Аноним 07/11/19 Чтв 16:56:50 1515550203
>>1515531
Это у тебя сомнительное умозаключение. У него в printInfo понаписаны `<div style='border: {$this->border}; ` и прочее, это явный рендеринг уже. Да и принтится любой объект элементарным print(serialize($object)), так что специальные методы в принципе не нужны.

Аноним 07/11/19 Чтв 17:16:28 1515570204
>>1515550
Ну тогда ты прав конечно, html не место в классе продукта.
>print(serialize($object))
Не читабельно получится.
Вместо этого нужно использовать print_r($product) или var_dump($product). А действительности лично я на практике применяю функцию print_r_die($object) и var_dump_die($obejct)

Функция print_r_die() выглядит следующим образом:

function print_r_die($object) {
ob_clean();
print_r_die($object);
die();
}

Функция var_dump_die выглядит аналогичным образом.

В итоге, если нужно отдебажить какой-то объект, я могу в любом месте кода запустить print_r_die() и посмотреть строение любого объекта или массива.
Аноним 07/11/19 Чтв 17:19:44 1515573205
>>1515570
function print_r_die($object) {
ob_clean();
print_r($object);
die();
}

Самофикс
Аноним 07/11/19 Чтв 17:20:18 1515574206
>>1515570
Это в любом случае костыли. С момента создания xdebug надобность принтить объекты практически исчезла, потому что ты смотришь непосредственно на данные в памяти.
Аноним 07/11/19 Чтв 17:25:26 1515578207
>>1515574
Мне не нравится дебажить при помощи xdebug. И я как дебажил принтами, так и буду продолжать.
Аноним 07/11/19 Чтв 19:29:32 1515691208
>>1515578
Для меня это звучит, как "мне не нравится ездить на автомобиле, буду как привык, на лошадях".
Дебаггеры не просто так придумали.
Прочем, как только ты окажешься на достаточно сложном проекте - поймешь. Ох, как же я как-то в своё время заколебался дебажить логику процессинга заказов на одном очень крупном интернет-магазине.. 15 шагов у дерева статусов, нетривиальная логика переходов, куча условий.. Мммм, мякотка.
Аноним 07/11/19 Чтв 19:51:14 1515719209
>>1515543
Пиздос. Ваще нихуя не понятно.

Мне пока элементарные вещи не ясны.

Вот как пример, я создаю вторую функцию getPrice
она должна выглядить так?
public function getPrice(){
$NDS = ($price/100*18)+$price
}
А что мне с ней в итоге делать? Куда её записывать/вставлять и главное как?

Во первых, мне надо, чтобы она выводилась. Значит мне надо создать public $NDS. После чего её надо добавить в констракт, чтобы она существовала. И только после этого добавить её в принт инфо в виде -
<p>{$this->NDS}</p>

Это всё так будет работать или нет?

К тому же, по скольку мы добавили её в констракт, $test = new Product(Запросит здесь NDS указать, а как я её тут укажу?.. 'getPrice()'?)
Аноним 07/11/19 Чтв 19:52:44 1515722210
>>1515543
Точнее строение понятно, но вот что ты там понаписал...
Аноним 07/11/19 Чтв 19:54:13 1515724211
Сори, что совсем тупые вопросы задаю. Просто я без явного примера использования не могу самостоятельно допердолить, как подобное реализовывается. (Ну как не могу - мой максимум то, что я расписал выше, но это всё теоретически и скорее всего неправильно)
>>1515719
Аноним 07/11/19 Чтв 19:59:08 1515725212
>>1515719
Мне в голову пришла совершенно тупая мысль: почему бы тебе не вывести логику расчёта НДС в субд?
Аноним 07/11/19 Чтв 20:00:59 1515729213
three-toed-sloth.jpg (65Кб, 750x585)
750x585
Аноним 07/11/19 Чтв 20:02:43 1515733214
Аноним 07/11/19 Чтв 20:07:29 1515738215
>>1515733
Друже, я делаю элементарные задания. Если ты про фигню типа sql, то я до такого ещё не дорос.
Мне просто бы понять, как правильно сделать это и дальше по примеру этого работать с остальными заданиями до новых вопросов. >>1515719
Аноним 07/11/19 Чтв 20:14:37 1515747216
>>1515719
Давай начнем с того, что ты нормально вопрос сформулируешь. Что хочешь сделать и что не понятно.
Аноним 07/11/19 Чтв 20:30:50 1515760217
>>1515747
Я же всё вроде расписал.
>>1515372
>https://ideone.com/8Xfm05
Вот тут вот оригинал кода. Хочу добавить функцию расчёта ндс, чтобы цена с ндс выводилась, но я точно не уверен, как это делается, потому что со всеми этими паблик/констрактами и прочем создалась путаница в голове и я не совсем понимаю строение кода и как его применять.
Собственно, все вопросы которые у меня возникли находятся именно в этом посте >>1515719
Аноним 07/11/19 Чтв 21:40:17 1515806218
1013177221.jpg (38Кб, 445x650)
445x650
>>1515760
Ну и зачем ты пытаешься лезть в ООП, если не понимаешь как оно работает. Посмотри на ютубе видос про создание инернет магазина, блога и тд или почитай пикрелейтед.
Аноним 07/11/19 Чтв 21:45:07 1515816219
>>1515806
Большое спасибо за помощь, можешь дальше не отвечать на поставленные вопросы!

Пиздец, каждый вопрос в треде - за место внятного ответа на простые вопросы говорят 'иди читай то, иди читай сё', или предлагают какую-то невъебенно-сложную залупу или же вообще отвечают не по теме, предлагая какие-то базы и прочую хуйню.
Я уже прочитал несколько статей и посмотрел гайды и мне непонятны очевидные вещи, потому что я НЕ ВИДЕЛ как эти вещи решаются на пример. Поэтому я жду ответа правильно ли я понял, как это делается или же что-то нужно изменить/что-то я не понял/делается как-то иначе > >>1515719
Аноним 07/11/19 Чтв 21:47:16 1515820220
Реально, в чём проблема написать 'ты понял правильно, делается так так и так, а в этом случае ты понял не правильно и делать надо как-то иначе'.
Я сразу вспоминаю тот видос от какой-то пизданутой психиаторши, которая говорит о программистах и которую тут форсили. На фоне происходящего в треде из срачей и пиздежа не по делу кажется, что она не такая уж и пизданутая.
Аноним 07/11/19 Чтв 21:56:12 1515834221
>>1515820
>Реально, в чём проблема написать 'ты понял правильно, делается так так и так, а в этом случае ты понял не правильно и делать надо как-то иначе'.
Проблема в том, что тут сидят такие же чуваки и им нахуй не впёрлось заниматься твоим образованием.
Ты идиот ваще? Нанимай репетитора и будет он тебе всё расжёвывать, а у нас самообучение в ходу.
Аноним 07/11/19 Чтв 21:57:42 1515841222
>>1515816
Просто судя по твоему сообщению, у тебя на самом деле отсутствует элементарная база, в этом нет ничего плохого. Я рекомендовал тебе посмотреть видосы на ютубе как раз чтобы ты посмотрел как вся эта хуйня работает на примере. Можешь глянуть канал этого чувака что по ссылке, он неплохо рассказывает про ооп и mvc, как только вникнешь в то что он объясняет, многие вопросы сами по себе отпадут.

https://www.youtube.com/watch?v=ba3M3_Myrqg&t=1s
Аноним 07/11/19 Чтв 21:57:49 1515842223
>>1515834
Так если они не понимают - нахуя они лезут? Лол.
Я написал - ваше дело ответить по/ не ответить.

Я точно так же тут где могу отвечаю на лёгкие вопросы, где не могу - молчу.
Аноним 07/11/19 Чтв 22:01:12 1515846224
>>1515841
>у тебя на самом деле отсутствует элементарная база
Дело в том, что я уже много чего прочёл, где-то попрактиковался. Но я такой человек, что если я не понимаю что-то логически, тогда надо просто посмотреть чужой пример. Да и как видишь я выше вроде как расписал план действий исходя из логики, но скорее всего оно не будет работать, потому что я что-то упустил.

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

Просмотрю уже завтра на свежую голову. Может быть найду ответы, спасибо.
Аноним 07/11/19 Чтв 22:07:34 1515850225
>>1515842
Тебе правильно намекнули - ты в теории плаваешь. Без теории ты проста очередная макака за клавиатурой.

Если не делал задачи из ОПпоста, то не лезь ваще никуда пока.
Аноним 07/11/19 Чтв 22:17:31 1515863226
>>1515846
>у меня даже не с ООП проблема, а скорее с базой и построением кода при применение ООП
В твоих сорцах не только с ООП проблема. Ты даже данные неправильно выводишь - через эхо никто не выводит разметку уже лет 15 как. За это по яйцам бьют в хороших коллективах.
У тебя именно базы нет.
Аноним 07/11/19 Чтв 22:23:19 1515876227
Аноним 07/11/19 Чтв 22:27:01 1515878228
>>1515876
ПХП сделан для того, чтобы безболезненно впиливаться в вёрстку, а у тебя наоборот - вёрстка болезненно всунута в ПХП.
Просто чтобы посмотреть данные, то можно выводить через var_dump. Особенно православно получается, если ещё и xdebug накатить.
Аноним 07/11/19 Чтв 22:29:19 1515880229
>>1515878
А. Так если я не хочу вардампить, то в чём проблема эко использовать? Ну ладно.
Аноним 07/11/19 Чтв 22:30:18 1515882230
>>1515880
>Так если я не хочу вардампить
Да не хоти. Только потом не надо обижаться, если тебя макакой кличут и книжки советуют.
Аноним 07/11/19 Чтв 22:41:25 1515889231
>>1515882
Ну с учётом того, что вар дамп был использован, почему бы не перестать его использовать и вписать эко?..
Аноним 07/11/19 Чтв 23:03:48 1515914232
>>1515889
Речь не об echo, а о вёрстке в коде.
Перемешивать логику и представление, а потом говорить, что не понимаешь ООП это, как бы, несколько неправда.
Аноним 07/11/19 Чтв 23:42:48 1515946233
>>1515816
Тебе никто ничего не должен. Учить тебя никто не нанимался. Если что то не получается - ты ОБЯЗАН, как минимум, нормально сформулировать свой вопрос:
"Ребята, помогите. Нужно сделать это вот. Я не понимаю вот тут, пробовал так и сяк, гуглил такое и сякое."
А когда человек заходит и пару постов ноет что у него что то не выходит, при этом считая что ему все должны быстро кинуться и помочь - это свинство.
Не понимаешь ООП? У ОП-а есть хорошая теория и пару задач практических. Понимаешь теорию, но нужна практика? Загугли бля, есть куча практических примеров, реализаций всего и вся. Или ты хочешь чтобы в треде тебе в 1000 раз что то расписывали? Скинули ссылку на видос по MVC - посмотри же его, а не ной что кто то хуевый не ответил на твой вопрос
Аноним 07/11/19 Чтв 23:51:09 1515947234
>>1515946
>Тебе никто ничего не должен.
Где я написал, что мне кто-то должен? Это вы тут некоторые делаете вид, что чё-т полезное пишите, на деле же из 5 человек только 1 чё-т дельное скажет.

>А когда человек заходит и пару постов ноет
>ноет
Один пост спросил, дальше вы сами говно развезли. И ты кста продолжаешь это делать.

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

Иди короче хуй соси, дебил. Вот о таких анонах-проггерах я ранее и писал. Попробуй ещё раз доебаться до меня, я тебя опущу за каждый пункт как это сейчас сделал.
Аноним 08/11/19 Птн 00:17:10 1515959235
>>1515947
Да мне вообще до пизды. Можешь дальше в глаза долбиться и думать что прав. Я тебе написал как это выглядит со стороны. Опустил он меня, лол. Откуда вы такие лезете отпускатели
Аноним 08/11/19 Птн 00:30:00 1515964236
>>1515959
Если до пизды, почему под себя сренькаешь?
Аноним 08/11/19 Птн 00:35:14 1515965237
>>1515964
Ты же тред засираешь, а не я. Не удивлюсь если ты тот самый шизик-перекатывальщик с JS
Аноним 08/11/19 Птн 00:37:52 1515966238
>>1515965
>засираешь тред

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

))00
Аноним 08/11/19 Птн 00:42:15 1515969239
>>1515966
>>задал простой вопрос
Об чём вопрос-то?

мимо
Аноним 08/11/19 Птн 01:09:42 1515979240
>>1515384
>если у тебя есть user, то это просто объект для хранения данных о пользователя, и всё, кроме геттеров и сеттеров там ничего держать не нужно.
проиграл с этого эксперта по ООП.
Аноним 08/11/19 Птн 09:54:13 1516096241
>>1515979
Ну давай, поясни мне за active record. Заранее знаешь, что я тебе отвечу. Возможно даже Фаулера процитирую, чтобы совсем наверняка.
Аноним 08/11/19 Птн 10:58:32 1516125242
>>1515478
Ну и какие идеи у тебя по этому поводу?
Аноним 08/11/19 Птн 12:07:46 1516156243
>>1516096
Да зачем же сразу актив рекорд? Хотя бы какие-то преобразования на приватными данными делать - уже методы нужны. Тот же жснонабле интерфейс например.
Аноним 08/11/19 Птн 12:29:18 1516168244
>>1516156
Во-первых, ты неправильно понимаешь концепцию приватных полей. На то эти поля и приватные, что они требуются исключительно для работоспособности данного класса и не должны торчать наружу.
Во-вторых, JsonSerializable - это костыль, потому что у объекта может быть много разных представлений в формате json. Самый простой пример - динамический набор полей, какие поля в get-е задал, такие и хочешь получить (есть такая практика в rest api).
Или, к примеру, проверки доступа - такое бывает, что некоторые поля можно возвращать не всегда, например, есть разница, в показе json-представления объекта пользователю (вернув его из апи) или послать этот объект в другой сервис (сервис аналитики, к примеру). Если ты всю эту логику будешь писать в юзере, у тебя получится божественный класс с кучей ответственностей.
Поэтому не путай тёплое с мягким, User - это такой DTO, отвечает за передачу объекта пользователя между компонентами твоей системы, ни для чего более. Для сохранения его в базе тебе нужен будет UserRepository, для представления его в json тебе нужен будет отдельный JsonEncoder или даже UserJsonEncoder (смотри компоненты симфони, которые сериалайзеры, они совсем не зря сделали их именно так или иначе).
Аноним 08/11/19 Птн 12:40:58 1516178245
Аноны, у меня какая то очень странная дичь с моим приложением на slim 3.9.
Вдруг в один момент у меня перестали работать редиректы:
return $response->withRedirect('/', 301);
Не работают и все тут.
Посмотрел раннюю версию - там все работает. Начал сравнивать - вроде все одно и тоже. Начал дикую еблю с обменом файлов, рокировкой каталогов. И выяснил вот что.
Структура index.php таковы, что зависимости находятся в другом файле и подгружаются в index.php.
Типа такое - require_once $_SERVER['DOCUMENT_ROOT'] . "/dependences/dependences.php";
Методом перебора я выяснил что если который в файле зависимости подкинут в файл глючной версии - то все работает. Херня только в том, что код и там и там одинаковый.
Более того, если код из глючного файла поместить прямо в index.php - а сам файл заккоментировать - то все будет работать нормально.
А если создать еще один файл подгрузки зависимости и в него поместить глючный код - то работать редирект не будет. Но если же в этом новом файле удалить глючный код, и записать идентичный код из старой рабочей версии приложения - то работать будет.
Я если честно слегка фрустрирую от этих дел. Мож кто то встречался с таким?
Аноним 08/11/19 Птн 12:42:49 1516179246
>>1516178
>>Методом перебора я выяснил что если который в файле зависимости подкинут в файл глючной версии - то все работает. Херня только в том, что код и там и там одинаковый.

Методом перебора я выяснил что если в файл зависимости подкинуть код из нормальной рабочей версии - то все работает. Херня только в том, что код и там и там одинаковый.

самофикс
179-244 Аноним 08/11/19 Птн 15:00:36 1516291247
>>1515372

> Есть price и weight. Если я хочу с ними работать, например с учётом ндс цену вывести, то в каком виде и где я должен рассчитывать ндс? Без разницы куда вставить расчёт ндс? Внутри product?

Если расчет совсем простой, то можно поместить в отдельный метод в классе. Но если там всякие тонкости, то имеет смысл делать это в отдельном классе-сервисе для расчета налогов.

> 2. функции - являются методами, верно?

Метод это что-то вроде функции, которая работает с данными объекта.

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

Вообще, вывод данных обычно делается в шаблоне. То есть класс Product хранит информацию о товаре и предоставляет ее, а вывод карточки товара делается шаблоном такого вида:

<div class="product-price"><?= ViewHelper::formatPrice($product->getPrice()) ?></div>
<div class="product-weight">Вес: <?= $product->getWeight() ?> гр.</div>

Урок про шаблоны: https://github.com/codedokode/pasta/blob/master/php/templates.md

Соответственно, метод printInfo() тоже имеет смысл убрать. Впрочем, если ты с его помощью что-то дампишь для отладки, то можно оставить, хотя дампить товар через var_dump($product), наверно, было бы удобнее.

> Нужно ли мне ещё один констракт создавать для этого, потому что при создании new Product у меня будут значение кроме ндс и цены, такие как вес, название и пр.?

Ты не можешь сделать два конструктора. Можно, впрочем, сделать статический метод для создания объекта.
Аноним 08/11/19 Птн 15:01:40 1516293248
>>1515384

> обменивается сообщениями

Лично мне не нравится, когда вызов метода называют "сообщением", так как никаким сообщением он не является. Соответственно, зачем называть одно другим - непонятно. В моем понимании сообщения ассоциируются с очередями сообщений, многопоточностью и подобными вещами.

>>1515979
>>1515863

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

>>1515820

Людям, которые тут устраивают флейм, и правда, стоит задуматься, что заставляет их это делать.

>>1515834

Не вперлось - так пройдите мимо, зачем флейм устраивать? Вопросы заданы вполне нормальные и на них можно спокойно ответить. Все ли в порядке с человеком, который в ответ на нормально заданный вопрос агрессивно реагирует?
Аноним 08/11/19 Птн 15:02:28 1516294249
>>1515719

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

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

Твой код сделан неправильно, так как в нем нету return, и поле NDS не требуется.

Вместо "констракт" правильно писать "конструктор".

>>1515215

Нет. Но слишком большая вложенность (более 3-4-5 отступов) это плохо.

>>1515134

> Разобраться с тем, как создать объект на основании информации их $_POST['prof'].

Просто:

if ($prof == 'x') {
$object = new ClassX(...);
} elseif ($prof == 'y') {
$object = new ClassY(...);
} else {
// ошибка
}

Идея описывать профессии в виде классов может быть немного неудобной, так как тебе скорее всего надо как-то еще описывать подписи к полям (вроде "зарплата") и тип полей (например, год рождения - число от 1901 до 2010, пол - это выбор из 2 вариантов итд). Для этого придется либо добавлять аннотации к полям ( https://elisdn.ru/blog/80/some-reasons-to-learn-phpdoc ), либо делать в классе метод для получения такой информации.

Описывать форму может быть удобно, представив каждое поле в ней объектом определенного класса:

$manager = new Profession();
$manager->addField(new IntField('Опыт работы, лет', 0, 50));
$manager->addField(new StringField('Личные качества'));
...

При желании можно сделать класс Manager extends Profession, в котором в конструкторе добавляются нужные поля.

Возможно, также имеет смысл вместо изобретения велосипеда использовать что-то готовое вроде Symfony Forms.

> Но мне она особо не помогает, так как я концепцию как таковую не оч понимаю.

Концепция в том, что состав полей формы описан списком полей в классе.

Также, мне кажется, что аякс тут вообще не требуется. Можно просто заранее получить список полей во всех профессиях, встроить его в страницу в виде JSON объекта и обращаться к нему вместо отправки запросов:

var fields = {
manager: ['age', 'experince', 'salary', ...],
engineer: [....],
...
};

Более того, можно на стороне сервера в шаблоне сгенерировать формы для всех профессий и переключать их (скрывать/показывать) при смене типа профессии:

<select name="profession">...</select>
<div class="form-for-manager state-hidden"> форма для менеджера </div>
<div class="form-for-engineer state-hidden"> форма для инженера </div>

Это будет проще всего, хотя наверно и не соответствует формулировке задания.

Еще одна идея - помечать блоки в HTML-разметке специальными атрибутами и на их основании скрывать/показывать блоки при смене профессии:

<div data-professions="manager, engineer">
<label>Опыт работы: <input ...></label>
</div>
Аноним 08/11/19 Птн 15:25:57 1516308250
>>1516293
> Лично мне не нравится, когда вызов метода называют "сообщением", так как никаким сообщением он не является. Соответственно, зачем называть одно другим - непонятно. В моем понимании сообщения ассоциируются с очередями сообщений, многопоточностью и подобными вещами.
Про обмен сообщениями - это в первую очередь был референс в сторону классического определения ООП, каким оно задумывалось изначально, пока не превратилось в карго-культ трёх главных слов.
Ну и да, обмен сообщениями - это всё ещё хорошая абстракция, потому что она превращает какие-то классы и функции в логическую структуру программы, где есть сервисы и они вызывают друг-друга. Сообщением тут является метод + аргументы. По моему опыту, когда человек усваивает эту аналогию, его код тут же становится чище, ему становится легче разделять ответственности и не лепить всё в одно место.
Аноним 08/11/19 Птн 15:30:37 1516311251
Аноним 08/11/19 Птн 15:47:38 1516316252
image.png (13Кб, 507x183)
507x183
Кто-нибудь разбирается в сокетах?

Взял сокетный чат https://kode-blog.io/websocket-server-php
Установил его на хостинг - всё ок, отлично работает. С хрома. А файерфокс не хочет коннектиться к серверу, говорит, несекьюрно.
>The app itself is under SSL but the websocket being accessed is not. Chrome and Opera don't care but Firefox does.
According to: https://bugzilla.mozilla.org/show_bug.cgi?id=303952
This is known and is not considered a bug. Mozilla's response: wontfix

Ок, нашёл решение (использовать на сервере прокси, первый ответ тут: https://stackoverflow.com/questions/16979793/php-ratchet-websocket-ssl-connect )

Установил оба модуля в апач модули:
sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http


Добавил в apache2.conf строки:
ProxyPass /wss2 ws://xxxxxxxxxxx.xxx:999
ProxyPassReverse /wss2 ws://xxxxxxxxxxx.xxx:999


А в js-скрипт вызова сервера:
websocket = new WebSocket('wss://xxxxxxxxxxx.xxx/wss2/');

999 порт специально открыт.

И снова хром работает, а файерфокс нет. Пикрелейтед. Маму его ебал, что этой собаке не нравится? Уже два дня ебусь.

Сервер:
Ubuntu-18.04-amd64
Apache/2.4.29
PHP 7.2.24
Аноним 08/11/19 Птн 18:33:52 1516424253
>>1516168
Нафига ты тогда песню про геттеры-сеттеры завёл,если у тебя все поля публичные?
Алсо, актив рекорд вполне рабочий паттерн, что бы не говорили такие пафосные снобы вроде тебя.
Аноним 08/11/19 Птн 18:36:22 1516431254
>>1516293
>Такие посты тут не нужны.
Тебя вот забыли спросить, что тут нужно. Это не твой личный тред.
Аноним 08/11/19 Птн 18:53:16 1516441255
map.jpg (614Кб, 770x2160)
770x2160
Что думаете о пике?
Аноним 08/11/19 Птн 19:04:23 1516450256
>>1516431
Ващет это он создаёт эти треды и во многом благодаря ему они все ещё держаться. Если это ОП конечно.
Аноним 08/11/19 Птн 19:12:01 1516452257
>>1515841
Это нормально, что я понимаю, что делает человек с видео, но вернувшись к коду через час забываю, как это работает и зачем это вообще нужно?
Аноним 08/11/19 Птн 19:17:54 1516459258
>>1516450
>благодаря ему они все ещё держаться
Другие треды без всяких ОПов держатся. Если ОП что-то делает, то это никак не даёт ему право указывать остальным как себя вести - это уже свинство. Да и не касается его это никак и не должно касаться.
Алсо, не надо из двача доброчан лепить - гарантированно будешь послан.
Аноним 08/11/19 Птн 19:19:52 1516462259
>>1516424
Актив рекорд рабочий в простых случаях, когда нужно на коленке mvp сварганить. А в сложных системах смешение отвественностей ни к чему хорошему не приводит. И с этим спорить тоже бесполезно, все тонкости сравнения active record vs data mapper уже по сто раз обсосаны и куча статей на эту тему написана.
Не понимаю, как вас самих не корёжит видеть в одном классе методы из разных предметных областей
А геттеры-сеттеры нужны в сложных случаях, когда у тебя внутри объекта что-то нетривиальное хранится. Например, объект времени, там могут лежать таймстамп, таймзона и микросекунда, всё такое. В простых случаях для DTO сойдут и публичные свойства.
Аноним 08/11/19 Птн 19:55:10 1516479260
>>1516452
Да. У всех так (кроме совсем умников, которых очень мало). Понять мало, нужно еще что то сделать самому по мотивам, что бы закрепить. Желательно в этот же день. И желательно, поменьше заглядывать в исходное видео.
Такие вещи объясняет "Learning How to Learn" by Barbara Oakley.
Аноним 08/11/19 Птн 20:21:46 1516494261
Скиньте какую-то простую реализацию Active Record. В гугле ничего внятного не нашёл - какой-то говнокод из 13 года разве только. Компоненты фреймворков мне ещё рано ковырять - жидко обосрусь в процессе.
Суть в том, что в общих чертах я понимаю, что в родительскую абстрактную модель пихается круд, с привязкой к свойствам дочернего класса, но как-то с реализацией не получается совсем.
Аноним 08/11/19 Птн 20:23:10 1516499262
>>1516494
Можно свою, у кого есть если.
Аноним 08/11/19 Птн 22:36:06 1516586263
>>1516494
Разбей все на небольшие задачи. Начни с простого. Сделай класс с двумя полями - одно строковое для имени таблицы, второе для словаря ['Имя поля' => 'значение']. И одним методом save() по вызову которого значения из словаря будут записываться в таблицу. Потом добавь возможность загружать в этот класс данные из таблицы - сначала просто по айди (если сможешь то можно и сразу по более сложным запросам). Проще всего наверное будет сделать через фабричный метод, хотя обычно наворачивают какие-то конструкторы запросов. Теперь надо добавить возможность отличать новые классы от загруженых из базы (для новых класов при сохранении вызывается инсерт, для старых апдейт). После этого обмазываешся магией __get/__set и скрываешь реализацию (словарь с значениями полей). В общем у тебя есть примитивный AR класс. Дальше уже добавляешь что нужно. Возможно стоит подумать в сторону синглтона - чтобы когда ты создаешь несколько объектов которые соответсвуют одной и той же записи в таблице то чтобы при изменении одного объекта сразу апдейтился второй (без записи в таблицу и обязательно при записи). Это не обязательно синглтоном наворачивать - как минимум есть вариант с наблюдением/ивентами. Также очень полезно будет помечать поля которые были изменены (и сохранять старые значения) - но это уже когда будешь добавлять события жизненного цикла, типа beforeSave, afterSave и т.д.
Аноним 08/11/19 Птн 22:53:15 1516596264
CodeIgniter это пиздец и суицид карьерный? Он-то конечно "mvc", но код вместо того чтобы быть похожим на жабу как Симфони становится все какой-то лапшой уровня самописных фреймворков из туториалов с медиума, еще и ООП какое-то убогое
Аноним 08/11/19 Птн 23:54:33 1516644265
>>1516586
Завтра заморочаюсь тогда.
Аноним 08/11/19 Птн 23:57:07 1516647266
>>1516586
>Теперь надо добавить возможность отличать новые классы от загруженых из базы
Это, как ни странно, я уже продумал - по наличию айдишника. Если он пустой - вставляем, если там что-то есть, то апдейт.
Аноним 09/11/19 Суб 10:49:58 1516786267
>>1516596
Это пиздец, очевидно же. Кроме symfony, laravel и микрофреймворков (если ты шаришь) в мире php лучше ничего не трогать.
Аноним 09/11/19 Суб 13:39:59 1516838268
у пхп есть билиотеки для упрощения работы с сокетами.
пилить велосипед штатными средствами неохота
Аноним 09/11/19 Суб 13:46:33 1516845269
>>1516838
Ты забыл знак вопроса.
И да, погугли выше и предыдущий тред, эта тема обсуждается здесь раз в неделю точно. Вкратце: php не особенно для этого предназначен, лучше даже не пробуй и используй какие-нибудь прокси для этого.
Аноним 09/11/19 Суб 13:48:07 1516846270
>>1516845
а где то я видел пост,там один сказал против,а другой,да не ссы,там все НАТИВНО))
Аноним 09/11/19 Суб 13:48:46 1516847271
>>1516846
короче,тогда придеться либо ноду юзать,либо aiohttp
Аноним 09/11/19 Суб 14:02:27 1516851272
Аноним 09/11/19 Суб 14:05:19 1516853273
>>1516838
У меня на проде работает Centrifugo. Отличное и простое решение без всяких пхпшных демонов. Есть хорошая и поддерживаемая либа https://github.com/centrifugal/phpcent для работы с ним.
Аноним 09/11/19 Суб 14:17:54 1516857274
>>1516853
Поддвачну этого просветлённого
Аноним 09/11/19 Суб 14:58:36 1516882275
>>1516851
Там не столько в сложности дело, сколько в навороченности - мне суть нужна, а не фичи.
Аноним 09/11/19 Суб 15:09:24 1516889276
>>1516882
Ну ты же понимаешь, что "суть" - это класс с набором полей и методами save() и load() - и пишется за 5 минут?
Аноним 09/11/19 Суб 15:55:04 1516926277
>>1516882
Суть можно посмотреть в документации фреймворков.
В Yii довольно лакончиные исходники, поэтому там разобраться весьма легко.
Аноним 09/11/19 Суб 16:37:31 1516976278
>>1516926
Главное всерьёз нигде такое не использовать. yii это кал
Аноним 09/11/19 Суб 16:50:20 1516982279
>>1516976
Так да, но обычно за тебя выбирает рынок, на Симфони нужны одни мидлы да сеньоры в крупные компании, а вкатывальщик еще повезет если yii будет ковырять, с высокой вероятностью онлайн магазин запчастей на битриксе будет творить
Аноним 09/11/19 Суб 17:20:02 1516995280
>>1516976
Почему кал? Полгода где-то сижу джуном в конторе, которая свой продукт пилит. Фичи пилить достаточно просто, документация неплохая, в целом работать с ним приятно. Откуда такой хейт?
Аноним 09/11/19 Суб 17:25:28 1517004281
>>1516441
>>Что думаете о пике?

2030 год, 80% инета все так же на пхп.

мимо Марти Макфлай
Аноним 09/11/19 Суб 17:31:14 1517011282
>>1516786
slim подходит под твое условие?
Мне нравится на нем писать и ебаться с библиотеками.
Ща делаю небольшой заказ на нем.
Аноним 09/11/19 Суб 17:32:55 1517013283
>>1516846
>>да не ссы,там все НАТИВНО))
Речь шла про принципиальную поддержку. А так для реального приложения на сокетах node повеселее будет
Аноним 09/11/19 Суб 18:18:51 1517056284
>>1516982
На Laravel скорее всего набирают джунов. Он похуже симфони, но зато дико популярен и уж точно лучше yii. Ну и даже на симфони полюбому можно найти что-то, если захотеть.

>>1516995
Потому что действительно очень плохая архитектура. Плохая в смысле некачественная, порождающая хрупкие решения с высокой связностью. Плюс, многие решения уже устарели.
Не спорю, писать на ней можно, но вообще говоря, писать возможно на всём, что угодно.
Прочитай статьи на том же хабре на тему сравнения yii с другими фреймворками и всего такого.
Ну и да, беги оттуда. Yii к счастью по-тихому умирает и всё меньше продуктов делается на ней. У нас в СНГ оно почему-то ещё популярно, а вот за рубежом (а значит, и за бОльшие деньги) ты его уже не найдёшь.

>>1517011
В целом норм, но если ты джун, лучше поищи себе контору, где сможешь научиться правильным вещам у сильных ребят, это сильно ускорит твоё развитие.
Аноним 09/11/19 Суб 18:25:28 1517058285
>>1517056
>>В целом норм
Ок, спасибо.
Аноним 09/11/19 Суб 21:37:18 1517241286
Сейчас пробую разобраться с паттерном MVC.
Сделал простую гостевую книгу (Ввод имени, отзыва, сохранение и вывод данных из файла).
https://github.com/RamPG/guestbookOOP/tree/master
В плане работоспособности кода не смог разобраться с ошибкой: когда файл пуст, он выбивает Undefined offset, пробовал empty и isset, но безуспешно.
В плане архитектуры вижу только одну корявость - это класс View, я просто разорвал класс и запихал туда HTML документ. Как можно сделать лучше? Создать отдельный файл page . php и вызывать его через include?
Не обращайте внимания, что все в одном файле, с этим чуть позже разберусь.
09/11/19 Суб 22:09:48 1517262287
>>1517056
>Yii к счастью по-тихому умирает и всё меньше продуктов делается на ней
настолько умирает что скоро yii3 скоро должна полноценно выйти (:
Аноним 10/11/19 Вск 00:45:27 1517387288
>>1517262
Я видел ченджлоги, они не впечатляют. Вместо нормальной архитектуры и компонентов symfony они обновили мажорную версию и перелезли на PSR-овские интерфейсы. Ну так себе. Выглядит словно, что чуваки просто насилуют труп. Очень надеюсь, что его как можно быстрее закопают и оно перестанет отравлять людям жизнь.

Ну и да, для меня вообще неочевидно, что именно из yii нужно спасать? Коряво реализованную систему внедрения зависимостей, наполовину состоящую из статических вызовов? Консольную тулзовину на скриптиках? Магически унылый active record с костыльной событийностью? Уёбищную систему плагинов? Напрочь стандартную MVC архитектуру хотя нет, с хуёвым роутингом? Дешёвую кодо-генерацию, которая генерирует ненужные вещи, которые пишутся за 5 минут? Гайды и рецепты на уровне 2010?
Yii и ему подобное говно умерло в тот момент, когда люди узнали о компонентах симфони, стоит это признать. Сейчас если ты хочешь написать mvc, ты берёшь любой роутер, пишешь код контроллеров, модель и сцепляешь это всё через любой контейнер, с любой ORM. В итоге, ты получаешь то же самое, но более качественное и не обременённое внешними зависимостями, делающее только то, что нужно. Под любую задачу есть симфони-компонент или библиотека, просто делаешь composer require и пишешь нужный тебе код. Yii остался где-то в прошлом, когда каждый писал свой умеющий всё комбайн. Ну и имхо, для тех, кто до сих пор не научился разрабатывать системы сложнее, чем mvp и просто копипастит код из примеров и stack overflow. Джуниоров и вечных джуниоров, одним словом.
Аноним 10/11/19 Вск 10:26:10 1517549289
>>1517241
Твои view файлы для каждой страницы должны храниться в разных файлах. Отдельно должен лежать layout, в котором они будут рендериться. Сделал примеры как это можно организовать максимально просто.
https://www.codepile.net/pile/X5JXblNd
https://www.codepile.net/pile/wW8mEXLN
Аноним 10/11/19 Вск 10:35:30 1517554290
f
Аноним 10/11/19 Вск 19:34:13 1518023291
>>1517241
View, грубо говоря, это твоя html страничка которую ты пихаешь в content-body твоего сервер-ответа.
Аноним 10/11/19 Вск 19:38:27 1518026292
>>1518023
Анон выше кинул примерно как они рендерятся. Я когда список студентов делал - просто нужный для контроллера html файл подключал. Но я сам еще не особо в этом разбираюсь.
Аноним 10/11/19 Вск 20:35:57 1518079293
>>1518023
>>1517549
Спасибо за ответы, попытаюсь разобраться.
10/11/19 Вск 21:05:29 1518107294
1573409102641.webm (2155Кб, 1280x720, 00:00:08)
1280x720
>>1517387
>yii exists
>анон с дващей
Аноним 10/11/19 Вск 22:30:32 1518142295
Надумал вкатиться в веб. Начал с изучения HTML, потом думаю разобраться с CSS и начать наконец учить какой-нибудь язык программирования, возможно PHP или Python, пушто хотелось бы идти в направление к back-end'у. Можете что-нибудь посоветовать? А в идеале мне бы товарища, который хочет идти в этом направлении со мной. Вместе будет проще же.
Аноним 10/11/19 Вск 22:52:50 1518161296
>>1518142
>Вместе будет проще же.
Не-бу-дет.
Аноним 10/11/19 Вск 22:55:00 1518168297
>>1518161
Поцчему? Аргументируй. И как в таком случае облегчить обучение и не сдуться?
Аноним 10/11/19 Вск 22:58:10 1518177298
У этого треда есть чатик в телеграме?
Аноним 10/11/19 Вск 22:59:48 1518181299
>>1518168
>Поцчему?
Чем тебе такой же вкатывальщик поможет? Всё скатится к обоюдным смехуёчкам и мемесам в телеграмме.
Осваивать всё равно каждому по одиночке придётся.
Аноним 10/11/19 Вск 23:04:14 1518186300
>>1518181
Ну в идеале они могут друг с другом новой инфой делиться. Закрепляя эту инфу для себя, и подталкивая товарища к чему то новому. Но это, конечно же, в идеале.
Аноним 10/11/19 Вск 23:06:25 1518191301
>>1518181
Справедливо, но на второй вопрос ответа не поступило.
>>1518186
На это и рассчитывал.
Аноним 10/11/19 Вск 23:07:30 1518193302
>>1518191
>на второй вопрос
>как в таком случае облегчить обучение и не сдуться?
Никак. Оставайтесь в жопе.
Аноним 10/11/19 Вск 23:09:24 1518196303
>>1518193
И тебе не хворать.
Другого от двачей ожидать было наивно.
Аноним 10/11/19 Вск 23:11:11 1518199304
>>1518191
>Справедливо, но на второй вопрос ответа не поступило
Бля, бро. Все зависит от того в какой ты ситуации находишься и кто по жизни. У тебя же своя голова на плечах есть? Есть. Вот она тебе и нужна чтобы самому себе на такие вопросы отвечать "а как мне будет лучше". Мы то откуда знаем
Аноним 10/11/19 Вск 23:12:48 1518201305
>>1518186
>они могут друг с другом новой инфой делиться
То же самое можно делать и на тематических форумах, типа как в этом треде аноны отвечают.

>подталкивая товарища
Это психологическая уловка - дескать вдвоём уж мы-то не сдуемся никак. На самом деле вам обоим будет одинаково влом этим занимать.
Просто очередная попытка переложить ответственность на плечи товарища.
Аноним 10/11/19 Вск 23:13:14 1518202306
Аноним 10/11/19 Вск 23:16:56 1518209307
>>1518199
По жизни я е6аный лентяй и хикка со стажем. Дважды пытался вкатываться в программирование, но не вышло. Сейчас я изменил пару переменных, но нет никаких гарантий, что снова не обосрусь. Поэтому я и надеюсь на какую-то поддержку, потому что сам не могу справиться.
Аноним 10/11/19 Вск 23:17:27 1518210308
>>1518201
У меня друг в вузике на it инженера учится, у них с этим все ок. Есть компания ребят которая делает что по кайфу. Разные технологии щупают, пытаются что то делать. Конечно это все на уровне "и там и сям", но им вроде как интересно. Так что если люди реально хотят - то почему бы и нет, это будет точно в плюс.
Аноним 10/11/19 Вск 23:18:23 1518212309
>>1518209
У меня самого только с третьего раза что-то получаться стало.
Аноним 10/11/19 Вск 23:19:45 1518213310
>>1518210
Над ними в вузике стоят и теребят, а над вами никого не будет. Ну и они во вкус уже вошли, а тебе ещё только предстоит это всё.
Аноним 10/11/19 Вск 23:24:11 1518220311
>>1518202
До сих пор факт нахождения в жопе не помогал.
Аноним 10/11/19 Вск 23:25:44 1518221312
>>1518209
За какое время планируешь вкатиться, что с работой в твоем регионе. Мыслить нужно отсюда начинать. В ОП-посте есть нормальный гайд по вкату, когда сделаешь файло-обменник спокойно можешь искать галеру . Я, учась в вузе почти на 3 курсе, начал с него. Мне понравилось как он написан, ведь в вузе у меня учат полнейшией хуйне (аля ООП с первой ссылки в гугле на листочке). Вот, спустя 3 месяца в своей залупе нашел работу, осталось мелкие детали обсудить. Но я и до вуза уже в минимальное программирование умел. Только от тебя зависит сколько времени уйдет. Но желательно сильно не перенапрягаться ибо можно кукухой поехать.

>>1518213
Нет, они по собственной инициативе этим занимаются. Тот же web им не говорят пилить. Но для себя, пощупать, они не против. Да и технологии разные обсуждают часто - вариться в тусовочке очень даже полезно. Если там не отбитые аутисты сидят, конечно
Аноним 10/11/19 Вск 23:31:18 1518222313
>>1518221
>Но для себя, пощупать, они не против.
Так это нормально - я вот тоже щупаю всякое из любопытства. Я ж говорю - они в теме и на волне уже, тут главное не забрасывать и продолжать. Тебе до этого пилить и пилить ещё.

>вариться в тусовочке очень даже полезно
Я как-то ходил в конфочу местных и нихуя хорошего там не увидел. 95% пиздежа по левой теме и только 5% по делу.
Если в правилах конфы нет чётких требований общения, то всё скатится к мемам и смехуёчкам. По опыту уже знаю.
А все те, где указаны эти требования ничем не лучше этого треда\любого тематического форума.
Аноним 10/11/19 Вск 23:31:32 1518223314
>>1518221
>В ОП-посте есть нормальный гайд по вкату, когда сделаешь файло-обменник спокойно можешь искать галеру
нипонел. Но спасибо.
>Но желательно сильно не перенапрягаться ибо можно кукухой поехать
Да, у меня с распределением ресурсов не очень ^^"
Аноним 11/11/19 Пнд 04:24:26 1518376315
>>1518142
tg - @still_make_it_work
Тоже вкатываюсь, так что вот.
Аноним 11/11/19 Пнд 09:21:17 1518430316
>>1518209
Мертворожденная идея потому что для эой цели
>>поэтому я и надеюсь на какую-то поддержку, потому что сам не могу справиться.

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

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

Увы, тебе придется в первую очередь самому привозмочь свои психологические проблемы
Аноним 11/11/19 Пнд 12:08:13 1518490317
Антоши, а посоветуйте годный тест на знание пхп, хочется проверить свои знания.
Аноним 11/11/19 Пнд 13:08:25 1518505318
Аноны помогите! Нужен шаблон маленького интернет-магазина с динамическим каталогом товаров и чтоб можно было прикрутить саму продажу и прием оплаты а можно и без этого. С меня куча нефти за помощь. Нужно в учебных целях.
Аноним 11/11/19 Пнд 13:54:27 1518528319
>>1518209
>По жизни я е6аный лентяй и хикка со стажем
У тебя просто нет мотивации и тебе норм. Я так последние полгода тоже ебловал типа некуда спешить, иногда настроение было такое что не вставал целый день с кровати, месяц назад последние бабки кончились что уже жрать не мог купить ну и за неделю вкатился на работку, мозг все загоны и внутренние проблемы просто офнул и начал действоватб.

>>1518490
$i = 5;
++$i + ++$i = ?

>>1518505
Из готовых решений есть вордпресс и опенкарт, но это говно говна. В учебных целях почему бы не попробовать написать свой магазин? Можно смоделировать систему на ооп без веба вообще. Потом эту модель доктриной замапить и сразу прокачаться в нескольких направлениях.

Аноним 11/11/19 Пнд 14:04:19 1518540320
>>1518528
>вордпресс
>говно говна
Как-то пробовал его. Темки васянские хорошо накатывать и удобно, но вот разработка на нём - пробитое днище. Архитектура отсутствует и вместо неё одни костыли. Весь вордпресс это один большой костыль над простецкой системой для блога. Уже тогда стало понятно, что такие вещи изучать не стоит - костыли индивидуальны для каждого проекта и в другом они не пригодятся.
А ведь там ещё и плагины накатывают, которые друг от друга зависят. Ояебу какой кошмар.
Как эта адская хуетень ещё не подохла я удивляюсь.
Аноним 11/11/19 Пнд 14:31:30 1518567321
>>1518540
> Как эта адская хуетень ещё не подохла я удивляюсь.
Есть целый класс говнокодеров, которые только на нём и работают. Своя экосистем получается. Одни хотят заплатить поменьше и получить побольше, а другие хотят говнокодить за гроши и не париться.
Аноним 11/11/19 Пнд 15:36:08 1518608322
>>1518567
Это еще и во всем мире, в Пиндосии и Германии каких-нибудь на пхп девелоперов и энтвиклеров как раз часто требуют вордпресс/друпал, прямо как у нас любят написать в требованиях жс жквери вьюжс вордпресс джумла модх пхп ларавел йии симфони опыт 5-10 лет 35к
Аноним 11/11/19 Пнд 15:39:34 1518612323
>>1518608
>друпал
Этот вроде на симфони сделан.
Аноним 11/11/19 Пнд 15:42:48 1518613324
>>1518608
Эй, ты забыл !C-Bitrix. Не быть тебе эйчаром.
Аноним 11/11/19 Пнд 15:48:23 1518614325
Аноним 11/11/19 Пнд 15:53:35 1518617326
>>1518614
>Bitrix Framework
Вот это своими глазами как-то видел.
Аноним 11/11/19 Пнд 15:55:03 1518621327
>>1518617
Да я видел УВЕРЕННОЕ ЗНАНИЕ JSON
Аноним 11/11/19 Пнд 15:59:13 1518625328
>>1518621
Пфф, уверенное знание SOAP.
Аноним 11/11/19 Пнд 16:06:34 1518631329
>>1518608
Друпал тащемта сделан хотя бы наиболее качественно, да и на симфони компоненты переехал. Хотя вся ирония в том, что именно его хорошее качество и прочая архитектура ему и мешает, cms-говношлёпы ссутся использовать что-то сложнее скриптиков в стиле php4, а хорошие разработчики в любом случае не хотят на cms что-то делать.
Аноним 11/11/19 Пнд 16:17:37 1518636330
>>1518631
А на пыхе бывают полноценные пхп 7 проекты, шоб со стрикт тайпс и функциональщиной?
Аноним 11/11/19 Пнд 16:25:54 1518645331
Сап дващь. Делал кто-то на прод счетчик просмотров страницы? Я вот думаю как реализовать лучше и пока что есть несколько вариантов но не знаю какой лучше.
Для защиты от накрутки думал идентифицировать запрос по фингерпринту и не давать чаще чем в 5 минут например обновлять счетчик.
Сам счетчик можно много как реализовать, начиная от колонки в таблице view_counter и заканчивая отдельной таблой PageViews со всей инфой и считать из неё. Была еще упоротая мысль кроном каждые 30 мин из гугл аналитики выгружать просмотры по страницам и обновлять в бд данные.
Аноним 11/11/19 Пнд 16:35:34 1518651332
>>1518636
>полноценные пхп 7 проекты
Что ты имеешь ввиду?
Аноним 11/11/19 Пнд 16:58:30 1518674333
>>1518631
>хорошие разработчики в любом случае не хотят на cms что-то делать
Так с нынешними либами за пару часов можно самому небольшую cms за вечер накидать. И при этом нет никаких ограничений от производителя - руки развязаны.
Аноним 11/11/19 Пнд 17:14:02 1518693334
>>1518651
Да, не раз видел и участвовал.

>>1518674
В этом и смысл cms'ок, что ты поставил, накликал что-то и оно работает - и не надо платить разработчикам, архитекторам и так далее. Для малого и среднего безнеса - то, что нужно.
Аноним 11/11/19 Пнд 17:20:19 1518701335
>>1518645
А для какой цели?
Можешь логи нгинкса парсить демоном на фоне.
Можешь свой счетчик в sql поставить, но если приложение окажется нагруженным, то ето узким местом может оказаться из-за локов при записи.
Можно в очередь кидать записи и оттуда уже разгребать демоном.
Аноним 11/11/19 Пнд 17:59:06 1518733336
Как в пыхе дергать данные с радиобаттонов, то есть какой именно нажат? На каждом радио есть атрибут с уникальным value, это как я понял будет получать пыха.
Аноним 11/11/19 Пнд 18:13:40 1518745337
>>1518733
Сам браузер решает какой именно нажат (группировка по атрибуту name) и в запросе устанавливает соответстdующие name=value
Аноним 11/11/19 Пнд 18:17:39 1518747338
>>1518745
Как? name же одинаковые у группы, а потом в name присвоится value нажатой? Это бред.
Аноним 11/11/19 Пнд 18:17:47 1518748339
>>1518693
>накликал что-то
>и не надо платить разработчикам, архитекторам и так далее
Как накликал - так и работает. А потом ходят и жалуются, что у них скорость сайта никакая, сео чёто тоже не ахти, плагины есть, но всё не то, что нужно конкретно им.
Тысячи их.

>Для малого и среднего безнеса
Максимум для лендосов салона "Валентина". Что-то серьёзное и со структурой ты на cms не поднимешь, а порой в этом вся соль.
Аноним 11/11/19 Пнд 18:22:22 1518752340
>>1518747
Несколько радиобаттонов с одинаковым именем образуют группу
<input type="radio" name="a" value="1">
<input type="radio" name="a" value="1">
<input type="radio" name="a" value="1">

Когда пользователь кликает по какому-то из радиобаттонов с одинаковым name, браузер следит за тем, чтобы выделение с остальных снялось. Когда пользователь отправляет форму, в форме по ключу name будет стоять значение кликнутого радиобаттона.
Аноним 11/11/19 Пнд 18:23:40 1518755341
>>1518752
Понял, спасибо, только value 1 2 3
Аноним 11/11/19 Пнд 18:27:12 1518758342
>>1518748
Да нифига, какой-нибудь простенький сайт с контентом, интернет-магазин, формочку там для обратной связи, туда-сюда.. Там нагрузок не было и не будет, удобство может быть и не очень удобным и всё такое. Какой-нибудь, к примеру, сайт для заказа цветочных букетов. Маленькая витрина с фотками и наборными компонентами, форма заказа и админка для выкладывания контента и управления заказами/статусами заказов.
Аноним 11/11/19 Пнд 18:27:37 1518760343
>>1518747
>>1518752
value в примере не поменял
Ну то есть ты в php просто получаешь $_GET['a'] и тебе выводится тот, который чекнул пользовватель.
Аноним 11/11/19 Пнд 18:30:24 1518763344
>>1518760
А у меня форма с методом POST
$_POST['a']
Аноним 11/11/19 Пнд 19:43:00 1518820345
>>1517387
Пиздец манямир, из разряда пэхэпэ мертвый язык, скоро всех програмистов заменят нейросети !!!!!!!!!!!!!!1
Аноним 11/11/19 Пнд 19:53:53 1518832346
Подскажите что за хуйня: Есть переменная $conn в файле connection.php в ней хранится подключение к бд. Есть два стула файла: index.php - в нем вся мишура, и main.php - там у меня функции. Так вот, эта переменная видится в index.php, но не видится в main.php. Чому так? Причем оба подключаю методом include, и все они находятся в одной папке.
Аноним 11/11/19 Пнд 20:11:05 1518858347
Сап аноны, у меня вопрос. Знач на винде пользовался homestead, но шинда изрядно надоела, да и для моего некропк запускать виртуалку на вин 10, это гиблое дело. Поэтому вопрос, есть ли какие то альтернативы для линукс?Не очень бы хотелось поднимать виртуалку, может есть какие то альтернативы?
Аноним 11/11/19 Пнд 20:20:52 1518872348
>>1518832
Нада код смотреть - так ничего не понятно.
Аноним 11/11/19 Пнд 20:25:19 1518878349
>>1518858
>Laravel Homestead
>Included Software Ubuntu 18.04

Ты просто хомячок. Какая тебе альтернатива. Свой хуюмстед ты же не осилишь запускать из чрута
Аноним 11/11/19 Пнд 21:37:16 1518947350
>>1518872
Да я уже разобрался, пхп не видит инклюд в функции пиздос как удобно
Аноним 11/11/19 Пнд 21:46:07 1518951351
>>1518947
>пхп не видит инклюд в функции
О - область видимости. Надо знать.
hex 12/11/19 Втр 02:37:17 1519073352
Screenshot 2019[...].png (15Кб, 505x63)
505x63
Screenshot 2019[...].png (14Кб, 593x18)
593x18
Screenshot 2019[...].png (48Кб, 671x138)
671x138
Screenshot 2019[...].png (19Кб, 755x60)
755x60
Бля ребят я уже просто заебался, не могу ввести в бд текущую дату! Мне надо именно в datetime(не timestamp) а он тупо нули записывает, как я только не пытался. Проштудировал кучу сайтов\статей. Поменял все, и тег в input , и форматы, и прогонял через функции превращения в стринг и тп. Не знаю что делать, надо тупо ввести эту дату в бд!
hex 12/11/19 Втр 02:41:47 1519075353
>>1519073
Ебать походу сделал..

убрал mysqli_real_escape_string
hex 12/11/19 Втр 02:42:35 1519077354
А до этого id на name поменя(да был косяк) но когда исправил, все равно не работало. Еще mysqli_real_escape_string снял. Тогда сработало. Пиздец
Аноним 12/11/19 Втр 03:11:59 1519086355
>>1519073
>Мне надо именно в datetime(не timestamp)
А что так? Таймштамп потом в датетайм перегнать - как 2 пальца, насколько я помню.
Аноним 12/11/19 Втр 03:17:05 1519088356
>>1519086
Просто такое задание было в инете ,хы
Аноним 12/11/19 Втр 09:02:36 1519139357
>>1519073
Напишу снова: всё что может делать сама СУБД, пусть делает сама БД, например высчитывает timestapm через NOW().
12/11/19 Втр 12:52:54 1519264358
>>1519073
Кстати совет. Юзай сокращённый открывающий тэг только для краткого эко. <?= "Привет"?> В остальных случаях всегда <?php
Стандарты все дела
Аноним 12/11/19 Втр 13:02:45 1519271359
Аноним 12/11/19 Втр 14:23:13 1519305360
>>1511146 (OP)
Ребят, пролистал/pr как я понял вы тут самые добрые (аниме), поэтому обращусь с вопросом к вам - я работаю юристом, но мне это надоело, постоянный негатив от клиентов, все они проблемные, душные и я думаю вкатится в програмириование/кодинг. С перспективами потом перебраться в Москву, начать зарабатывать в идеале 100к примерно.

Какой язык учить, с чего начать?
Аноним 12/11/19 Втр 14:50:15 1519317361
>>1519305
>Какой язык учить, с чего начать?
Смотря к чему у тебя душа лежит. Если пофиг и просто ищешь место поспокойнее и потеплее, то учи JS, на фронтендеров нынче спрос большой.
Аноним 12/11/19 Втр 14:51:08 1519318362
>>1519305
php норм, но готовься, что для нахождения любой нормальной работы нужно въебать кучу времени и сил в обучение. Минимум 2-3 года только для того, чтобы перестроилось мышление и можно было хоть как-то называться разработчиком, а не кодомакакой.
И это не снобизм, просто область реально огромная и нужно, знать, понимать, как устроены и уметь использовать туеву хучу инструментов, протоколов, приёмов и всё такое. Ну и зависит от того, что считать разработчиком, cms-формошлёпы же тоже что-то там делают.
Аноним 12/11/19 Втр 14:51:54 1519319363
>>1519318
> область реально огромная
Не php в смысле, а "разработка по".
Аноним 12/11/19 Втр 14:52:57 1519320364
>>1519305
Хм. Ну для начала стоит отметить, что программирование делится на кучу сфер, от науки, то секьюрити.
Из самых популярных: Web, мобильная разработка( деление на андроид\айос) , десктоп (опять же apple\windows). Игры опять же разные платформы.. консоли.
Для начала выбери направление. В ом же вебе есть разные стаки.. например php/js/html (бэк) + frameworks. Или Js/ Css/ html + frm(фронт). Или Python/js... (бэк)
А когда выберешь. Можно выбрать язык..
Если просто хочешь денег то выбери самое востребованное - web or mobile.. А там тоже есть свои самые полпулярные языки+фреймы
Аноним 12/11/19 Втр 18:02:30 1519442365
>>1519317
>>1519318
>>1519320
Спасибо большое, часть из этого не понятно, в плане того что выбрать, но web звучит как то проще и понятнее.
Аноним 12/11/19 Втр 18:36:42 1519469366
>>1519442
> web звучит как то проще и понятнее.
В целом , так оно и есть. Но щас опять же наплодили кучу технологий.. поэтому учить надо пару языков и сверху пару фреймворков. К примеру, стажор бэкендер должен знать на базовом уровне: Php/Js/Html/ ООП ,MVC, Larqvel/Yii.
Аноним 12/11/19 Втр 20:26:14 1519558367
>>1519318
Я бы врачем стал, но я уже старый и ойти. Работал в больнице, в стационаре каждый второй на лехухе или бнв катает. Им люди сами за профессионализм несут.
И статус - если ты хороший уролог/гинеколог ты в друзьях у топ своего мухосранска будешь находиться всегда.
Конечно нужно не всратым терапевтом калымить, а идти на оперирующие специальности. Но там и ответственность, мама не горюй. И почет, и пиздец уважение. Представь как горд врач, когда с того света вытаскивает кого то?

Пока ты очередному комерсу магазин пилишь.


Аноним 12/11/19 Втр 20:36:24 1519579368
>>1519558
>Пока ты очередному комерсу магазин пилишь.
Двигаем человечество в будущее, пока очередной гордый врач стотысячного алкаша с того света тащит.
А как же.
Аноним 12/11/19 Втр 20:41:32 1519584369
>>1519558
Но вообще тебе с таким подходом нехуй в ИТ делать.
Аноним 12/11/19 Втр 20:46:11 1519589370
>>1519584
Двачую. Заебали рефлексирующие нормисы.
Аноним 12/11/19 Втр 20:55:18 1519597371
>>1519589
Толсто.

Любой хороший специалист имеет уважение. Если ты думаешь освоить профессию, относясь к ней без уважения, то у тебя ничего не выйдет. Это распространённая ошибка васянов, которые потом оседают в Пятёрочках. Они ничего не любят и не стремятся, а ценности их - лексусы, и чтобы заносили побольше.
TAXI-кун !!wFUNz5.GRA 12/11/19 Втр 22:24:10 1519676372
Ура! Я сделал умножение.
Знаю тупо, но просто хотел поделиться, появилась маленькая гордость, что хоть в чем то разобрался.

<?php

for ($x = 1, $b = 1; $x < 10, $b < 10; $x++, $b++) {
$sum = ($x $b);
echo "$x
$b = $sum\n";
}
Аноним 12/11/19 Втр 22:28:59 1519678373
Аноним 12/11/19 Втр 22:33:45 1519679374
>>1519676
>$sum
Почему переменная называется $sum, а на самом деле это продукт умножения?
TAXI-кун !!wFUNz5.GRA 12/11/19 Втр 22:36:45 1519681375
>>1519679
Тут ты прав. Прост увидел из прошлых примеров и не стал заморачииваться как на инглише это записать.
Аноним 12/11/19 Втр 22:37:47 1519683376
>>1518947
> пхп не видит инклюд в функции пиздос как удобно
Используй require и require_once и будет тебе счастье.
Аноним 12/11/19 Втр 23:08:40 1519695377
Ребят, а кто-нибудь знает как сделать запрос с помошью js и php в бд, с помошью ajax?
Т.е вот кнопкочка с статьекй, жмешь - а статья удаляется из бд без перезагрузки стр.
Можно ссылочку или что гуглить надо?
Буду очень благодарен
Аноним 12/11/19 Втр 23:16:01 1519699378
>>1519695
Отправляешь запрос на сервер с помощью ajax -> сервер удаляет нужную статью -> данные на странице обновляются. Или что тебя интересует?
Аноним 12/11/19 Втр 23:33:34 1519711379
>>1519699
Да но как это делать, реализация этого интересует, как писать такие запросы. Задействован ли php? Или мой код может напрямую менять инфу в моей базе данных на сервере? Тогда разве это безопасно? Так каждый сможет отправить запросы ,не?
Аноним 12/11/19 Втр 23:37:10 1519717380
>>1519695
Если остановится на rest то ты мог бы
1. Сделать get запрос с номером статьи и получить обновленный список статей в теле ответа и c помощью js обновить html (так делают только самые нубы)
2 Сделать тоже самое delete запросом (rfc ничего не сказано о теле ответа на delete запрос. Но это считается отклонением от стандартного поведения)
3 Сделать такой же delete запрос но получить пустой ответ. Сделать нововый get ajax запрос для того чтобы получить
обновленный список статей
4 После delete запроса с пустым ответом просто js ом удалить статью из html
Аноним 12/11/19 Втр 23:39:20 1519719381
>>1519711
Я не совсем опытный, но что тут не безопасного? Отправляется post/delete запрос на сервер, на сервере с помощью php этот запрос обрабатывается и выполняется нужное действие. Подозреваю что для удаления статьи нужно обладать какими то правами, вот это и проверяется с помощью сервера. Так же из минимальной защиты пользователя можешь почитать про crsf токен.
Аноним 12/11/19 Втр 23:42:14 1519726382
>>1519719
В браузере у пользователя можно статью с нужным id просто в JS-е убрать, либо как написали выше на запрос серверу вернуть обновленый список статей, но мне этот вариант как то не очень нравится
Аноним 12/11/19 Втр 23:43:40 1519728383
>>1519719
>>1519717

> post/delete запрос на сервер, на сервере с помощью php
Т.е в этом пост запросе указывается например к примеру файл x.php в котором код удаления статьия. А сам post/delete запрос просто его запускает?
а как гуглить такое? Просто у меня домашка на завтра я все сделал кроме такого запроса.
Аноним 12/11/19 Втр 23:48:19 1519738384
>>1519683
Вангую, что он инклюдил в какой-то функции, поэтому переменные у него попадали в локальную видимость и не были видны снаружи этой функции.

>>1519695
>что гуглить надо?
Работу с ajax.
Но я бы не совался без понимания http-протокола, как минимум. Эта кнопочка только для пользователя просто работает - на деле там логики нормально так.

>статья удаляется из бд без перезагрузки стр
В двух словах: js посылает данные с удаляемой статьёй на определённый эндпоинт API сервера, который в контроллере уже работает с базой данных.
Потом этот же js удаляет ноду со статьёй из DOM-дерева документа. Получается без перезагрузки.
Аноним 12/11/19 Втр 23:49:12 1519740385
Аноним 12/11/19 Втр 23:50:06 1519743386
>>1519728
Нет, сначала гуглишь и читаешь про MVC, потом про HTTP запросы.
>а как гуглить такое? Просто у меня домашка на завтра я все сделал кроме такого запроса.
Ну мы же не знаем как ты свое приложение скостылил, какие свойства есть у твоей статьи, какой ключ. Самое банальное делать ссылку по типу ursite.com/threads/{id}/delete
И по id в БД просто удалять
Аноним 12/11/19 Втр 23:53:45 1519754387
Маленький шажок для человечества, но большой шаг начинающей крудомакаки
Аноним 13/11/19 Срд 00:05:49 1519765388
>>1519743
>>1519738
Сайт без MVC
И мне надо без jquery
просто отправить "DELETE FROM `bd1` where id =1" а потом Dom обновить (это я смогу)
Аноним 13/11/19 Срд 01:46:41 1519809389
>>1519699
>Отправляешь запрос на сервер с помощью ajax -> сервер удаляет нужную статью -> данные на странице обновляются
А как сервер поймет, что это не хаккерский скрипт? Прежде чем выполнить
Аноним 13/11/19 Срд 01:52:04 1519812390
>>1519809
Так же как и при обычном не ajax запросе, при помощи номера сессии, который посылается в виде кукиса даже при ajax запросов.

Правда это нужно еще программировать на php.
Аноним 13/11/19 Срд 01:54:01 1519814391
>>1519812
Я надеюсь, что меня поняли?
Аноним 13/11/19 Срд 02:00:27 1519817392
>>1519812
>>1519814
Да спасибо. А можно кусочек с маленьким кодом 1 запросика плиз.Я гуглю но нигде не нахожу рабочий кусок.
Аноним 13/11/19 Срд 02:03:53 1519820393
>>1519817
Завтра напишу. Сейчас уже спать сильно охота.
Аноним 13/11/19 Срд 02:06:55 1519821394
Аноним 13/11/19 Срд 02:39:29 1519838395
Аноним 13/11/19 Срд 02:40:10 1519839396
Аноним 13/11/19 Срд 11:07:05 1519936397
Аноны, сейчас в учебных целях повторяю одну здоровенную форму одного крупного сайта.
В ней куча элементов которые появляются и скрываются в зависимости от выбранного поля в селект. Я когда JS изучал подобное делал.
В форме на том сайте для такого юзается jQuery вовсю.
Сейчас везде и всюду говорится что jQuery не торт и его юзать нельзя.
Но допустим закажут мне что то подобное - как реализовывать такую форму? Не на рекат\вью это писать?

Или вообще нативно херачить?
Аноним 13/11/19 Срд 11:07:26 1519937398
>>1519936
Или таки jQuery, как и раньше?
Аноним 13/11/19 Срд 11:24:20 1519941399
>>1519936
Сайт древний, скорее всего. Легаси - все дела. Если заказчику нет дела до технологий - бери фреймворк, тебе же легче будет (если умеешь в него). Если заказчику нужно что-то допилить - используй то, что уже есть.
Аноним 13/11/19 Срд 11:56:36 1519953400
>>1519936
>jQuery не торт и его юзать нельзя
Так ты спрашивай - почему нельзя его юзать?
Очень часто такое слышно от хайповых js-петухов, которые кроме своего фреймворка ничего не знают.
Аноним 13/11/19 Срд 11:58:10 1519954401
>>1519953
>>jQuery
Ему хрен знает сколько лет уже и до сих пор на CDN торчит.
Значит актуально.
Аноним 13/11/19 Срд 12:28:27 1519974402
>>1519953
Уже тысячу раз вам блять объясняли, что сам по себе он норм для того, чтобы повесить пару обработчиков, сделать анимашку или отправить запрос, но когда появляется что-то посложнее типа динамической формы с валидациями, какой-никакой роутинг или ещё чего (что ВНЕЗАПНО делает просто сраный скриптик на фронте отдельным маленьким приложением, работающим в клиентском браузере), то лапша на jquery стремительно превращается в неподдерживаемый кусок говна, без архитектуры, расширяемости, зато с кучей дырявой магии.
Аноним 13/11/19 Срд 13:51:51 1520016403
>>1519974
>какой-никакой роутинг
На фронтенде?
Аноним 13/11/19 Срд 14:06:07 1520023404
У меня не выходит разобраться с правами на каталоги для Laravel.
Есть Ubuntu 18.04. На ней apache 2.4. Корень для сайт: /var/www/html. Какой владелец должен быть у этого каталога? Какие права нужно выдать, чтобы ларавел нормально с ним работал? Плюс папки bootstrap/cache и storage.

Я и так и сяк пробовал настроить, в итоге всё сломалось и не работает.
Последнее, что делал:
sudo chown -R testuser: /var/www -сменил владельца с рута, на себя.
sudo find /var/www -type f -exec chmod 664 {} \;
sudo find /var/www -type d -exec chmod 775 {} \;
- хз что это, написано "Then I give both myself and the webserver permissions:", что бы это ни значило.
Аноним 13/11/19 Срд 14:12:14 1520031405
>>1520023
>что бы это ни значило.
Вернее, что он написал, я понимаю, но что это за команды - нет. find какой-то - это же просто команда поиска, что она может сделать?
Аноним 13/11/19 Срд 14:25:34 1520043406
1.jpg (61Кб, 550x890)
550x890
Как реверснуть оператор сравнения с null - "??"

$a = $b ?? 'b is null';

А мне надо что-то вроде:
$a = $b !?? someFunciton ($b);

То есть, иногда надо что-то сделать с переменной, но только если она не null. А если null, так пусть просто будет null.
Аноним 13/11/19 Срд 14:29:27 1520049407
>>1520016
Здрасте. Добро пожаловать в мир react и прочих.

>>1519974
Да, мне именно это требуется. Из фронта я умею нативный JS и react уровня to-do-list. Жиквери никогда не юзал.
Достаточно подходит для моей цели.
Аноним 13/11/19 Срд 14:40:03 1520061408
>>1520023
Попробовал по https://tecadmin.net/laravel-file-permissions/
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type f -exec chmod 644 {} \;
sudo find /var/www/html -type d -exec chmod 755 {} \;
cd /var/www/html
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

Всё равно не работает. Если положить в корень test.php, то он нормально отрабатывает, а Ларавел нет.
Forbidden
You don't have permission to access this resource.
TAXI-кун !!wFUNz5.GRA 13/11/19 Срд 15:03:40 1520088409
С задачкой про айфон чем можно пользоваться? Только теми материалами, которые уже были в первых уроках?
Аноним 13/11/19 Срд 15:11:46 1520096410
>>1520049
> Жиквери никогда не юзал.
Да это же стейтлесс-либа.
Там 10 методов, которые требуются для 99% задач и все они тривиальные и понимаются интуитивно, типа "ты ей передаёшь dom-элемент (или путь до него) и коллбек, она вызывает коллбек при определённом событии".
Короче, поиграешься полчаса и можешь считать себя знатоком и обновлять резюме, лол.
Аноним 13/11/19 Срд 15:55:16 1520120411
Аноним 13/11/19 Срд 15:57:38 1520123412
image.png (92Кб, 480x360)
480x360
>>1520049
Как ты роутинг на бутстрапе делать собрался?
Аноним 13/11/19 Срд 15:58:16 1520125413
image.png (92Кб, 480x360)
480x360
Аноним 13/11/19 Срд 16:07:40 1520132414
>>1520043
может так?

//если не null
if (isset($переменная));

//если нул
elseif (!isset($переменная));

только вкатываюсь
Аноним 13/11/19 Срд 16:22:54 1520144415
Аноним 13/11/19 Срд 16:31:25 1520156416
>>1520123
Ето ти норкоман. Я про роутинг и не спрашивал
Аноним 13/11/19 Срд 17:54:44 1520254417
>>1520156
>но когда появляется что-то посложнее типа динамической формы с валидациями, какой-никакой роутинг
А это что?
Кажись ты просто не понимаешь разницу между фронтом и бэком.
Аноним 13/11/19 Срд 18:42:34 1520345418
>>1520254
> но когда появляется что-то посложнее типа динамической формы с валидациями, какой-никакой роутинг
Это писал я, другие посты - кто-то ещё.
Про роутинг я сказал потому что потом окажется, что форма должна вести себя по-разному на разных страницах, быть универсально-гибко-настраиваемой и всё такое. Там туева хуча вариантов и роутинг - только один из примеров того, что делает jquery-поделки неудобными для развития.
Аноним 13/11/19 Срд 19:50:04 1520384419
>>1520254
Хуясе предъявы, мое увожение, лол
Аноним 13/11/19 Срд 20:51:23 1520431420
>>1520345
>форма должна вести себя по-разному на разных страницах
А если без фантазий?

>роутинг - только один из примеров того
Роутинг форм, ты имеешь ввиду?
Аноним 13/11/19 Срд 20:52:26 1520433421
>>1520384
Просто не надо лезть в чужую ветку со своим реактом - не о том речь.
Аноним 13/11/19 Срд 21:53:39 1520476422
в чем разница между симфони и ларавелом?
Аноним 13/11/19 Срд 22:00:17 1520477423
По мере изучения всяких либ во время написания сайтов всё меньше приходится писать на ПХП и всё больше ебаться с вёрсткой и фронтом.
У всех так?
Аноним 13/11/19 Срд 22:02:46 1520478424
>>1520477
потому что бэк в массе однообразен и отточен.а фронт,это то что человек видит-дизайн и логика.тут фантазии больше.ну перчинка-жс ублюдский ЯП
Аноним 13/11/19 Срд 22:15:56 1520480425
>>1520478
Но я хотел на ПХП писать, а не жс.
Помню как свой парсер первый писал весь вечер - стена кода, сток под 200-250. А счас - накатил модную либу, скормил ей xpath, привёл в нужный формат другой либой, и всё - жрать подано. Дай бох 50 строк будет всё это дело.
Аноним 13/11/19 Срд 22:36:28 1520489426
>>1520476
И ларавел и симфони являются фреймворками.
Однако архитектура симфони построена так, что большая его часть ето независимые компоненты, которые не пересекаются с другими компонентами. Из-за этого компоненты симфони стали использоваться в других фреймворках, в том числе в ларавеле.
В ларавеле куда меньше надо собирать руками, то есть из коробки что-то запустить, чтобы оно работало на ларавеле будет быстрее. В основном потому, что за тебя уже все решили. Например, взгляни на документацию роутинга в симфони и ларавеле:
https://symfony.com/doc/current/routing.html
https://laravel.com/docs/6.x/routing

Оба фреймворка имеют большое коммьюнити.
На мой субъективный взгляд, для ларавеля написано больше инструментов (например какие-то свои очереди, вместо rabbitmq), однако и используются они только с ларавелем, как я видел.

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

Я думаю анон меня поправит и дополнит чуть что.
Аноним 13/11/19 Срд 22:41:50 1520491427
>>1520477
Если делать сайты-визитки и онлайн-магазины да. Надо идти в продуктовые компании, там куда лучше с этим.
Очень много интересных задач было, нагрузки, масштабируемость, написание каких-то допинструментов. Как только уровень джуна пройдешь беги от сайтошлепов в продуктовое что-то, ну или куда-то, где проекты по 4-6 месяцев идут.
Аноним 13/11/19 Срд 22:47:42 1520495428
>>1520477
На моем прошлом месте работы, когда начало появляться слишком много задач про сделай кнопку красную, чтобы жало и отправлялись данные и заебись все, то отдельно наняли фронтендера для этого. Но у тебя второго фулстака наймут.
Аноним 13/11/19 Срд 23:29:17 1520521429
Вопрос к ОПу. Какой потолок развития у php разраба? У меня есть планы переката в Европку - для этого пыха подойдет?
Аноним 14/11/19 Чтв 00:56:49 1520560430
>>1520489
Я бы дополнил что на ларавел не то чтобы сильно проще, а просто намного быстрее что-то написать чем на симфони, т.к. существует много шорткатов в виде глобальных функций и тебе не нужно долго думать о структуре классов и т.д. потому что в любой момент можно вызвать request() и оп, у тебя объект запроса например. А еще он всё таки немного подвязан на свой же орм Eloquent, это и хорошо и плохо, и если в теории можно свапнуть на доктрину или что-то еще, то на практике разные ларавел фичи начинают не работать потому что свойства приватные, или у этой фичи внутри проверка на инстанс или еще что, и приходится опять писать тот самый бойлерплейт. Например ларавель джоб класс, который через трейт умеет трансформировать модель в айдишник перед сериализацией чтобы память не охуела от активрекорда, а когда эта джоба выходит из очереди то по айдишнику заново гидрирует в свойство эту модель через рефлексию. Думаю что такой трейт можно легко и для доктрины написать, но сам факт.
Я бы советовал всё таки сразу на симфони + доктрина писать, мне кажется что там больше классического ооп, бойлерплейта, конфигов и вот этого всего, после такого на ту же ларку перекатиться будет в разы легче чем наоборот, когда ты не понимаешь зачем тут вводить тип если можно просто строкой что-то передать и т.д.
Аноним 14/11/19 Чтв 01:09:26 1520562431
Реально ли решить задачку с айфоном новичку?
Как дальше заставить прогу вычесть столько, сколько нужно, что бы в минус не уйти.
Аноним 14/11/19 Чтв 01:31:58 1520566432
>>1520562
>Реально ли решить задачку с айфоном новичку?
Она для новичка и есть.

>Как дальше заставить прогу вычесть столько, сколько нужно, что бы в минус не уйти.
Но сперва нужно синтаксис узнать - какие операторы есть и что делают. Нет смысла задавать такие вопросы.
Аноним 14/11/19 Чтв 02:23:12 1520576433
У меня есть один очень важный вопрос. Можно ли сделать так, чтобы скрипт отдал клиенту ответ, но при этом сам продолжил свою работу на ещё некоторое время.

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

Ну так вот можно ли решить эту проблему только средствами пхп, без использования кронджоб?
14/11/19 Чтв 03:20:57 1520590434
Аноним 14/11/19 Чтв 04:07:00 1520595435
>>1520576
нет. только очереди
Аноним 14/11/19 Чтв 08:02:21 1520633436
>>1520431
>>Роутинг форм, ты имеешь ввиду?
Я думаю он имеет ввиду роутинг SPA фронтред приложения, реализованного к примеру на react.
Если ты никогда не писал на react - то попробуй.

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


Аноним 14/11/19 Чтв 08:07:38 1520637437
>>1520254
Похоже ты просто не перерос еще классическое MVC на бэкенде со статикой отдающейся клиенту.
Внезапно MVC и тыщи его вариантов отлично живут на фроте. По необходимости получая от сервера только json с данными без какой либо разметки вообще.
Аноним 14/11/19 Чтв 08:15:26 1520642438
>>1520633
>один и тот же компонент может себя по разному вести на