М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 16 ноября 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Клуб изучающих PHP #113 /php/ 2 ноя, 04:20 1511146 В конец треда | Веб

33 Кб, 500x500157 Кб, 1024x683202 Кб, 1024x768188 Кб, 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? — Да, однозначно. Посмотри любую вакансию.

Ответы115271513419305196782117822599

56 Кб, 500x644
2 2 ноя, 04:22 2 1511147

Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть. Если каждый будет оформлять код как хочет, будет бардак.

Если тебе лень выравнивать код руками, закачай его на 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

3 2 ноя, 04:27 3 1511149

Напомню себе, как будет время, проверить из позапредыдущего треда:

- 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) на большинство постов даны ответы.

Ответы13610

4 2 ноя, 10:37 4 1511200

Может не туда вопрос а нуден ли пхп в 2019?

Ответы11308

5 2 ноя, 11:31 5 1511230

Оп продает свои говнокурсы! Не верьте ему! Он никогда не был рпограммыстом!

Ответы11237

6 2 ноя, 11:59 6 1511237

>>1511230
И какие курсы он продает?

7 2 ноя, 12:29 7 1511266

>>1511162
Таки спорно. С одной стороны, ты прав и действительно нет смысла что-то усложнять, если нужно выкинуть пользователю html-ку с парой кнопок, то jquery будет гораздо проще.
Но:
1) jquery уже подрастерял свою актуальность, не полностью, но... Во-первых, браузеры подсократили различия между собой (только говносафари ещё удивляет), нет такой острой необходимости в умной обёртке, учитывающей их. Во-вторых, сам js уже эволюционировал, на ванильном js-е можно сделать то же самое с чуть-чуть большим количеством кода.
2) Любой софт имеет тенденцию к усложнению со временем. Тебе нужно показать пользователю одну формочку, вторую, добавить валидацию, эффектик, что-то ещё, анимацию красивую... и в какой-то момент ты понимаешь, что оно слиплось в ком из лапшевызовов апи браузера и работы с глобальным состоянием, стоящий на костылях и хаках, чтоб быстрее. И переделать это на любой нормальный фреймворк займёт часов 20. И ты приходишь такой к начальнику и говоришь, что да, добавить новую форму - два часа, но тебе нужно ещё двадцать, потому что вот так вот. И ты услышишь следующие аргументы: "а чего ты сразу нормально не сделал?", "ну оно же работает сейчас, правильно?", "у нас нет денег на бессмысленные украшательства, не трать на это времени", "просто добавь кнопку, как-нибудь потом перепишешь" и тд и тп. В итоге будешь жить с этим легаси-говном или, матерясь, срочно переписывать его нормально.
Я это к чему, у бизнеса почти никогда нет ресурсов переделывать то, что и так приносит ему денег. Проще уже сразу сделать нормально, потратив на жалкий час больше, там не так много работы, сделать одну сраную форму на сраном реакте и пропустить через сборщик. Зато потом легче будет, если что.

8 2 ноя, 12:30 8 1511269

Вопрос по 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. На первый взгляд выглядит адекватно, но, возможно, я что-то упускаю.

Как поступить более правильно? Или, может, все варианты сосут и есть какой-то другой?

8 2 ноя, 12:30 8 1511269

Вопрос по 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. На первый взгляд выглядит адекватно, но, возможно, я что-то упускаю.

Как поступить более правильно? Или, может, все варианты сосут и есть какой-то другой?

Показать весь текст
Ответы113041130611353

9 2 ноя, 13:03 9 1511304

>>1511269
>dicBuilder
dickBuilder

10 2 ноя, 13:05 10 1511306

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

Ответы11311

11 2 ноя, 13:11 11 1511308

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

Ответы11331

12 2 ноя, 13:19 12 1511311

>>1511306
В документации я ничего не нашёл. Единственное, что хоть сколько-то релейтед https://github.com/PHP-DI/demo/search?q=$container&unscoped_q=$container

Но это, по сути своей, 1 вариант, только без копипаста. Разве это адекватное решение?

Ответы11355

13 2 ноя, 14:11 13 1511331

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

Ответы11333

14 2 ноя, 14:12 14 1511333

>>1511331
>Вопрос нубский

Ну так я нуб, думаю с чего начать. Вот и спросил.
Тут ведь для начинающих тред.

Ответы11334

15 2 ноя, 14:15 15 1511334

>>1511333
>думаю с чего начать
Думай молча.

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

Ответы11350

16 2 ноя, 14:38 16 1511350

>>1511334
>Думай молча.

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

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

С чего ты решил что тут должно быть как ты хочешь?

17 2 ноя, 14:42 17 1511353

>>1511269
>Как взаимодействовать с контейнером из классов?
Вся соль контейнера в том что тебе не нужно взаимодействовать с ним из классов. Ты в конструкторах описываешь нужные зависимости, и контейнер эти зависимости за тебя резолвит.

>Как поступить более правильно? Или, может, все варианты сосут и есть какой-то другой?
У любой программы есть точка входа, подумай какая точка входа нужна для твоего приложения и что она должна делать? Для твоего веб приложения упрощенно это почти всегда инициализация, рут -> обработчик. Т.к. контейнер в иерархии находится ближе точке входа то у тебя есть возможность просто сказать ему, контейнер - вызови обработчик и передай ему все зависимости. (На этом этапе еще тесно можно общаться с роутером и биндингом переменных рутов и переменными обработчика, например /post/:id и передавать в $id это значение).
И почему ты автовайринг выключил? Это же пушка

Ответы11363

18 2 ноя, 14:45 18 1511355

>>1511311
Почему нет? Представь что ты в public/index.php подключаешь этот файл, получаешь объект контейнера, и всё, ты можешь инитить любой класс, тот же роутер, ну а дальше понятно.

Ответы11363

19 2 ноя, 14:57 19 1511363

>>1511353
>Вся соль контейнера в том что тебе не нужно взаимодействовать с ним из классов

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

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

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

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

>>1511355
Ну, допустим. А какие очевидные минусы имеются к варианта 3 (кинуть контейнер через set)? Или тут уже принципиальной разницы нет?

Ответы11399

20 2 ноя, 16:25 20 1511399

>>1511363
>Ну, допустим. А какие очевидные минусы имеются к варианта 3 (кинуть контейнер через set)? Или тут уже принципиальной разницы нет?

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

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

21 2 ноя, 16:37 21 1511404

Аноны, помогите разобраться с отправкой почты. Не понимаю как это должно работать.
есть нативная функция mail() в пхп, которая для отправки почты использует встроенный почтовый сервис операционной системы. В линукс он есть по дефолту.Я работаю с вин7, и у меня это функция не работает.
Так же существует smtp - протокол и smtp-сервера. Что бы отправить на такой сервер письмо - необходимо что бы данное письмо соответствовало стандарту smtp. Для этого используют библиотеки типа PHPMailer.
Я правильно понимаю?

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

Ответы11410

22 2 ноя, 16:51 22 1511410

>>1511404
>я работаю из винды
Опенсервер что ли?

Ответы11415

114 Кб, 1588x887
23 2 ноя, 16:54 23 1511411

Вопрос по БД. Допустим есть здоровенный JSON на 1.5к строк, который отдает сервер, и мне нужно его сохранить в бд. Структура сложная как пикрилейтед. Какая структура таблиц делается в таких случаях? На каждый array делать новую табличку и привязывать по айдишнику что ли?

Ответы11439

24 2 ноя, 17:06 24 1511415

>>1511410
Есть разница между опен сервером и ручной сборкой апач + пхп?
И то и другое есть

Ответы11426

25 2 ноя, 17:23 25 1511426

>>1511415
Почту из опенсервера отсылаешь?

Ответы11476

26 2 ноя, 17:28 26 1511439

>>1511411
Либо да (нет), либо хранить как json в sql базе, либо хранить как json в json-ориентированной базе типа монгодб на выбор

Ответы11466

27 2 ноя, 18:09 27 1511466

>>1511439
> в json-ориентированной базе типа монгодб
Спасибо няша, не знал про существование такого.

28 2 ноя, 18:22 28 1511476

>>1511426
Вообще ниоткуда не отсылаю пока что, хочу толково понять что к чему. О том и вопрос

29 2 ноя, 18:43 29 1511495

Поясните что есть api? Это ссылкка, которая возвращает какие то данные (для фронтенда в json, например)?

30 2 ноя, 18:46 30 1511498

Почитал про phpMailer, в документации сказано что он позволяет отправлять из винды письма на smtp сервер. То есть реализует некий smtp клиент ? Этот клиент не может быть написан на пхп, так как является системным приложением и написан на с++?
Я правильно цепочку понимаю:
Мой пхп код -- вызываю smtp клиент, он формирует письмо и отправляет на smtp сервер, который отправляет письмо адресату . Так ?

Ответы11814

87 Кб, 720x696
31 2 ноя, 19:15 31 1511527

>>1511146 (OP)
Здарова, пыхеры.

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

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

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

Сам жээс фулстак.

Ответы11641

32 2 ноя, 22:14 32 1511641

>>1511527
/web

33 3 ноя, 00:46 33 1511689

Как понять работу контейнера? Допустим я зарегестрировал зависимость в контейнере симфони
$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 в контроллерах. Как они обьявлены глобально?
Подскажите хотя бы как это загуглить, ибо как не ищу выдает одни и те же доки на разных языках, но там только описано как задать зависимость, например.

Ответы117121181512015

34 3 ноя, 01:20 34 1511712

>>1511689
>У меня будет один и тот же обьект Session в обоих случаях? Или создадутся 2 разных обьекта?
А тебе в исходниках посмотреть не судьба эти методы?

Ответы11730

35 3 ноя, 01:41 35 1511730

>>1511712
Без негатива и всего этого, но я не понимаю о каких ты методах.

Ответы11744

36 3 ноя, 02:41 36 1511744

>>1511730
Да я без негатива вроде, хз.
Смотри тот метод, где разрешается зависимость очевидно - как оно там работает. Исходники-то открыты.
Ты ж программист.

Ответы11747

37 3 ноя, 02:52 37 1511747

>>1511744
Я уже все пересмотрел. Сейчас пробовал респонсы создавать разные контейнером и менять в контент. Пришел к выводу что он создается один и тот же. Это радует.
Только пропала одна проблема - появляется новая. Symfony Session компонент просто не работает. Когда пытаюсь его создать - пишет что сессия уже запущена. Но на метод $session->isStarted() возвращает false. Пробовал и session_abort до этого делать и гуглить. В гугле самая большая проблема в том, что выдает запросы по работе с самим фреймворком, а не с компонентом.

Ответы11748

38 3 ноя, 02:53 38 1511748

>>1511747
Но, конечно же, "все пересмотрел" !== "все понял и разобрал"

39 3 ноя, 04:45 39 1511771

Здравствуйте аноны!
Я в некотором замешательстве. Лениво учу python довольно продолжительное время, знаю синтаксис и не более. Да и то поверхностно. Не могу понять где применить этот язык и куда двигаться, везде кричат что нет вакансий, дикая конкуренция итд. Короче полная дизмораль. Подумываю пересесть на стул с php. Скажите, у вас есть четкий алгоритм прихода к успеху на работу? Не уткнусь ли я в лес непонимания куда мне двигаться дальше? У меня тройка по математике и я хочу простую ламповую работку для сыча. Пхп тоже требует адский стек технологий?

Ответы1197912200

40 3 ноя, 09:50 40 1511814

>>1511498
бамп!
Аноны, кто в теме объясните подробно.
Как phpmailer может отправлять напрямую письма из винды, если это поидее надстройка над mail(), которая по дефолту вызывает в linux функцию sendmail, а в виндовс на сколько я понимаю не вызывает нихуя ( или вызывает какую то виндовую почтовую службу все таки? )

Ответы1186412740

41 3 ноя, 09:53 41 1511815

>>1511689
В принципе в контейнере всегда должен храниться один и тот же объект. Когда ты запрашиваешь объект, идет проверка - если объекта в "хранилище" контейнера нет - он создается, а если нет - возвращается уже созданный объект.
У ОП-a есть урок который позволит понять чуть лучше:
https://github.com/codedokode/pasta/blob/master/arch/di.md

Ответы11947

42 3 ноя, 11:53 42 1511864

>>1511814
>кто в теме объясните подробно
В гугле куча статей, а ты до нас доебался.

43 3 ноя, 13:20 43 1511947

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

44 3 ноя, 14:00 44 1511979

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

45 3 ноя, 14:36 45 1512015

>>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 )

45 3 ноя, 14:36 45 1512015

>>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 )

Показать весь текст
Ответы12275

46 3 ноя, 14:39 46 1512017

Аноны, объясните, почему я не могу через 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.

Такая вот ошибка пишется.

Ответы1204212071

47 3 ноя, 15:21 47 1512042

>>1512017
--ignore-platform-reqs

48 3 ноя, 15:47 48 1512071

>>1512017

Композер, как я понимаю, обновляет версии в большую сторону. Проще всего удалить папку vendor и composer.lock и запустить установку заново.

49 3 ноя, 15:47 49 1512072

ОП, спасибо за ответы! Ты няша:3

50 3 ноя, 17:22 50 1512200

>>1511771
Бамп вопросу, я может не совсем правильно спросил, имелось ввиду смогу ли я вкатится во что нибудь простенькое вроде пилить сайтики на фрилансе. На начальном этапе и 20-30к зарплата ьудет норм. Что для этого необходимо знать?

Ответы12241

51 3 ноя, 18:28 51 1512241

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

Алсо, не рекомендую сразу во фриланс нырять, ты с 90% будешь пилить адовый говнокод.

Ответы1227712474

52 3 ноя, 19:27 52 1512275

>>1512015
Ребят, я уже спрашивал но конкретного ответа не получил. Какая загруженость на работе в веб-конторах? На данный момент я сижу с утра до ночи и либо код пишу либо что то читаю. Пока что все устраивает, но понимаю, что если дальше так продолжу то выгорю или ослепну нахуй. А на счет работы боюсь что меня возьмут, а я не буду успевать работу выполнять.

Ответы12281

53 3 ноя, 19:29 53 1512277

>>1512241
Тоесть ты предлагаешь учиться на собственных проектах. Придумывать сайт с функционалом, потом реализовывать его. Что скажешь о cms, оно вообще нужно или сразу фреймворк учить? Имеет ли смысл пилить свой движок для сайта?

Ответы12284

54 3 ноя, 19:39 54 1512281

>>1512275
Сильно зависит от конторы. Среднее по больнице никто не даст.

55 3 ноя, 19:45 55 1512284

>>1512277
У пхп ждунов только ларавел конторы. Бойся как огня всяких вордпресс контор. Не делай сложных заданий дома. Налегай на жс. Быстрее вкатишься.

Ответы12294

56 3 ноя, 19:57 56 1512294

>>1512284
А если контора делает и на cms и на фреймворках?

Ответы12298

57 3 ноя, 20:01 57 1512298

>>1512294
Хочешь СМС изучать или программистом стать? Программист не ограничен пхп проектами.

Ответы123061230912474

58 3 ноя, 20:16 58 1512306

>>1512298
Да и вообще ты сможешь себя программистом в полном смысле считать только когда в командной разработке участвовал. СМS подразумевает что один чушка по быстрому накидывает плагинов и проверяет чтобы это все минимально работало.

Ответы12317

59 3 ноя, 20:22 59 1512309

>>1512298
Это не мой пост, мне лучше чтобы без cms , а то это зашквар как я понял. У python и php есть точки соприкосновения? Будет профит если знать оба языка?

Ответы12320

60 3 ноя, 20:27 60 1512317

>>1512306
У меня в городе просто нет вакансий для чистого Laravel junior. Везде упоминается Yii как минимум. А то и на cms скажут шаблон натянуть - хер знает. Стоит ли мне без опыта в такую контору идти чтобы его набраться? Или сидеть ждать чуда/искать фриланс на ларке/symfony.

61 3 ноя, 20:28 61 1512320

>>1512309
Зашкар или не зашкар понятия какие-то детские. Это твой путь или не твой, может кто хочет стать cms одиночкой на арворке. Кто-то веники вяжет и неполохо себя чувствует.

62 3 ноя, 22:42 62 1512474

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

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

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

Ответы12533

63 4 ноя, 00:22 63 1512533

>>1512474
>Золотые слова. Я как в пхп основательно въехал - для меня в node.js все значительно яснее стало.
Хочу когда с пхп разберусь и стану хотя бы мидлом - начать учить другие языки. Считается ли это нормой? Помню в треде писали что нужно выбирать что то одно - там и сидеть.

Ответы1253612543

64 4 ноя, 00:30 64 1512536

>>1512533
Скорее наоборот, чтобы стать мидлом придется учить другие языки и технологии. Иначе будешь на одном месте сидеть.

Ответы13180

65 4 ноя, 00:41 65 1512543

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

Ответы13180

66 4 ноя, 11:06 66 1512740

>>1511814
Кажется я понял почему PHPmailer может отправлять smtp-почту - потому что соединение реализуется черкз сокеты. А их пхп нативно поддерживает.
Я прав?

Ответы12743

67 4 ноя, 11:16 67 1512743

>>1512740
>черкз сокеты. А их пхп нативно поддерживает.
через костыль

Ответы12775

68 4 ноя, 12:28 68 1512775

>>1512743
Подробнее плиз!

Ответы12787

69 4 ноя, 13:02 69 1512787

>>1512775
Да никакого костыля. Как все языки работает с сокетами через с обертку

Ответы13572

70 4 ноя, 13:13 70 1512791

Делаю задачку по учебнику,
что не так?

<?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";
}
?>

Ответы12801

71 4 ноя, 13:20 71 1512801

>>1512791
>что не так?
Ты нам в угадайку играть предлагаешь что ли? Проблему опиши.

Ответы12818

72 4 ноя, 13:32 72 1512818

>>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";
}
?>

72 4 ноя, 13:32 72 1512818

>>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";
}
?>

Показать весь текст
Ответы12822

73 4 ноя, 13:33 73 1512822

>>1512818
} перед elseif
и } перед else

Ответы12853

74 4 ноя, 13:59 74 1512853

>>1512822
>if ($humanSum > $cpuSum);{
>elseif($humanSum < $cpuSum);{
Точка с запятой тут не ставится.

Ответы12861

75 4 ноя, 14:09 75 1512861

>>1512853
Точно! Спасибо.

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

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

Cannot use [] for reading

Ответы12864

76 4 ноя, 14:10 76 1512864

>>1512861
У тебя опять синтаксис неправильный.

Ответы12866

77 4 ноя, 14:14 77 1512866

>>1512864
В чем?
Сдается не шторм мозги ебет по поводу { и [

Ответы12910

NoLaifer 78 4 ноя, 14:18 78 1512872

памагити

не могу понять почему не преобразует в верхний регистр
https://ideone.com/8zFsVm

Ответы128731308313182

NoLaifer 79 4 ноя, 14:19 79 1512873

>>1512872
клавиша шифт, задание

Ответы1308313182

80 4 ноя, 14:47 80 1512910

>>1512866
>В чем?
Ты теперь на каждый пук будешь у нас спрашивать?
Сходи и сам посмотри как правильно писать на пхп надо.

Ответы1292312932

81 4 ноя, 14:55 81 1512923

>>1512910
Если такой психованный, мог бы не отвечать.
Вахтер местный что ли?

Ответы12932

82 4 ноя, 15:00 82 1512928

>>1512927
будем надеяться,что тебя забанят

83 4 ноя, 15:02 83 1512932

>>1512910
>>1512925
>>1512923

Прекращайте. Пусть неадекват сам с собой разговаривает.

17 Кб, 1416x261
84 4 ноя, 15:31 84 1512970

Анон, делаю калькулятор (пушо с переводом цифр в слова не справился):
1) Откуда берётся ноль? Пробовал убрать с помощью $i+1, но не вышло.
2) Я хочу, чтобы у меня в $a записывались числа при помощи цикла, после чего при появления знака '+' - он прекращал записывать цифры в $a и начал следующие цифры после знака '+' записывать в $b. Как это реализовать?

Ответы1297513081

85 4 ноя, 15:38 85 1512975

>>1512970
Или я хуйню делаю и лучше сделать через прег_сплит?

Ответы12989

86 4 ноя, 15:52 86 1512989

>>1512975
>я хуйню делаю
Вся твоя жизнь в трёх словах.

87 4 ноя, 17:38 87 1513081

>>1512970

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

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

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

Ответы13101

88 4 ноя, 17:39 88 1513083

>>1512872
>>1512873
подправил немного, но не работает все равно
https://ideone.com/pdNw4I

Ответы131031310913182

89 4 ноя, 17:51 89 1513101

>>1513081
Бля, точно, спасибо.

А как можно добавлять число к числу, без преобразования в строку?
$a += - не преобразует, но он тогда просто прибавляет цифры. Какой-то оператор для этого существует?

Ответы13113

90 4 ноя, 17:53 90 1513103

>>1513083
Поэтапно разбери и посмотри, что работает, а что нет.

Ответы1310913182

91 4 ноя, 17:59 91 1513109

>>1513083
даже когда>>1513103
не присваивается в функции строка
но я не понимаю почему
там есть равно, значит должно блин
сейчас кстати попробую обьявить
$str= ' ';

Ответы13182

92 4 ноя, 18:01 92 1513113

>>1513101

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

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

число = число умножить на 10 + новая цифра.

Ответы13127

93 4 ноя, 18:10 93 1513127

>>1513113
>А не надо вначале было класть 0. Помести в переменную пустую строку.
Так поменял я, я говорю о том, как сделать так, чтобы переменные добавлялись не в строку и чтоб на выходе получалась НЕ строка.

>Формула такая:
Формула чего?..

94 4 ноя, 19:15 94 1513180

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

Ответы1332213410

95 4 ноя, 19:19 95 1513182

>>1513109
>>1513103
>>1513083
>>1512873
>>1512872
ВСЕ РАЗОБРАЛ! Спасибо за внимание, оп не нада
потом еще запятые доделаю, устал я
https://3v4l.org/uaKV2

96 4 ноя, 21:34 96 1513322

>>1513180
>> Но если так даже принятно, то в чем вся "болезненость" перехода на другой язык? Или это все сказки неосиляторов?

Я с ноды начинал, у нее документация для нуба - ад адский. Я вообще нихуя не понимал. Че от чего наследуется, и нахуя оно вообще нужно. И как из этого говна сайт собрать. Потом между делом изучил питона синтаксис, но питон рыночек порешал. На нем крайне мало для нуба работы.
По итогу пришел в пхп, выучил sql, и так по гайдам, по видосам и прочем я разобрался и в сессиях, и в ООП и в том как вообще должно быть организованно приложение. Слои, контейнеры и все такое.
Я все еще нуб, но именно на пхп я начал понимать что к чему.
Сейчас для одного человека пилю личный кабинет для сайта, за небольшие деньги, типа первый проект. И все дается через боль, но идет вперед.
И когда я возвращаюсь к node иногда - я прям гораздо проще понимаю что к чему, яснее.
Но это я с позиции нубаря.

97 4 ноя, 23:13 97 1513410

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

Ответы134541347413770

98 4 ноя, 23:48 98 1513424

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

Ответы13454

99 5 ноя, 00:41 99 1513454

>>1513410
>Нет проблемы выучить yii, laravel и symfony ибо в целом они все mvc
Ну я узнал о psr-7. И сейчас в компонентах ковыряюсь. Как я понимаю в пхп фреймворки все на одном фундаменте построены.
>В них свой синтаксис, свои нюансы, свои библиотеки/фреймворки/мода.
Мне кажется синтаксис другого языка не очень долго учить, мода - да. Не знаю почему, но не верится что для перехода с той же пыхи на руби или питон у мидла потребуется более 1 месяца. Ну потеряю я на месяц-два чуть чуть в зп, лучше чем на люстре вздернуться.
>Плюс не забывай, что если постоянно работать и/или учиться то можно просто ебнуться и выпилиться.
На самом деле я уже начинаю этого бояться. Слишком спешу и времени много уделяю, жаль что выбора другого нет.

>>1513424
Можешь откликнуться на вакансию - пришлют тестовое. Даже если ты его не сможешь сделать/сделаешь плохо, то для тебя это какой никакой а опыт. Возьмут - хорошо, не возьмут так хоть практики прибавиться.

100 5 ноя, 01:20 100 1513474

>>1513410
>Нет смысла быть человеком-оркестром. Стоит грамотно выбирать то, что учить.
А я считаю, что поковырять стоит всё что интересно и дотянешься, но при этом иметь собственный стек в котором сечёшь.

101 5 ноя, 09:08 101 1513557

Как решается эта задача?

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

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

Я не понимаю вообще эти ебаные циклы.
Это какая-то дичь.

Ответы13600

102 5 ноя, 10:09 102 1513572

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

Ответы13695

103 5 ноя, 10:57 103 1513600

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

Ответы13665

104 5 ноя, 11:10 104 1513610

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

Вы там своё говно вообще тестируете?

105 5 ноя, 12:26 105 1513665

>>1513600
Сможешь ли ты в спойлере хотя бы показать как?
Логика от меня начисто ускользает.
Я третий день сижу за этим и похоже зря теряю время.

Ответы13680

106 5 ноя, 12:42 106 1513680

>>1513665
Если надо что-то совсем плюшевое, то:
for I>N
{
echo "<tr>$X</tr><tr>x</tr><tr>$X</tr><tr>=</tr><tr>pow($X)</tr>"
}

Ответы13693

107 5 ноя, 12:56 107 1513693

>>1513680
Вообще нихуя не понял.
Слишком сложно.
Слишком ебануто.
Я всё, всем удачи.

Ответы1370313761

108 5 ноя, 12:58 108 1513695

>>1513572
https://www.php.net/manual/ru/book.sockets.php

Ответы13746

109 5 ноя, 13:09 109 1513703

>>1513693
чувак так далеко не уедешь. Расскажи как ты пытался решить эту проблему, какой код писал, что именно было не понятно.

Ответы13762

110 5 ноя, 14:08 110 1513746

>>1513695
а почему говорят,что лучше нода с сокетами?

111 5 ноя, 14:31 111 1513761

>>1513693
Ты совсем что ли тупенький?
for ($i=0;$i<9;$i++){
}

Дальше сам разбирайся

112 5 ноя, 14:32 112 1513762

>>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.

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

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

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

Ответы137631376613767

113 5 ноя, 14:36 113 1513763

>>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>";

Ответы1376413772

114 5 ноя, 14:36 114 1513764

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

115 5 ноя, 14:37 115 1513766

>>1513762
Просто не твоё.
В IT много разных профессий - попробуй что-нить более понятное и не задротное.

116 5 ноя, 14:38 116 1513767

>>1513762
>$a =1
>$b = $a$a;
Не нужно

>for ($a = 1; $a < 10; $a++) {
правильно
>echo "$a X $a = $b";
неправильно.
echo "$a X $a = " . $a $a;

30 Кб, 600x600
117 5 ноя, 14:39 117 1513770

>>1513410
> Нет проблемы выучить yii, laravel и symfony ибо в целом они все mvc
Тащемта то, что называется mvc в yii и (частично) laravel - это хуита, которую перенесли из старых GUI-шных приложений и не адаптировали нормально под веб.
Ну и в принципе, 99 погромистов из 100 понимают "модель" как слой работы с базой данных, "контроллер" как место, где нужно писать (бизнес) логику, а "вьюху" как место, где нужно принтить данные.
Что, естественно, не так.

Ответы13773

118 5 ноя, 14:40 118 1513772

>>1513763
>>$b<=9;

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

Один знак < меньше достаточен только 10 указать и явно все окончится 9кой.

Ответы13780

119 5 ноя, 14:41 119 1513773

>>1513770
>Что, естественно, не так.
А как? Ворвался - отвечай на свой ответ чтобы не быть баттхёртом.

Ответы1381013872

120 5 ноя, 14:49 120 1513780

>>1513772
Потому что мне захотелось так сделать?

Ответы13785

121 5 ноя, 14:56 121 1513785

>>1513780
Я думал что за каждым символом стоит большее понимание чем просто: захотелось.

Ответы13789

122 5 ноя, 14:58 122 1513789

>>1513785
Ты хули доебался, долбоёбина?
Ну блядь, сука, мне надо числа от ОДНОГО до ДЕВЯТИ выводить, я и сделал цикл от ОДНОГО до ДЕВЯТИ, а не десяти. Иди на хуй, чёрт ебаный

Ответы13790

123 5 ноя, 15:00 123 1513790

>>1513789
Если стоит просто < 10, 9 и будет последней цифрой и 10 не выведет никак.

В остальном твой бомбаж как бы говорит что ты говно.

Ответы13792

124 5 ноя, 15:02 124 1513792

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

Ответы13798

54 Кб, 1276x680
125 5 ноя, 15:03 125 1513794

Пытаюсь получить бесплатный домен tk на freenom.com, и не получается. Они прикрыли лавочку, или я где-то туплю? Где ещё можно получить домен бесплатно? Мне любой, лишь бы его можно было прикрутить к уже купленному vps.

126 5 ноя, 15:07 126 1513798

>>1513792
Я понял что ты тот шизик что тут срет.

48 Кб, 600x450
127 5 ноя, 15:21 127 1513810

>>1513773
Если вкратце, то:

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

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

Там много всего и ещё больше тонкостей, читай про clean architecture, hexagonal architecture и domain driven design.

Ответы1384813979

128 5 ноя, 16:06 128 1513848

>>1513810
Ты как-то нахватался всего по верхам.
Ерунду написал.

Ответы13977

129 5 ноя, 16:41 129 1513872

>>1513773
https://habr.com/ru/post/321050/

130 5 ноя, 16:52 130 1513881

Знаете, лично я не понимаю, почему ВСЮ логику сейчас принято пихать в модель. А в контроллере остаётся только передаточное звено. "О, юзер хочет сделать вот это - пнём вот этот метод модели и отдадим юзеру результат!". Я не вижу, чем этот подход лучше, чем толстый контроллер. Ну, кроме "стильно-модно-молодёжно".

Ответы138911389313896

131 5 ноя, 17:07 131 1513891

>>1513881
Покажи кодом - что сам написал на эту тему. Кукарекать в треде любой ждун умеет.

Ответы13905

132 5 ноя, 17:08 132 1513893

>>1513881
Всем. Тестируемость, гибкость, расширяемость.

Ответы13905

133 5 ноя, 17:12 133 1513896

>>1513881
>толстый контроллер
Лапша не нужна.

Ответы13905

134 5 ноя, 17:27 134 1513905

>>1513891
А это уже переход на личности. Давай так: я мимокрокодил и вообще не кодил ничего, окей? Ты в любом случае круче меня.
>>1513893
>>1513896
Вот хоть убей не вижу профита.

Ответы1390613915

135 5 ноя, 17:28 135 1513906

>>1513905
>не вижу профита
Так это твои проблемы.

136 5 ноя, 17:47 136 1513915

>>1513905
>я мимокрокодил и вообще не кодил ничего
А какой тогда смысл с тобой вообще время терять? Притащил статей чтобы срач начать, а сам отношения к разработке не имеешь.
Иди-ка ты в/б, дружок.

137 5 ноя, 18:11 137 1513923

Анишки, пока вы сретесь, может кто подскажет:
имеет место проблема с кешированием сайта, сделанного на slim
Суть проблемы - делается урл типа /delete/2
по нему система удаляет файл с айдишником 2, обычный анлинк. Проблема в том, что к концу дня этот урл перестает удалять файл.
НО, если я очищаю кэш браузера, то урл начинает работать и срабатывает еще пару раз. А потом по-новой очищай. Вопрос - кто-нибудь сталкивался с подобным? Куда хоть копать? В сторону браузера? В сторону хостера (бегет)? В сторону слима? Я добавил в шапку сайта заголовок с ноу-кэш. Не помогает. Смотрел в трех разных браузерах - везде одинаково.

Ответы13950

138 5 ноя, 18:43 138 1513950

>>1513923
>Куда хоть копать?
Я бы копал в сторону хттп-заголовков на запрет кэширования.

Ответы13951

139 5 ноя, 18:43 139 1513951

>>1513950
А, в глаза ебус. Сорян.

140 5 ноя, 19:34 140 1513977

>>1513848
Ты или по пунктам критикуй, или не возникай. И да, сам попробуй уложить архитектуру приложений в 2 абзаца.
Ну и да, если совсем кратко:
- "модель" - это модель предметной области, содержит бизнес-логику
- "контроллер" - это то, что нужно делить на две части, собственно, "хендлер" (вычитывает нужные данные из запроса) и "юз-кейз" (валидирует данные, вызывает модель)
- "вьюха" не нужна совсем.

Ответы14009

141 5 ноя, 19:38 141 1513979

>>1513810
>Соответственно, модель ничего не знает про то, на чём она работает, не знает ничего про базу данных
Минуточку, а скул-запросы куда лепить? В контроллер? Или во вью? Куда их ещё-то, как не в модель? И как можно написать запрос, который будет ничего не знать, в какую базу он полезет: в оракл или в майскул?

Ответы13980

142 5 ноя, 19:41 142 1513980

>>1513979
в сервис
контроллеру насрать, каким образом получается нужный набор объектов из модели
он только говорит "а дай-ка мне такие объекты"

потому что завтра ты поменяешь БД на обращение к микросервису, и чо, будешь контроллер еще переписывать?
а там и до гуя дойдешь?

Ответы1398914015

143 5 ноя, 19:52 143 1513989

>>1513980
Анон дело говорит. Ты описываешь интерфейс, скажем:
interface UsersRepository {
public function Load(int $userId);
public function Save(int $userId);
public function LoadByName(string $name);
}
И используешь его в сервисах и юз-кейзах. А этот интерфейс уже может реализовывать MysqlUsersRepository, который и делает запросы.

144 5 ноя, 20:24 144 1514006

swoole для реал проэетов пойдет или ну его наз и поставить ноду?

Ответы1400714011

145 5 ноя, 20:24 145 1514007

>>1514006
ну его нах

146 5 ноя, 20:29 146 1514009

>>1513977
>по пунктам критикуй
Пережовывали сто раз уже на форумах. Нах ты сюда это принёс, болезный? Ни кода, ни своих наработок - только чужие статьи и чужие мысли.
Кого критиковать, тебя? Ты никто вообще.

147 5 ноя, 20:30 147 1514011

>>1514006
Хз, я не пробовал, но с большой настороженностью отношусь к любым таким надстройкам над php. Может и норм, но я бы всё равно ноду взял.

Ответы14013

148 5 ноя, 20:32 148 1514013

>>1514011
ну я про то же.асинк-это не про пых

149 5 ноя, 20:35 149 1514015

>>1513980
>потому что завтра ты поменяешь БД на обращение к микросервису, и чо, будешь контроллер еще переписывать?
Зачем контроллер? Модель. А "сервис" - это уже не MVC же получится. Я что-то запутался в вебе образца 2019.

Олсо, за это "мы делаем сайт визитку, но вдруг завтра он станет порталом на микросервисах и оракловой базой в распределённом кластеере? Давайте предусмотрим всё!" известный всем нам товарищ рекомендовал в своей книге (обязательной для изучения любому программисту) пиздить ногами.

Ответы140181403114126

150 5 ноя, 20:39 150 1514018

>>1514015
Что за книга? Прям увожением проникся к товарищу.
городить абстракции на абстракции только потому, что так можно, и может пригодиться когда-нибудь - признак дегенерата от программирования

Ответы14020

151 5 ноя, 20:45 151 1514020

>>1514018
>Что за книга?
Честно говоря, я забыл и как его звали, и как называлась книга. Не то Кнут, не то Страуструп, а может ещё кто-то из их компании. Постоянно мелькает эта книга, а я постоянно забываю название.

Ответы14030

152 5 ноя, 20:57 152 1514028

Как делать задачу?
Клавиша shift
Если ты общаешься в интернете, то, наверно, заметил, что у некоторых людей есть дурная привычка, вопреки всем правилам и нормам русского языка, начинать все предложения (и даже иногда имена) с маленькой буквы. Поскольку никакие аргументы на таких людей не действуют, давай исправим их текст с помощью языка PHP.

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

http://sandbox.onlinephpfunctions.com/code/943693eba4c9584583afc1fa406796417445212a

Ответы14268

153 5 ноя, 21:01 153 1514030

>>1514020
Ну я понел примерно.
Помню первые парсеры писал и с ООП игрался - наворачивал одно на другое вечерами - библиотеку на фасад, с тором чтоб и многопоточно, и по SOLID всё надо красиво. Потом заметил, что я третий день пишу ёбань и ни строчки конкретной логики, и написал за полтора часа всё что надо. Тогда и понятно стало, что тормозить надо все эти фантазии и писать конкретику, иначе дроч один.

Ответы14035

154 5 ноя, 21:01 154 1514031

>>1514015
Надо, Федя. Надо. Это за бабло заказчику извлоль быстрее, некогда проектировать и так сойдет. Когда учишься нужно айл ду май бест всегда делать. Вот наспупит реальный случай, когда сеньор-помидор психанет и нахер уволится, и придется тебе придумывать архитектуру 1000 человекочасов. А ты обосрешься и будешь дальше всю жижнь свои мокрописьки писать. Оно конечно понятно что 90% веба - это мокрописки. Но хочедца расти над собой.

155 5 ноя, 21:07 155 1514035

>>1514030
Ты еще Энгельса с Марксом покритикуй, мол чо там думать, все взять и поделить.

Ответы14045

156 5 ноя, 21:12 156 1514045

>>1514035
Когда котлеты будут, товарищ? Обещали ближе к выходным, а уже среда.

Ответы14051

157 5 ноя, 21:20 157 1514051

>>1514045
- Дарья, когда котлеты будут?
- Через десять минут Филипп Филиппович.
- Молодой человек, изволите обследоваться, приходите после обеда к трем часам.

Ответы14053

158 5 ноя, 21:21 158 1514053

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

Ответы14058

159 5 ноя, 21:25 159 1514058

>>1514053
\s

Ответы14065

160 5 ноя, 21:27 160 1514060

Объясните нюфане, если компания хочет создать приложение и собирается использовать фреймворки, то она берет фреймворк для пхп вроде ларавеля ИЛИ она берет фреймворк для джс вроде реакта ИЛИ она берет и то, и другое и пытается их помирить?

Ответы14064

161 5 ноя, 21:33 161 1514064

>>1514060
Она берет фреймворк типа битрикс и берет джуна типо знающего жиквери и пытается их померить

Ответы14067

162 5 ноя, 21:35 162 1514065

>>1514058
/[.!?]+/u =====> /\s/u
Разбивает теперь по словам....
Возможно я неправильно описал проблему.
С предыдущей маской /[.!?]+/u получается это
__________________________________________________________
array(3) {
[0]=>
string(11) "ну что"
[1]=>
string(47) " не смотрел еще black mesa "
[2]=>
string(86) "я собирался скачать ,но все как-то некогда было"
}
__________________________________________________________

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

Ответы14275

163 5 ноя, 21:35 163 1514067

>>1514064
> померить
Школьник иди нахуй, борда для 18+.

Ответы1407214105

164 5 ноя, 21:37 164 1514071

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

165 5 ноя, 21:37 165 1514072

>>1514067
Я хател напесать "помереть" извенити

Ответы14102

166 5 ноя, 21:52 166 1514102

>>1514072
Тагда аставайся.

167 5 ноя, 21:54 167 1514105

>>1514067
>борда для 18+
Тематика вроде для всех. Обычный форум в общем-то, только анонимный.

Ответы14109

4 Кб, 904x22
168 5 ноя, 21:55 168 1514109

>>1514105

Ответы14115

101 Кб, 1032x727
169 5 ноя, 21:57 169 1514115

>>1514109
А это нафига тогда запилили?

Ответы14118

170 5 ноя, 22:01 170 1514118

>>1514115
Шоб ты долго не искал самое важное

171 5 ноя, 22:09 171 1514126

>>1514015
Понятно, что для сайта-визитки сложного бекенда не надо.
Но:
1) Не все пишут сайты-визитки;
2) Софт имеет свойство усложняться, а не упрощаться со временем;

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

Ответы14439

172 6 ноя, 00:34 172 1514268

>>1514028
Разбей исходную строку на предложения. В них сделай заглвные буквы и склей. Чтобы регулярки подбирать удобно пользоваться этим https://regex101.com

173 6 ноя, 00:39 173 1514275

>>1514065
А, увидел. Вообще способов много можно придумать, сам не помню каким делал. Но сейчас первое что в голову приходит - разбить строку на предложения, потом предложения на слова. И все это склеить. Но мне кажется можно сделать как то легче с помощью регулярок

174 6 ноя, 11:56 174 1514439

>>1514126
>Нормально делай и нормально будет.

Что почитать чтобы сразу нормально делать на пхп?

Ответы14446

175 6 ноя, 12:14 175 1514446

>>1514439
Для начала, использовать онли симфони либо ларавел, если мало опыта. yii и cms-ки - это архитектурный ад.
Во-вторых, прочитать гайды, советы и бест практики по выбранному фремворку.
В-третьих, выше уже писали. Изучать clean architecture, hexagonal architecture и ddd, а затем их реализации на php, лучше на конкретном фремворке. Лучше пока ещё ничего не придумали.

Ответы1448014749

176 6 ноя, 13:08 176 1514480

>>1514446
>используйте симфони если мало опыта
Вот этого не слушайте - он бредит.

Ответы14485

177 6 ноя, 13:16 177 1514485

>>1514480
Ты в глаза долбишься что-ли?
Симфони, либо ларавел, если мало опыта.
Много опыта -> симфони
Мало опыта -> ларавел

Ответы15171

178 6 ноя, 18:57 178 1514749

>>1514446
Интересно где найти контору, которая делает все на чем то одном. Как правило это студия где делается все и на всем, от wordpress до laravel. Или ДСах это норма?

Ответы15166

179 6 ноя, 22:11 179 1514958

Привет если кто работал с битриксом а в особенности их рест апи сочуствую

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

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

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

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

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

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

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

49 Кб, 1242x968
180 7 ноя, 04:59 180 1515134

>>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.
Например, для водителя это будет: Имя, возраст, зарплата, стаж, категории, марка личного автомобиля".

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

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

49 Кб, 1242x968
180 7 ноя, 04:59 180 1515134

>>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.
Например, для водителя это будет: Имя, возраст, зарплата, стаж, категории, марка личного автомобиля".

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

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

Показать весь текст
Ответы15143152401525316294

181 7 ноя, 06:20 181 1515143

>>1515134
У тебя же есть конструктор, почему бы тебе не закинуть в его конструктор $_POST?

Ответы15146

182 7 ноя, 06:39 182 1515146

>>1515143
Три разных класса же, я же не знаю заранее какой класс выберет пользователь.

Ответы15272

183 7 ноя, 08:18 183 1515166

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

Ответы15179

184 7 ноя, 08:37 184 1515171

>>1514485
> симфони
медленная и усложненая система

Ответы15186

185 7 ноя, 09:13 185 1515179

>>1515166
Ну у меня в городе из контор только пару контор берущихся за любую работу как я понимаю (любой регион и любая сложность). Я вот начитался, и теперь боюсь идти, ибо скорее всего работать придется со всем cms/yii/laravel

Ответы15187

186 7 ноя, 09:34 186 1515186

>>1515171
Современный, хорошо задизайненный набор компонентов. Лучше в мире php пока не придумали.

187 7 ноя, 09:34 187 1515187

>>1515179
Ну упрашивай и договаривайся, чтобы на laravel работать тогда.

188 7 ноя, 10:27 188 1515215

Цикл в цикле это говнокод ?

Ответы1522016294

189 7 ноя, 10:43 189 1515220

>>1515215
Смотря когда. Иногда без него не обойтись, но по возможности лучше так не делать, конечно.

190 7 ноя, 11:20 190 1515240

>>1515134
>ajax запросом отправить ее на сервер, где нужно получить список полей (свойств класса), сформировать под каждое из них <input> и снова отправить на сервер
Мне кажется это лишнее, лучше сразу их куда-нибудь скласть и при смене пункта в селекте рисовать нужные инпуты.

191 7 ноя, 11:44 191 1515253

>>1515134
Если задача - просто дать пользователю возможность менять профессию, то городить что-то со свойствами классов изначально ошибочно.
Делаешь класс UserStorage с методами add и get, делаешь класс ProfessionStorage с теми же методами add и get, делаешь класс UserProfessionStorage с методами addForUser и getForUser.
(Чтобы не заморачиваться с бд, то каждый из классов, может писать и читать из файлика, это изи пишется)
так что твоё действие "получить для юзера профессию" будет выглядеть, как:
$profId = $userProfs->getForUser($user->id); // возвращает id профессии или null.
if ($profId !== null) {
$prof = $professions->load($profId);
// тут делаешь с профессией, что хочешь.
}

Ответы15284

192 7 ноя, 12:19 192 1515272

>>1515146
Фабричный метод тебе в помощь.
Хотя, скорее всего, ты неправильно архитектуру пилишь с ООП это надо продумывать.

Ответы15284

193 7 ноя, 12:35 193 1515284

>>1515253

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

>>1515272

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

194 7 ноя, 14:28 194 1515372

Посаны, разбираюсь с ООП.
Собственно, такие вопросы: https://ideone.com/8Xfm05
1. Есть price и weight. Если я хочу с ними работать, например с учётом ндс цену вывести, то в каком виде и где я должен рассчитывать ндс? Без разницы куда вставить расчёт ндс? Внутри product?
2. функции - являются методами, верно?
3. Если я хочу создать отдельный метод, в котором будет выводиться только цена и ндс, то надо просто создать второй метод с нужными данными, после чего вызвать его? Нужно ли мне ещё один констракт создавать для этого, потому что при создании new Product у меня будут значение кроме ндс и цены, такие как вес, название и пр.?

Ответы15375153841576016291

195 7 ноя, 14:29 195 1515375

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

196 7 ноя, 14:39 196 1515384

>>1515372
1. Ты неправильно понимаешь "суть" (тм) ООП. ООП - это не про то, чтобы нафигачить классов, это про то, чтобы представлять код в виде объектов (сервисов), каждый из которых выполняет свою работу и по необходимости обменивается сообщениями (вызовами методов) с другими. Всякие инкапсуляции и наследования - это уже частность, следствие объектности.
Также прочитай про SOLID, в частности про принцип единой ответственности.
Грубо говоря - если у тебя есть user, то это просто объект для хранения данных о пользователя, и всё, кроме геттеров и сеттеров там ничего держать не нужно.
Если тебе нужно считать цену - то тебе нужен PriceCalculator, который берёт, скажем, продукт и возвращает посчитанную цену для него.
Если тебе нужно вывести что-то куда-то (запринтить объект в виде html в output), то тебе нужен Renderer, View или что-то такое.

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

2. Метод - это функция, исполняемая в контексте или конкретного объекта (может обращаться к его свойствам), или класса (если метод статический).

Ответы154481597916293

5 Кб, 225x225
197 7 ноя, 14:57 197 1515397

Анончики, кто работал с яндекс облаком? Не могу разобраться с api для загрузки объекта в хранилище. Может кто помочь?

198 7 ноя, 15:35 198 1515448

>>1515384
>1
Ух. Понятнее не стало. Т.е. мне нужно создать метод подсчёта цены, так? Т.е. должна быть функция подсчёта цены, к которой я буду обращаться в будущем.

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

Блин-блинский. Вообще ниче не понимаю. Пойду дальше туториалы смотреть.

Ответы15508

199 7 ноя, 15:53 199 1515478

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

Ответы16125

200 7 ноя, 16:15 200 1515508

>>1515448
Ну, общую суть ты уловил.
Ни один твой клас не должен делать всё, он должен исполнять только свою конкретную работу, не больше. Представь свой код в виде конвейера, в котором каждый твой класс - это или объект, лежащий на ленте, или робот, которой чего-то там делает над объектом, лежащим на ленте.
(собственно, код - это и есть конвейер, он исполняется по одной инструкции, сверху вниз, отдельными "операторами" - функциями, ну ты понял)
Соответственно, твой класс Product задизайнен неверно, потому что у него откуда-то нарисовался метод printInfo(). А твой класс Product, очевидно, хранит информацию о продукте. Всё, если тебе нужно принтить продукт - создавай productPrinter либо Renderer, что-то такое.

Твой код должен выглядеть условно как-то так:
Роутер (принимает запросы и вызывает коллбек) -> Хендлер (получает объект запроса и вызывает нужный сценарий из бизнес-сервиса) -> Бизнес-сервис (описывает сценарии типа "добавить продукт в корзину", "оплатить заказ", вызывая специализированные сервисы по необходимости) -> Инфраструктурные сервисы (база данных, калькуляторы, счётчики, любая фигня) -> начинаем возвращаться назад -> Бизнес-сервис (всё рассчитал, сохранил, возвращает ответ) -> Хендлер (получил от бизнес-сервиса ответ, прокидывает его в сервис, отвечающий за отображение ответа) -> Отображатель (или View, выводит или возвращает какие-то данные в каком-то виде, например продукты в json или ордеры в html)

Ответы1553115543

201 7 ноя, 16:41 201 1515531

>>1515508
>Соответственно, твой класс Product задизайнен неверно, потому что у него откуда-то нарисовался метод printInfo(). А твой класс Product, очевидно, хранит информацию о продукте. Всё, если тебе нужно принтить продукт - создавай productPrinter либо Renderer, что-то такое.
Это весьма сомнительное умозаключение. Сделать для дебага функцию printInfo у продукта - это совсем не такая уж плохая идея.
А вообще не плохо было бы сделать сразу несколько классов для продуктов:
1) Продукт как модель, хранящий данные продукта и работающий с базой данных.
2) Продукт как View, отображающий продукт тем или иным образом. Таких View может быть разумеется несколько.
3) Контроллер для продукта, который получает запросы пользователя, выбирает нужный продукт, объединяет нужный продукт с нужной View и выдаёт ответ пользователю.

Ответы15550

202 7 ноя, 16:51 202 1515543

>>1515508
Я сбацал пример по-быстрому, смотри комментарии: https://ideone.com/qtYObS

Ответы1571915722

203 7 ноя, 16:56 203 1515550

>>1515531
Это у тебя сомнительное умозаключение. У него в printInfo понаписаны `<div style='border: {$this->border}; ` и прочее, это явный рендеринг уже. Да и принтится любой объект элементарным print(serialize($object)), так что специальные методы в принципе не нужны.

Ответы15570

204 7 ноя, 17:16 204 1515570

>>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() и посмотреть строение любого объекта или массива.

Ответы1557315574

205 7 ноя, 17:19 205 1515573

>>1515570
function print_r_die($object) {
ob_clean();
print_r($object);
die();
}

Самофикс

206 7 ноя, 17:20 206 1515574

>>1515570
Это в любом случае костыли. С момента создания xdebug надобность принтить объекты практически исчезла, потому что ты смотришь непосредственно на данные в памяти.

Ответы15578

207 7 ноя, 17:25 207 1515578

>>1515574
Мне не нравится дебажить при помощи xdebug. И я как дебажил принтами, так и буду продолжать.

Ответы15691

208 7 ноя, 19:29 208 1515691

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

209 7 ноя, 19:51 209 1515719

>>1515543
Пиздос. Ваще нихуя не понятно.

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

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

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

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

К тому же, по скольку мы добавили её в констракт, $test = new Product(Запросит здесь NDS указать, а как я её тут укажу?.. 'getPrice()'?)

Ответы15724157251573815747157601581616294

210 7 ноя, 19:52 210 1515722

>>1515543
Точнее строение понятно, но вот что ты там понаписал...

211 7 ноя, 19:54 211 1515724

Сори, что совсем тупые вопросы задаю. Просто я без явного примера использования не могу самостоятельно допердолить, как подобное реализовывается. (Ну как не могу - мой максимум то, что я расписал выше, но это всё теоретически и скорее всего неправильно)
>>1515719

212 7 ноя, 19:59 212 1515725

>>1515719
Мне в голову пришла совершенно тупая мысль: почему бы тебе не вывести логику расчёта НДС в субд?

Ответы15729

65 Кб, 750x585
213 7 ноя, 20:00 213 1515729

>>1515725
> субд
кто

Ответы15733

214 7 ноя, 20:02 214 1515733

>>1515729
СУБД

Ответы15738

215 7 ноя, 20:07 215 1515738

>>1515733
Друже, я делаю элементарные задания. Если ты про фигню типа sql, то я до такого ещё не дорос.
Мне просто бы понять, как правильно сделать это и дальше по примеру этого работать с остальными заданиями до новых вопросов. >>1515719

216 7 ноя, 20:14 216 1515747

>>1515719
Давай начнем с того, что ты нормально вопрос сформулируешь. Что хочешь сделать и что не понятно.

Ответы15760

217 7 ноя, 20:30 217 1515760

>>1515747
Я же всё вроде расписал.
>>1515372
>https://ideone.com/8Xfm05
Вот тут вот оригинал кода. Хочу добавить функцию расчёта ндс, чтобы цена с ндс выводилась, но я точно не уверен, как это делается, потому что со всеми этими паблик/констрактами и прочем создалась путаница в голове и я не совсем понимаю строение кода и как его применять.
Собственно, все вопросы которые у меня возникли находятся именно в этом посте >>1515719

Ответы15806

38 Кб, 445x650
218 7 ноя, 21:40 218 1515806

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

Ответы15816

219 7 ноя, 21:45 219 1515816

>>1515806
Большое спасибо за помощь, можешь дальше не отвечать на поставленные вопросы!

Пиздец, каждый вопрос в треде - за место внятного ответа на простые вопросы говорят 'иди читай то, иди читай сё', или предлагают какую-то невъебенно-сложную залупу или же вообще отвечают не по теме, предлагая какие-то базы и прочую хуйню.
Я уже прочитал несколько статей и посмотрел гайды и мне непонятны очевидные вещи, потому что я НЕ ВИДЕЛ как эти вещи решаются на пример. Поэтому я жду ответа правильно ли я понял, как это делается или же что-то нужно изменить/что-то я не понял/делается как-то иначе > >>1515719

Ответы1584115946

220 7 ноя, 21:47 220 1515820

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

Ответы1583416293

221 7 ноя, 21:56 221 1515834

>>1515820
>Реально, в чём проблема написать 'ты понял правильно, делается так так и так, а в этом случае ты понял не правильно и делать надо как-то иначе'.
Проблема в том, что тут сидят такие же чуваки и им нахуй не впёрлось заниматься твоим образованием.
Ты идиот ваще? Нанимай репетитора и будет он тебе всё расжёвывать, а у нас самообучение в ходу.

Ответы1584216293

222 7 ноя, 21:57 222 1515841

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

https://www.youtube.com/watch?v=ba3M3_Myrqg&t=1s

Ответы1584616452

223 7 ноя, 21:57 223 1515842

>>1515834
Так если они не понимают - нахуя они лезут? Лол.
Я написал - ваше дело ответить по/ не ответить.

Я точно так же тут где могу отвечаю на лёгкие вопросы, где не могу - молчу.

Ответы15850

224 7 ноя, 22:01 224 1515846

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

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

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

Ответы15863

225 7 ноя, 22:07 225 1515850

>>1515842
Тебе правильно намекнули - ты в теории плаваешь. Без теории ты проста очередная макака за клавиатурой.

Если не делал задачи из ОПпоста, то не лезь ваще никуда пока.

226 7 ноя, 22:17 226 1515863

>>1515846
>у меня даже не с ООП проблема, а скорее с базой и построением кода при применение ООП
В твоих сорцах не только с ООП проблема. Ты даже данные неправильно выводишь - через эхо никто не выводит разметку уже лет 15 как. За это по яйцам бьют в хороших коллективах.
У тебя именно базы нет.

Ответы1587616293

227 7 ноя, 22:23 227 1515876

>>1515863
А как выводят?

Ответы15878

228 7 ноя, 22:27 228 1515878

>>1515876
ПХП сделан для того, чтобы безболезненно впиливаться в вёрстку, а у тебя наоборот - вёрстка болезненно всунута в ПХП.
Просто чтобы посмотреть данные, то можно выводить через var_dump. Особенно православно получается, если ещё и xdebug накатить.

Ответы15880

229 7 ноя, 22:29 229 1515880

>>1515878
А. Так если я не хочу вардампить, то в чём проблема эко использовать? Ну ладно.

Ответы15882

230 7 ноя, 22:30 230 1515882

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

Ответы15889

231 7 ноя, 22:41 231 1515889

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

Ответы15914

232 7 ноя, 23:03 232 1515914

>>1515889
Речь не об echo, а о вёрстке в коде.
Перемешивать логику и представление, а потом говорить, что не понимаешь ООП это, как бы, несколько неправда.

233 7 ноя, 23:42 233 1515946

>>1515816
Тебе никто ничего не должен. Учить тебя никто не нанимался. Если что то не получается - ты ОБЯЗАН, как минимум, нормально сформулировать свой вопрос:
"Ребята, помогите. Нужно сделать это вот. Я не понимаю вот тут, пробовал так и сяк, гуглил такое и сякое."
А когда человек заходит и пару постов ноет что у него что то не выходит, при этом считая что ему все должны быстро кинуться и помочь - это свинство.
Не понимаешь ООП? У ОП-а есть хорошая теория и пару задач практических. Понимаешь теорию, но нужна практика? Загугли бля, есть куча практических примеров, реализаций всего и вся. Или ты хочешь чтобы в треде тебе в 1000 раз что то расписывали? Скинули ссылку на видос по MVC - посмотри же его, а не ной что кто то хуевый не ответил на твой вопрос

Ответы15947

234 7 ноя, 23:51 234 1515947

>>1515946
>Тебе никто ничего не должен.
Где я написал, что мне кто-то должен? Это вы тут некоторые делаете вид, что чё-т полезное пишите, на деле же из 5 человек только 1 чё-т дельное скажет.

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

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

Иди короче хуй соси, дебил. Вот о таких анонах-проггерах я ранее и писал. Попробуй ещё раз доебаться до меня, я тебя опущу за каждый пункт как это сейчас сделал.

Ответы15959

235 8 ноя, 00:17 235 1515959

>>1515947
Да мне вообще до пизды. Можешь дальше в глаза долбиться и думать что прав. Я тебе написал как это выглядит со стороны. Опустил он меня, лол. Откуда вы такие лезете отпускатели

Ответы15964

236 8 ноя, 00:30 236 1515964

>>1515959
Если до пизды, почему под себя сренькаешь?

Ответы15965

237 8 ноя, 00:35 237 1515965

>>1515964
Ты же тред засираешь, а не я. Не удивлюсь если ты тот самый шизик-перекатывальщик с JS

Ответы15966

238 8 ноя, 00:37 238 1515966

>>1515965
>засираешь тред

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

))00

Ответы15969

239 8 ноя, 00:42 239 1515969

>>1515966
>>задал простой вопрос
Об чём вопрос-то?

мимо

240 8 ноя, 01:09 240 1515979

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

Ответы1609616293

241 8 ноя, 09:54 241 1516096

>>1515979
Ну давай, поясни мне за active record. Заранее знаешь, что я тебе отвечу. Возможно даже Фаулера процитирую, чтобы совсем наверняка.

Ответы16156

242 8 ноя, 10:58 242 1516125

>>1515478
Ну и какие идеи у тебя по этому поводу?

243 8 ноя, 12:07 243 1516156

>>1516096
Да зачем же сразу актив рекорд? Хотя бы какие-то преобразования на приватными данными делать - уже методы нужны. Тот же жснонабле интерфейс например.

Ответы16168

244 8 ноя, 12:29 244 1516168

>>1516156
Во-первых, ты неправильно понимаешь концепцию приватных полей. На то эти поля и приватные, что они требуются исключительно для работоспособности данного класса и не должны торчать наружу.
Во-вторых, JsonSerializable - это костыль, потому что у объекта может быть много разных представлений в формате json. Самый простой пример - динамический набор полей, какие поля в get-е задал, такие и хочешь получить (есть такая практика в rest api).
Или, к примеру, проверки доступа - такое бывает, что некоторые поля можно возвращать не всегда, например, есть разница, в показе json-представления объекта пользователю (вернув его из апи) или послать этот объект в другой сервис (сервис аналитики, к примеру). Если ты всю эту логику будешь писать в юзере, у тебя получится божественный класс с кучей ответственностей.
Поэтому не путай тёплое с мягким, User - это такой DTO, отвечает за передачу объекта пользователя между компонентами твоей системы, ни для чего более. Для сохранения его в базе тебе нужен будет UserRepository, для представления его в json тебе нужен будет отдельный JsonEncoder или даже UserJsonEncoder (смотри компоненты симфони, которые сериалайзеры, они совсем не зря сделали их именно так или иначе).

Ответы16424

245 8 ноя, 12:40 245 1516178

Аноны, у меня какая то очень странная дичь с моим приложением на slim 3.9.
Вдруг в один момент у меня перестали работать редиректы:
return $response->withRedirect('/', 301);
Не работают и все тут.
Посмотрел раннюю версию - там все работает. Начал сравнивать - вроде все одно и тоже. Начал дикую еблю с обменом файлов, рокировкой каталогов. И выяснил вот что.
Структура index.php таковы, что зависимости находятся в другом файле и подгружаются в index.php.
Типа такое - require_once $_SERVER['DOCUMENT_ROOT'] . "/dependences/dependences.php";
Методом перебора я выяснил что если который в файле зависимости подкинут в файл глючной версии - то все работает. Херня только в том, что код и там и там одинаковый.
Более того, если код из глючного файла поместить прямо в index.php - а сам файл заккоментировать - то все будет работать нормально.
А если создать еще один файл подгрузки зависимости и в него поместить глючный код - то работать редирект не будет. Но если же в этом новом файле удалить глючный код, и записать идентичный код из старой рабочей версии приложения - то работать будет.
Я если честно слегка фрустрирую от этих дел. Мож кто то встречался с таким?

Ответы16179

246 8 ноя, 12:42 246 1516179

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

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

самофикс

179-244 247 8 ноя, 15:00 247 1516291

>>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 у меня будут значение кроме ндс и цены, такие как вес, название и пр.?

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

Ответы16311

248 8 ноя, 15:01 248 1516293

>>1515384

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

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

>>1515979
>>1515863

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

>>1515820

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

>>1515834

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

Ответы1630816431

249 8 ноя, 15:02 249 1516294

>>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>

249 8 ноя, 15:02 249 1516294

>>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>

Показать весь текст

250 8 ноя, 15:25 250 1516308

>>1516293
> Лично мне не нравится, когда вызов метода называют "сообщением", так как никаким сообщением он не является. Соответственно, зачем называть одно другим - непонятно. В моем понимании сообщения ассоциируются с очередями сообщений, многопоточностью и подобными вещами.
Про обмен сообщениями - это в первую очередь был референс в сторону классического определения ООП, каким оно задумывалось изначально, пока не превратилось в карго-культ трёх главных слов.
Ну и да, обмен сообщениями - это всё ещё хорошая абстракция, потому что она превращает какие-то классы и функции в логическую структуру программы, где есть сервисы и они вызывают друг-друга. Сообщением тут является метод + аргументы. По моему опыту, когда человек усваивает эту аналогию, его код тут же становится чище, ему становится легче разделять ответственности и не лепить всё в одно место.

251 8 ноя, 15:30 251 1516311

>>1516291
Спасибо!

13 Кб, 507x183
252 8 ноя, 15:47 252 1516316

Кто-нибудь разбирается в сокетах?

Взял сокетный чат 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

13 Кб, 507x183
252 8 ноя, 15:47 252 1516316

Кто-нибудь разбирается в сокетах?

Взял сокетный чат 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

Показать весь текст

253 8 ноя, 18:33 253 1516424

>>1516168
Нафига ты тогда песню про геттеры-сеттеры завёл,если у тебя все поля публичные?
Алсо, актив рекорд вполне рабочий паттерн, что бы не говорили такие пафосные снобы вроде тебя.

Ответы16462

254 8 ноя, 18:36 254 1516431

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

Ответы16450

614 Кб, 770x2160
255 8 ноя, 18:53 255 1516441

Что думаете о пике?

Ответы17004

256 8 ноя, 19:04 256 1516450

>>1516431
Ващет это он создаёт эти треды и во многом благодаря ему они все ещё держаться. Если это ОП конечно.

Ответы16459

257 8 ноя, 19:12 257 1516452

>>1515841
Это нормально, что я понимаю, что делает человек с видео, но вернувшись к коду через час забываю, как это работает и зачем это вообще нужно?

Ответы16479

258 8 ноя, 19:17 258 1516459

>>1516450
>благодаря ему они все ещё держаться
Другие треды без всяких ОПов держатся. Если ОП что-то делает, то это никак не даёт ему право указывать остальным как себя вести - это уже свинство. Да и не касается его это никак и не должно касаться.
Алсо, не надо из двача доброчан лепить - гарантированно будешь послан.

259 8 ноя, 19:19 259 1516462

>>1516424
Актив рекорд рабочий в простых случаях, когда нужно на коленке mvp сварганить. А в сложных системах смешение отвественностей ни к чему хорошему не приводит. И с этим спорить тоже бесполезно, все тонкости сравнения active record vs data mapper уже по сто раз обсосаны и куча статей на эту тему написана.
Не понимаю, как вас самих не корёжит видеть в одном классе методы из разных предметных областей
А геттеры-сеттеры нужны в сложных случаях, когда у тебя внутри объекта что-то нетривиальное хранится. Например, объект времени, там могут лежать таймстамп, таймзона и микросекунда, всё такое. В простых случаях для DTO сойдут и публичные свойства.

260 8 ноя, 19:55 260 1516479

>>1516452
Да. У всех так (кроме совсем умников, которых очень мало). Понять мало, нужно еще что то сделать самому по мотивам, что бы закрепить. Желательно в этот же день. И желательно, поменьше заглядывать в исходное видео.
Такие вещи объясняет "Learning How to Learn" by Barbara Oakley.

261 8 ноя, 20:21 261 1516494

Скиньте какую-то простую реализацию Active Record. В гугле ничего внятного не нашёл - какой-то говнокод из 13 года разве только. Компоненты фреймворков мне ещё рано ковырять - жидко обосрусь в процессе.
Суть в том, что в общих чертах я понимаю, что в родительскую абстрактную модель пихается круд, с привязкой к свойствам дочернего класса, но как-то с реализацией не получается совсем.

Ответы164991658616851

262 8 ноя, 20:23 262 1516499

>>1516494
Можно свою, у кого есть если.

263 8 ноя, 22:36 263 1516586

>>1516494
Разбей все на небольшие задачи. Начни с простого. Сделай класс с двумя полями - одно строковое для имени таблицы, второе для словаря ['Имя поля' => 'значение']. И одним методом save() по вызову которого значения из словаря будут записываться в таблицу. Потом добавь возможность загружать в этот класс данные из таблицы - сначала просто по айди (если сможешь то можно и сразу по более сложным запросам). Проще всего наверное будет сделать через фабричный метод, хотя обычно наворачивают какие-то конструкторы запросов. Теперь надо добавить возможность отличать новые классы от загруженых из базы (для новых класов при сохранении вызывается инсерт, для старых апдейт). После этого обмазываешся магией __get/__set и скрываешь реализацию (словарь с значениями полей). В общем у тебя есть примитивный AR класс. Дальше уже добавляешь что нужно. Возможно стоит подумать в сторону синглтона - чтобы когда ты создаешь несколько объектов которые соответсвуют одной и той же записи в таблице то чтобы при изменении одного объекта сразу апдейтился второй (без записи в таблицу и обязательно при записи). Это не обязательно синглтоном наворачивать - как минимум есть вариант с наблюдением/ивентами. Также очень полезно будет помечать поля которые были изменены (и сохранять старые значения) - но это уже когда будешь добавлять события жизненного цикла, типа beforeSave, afterSave и т.д.

Ответы1664416647

264 8 ноя, 22:53 264 1516596

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

Ответы16786

265 8 ноя, 23:54 265 1516644

>>1516586
Завтра заморочаюсь тогда.

266 8 ноя, 23:57 266 1516647

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

267 9 ноя, 10:49 267 1516786

>>1516596
Это пиздец, очевидно же. Кроме symfony, laravel и микрофреймворков (если ты шаришь) в мире php лучше ничего не трогать.

Ответы17011

268 9 ноя, 13:39 268 1516838

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

Ответы1684516853

269 9 ноя, 13:46 269 1516845

>>1516838
Ты забыл знак вопроса.
И да, погугли выше и предыдущий тред, эта тема обсуждается здесь раз в неделю точно. Вкратце: php не особенно для этого предназначен, лучше даже не пробуй и используй какие-нибудь прокси для этого.

Ответы16846

270 9 ноя, 13:48 270 1516846

>>1516845
а где то я видел пост,там один сказал против,а другой,да не ссы,там все НАТИВНО))

Ответы1684717013

271 9 ноя, 13:48 271 1516847

>>1516846
короче,тогда придеться либо ноду юзать,либо aiohttp

272 9 ноя, 14:02 272 1516851

>>1516494
https://www.yiiframework.com/doc/api/2.0/yii-db-activerecord
https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveRecord.php
Можно еще конечно посмотреть модель из Eloquent, но она пиздец какая сложная.

Ответы16882

273 9 ноя, 14:05 273 1516853

>>1516838
У меня на проде работает Centrifugo. Отличное и простое решение без всяких пхпшных демонов. Есть хорошая и поддерживаемая либа https://github.com/centrifugal/phpcent для работы с ним.

Ответы16857

274 9 ноя, 14:17 274 1516857

>>1516853
Поддвачну этого просветлённого

275 9 ноя, 14:58 275 1516882

>>1516851
Там не столько в сложности дело, сколько в навороченности - мне суть нужна, а не фичи.

Ответы1688916926

276 9 ноя, 15:09 276 1516889

>>1516882
Ну ты же понимаешь, что "суть" - это класс с набором полей и методами save() и load() - и пишется за 5 минут?

277 9 ноя, 15:55 277 1516926

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

Ответы16976

278 9 ноя, 16:37 278 1516976

>>1516926
Главное всерьёз нигде такое не использовать. yii это кал

Ответы1698216995

279 9 ноя, 16:50 279 1516982

>>1516976
Так да, но обычно за тебя выбирает рынок, на Симфони нужны одни мидлы да сеньоры в крупные компании, а вкатывальщик еще повезет если yii будет ковырять, с высокой вероятностью онлайн магазин запчастей на битриксе будет творить

Ответы17056

280 9 ноя, 17:20 280 1516995

>>1516976
Почему кал? Полгода где-то сижу джуном в конторе, которая свой продукт пилит. Фичи пилить достаточно просто, документация неплохая, в целом работать с ним приятно. Откуда такой хейт?

Ответы17056

281 9 ноя, 17:25 281 1517004

>>1516441
>>Что думаете о пике?

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

мимо Марти Макфлай

282 9 ноя, 17:31 282 1517011

>>1516786
slim подходит под твое условие?
Мне нравится на нем писать и ебаться с библиотеками.
Ща делаю небольшой заказ на нем.

Ответы17056

283 9 ноя, 17:32 283 1517013

>>1516846
>>да не ссы,там все НАТИВНО))
Речь шла про принципиальную поддержку. А так для реального приложения на сокетах node повеселее будет

284 9 ноя, 18:18 284 1517056

>>1516982
На Laravel скорее всего набирают джунов. Он похуже симфони, но зато дико популярен и уж точно лучше yii. Ну и даже на симфони полюбому можно найти что-то, если захотеть.

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

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

Ответы1705817262

285 9 ноя, 18:25 285 1517058

>>1517056
>>В целом норм
Ок, спасибо.

286 9 ноя, 21:37 286 1517241

Сейчас пробую разобраться с паттерном MVC.
Сделал простую гостевую книгу (Ввод имени, отзыва, сохранение и вывод данных из файла).
https://github.com/RamPG/guestbookOOP/tree/master
В плане работоспособности кода не смог разобраться с ошибкой: когда файл пуст, он выбивает Undefined offset, пробовал empty и isset, но безуспешно.
В плане архитектуры вижу только одну корявость - это класс View, я просто разорвал класс и запихал туда HTML документ. Как можно сделать лучше? Создать отдельный файл page . php и вызывать его через include?
Не обращайте внимания, что все в одном файле, с этим чуть позже разберусь.

Ответы1754918023

sage 287 9 ноя, 22:09 287 1517262

>>1517056
>Yii к счастью по-тихому умирает и всё меньше продуктов делается на ней
настолько умирает что скоро yii3 скоро должна полноценно выйти (:

Ответы17387

288 10 ноя, 00:45 288 1517387

>>1517262
Я видел ченджлоги, они не впечатляют. Вместо нормальной архитектуры и компонентов symfony они обновили мажорную версию и перелезли на PSR-овские интерфейсы. Ну так себе. Выглядит словно, что чуваки просто насилуют труп. Очень надеюсь, что его как можно быстрее закопают и оно перестанет отравлять людям жизнь.

Ну и да, для меня вообще неочевидно, что именно из yii нужно спасать? Коряво реализованную систему внедрения зависимостей, наполовину состоящую из статических вызовов? Консольную тулзовину на скриптиках? Магически унылый active record с костыльной событийностью? Уёбищную систему плагинов? Напрочь стандартную MVC архитектуру хотя нет, с хуёвым роутингом? Дешёвую кодо-генерацию, которая генерирует ненужные вещи, которые пишутся за 5 минут? Гайды и рецепты на уровне 2010?
Yii и ему подобное говно умерло в тот момент, когда люди узнали о компонентах симфони, стоит это признать. Сейчас если ты хочешь написать mvc, ты берёшь любой роутер, пишешь код контроллеров, модель и сцепляешь это всё через любой контейнер, с любой ORM. В итоге, ты получаешь то же самое, но более качественное и не обременённое внешними зависимостями, делающее только то, что нужно. Под любую задачу есть симфони-компонент или библиотека, просто делаешь composer require и пишешь нужный тебе код. Yii остался где-то в прошлом, когда каждый писал свой умеющий всё комбайн. Ну и имхо, для тех, кто до сих пор не научился разрабатывать системы сложнее, чем mvp и просто копипастит код из примеров и stack overflow. Джуниоров и вечных джуниоров, одним словом.

Ответы1810718820

289 10 ноя, 10:26 289 1517549

>>1517241
Твои view файлы для каждой страницы должны храниться в разных файлах. Отдельно должен лежать layout, в котором они будут рендериться. Сделал примеры как это можно организовать максимально просто.
https://www.codepile.net/pile/X5JXblNd
https://www.codepile.net/pile/wW8mEXLN

Ответы18079

290 10 ноя, 10:35 290 1517554

f

291 10 ноя, 19:34 291 1518023

>>1517241
View, грубо говоря, это твоя html страничка которую ты пихаешь в content-body твоего сервер-ответа.

Ответы1802618079

292 10 ноя, 19:38 292 1518026

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

293 10 ноя, 20:35 293 1518079

>>1518023
>>1517549
Спасибо за ответы, попытаюсь разобраться.

2,1 Мб, webm,
1280x720, 0:08
sage 294 10 ноя, 21:05 294 1518107

>>1517387
>yii exists
>анон с дващей

295 10 ноя, 22:30 295 1518142

Надумал вкатиться в веб. Начал с изучения HTML, потом думаю разобраться с CSS и начать наконец учить какой-нибудь язык программирования, возможно PHP или Python, пушто хотелось бы идти в направление к back-end'у. Можете что-нибудь посоветовать? А в идеале мне бы товарища, который хочет идти в этом направлении со мной. Вместе будет проще же.

Ответы1816118376

296 10 ноя, 22:52 296 1518161

>>1518142
>Вместе будет проще же.
Не-бу-дет.

Ответы18168

297 10 ноя, 22:55 297 1518168

>>1518161
Поцчему? Аргументируй. И как в таком случае облегчить обучение и не сдуться?

Ответы18181

298 10 ноя, 22:58 298 1518177

У этого треда есть чатик в телеграме?

299 10 ноя, 22:59 299 1518181

>>1518168
>Поцчему?
Чем тебе такой же вкатывальщик поможет? Всё скатится к обоюдным смехуёчкам и мемесам в телеграмме.
Осваивать всё равно каждому по одиночке придётся.

Ответы1818618191

300 10 ноя, 23:04 300 1518186

>>1518181
Ну в идеале они могут друг с другом новой инфой делиться. Закрепляя эту инфу для себя, и подталкивая товарища к чему то новому. Но это, конечно же, в идеале.

Ответы1819118201

301 10 ноя, 23:06 301 1518191

>>1518181
Справедливо, но на второй вопрос ответа не поступило.
>>1518186
На это и рассчитывал.

Ответы1819318199

302 10 ноя, 23:07 302 1518193

>>1518191
>на второй вопрос
>как в таком случае облегчить обучение и не сдуться?
Никак. Оставайтесь в жопе.

Ответы18196

303 10 ноя, 23:09 303 1518196

>>1518193
И тебе не хворать.
Другого от двачей ожидать было наивно.

Ответы18202

304 10 ноя, 23:11 304 1518199

>>1518191
>Справедливо, но на второй вопрос ответа не поступило
Бля, бро. Все зависит от того в какой ты ситуации находишься и кто по жизни. У тебя же своя голова на плечах есть? Есть. Вот она тебе и нужна чтобы самому себе на такие вопросы отвечать "а как мне будет лучше". Мы то откуда знаем

Ответы18209

305 10 ноя, 23:12 305 1518201

>>1518186
>они могут друг с другом новой инфой делиться
То же самое можно делать и на тематических форумах, типа как в этом треде аноны отвечают.

>подталкивая товарища
Это психологическая уловка - дескать вдвоём уж мы-то не сдуемся никак. На самом деле вам обоим будет одинаково влом этим занимать.
Просто очередная попытка переложить ответственность на плечи товарища.

Ответы18210

306 10 ноя, 23:13 306 1518202

>>1518196
Фразу загугли.

Ответы18220

307 10 ноя, 23:16 307 1518209

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

Ответы18212182211843018528

308 10 ноя, 23:17 308 1518210

>>1518201
У меня друг в вузике на it инженера учится, у них с этим все ок. Есть компания ребят которая делает что по кайфу. Разные технологии щупают, пытаются что то делать. Конечно это все на уровне "и там и сям", но им вроде как интересно. Так что если люди реально хотят - то почему бы и нет, это будет точно в плюс.

Ответы18213

309 10 ноя, 23:18 309 1518212

>>1518209
У меня самого только с третьего раза что-то получаться стало.

310 10 ноя, 23:19 310 1518213

>>1518210
Над ними в вузике стоят и теребят, а над вами никого не будет. Ну и они во вкус уже вошли, а тебе ещё только предстоит это всё.

Ответы18221

311 10 ноя, 23:24 311 1518220

>>1518202
До сих пор факт нахождения в жопе не помогал.

312 10 ноя, 23:25 312 1518221

>>1518209
За какое время планируешь вкатиться, что с работой в твоем регионе. Мыслить нужно отсюда начинать. В ОП-посте есть нормальный гайд по вкату, когда сделаешь файло-обменник спокойно можешь искать галеру . Я, учась в вузе почти на 3 курсе, начал с него. Мне понравилось как он написан, ведь в вузе у меня учат полнейшией хуйне (аля ООП с первой ссылки в гугле на листочке). Вот, спустя 3 месяца в своей залупе нашел работу, осталось мелкие детали обсудить. Но я и до вуза уже в минимальное программирование умел. Только от тебя зависит сколько времени уйдет. Но желательно сильно не перенапрягаться ибо можно кукухой поехать.

>>1518213
Нет, они по собственной инициативе этим занимаются. Тот же web им не говорят пилить. Но для себя, пощупать, они не против. Да и технологии разные обсуждают часто - вариться в тусовочке очень даже полезно. Если там не отбитые аутисты сидят, конечно

Ответы1822218223

313 10 ноя, 23:31 313 1518222

>>1518221
>Но для себя, пощупать, они не против.
Так это нормально - я вот тоже щупаю всякое из любопытства. Я ж говорю - они в теме и на волне уже, тут главное не забрасывать и продолжать. Тебе до этого пилить и пилить ещё.

>вариться в тусовочке очень даже полезно
Я как-то ходил в конфочу местных и нихуя хорошего там не увидел. 95% пиздежа по левой теме и только 5% по делу.
Если в правилах конфы нет чётких требований общения, то всё скатится к мемам и смехуёчкам. По опыту уже знаю.
А все те, где указаны эти требования ничем не лучше этого треда\любого тематического форума.

314 10 ноя, 23:31 314 1518223

>>1518221
>В ОП-посте есть нормальный гайд по вкату, когда сделаешь файло-обменник спокойно можешь искать галеру
нипонел. Но спасибо.
>Но желательно сильно не перенапрягаться ибо можно кукухой поехать
Да, у меня с распределением ресурсов не очень ^^"

315 11 ноя, 04:24 315 1518376

>>1518142
tg - @still_make_it_work
Тоже вкатываюсь, так что вот.

316 11 ноя, 09:21 316 1518430

>>1518209
Мертворожденная идея потому что для эой цели
>>поэтому я и надеюсь на какую-то поддержку, потому что сам не могу справиться.

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

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

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

317 11 ноя, 12:08 317 1518490

Антоши, а посоветуйте годный тест на знание пхп, хочется проверить свои знания.

Ответы18528

318 11 ноя, 13:08 318 1518505

Аноны помогите! Нужен шаблон маленького интернет-магазина с динамическим каталогом товаров и чтоб можно было прикрутить саму продажу и прием оплаты а можно и без этого. С меня куча нефти за помощь. Нужно в учебных целях.

Ответы18528

319 11 ноя, 13:54 319 1518528

>>1518209
>По жизни я е6аный лентяй и хикка со стажем
У тебя просто нет мотивации и тебе норм. Я так последние полгода тоже ебловал типа некуда спешить, иногда настроение было такое что не вставал целый день с кровати, месяц назад последние бабки кончились что уже жрать не мог купить ну и за неделю вкатился на работку, мозг все загоны и внутренние проблемы просто офнул и начал действоватб.

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

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

Ответы18540

320 11 ноя, 14:04 320 1518540

>>1518528
>вордпресс
>говно говна
Как-то пробовал его. Темки васянские хорошо накатывать и удобно, но вот разработка на нём - пробитое днище. Архитектура отсутствует и вместо неё одни костыли. Весь вордпресс это один большой костыль над простецкой системой для блога. Уже тогда стало понятно, что такие вещи изучать не стоит - костыли индивидуальны для каждого проекта и в другом они не пригодятся.
А ведь там ещё и плагины накатывают, которые друг от друга зависят. Ояебу какой кошмар.
Как эта адская хуетень ещё не подохла я удивляюсь.

Ответы18567

321 11 ноя, 14:31 321 1518567

>>1518540
> Как эта адская хуетень ещё не подохла я удивляюсь.
Есть целый класс говнокодеров, которые только на нём и работают. Своя экосистем получается. Одни хотят заплатить поменьше и получить побольше, а другие хотят говнокодить за гроши и не париться.

Ответы18608

322 11 ноя, 15:36 322 1518608

>>1518567
Это еще и во всем мире, в Пиндосии и Германии каких-нибудь на пхп девелоперов и энтвиклеров как раз часто требуют вордпресс/друпал, прямо как у нас любят написать в требованиях жс жквери вьюжс вордпресс джумла модх пхп ларавел йии симфони опыт 5-10 лет 35к

Ответы186121861318631

323 11 ноя, 15:39 323 1518612

>>1518608
>друпал
Этот вроде на симфони сделан.

324 11 ноя, 15:42 324 1518613

>>1518608
Эй, ты забыл !C-Bitrix. Не быть тебе эйчаром.

Ответы18614

325 11 ноя, 15:48 325 1518614

>>1518613
Да, вот ты правильно написал, херка напишет латиницей, еще лучше "Bitrix Framework, уверенное знание Bitrix API".
Вот кстати одна из типичных пиндосских индусовакансий с вполне такой зп даже
https://job-openings.monster.com/magento-developer-php-milwaukee-wi-us-tekpartners-solutions-llc/213582793

Ответы18617

326 11 ноя, 15:53 326 1518617

>>1518614
>Bitrix Framework
Вот это своими глазами как-то видел.

Ответы18621

327 11 ноя, 15:55 327 1518621

>>1518617
Да я видел УВЕРЕННОЕ ЗНАНИЕ JSON

Ответы18625

328 11 ноя, 15:59 328 1518625

>>1518621
Пфф, уверенное знание SOAP.

329 11 ноя, 16:06 329 1518631

>>1518608
Друпал тащемта сделан хотя бы наиболее качественно, да и на симфони компоненты переехал. Хотя вся ирония в том, что именно его хорошее качество и прочая архитектура ему и мешает, cms-говношлёпы ссутся использовать что-то сложнее скриптиков в стиле php4, а хорошие разработчики в любом случае не хотят на cms что-то делать.

Ответы1863618674

330 11 ноя, 16:17 330 1518636

>>1518631
А на пыхе бывают полноценные пхп 7 проекты, шоб со стрикт тайпс и функциональщиной?

Ответы18651

331 11 ноя, 16:25 331 1518645

Сап дващь. Делал кто-то на прод счетчик просмотров страницы? Я вот думаю как реализовать лучше и пока что есть несколько вариантов но не знаю какой лучше.
Для защиты от накрутки думал идентифицировать запрос по фингерпринту и не давать чаще чем в 5 минут например обновлять счетчик.
Сам счетчик можно много как реализовать, начиная от колонки в таблице view_counter и заканчивая отдельной таблой PageViews со всей инфой и считать из неё. Была еще упоротая мысль кроном каждые 30 мин из гугл аналитики выгружать просмотры по страницам и обновлять в бд данные.

Ответы18701

332 11 ноя, 16:35 332 1518651

>>1518636
>полноценные пхп 7 проекты
Что ты имеешь ввиду?

Ответы18693

333 11 ноя, 16:58 333 1518674

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

Ответы18693

334 11 ноя, 17:14 334 1518693

>>1518651
Да, не раз видел и участвовал.

>>1518674
В этом и смысл cms'ок, что ты поставил, накликал что-то и оно работает - и не надо платить разработчикам, архитекторам и так далее. Для малого и среднего безнеса - то, что нужно.

Ответы18748

335 11 ноя, 17:20 335 1518701

>>1518645
А для какой цели?
Можешь логи нгинкса парсить демоном на фоне.
Можешь свой счетчик в sql поставить, но если приложение окажется нагруженным, то ето узким местом может оказаться из-за локов при записи.
Можно в очередь кидать записи и оттуда уже разгребать демоном.

336 11 ноя, 17:59 336 1518733

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

Ответы18745

337 11 ноя, 18:13 337 1518745

>>1518733
Сам браузер решает какой именно нажат (группировка по атрибуту name) и в запросе устанавливает соответстdующие name=value

Ответы18747

338 11 ноя, 18:17 338 1518747

>>1518745
Как? name же одинаковые у группы, а потом в name присвоится value нажатой? Это бред.

Ответы1875218760

339 11 ноя, 18:17 339 1518748

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

>Для малого и среднего безнеса
Максимум для лендосов салона "Валентина". Что-то серьёзное и со структурой ты на cms не поднимешь, а порой в этом вся соль.

Ответы18758

340 11 ноя, 18:22 340 1518752

>>1518747
Несколько радиобаттонов с одинаковым именем образуют группу
<input type="radio" name="a" value="1">
<input type="radio" name="a" value="1">
<input type="radio" name="a" value="1">

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

Ответы1875518760

341 11 ноя, 18:23 341 1518755

>>1518752
Понял, спасибо, только value 1 2 3

342 11 ноя, 18:27 342 1518758

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

343 11 ноя, 18:27 343 1518760

>>1518747
>>1518752
value в примере не поменял
Ну то есть ты в php просто получаешь $_GET['a'] и тебе выводится тот, который чекнул пользовватель.

Ответы18763

344 11 ноя, 18:30 344 1518763

>>1518760
А у меня форма с методом POST
$_POST['a']

345 11 ноя, 19:43 345 1518820

>>1517387
Пиздец манямир, из разряда пэхэпэ мертвый язык, скоро всех програмистов заменят нейросети !!!!!!!!!!!!!!1

346 11 ноя, 19:53 346 1518832

Подскажите что за хуйня: Есть переменная $conn в файле connection.php в ней хранится подключение к бд. Есть два стула файла: index.php - в нем вся мишура, и main.php - там у меня функции. Так вот, эта переменная видится в index.php, но не видится в main.php. Чому так? Причем оба подключаю методом include, и все они находятся в одной папке.

Ответы18872

347 11 ноя, 20:11 347 1518858

Сап аноны, у меня вопрос. Знач на винде пользовался homestead, но шинда изрядно надоела, да и для моего некропк запускать виртуалку на вин 10, это гиблое дело. Поэтому вопрос, есть ли какие то альтернативы для линукс?Не очень бы хотелось поднимать виртуалку, может есть какие то альтернативы?

Ответы18878

348 11 ноя, 20:20 348 1518872

>>1518832
Нада код смотреть - так ничего не понятно.

Ответы18947

349 11 ноя, 20:25 349 1518878

>>1518858
>Laravel Homestead
>Included Software Ubuntu 18.04

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

350 11 ноя, 21:37 350 1518947

>>1518872
Да я уже разобрался, пхп не видит инклюд в функции пиздос как удобно

Ответы1895119683

351 11 ноя, 21:46 351 1518951

>>1518947
>пхп не видит инклюд в функции
О - область видимости. Надо знать.

hex 352 12 ноя, 02:37 352 1519073

15 Кб, 505x6314 Кб, 593x1848 Кб, 671x13819 Кб, 755x60

Бля ребят я уже просто заебался, не могу ввести в бд текущую дату! Мне надо именно в datetime(не timestamp) а он тупо нули записывает, как я только не пытался. Проштудировал кучу сайтов\статей. Поменял все, и тег в input , и форматы, и прогонял через функции превращения в стринг и тп. Не знаю что делать, надо тупо ввести эту дату в бд!

Ответы19075190861913919264

hex 353 12 ноя, 02:41 353 1519075

>>1519073
Ебать походу сделал..

убрал mysqli_real_escape_string

hex 354 12 ноя, 02:42 354 1519077

А до этого id на name поменя(да был косяк) но когда исправил, все равно не работало. Еще mysqli_real_escape_string снял. Тогда сработало. Пиздец

355 12 ноя, 03:11 355 1519086

>>1519073
>Мне надо именно в datetime(не timestamp)
А что так? Таймштамп потом в датетайм перегнать - как 2 пальца, насколько я помню.

Ответы19088

356 12 ноя, 03:17 356 1519088

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

357 12 ноя, 09:02 357 1519139

>>1519073
Напишу снова: всё что может делать сама СУБД, пусть делает сама БД, например высчитывает timestapm через NOW().

sage 358 12 ноя, 12:52 358 1519264

>>1519073
Кстати совет. Юзай сокращённый открывающий тэг только для краткого эко. <?= "Привет"?> В остальных случаях всегда <?php
Стандарты все дела

Ответы19271

359 12 ноя, 13:02 359 1519271

>>1519264
OK, спасибо

360 12 ноя, 14:23 360 1519305

>>1511146 (OP)
Ребят, пролистал/pr как я понял вы тут самые добрые (аниме), поэтому обращусь с вопросом к вам - я работаю юристом, но мне это надоело, постоянный негатив от клиентов, все они проблемные, душные и я думаю вкатится в програмириование/кодинг. С перспективами потом перебраться в Москву, начать зарабатывать в идеале 100к примерно.

Какой язык учить, с чего начать?

Ответы193171931819320

361 12 ноя, 14:50 361 1519317

>>1519305
>Какой язык учить, с чего начать?
Смотря к чему у тебя душа лежит. Если пофиг и просто ищешь место поспокойнее и потеплее, то учи JS, на фронтендеров нынче спрос большой.

Ответы19442

362 12 ноя, 14:51 362 1519318

>>1519305
php норм, но готовься, что для нахождения любой нормальной работы нужно въебать кучу времени и сил в обучение. Минимум 2-3 года только для того, чтобы перестроилось мышление и можно было хоть как-то называться разработчиком, а не кодомакакой.
И это не снобизм, просто область реально огромная и нужно, знать, понимать, как устроены и уметь использовать туеву хучу инструментов, протоколов, приёмов и всё такое. Ну и зависит от того, что считать разработчиком, cms-формошлёпы же тоже что-то там делают.

Ответы193191944219558

363 12 ноя, 14:51 363 1519319

>>1519318
> область реально огромная
Не php в смысле, а "разработка по".

364 12 ноя, 14:52 364 1519320

>>1519305
Хм. Ну для начала стоит отметить, что программирование делится на кучу сфер, от науки, то секьюрити.
Из самых популярных: Web, мобильная разработка( деление на андроид\айос) , десктоп (опять же apple\windows). Игры опять же разные платформы.. консоли.
Для начала выбери направление. В ом же вебе есть разные стаки.. например php/js/html (бэк) + frameworks. Или Js/ Css/ html + frm(фронт). Или Python/js... (бэк)
А когда выберешь. Можно выбрать язык..
Если просто хочешь денег то выбери самое востребованное - web or mobile.. А там тоже есть свои самые полпулярные языки+фреймы

Ответы19442

365 12 ноя, 18:02 365 1519442

>>1519317
>>1519318
>>1519320
Спасибо большое, часть из этого не понятно, в плане того что выбрать, но web звучит как то проще и понятнее.

Ответы19469

366 12 ноя, 18:36 366 1519469

>>1519442
> web звучит как то проще и понятнее.
В целом , так оно и есть. Но щас опять же наплодили кучу технологий.. поэтому учить надо пару языков и сверху пару фреймворков. К примеру, стажор бэкендер должен знать на базовом уровне: Php/Js/Html/ ООП ,MVC, Larqvel/Yii.

367 12 ноя, 20:26 367 1519558

>>1519318
Я бы врачем стал, но я уже старый и ойти. Работал в больнице, в стационаре каждый второй на лехухе или бнв катает. Им люди сами за профессионализм несут.
И статус - если ты хороший уролог/гинеколог ты в друзьях у топ своего мухосранска будешь находиться всегда.
Конечно нужно не всратым терапевтом калымить, а идти на оперирующие специальности. Но там и ответственность, мама не горюй. И почет, и пиздец уважение. Представь как горд врач, когда с того света вытаскивает кого то?

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

Ответы1957919584

368 12 ноя, 20:36 368 1519579

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

369 12 ноя, 20:41 369 1519584

>>1519558
Но вообще тебе с таким подходом нехуй в ИТ делать.

Ответы19589

370 12 ноя, 20:46 370 1519589

>>1519584
Двачую. Заебали рефлексирующие нормисы.

Ответы19597

371 12 ноя, 20:55 371 1519597

>>1519589
Толсто.

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

TAXI-кун !!wFUNz5.GRA 372 12 ноя, 22:24 372 1519676

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

<?php

for($x = 1, $b = 1; $x < 10, $b < 10; $x++, $b++) {
$sum = ($x $b);
echo "$x$b = $sum\n";
}

Ответы1967921484

373 12 ноя, 22:28 373 1519678

>>1511146 (OP)
кек

374 12 ноя, 22:33 374 1519679

>>1519676
>$sum
Почему переменная называется $sum, а на самом деле это продукт умножения?

Ответы19681

TAXI-кун !!wFUNz5.GRA 375 12 ноя, 22:36 375 1519681

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

376 12 ноя, 22:37 376 1519683

>>1518947
> пхп не видит инклюд в функции пиздос как удобно
Используй require и require_once и будет тебе счастье.

Ответы19738

377 12 ноя, 23:08 377 1519695

Ребят, а кто-нибудь знает как сделать запрос с помошью js и php в бд, с помошью ajax?
Т.е вот кнопкочка с статьекй, жмешь - а статья удаляется из бд без перезагрузки стр.
Можно ссылочку или что гуглить надо?
Буду очень благодарен

Ответы196991971719738

378 12 ноя, 23:16 378 1519699

>>1519695
Отправляешь запрос на сервер с помощью ajax -> сервер удаляет нужную статью -> данные на странице обновляются. Или что тебя интересует?

Ответы1971119809

379 12 ноя, 23:33 379 1519711

>>1519699
Да но как это делать, реализация этого интересует, как писать такие запросы. Задействован ли php? Или мой код может напрямую менять инфу в моей базе данных на сервере? Тогда разве это безопасно? Так каждый сможет отправить запросы ,не?

Ответы19719

380 12 ноя, 23:37 380 1519717

>>1519695
Если остановится на rest то ты мог бы
1. Сделать get запрос с номером статьи и получить обновленный список статей в теле ответа и c помощью js обновить html (так делают только самые нубы)
2 Сделать тоже самое delete запросом (rfc ничего не сказано о теле ответа на delete запрос. Но это считается отклонением от стандартного поведения)
3 Сделать такой же delete запрос но получить пустой ответ. Сделать нововый get ajax запрос для того чтобы получить
обновленный список статей
4 После delete запроса с пустым ответом просто js ом удалить статью из html

Ответы19728

381 12 ноя, 23:39 381 1519719

>>1519711
Я не совсем опытный, но что тут не безопасного? Отправляется post/delete запрос на сервер, на сервере с помощью php этот запрос обрабатывается и выполняется нужное действие. Подозреваю что для удаления статьи нужно обладать какими то правами, вот это и проверяется с помощью сервера. Так же из минимальной защиты пользователя можешь почитать про crsf токен.

Ответы1972619728

382 12 ноя, 23:42 382 1519726

>>1519719
В браузере у пользователя можно статью с нужным id просто в JS-е убрать, либо как написали выше на запрос серверу вернуть обновленый список статей, но мне этот вариант как то не очень нравится

383 12 ноя, 23:43 383 1519728

>>1519719
>>1519717

> post/delete запрос на сервер, на сервере с помощью php
Т.е в этом пост запросе указывается например к примеру файл x.php в котором код удаления статьия. А сам post/delete запрос просто его запускает?
а как гуглить такое? Просто у меня домашка на завтра я все сделал кроме такого запроса.

Ответы1974019743

384 12 ноя, 23:48 384 1519738

>>1519683
Вангую, что он инклюдил в какой-то функции, поэтому переменные у него попадали в локальную видимость и не были видны снаружи этой функции.

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

>статья удаляется из бд без перезагрузки стр
В двух словах: js посылает данные с удаляемой статьёй на определённый эндпоинт API сервера, который в контроллере уже работает с базой данных.
Потом этот же js удаляет ноду со статьёй из DOM-дерева документа. Получается без перезагрузки.

Ответы19765

385 12 ноя, 23:49 385 1519740

>>1519728
https://www.itsolutionstuff.com/post/jquery-ajax-crud-operations-in-phpexample.html

386 12 ноя, 23:50 386 1519743

>>1519728
Нет, сначала гуглишь и читаешь про MVC, потом про HTTP запросы.
>а как гуглить такое? Просто у меня домашка на завтра я все сделал кроме такого запроса.
Ну мы же не знаем как ты свое приложение скостылил, какие свойства есть у твоей статьи, какой ключ. Самое банальное делать ссылку по типу ursite.com/threads/{id}/delete
И по id в БД просто удалять

Ответы19765

387 12 ноя, 23:53 387 1519754

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

388 13 ноя, 00:05 388 1519765

>>1519743
>>1519738
Сайт без MVC
И мне надо без jquery
просто отправить "DELETE FROM `bd1` where id =1" а потом Dom обновить (это я смогу)

389 13 ноя, 01:46 389 1519809

>>1519699
>Отправляешь запрос на сервер с помощью ajax -> сервер удаляет нужную статью -> данные на странице обновляются
А как сервер поймет, что это не хаккерский скрипт? Прежде чем выполнить

Ответы19812

390 13 ноя, 01:52 390 1519812

>>1519809
Так же как и при обычном не ajax запросе, при помощи номера сессии, который посылается в виде кукиса даже при ajax запросов.

Правда это нужно еще программировать на php.

Ответы1981419817

391 13 ноя, 01:54 391 1519814

>>1519812
Я надеюсь, что меня поняли?

Ответы19817

392 13 ноя, 02:00 392 1519817

>>1519812
>>1519814
Да спасибо. А можно кусочек с маленьким кодом 1 запросика плиз.Я гуглю но нигде не нахожу рабочий кусок.

Ответы19820198381983921483

393 13 ноя, 02:03 393 1519820

>>1519817
Завтра напишу. Сейчас уже спать сильно охота.

Ответы19821

394 13 ноя, 02:06 394 1519821

>>1519820
Спасибооу друщиже

395 13 ноя, 02:39 395 1519838

>>1519817
https://learn.javascript.ru/ajax-xmlhttprequest

396 13 ноя, 02:40 396 1519839

>>1519817
https://learn.javascript.ru/ajax-xmlhttprequest

397 13 ноя, 11:07 397 1519936

Аноны, сейчас в учебных целях повторяю одну здоровенную форму одного крупного сайта.
В ней куча элементов которые появляются и скрываются в зависимости от выбранного поля в селект. Я когда JS изучал подобное делал.
В форме на том сайте для такого юзается jQuery вовсю.
Сейчас везде и всюду говорится что jQuery не торт и его юзать нельзя.
Но допустим закажут мне что то подобное - как реализовывать такую форму? Не на рекат\вью это писать?

Или вообще нативно херачить?

Ответы19937199411995321479

398 13 ноя, 11:07 398 1519937

>>1519936
Или таки jQuery, как и раньше?

399 13 ноя, 11:24 399 1519941

>>1519936
Сайт древний, скорее всего. Легаси - все дела. Если заказчику нет дела до технологий - бери фреймворк, тебе же легче будет (если умеешь в него). Если заказчику нужно что-то допилить - используй то, что уже есть.

400 13 ноя, 11:56 400 1519953

>>1519936
>jQuery не торт и его юзать нельзя
Так ты спрашивай - почему нельзя его юзать?
Очень часто такое слышно от хайповых js-петухов, которые кроме своего фреймворка ничего не знают.

Ответы1995419974

401 13 ноя, 11:58 401 1519954

>>1519953
>>jQuery
Ему хрен знает сколько лет уже и до сих пор на CDN торчит.
Значит актуально.

402 13 ноя, 12:28 402 1519974

>>1519953
Уже тысячу раз вам блять объясняли, что сам по себе он норм для того, чтобы повесить пару обработчиков, сделать анимашку или отправить запрос, но когда появляется что-то посложнее типа динамической формы с валидациями, какой-никакой роутинг или ещё чего (что ВНЕЗАПНО делает просто сраный скриптик на фронте отдельным маленьким приложением, работающим в клиентском браузере), то лапша на jquery стремительно превращается в неподдерживаемый кусок говна, без архитектуры, расширяемости, зато с кучей дырявой магии.

Ответы200162004921479

403 13 ноя, 13:51 403 1520016

>>1519974
>какой-никакой роутинг
На фронтенде?

Ответы20049

404 13 ноя, 14:06 404 1520023

У меня не выходит разобраться с правами на каталоги для 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:", что бы это ни значило.

Ответы200312006121482

405 13 ноя, 14:12 405 1520031

>>1520023
>что бы это ни значило.
Вернее, что он написал, я понимаю, но что это за команды - нет. find какой-то - это же просто команда поиска, что она может сделать?

Ответы21483

61 Кб, 550x890
406 13 ноя, 14:25 406 1520043

Как реверснуть оператор сравнения с null - "??"

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

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

То есть, иногда надо что-то сделать с переменной, но только если она не null. А если null, так пусть просто будет null.

Ответы201322014421481

407 13 ноя, 14:29 407 1520049

>>1520016
Здрасте. Добро пожаловать в мир react и прочих.

>>1519974
Да, мне именно это требуется. Из фронта я умею нативный JS и react уровня to-do-list. Жиквери никогда не юзал.
Достаточно подходит для моей цели.

Ответы20096201202012320125

408 13 ноя, 14:40 408 1520061

>>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 409 13 ноя, 15:03 409 1520088

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

Ответы21482

410 13 ноя, 15:11 410 1520096

>>1520049
> Жиквери никогда не юзал.
Да это же стейтлесс-либа.
Там 10 методов, которые требуются для 99% задач и все они тривиальные и понимаются интуитивно, типа "ты ей передаёшь dom-элемент (или путь до него) и коллбек, она вызывает коллбек при определённом событии".
Короче, поиграешься полчаса и можешь считать себя знатоком и обновлять резюме, лол.

Ответы21481

411 13 ноя, 15:55 411 1520120

>>1520049
>react
Так я и думал.

92 Кб, 480x360
412 13 ноя, 15:57 412 1520123

>>1520049
Как ты роутинг на бутстрапе делать собрался?

Ответы2012520156

92 Кб, 480x360
413 13 ноя, 15:58 413 1520125

>>1520049>>1520123
>бутстрапе
жКуэри вернее.

414 13 ноя, 16:07 414 1520132

>>1520043
может так?

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

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

только вкатываюсь

Ответы21908

415 13 ноя, 16:22 415 1520144

>>1520043
Равно: ==
Очень прям пиздец равно аж по типу: ===
Не равно: !==
https://www.php.net/manual/ru/language.operators.comparison.php

416 13 ноя, 16:31 416 1520156

>>1520123
Ето ти норкоман. Я про роутинг и не спрашивал

Ответы20254

417 13 ноя, 17:54 417 1520254

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

Ответы203452038420637

418 13 ноя, 18:42 418 1520345

>>1520254
> но когда появляется что-то посложнее типа динамической формы с валидациями, какой-никакой роутинг
Это писал я, другие посты - кто-то ещё.
Про роутинг я сказал потому что потом окажется, что форма должна вести себя по-разному на разных страницах, быть универсально-гибко-настраиваемой и всё такое. Там туева хуча вариантов и роутинг - только один из примеров того, что делает jquery-поделки неудобными для развития.

Ответы20431

419 13 ноя, 19:50 419 1520384

>>1520254
Хуясе предъявы, мое увожение, лол

Ответы20433

420 13 ноя, 20:51 420 1520431

>>1520345
>форма должна вести себя по-разному на разных страницах
А если без фантазий?

>роутинг - только один из примеров того
Роутинг форм, ты имеешь ввиду?

Ответы20633

421 13 ноя, 20:52 421 1520433

>>1520384
Просто не надо лезть в чужую ветку со своим реактом - не о том речь.

422 13 ноя, 21:53 422 1520476

в чем разница между симфони и ларавелом?

Ответы20489

423 13 ноя, 22:00 423 1520477

По мере изучения всяких либ во время написания сайтов всё меньше приходится писать на ПХП и всё больше ебаться с вёрсткой и фронтом.
У всех так?

Ответы204782049120495

424 13 ноя, 22:02 424 1520478

>>1520477
потому что бэк в массе однообразен и отточен.а фронт,это то что человек видит-дизайн и логика.тут фантазии больше.ну перчинка-жс ублюдский ЯП

Ответы20480

425 13 ноя, 22:15 425 1520480

>>1520478
Но я хотел на ПХП писать, а не жс.
Помню как свой парсер первый писал весь вечер - стена кода, сток под 200-250. А счас - накатил модную либу, скормил ей xpath, привёл в нужный формат другой либой, и всё - жрать подано. Дай бох 50 строк будет всё это дело.

426 13 ноя, 22:36 426 1520489

>>1520476
И ларавел и симфони являются фреймворками.
Однако архитектура симфони построена так, что большая его часть ето независимые компоненты, которые не пересекаются с другими компонентами. Из-за этого компоненты симфони стали использоваться в других фреймворках, в том числе в ларавеле.
В ларавеле куда меньше надо собирать руками, то есть из коробки что-то запустить, чтобы оно работало на ларавеле будет быстрее. В основном потому, что за тебя уже все решили. Например, взгляни на документацию роутинга в симфони и ларавеле:
https://symfony.com/doc/current/routing.html
https://laravel.com/docs/6.x/routing

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

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

Я думаю анон меня поправит и дополнит чуть что.

Ответы20560

427 13 ноя, 22:41 427 1520491

>>1520477
Если делать сайты-визитки и онлайн-магазины да. Надо идти в продуктовые компании, там куда лучше с этим.
Очень много интересных задач было, нагрузки, масштабируемость, написание каких-то допинструментов. Как только уровень джуна пройдешь беги от сайтошлепов в продуктовое что-то, ну или куда-то, где проекты по 4-6 месяцев идут.

428 13 ноя, 22:47 428 1520495

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

429 13 ноя, 23:29 429 1520521

Вопрос к ОПу. Какой потолок развития у php разраба? У меня есть планы переката в Европку - для этого пыха подойдет?

Ответы21481

430 14 ноя, 00:56 430 1520560

>>1520489
Я бы дополнил что на ларавел не то чтобы сильно проще, а просто намного быстрее что-то написать чем на симфони, т.к. существует много шорткатов в виде глобальных функций и тебе не нужно долго думать о структуре классов и т.д. потому что в любой момент можно вызвать request() и оп, у тебя объект запроса например. А еще он всё таки немного подвязан на свой же орм Eloquent, это и хорошо и плохо, и если в теории можно свапнуть на доктрину или что-то еще, то на практике разные ларавел фичи начинают не работать потому что свойства приватные, или у этой фичи внутри проверка на инстанс или еще что, и приходится опять писать тот самый бойлерплейт. Например ларавель джоб класс, который через трейт умеет трансформировать модель в айдишник перед сериализацией чтобы память не охуела от активрекорда, а когда эта джоба выходит из очереди то по айдишнику заново гидрирует в свойство эту модель через рефлексию. Думаю что такой трейт можно легко и для доктрины написать, но сам факт.
Я бы советовал всё таки сразу на симфони + доктрина писать, мне кажется что там больше классического ооп, бойлерплейта, конфигов и вот этого всего, после такого на ту же ларку перекатиться будет в разы легче чем наоборот, когда ты не понимаешь зачем тут вводить тип если можно просто строкой что-то передать и т.д.

431 14 ноя, 01:09 431 1520562

Реально ли решить задачку с айфоном новичку?
Как дальше заставить прогу вычесть столько, сколько нужно, что бы в минус не уйти.

Ответы2056621480

432 14 ноя, 01:31 432 1520566

>>1520562
>Реально ли решить задачку с айфоном новичку?
Она для новичка и есть.

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

Ответы21481

433 14 ноя, 02:23 433 1520576

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

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

Ну так вот можно ли решить эту проблему только средствами пхп, без использования кронджоб?

Ответы20590205952071221480

sage 434 14 ноя, 03:20 434 1520590

>>1520576
active job

435 14 ноя, 04:07 435 1520595

>>1520576
нет. только очереди

436 14 ноя, 08:02 436 1520633

>>1520431
>>Роутинг форм, ты имеешь ввиду?
Я думаю он имеет ввиду роутинг SPA фронтред приложения, реализованного к примеру на react.
Если ты никогда не писал на react - то попробуй.

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

Ответы2064220845

437 14 ноя, 08:07 437 1520637

>>1520254
Похоже ты просто не перерос еще классическое MVC на бэкенде со статикой отдающейся клиенту.
Внезапно MVC и тыщи его вариантов отлично живут на фроте. По необходимости получая от сервера только json с данными без какой либо разметки вообще.

438 14 ноя, 08:15 438 1520642

>>1520633
>один и тот же компонент может себя по разному вести на разных страницах
Зачем? Это хуевый пример, когда пишутся сложные компоненты на все случаи жизни. SPA - это когда на одной станице рендерятся разные компонеты, в зависимости от условий. Например в зависимости от урл, когда для разных урл бекендом отдается одна страница. Это кстати наиболее правильное использование SPA, чем когда для урл используется хеш и зачастую не работают кнопки назад/вперед

Ответы20658

439 14 ноя, 09:47 439 1520658

>>1520642
Чувак, наш с тобой диалог - абсолютно бесцельное "просто попиздеть". Словил такое густое ощущение.

440 14 ноя, 10:58 440 1520697

Ребятухи, начал изучать ооп и возник такой вот вопрос. Это нормальная практика что если удалить в классе question все public поля, то программа будет работать как ни в чем не бывало? И почему так вообще происходит ведь раз нет поля в классе, то кажется заполнить эти поля никак нельзя при создании объектов. И раз все и так работает зачем что то объявлять в классе questoins? только для наглядности чтоб ничего не забыть?
https://3v4l.org/dWVtb
[

Ответы2071121480

441 14 ноя, 11:09 441 1520711

>>1520697
>И почему так вообще происходит ведь раз нет поля в классе, то кажется заполнить эти поля никак нельзя при создании объектов
Поля могут задаваться динамически через магический метод __set()

442 14 ноя, 11:10 442 1520712

>>1520576
Да, гугли session_write_close

Ответы20718

443 14 ноя, 11:15 443 1520718

>>1520712
Пардон, не проснулся, хуйню спизданул, fastcgi_finish_request нужен

444 14 ноя, 12:02 444 1520797

Поясните за симфони. Давно разрабатываю на пыхе, но чаще всего встречаюсь с ларавелом, отдельно используемыми компонентами симфони и всякими сраными легаси на чём угодно (вот такой я неудачник).
Хочу разобраться в том, как правильно готовить симфони, какая там внутри архитектура, какие бест-практики, как правильно юзать доктрину и всё такое.
Чего можно почитать, какие хорошо сделанные примеры приложений посмотреть и всё такое?
Пока нагуглил бест практики на сайте самого симфони и пример оттуда же, но может есть ещё чего дельного.
Ну и чего вообще нужно поизучать в этом котексте (из разряда, если бы я знал, чего спросить - спросил бы)?

Ответы2136621475

445 14 ноя, 12:31 445 1520845

>>1520633
>роутинг SPA фронтред приложения
Речь о jQuery. Ты нормалный вообще - на нём SPA делать?
Был вопрос о нём - вы в ответ бред нести стали. Один с реактом успокоиться не может, второй с роутингом форм носится.
Зачем пхпшнику сдалось ваше SPA в норме, если ему интерфейс накидать? Именно поэтому ваше мнение никому не интерсно - вы даже в суть вопроса неспособны вникнуть.

Ответы2085220865

446 14 ноя, 12:41 446 1520852

>>1520845
ко-ко-кой ты зодиристый, ужс.

Похоже все друг друга не правильно поняли, забей.

447 14 ноя, 12:54 447 1520865

>>1520845
Ты почему-то отказывешься воспринимать тот самый первый пост, что тебе анон написал, чем только выставляешь себя долбоёбом.
Тебе сразу сказали, что нет проблемы взять jquery чтобы навешать пару триггеров. Но в любом сложном случае типа роутинга, зависимости элементов одного от другого сразу лучше брать vue или react.

Ответы2086920872

448 14 ноя, 12:59 448 1520869

>>1520865
Тебя головой в детстве не роняли? Ты третий раз уже пишешь про роутинг на жс, в пхп треде.

449 14 ноя, 13:00 449 1520872

>>1520865
Контекст использования jQuery способен понять исходя из темы треда?

450 14 ноя, 14:15 450 1520939

Сап аноны. Как лучше реализовать теги? Вот есть у меня в бд запись типа: ид, наименование, хуй, пизда, список тегов. Также есть отдельная таблица с этими тега вида: ид, название тега. Можно ли связать столбец из первой таблицы со второй, и чтобы первый столбец был списком со ссылками на второй? Или лучше не ебаться а сделать все обычным текстом, и делать запрос sql "...LIKE %tagname%"? Знаю что вопрос больше по sql, но вы же тут няши.

Ответы2097821477

451 14 ноя, 14:35 451 1520978

>>1520939
Гугли "многие ко многим sql"

Ответы21013

452 14 ноя, 14:53 452 1521013

>>1520978
many to many может? А то он найдет говносайты на русском.

Ответы21016

453 14 ноя, 14:56 453 1521016

>>1521013
Я специально перевел. А то он потом такой: "А на русском есть че почитать?" А я такой: "Иди учи ингришь, Маня". И понеслась на 20 постов. Ну как обычно в /pr/ происходит.

454 14 ноя, 15:07 454 1521022

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

Ответы21027211022129821475

455 14 ноя, 15:14 455 1521027

>>1521022
Наследие perl

Ответы21031

456 14 ноя, 15:24 456 1521031

>>1521027
Ууу... перл сдохла((

Ответы21060

457 14 ноя, 15:59 457 1521060

>>1521031
Да какая разница? Эти доллары абсолютно не мешают (даже на самом деле чуть удобнее читать код, глазу есть, за что зацепиться).

Ответы210642107621092

458 14 ноя, 16:05 458 1521064

>>1521060
>глазу есть, за что зацепиться
Есть немного.

459 14 ноя, 16:27 459 1521076

>>1521060
В глазах рябит.

460 14 ноя, 16:58 460 1521092

>>1521060
хоть где-то в пхп есть доллары
(мимоjavaцарь)

Ответы21103

461 14 ноя, 17:19 461 1521102

>>1521022
Зато объявлять переменные не нужно. Лично меня больше огорчают стрелочки в объекте.

Ответы2110521475

462 14 ноя, 17:19 462 1521103

>>1521092
Лол, проиграл

463 14 ноя, 17:21 463 1521105

>>1521102
Только поначалу непривычно, а потом вполне норм даже.
Да и не суть.

NoLaifer 464 14 ноя, 17:24 464 1521108

Можно ли сохранить пробелы в получившимся массиве при использовании explode?
$word = explode('/(?=\s)/u', $word); просто не работает
$word = explode(" ", $word); убивает пробелы

Ответы2111021477

NoLaifer 465 14 ноя, 17:27 465 1521110

>>1521108
решил проблему таким способом

$words = implode(" ",$word);

NoLaifer 466 14 ноя, 18:52 466 1521178

>>1511146 (OP)
Yoda Speak
https://3v4l.org/debbd

Ответы21477

467 14 ноя, 19:36 467 1521218

https://bxapi.ru/src/?module_id=sale&name=CSaleOrder::GetList

Ёбушки-воробушки.....

Ответы212832129021477

468 14 ноя, 20:52 468 1521283

>>1521218
нихуясе

8,5 Мб, mp4,
1280x720, 3:46
469 14 ноя, 21:01 469 1521290

>>1521218

470 14 ноя, 21:19 470 1521298

>>1521022
>А зачем в пыхе сделали $ перед переменными?

Что-бы можно было писать переменные переменные и переменные функции:

$var = 'hallo';
$var_name = 'var';
echo $$var_name; //напечатает 'hello';

function bar() {
echo ' world';
}
$func_name = 'bar';
$func_name(); //напечатает ' world';

Ответы21300

471 14 ноя, 21:45 471 1521300

>>1521298
те $$ это что-то типа кастрированного евала?

Ответы2132121475

472 14 ноя, 22:09 472 1521321

>>1521300
Я думаю, что $$ - реализованы совсем по-другому чем eval. Впрочем это не важно, как они реализованы, главное что они работают и иногда бывают очень полезны.

Ответы21323

473 14 ноя, 22:13 473 1521323

>>1521321
Ни одного нормального использования придумать не могу и не видел, за всё время работы.
Лучший код - это явный код, когда точно понятно, что вызывается, когда, какого типа и так далее. Уверен, что со всеми трендами к типизации пыхи, $$ рано или поздно задепрекейтят.

Ответы2135521410

474 14 ноя, 23:10 474 1521355

>>1521323
Насчёт переменных ты прав, но не на счёт функций. Запуск функций через $func_name() просто позарез необходимо в php и даже используется в стандартной библиотеке:
Вот пример передачи названия колбэк функции в качестве аргумента:
set_error_handler("handleError");

Ответы21410

475 14 ноя, 23:39 475 1521366

>>1520797
Двачую вопрос

476 15 ноя, 01:46 476 1521409

477 15 ноя, 02:37 477 1521410

>>1521323
>Ни одного нормального использования придумать не могу и не видел
Тоже хотел написать. Но передумал.

>>1521355
>Вот пример передачи названия колбэк функции в качестве аргумента:
>set_error_handler("handleError");
Анонимные функции, не?

360-477 478 15 ноя, 10:40 478 1521475

>>1521022

У тебя просто маленький кругозор. $ используется в bash и ее предках, в perl. В глобальных переменных в Ruby. В конце строковых переменных в BASIC.

Думаю, сделано это, чтобы упростить парсинг (разбор) кода, чтобы сразу было видно, где переменные.

>>1521102

Стрелочки используются в Си/Си++ для обращения к полям и методам через указатель на объект, а не через сам объект.

>>1521300

Нет. Это "переменная переменная", то есть обращение к переменной, чье имя хранится в другой переменной. Осложняет понимание кода и не рекомендуется к использованию. Аналогично, есть "переменные свойства" и "переменные методы", хотя я предпочитаю для них использовать более читабельный call_user_func.

>>1520797

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

479 15 ноя, 10:41 479 1521477

>>1521218

Вот примерно такое может получиться у тех, кто не любит фреймворки, и любит писать все сам на "чистом" PHP. Правда, в случае с Битриксом там это вынужденно из-за авторских прав.

>>1521178

> $word = explode(' ', $word);

Не стоит использовать одну переменную для хранения и массива, и строки. Лучше назвать их по-разному ($words и $phrase).

> $words = " ";
> $words .= $word;
Чтобы не мучаться с лишними пробелами, проще предложения с обрезанными trim() пробелами класть в массив, а в конце склеивать массив через implode. У тебя же в коде выводятся лишние пробелы в начале текста и тебе приходится кривым костылем добавлять пробелы после точек.

>>1521108

Первое не работает, так как explode не поддерживает регулярки. Надо использовать preg_split.

>>1520939

Отношение многие-ко-многим через таблицу связи.

Также, тебе в помощь урок про нормальные формы БД: https://github.com/codedokode/pasta/blob/master/db/normalization.md

480 15 ноя, 10:42 480 1521479

>>1519936

Задача выглядит достаточно простой для jQuery. Делаем список вида "при каком значении какие поля показывать". Более того, можно обойтись почти без JS, вешать на форму класс в зависимости от выбранного значения, а на скрываемые поля повесить атрибут, при каком значении класса их показывать:

<form class="type-x">
...
<div class="field" data-show-for="x y z"> .. </div>

> Сейчас везде и всюду говорится что jQuery не торт и его юзать нельзя.

Если не интересует поддержка старых браузеров, и лаконичность кода, то же самое можно сделать на vanilla js. Зачем тащить монстрообразный реакт, webpack, babel, JSX для этой задачи и связанные с ними головные боли, непонятно.

>>1519974

Динамические формы с валидациями нормально делаются на jQuery или vanilla js при грамотной архитектуре, и реакт не спасет их при неправильном проектировании. Будет такая же лапша. Наоборот, он потребует лишних затрат времени, сильно усложнит работу из-за внезапно всплывающих проблем, потребует ставить вебпак и грузить полмегабайта кода, итд. Например, работа с асинхронными аякс-запросами не самая веселая вещь и потребует добавлять всякие промежуточные состояния "идет загрузка" и "ошибка загрузки". Впрочем, это и на jQuery невесело.

Типичный пример подвоха: вы делаете автокомплит и по мере набора букв шлете запросы на сервер. Но ответы на запросы приходят в обратном порядке. Покажете ли вы неактуальный результат или вы знаете и предусмотрели эту ситуацию? Отмените ли лишние запросы? Обрабатываете ли корректно ошибки ответа на запрос? Показываете ли индикатор активности?

И реакт (поправьте, если ошибаюсь) сам по себе эти проблемы не исключит. Все, что он делает - привязку (data-binding) отображаемых данных к данным "модели", которая там представлена огромным анонимным объектом.

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

481 15 ноя, 10:42 481 1521480

>>1520576

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

Лучше все же это делать в очереди задач.

>>1520697

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

Можно запретить это магическим методом __set.

> И раз все и так работает зачем что то объявлять в классе questoins?

Чтобы при чтении кода было видно, какие есть поля. Также, чтобы можно было добавлять к ним комментарии. А в новом PHP - указывать еще и тип значения поля.

Решение верное.

>>1520562

Надо перед тем, как платить и вычитать что-то, сравнить остаток долга и сколько ты готов заплатить. И взять меньшее из 2 чисел. Если долг = 7000, а у нас с собой только 5000, то платим 5000. Если долг = 2000, а у нас 5000 то платим 2000.

482 15 ноя, 10:43 482 1521481

>>1520566

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

>>1520521

Увы, никогда не интересовался этой темой. Но, естественно, если изучать только PHP и ничем больше не интересоваться, то упрешься в потолок. Крутые специалисты, даже если работают на PHP, обычно обладают кругозором (например: Си, линуксы). Можешь поискать на Хабре статьи про переезд, а также попробовать погуглить вакансии и посмотреть требования.

>>1520043

Используй if, либо тернарный оператор и не усложняй код.

>>1520096

Там есть поддержка старых браузеров.

Ответы21917

483 15 ноя, 10:44 483 1521482

>>1520088

Можно пользоваться любой информацией, если это поможет.

>>1520023

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

Если ты глобально установил тот же Апач + mod_php или nginx + php-fpm, то в линуксе они обычно работают от имени пользователя www-data. И этому пользователю нужно иметь доступ к файлам хотя бы на чтение. А в те папки, куда будет писать Ларавель, еще и на запись.

Владельцем лучше назначить себя.

Там правда, будет проблема, что Ларавель будет создавать временные файлы от имени www-data, и лишить тебя к ним доступа.

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

Ответы21501

484 15 ноя, 10:46 484 1521483

>>1520031

>Вернее, что он написал, я понимаю, но что это за команды - нет. find какой-то - это же просто команда поиска, что она может сделать?

Она находит файлы и может выполнить определенную команду для каждого найденного. Вот сайт, который пытается объяснить разные опции в команде: https://explainshell.com/explain?cmd=find+/var/www/html+-type+f+-exec+chmod+644+{}+\; (исполнительные идиоты в моем провайдере зачем-то его блокируют).

Также, ты можешь набрать в консоли или в гугле man find и почитать справку по команде.

Также, может тебе поможет гайд по основам CLI https://github.com/codedokode/pasta/blob/master/soft/cli.md

> Всё равно не работает. Если положить в корень test.php, то он нормально отрабатывает, а Ларавел нет.

Проверь командой stat или ls -l, какие права стоят у файлов Laravel, в том числе index.php или что там используется вместо него. Проверь лог веб-сервера, к какому файлу доступа нет.

>>1519817

Вот тебе в помощь важные моменты, о которых надо помнить при использовании AJAX-запросов: https://github.com/codedokode/pasta/blob/master/js/ajax.md

И правильно пишут, нужна защита от уязвимости CSRF.

485 15 ноя, 10:47 485 1521484

>>1519676

Тут не требуется две переменные $x и $b, если они всегда равны, хватило бы одной. Просто писать $sum = $x＊$x;

> $x < 10, $b < 10

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

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

for (действия до начала цикла; условие продолжения; действия после каждого шага) { ... }
for (тут можно запятую; тут не имеет смысла ; тут можно запятую) { ... }

486 15 ноя, 11:17 486 1521501

>>1521482
>Ты бы ссылку приложил на инструкцию
Уже по нескольким делал. Вот последняя: https://www.digitalocean.com/community/tutorials/apache-ubuntu-18-04-ru
А тут написал, что именно делал и что получил https://2ch.hk/s/res/2685013.html#2686503 (М)

Впервые настраиваю веб сервер вообще и апач в частности. Очень... непривычно.

487 15 ноя, 11:44 487 1521529

Всем привет, создал группу для вкатывающихся в пхп, я сам сейчас на этапе создания списка студентов, более опытные антоны тоже приветствуются.
https://t точка me/anonaprphp

Ответы21570

488 15 ноя, 12:20 488 1521570

>>1521529
Этих групп как говна за баней.

489 15 ноя, 12:23 489 1521571

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

490 15 ноя, 18:39 490 1521908

>>1520132
Надо в одну строку

491 15 ноя, 18:42 491 1521917

>>1521481
>и не усложняй код.
Ясно, вы нихуя не понели.
Кучи скобочек - вот что усложняет код.
Сделать что-то с переменной, если она не null - это настолько частая операция, что для нее очень не помешает однострочная языковая конструкция.

Ответы21980

492 15 ноя, 19:41 492 1521980

>>1521917
>Кучи скобочек - вот что усложняет код.
С каких это пор группировка усложняет код?

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

493 15 ноя, 20:06 493 1522009

Есть ли у кого то пример кода задачи про компанию "Вектор"?
Не могу допереть что от чего наследовать: отдел от сотрудника, или сотрудника от отдела.

Ответы22112

494 15 ноя, 21:47 494 1522112

>>1522009
А у них что-то общее есть, чтобы наследоваться?

Ответы22159

495 15 ноя, 23:06 495 1522159

>>1522112
Вроде бы нет. Я просто вижу очевидную связь между тем, что бы наследовать Профессии от Сотрудника. Но как должны взаимодействовать класс Сотрудник и Департамент?

Ответы2220322311

496 16 ноя, 00:20 496 1522203

>>1522159
Ты совершаешь классическую ошибку новичка, пытающегося в ООП - пытаешься применить его там, где оно не нужно.
По сути, забиваешь гвозди микроскопом.
Так вот, наследование - это инструмент, который предназначен для - сюрприз - наследования (расширения) свойств и поведения одного объекта другим. И реально применяется в довольно узком наборе случаев, кроме шуток. Например, когда у тебя есть класс "модель", которая работает с базой данных и в этом случае все "модели" типа юзера, отдела и так далее также являются моделями.

В твоём случае, отдел является сотрудником (или наоборот)? А сотрудник является профессией (или наоборот)? Если нет, то тебе вообще не стоит наследовать их.

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

Ответы2227722311

497 16 ноя, 01:22 497 1522277

>>1522203
Спасибо. Вроде бы понял. Завтра попробую

sage 498 16 ноя, 01:44 498 1522311

>>1522159
У тебя какая то каша получается.
Немного расширю то, что писал >>1522203
У тебя есть класс сотрудник. Далее у тебя есть класс сторож, класс продавец и класс директор. Они являются сотрудниками. Т.е наследуют из базового класса какие то общие свойства и методы. Например у них у всех есть рабочий график, оклад, стаж, дата приема на работу и какой нибудь метод расчета коэффициента зп который высчитывается на основании стажа и времени работы в предприятии.
А вот что ты собрался наследовать сотруднику от отдела - для меня до сих пор загадка.

Ответы2231222329

499 16 ноя, 01:45 499 1522312

Упс сажа приклеилась
>>1522311

500 16 ноя, 02:28 500 1522329

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

Ответы2233922419

501 16 ноя, 03:28 501 1522336

Двач, помоги, пожалуйста
Я хочу подружить ckeditor с ларкой. Он генерирует выход в html тегах. Только выход через {{}} всё успешно экранирует и я вижу <b>хуй</b> текст. Если убрать проверку, то мне могут поднасрать, сохранив напрямую через post, например. Если вырезать все эти script, onclick и так далее, то можно так же с веселым гиканьем испортить текст юзверу. Как мне усесться сразу на два стула?

Ответы2234122342

502 16 ноя, 03:33 502 1522339

>>1522329
двачую
композиция > наследования, школьники забывают вечно

Ответы2235722419

503 16 ноя, 03:38 503 1522341

>>1522336
никак. найди какой-то редактор, который в bbcode или markdown будет текст размечать, и из него уже комментарии рендери

Ответы22346

504 16 ноя, 03:40 504 1522342

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

505 16 ноя, 03:49 505 1522346

>>1522341
>никак
Ох. А как тогда справляются другие? Редактор популярный вроде

Я тут пока надумал оставить поддержку только всяких br и h2, куда точно не навесить скрипты, а все остальное спецсимволами замещать

Ответы223492235322354

506 16 ноя, 03:51 506 1522349

>>1522346
>куда точно не навесить скрипты
Отбой, я почему-то думал, что оно не поддерживает onclick

Мде

507 16 ноя, 03:57 507 1522353

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

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

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

Ответы22354

508 16 ноя, 04:06 508 1522354

>>1522353
>>1522346
Ну, это не только мобильных приложений касается. Для магазинов, например, те же выгрузки товаров создавать если для маркетплейсов.
Мой опыт показывает, что если менеджерам/маркетологам дать возможность где-то большой красный текст въебать, они его обязательно въебут. А если не давать, то они обязательно попробуют. А ты потом ахуевать будешь, глядя в базу, сколько говна они наворотили.
Поетому если есть возможность, лучше сразу донести до бизнеса, что такие редакторы веселых табличек потом могут кучу проблем сделать и это какбы много часов работы.

509 16 ноя, 04:37 509 1522357

>>1522339
На самом деле там ид должности не надо - это доменный объект и там уже должно само имя должности содержаться.
Я сам тот ещё нуб.

sage 510 16 ноя, 09:39 510 1522419

>>1522329
>>1522339
Meh. Это простой пример в вакууме придуманный за 2 минуты.

511 16 ноя, 14:25 511 1522599

>>1511146 (OP)
Оцените исходный код
https://github.com/vlr-hub/pricing-tools-backend

512 16 ноя, 16:08 512 1522669

кто пишет на зенд?

Ответы22716

513 16 ноя, 17:11 513 1522716

>>1522669
бекендеры заднеприводные?

Ответы22736

514 16 ноя, 17:29 514 1522736

>>1522716
в чем рофл?

Тред утонул или удален.
Это копия, сохраненная 16 ноября 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion