Уже Весна за окном, а мы по-прежнему изучаем PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.В нашем треде отвечают почти на все вопросы, только бампайте вопрос каждые 5 дней.Этот тред и для начинающих. Слово "классы" у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.Предыдущий тред был тут: >>1599201 (OP) . Все старые треды есть в архиве: https://phpclub.techФорматируй свой код, если хочешь, чтобы его читали.Правила: ведем себя воспитанно, помогаем новичкам, читаем учебники, решаем задачки, постим ссылки на решения, задаём вопросы, в треде немало анонимных экспертов разного уровня, так что вряд ли вопрос останется без ответа.С чего начатьУ нас есть свои уроки по основам 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.mdhttps://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, Composer, MVC, Фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу.- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись- Можно подробнее про поиск работы, собеседования - нет, поищи тред перезвонивших, а также раздел /wrk/- Сколько времени надо изучать все это? - всё зависит от тебя, но не меньше 6-8 месяцев- Нужен ли ООП, Фреймворки, MVC, Git, Composer? - Да, однозначно. Посмотри любую вакансию.
>>1630065 (OP)Может кто-нибудь поделиться несложным проектом с выделенным rest/graph бэком на пыхе?Без темплейт говна типа MVC/Vue MVVM, просто бек
> Использовать SELECT таким образом удобно, когда нужно просмотреть всю таблицу, например, после того, как в нее была загружена первая порция данных. Как часто случается, в выведенных на экран данных сразу можно увидеть ошибку в таблице: Bowser, оказывается, успел умереть еще до того, как родился!Прям как я...
Анонсы, я правильно понял, что классы в php - это по сути набор из разных функций? Которые можно вызывать как методы у класса?В JS например всю эту поеботу с класами по сути может заменить обычный объектака ассоциативный массив, который вместо обычных хначенйи может хранить и функции? То есть в JS обычный объект так же можно превратить в набор функций и использовать его как классы в php? Только вот наверно объект не может наследовать другие объекты, хотя их можно объединяться, что по сути тоже можно назвать наследованием, только с заменойЯ в правильную сторону тону?
>>1630104>я правильно понял, что классы в php - это по сути набор из разных функцийЭто еще и собственный стейт (состояние).>поеботу с класами по сути может заменить обычный объектПо нормальному это называется "объект анонимного типа". Поебота, как ты говоришь, на самом деле не девается никуда.>В JS например всю эту поеботу с класами по сути может заменить обычный объектВ жсе впринципе почти все есть, что дает аналогичный функционал с классами, что и в пхп (притом я ес6+ не учитываю даже).>Наверно объект не может наследовать другие объектыВ жсе есть наследование. Посмотри по прототипам и по inherit или типа того.>Я в правильную сторону тонуДумаю нет.
>>1630118Так в JS можно класс заменить обычным объектом?Не понял про состояние, так класс - это просто набор функций? То есть это всё тот же процендурный метод, просто в оболочке с общим родителем и дочерними функциями которые называют методами этого класса ака обёртки для обычных функций, а столько кукареканий было в сторону функционального подхода
Расскажите, какие плюсы есть в Битриксе? Как я понимаю, главный плюс - это то что с 1С хорошо интегрируется?
>>1630139класс это не набор функций а одна функцияя тебе в джаваскрипт треде привёл пример аналога классовой нотации через функцию, где создаётся инстанс со стейтом
>>1630139>Так в JS можно класс заменить обычным объектом?Объект это экземпляр класса, в случае анонимного объекта - экземпляр анонимного класса. С одной стороны это разные вещи, если у тебя вообще нет общесинтаксической конструкции, похожей на класс. С другой это вещи связанные. У каждого объекта, даже анонимного, есть хоть какой-то класс в предках в том же жс.>Не понял про состояниеУ каждого объекта есть собственное состояние. Еще есть состояние уровня класса (то что обычно помечается как static).>То есть это всё тот же процендурный метод, просто в оболочке с общим родителем и дочерними функциями которые называют методами этого класса ака обёртки для обычных функцийДумаю тебя на эту мысль натолкнуло то, как создавались новые типы (классы) в жсе до ес6 как раз (функция конструктор и поехали).В случае жс классы это и правда синтаксический сахар над тем, что ты описал.
>>1630151Анонимный экземпляр - это типа var obj = {"a": "1"}? Объект который создаётся без new ClassName?Синтаксическйи сахар - это типа закос под стандарты других языков? Чтобы тебе кто начинал с других языков могли использовать привычный синтксис, который на самом деле просто копия других способов?я бы почитал, но чувствую что сейчас запутаюсь ещё сильнее, если нарвусь на статью васяна
>>1630158>var obj = {"a": "1"}Как вариант. У этого объект нет конкретного типа, он как бы сам по себе, но он при этом остается объектом с вытекающими. Значит он что? Правильно. Объект анонимного типа. Тип как бы есть, но у него беда с именем.>Синтаксическйи сахар - это типа закос под стандарты других языков?Не только. Это в целом упрощение кода. Общеязыковые конструкции типа class или допустим async не просто так существуют и растаскиваются по всем языкам. С ними просто удобнее.Так то даже тернарку можно назвать сахаром, хотя она управщает всего-лишь условие. Хотя почему можно, сахар это и есть.Ну можно глянуть дальше например на какой-нибудь null coalescing. Он тоже просто избавляяет тебя от избыточного кода.Вот это и есть сахар.В контексте жс классы ес6+ являются сахаром над тем, что было до этого, потому что в сути своей ничего не поменялось. В других языках это вполне вероятно даже недостижимо без специального синтаксиса. Ну и да, сама конструкция class и прочее сопутствующее плюс минус общеязыковая.
>>1630170Спасибо анон, продвинул меня ещё дальше в этом запутанном делеКстати, а из какого языка спиздили тернарный оператор?
Анонсы, есть какой-то костыль или фреймворк помогающий писать код короче? Типа библиотеки JQ на JS, где собраные всякие ништяки и готовые функции заменяющие кучи строк кода, делающие код читабельнее и красивее
>>1630146один из. ну и хорошо интегрировать битрикс24. еще на самом деле там очень удобные и ахуенные инструменты для SEO продвижения самого сайта. а в основном да, сорта говна лютыеаноны, кто нибудь пользовался постманом для отправки запросов на сторонние апи? нихуя не получается
>>1630225Любой MVC фреймворк даст охеренный буст производительности кодера, т.к. там по сути готовое веб приложение, только бизнес логику добавить.
>>1630296>бизнес логикуЧто за дегенеративное название, что это значит в двух словах?По мне так MVC это деградация, куча папок и файлов с аутистскими названиями и стопицот тысяч подключений их друг в друге
>>1630315>По мне так MVC это деградация, куча папок и файлов с аутистскими названиями и стопицот тысяч подключений их друг в другеГораздо лучше идти по пути "чистого кода", верно?Один файл на всё и сотни функций. А лучше просто лапшу написать.
>>1630315>бизнес логику>Что за дегенеративное название, что это значит в двух словах?Гуглить не пробовал? Общеизвестный термин
Аноны, хотелось вам сказать спасибо что за любой вопрос не переходите на оскорбления, как это принято в других темах, молоца.
>>1630336Я всё больше перестаю доверять гуглению, весь поиск стал засран купленными на биржах текста статейниками, а объяснять программирование пытаются дегенера самоучки, которые сами ничего не зная пытаются учить других, по этому лучше спроситть у анона в 2 словах, чтобы не переваривать всё это дерьмо и лишнюю информацию часами ради ответа в 2 слова
>>1630333По твоему MVC удобно, красиво и адекватно разделяет все эти сотни функций по назначанию? Сколько не начинал смотреть видео по MVC на ютубе, каждый раз начинаются рвотные рефлексы, или же не один ютубер не в состоянии нормально объяснять MVC, потому что сам понимает его только на 10%>>1630341Это понятно, но я и не собирался писать портал, мне больше для модулей и фитч для сайтов, по этому и хочу какой-то хз что это фреймворк или библиотеку, где самые топовые функции уже собраны в кучу, как это сделано в JQ для JS
>>1630395Да, другому в своё время не научили, а учить сейчас чтобы начать читать оригинальные источники, уйдёт не 1 год
>>1630411Процессы в фирме, которые происходят независимо то того, что у тебя в коде написано.Заходишь в интернет магазин, заказываешь дилдак, тебе подтверждают заказ, оплачиваешь, отправляют.Это же ты мог бы сделать без интернета - по телефону. Это и есть бизнес логика.
>>1630451Или русичи неправильно перевели, или это название реально не подходит, адекватного человека просто путает
>>1630451функции, классы, переменные, методы, рекурсии, циклы, массивы, операторы и тут на тебе, высрался бизнес
>>1630463Думал, для кого мы код пишем? Для бизнеса. Описываем бизнес процессы с помощью кода и таким образом автоматизируем
>>1630468Интересно что думают "прогеры", которые пишут код для анального контроля за всеми жителями своей страны, они понимают что они роют могилу сами для себя, хоронят себя же и своих же родтсвенников и будущих детей за тысячу гривен кода сейчас
>>1630538> Прям как тело предыдущего ОПаЧто случилось?>>1630533> Эх, без котов шапка какая-то бездушнаяДвачаю
Анонсы, что получается, структурировать всё по mvc это разделить всё на отдельные функции и классы каждый в своей папке и файле для более простого их поиска и редактирования, но по сути они получается всегда так же все подключены и работает всё так же в плане скорости как если бы мы весь код из этих файлов писали в 1 файле? Ведь по сути всё это дело всё так же подключается в 1 коренной файл и в общем представляет собой 1 большой код просто подгружающийся из разных файлов, так?
Аноны, киньте парочку простейших фреймворков и готовых сайтов написанных на mvc, чтобы понятнее на примере разобраться как это всё работает, смотреть на Ютубе как чел постоянно меняет папки, файлы в редакторе и ошибается переделывает ну это нихуя не помогает не терять суть происходящего и понять суть работы mvcИ как вообще лучше смотреть такие видео, делаю это с телевизора лёжа и придя в диван, сдаётся мне это очень ненадёжный вариант
>>1630639В ларакастах есть серия видео, где джефри с нуля пишет простенький mvc фреймворк с пояснениями
>>1630639Смотреть надо сидя за пекой, а не лежа на диване. Это тебе не развлекательный контент - тут думать надо и код писать следом
>>1630579Тут больше суть в разделении логики на слои: представление, контроллеры, модели. Разделение файлов по папкам лишь следствие подобной архитектуры>1 большой код просто подгружающийся из разных файлов, так?Да, если посмотреть с высока. Это разделение нужно в первую очередь человеку. Машине можно и байт код скормить
>>1630646А это разделение никак же не влияет на скорость работы? Просто один огромный код делится на куски, но всё так же работает в 1 момент? Наверно даже на подгрузку файлов уходит время и работает это на доли секунд медленнее
>>1630644>ларакастах>джефриМне кажется если человек умел бы в инглиш, он бы тут не сидел и не задавал такие вопросы, нужен русскоязычный контент> Это тебе не развлекательный контентВот и мне так показалось, хотя может зависит от учителя
>>1630655Влияние этого разделения на производительность ничтожно мало. В беке наиболее узкое место это io (http, sql) - их и оптимизируют в первую очередь. До самой пыхи редко доходят.
>>1630658>нужен русскоязычный контентНет такого. Во время своего вката долго искал, так и не нашел.Быстрее выучишь инглиш (либо с переводчиком сидеть), чем появятся годные материалы по обучению пыхе на русском.> > Это тебе не развлекательный контент>Вот и мне так показалось, хотя может зависит от учителяМаксимум, что может сделать учитель - грамотно подать материал. Заинтересовывать вас он не будет. Сами должны себя мотивировать на изучение.
>>1630681Блять как же у меня сгорела жопа вот с этого пидораса https://www.youtube.com/playlist?list=PLVfMKQXDAhGWCBTca7m-snWrZZkjX2jGBЭто просто ад нахуй как он объясняет, а что русня? А они блять лайки ему ставят и говорят что он лучший учитель что они видели, хуйло которое мычит и не может объяснить свои действия, жопа сгорела так что зарегистрировался и проставил вручную дизы на все 40 уроков по php, ебучая мразь, вот после таких учителей человек уже и не может понять язык и начинает путаться и бояться его
>>1630680По сути получается все эти файлы можно собрать в 1 и всё будет работать ровно так же? Ведь это и происходит постоянно, объединение кусков кода в 1 сразу из всех папок и файлов?
Аноны, я научился в более менее фреймворки, в логику приложения и все такое. Но я хуевый программист.Сейчас парсингом морочусь, юзаю либу для парсинга html. Но все равно , ножно рекурсивно побегать по дереву html, и я понимаю что я хлебушек.Есть какой то задачник по подобного рода задачам с ответами желательно, что бы просто решать всякие задачи на циклы, рекурсию и прочую дребедень.Знаю кодеварс, но там если затупил - ебись конем. Пока не решил задачу - нихуя подсказок нет.
>>1630788Ладно, ладно, все, пойду смотреть Дмитрия Петрова - лучший переводчик Руси с английского и на английский, работал переводчиком с Горбачевым, Ельциным с самим тем, кого нельзя называть.
>>1630788Ты вот такой умный, а как смотреть ютуб на другиз языках - если ты их не знаешь? Учить новый зяык это та ещё ебля и займёт не 1 год, а научиться в похапе хочется уже сейчас.
>>1630858А это плохо, программист без английского - это писос, сложность в разы возрастает, это дефицит нормальной информации, живешь в вакууме, гроб, гроб, кладбище, пидор.
>>1630683> жопа сгорела так что зарегистрировалсяЯ думал только у меня аккаунта нет... Но может быть теперь я один.
>>1630579Тебя зря волнует скорость того, как работает 1 файл на 200к строк или 2000 файлов по 100 строк условно. Люди делают так, как удобно им. Вся пляска вокруг качества кода для того, чтобы избегать энтропии так долго, как только можешь. Компу реально похуй, че ты ему отдашь, он сожрет все. А вот человеку - не похуй. Стараясь сделать код гибче мы выигрываем в скорости внесения изменений, дополнений, да даже баг фиксов, вообще всего, что с разработкой связано.Относительно блогеров на русском так то есть очевидный вариант, который нужно посмотреть - Елисеев. Если ты и дальше не будешь понимать в чем прикол - ну значит у тебя еще мышление не готово для этого.
>>1630868>Если ты и дальше не будешь понимать в чем прикол - ну значит у тебя еще мышление не готово для этогоЯ бы сказал мне больше не нравится то какой подход для этго выбрали, просто уродский код с какими-то пространсвами имён, уродские обратные слеши которые у нормального человека вызывают шок из-за обратного написания, кучей классов которые начинают наследовать друг-друга из-за этого, кучи контроллеров/подконтроллеров, экшенов/хуекшенов и ещё кучи всего, неудели мозга всех программистов не хватило на более приятный и адекватный вариант скрещения всего этого говна>>1630860После коронавируса перейдут все на русский, осталось подождать
>>1630893> После коронавируса перейдут все на русский, осталось подождатьТак у нас тоже вирус есть. Только в РФ всем на него плевать, что позволит ему распространиться чуть лучше и убить 2% заболевших, или сколько там. Надеюсь он мутирует и повысит КПД
>>1630858Есть субтитры. Читать на инглише проще, чем слушать.Не можешь на ходу читать и переводить, останавливаешь видео и забиваешь в гуглпереводчик
>>1630868Поддвачну Елисеева. Довольно подробно расписывает все свои действия, перед этим дает теоретическую базу того, что будем делать и изучать. Единственный минус - очень долгие видео. Смотреть нужно с ускорением + паралельно код писать.
>>1630893Без наследования, пространств имен, кучи файлов и папок весь код лежил бы в одном файле в перемешанной куче (10к+ строк), разобраться в которой не сможет даже аллах.Ты не поймешь, где у тебя шаблон, где бизнес логика, где общение в базой, где общение с внешними апи.Примерно такой код в исходниках битрикса, за что его и чмырят.
>>1630858Нахуя ютуб нужен? Ты совсем хлебец?ютуб нужен онли для того что бы обьяснили нубу что такое mvc, зачем нужен роутер и контроллеры. И все это для того что бы у начинающего был костяк, на который он сможет навешивать свой код.Дальше - статьи, документация, чужой код.
>>1630917Да он ебантяй. Уже второй тред сред, как испоганили разработку своими классами и папками и мвц. Как было лампово писать скриптики на 100 строк.И всё надеется найти что-то в ру сегменте ютуба...
>>1630893>>Я бы сказал мне больше не нравится то какой подход для этго выбралиТы просто нихуя больше чем хелловорд не писал.До меня недавно снизошло откровение и я понял зачем нужны "практически" абстрактные классы к примеру. И ты до этого дойдешь, с опытом.
>>1630922>>Да он ебантяйДумаю что его оппоненты такие же. Потому что как то тупо обсуждать такую ернуду. Не нравится ООП - вперед к функциональщине. Там понравится.
>>1630914Нормальные такие грабли и подводный камень значит битрикс навернул, но всё равно уверен могли бы придумать лучше, чем то что сейчас>>1630917Как минимум лень, да и читать сейчас - это засорять мозг, хотя увидев вот это https://github.com/codedokode/pasta от прошлого опа, я был удивлён и мне даже стало интересно начать читать, наверно не стоит вас мучить вопросами пока не дочитаю всё до конца
>>1630922>как испоганили разработку своими классами и папками и мвц. Как было лампово писать скриптики на 100 строкИдеально описал то что нужно, не смог бы сказать лучше
>>1630930Что лучше то?До этого было структурное программирование (отказ от goto).На его основе процедурное.На основе процедурного строятся (и частично переплетаются друг с другом) функциональное и ооп.Больше ничего не придумали вряд ли придумают в ближайшее время
>>1630908Да там ещё хуже, раз красной точки нет. Власти скрывают, либо всем ещё больше похуй на болезнь.
>>1630935Прогрес ушел далеко. твои 100 строк уже никому не нужны.Нужен круд с админкой и фоновыми задачами, а еще чтобы интегрировался с несколькими внешними апи. Ну и апи для мобильного приложения и веба.
Пока в треде есть живые, подскажите простой фреймворк для изучения MVC подхода, нашёл вот это https://github.com/php-youtube/php-framework но мне кажется это говнокод который поведёт меня не туда
мимо шел. Господа вкатывальщики, а вам не стремно тратить минуты свеой жизни на "доказывание чего либо" странноватым персонажам типа того анона, что ооп лишним считает.Ведь в эти минуты вы могли чето полезное сделать/подумать.Банально, но на самом деле пипец какая важная вещь. Понмаить на что стоит тратить врремя/мысли а на что нет.
>>1630957Для этого и создал тред, чтобы доказать правильный путь оступившимся после беспощадного русского ютуба.
Тут кажется завелся человек, которому целый день нечем заняться и он готов флудить на любые темы. Найди себе занятие поинтереснее.
>>1630977Если ты не понмаешь зачем MVC - то ты в принципе не потянешь, и на тебя нет смысла тратить время. Мой младший брат, пару дней поковыряв пхп на нулевом уровне - за час понял зачем нужно MVC.
>>1630978Не всем быть сверхукровоином света как твой брат от чистокровного укрохряка с чупчиком на голове с враждённым геном служения и писания говнокода за хрывны в копеечном эквиваленте
>>1630989> Как тред умудрился дегроднуть?Возможно это всё из-за меня. Я пришёл полгода назад в более менее адекватный фронтенд тред, он скурвился за месяц-два, сейчас там просто пиздос творится, потом я пришёл в жс тред, та же история, а в итоге я дошёл сюда, ведь в моем городе фуллстаки/бэкендеры нужны, а остальных почти всегда опытных ищут и видимо угробил этот тред. Одно могу сказать точно - мвп тред был ебанутым, я не при чём.
>>1630989>Тут никого не осталось из вкатывальщиков 2+ давности? Ну я например сижу тут с 2к17. Успел сделать студентов, файлообменник. Сейчас пилю тестахаб на ларавеле. Вообще есть работа не связанная с кодингом, айти и т.д., а то если бы я дома хикковал и фулл тайм это дело пердолил, то наверное бы уже смог вкатиться.
>>1630994Просто вкатыш. От меня никакой шизы не исходит, но где я, там шиза появляется. А ещё меня битрикс контора игнорирует и надо бы им написать, а то я настроился к ним идти.
>>1630957>не стремно тратить минуты свеой жизни на "доказывание чего либо"Не потрачу здесь, потрачу где-то еще. Это всяко интереснее унылых тасок с прода по ковырянию в очке говнокоде
>>1630997>сижу тут с 2к17Какой-то супервялый вкат. Ну максимум год это должно занимать от хелоуворлда до работы стажером/джуном.
>>1631017В чем польза собственно?Толку 0. Заработанных денег 0. Переката в кодинг нет.Рили лучше б в игрули играл.
>>1631074>Рили лучше б в игрули играл.В чем польза собственно?Толку 0. Заработанных денег 0. Переката в игрульки нет.Рили лучше б в кодинг кодил.
Анонче помоги написать регулярку Как выбрать все между hash: '2', data:function(){return и ? preg_match("@hash: '2', data:function(){return (.*?)}});</script><script aria-hidden=@u", $info, $out);
сдэк api кун снова в треде. анон подскажи такой момент. вот я получил массив с данными после ввода своего города и теперь их паршу через цикл for. и там есть две такие строчки:$addarray['coordX'] = ''.$pvz_list_data['pvz'][$i]['coordX'];$addarray['coordY'] = ''.$pvz_list_data['pvz'][$i]['coordY'];проблема заключается в том что когда я ввожу только дс1 или дс2 он мне выбрасывает Notice: Undefined index: coordX и Undefined index: coordY.Смотрю заново массив что прилетает - там все есть. и индексы необходимые и у них есть нужные числаС другими городами все норм работает, эти индексы он без проблем тянет, и они такие же непустые. в чем может быть проблема?
Существует ли еще какой-нибудь относительно популярный язык, в котором для обращения к переменной используется та же конструкция, что для ее объявления? Очень хочется написать$a=1;echo a;, а вот хуй.
>>1631303"Я могу добавить функционал текущей задачи на йи за 20 часов, следующей за 30, третьей за 50. Или переписать проект за 50 часов и сделать все три задачи за 10 часов каждую."Проблема в том что со стороны заказчика, новый функционал нужен сейчас, а НУЖНО ПЕРЕПИСАТЬ наступает когда говнокод его проекта никто не хочет трогать даже одиннадцатифутовой палкой.
Аноны оцените код, хорошой вариант для обучения в MVC? https://github.com/php-youtube/php-blog Насколько он безопасен от инъекций и прочих видов взлома? Можно без опасений на нём создать например информационный сайт как на ворпрессе?Где можно ещё достать такие протейшие готовые фреймворки для понимая скруктурирования и деления файлов и классов? Таких чтобы были написаны по минимуму и максимально понятны?
>>1631741Это новый мем какой-то? Напиши что тебе непонятно один раз и мы всем тредом тебе ответим в надежде что ты перестанешь срать про свой мвс в пхп или хотя бы сменишь тему на поворот красно-чёрного дерева.
>>1631810Я не могу понять как правильно разделять классы, что помещать и писать в модал, что в контрол, а что в вьюв, и что откуда подключать и что где нужно писать чтобы было правильно, пример что в контрол ненужно писать рендер страницы, это делают файлы из вьюв, хз как это называется, структура фрейворка по вмс чтоли
>>1631810По этому решил просто найти самый простой вариант и задрачить его до строчки пока не пойму, пример выше хороший? И можно вообще его всерьёз использовать для своего сайта или он как решето? Плюс хотелось бы посмотреть на другие реализации сайтов простейшей направленности, типа блог/киносайт/инфосайт
>>1631929Значит тебе еще рано сейчас. Штулируй duolingo хотя бы весь курс. Читай с переводом только незнакомых слов, даже если это будет долго.
Анончики, подскажите, как поменять корневой каталог на сервере? Это через htaccess или инструментами хостинга надо делать?
>>1631977>Какие ещё есть и можно примеры на них?Если решил угореть по фп, то пыха для этого не подходит.Хочешь кушать процедурщину и лапшу - бери любую цмс битрикс, там нет ооп
>>1632080>фпЧто это?Хочешь сказать все фрейворки собраны на ООП? Дядя из видео сказал что в основном, то есть есть и другие, вот и хочу узнать как она выглядят
Почему ни 1 пидорас не сказал мне про namespace, и ни в однмо обучающем видео этого тоже не было, аноны, кто уже изъебался в попытках понять как эти долбаёбы подключают кучу файлов без использования инклуд, посмотриет это, вся каша говна в вашей голове улетучится украинцам https://www.youtube.com/watch?v=Ajmn6afKsYM
>>1632141Читать надо нормальные источники, а не говно с ютуба смотреть.https://phptherightway.com/ - ответ на 99% вопросов про то как писать
>>1632150Разработка это вам не курорт. Сидим за пекой, выжигаем глаза, сажаем шею и спину, зарабатываем геморой
>>1632155По этому можно учить лёжа на диване пока украинская похапе макака тебе всё уже расжевала и объясняет с экрана на пальцах
>>1632080Меня недавно кент один ппопросил помочь в его цмс - редкая, даже не буду называть, ее один человек пилит.Я вам скажу это лютый пиздос. Как я понял все барахло, классы%%их там нет кстати вроде, функци везед%, хтмл, запросы - все это в одном файле. Это полный пиздец если честно.
>>1630776Бампаю свой вопрос.Сейчас в треде какой то унылый пиздец творится.Давайте всетаки ближе к прогингу. Кто какие ресурсы сзадачками знает?По sql мне в свое время очень sql-tutorial помог. Задачник там отличный.
Я пришёл в php из js, у меня возникли такие вопросыВ ассоциативном массиве обязательно задавать значение стрелочкой => ? У нас это делалось простым двоеточием, здесь есть альтертивный синтаксис?При вызове метода у объекта класса он так же вызывается стрелочкой -> , можно это делать как-то тоже альтернативным способом? У нас это делается просто точкойЕщё мне не нравилось что конкатенация идёт точкой, в js это был просто + , но вчера понял что это очень даже логично, перечисление параметров идёт через запятую, а их склеивание через точку, тут я согласен с синтаксисом
>>1632242>Я пришёл в php из js, у меня возникли такие вопросыА я пришел потыкать пхп палочкой из жс и у меня возникло недоумение, как на этом собачьем языке вообще кто-то программирует. Про обращение к переменным через $ я уже бугуртил выше, но $cars[] = 'Mersedes'; это же тоже пиздец.
>>1632268Не знаю, всё вполне логично, переменная машина котороая массив равна мерседес, объявление переменных тоже заебись, никаких ебучих варов летем и констанов
>>1632268А в чем бугурт с $? Мне после питона и джс наоборот это понравилось, сразу видно, что вот тут переменная, не надо всяких варов писать и т.п.
>>1632298> переменная машина котороая массив равна мерседес, Сам то понял что написал? Это пуш в конец массива
>>1632302Ладно, добавить в массив кар значение мерседес и автоматически задать ему максимальный ади+1, что тут непонятного, всё заебись, ты дура
>>1632242Блять инвалиды не переводите тему, а отвечайте на вопрос, обязательно значения в объекте задавать стрелкой с равно, а вызывать методы стрелкой с дефисом? Может есть альтернативный способ, как с созданием массива, или через аррей или просто через квадратные скобки
>>1632306>обязательно значения в объекте задавать стрелкой с равно, а вызывать методы стрелкой с дефисомОх ты ж блядь, еще и стрелки разные.
>>1632306Это на объект, а мапа. Объекты у нас по другому делаются. Нет, нельзя, разве что через обычное =, но уже после объявления.Без -> вызывать в целом нельзя. Можно через квадратные, если запаришься реализовать ArrayAccess. Можешь через рефлексию всякую. Но это легче твою жизнь не сделает, так что ответ - просто нельзя. Для статики если че у нас :: используется, и если я все правильно помню сама эта херота еще с крестов пошла.Относительно точки - ну не знаю, что там особо логичного ты увидел, но о ней было бы прикольно вспомнить в том контексте, что именно из-за такой конкатенации и обратной совместимости в пхп не уйдут от ->.
>>1632301В том что вызов тоже через $. Если ты до пыхи писал на чем-то кроме перла, открой учебник в ОП и делай задачки. Только пиши код, а не только читай условия. Баттхерт гарантирован.
>>1632323Ну смотри, передаём в функцию значения, разделяются они запятой, а склеить их из нескольких значений можно точкой, примерfoo('Файл', "index".".php")Мне кажется очень даже удачно придумали с точкойПо стрелочкам тогда придётся смериться, просто очень нравилось делать это доеточием и точкой, задаём двоеточием, вызываем точкой
>>1632344Поебать на чём писали инвалиды повидавшие говноязыки, мы начинаем с js и php и нам создание и вызов переменной через $ нравится, разу видно где идёт работа с переменной, она сразу выделяется в куче писаннины
Я JS тоже нужно сделать создание и вызов перменной через $, и пусть всем варо лете конста бляди отсосут
Мы пишем на языке не тепезированного типа, так что нам на ваши константы в 90% случаев просто поебать
Где можно скачать ларакасты? На рутрекере есть некоторые серии, но не все. Поделитесь кошерным трекером.
>>1632323Зачем ты этому ебанату вообще отвечаешь? Его вопросы чистой воды троллинг, ну или кристальный идиотизм.
Тред не легитимный и не спарситься для phpclub.tech, потому что не содержит слова 'Клуб' https://github.com/phpclubtech/phpClub/blob/master/src/BoardClient/DvachClient.php#L79
Yii устарел лет 5 назад, выпилите его из шапки и поменяйте на Laravel уже. Вообще от всего описания несет каким-то старческим песком - давно пора все обновить.
>>1632585Господа граждане! Вы же понимаете что симфони бессмысленная штука. Зачем на пхп писать сложно, если его ВСЕГДА берут чтобы было быстро и просто. Если допустимо долго и сложно нужна строготипизированая хуйня с тырпрайз наворотами дотнет напримермимо симфонист не из филармонии
>>1632301> А в чем бугурт с $?В слепой печати 300+ символов в минуту, которая идёт по пизде, потому что неудобно до доллара тянуться. Это не значит, что я хочу код писать с большой скоростью - просто я привык печатать не особо уделяя время тому, на какие клавиши я жму - а с долларом и промахнуться можно.
>>1633034Быстро привыкается. У меня тоже был бугурт по этому поводу первое время, а сейчас уже даже не замечаю. При этом пишу как минимум еще на 2 языках, кроме пхп, постоянно.
>>1630913С лица воду не пить. Тебе легче было бы, если бы этот РНР учитель был красивым няшкой Чедом?
Многие пишут, что после X нельзя уже вкатиться на Y. Х может быть любым, как и Y в общем то.Что-то типа проработал хоть день в госучреждении пхп джуном - всё, никуда больше не возьмут, зашкварен. перейти на чистый фронт с модным фреймворком и так далее.А почему так? inb4 научат плохому - вроде как можно постепенно полировать знания, учиться хорошему
>>1633081Можно, просто есть крайние случаи, типа ковырять пару лет вротпресс. Это звоночек. Но все равно можно.
>>1630065 (OP)>Уже Весна за окномЗачем в каждом треде вспоминать это окно? За окном - улица. Нам туда не надо.
>>1630296Удвою про буст. За 2 дня написал тестовое на пару сущностей, с админкой и АПИ. Ещё и тестами это АПИ покрыл.И это при том, что я фреймворк только изучаю и много читал в процессе.На чистом пыхе ебался бы недели полторы.
>>1633081> зашкварен. перейтиЯ ж знал, что что-то не то с текстом произошло. Тупо пара предложений куда-то исчезло.
>>1633081Если человек трудился в более худших условиях и потом осилил новую профессию/навык/язык и т.д., то это лишь ему плюс в глазах работодателя - что он превозмог и покинул болотце, по крайней мере, у меня так в инженерной среде заводчан.
>>1632888>его ВСЕГДА берут чтобы было быстро и простоКогда надо просто, берут Laravel или Yii2 на худой конец. Symfony - это когда хочется/требуется тырпрайз, но денег нету на джавистов. Ну и по личному опыту могу сказать, что на симфони писать в целом в разы приятнее, чем на Spring.
>>1633216Что на ларке, что на ии сейчас может каждый себя уважающий сеньор устроить тырпрайз. И даже без низ. Даже скорее без них, потому что ему так будет удобнее.Вообщ глядя на всю эту пляску вокруг парочки фреймврков и смешно и грустно становится. Все совсем не так в итоге. Дохуя опытные пилят все мимо всей этой параши. Неопытные же пилят в мусорную корзину походу.
>>1632585Вообще нифига не понял этот Ларавел. Быстрее, чем на Yii2, по времени разработки все равно не выходит, местами все какое-то больно мудреное, хотя по идее должно наоборот облегчать и ускорять разработку. В итоге для личных проектов, когда надо что-то быстро накидать и запустить, по-прежнему использую Yii2, а на работе Симфони.
>>1633220На чем угодно можно устроить тырпрайз, даже без всего, но зачем это делать, когда есть готовое.
>>1633228Это хороший выбор, но ты при этом должен уметь все, что слим тебе не дает. А что, что дает - должен полностью понимать.
>>1633229Начал смотреть по нему уроки для осиляния mvc, так как местные омёбы так и не смогли мне ничего посоветовать, двач стал тупым таким же как и я, стадо пидорасов неспособные меня ничеу научить
>>1633233Чтобы объяснять материал нужно иметь опыт объяснения или педагогическую жилку. Часто бывает так что способные схватывают материал без труда, но не могут передать навык так как они его сразу в свернутой форме усваивают, без периода обучения. Вот что не характерно для способных - это потребность, чтобы кто-то им этот материал объяснял.
>>1633233Ну, я та же самая амеба, которая советовала тебе посмотреть Елисеева. Чувак неспешно, но по делу, показывает как от говна к нормальному коду прийти. Получается ты мой совет случать не стал. Ну зря че уж, там очень поднобно человек объясняет. Ну а а слим был бы следствием вообще после усвоенного материала.
Сейчас занялся вопросом безопасности, пользуясь случаем, анончики, подскажите VPN сервисы которыми пользуетесь, я правильно понимаю что лучше всего купить VPS и установить на нём VPN самому? И брать его где-нибудь в Нидерландах, чтобы тебя точно не сили правосекам? Дорогова-то конечно выходит до 5$ в месяц для пары подключений в день к своим серверам для выгрузки кода
>>1633233>стадо пидорасов неспособные меня ничеу научитьМог бы хотя бы не называть пидорасами тех, кто на тебя и твои проблемы внимание обратил. Так то они тебе ничего не должны.
>>1633413Им я сразу сказал спасибо, а пидорасы это те которые начали мне втирать что я даун что не изучаю другие языки и что я без них никто и прочую хуйню
>>1633233>так как местные омёбы так и не смогли мне ничего посоветоватьУебок, блядь. Ссылку кидал на ларакасты, где препод с нуля пишет мвс фреймворк.Хули еще тебе советовать, если ты ленивое хуйло?
>>1633496>ларакасты, где препод с нуля пишет мвс фреймворкШо?Ларакасты это обучалка по ларавель, как бы. Причём тут написание фреймворка?
>>1633506>>1633602Вы ебанаты?Там есть раздел по чистому php без привязки к ларавелу, где препод с нуля пишет мвс фреймворк (не ларавел).Палишь им годноту, они нос воротят.
>>1633536>мне нужен php чтобы писать скрипты для себяНахуй ты сюда пришел тогда и спрашиваешь за мвц?Сиди да пиши на чистом php без фреймов и библиотек.Хуле тебе еще надо?
>>1630139Объект - это набор данных (полей) и методов (функций) для работы с ними. Класс - это описание объекта: какие поля, какие методы в нем есть. Несколько объектов одного класса имеют одинаковый набор полей, но в них могут быть записаны разные данные. Каждый объект относится к какому-то одному классу. В ОП-посте есть учебник, а там есть глава про ООП.>>1630579MVC - это архитектура, в которой код разнесен в модели, вью и контроллеры, у которых свои роли, как описано в статьях и учебниках. Первоначально придумывалась для интерактивных программ с GUI, позже была адаптирована для серверной части веб-приложений. Я уже давал в прошлом треде ссылку на урок но видимо это платиновый вопрос какой-то: https://github.com/codedokode/pasta/blob/master/arch/mvc.mdПоиск и редактирование тут вообще не при чем. Смысл в том, что например код в контроллере трудно использовать повторно из другого места программы, а код в модели - можно. Также, вынесенную отдельно бизнес-логику проще тестировать.Разделение на файлы не имеет отношения к MVC, его делают, когда код становится слишком большим по объему, для удобства.>>1630655 Что тебе мешает измерить? Это зависит от ситуации, от используемых файлов, характеристик компьютера и еще кучи факторов, потому надо мерять. Используй функцию microtime(true) и померяй.
>>1630776Изучай DOM. DOM - это представление HTML кода в виде дерева из элементов (погугли, что такое дерево как структура данных). Если гуглить, попадается в основном информация по JS, но поддержка DOM есть и в PHP, правда, довольно ограниченная, без функций вроде querySelector. Можно взять задачи на DOM из JS, или взять такие задачи: - вывести, какие теги и сколько раз встречаются в HTML- найти все поля <input type="password"> на странице- найти картинки без атрибута alt- добавить атрибут alt="Картинка" в те места, где его нет- найти все абзацы (<p>), в которых нет ни одной картинки, и добавить туда картинку- заменить теги <i> на <em>- заменить текст, разделенный <br> на текст, обернутый в абзацы (<p>)DOM описан в мануале PHP: https://www.php.net/manual/ru/book.dom.php - потребуется понимание ООП, чтобы разобраться.Советую написать вспомогательные функции: 1) для обхода дерева с вызовом функции на каждом элементе 2) для трансформации дерева, с вызовом функции на каждом элементе, и эта функция решает, как его заменить.>>1630893Вместо того, чтобы ныть, разберись, зачем эти пространства имен придмали. Твоя проблема в том, что ты не зная основ, берешься сразу за сложное, ничего не понимаешь, и начинаешь ныть. А надо идти потихоньку от простых вещей к сложным. Не понял неймспейсы - потрать время на их изучение, прежде чем двигаться дальше. Не понимаешь ООП - изучи его. И так по каждому пункту. Тебе еще рано изучать фреймворки без базовых знаний.
>>1631104 Надо экранировать спецсимволы вроде скобок. Хотя, этот код лучше разбирать не регулярками. >>1631162Если пишет ошибку - значит, нужного индекса в массиве нет. Проверяй его наличие через array_key_exists() или хотя бы var_dump().>>1631945 Это делается директивой DocumentRoot. Если открыть ее описание, то видно, где ее можно размещать: https://httpd.apache.org/docs/2.4/mod/core.html> Context:\tserver config(щелкнув по ссылке)> server config> This means that the directive may be used in the server configuration files (e.g., httpd.conf), but not within any <VirtualHost> or <Directory> containers. It is not allowed in .htaccess files at all.То есть нужно править конфиг сервера, на хостинге это делается как-то через панель управления. Если ты поднял Апач у себя, то просто редактируется файл в /etc/apache2/ (иногда на каждый хост делается отдельный файл) из-под админа.>>1632654 Расширить фильтр можно, но проще просто называть тред, как обычно, и проблем не будет. Не надо себя вести агрессивно.
Не знаю куда написать, вообщем мне дали тестовове: https://drive.google.com/file/d/1amAqS96pIkOt6nb1p0yaNcUrpUjYCeu_/view Я вообще не уверен что это нормально, вакансия зп 18к контент-менеджер, про существования водпресса только слышал, как мне его делать, если сдавать после завтра.
>>1633935контент менеджер это тот кто и будетнаполнять сайт контентом, а большинство сайтов убраляется вордпрессом, админка водпресса как майкрософт ворд, проста и изящна, что тут сложного, просто залей вордпресс на хостинг и скопипасть новости с красивым оформлением
>>1633953А где в вакансии собственно говоря нужен php? Для такой работы как в этом тестовом вообще человек даже не нужен, скрипт на селениуме сойдет
>>1633935>про существования водпресса только слышалПросто накати и потыкайся - там для домохозяек всё сделано. Разберёшься до послезавтра как нехуй.
>>1633935> не уверен что это нормальноЯ тоже, ведь 18к это больше не всегда, конечно, чем в моем городе начинающий разработчик получать будет, а вроде разработчик поквалифицированнее будет, если я правильно понимаю то, что делает контент-менеджер.
>>1634026контент менеджер просто копирует и вставляет текст на сайт, наполняет его бесполезным говном о компании
>>1633229Я на нем написал мвц фреймворк с орм для монги и MySQL, потом почесал репу и взял для проекта ларавель. Не очень понимаю зачем нужен Слим, если ты не апи реализовать пытаешься, это по сути просто роутер и 2 интерфейса, для запроса и ответа, там даже из реализации из коробки нет, нужно ставить отдельно, как и di. По крайней мере в 4 так.
>>1633951Так и куда тыкать поставил этот сайт в виде темы дальше то что, рубрики абсолютно никак не добавляются, дажу пишут к этой теме нельзя, мне вот что с 0 ваше говно верстать по макеты этому и натягивать за спасибо, ах да сдать надо завтра утром.
>>1634044зайти на ютуб, там тонный видео по вордпресс, это просто готовй конструктор, установил, надел любой понравившийся дизайн кнопкой установить и пошёл наполнять, тебе же просто контент сказали добавить и оформление текста сделать
>>1634053мне сказали перенести готовый сайт на вордпресс и потом хостинг попутно внедрсяя всякие правки
>>1634058Ты наверно не понял задание, контент менеджер наполнят сайт контентом, а не переносит чужие сайты на хостинг
>>1634039>Не очень понимаю зачем нужен СлимЧтоб собрать свой фреймворк с моделями и сервис-провайдерами.
>>1634054Ты хотел сказать ставишь твиг, орм, либу для авторизации, di, регистрируешь там сервисы.Или просто качаешь ларавель
>>1633817Сука блядь, курс где он пишет мвц в свободном доступе, качай прямо с ларакастов.Неужели вы такие дегенераты?
Не так давно тестовое было - огромное, из 10 комплексных задач, на 3 дня. С игнором после выполнения. Сегодняшнее тестовое - тест на 10 минут.Как так? Почему тестовые такие разные?
>>1634285Да мне нафиг не нужен твой курс про мвц. Я тот анон, который ищет трекер с ларакастами. То что бесплатные курсы можно смотреть БЕСПЛАТНО я знаю. Чего ты такой агрессивный? Лучше бы помог с поиском трекера.
>>1630065 (OP)Может кто-нибудь(что нибудь) конструктивной мотивации подкинуть, как начать кодить и где тот самый мой катализатор работоспособности?!
>>1634326> конструктивной мотивации подкинуть, как начать кодитьКодь. Это в твоих интересах, если ты хочешь работать кодером. Если не хочешь - не кодь. > где тот самый мой катализатор работоспособности?!Я не брал.
Аноны, киньте с гитхаба открытый простетский готовый скрипт статистики на похапе, без всяких свистоперделок, написанный мужиками и с обычным дизайнов в стиле бутстрапа, есть такой? Чтобы показывал какой количество юзеров, с каких ос, какого браузера, куда зайшли, откуда пригли, и чтобы можно было передавать туда свой параметр, например для идентификации пользователя, смотреть что он посещал, и чтобы всё это в простой таблице в стиле бутстрапа, есть такой готовый код для натуралов?ну очень не хочется ебаться и делать всё с нуляяндекс метрику и гугл анальный зонд сразу нахуй
>>1634317Сори, нервничаю.Насчет трекера по ларакастам - сам в свое время искал.Что-то есть на рутрекере, что-то на ннм.Самая база, которая нужна тебе как ремесленнику ларавела доступна бесплатно ларакаст и на трекерах. Остальное, то что платное:Часть видосов - какие-то платные фичи ларавельской экосистемы (тот же фордж). Часть видосов - ковыряние кишок фреймворка, это ты и сам можешь сделать при желании.Вкатиться в лару (вплоть до работы джуном) можно вполне без платного контента я так и делалЕсли кровь из носа нужен платный контент - платишь разово 15 бачей и выкачиваешь себе в облако весь ларакаст с офф сайта.Еще можно посмотреть на курсхантерс.Помимо этого у елисеева есть мастер класс по ларавелу рутрекер
>>163438430-40. Там в конце пошла ненужная херня про Ada и прочий легаси. Я вообще сейчас беру учебники "брутфорсом" - прочёл учебник, понял не до конца, читаю другой учебник, понял ещё больше и т.д..
>>1634456https://www.jetbrains.com/help/phpstorm/2019.3/using-code-editor.html?utm_campaign=PS&utm_content=2019.3&utm_medium=link&utm_source=product
>>1634285>дегенератыВот, кстати, почему англоговорящие в ИТ не такие токсичные уебаны. На этих ларакастах вполне мирные ребята поясняют по-простому и без выебонов в сторону слушателя. Почему вы этому у них не учитесь?
>>1634360Спасибо.Я уже полгода пилю проекта на Ларавеле, с базой проблем нет, как мне видится.Но приятно посмотреть как пишет Джефри, некоторые вещи в голове встают на свои места, код становится красивее и т.д.Эх, видимо придется заплатить 15 долларов.
>>1634615Вот тут смотри https://laracasts.com/Курсы вроде https://laracasts.com/series/laravel-6-from-scratch бесплатные.А такое https://laracasts.com/series/solid-principles-in-php платно, но можно по названию на Рутрекере поискать.
>>1634636Аноны, есть же на ютубе озвучатели, дайте им эти курсы, пусть договорится с автором и переведёт, и сам заработает и нам хорошо
>>1634500Да потому что в постсовке все уже хотят вайти, даже собаки со двора.Реально заинтересованных в кодинге людей практически нет.
>>1634609За красивым кодом нужно идти к джавистам. Роберт Мартин, Фаулер, банда четырех - их книги стоит изучать, чтобы писать тырпрайзный код
Ждуны, пилите стори, мне очень-очень интересно.1. Какой лвл?2. Сколько изучали для того, чтобы вкатиться?3. Что ещё кроме php изучили?4. Сколько платят? (можете диапазон писать, кто не хочет писать цифры)Буду рад, если отпишитесь, друзья!
>>1634650Не спорю.Но тут двух зайцев убиваешь. И инстремент (фреймворк) учишь и полезные практики перенимаешь.Никто не мешает параллельно читать и книги про паттерны.Кроме пользы никакого вреда!
>>1634669>мне очень-очень интересноНу ок.1. Какой лвл?24>2. Сколько изучали для того, чтобы вкатиться?3 года>3. Что ещё кроме php изучили?Программирование как отдельную дисциплину, базы данных, вёрстку, джавускрипт, паттерны, фреймворки 2 штуки, гитхаб, линукс, хттп-протокол и вообще как веб работает. Немного вордпресс и опенкарт ковырял. Сделал почти все задачи из ОПпоста.>Сколько платят? (можете диапазон писать, кто не хочет писать цифры)25-35
Дошел до ООП по туториалам от ОПа. По прочтению теории создалось впечатление, что весь материал усвоился - все логично и понятно. Однако как только подошел к задачам про Вектор, сразу стало ясно, что я понятия не имею, как ООП используют на практике. Поскроллил архивы на phpclub.tech, почувствовал что в среднем у местных анонов общий уровень понимания PHP гораздо выше, потому что я даже не имею представления, как подступиться к решению, в то время как аноны хотя бы накидывают свои соображения.У меня лишь пару идиотских вопросов, но я был бы признателен, если бы кто-нибудь оставил комментарии по ним.#1 В каком формате мы получаем input от пользователей скрипта? В каком виде поступает raw data, из которой нужно построить статистику?#2 По поводу свойств сотрудника. ОП говорит: "У Сотрудника есть ранг, базовая ставка, профессия, является ли боссом. Потребление кофе или зарплата не являются свойствами так как они вычисляются из других свойств и хранить их не надо."Есть базовая ставка (свойство), из которой высчитываем реальную зарплату. Однако у каждого специалиста есть базовый уровень потребления кофе, из которого выявляется фактический объем выпитого вещества. Почему базовая зарплата - это удачный кандидат для свойства, а базовый уровень потребления кофе - нет? Стоит ли указывать принадлежность к отделу как свойство?
>>1634669>1. Какой лвл?28>2. Сколько изучали для того, чтобы вкатиться?Около года>3. Что ещё кроме php изучили?Базовая верстка (барбершоп), python django (не пригодился), php laravel>4. Сколько платят?Начинал с 30к, сейчас апплаюсь на 100-120к
>>16346691. 142. 1 час на утубе для каждого языка3. все что есть на утубе за 1 час4. 300к я фулл стак синиор
>>1635235Все кто искал давно вкатились и ебашут.А ленивые аноны из треда так и продолжают третий год колупать круд
>>1635245Для мотивации, имхо. Второй месяц в треде, на вкатившихся без вуза смотрю как на полубогов, а на сеньоров - как на богов. Процесс хоть идет по плану и вполне успешен для меня как дна, но все равно факт получения желаемой работы кажется чем-то сказочным и несбыточным. А когда посмотришь на других анонов, что они сидели-пердели над пыхой и у них все получилось - то становится легче.мимо
Аноны, подскажите по феншую как правильно сделать - допустим у меня ошибка с запросом к бд, и есть класс логгера, который запишет инфу о этой ошибке в файл.Как правуильно - поднять ошибку из базы до контроллера, и там уже вызывать класс логгера, или на месте генерации исключения вызывать класс логгера и логгировать данные?По идее логгинг - это что то типа представления, поэтому из контроллера его нужно вызывать, не?
>>1634669хе-хе1. 33 лвл2. уже три года копротивляюсь.3. nodejs, питон уровня синтаксиса, js, react уровня простых компонентов.Работаю в гос.шараге - в принципе в контексте специальности, должность программист. sql + пхп, даже написал кое че для шараги. 45 зп. Вышка профильная давно забытый бэйсик и делфи.Итог - я у мамы хобби-программист. То пишу, то в носу ковыяюсь, не умею в дисциплину, не умею в ответственность. Деньги этим зарабатывать категорически не умею. Один раз только какой то элементарный калькулятор на JS накатал, за пять рублей, потому что случайно упала в руки задача.Короче получилось как я когда то и опасался - из за личных качеств я 90% времени проебывался. Личные качества > навык или знания.
>>1612508 →>Если ты смог генерировать комбинации кубиков, то ты можешь попробовать теперь сделать функцию-генератор, >выдающую комбинации кубиков, а затем и купюр, с помощью yield. Погугли "генераторы в PHP".Погуглил, разобрался, но ничего не выходит https://ideone.com/drWFhh
>>1635530https://ideone.com/29reT5Этот yield полезен только в случаях, когда у тебя огромные объёмы данных - он выдаёт эти данные порциями на обработку, не загружая полностью. Тем самым экономится оперативка.
>>1635298>Процесс хоть идет по плану и вполне успешен для меня>факт получения желаемой работы кажется чем-то сказочным и несбыточнымИ где тут успех?Критерий успеха - устроиться разрабом и получить первую зп за код
>>1635613Чего ему умирать? Есть регулярные релизы языка и фреймворков. Есть задачи, которые язык решает. Народ кодит, разарбы релизят, бизнес платит деньги.Пиздец, как школьники. Про "виновс маст дай" еще напишите.
>>1635359На самом деле тема сложная и не однозначная. Если ты залоггируешь исключение где-то посреди кода, то где гарантия что никто больше его не залоггирует опять? Обычно есть глобальный хэндлер исключений, который ловит вообще все. Но это противоречит концепции исключений как продвинутого goto.В идеале исключение означает что все, пиздарики, дальше работать не можем. Его ловит только глобальный хэндлер, а пользователю показываем какую-нить красивую страницу.А если произошла именно "ошибка", то мы эту ошибку уже тащим до контроллера, или где там её нужно обработать.Но то в идеале. А на деле и очень опытные люди ходят кругами в этих goto эксепшенах. Доебланились до того, что в нормальных языках вообще понятие исключения выпиливают.
>>1635612Я последний человек в мире математики был в школе, а ее закончил давно и многое забыл, в логике тоже не шарю, но осваиваю уроки из шапки и попутно книги читаю, вроде есть понимание процессов. Я на это не рассчитывал.
Поскольку тут пишут чаще всего, хотелось бы спросить: какой язык самый легкий и какой самый сложный? Те же джава и php сравнятся с sql? Что лучше начать изучать, если прицел на работу с карьерным ростом в будущем? Есть ли какая -то градация: этот язык наиболее легок для освоения обладателям аналитического мышления, этот - системного и т д?>>1635895Сложно ли так осваивать? Я был далеко не последним человеком в математике (одним из первых), но в обычной школе, не физ мат? Большие ли объемы информации для изучения с нуля? Сколько тратишь в день по времени?
>>1635902>Сложно ли так осваивать?Не сильно просто, информация новая, мозгу приходится напрягаться, иногда что-то конспектирую даже и блок-схемы рисую, начал с книги по Компутер Саенс (Теоретический минимум по Computer Science. Все что нужно программисту и разработчику), чтобы получить представления про логику и алгоритмы, занимаюсь как получится, иногда по 4 часа, иногда на час хватает, от настроения зависит.>но в обычной школе, не физ матПосле 9-го класса потерялся в математике, решили класс сделать математическим, а я гуманитарий. Логарифмы, интегралы - их смысл не понимал вообще, кое-как по образцу делал примеры, но с переменным успехом.
>>1635895Математика веб-макаке не нужна.Логика нужна уровня И и ИЛИ.Не знаю, что там можно годами осваивать
>>1635902>какой язык самый легкий и какой самый сложный?Самые легкие для вката сейчас это php и js по совокупности критериев (кол-во работы, кривая сложности)>Те же джава и php сравнятся с sql?Не сравнятся. Это разные языки.Только рассматривать php в отрыве от sql нет смысла, т.к. на работе они идут в паре.>Что лучше начать изучать, если прицел на работу с карьерным ростом в будущем?То на что ты сможешь найти работу в своем городе. Зачастую это пыха. Дальше возможен перекат на другой стек при желании.Карьерный рост - опыт+портфолио/резюме, релокейт в дс либо удаленка на дс/апворк>Есть ли какая -то градация: этот язык наиболее легок для освоения обладателям аналитического мышления, этот - системного и т д?Си-подобные языки во многом похожи. Больше отличается подход в разработке, инструментарий, экосистема.Конкретно такой градации нет.
>>163593822>>1635973Циклы очень сложные были, пришлось рисовать себе схемы и разжевывать, чтобы понять. Думал, что на них прервется обучение, но иду дальше.
>>1635988Что сложного в повторении действий/переборе элементов?Ты эти же задачи делаешь в реале. Например чистишь картошку/моешь посуду.for (текущая_картошка; текущая_картошка не последняя_картошка; следующая_картошка) { почистить(текущая_картошка)}
Аноны, у меня вопрос по Ларавел.Вот есть контроллер ресурса с крудом. Есть админка с крудом по той же сущности и публичная часть со списком. Всё соотносится с этим контроллером ресурса и фактически реализует его функционал на своих страницах. Как это всё готовить? Создавать отдельно контроллер админки, и игнорировать ресурсный, или обойтись только маршрутизацией к ресурсу? С публичным списком я тоже не понял - через маршруты методы ресурса ставить или не трогать и просто сделать контроллер страницы?В общем не понимаю я как пользоваться этими контроллерами ресурсов. Пока что у меня есть подозрение, что это 2 разные пути реализации одного и того же функционала. Если так, то какой и когда предпочтителней?
>>1635902Не дрочись хуитой. По своему, и уверен опыту 99% вкатывающихся, скажу что основное что потребует твоих усилий это не божески, как сложно то, не могу понять, а бля, как бы не забить хуй на работу через 5 минут после ее начала, и не начать скроллить сосач/вк/чеугодно другое. Сконцентрируйся в первую очередь на этом.
>>1636015Сначала ничего не понял, а потом вроде понял. У тебя "публичное" приложение и админка это два разных приложения, ресурсы для них тоже лучше сделать разные, ибо это сейчас там 1 в 1 поля сходятся, а потом пиздос начнется. Например у тебя есть сущность пост, в публичной части круд этого поста ограничивается например по автору поста, а в админке клиент хочет чтобы мы могли изменять дату создания поста. В итоге тебе в одном контроллере у тебя будет одна форма, в админке другая совершенно.
>>1636025>Сначала ничего не понял, а потом вроде понялУ меня чаще наоборот - сперва вроде понял, а потом оказывается, что ничего не понял.>ресурсы для них тоже лучше сделать разныеПонял - буду разделять. Скорее всего из-за этого и непонятки были.
>>1636080С ней порядок, только вот я ее редко нагружаю чем-то сложным и поэтому ловлю тупняки периодически, мозг атрофировался, как мышцы, и не может поднять условный килограмм.
>>1636086Чувак, это нормально. У человека так мозг работает. Если будешь продолжать упарываться в кодирование то со временем с этим станет лучше. Причем, по моим ощущениям, буквально пару недель или месяц и начнешь продуктивно работать. Попробуй кстати пройти вот этот тест: https://eruditor.ru/z/?CRT7 . Он иллюстрирует как раз ту особенность нашего мозга, когда мозг старается из кеша по быстрому найти решение проблемы.
>>1636297>Попробуй кстати пройти вот этот тест: https://eruditor.ru/z/?CRT7 .Какие-то задачки для первых классов.
>>1636314Почему для первых . В наше время дажевыпускники и студенты, а не просто школьники не могут это решить.
15 highest and 15 lowest - тяжело было понять эту фразу и сообразить, что по замыслу,это, очевидно, середина. А так всё без проблем решила>>1636297
Есть вопрос по структуре создания моделейДелаю простенькую социальную сеть, есть модели User, Friends, Posts, Likesдело в том, что количество методов у модели User растет очень с добавлением новых сущностей в проект. Все модели так или иначе завязаны на User'а. Какой шаблон или архитектуру простроения моделей нужно применять в таком случае? Что гуглить на эту тему?
>>1636187Оканчиваю, довольно успешно, но по спецухе придется за копейки ишачить, переводчики не ценятся в пердях>>1636297Довольно простые, на смекалочку
>>1636345Посмотри на то, как организуют модели(сущности) в симфони.Там это обычные классы без какой-то логики, кроме геттеров/сеттеров.Вся логика в сервисах лежит.Общение с базой в репозитории.Итого твоя сущность - набор её атрибутов и отношений.
>>1636483Думаю, с1 можно натянуть точно. Технический шарю, обычный тоже, но был положен болт на сленг, хотя наверстать можно за месяц-два при желании.
>>1636490Это же золотая жила.Катись на апворк, там больше нужен инглиш, чем собственно навык разработки.
>>1636519>больше нужен инглиш, чем собственно навык разработкиВ смысле попиздеть за жизнь с заказчиком, а не работу сделать?
>>1635552 Спасибо я в курсе, предположим , что в этой задаче я работаю с огромным количеством данных, я хочу научиться пользоваться yield, и как мне казалось я все понял , но в моей задаче он не работает и я не понимаю почему
>>1636519Хз, это дно, как по мне, все выпускники сосут лапу за минималку, самые предприимчивые дают занятия с личинками и набивают неплохую клиентскую базу.
>>1634746Bump определением абстрактного класса Employee.У меня мало опыта написания скриптов на PHP, поэтому опять прошу помощи и напутствия. Вопросы остались те же, однако основной - #1. С исходными данными какого вида мы работаем в данном случае? Помогите, пожалуйста.
>>1636821В айти навык инглиша важнее навыка разработки.Кодинг можно подтянуть даже во время проекта. А вот инглиш нужен здесь и сейчас попиздеть с клиентом и урвать заказ.
>>1636821>Хз, это дно, как по мне, все выпускники сосут лапу за минималку, самые предприимчивые дают занятия с личинками и набивают неплохую клиентскую базу. Чё бля? Риииил?
>>1634669>1. Какой лвл?31>2. Сколько изучали для того, чтобы вкатиться?Учился в вузе.>3. Что ещё кроме php изучили?C++, Java, Python (в рамках вузовской программы)>4. Сколько платят? (можете диапазон писать, кто не хочет писать цифры)Прогать за деньги начал с 25, щас в среднем получаю 70-100к (фуллтайм, офис, зависит от премий). Планирую перекатываться во что-то другое, где меньше веба (от него уже тошнит), больше статики в языке (динамикодрисня надоела). В качестве вариантов для перекота смотрю на Go, Java, Kotlin.
>>1636827Перед полями и методами класса нужно ставить PHPDoc-комментарии / ... */ (PHPStorm такое умеет делать автоматически, достаточно ввести / и нажать Enter).Щас в моде PHP7.4, поэтому не надо проебывать типы везде, где их можно ставить - в данном случае типы у полей класса и типы возвращаемых значений из методов.Скобки в тернарном операторе не нужны.
>>1636827Начни с другого конца. Сначала опиши процесс своими словами, без кода вообще. Типа: сотрудник пьет кофе, ему начисляется зарплата, сотрудник дрочит хуй, ему начисляется зарплата. Определи кто в этом процессе что делает, без свойств и прочей поеботы, а потом записывай что получилось с помощью кода.>>1637096Правильно пишет. Все функции должны быть типизированны, а комментарии в виде PHPDoc'ов. В скобочки бери только выражения, а не одиночные переменные и используй строгое сравнение. Избавься от этих мерзких сокращений, пиши полное название.
>>1637096>Щас в моде PHP7.4, поэтому не надо проебывать типы везде, где их можно ставитьКак на яве пишем уже.
Играюсь с паттерном репозитория и у меня тут сомнения появились.Добавляю и получаю записи оттуда я по имени - это правильно? Или только по айдишнику доставать надо, а сохранять без указания имени - просто добавляя запись?Или паттерн этот момент оставляет без внимания?
Там у вас в программе обучения сказано не пользоваться готовыми сборками серверов и делать всё самому - может оно конечно и правильно, но я вот установил опенсервер после того, как вручную всё настроил, просто захотелось чего-то лаконичного, а не так, что всё в разных папках. А ещё с доменами не получилось ничего, хотя вроде в хостс всё правильно писал и это реально удобно. Без лишней возни всё работает. Интерфейс включения/выключения/настройки удобнее, чем апачевский.
>>1637302>с доменами не получилось ничегоПоэтому и рано тебе опенсервер. У заказчика апач накроется что делать будешь? Тоже опенсервер ему поставишь на хостинг?
>>1637302Лучше какой-нибудь Laravel Homestead, опенсервер абсолютно ок штука, но он скорее тестовое окружение для быстрого калякомалякания простых крудов, реальное окружение это все равно линух и скорее всего nginx и какие-нибудь редисы и кроны и все всегда надо кастомизировать до пизды
>>1637223В определении Репозитория про это ничего не сказано: http://design-pattern.ru/patterns/repository.htmlНо твоя проблема в другом. Ты используешь паттерн не потому, что есть реальная потребность в нем, а просто потому, что ты прочел про него и хочется его добавить. И ты просто бессмысленно усложняешь код, используя сложные паттерны вместо более простого кода. В твоем случае для хранения конфига тебе не нужен Репозиторий и не нужны паттеры вообще.Когда он нужен - описано у Фаулера по ссылке: > В таких системах может быть полезным добавление ещё одного слоя абстракции поверх слоя распределения данных (Data Mapper), в котором бы был собран код создания запросов. Это становится ещё более важным, когда в области определения множество классов или при сложных, тяжелых запросах. В таких случаях добавление этого уровня особенно помогает сократить дублирование кода запросов.Репозиторий используется в сложных системах как слой поверх Data Mapper. Задача Data Mapper - сохранять объекты в виде строчек в БД или загружать строчки и представлять их в виде объектов. У него могут быть методы вроде update(), loadEntity() и тд. (описание: http://design-pattern.ru/patterns/data-mapper.html ) Репозиторий же сидит уровнем выше и позволяет делать более сложные операции с данными. Например, в Репозитории могут быть методы вроде findEmployeesByRank, countEmployees, итд. Эти методы внутри будут вызывать какие-то методы Data Mapper.То есть, задача Репозитория - содержать в себе разные методы для выборки или изменения данных в хранилище, данные в которое передаются через Data Mapper. В Доктрине есть репозитории, например. И это должна быть очень сложная система, чтобы надо было писать свои Репозитории.
>>1634746> В каком формате мы получаем input от пользователей скрипта? Можно просто захардкодить, то есть описать классы, а потом создать объекты и задать им нужные параметры. Но там куча работников, их может быть удобнее описать массивом и затем создавать объекты-работников на основе этого массива: $employees = [ // count, profession, rank [3, Employee::JOB_MANAGER, 1], [5, Employee::JOB_ENGINEER, 2], ...];> Однако у каждого специалиста есть базовый уровень потребления кофе, из которого выявляется фактический объем выпитого вещества. Тут та же система. Храним базовое потребление, а реальное - вычисляем. То есть, храним только минимальный набор исходных данных. Если хранить вычисленные из них данные, то возникает проблема их обновления при изменении исходных, это сильно усложняет код.> Стоит ли указывать принадлежность к отделу как свойство?Код, наверно, будет проще без этого. Можно просто в каждом объекте-отделе хранить список работающих там объектов-работников и принадлежность хранить не потребуется. Но ты можешь попробовать и другие варианты.>>1636827Вот тут вполне нормальный код, только слишком сокращать названия не нужно.
>>1630065 (OP)Я сейчас разрабатываю свой первый проект с использованием php. Почти его не учил, если что-то не понимаю гуглю. Я создал на php:-Комментарии -Создание страницы для блога-Добавление в базу - (Блог, студию, платформу и саму игру)-Беру некоторую информацию с других сайтов, и конечно я пока не знаю быстрой загрузки, поэтому он берёт данные только после загрузки страницы (чтобы сама страница долго не грузилась)-Выучил ajax за 30 мин-Вход и регистрация - РейтингИ кучу ещё чего, при этом я прочитал максимум 200 стр. P.S. Я знаю что это мало, но я считаю что нужно знать только базу, т.к. всё равно ты всё не запомнишь.Вот скрин из проекта:
>>1637576Без теории плохо будет. Читать тоже надо.Что у тебя по архитектуре на проекте, какие паттерны, по солиду что?Запилить по-быстрому много ума не надо. Как потом это поддерживать и не поехать?Как-то видел, где тоже один практик свою CMS для магазина делал - код был практически нечитабелен и работать с его CMS мог только он один и никакой другой разработчик. Сейчас сдохло всё, насколько я понял - в одиночку такие вещи никак не вытащишь, а для командной разработки нужно общие понятия знать и применять.
>>1637589Там всё легко, Я занимаюсь им уже два месяца, успел многое сделать. Нахожу проблемы, уязвимости и т.д. Нашёл хороший фреймворк для MySQL, называется RedBeanPhp, советую всем. На удивлении пишу так чтобы мог понять любой. Проблемы решаю с лёгкостью. Любое что придёт в голову, сделаю. Потом тестирую на работоспособность, конечно проблемы есть, но все решаемые. Я не пишу на CMS, не знаю нужен ли вообще он мне.
>>1637589Я не хочу похвастаться тем что я не знаю php и при этом пишу на нём. Нет, просто я долго учил js и эти знания мне помогают.
>>1637576Вот пример кода.Что вышло можно увидеть на прошлой фотографии. Знаю что это один из простых, просто я не знаю безопасно ли сливать сложный код.
Если не понятноНапример чтобы самостоятельно не прописывать тэги ссылок, я ставлю запятые, которые отправляются в бд. Потом с бд отправляется на сайт, где уже заменяются запятые тэгами ссылками. Но не только ссылки могут быть, но и целые таблицы, например для системных требований и т.д.
>>1637607Самое сложное скачивание фотографии для блогов. Например вы копируете фотографию и вставляете в блог. Код перебирает все ссылки фотографий, и скачивает их и менять их имя так:Номер блога: 21Значит фотографии будут начинаться с 21 потом "-" и затем номер фотографии.Я на это потратил пол дня. Т.к. большинство фотографий имело ссылки, и приходилось их чистить потом менять источник фотографий, а это нужно было делать после отправки самих ссылок по ajax, а два раза отправлять ajax я не хотел поэтому я создал массив в котором сохранил все ссылки и отправлял их так по ajax уже с измененным источником изб.
Третьего дня, прочитал про preloading в пхп 7.4 и roadrunner. Назрел вопрос хранения стейта запроса в классе Request в laravel (обьекте текущего принятого запроса). Требуется что-то вроде глобальных переменных, которые устанавливаются и хранятся в рамках конкретного запроса: например, отложенное добавление мета тегов из контроллера/миддлвора с последующим их рендером во view.
А как вообще сайт опубликовать, шоб он в интернетах виден был? Вот апач на своей бубунте я поставил, положил пару тестовых страничек. Но доступ к ним только через localhost есть, а хочется попробовать сразу в глобальный доступ залить, и чтобы адрес модный был, www.vasyan666.ru. По шапке пробежался и ничего не увидел на эту тему. Есть какой-нибудь гайд для нубасов?
Анончик, каким образом можно отследить все сетевые запросы на странице в отладчике firefox, если страница после их совершения сразу перезагружается и список запросов очищается?Пишу авторизацию, нужно отследить какие параметры внутри ходят, запрошенные и отправленные куки, а также гет пост параметры. Все что я придумал - это писать урлы происходящего записью с экрана, но это мало. У FF нет логгера запросов чтобы можно было просмотреть историю?
>>1637768Забыл упомянуть, галка "Warn you when websites try to redirect or reload the page" стоит, не помогает. при отключении жаваскрипта вообще все перестает работать
>>1637768У меня там в версии 72 есть галочка "непрерывные логи". Возможно, она скрыта в настройках. Помни только, что эти логи требуют память, так что включай галочку только временно.
По поводу curlК примеру, я делаю свои заголовки для отправки на сервер - curl_setopt($ch, CURLOPT_HTTPHEADER, $array['HTTPHEADER']);Внезапно, от этого отваливается CURL-овская отправка кук методом CURLOPT_COOKIEJAR CURLOPT_COOKIEFILEТобишь мне теперь куки надо отправлять рукамиЕсть какая-то библиотечка, преобразующая cookies.txt сгенерированный курлом, в header строку ? Хуй знает как преобразовывать, работы на 2 часа
>>1637803Так, кстати, написаны все эти популярные цмски и прочие магазины. Дешево и сердито, можно с нихуя не знания до готового проекта за неделю рвануть. Но мало кто решится это потом поддерживать.
>>1638151Лучше на дваче сидеть, чем писать такое.Потом хер найдешь лоха, чтобы спихнуть ему это говно на поддержку.Любой спец плеваться будет
>>1638190>Так, кстати, написаны все эти популярные цмски и прочие магазиныПоэтому избегаю работы с ними. Хватило опыта с modx и prestashop. Больше туда ни ногой
Помогите, есть сайт - https://www.languagesandnumbers.com/how-to-count-in-russian/en/rus/Там я нашел скрипты - https://www.languagesandnumbers.com/javascript/all-js-20.jsМы посылаем числа цифрами и получаем ответ буквами на самых разных языках.Мне нужны все цифры определенная часть на всех языках, хотя бы и в столбик в sql базе ноутпаде.Есть варианты - написать бота или подобрать и понять пост запрос.Собственно, яваскрипт я вообще не знаю, подскажите, пожалуйста, правильный пост запрос или объясните как скрипт работает и как его подключить к нормальному языку программирования.
>>1638207То что он застрял в говне - тот кто такой код пишет, у него явно трудности с изучением технологий - это его проблемы. Только не надо вот тут всяких маняфантазий, что можно не развиваться, делать говно и хорошо зарабатывать. Все такого уровня макаки сидят на хлебе с водой в своих питомниках.
>>1638274А какой смысл объяснять тебе логику работы сайта и как всё это подключить к нормальному языку программирования и почему тут не нормальный? а какой нормальный тогда, если ты ничего не знаешь?Консультация разработчика денег стоит, или сам разбирайся.
>>1638281>такого уровня макаки сидят на хлебе с водой в своих питомникахДа вполне неплохо зарабатывают так-то. С этим говном работать - не всякий пойдёт.А кто-то просто больше в уши заказчику срать лучше умеет, чем программировать.
>>1638274Пост запрос отправляется на 'ajax/en/' передаются два параметра "numberz" - число и "lang=" - код языка. К примеру запросить курлом:curl -d "numberz=1488&lang=ukr" -X POST https://www.languagesandnumbers.com/ajax/en/
>>1638296Большое спасибо. >>1638287Мне всего лишь нужен был пример правильного пост запроса, либо если там все сложно, то какие-нибудь подсказки. Теперь я смогу сделать что мне нужно зациклив пост с помощью какого-нибудь си шарпа, а ты злой.
Умные мира сего, подскажите дурачку, рабочий ли это вариант решений задачки, или я совсем перемудрил?https://ideone.com/DnEFmZ
>>1637691Адрес модный надо покупать. Если хочешь на локалке по приколу - открываешь 80 порт, в роутере или что у тебя там. И потом заходишь по ip адресу. А так, копай в dns.
>>1638337>Адрес модный надо покупатьАдрес и хостинг. Ну или вместо хостинга - белый IP, чтобы из интернета виден был.Лучше хостинг - там и панелька тебе с настройками нескучными, и апач\нгинкс настроенный уже, и статистика.
>>1638330К тебя for какой-то всратый. Лучше использовать более стандартные конструкции. Если у for один из элементов выражения не нужен то обходиться while. Что -то типа https://ideone.com/2Qui6k но в общем-то похуй.
Сап. Хочу вкатится в работу, но не знаю, хватит ли того, что я сейчас умею. Охуенно знаю(по моему мнению) PHP, что могу с закрытыми глазами писать качественный код. С паттернами, сокетами и базами данных тоже работал, свои игры пилил.Немного под-учил JS, но мне он не понравился, поэтому только на уровне чтения. Ну и конечно могу в (HTML, CSS), тоже на уровне чтения. Думаю начать учить фреймворки для пыхи, для работы, но их много, и я не знаю какой востребованней.Что думаете?
>>1638375Если правда то, как ты охуенно знаешь пхп и как с закрытыми глазами жонглируешь всякой хитровыебанной херне - можно даже сразу на сеньора аплаиться. Но может статься, и даже вероятно, что ты свой уровень знаний перецениваешь. На собесах выяснишь.>Думаю начать учить фреймворки для пыхиПо твоим описанным знаниям - ты все 3-4 востребованных фрейма в пхп выдрочишь за недельку лучше, чем мидлы.
>>1638375>могу с закрытыми глазами писать качественный кодМогу найти кучу говна в твоём коде.>С паттернами, сокетами и базами данных тоже работалНевеликое дело - по докам разобраться.>Немного под-учил JS, но мне он не понравился, поэтому только на уровне чтения.Так и пиши - не умею в ЖС.А я умею - писал на нём парочку игор и кулькуляторов на странички.>могу в (HTML, CSS), тоже на уровне чтенияМогу верстать на бутстрапе, флексах и гридах.К этому я ещё имею пройденный ларакаст, туториал, тестовое на круд и апи, собственную пет в процессе.Иду на джуна на следующей неделе.>Что думаете?Думаю, что ты слишком большого о себе мнения. У тебя только базовые знания.
>>1638388>Если правда то, как ты охуенно знаешь пхп и как с закрытыми глазами жонглируешь всякой хитровыебанной херне - можно даже сразу на сеньора аплаиться.Ну, я еще с 2014(примерно) года начал задрачивать пхп, просто для себя. Ну и примерно тогда же начал пилить свою игру, так и по мере продвижения узнавал что то новое. Но все-таки, даже если я нормально знаю пыху, это не значит что у меня есть опыт работы на ней с кем-то вместе. Поэтому боюсь обосраться. От чужого кода воротит.>ты все 3-4 востребованных фрейма в пхп выдрочишь То есть, все сразу учить? А потом пойти на собеседования?Понятно.>>1638398>Могу найти кучу говна в твоём коде.Я и сам могу найти в нем кучу говна, но в чужом еще больше.
>>1638415>От чужого кода воротитВажнейший признак лоулевел программиста - непереносимость чужого кода.В норме - он читается примерно как свой, если написан более-менее прямо.Я бы на твоём месте показал тут свой гитхаб - чтобы отзыв кто-нить дал. В своём манямирке ты можешь быть супер-пупер синьором, тогда как ИРЛ у тебя, кажись, проблемы.
>>1638421>Важнейший признак лоулевел программиста - непереносимость чужого кода.И свой у меня тоже воспринимается не очень, если он старый. Это то же "важнейший признак"? Ладно. Я могу читать и понимать чужой код, но у меня навязчивая идея его переписать.>Я бы на твоём месте показал тут свой гитхабНе выкладываю ничего на гитхаб.
>>1638427Из второго вытекает первое. Допустим, я написал код и выложил его на гит, потом я захожу через год и вижу этот мусор, понятное дело мне будет больно кому-либо его показывать. И я понимаю, что если сейчас что нибудь выложу а потом потеряю доступ к аккаунту, забыть это будет непросто. Обычно свой написанный код я просто удаляю через какое-то время.Но думаю, на работе(если собеседование пройду), я смогу как нибудь себе в голову вбить не обращать внимание на это.
>>1637628А разве метатеги - это свойства HTTP-запроса? Логичнее было бы сделать объект Лейаут (метатеги, параметры меню и все, что относится к лейауту), например, создать его в базовом классе контроллера до обработки запроса, в ходе работы контроллера менять его свойства, и в конце передавать во вью.Не знаю, правда, получится ли такое в Ларавеле. Может, это не в контроллере надо делать а как-то по другому.
>>1638441Просто учти, что без внешней оценки твоего кода прогресс невозможен.Либо самолюбие, либо программирование. У тебя пока что - первое.
>>1638415>То есть, все сразу учить? Если ты описал свои скилы корректно - то тете даже учить не придется. В этом суть.
>>1637628>отложенное добавление мета тегов из контроллера/миддлвораИз откуда? Почитай в ОПпосте и на хабре про MVC - у тебя ересь какая-то.
>>1635359 Обычно в начале выполнения кода ставят глобально обработчик непойманных исключений (set_exception_handler()). В нем ловят ошибку, логгируют ее и выдают страницу 503. Многие фреймворки уже содержат в себе такой код.Обрабатывать исключение "на месте" как раз противоречит логике использования исключений - в таком случае мы можем вообще его не выбрасывать, а сразу вызыввать логгер. Только вот это неудобно, так как придется эти вызовы логгера раскидать по всему коду. И нельзя будет из выше расположенного кода решать, что делать при исключении.>>1635530 Проблема тут: > generateCombinations($n, array_merge($values, [$i]))Ты вызываешь функцию-генератор, а она при вызове возвращает итератор, а не выполняется. Когда ты будешь пытаться обходить этот итератор с помощью foreach, тогда она будет по шагам выполняться (останавливаясь каждый раз на yield и возвращая одно значение на каждый шаг foreach).То есть надо так:// Функция не выполняется в этот момент, а лишь вернет итератор$iterator = generateCombinations(...);// Функция выполняется, доходя до yield и возвращая управление в foreachforeach ($iterator as $value ) {yield $value;}Так как такое требуется часто делать, то есть специальная конструкция yield from, которая заменяет вышеопесанный код.
>>1636012letsencrypt выдают, но временный и нужен сервер с DNS и белым IP.>>1636345Ты используешь ActiveRecord? Попробуй вместо того, чтобы пихать все методы в модель, создать сервис для конкретной подзадачи и пихать методы в него.Не $user->getLatestPosts(), а $postService->getLatestPosts($user), $friendsSvc->getTopFriends($user).
>>1638519То есть, правильно писать так, чтобы в контроллеры взаимодействовали с моделями только через эти сервисы-посредники?Это делается для структурирования кода или для того, чтобы не создавать лишних методов моделям? Или оба?
Есть какие то методы повышения концентрации? А точнее продления. Надо над кодом сидеть по 10 часов вместо 8, не уставая.Пока придумал - каждые 1.30 часа работы - 30 минут лежать, обдумывать тз и листать мемы. Лежание хорошо восстанавливает силы. Есть ли еще варианты?
>>1638794никак. если ты совершаешь большую работу мозгом, то он устает. пробовать сидеть через силу не эффективно. единственный способ - тренироваться и набивать руку превращая все в рутинные задачи
>>1638794я например, делал марафоны. сначала по 5-6 чаcов, 10 часов и так до полноценного дня, а может даже и несколько дней с перерывами. хотя у меня никогда не получалось больше нескольких дней, всегда отрубался прямо за компьютером.
>>1638453>>1638508Проблема именно в пхп 7.4 и роадраннере - пхп там больше не умирает при запросах, как при обычном режиме. Вопрос скорее в другом: как и где более правильно хранить и отчищать для след запроса подобные данные. Еси пример с мета тегами был не очень, то пусть будет пример с капчей: в проекте стоит в куче миддлваров триггеры на рекапчу (при успешном выполнении запрос просто повторяется с добавленым challenge response). Если с капчей все ок - в синглтоне просто меняется стейт на «он уже прошел капчу на этом запросе, его триггерам не трогать».Все это идеально работает в модели «пхп бутится, обрабатывает запрос, отдает респонс, умирает». А в модели «загрузился и отдавай респонсы» требуется отчищать данные для след. запроса https://github.com/Hunternnm/laravel-roadrunner
>>1638855>preload призван бороться с оверхедом при подключении файлов>RoadRunner мы пока не нашли эффективного примененияИ это блядь в баду, где триста серверов на пыхе на пределе хуярят.Дядь, храни данные в мемкеше/редисе и не выебуйся.
>>1638704Это делается для того, чтобы не совать все в модель, От чего она становится антипаттерном God Object. Логичнее сделать FirendsService и в нем все операции с друзьями, PostsService для постов, LIkeService для лайков. В моделях можно делать методы, но не относящиеся по смыслу к сервисам и простые. Например: $post->calcRating() , $user->isVip().
>>1638855Давай подумаем. Логичнее всего где-то в контроллере, так как это он обрабатывает запрос. На каждый запрос создается свой контроллер, а в нем свой объект Layout. Доступ к Layout есть только у контроллера, а другим в него лезть незачем..Другой вариант - сделать свой RequestContext, в котором есть Request, а также доп. методы вроде: detectCity(), detectLanguage(), requiresCaptcha(). Передавать в контроллер наш RequestCOntext вместо Request. Сюда, правда. метатеги никак не приварить. Не часть это запроса. Из плюсов: доступ есть только в контроллере, у постронних классов его нет.Мне кажется, это правильный дизайн, когда какие-то данные доступны только там, где они нужны. Мешает писать неправильный код.
Аноны, а поясните мне пожалуйста за рынок парсинга сайтов ? Он существует? Кто нибудь этим занимается?
>>1632501 →>Ну ок. Вообще, есть еще вариант попробовать поменять алгоритмы шифрования. Асимметричное шифрование медленное. Потому часто (например, в SSL (и в HTTPS)) с помощью асимметричного шифрования шифруют только ключ, который используется в быстром алгоритме симметричного шифрования. А сообщения уже шифруют симметричным ключом.Мне нравится эта идея. Можно секретные чаты сделать медленные с асимметричным шифрованием, а простые с симметричным. Нужно изучить как это можно сделать, и сначала сделать хотя бы секретные чаты, иначе разработка может затянуться на целую вечность!
>>1639729Потому что я хз как гуглитьПо тегу похапе высвечиваются вакансии и какая-то нерелейтед херняДа и не нужны мне каналы вида "последние новости мира пхп". Хочу странички обычных вкатышей, которые иногда постят что-то пхпшное, а иногда мемчики и околорабочие смехуечки. Как это гуглить вообще?
>>1637453>>1637096>>1637098Очень благодарю за подсказки! Помогли тронуться с мертвой точки.Обновил PHP на своем Ubuntu, чтобы воспользоваться type hints для элементов классов. Теперь, кстати, предпочитают термин Type declarations:https://www.php.net/manual/en/functions.arguments.php#functions.arguments.type-declarationОднако возникли дополнительные вопросы.1) Читал ранее, что комментарии к свойствам и методам рекомендуется оставлять только там, где они не совсем интуитивны. Я оставил пояснения почти перед каждым свойством и методом. Это неправильный подход?2) Выше анон назвал мои сокращения мерзкими и предложил использовать полные названия. Я это осуществил:https://ideone.com/G9GxATВозможно это мое мнение, но как раз-таки полные названия мне кажутся совсем не элегантными и делают код менее компактным. Первоначально c целью избежать этого я единожды использовал комментарии-пояснения в декларации класса. Какие мнения на этот счет?3) По исходным данным. Это меня интересует больше всего.$employees = [// count, profession, rank[3, Employee::JOB_MANAGER, 1],[5, Employee::JOB_ENGINEER, 2],...];Идею понял: конструирую функцию, которая из массива данного формата будет выплевывать объекты-сотрудники и складывать, например, в другой массив ($employeeObjects). Однако опять же: почему в начальном массиве не задаются два дополнительных свойства, отражающие статус руководителя (true | false) и принадлежность к департаменту? Ведь, во-первых, $chief = true | false - это одно из свойств abstract class Employee. А во-вторых, следующим шагом мне, скорее всего, нужно будет создавать объекты отделов, которые одним из своих свойств будут иметь штат сотрудников. Я так понимаю, что это свойство я буду определять методом-конструктором, который будет получать аргументом тот самый массив объектов-сотрудников ($employeeObjects), в которых принадлежность к отделу никак не обозначена. Другими словами, как конструктор из общей массы объектов сможет выцепить сотрудников, которые относятся к определенному департаменту, если из "опознавательных знаков" у них есть только название должности и ранг?
>>1639732приятно видеть таких как ты вкатывальщиков.Это значит что таким как я ничего не угрожает.>>которые иногда постят что-то пхпшное, а иногда мемчики и околорабочие смехуечкиПродолжай сидеть на таких страничках.
>>1639732>Потому что я хз как гуглитьТогда забей на вкат - ты не потянешь, если инфу искать не умеешь в нете.Я тебя в свои приглашать не собираюсь - ты ленивый и довольно тупой. Не мочь найти сообщество программистов в сети это уже показательно.
>>1639818Я уже с декабря как джун, чини детектор. >Продолжай сидеть на таких страничках.Охуеть, вот это новости. Для двача кодеры должны быть угрюмыми и 24/7 читать только документацию, можно даже вместо сна
>>1639812>Однако опять же: почему в начальном массиве не задаются два дополнительных свойстваЕсли ты ждешь конкретный ответ, типа потому что, вот это храним, а вот это не храним, то его нет.Так сложилось, так было надо, вышло как вышло, на проектировали что на проектировали. В реальных проектах такая хуйня постоянно. Если у бабушки хуй, и у белки хуй, и на лбу хуй, то замеряем их длину и если сумма длин четная, и марс в доме юпитера, и его хуй тоже четный, то внучок руководитель. И сопровождается такое вычисление запросом в базу на две страницы. А все потому что нужно все в реальном времени, а вдруг у белки хуй подрос.
>>1630065 (OP)Смотрю уроки по созданию CMS на Slim и немного охуеваю от этих ваших MVC, PHP работает в многопотоке да? Как он блять будет выдерживать нагрузку если 100 человек одновременно запросят разные страницы? Это же пиздец какое дрочево и хуевертело со всеми этими классами, роутерами, просто тысячи операций обращения одного роутера в другой и обратно через один главый файл index.php, или для PHP это норма совершать 100500 операций со созданию сессии, считываю сессии, запросу к бд, считываю роутера и выводу нужного содержимого из базы в зависимости от того что считал роутер, в общем пиздец, сколько человек в онлайн PHP и сама база MySQL может выдержать с такими свистоплясками? Мне кажется 8 ядерный сервак загнётся от такого количества вычислений от 100 человек одновременно
>>1640115>хуевертело со всеми этими классами, роутерами, просто тысячи операций обращения одного роутера в другой и обратно через один главый файл index.php>совершать 100500 операций со созданию сессии, считываю сессииФайловая система кеширует в памяти те файлы, к которым идёт постоянное обращение.>запросу к бд>выводу нужного содержимого из базыБД тоже кеширует повторные запросы.>Мне кажется 8 ядерный сервак загнётся от такого количества вычислений от 100 человек одновременноВсе данные есть в гугле. Не надо тут вести себя как девочка.
>>1640115Как человек, работавший с хайлоад PHP проектом говорю: хуево выдерживает. PHP не работает в моногопотоке, а реляционные базы пиздой поростают при работе с таблицами от нескольких миллионов записей.Загвоздка только в том что как правило проблемы с нагрузкой вылезают через много лет после старта проекта. Ты быстро стартуешь с пхп и MySql, набрав дешевых пхп макак, все охуенно, бабки текут, клиенты довольны, все их хотелки делаются за день максимум. А потом у тебя комок легаси говна, переписать который на нормальный язык будет стоить миллионы долларов и тысячи человекочасов. Даже если бабки не проблема программистов на норм языке хуй найдешь в нужном количестве, а в недостаточном количестве сроки растут до нескольких лет. А клиенты уже сейчас охуевают от ошибок, падений и прочей залупы, которую латают какие-то опездалы, потому что норм программисты давно съебали из легаси ада.
>>1640367Что за хуйню ты написал. Через много лет все превращается в легаси и все сталкивается с трудностью поддержки
>>1640369На ноде проекты столько не живут. Как только разработка заканчивается подрядчик растворяется в тумане , хотя криптолох с бабками к тому моменту сам теряет интерес к хуйкоину, а для пиздокоина делается новый проект
Помогите советом. Есть пост форма для отправки комментариев, при обновлении страницы форма отправляется повторно в БД.Как сделать что бы при нажатии на ф5 не делался еще один такой же комментарий, в какую сторону копать? Спасибо.
>>1640403При получении формы делать редирект на эту же страницу. Попахивает костылем но нектостыльных способов нет.
>>1640408Это не костыль а стандартный способ независящий от серверного языка.1. Форму обработали нормально - редирект2. Форму обработали с ошибками - без редиректа, иначе пользователь потеряет ввод
>>1638337>>1638341Блин, у меня адрес динамический похоже. Да ещё и в другой подсети. Ну ладно, в будущем может стоит задуматься о выделенном канале чтоли
>>1640408Хорошо, а как сделать редирект страницы на саму себя? Прочитал про функцию header, а куда ее воткнуть? Перед кодом в самое начало страницы или в условия проверки?
>>1640367>>реляционные базы пиздой поростают при работе с таблицами от нескольких миллионов записей.Это десять высеров из десяти.Мимо работаю с базой в которой 500 таблиц и в самых больших больше 50 миллионов записей.
>>1640482Ну так сделай селект десяти случайных записей по двум параметрам. Если в 100мс не уложится значит про хайлоад можешь забыть.
>>1640480Все хедеры должны отдаваться до того как будет выдан любой другой вывод (с помощью echo к примеру). Куда ты ее воткнешь нет разницы, главное чтобы до нее небыло другого вывода (кроме других header())
>>1640561Название переменной пиздит. Это не проценты. Чтобы увеличить число на три процента нужно его умножить на 1.03
>>1640575>а как становится понятно что нужно умножить именно на 1.03 ? y = x + x ✶ 0.03y = x ✶ (1+0.03)y = x ✶ 1.03
>>1640575У нас есть какая-то сумма: S.3 процента от него это: S3/100.Нам нужно эти 3 процента добавить к изначальной сумме: S+S3/100.Выносим S за скобки: S(1+3/100) = S 1.03
>>1640598Увеличить на 3% - это значит взять число + 3% или 103% от числа. Так как 1 процент = 1/100 числа, или 0.01 умножить на число, то 103% это 1.03 умножить на число.
>>1640403Урок по обработке форм тебе может быть поможет: https://github.com/codedokode/pasta/blob/master/forms.md
>>1640734объясните нахуя нужнн данный урок, если реально никто так формы не обрабатыввает уже наверное лет 10
>>1640766Дурик картоный, ты путаешь современные либы и механизм, который класссика знать надо. Твои современные тухнологии на святом духе работают?
>>1640782Рассказывай что там в уроке не актуальноНе описано как в твоем любимом фреймворке десериализация пост запроса происходит? Так же это не основы, зависит от фреймворка, але
>>1640787имхо вообще какая-то дикая хуйня, где контроллер, работа с бд и вьюха в одном файле расположены.это не основы, а просто какое-то устаревшее говно из-за которого потом нужно долго вникать в MVC. я сам начинал с этих уроков если что..
>>1640791Причем здесь эта хуйняОсновы это1. Как браузер отправляет формы при субмите form enctype2. Почему без редиректа он заставляет повтрно сделать отравку3 Как сериализовать данные формы js сом и сделать аякcом пост запрос. FоrmData4. Обработка на сервере. $_GLOBALS, $_REQUEST 5. Оптравка файлов6. Обработка аякса на сервере json_decode
>>1640800если ты вкатываешся, то тебе хватит любого бесплатного, а если ты работаешь, то тебе должны купить
>>1640501Я понимаю правильно, если ставлю хедер, то даже при первом запросе страницы она будет редиректить на саму себя?
>>1640792>нетбинсаКривая хуета. Больше на студенческую поделку похоже, чем на норм иде.Интерфейсы из коробки - привет из 90х сетчатку такими выжигать заебца, не поддерживает многие современные форматы, лезет в вендор и гордо показывает там ошибки, периодически подтормаживает, у меня позже ещё и глючить начал - по полчаса сканирует файлы проекта, а в гугле внятных советов нет. Прямо как на десктопном линуксе каком-то, где постоянно что-то не так работает.
>>1640887>нетбинсаТак я потому и спрашивал что хочу с этого гавна слезть. На работке еще как-то норм было, там наверное версия старая. Перевели на удаленку. Скачал новую версию. Под нее нет плагина для автосейва. Думаю типа - 2020 год, в IDE нет автосейва, наверное чувакам норм без него, может я чего не понимаю. Начинаю гуглить какого хуя вообще в нетбинсе нет автосейва. Нахожу какого-то клоуна который пишет что ему заебись без автосейва потому что бывает такое что пишешь весь день код, а потом понимаешь что все хуйня. И можно сразу файл откатить, а не жать кучу раз ctrl+Z. Меня это сразу напрягло - когда в комньюнити такие клоуны то глупо ждать нормальную IDE. А сегодня совсем пригорел. Делал новую модель, из верстки вытянул пачку имен переменных для свойств. И решил типа по крутому мультикурсором им сразу всем private вписать. Гавно после первой введенной p показывает список автодополнения. Если выбрать прайват то оно вставляет прайват во все строки. Но при этом меняет имена все переменных на имя переменной из первой строки. Если отменить автодополнение ескейпом то гавно заодно сбрасывает и мультикурсор. Короче решил менять. Шторм купить не проблема, но он у меня почему-то вызывает необъяснимые негативные эмоции. Попробую еклипс, если не зайдет то прийдется шторм жрать.
>>1640912Некоторые на vscode сидят. Можно нагуглить списки плагинов для пхп или другого языка. У меня он в качестве временной замены шторма и других жидбрейнс идешек лежит, иногда помогает.А еще тут нужен вимоеб, чтобы постучать нам исполинским хуем по лбу за использование оверхед говна вместо божественного.
>>1640887>Кривая хуета. Больше на студенческую поделку похоже, чем на норм иде.Иди нахуй, гандон! Сам James Gosling сидит на нетбинсе, работая в Amazon. Ты умнее его?А так да, нетбинс изначально разработали студенты, но проект купили сантехники и сделали свободным ПО.
>>1640912>он у меня почему-то вызывает необъяснимые негативные эмоцииДа такая же хрень, если честно. Сама ИДЕшка вполне годная, но эта система подписок и отсутсвие альтернативы. Да и везде его советуют - заебало.Сам на нетбинсе сидел - прост накипело. Это же всё детские болезни и несерьезно нифига.2к20 год, а из толковых редакторов один нотепад++>>1640914>вимоебЯ как-то поставил и не понял нихуя. Какие-то команды надо вбивать на элементарные действия, интерфейс прямо из ДОСа почти. Люди реально на этом сидят?
>>1640937>Люди реально на этом сидят?Да. Но он кастомизируемый, и потому в итоге не выглядит так же, как его голая версия. Впрочем сейчас все такое, не знаю почему это игнорируют вимоебы. Полная свобода настройки хоткеев сейчас тоже везде (только вроде как в контексте вима это немного другое), в том числе под схему вима. В общем да, сидят еще как и других подсаживают. Сам многих таких знаю.
>>1640937>vimЯ считаю его нужно юзать с тайловыми оконными менеджерами, тогда пропадает нужда в мышке отчасти. Ещё плюсом можно накинуть что открывает проекты быстрее, меньше жрёт оперативы, и какая ни будь замена слов работает быстрее.
>>1640937>Я как-то поставил и не понял нихуя. Какие-то команды надо вбивать на элементарные действия, интерфейс прямо из ДОСа почти. Люди реально на этом сидят? Потому что надо large version ставить, она удобна. Не надо в командный режим переключаться из-за опечатки. Хотя в виме мало смысла, если в 10-пальцевый набор не умеешь.
>>1640950>>1640951Я бы не прочь его заценить, но отдавать в таком виде, как они это делают просто глупо.Пришёл пацан на сайт и хочет вим. Ну дайте ему демку, где всё красиво, с туториалом небольшим, в стиле того же ПхпШторма, чтобы он заценил и тут же кончил. Ну не умно отдавать ему кусок полурабочий - "на, копайся с доками сам сколько хошь. Я сильно настраиваемый - настраивай меня полностью!".
>>1640962А зачем им это делать?Если хочешь то пердолься, если не хочешь, то непердолься. В целом я тебе так скажу, если ты сидишь на линукс, и ты хочешь чего то нового, то ставь тайловый оконный менеджер и вим, попердолишься неделю или больше, может понравится и останешься. Если всё и так устраивает, то оставайся в своей иде.Тайловый оконный менеджер + вим это удобная и приятная глазу штука правда придётся какое то время красноглазить, я лично пересяду, но мне ща нужна винда кое какое время, как пропадёт нужда перекачусь.
>>1640974>тайловый оконный менеджерДумал попробовать - хвалят их часто. Они же на Луа конфигурируются, если не ошибаюсь?
Анончики, нужен небольшой совет. Допустим есть функция которая принимает кучу значений и как-то их обрабатывает. Напримерfunction predictAge($age1,$age2,$age3,$age4,$age5,$age6,$age7){}Собственно вопрос, как их записать в массив, чтобы дальше с ними работать? Ничего в голову не приходит кроме как сделать это вручную.
Как максимально быстро вкатиться в фриланс, что нужно знать/уметь? С этими короновирусами скоро ламповую работку на заводике прикроют и надо будет зарабатывать на пакет доша.
>>1641052https://www.php.net/manual/ru/function.func-get-args.php>>1641128Либо говносайты и магазины на cms клепать, либо писать парсеры для сомнительных порталов, либо мобильные приложения. Фриланс это для малого бизнеса краткосрочные проекты по 30к
>>1640593>>1640596>>1640598Получается, если я такие простые задачи не могу решить сам, то мне нечего делать в php?
>>1641267Нет, тебе никто не запрещает учить php, просто вопросы у тебя пиздец глупые, ты вместо того чтобы спрашивать попытался бы гуглить это куда более важное умение, у меня знакомый, который вкатывался, нихуя не знал, но на софт скиллах и умении гуглить смог найти себе компанию, где из него сейчас делают человека, правда на js.
>>1640766Не согласен, что алгоритм устарел. В фреймворках вроде Симфони примерно так и происходит. Там есть и проверка CSRF, и валидация данных в форме, и POST/redirect/GET для защиты от повторной отправки. Вот я открываю мануал по Symfony Forms https://symfony.com/doc/current/forms.html#processing-forms и что же я вижу? Точно такой же алгоритм, только используется класс-помощник, представляющий объект формы. Опиши тогда более "актуальный" алгоритм, если этот, по-твоему, устарел.>>1640791 А где я написал, что все надо писать в одном файле? Описан лишь алгоритм, естественно, не надо все писать в одном файле, а надо делать вызовы сервиса-валидатора, шаблониатора и тд.
>>1641317Скорее всего тебе никто не поможет, если не гуглится и нет доки по конкретной цмс. Только в исходники цмс лезть и курить
Какие есть хорошие гайды по Selenium WebDriver на русском?В js понимаю слабо, в английском слабо, в php хорошоМожет есть какая не устаревшая готовая библиотека на Github с примерами работы? Каждый шаг дается с трудом
>>1641656начиная с декабря регулярно тут спрашиваю про это. пока никто не откликнулся. видимо никто на этом каличе не работает. в гугле есть конечно такие вопросы, но все ответы на них это хуйня в стиле: ой у вас тут модуль/тема/еще чтоугодно стандартные/бесплатные и они говно. а вот купите мой модуль всего лишь за 499$ и там уже все из каробки работает и есть поддержка лично от меня. вообще в 99% случаев такие ответы.
>>1642283>начиная с декабря регулярно тут спрашиваю про это. пока никто не откликнулся.Так ты спрашивай нормально, а не в вакууме.Что за проблема, что за ЦМС, что сам пробовал, про деньги намекни и контакты оставь.Нормально сделай, короче, а не через жопу.
>>1642285да так и делал. но с тем учетом что никто не отвечал - забил. даже на битрикс отвлекались, а тут вообще все глухо
>>1642283>начиная с декабря регулярно тут спрашиваю про этоСходил бы на фриланс биржи. И если там тихо, то нахуй дропай задачу, возвращай деньги клиенту и не еби мозг ни себе, ни остальным
>>1642300Тут ещё такое дело: если ты решишь человеку эту проблему, то он и впредь к тебе с аналогичными вещами обращаться будет. Но дело в том, что никому не всралось разбирать левый говнокод, написанный жопой, не умеющей в проганье и нормальные абстракции. Т.е. нужно будет постоянно это говно разгребать за мелкий прайс. Нахуй надо короче.С битриксом сколько, вон, жопоболи, а он документирован и куча форумов по нему.
>>1642228Заебись поставил php-webdriver из инструкций на гитхабе0.5 ответов даже в англоязычной средеХуя тут ошибка Fatal error: Uncaught Error: Class 'DesiredCapabilities' not found in ? Я же все поставил по инструкции
Как преобразовать обьект с защищенными параметрами в массив? как получить доступ к элементам такого обьекта?
Господи, какая же сложная реализация правильного решения задачки о размене в банкомате.Скажите, что я не один тут такой тупой?
О великие и светлые умы, свет и хлеб нашего будущего, повелители компутеров и интернетов, объясните глупенькому дурочку смерду, где я так оплошал и почему в данном случае проверка выходит ложной? https://ideone.com/h1L0Q6
>>1642665Я на верном пути методом тупого перебора? Пиздос конечно сложная вещь это проганье.Реально нужно уметь декомпозировать задачу. Начало что-то получаться только после того, как блок while отдельно решил пилить от for и потом дошло как его всунуть.это конечно совсем приблизительный набросок, без учета кол-ва банкнот.
>>1639812>>1637453ОП, взгляни на мое решение докризисного Вектора, пожалуйста: https://ideone.com/glM8EgРешение вышло super long-winded, в 4 файлах: classes.php, input.php, main.php, padstring.phpНа скрине результат.
>>1642774Осознал, что хуйню сделалТеперь вот так: https://ideone.com/kR1W7aУмненькие, проверьте, пожалуйста, надежность такого тупого перебора.
Хочу выбрать какой-нибудь бэк-язык для простых проектов. Пых это лучший выбор до сих пор или его решает уже пистон? Я просто в танке
>>1640115>Смотрю уроки по созданию CMS на Slim и немного охуеваю от этих ваших MVCСейчас ради интереса глянул пару уроков - ну и срань. Зачем вы это говно смотрите? Автор курса по уровню в разы слабее местных джунов и: всё усложняет, везде лепит свои синглтоны, зачем-то вручную при это довольно хуёво работает с неймспейсами когда рядом композер лежит, не понимает MVC и лепит контроллеры поверх контроллеров, какие-то левые проверки defined('хуета') or die('аццесс запрещено!!111') в стиле вордпресса зачем это делать в файлах с объявлениями классов?, при этом любит понтоваться и говорить микрофреймворк, полное квалификационное имя и аналогичные детские выебоны. Ещё и других этому учит.Просто пиздец.
>>1643115Еще идея есть: через деление суммы на каждый номинал найти максимально возможное целое кол-во банкнот (округлив результат деления) определенного номина, которое может содержать сумма и перебирать их примитивным комбинаторным методом типа декартово произведение или как тамНорм?
Сап двощь, в прошлом треде уже спрашивал. Где в гите хранить конфиг нгинкса например, если он важен при тестировании системы в целом? Если есть два приложения, главное на пыхе, и наносервис на жсе, роутинг через конфинг нгинкса происходит потому что а чего нет. Как это решалось до всяких докеров?
Привет, ребят.Такое дело: решим обмазаться ПДО, но у меня выдает 500 ошибку, дескть, запрос обработать не может. Я, блять, в шары долблюсь где-то или что?Другие запросы работают: достать из БД, чтоб проверить, есть ли логин, добавить в БД логин, это все работает, а как надо препейр/экзекут - нихуя. В чем дело?
>>1643384Че за хуйня? Ничего не делал и оно заработало через бинд парам с заглушкой, через execute('$log').Это троллинг духа-машины, что ли?
А если у тебя в купе с судимостью и образованием 6 классов дикое желание познать прерогативы IT индустрии, стоит ли здесь искать содействия? Ибо качество здешних обитателей, как я понимаю, дисперсионно ровно настолько, насколько противоречива моя жизнь в вышеуказанном предложении.
>>1643522Ну и хули? Читал - не работало, показал погромисту с работы - не работало, запустил спустя день - заработало. Я нихуя не изменил в коде, а лишь сменил нотпад++ на пхп шторм, и запустил тот же свмый файл с хостинга.
>>1643313Создай папку в корне и храни. Но я бы на твоем месте сделал шаг дальше и хранил докер образ, в котором прописал куда этот конфиг копировать. Да и вообще docker-compose охуенная тема чтобы все окружение одной кнопкой поднимать и nginx и php-fpm и базу.
>>1643533К чему ты про свою судимость и образование тут рассказываешь?Думаешь тут святые сидят? Я, например, тоже не ангел ни разу, особенно в молодости был да и щас старина не отсохла. Очень даже повезло, что не набутылили.Хочешь учиться - учись, нафига у кого-то спрашивать разрешения?
>>1643533Два раза отчисляли из ВУЗа, работаю веб-макакой за 30к. Главное это желание учиться. В твоем случае еще и алгебру хотя бы до уровня 9 класса подтянуть надо. Чтобы мозги лучше думали
Аноны, у меня чет шляпа, нужно отсортировать массив руских слов.Почему на ideone сортирова работает:https://ideone.com/qT4HWnА на моем компе нет?Свою функцию сортировки написать спообен, но чет непонятно почему встроеная не работает.
опенкарт кун снова в треде. анон поясни вот такую вещь. пушу свой проект в гит ветку вместе со своим дампом бд. другой человек полностью выкачивает мою ветку и накатывает сам этот дамп. и ему на главной не выводит те же самые блоки что выводятся у меня. эти настройки по выводу на главной странице этих блоков хранятся в бд. в самом дампе они есть. а другой человек их не видит. и через терминал и через пма пробовал. нихуя. в чем трабл? в движке миграций нет, если че
>>1639812>>1637453>>1642984Небольшой update: я интегрировал функцию создания департаментов в конструктор класса Company (отделы все равно не могут существовать вне компании). Также сделал функцию распечатки отчета по расходам элементом класса.Код: https://ideone.com/Egnb9DБуду очень признателен за любые замечания/напутствия.
>>1630065 (OP)<?php$i=5;echo '$i' . "\n";echo "$i" . "\n";echo $i . "\n";Почему выводится $i55Я почему-то всегда думал что echo "$i" должно вывести $i а не саму переменную.
>>1643762Потому что интерполяция строк идёт в двойных кавычках, для одинарных надо ещё фигурные скобки
Аноны, как мне с конца таблицы в обратном порядке выгребать данные по допустим десят строк?Что то типа обратного LIMITSELECT * FROM table LIMIT 5 , 2Я типа пагинацию велосипедю.
>>1643911Да яя уже вспомнил, чет протупил, да.Дайте плиз наводящий ответ - пишу пагинатор. В принципе особой проблемы вывести по страничкам данные(статьи) из таблица нет.Вопрос у меня с сортировкой.Допустим мне нужно отсортировать сататьи по названиб статьи - по алфавиту.И соответственно все страницы в пагинации должны быть отсортированы таким же образом.Туплю вот в чему - что бы отсортировать статьи по алфавиту - я же должен из базы волучить все статьи - отсортировать по алфавиту, выбрать нужный диапазон, и уже вставить этот диапазон в отображаемую страницу.Пока не пойму как можно отсортировать все статьи по алфавиту не полчая весь массив статей.
блять пиздец какой то. кое как нашли проблему. оказывается движок опенкарта хранит где то у себя в ебенях (?) из за чего половину картинок из постов сохраняет где то у себя, а половину ттянет из бд. смотришь sql-запрос в модель, а он возвращает 10 картинок. открываешь саму бд - там информация только о четырех... хуй знаает че происходит, но кажется, началось>>1643712 - кун
>>1643921>Туплю вот в чему - что бы отсортировать статьи по алфавиту - я же должен из базы волучить все статьи - отсортировать по алфавиту, выбрать нужный диапазон, и уже вставить этот диапазон в отображаемую страницу.order by article_title (asc|desc) LIMIT N OFFSET X?
>>1644075Эти все системы вроде опенкарта и вордпреса делались не для людей. Там бестпрактис это на проде что-то пилить в одно рыло с выключенным дебагом
>>1644240Как именно характеризуется код цмсок и чем отличается от не цмсок? И у всех ли цмсок код цмсочный?
Почему популярность лучшего скриптового языка для написания серверов так падает?Неужели в пыхе 7ой нет возможности писать охуенную бекенд логику со всеми новомоднейшими паттернами и при этом это будет работать не хуже жабы/шарпа?Или это наоборот сигнал, что самое время теперь уже вкатываться в этот охуенный язык и становиться в нем профессионалом, пока все школьники лезут теперь в питон/жс?
>>1644411Я бы тебе просто за то разницу в ООП между питоном и ПХП хуем по щекам бы надавал.В ПХП отличная спижженая с джавы модель ООП.В питоне такое в js, хоть я и люблю ноду - тоже хотелось бы
>>1644287Смотрел ток одну цмс, какой то странные фарш. Главный файл - гигантский файл на 8000 строк в котором подгружается все - хтмл, запросы в бд, всякие функции подгружаются.Из классов что я видел в этом коде - только сторонние либы.Мне если честно не понравился этот пиздец.
Двоч, помогай. Будь добр.Короче, есть один кусок кода, который не выполняется. Этим куском кода является Альберт Эйнштейн функция header().Я прочел, откуда могут быть проблемы, предполагаю, что мой обсер тут:>Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде includeТак как у меня include() вызывает функцию, где и находится header() с нужными параметрами.Как можно это обойти? Есть ли фиксы, анон?Если я просто вынесу функцию вместо include(), то обсер будет уже таким, я предполагаю:>Те же проблемы могут возникать и при использовании PHP/HTML в одном файле.
>>1644880header должен выводиться до контента. Любой текст включая пробелы перед тегом php и переводы строки может его поломать.
Пездец, анон, помоги, нихуя не могу понять почему сраная иконка не устанавливается на сайт. Код полторы строки, поэтому на скриншоте. Ебусь уже второй день, пробовал картинки и в директории, и в папку images, и ссылкой, как указано на пике, ничего не получается. Кэш в хроме чистил, в других браузерах тоже самое.ЧЯДНТ?????
>>1645166Я этим и занимаюсь, учу верстку.Посмотрел по этому поводу кучу статей, везде одно и тоже, делаю тоже самое, тупо копирую код, иконка не добавляется...
>>1645154<link rel="shortcut icon" href="{{ "http://".$_SERVER['HTTP_HOST']."/images/favicon.ico" }}" type="image/x-icon">у меня используется такой вариант. Попробуй поменять на ico
>>1645265Вот, самое простое, с локальным файлом.https://jsbin.com/hoponepuce/1/edit?html,output>>1645276Этот вариант тоже попробовал, не помогло.
>>1630065 (OP)<?php$a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];for($i=1;$i<=count($a);$i+=2){ unset($a[$i]); }print_r($a);Пацаны почему получается такой вывод?Array( [0] => 1 [2] => 3 [4] => 5 [6] => 7 [8] => 9 [9] => 10)Он же по сути должен удалить 9 элемент???
>>1645324Потому, что не надо каждую итерацию проверять количество элементов в массиве. Тем более когда ты из него удаляешь элементы.https://ideone.com/VtTdWR
Привет всем.Разбираюсь с ПДО и нужна ваша помощь.Как из запроса в prepare вернуть результат? Пробовал разные параметры в fetch: _ASSOC и _BOTH.Если с _ASSOC код продолжает работать, то в случае с _BOTH мне просто execute возвращает TRUE и сидит, сука, молчит._ASSOC же выдает массив с индексами-имена столбцов, так чому я при запросе $res['login'] получаю тишину? Анон, прошу помощи.
>>1645375>чому я при запросе $res['login'] получаю тишину?В $res лежит массив, а не единственное значение.Мог бы сам его сдампить и посмотреьть чё и как.
>>1645375Так, окей. По совету анона >>1645383 сделал вардамп и получил то, что получил:В чем причина? Почему false вообще?
>>1638330Надо исправить предупреждение: > PHP Notice: Undefined variable: comisson in /home/s6LME6/prog.php on line 12Ты там опечатался в имени перемеенной. Также, надо убрать копипасту, у тебя выражение ($credit * $bankPercent) + $comisson скопировано три раза.>>1638704Логику надо писать в сервисах, а не в контроллере. Так как в этом случае ее можно использовать из других мест. А код, написанный в контроллере, не повторно используемый. Задача контроллера - разобрать данные от пользователя, вызвать нужные сервисы, вызвать шаблонизатор для вывода данных. Если ты код получения списка топ 10 друзей напишешь в контроллере, то его нельзя будет вызвать откуда-то еще. А если в сервисе - то можно. А если в модели - то это будет неудобно и модель будет перегружена кусей лишних функций.>>1638855Сигнлтоны это вообще плохая штука, тем более в такой модели. Ты зря их используешь. Мой вариант с RequestContext вполне решает твою проблему. При поступлении запроса создается новый объект RC и передается сквозь все слои middleware. Middleware может менять поля этого RC как хочет. И далее этот RC передается в контроллер, используется и выкидывается по завершении запроса. Если параллельно обрабатывается несколько запросов, то существует несколько независимых объектов RC.Но я не знаю, как это сделать в Laravel. Это уже к тебе вопрос.
>>1639469Проще все сделать с симметричным для начала. Но ключ от симметричного шифра открыто не хранить, а хранить, зашифрованным ключом или паролем пользователя.>>1639812> Я оставил пояснения почти перед каждым свойством и методом. Это неправильный подход?Совсем очевидные комментарии, не несущие новой информации, не нужны, такие не нужны: // Складываем b и c$a = $b + $c;// Получить число работниковfunction getEMployeeCount()Все, что не так очевидно, допустимо. > Выше анон назвал мои сокращения мерзкими и предложил использовать полные названия.Лучше полные названия. Не надо экономить на месте в коде, неудобно разбираться в чужих сокращениях, это тратит время.> Однако опять же: почему в начальном массиве не задаются два дополнительных свойства, отражающие статус руководителя (true | false) и принадлежность к департаменту?Можешь их добавить. Тогда логично сначала создать пустые отделы, а в массиве указать, для какого отдела сотрудник.> Другими словами, как конструктор из общей массы объектов сможет выцепить сотрудников, которые относятся к определенному департаменту, если из "опознавательных знаков" у них есть только название должности и ранг? Он и не должен этим заниматься. Конструктор вообще не имеет отношения к этому массиву. Этим должен заниматься код, разбирающий массив, создающий объекты сотрудников, и передающий их в нужные отделы. Лучше у отдела сделать метод "добавить сотрудника" и туда передавать созданных сотрудников.
>>1642665 Там есть простой вариант - "жадный" алгоритм. Берем по максимуму самой старшей купюры, потом максимум купюры поменьше, и так пока либо не наберем сумму либо поймем, что это невозможно. Условно, если сумма 6500, а старшая купюра 2000, то берем 3 по 2000, остаток 500, и переходим к купюре поменьше.При неудачном сочетании номиналов купюр придется перебирать все возможные варианты сочетаний и жадный алгоритм не поможет. У тебя в коде ни то, ни сё. Ты берешь по одной купюре, хотя можно делением определить, сколько штук брать сразу. >>1642984> protected int $numOfDepts;Это избыточно, всегда можно использовать count($this->departments). Незачем его хранить и поддерживать. Нужно заменить это на метод для вычисления.В конструкторе Департамента не надо создавать сотрудников. Твой класс принимает данные в каком-то странном недокументированном формате. Ты должен уметь разделять код. Надо принимать просто объекты сотрудников, а не завязываться на формат какого-то массива. Это не задача Департамента разбирать структуру массива. Ты сделал только хуже, так как если у меня уже есть объект сотрудника, то мне теперь надо придумать, как преобразовать его в массив, чтобы департамент его принял. Твой департамент это не независимый класс, он завязан на формат массива в начале программы, хотя это не его зона ответственности, как будут создаваться сотрудники и он про этот массив ничего не должен знать. В сотрудниках лучше использовать абстрактные методы вроде getBasePay() для определения базовых ставок. Так как сейчас у тебя никак не документировано и не проверяется, что наследник задал эти поля. А с абстрактными методами ему придется их реализовывать.>>1643705По идее сортировать надо с помощью класса Collator из расширения intl: https://github.com/codedokode/pasta/blob/master/php/collation.md
Функция для работы с массивами сори за тавтологию в функциональном стиле ленивые или с отложенным копированием?
>>1645485На будущее погугли про иммутабельность. И вообще лучще не удалять из структуры, а возвращать новую, с нужными данными.Типа вот так:https://ideone.com/eAAXuO
Аннонии, увлекся парсингом.Щас с Авито развлекаюсь.И как дело дошло до вытаскивания больших данных - меня авито начало отфутболивать.Редиректит мои запросы на "https://www.avito.ru/blocked",и кадает заголовки "X-Content-Type-Options=nosniff"Парсер на ноде у меня,может эта барышня асинхронно устраивает "бомбалейо" для сервера авито? Типа в секунду много запросов. И авито меня отфутболивает из за этого?Или еще какая причина?заголовки я выставлял будто я браузер.Где почитать инфы на тему парсинга и всякого такого?
Аноны, помогите разобраться с ПДО.Я уже писал, но чот дольше того, что fetch пуст дело не пошло. Пробовал fetchAll, дает пусто массив array(0) { }.Анон, как, блять, взять то, что я в prepare запросил?
>>1645760Может, нет записи с таким логином? Также, посмотри примеры тут https://www.php.net/manual/ru/pdo.error-handling.php и выставь PDO::ERRMODE_EXCEPTION если он еще не выставлен, для сообщения об ошибках.
блять тред мёртвого языка нахуй никому ненужному кроме предыдущего опа долбаёбы который не может его пересоздать и сделать нормальную краткую шапку
>>1645760Мне кажется ты не то делаешь. Как ты из подготовленного запроса хочешь взять массив? Это же строка. Попробуй взять так - $ex->fetch(...);
блять. стоит такая задача. есть магазин. к нему в админке надо прикрутить поле куда я ввожу скидку (например 10%) и он шлет мне запрос и в бд в таблицу скидок добавляет все это. объясните как мне эу хуйню через mvc реализовать то? чтто в разметке формы писать чтобы я по нормальному при клике на баттон мог этот запрос перехватить, взять че прислал пользователь (в моем случае это просто дискаунт) и послать это в базу перебирая все айдишники товаров?алсо, как еще прикрутить datetimеfield по нормальному и чтобы его распарсить оптом в конроллере?
>>1645883Ну раз он никому не нужен, так проходи мимо, к более нужным языкам, тебя вроде сюда силой никто не загонял.
>>1646109Потому что в аргументах функции нельзя задать принятие параметров в конкретный индекс массива. Делай это ручками, если надо, в теле функции уже.А еще лучше не делай, помой руки с мылом, и сходи поспи своим наркоманским сном. Кто знает, вдруг ты проснешься другим человеком.
>>1630065 (OP)Можно ли заменит эту рекапчу на капчу с дашачана, или как-то сделать так что бы всегда рекапча давала выбрать картинки а не крутилось 4 минуты без результата?Сколько будет стоить такое у вас или на фриланс ру там? вот это апиhttps://2ch.hk/api/index.html
>>1645830Запись такая есть, пробовал другие логины, но результат всегда один: bool(false) - вардамп fetch. Про отрибут ошибок знаю, включено это: setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);Но вряд ли для них пустой массив это ошибка.>>1646038>$ex->fetch(...);Анон, но ведь в $ex лежит только TRUE. Вряд ли это даст мне массив. Я попробовал, словил ошибку 502 о неверном запросе.Пиздец. Я не знаю, что не так, аноны. Не понимаю просто.
На Ларавел удалил самосозданный сервис-провайдер ручками и потом через композер ненужную библиотеку, почистил app.php в конфигах.Теперь он мне сообщает, что не может найти этот сервис-провайдер и вообще ничего не позволяет делать. Какого хуя? Почему фреймворк пишет куда-то себе такие неочевидные вещи, в результате чего я вынужден воевать с ним, а не делать очередное ненужное приложение?Его вообще мои сервис-провайдеры касаться не должны - удалил, почистил конфиги и забыли. Как жить то теперь?
>>1646522Хвала святому гиту - откатил и аккуратно удолил.Вроде работает как надо.Держу в курсе.Вообще есть у кого советы на такой случай, кроме очевидных сейвпоинтов на гите?
>>1646577>Хвала святому гиту - откатил и аккуратно удолил.В следующий раз попробуй git clean -xn, n покажет тебе что удалит, но удалять пока ничего не будет>Вообще есть у кого советы на такой случай, кроме очевидных сейвпоинтов на гите?В данном случае хз что у тебя там произошло, можешь попробовать или руками снести всё в bootstrap/cache или через команду clear-compiled, сюда еще добавить cache:clear, config:clear, route:clear, view:clear если ты накой-то хуй в деве кешируешь это говно
>>1646681>В следующий раз попробуй git clean -xn, n покажет тебе что удалит, но удалять пока ничего не будетУдалял уже я, выполняя clear-compiled и dump-autoload через каждое движение. Гитом только состояние сбросил на последний коммит, где всё нормально работало.>через команду clear-compiled, сюда еще добавить cache:clear, config:clear, route:clear, view:clearВ том то и дело, что он не выполнял никакие команды вообще - писал, что не найден такой-то сервис провайдер и всё.>руками снести всё в bootstrap/cacheЯ видел, что там прописана эта зависимость, но когда сносил, то вообще всё работать переставало. Хз что это было такое.
Как в Symfony, точнее Doctrine сделать удаление через IN и подзапрос?Через QB делаю запрос, который выбирает нужные мне id. Но есть проблема (и видимо все дело в этом): он возвращает массив массивов (проверил через dd: что с getResult, что с getScalarResult).Я думаю, что оставшаяся часть с удалением, где я просто в выражение вида "t.id IN (:param)", в :param поставляю getDql от подзапроса сработает отлично, если эта хуета вернет мне тупо массив id, а не массив массивов с id.В select - 't.id', больше ничего, если что.
Запостил в "Мы вам перезвоним", там особо не в теме. Господа, итак... Рассчитываю на вашу помощь.PHP-шники, подскажите, блядь. Что за хуйня происходит? Последние 3 года работал на одной и той же работает, получал свою "условно сотку" и радовался жизни. Стек: PHP, Laravel, MySQL, Redix, чуть-чуть React/Node.Благодарю ЕБАНОМУ коронавирусу мой работодатель просто взял и за два месяца обанкротился (бизнес был связан с перевозками пассажиров, перевозки всё). Всех уволили, офис даже закрыли.Постю резюме на hh.ru. И уже который собес меня ебут чем-то типа:- напишите интернет-магазин на symfony + react за 6 часов- как сделать селект у кластера из 1000 mysql-серверов?- с postgres не работали? идите нахуй- а мы еще кодим на python и go, помимо php, идите нахуй- то есть как это вы забыли L в SOLID, идите нахуй- напишите микро-фреймворк, у вас два часа- как бы вы оптимизировали супер-сложный-и-медленный запрос (запрос не показывают), если все индексы расставлены правильно? нет, джоины на подзапросы менять нельзя. не знаете? идите нахуй- забыли чем отличается ES5 от ES6, хотя претендуете на бекенд? идите нахуй- работали с очередями, но не работали с RabbitMQ, идите нахуй- шлют тестовые задания на JS, хотя указано, что я хочу PHP- не знаете как организовать шаблон чейн респонсибилити в ларавеле через внутренние механизмы? нахуй- назвали вообще не все шаблоны, а только те, которые помните? нахуй- не писали на тайпскрипт, нахуйИ так далее. Я сижу и охуеваю. Что, блядь, случилось за 3 года? Я на миддла претендую, а не надо сеньера с богатейшим опытом.Последний раз, когда я собеседовался (3 года назад), такого пиздеца не было, обычно спрашивали про опыт, какую-нибудь задачку, знаю ли я джоины, грубо говоря, и всё. Теперь это норма что ли или где? Требования на мидла PHP так выросли?Отчаялся, переделал резюме, сделал пометку, что ищу место на джуна (хотя на последней работе считался сеньером, блядь), только НАУЧИТЕ. Вообще звонить перестали.Я даже не понимаю, блядь, за что хвататься, что подтягивать в первую очередь.В общем, я в ахуе. Кредиты есть. Долги есть, в том числе уже и за ЖКХ. А работа не ищется, от слова "совсем". Один плюс, хоть хата своя, но и это уже не выглядит таким уж плюсом.
>>1646988Думал всю жизнь на одном стекер просидеть? А вот хуй.Технологии развиваются семимильными шагами.Тоже ахуеваю от мидловых собесов. На каждом спрашивают про хуйлоад, про еба архитектуры, про докер, про оптимизацию скл запросов.Каждый третий кидает тестовое (хотя есть круды на гитхабе), где нужно запилить еба за вечер (работы на неделю), покрыть тестами, отрефакторить, оптимизировать под хуйлоад и запаковать в докер шоб поднималось одной кнопкой. В половине тестовых еще и на фронте спа запилить (вью/реакт).Ну и хули делать, сижу осваиваю докер.
>>1646988>Благодарю ЕБАНОМУ коронавирусу мой работодатель просто взял и за два месяца обанкротился (бизнес был связан с перевозками пассажиров, перевозки всё). Всех уволили, офис даже закрыли.Пиздёж какой-то. Что за бизнес такой, который за неделю выходных накрылся? Очевидно же, что потом опять эти перевозки начнутся.Максимум отправят тебя в неоплачиваемый отпуск.Недельный карантин сделали только для того, чтоб люди не заражались пачками и не создавали диких очередей в медучереждениях, а болели по очереди. Переболеют, один хер, все. >Кредиты есть. Долги есть, в том числе уже и за ЖКХ.Чё, за неделю уже накопились? Нихуя ты даёшь!Ладно тебе пиздеть-то - и так в "Мы вам перезвоним" треде всё засрал своей короной, шизоид.
>>1646988Некоторые примеры похожи на толстоту.Особенно этот>напишите интернет-магазин на symfony + react за 6 часовТы зря так перегибаешь. Даже если тестовое звучит похоже на это, то с конкретикой небось окажется, что все адекватно для 6 часов. А скорее всего даже 6 часов никаких нет, а "до завтра" например.Некоторые вменяемые, но ты их выставляешь как что-то неподъемное.Например вот:>напишите микро-фреймворк, у вас два часаНа самом деле 2 часов и правда достаточно.>не знаете как организовать шаблон чейн респонсибилити в ларавеле через внутренние механизмы?Инжой бытие ларавел-разработчиком. На самом деле удивительно, почему ты не знаешь свой единственный фрейм из стека до дыр. За такое время нормальные люди уже в коде фреймворка ориентируется, как в своем.Возможно вещами типа "у нас тут постгрес, так что вы нам не подходите" или "нууу тут еще питон" срезают конкретно тебя, а реальную причину называть не хотят. Как и добрая половина твоих этих пунктов.
ОП, сделал задачу про вопросы с разными типами ответов.Проверь, пожалуйста.http://sandbox.onlinephpfunctions.com/code/5f0893bc30f217e4c660a90a081dc5dbd156445e
>>1638518 С генерацией комбинации с помощью генератора справился вот так https://ideone.com/XhuCwE. Следующим моим шагом уже стало решение задачи про банкомат, следуя твоим советам, сделал так: одна функция генерирует комбинации, по примеру как с числами, тут только вопрос правильно ли я это осуществил генерацию комбинаций купюр, с числами было попроще. Другая функция проверяет комбинацию, соответствует ли комбинацию тому количеству денег , которое требуется выдать. Сделал все это пока без оптимизации, хочется для начала узнать адекватно ли я вообще написал этот код , и есть ли тут грубые ошибки. Вот сам код https://ideone.com/6tgkDv . Далее уже буду делать оптимизацию. Есть еще вопрос , можно же было бы осуществить все без генераторов запихнув функцию проверки в функцию генерации комбинации https://ideone.com/5L3qJh , или это ужасно выглядит ?
>>1647681>>1638518Первый код из-за поставленной точки в конце не открывается , вот он если что https://ideone.com/XhuCwE
>>1645510>>1645512Огромное спасибо за просмотр кода и ценные советы по его улучшению! Однако есть затруднения.> В сотрудниках лучше использовать абстрактные методы вроде getBasePay() для определения базовых ставок.Я поправил код, удалив поля в абстрактном классе Employee, которые получают разные значения в каждом субклассе и определив ряд дополнительных методов.Kак иначе? Ведь если я объявлю те поля в абстрактном классе и забуду задать им значения в наследниках, то они автоматом примут значение 0 и код сработает, но даст некорректный результат.Однако тут я столкнулся с дилеммой.Вариант 1: https://ideone.com/OVnT1PНовые методы возвращают свойства не объявленные в данном классе. Сами те методы не являются абстрактными. Таким образом мне не нужно их имплементировать в каждом наследнике - код становится короче.Однако не нарушает ли данное решение принципа, который ты упомянул в учебнике: предки не должны знать ничего о своих наследниках?Вариант 2: https://ideone.com/SLNNfEНовые методы являются абстрактными. Соответственно, абсолютно идентичный код копируется в каждом наследнике, зато принцип вроде как соблюдается.Что лучше?> В конструкторе Департамента не надо создавать сотрудников. Надо принимать просто объекты сотрудников. Этим должен заниматься код, разбирающий массив, создающий объекты сотрудников, и передающий их в нужные отделы.Меня все-таки интересует возможное решение с тем форматом массива, который ты предложил здесь: >>1637453То есть без указания принадлежности к отделу и статуса начальника:$employees = [// count, profession, rank[3, Employee::JOB_MANAGER, 1],[5, Employee::JOB_ENGINEER, 2],...];Я разбираю входящий массив при помощи функции, которая не относится ни к одному классу? Создаю объекты и складываю в другой массив? Или все-таки сразу же распределяю по департаментам?В любом случае я не очень понимаю, как то осуществить в условиях отсутствия каких-либо указаний на принадлежность к отделу и статуса начальника в стартовом массиве.То есть, вот я сложил все получившиеся объекты в единый массив: https://ideone.com/ikKea2Но как их теперь автоматизированно разбросать по отделам? Меня очень интересует твой вариант.Тот формат начального массива, который я составил, вероятно, выглядит витеевато, однако в нем я поместил все указания, без которых я затрудняюсь следовать дальше. Вот он с функцией разбора: https://ideone.com/P8mQ6j
Как заполнить селектор значениями из БД?Php 7Вот у индусов всё получается, а у меня нетъ.Вот элемент на основной страничке. <select><?phprequire_once('s_num_car.php'); while($row1=mysqli_fetch_array($zapros1)) ?><option value="<?php echo $row1[0]; ?>"><?php echo $row1[0]; ?></option></select>Вот тут скрип доставания записей.s_num_car.php<?phprequire_once('c.php');//это говно работает как надо.$sql="select * from cars";$zapros1 = mysqli_query($con,$sql);?>
>>1630065 (OP)Почему не выводится тело if?Все же правильно!https://ideone.com/Min7CF<?php$value=5;$nb=463;$factorial=gmp_fact($value); if($factorial <= $nb){ echo intdiv($nb, $factorial); }
Всем приветик, это снова я. И мне удалось вытянуть данные из запроса. А обсер знаете в чем был? В ЕБУЧИХ КАВЫЧКАХ СУКА.
>>1648183Я сам SQL не очень люблю - байтопердолики ни ошибки внятно вывести не могут, ни синтаксис сделать вменяемый.Чистые запросы копипащу, когда приходится, а так либо билдер, либо ОРМ использую.
>>1648216Он смешно одбристался не в самом sql даже, но ты зачем-то именно про sql зашел поныть. Уровень знаний посетителей треда - один познает подстановку параметров, на что никто ему не может ответить, потому что в упор нихуя не видят сами, а второй занимается копипастом запросов и не может pdo от sql отличить. Второй поди уже работает и какой-нибудь гордый "состояшийся" ларавел-мидл, как дурачек выше по треду с толстотой про поиск работы.
>>1648334>первый>второйА третий пришёл пукнуть своим важным мнением.Советы, дурачок ты мамин, надо было раздавать когда тебя спрашивали.
>>1646988Кароч даю советы по пунктам:1. Если в тестовом микрозалупамагазин сразу шли нахуй, эти пидоры времени людей вообще нихуя не ценят. Разбирать твою писанину никто не станет, в лучшем случае просмотрят. А ты ведь стараться будешь, душу вкладывать. Сразу нахуй.2. Никак. Нет в природе MySql кластера на 1000 нод. Пытаться делать что-то такое это как забивать гвозди хуем, звучит круто, а на деле хуи меняются, а работа не сделана.3. Поработай с постгресом, на деле хватит изучить как работают CTE, все равно будут спрашивать только используешь ли ты их.4. Ну тут хуйня какая-то если обязательно нужны другие языки, то как ты до собеса добрался вообще? Лечи что изучишь как только так сразу, скорее всего не придется.5. Так выучи уже эту поеботу, там пять букв сука.6. Смотри пункт один.7. Звучит как хуйня, тут либо спрашивает некомпетентный уебан, либо ты слишком утрированно описал. Оптимизация такого запроса это попытка наебать планировщик базы, и если выгодно писать подзапрос, то ты пишешь подзапрос или сосешь бибу.8. Не нравятся вопросы по фронту, сразу говори что фронт в рот ебал, сэкономишь время.9. Подними в докере ебучий реббит и отправь/прими пару сообщений и все, ты работал с очередями, нихуя там сложного нет.10. Сразу нахуй.11. Я бы сразу нахуй слал, лютая завязка на фреймворк никого до добра не доводила. Потом нужно будет гланды через ларавель удалять, а очко твое не казенное.12. Смотри пункт пять, открой рефактоинг гуру и под пивас почитай, делов на час, а пользы как от бутылки пива.13. Смотри пункт восемь. Лезешь на фуллстека, получай по хую в каждую дырку.
>>1647034Сука, ты - это я, один в один, я чуть слезу не пустил.> Тоже ахуеваю от мидловых собесов. На каждом спрашивают про хуйлоад, про еба архитектуры, про докер, про оптимизацию скл запросов.Same. Причем я уже не понимаю, что им нужно, блядь. На каждом собесе разные технологии. Где-то спрашивают про одно, где-то про другое, где-то вообще "напишите мне хайлоад на коленке" (только что было такое). Как мне поработать с хайлоад, если меня не берут, блядь, на хайлоад? Впрочем, похоже, вообще никуда не берут уже.> Каждый третий кидает тестовое (хотя есть круды на гитхабе), где нужно запилить еба за вечер (работы на неделю), покрыть тестами, отрефакторить, оптимизировать под хуйлоад и запаковать в докер шоб поднималось одной кнопкой.Да. Тестовые - просто доебали. Я за день связался с пятью компаниями и все выслали тестовые. Мне эти тестовые теперь надо месяца полтора делать. И как мне быть? Пока я их пилю, там вакансии уже закроются. Я закономерно забил хуй на самые сложные из них (типа "напишите нам интернет-магаз на symfony + react" и еще требований к нему на два листа А4).> Ну и хули делать, сижу осваиваю докер.Я тоже осваиваю. Прочитал книгу, запилил себе докер конфиг для docker-compose. В итоге на последнем собесе был такой диалог:- Знакомы с докер?- Да, использую его для разработки на локальной машине, контейнеры удобнее, чем поднимать всё руками, хуйемо.- Ааааа как бы вы сконфигурировали докер для CI/CD на продакшн сервере под нагрузкой?- ........ не знаю.Сука. Где вообще вакансии вменяемые? Почему они считают, что я должен знать вообще все на свете?На одном собесе хотят, чтобы я мог йоба-sql запросы написать, а на другом гоняли, ты не поверишь, по внутренностям PHP - как в PHP работает хешмап, что такое zval, как работает GC и прочее.На последних двух работах не то, что никого всё это не ебало, никто, наверное и не в курсе был. Там люди не успевали задачи-то решать толком, ибо задач вагон, времени нихуя и т.п.
>>1648387Слушай, спасибо тебе за адекватный ответ. Я только одно уточнить хочу - ты сейчас работаешь, именно PHP? Просто я не вижу вакансий, где PHP-шнику не нужен JS (либо их две из ста, грубо говоря, а попытки-то не бесконечные).
>>1646325Ты наркоман что ли? При чем тут "стоить"? Капча интегрирована в бекенд двача. Капча работает не только в твоем браузере.
>>1647043>>1647198Без обид, поцаны, я жутко горел, когда писал. И до сих пор горю, но не так сильно. Давайте поясню, что ли. Всё равно собесы доебали уже, сил нет.> Пиздёж какой-то. Что за бизнес такой, который за неделю выходных накрылся?Мелкий бизнес, собственно. Маленькая команда, несколько своих проектов, которые приносят доход. Зарплата меня устраивала, но больше всего нравились коллеги, охуенные прямо, поэтому никак не мог решиться сменить работу. А разорились очень просто: у туризма январь и февраль всегда провальные месяцы, почти никто не ездит. А к марту началась херня с нефтью, короной и вот это всё. В итоге их финансовой подушки хватило на 3 месяца и гудбай. Дело не в самом карантине, а вообще в обстановке в целом.> Чё, за неделю уже накопились? Нихуя ты даёшь!Не за неделю, за две-три где-то. Я ж тут не отчет пишу, а крик души. Платежный период, все дела. Сейчас не плачу за ЖКХ, ибо денег нихуя.> "Мы вам перезвоним" треде всё засрал своей коронойЯ там пару постов сделал, наркоман. Кто тут еще пиздит-то.> Ты зря так перегибаешьДа, я тут откровенно утрирую. Срок на такую задачу дали около 5 дней. Проблема в том, что ВСЕ дали тестовое, той или иной степени сложности. Да и вообще, у меня нет этих, блядь, пяти дней, мне работа нужна сейчас.> На самом деле 2 часов и правда достаточно.Я около 5 часов только свой роутер придумывал, чтобы он не был роутером инвалида (и всё равно он мне не нравится). Может быть я тупой, конечно, но за 2 часа написать фреймворк, даже простой, это невозможно.> На самом деле удивительно, почему ты не знаешь свой единственный фрейм из стека до дырЯ его использую, а не программирую. Все проекты, что я на нем видел - это ж детский сад. MVC, роутинг, модели, очереди и еще что-нибудь, ну и всё. Там не надо никуда лезть, чтобы в этом разобраться и сидеть себе, фигачить проект. Для чейн респонсибилити используется встроенный в Laravel пайплайн (я это уже потом узнал), но я ни разу не видел ничего даже близкого к такому в реальном проекте. Просто MVC, если контроллер стал толстый (да, все пихали логику в контроллер), делаем сервис. Это максимум просто из того, что я видел.> а реальную причину называть не хотятВот тут ты, может быть, прав, согласен. Но, справедливости ради, другие языки и правда иногда нужны (у кого-то микросервисы на GO, у кого-то легаси на Python и они его переписывают на PHP и т.п.).Хотя весь фидбек, который удалось выпросить, коротко можно описать как "вы слабый программист" (где-то я не знаю сложность поиска по какому-нибудь красно-черному дереву, где-то вот забыл L в SOLID, где-то не знаком с Монго, где-то еще что-то).Вопрос в том, как пробиться на работу, чтобы получить опыт всего этого? Я готов пахать хоть сутками, но не могу найти тех, кто взял бы.
>>1648505Да я чисто бекэнд пхп макака сеньор помидор. Ну не бывает так, что человек в равной степени шарит и в ES6 и в бэке. Эти темы настолько разные и объемные, что занимаясь одним, теряешь в другом. Про верстку я вообще не говорю.Когда хотят фуллстека, и доебываются что ты хуево знаешь одну из частей, то тут явно пиздежь и наебка. Ну нет в природе таких самородков, тем более мидлов.
>>1648514Все это хуйня, не парься. Просто подтягивай то в чем просел на собесе и иди на следующий. Все будет. Я на собесах двадцати побывал, пока нашел норм контору. На таких долбоебов насмотрелся пизда, и это при зп от 200К, че там у джунов представить боюсь. Если у тебя опыт от года смело пиши мидл, мнение ебланов с собеса близко к сердцу не принимай, просто подтягивай то на чем прокололся и иди дальше.
>>1648539>На таких долбоебов насмотрелся пиздаДа я по ХХ смотрю - долбоёбов в этой сфере просто пропасть. Причём с обеих сторон.
>>1648502>Я тоже осваиваю. Прочитал книгу, запилил себе докер конфиг для docker-compose. В итоге на последнем собесе был такой диалог:- Знакомы с докер?- Да, использую его для разработки на локальной машине, контейнеры удобнее, чем поднимать всё руками, хуйемо.- Ааааа как бы вы сконфигурировали докер для CI/CD на продакшн сервере под нагрузкой?- ........ не знаю.В конец охуели мрази. Им уже не бек нужен, не фулстак, а еба фулстек-девопс
>>1648183Если дело в кавычках, то в таком случае PDO должен был выкинуть исключение, и ты бы увидел там подробности ошибки. Значит, ты либо не включил ERRMODE_EXCEPTION, как тебе советовали, либо как-то еще скрыл вывод ошибок.Не скрывай ошибки и не отключай выброс исключений, чтобы не тыкаться как слепой котенок, пытаясь угадать причину проблемы. Я это написал скорее как совет, и тебе на будущее, и другим: всегда включайте вывод ошибок, не пытайтесь их ловить и скрывать, или отключать.
>>1648502Давайте поплачемся с другой стороны. Приходят люди, 10+ лет опыта, устно не могут объяснить индексы, или блокировки в транзакциях. Или отвечают "я думаю, это всегда можно в гугле найти, незачем это знать". Про фронтенд лучше вообще не спрашивать - никто ничего не знает. Видимо, им еще личный раб-верстальщик нужен для работы. Зарплату ему оплатить изволите? Некоторые вообще разговаривают, как будто у них отклонения. На четко сформулированный вопрос (вы не представляете, сколько времени и сил уходит на их составление) вместо четкого ответа начинают уходить куда-то в сторону и вспоминать как что-то когда-то похожее делали (причем делал кто-то другой, он просто в сторонке стоял). Как будто с искуственным интеллектом разговариваешь.Или N лет опыта с Симфони в резюме - объяснить, что делает persist, не может. Как вы N лет используете функцию, не зная, что она делает, а? Чем они все 10 лет занимались? Зимнюю резину в магазине впаривали? Вы бы лучше вместо курсов по повышению самоуверенности запросы поучились оптимизировать и мануалы почитали. Кому нужны ваши софт скиллы? Выучите, что такое дерево и как устроен индекс для начала.Зато любой может рассказать про микросервисы (принцип "пришел, внедрил, свалил") и паттерны. С этими паттернами вообще какая-то проблема, я видел как люди вместо функции со свитчем сделали стратегию с 16 классами с наследованием и трейтами. Я бы лично отсеивал всех, кто хоть что-то пискнет хорошее про паттерны или микросервисы. Вы не Фаулер, и работать устраиваетесь не в Гугл. Ваши микросерисы тут даром не нужны. У нас денег столько нету, чтобы это поддерживать.Блин, из-за вас приходится половину вопросов снимать и ставить вопросы чуть ли не школьного уровня, чтобы хоть кто-то их решил. Как-то разговаривать еще можно с 15-20 летними и не фейспальмить, с теми, кто еще спектрумы ковырял. У большинства логика - нанялся, накривокодил, свалил, стартап в любом случае сдохнет, независимо от моего качества кода.Конечно, я понимаю, крутые спецы все сидят на хорошей работе, на зарубеж, и у нас пряников столько нету, чтобы к себе переманить. Все, что мы можем - выгребать из этого болота хоть что-то понимающих кандидатов, которые может быть, будут нормально работать. > забыли чем отличается ES5 от ES6Ну блин, синтаксис классов в голову не приходит? Ты хоть раз в жизни учебник JS открывал? Есть 3 версии, ES3, ES5 и Es6 и более новые версии, и уж минимум несколько их особенностей выучить можно. А то потом такие как вы пишут код, что в телефоне 3-летней давности сайт не работает. Алсо, половина вопросов и заданий какие-то даунские, я не верю, что такие бывают, так они вообще никого не найдут никогда. Пора, видимо, услуги собеседователя или консультанта по найму предлагать. Тестовых сложнее, чем на полчаса-час-два не давал ни разу.
>>1648700Впринципе сейчас бекендеры многое из этого умеют на достаточном для себя уровне, т.к. просто удобство и культура разработки. Одно только но - ci/cd не на каждой работе пощупать удастся, даже если он там есть (либо ci/cd такие простые, что за опыт не считается).>>1648538У меня получается больше одного стека технологий в голове удерживать, хотя есть основной, в котором я эффективнее всего работаю. Теряется при одновременной работе время. Фулстек делает, грубо говоря, 50% фронт и 50% бек от того, который мог бы сделать чисто на чем-то одном. Добавь еще к этому еблю с девопсом сейчас. Хотя она не ежедневная, так что 5% всего на это. В общем если работодатель понимает, что фулстак это экономия на качестве и не гнет пальцы, то они норм сосуществуют. Если нет - наступает тщетность бытия и забитый хуй на проект.Алсо, когда увлеченно какие-то свои петы пилишь так и так становишься тем самым фулстеком. Иногда даже на несколько стеков.
Аноны, дайте какой нибудь реальны таск на связкупхп + нода.Для чего и как это можно сплести в объятьях братских?
>>1648538Не знаю. Я такой странноватый недовкатившийся. Сам себе программист, для своей конторы небольшое пхп-приложение запилил. С нодой люблю поковыряться. Но опыта совместной разработки у меня ноль. И опыта "вката" у меня тоже нет.Пока что все тестовые что проходил - были вполне адекватные. В частности на пхп - что то типа таск менеджера оч простого, с пагинацией и фильтрами на ней. Все на чистом PHP 7< ООП и без фреймворков. Считаю это адекватным тестовым - потому что человек с опытом либо из своих исходников собирет свое MVC с роутером, моделями и валидаторами за пару часов, либо найдет по быстрому уже готовые классы и из них опять же соберет весь этот венегрет.Другое тестовое было на ноде, оч простой фулл-стэк мини блог, с добавлением статей . Морда - реакт, бекенд нода/эксперсс. Можно было и фреймворки и либы. Тоже не пипец сложно. Но там все таки компания искала больше фронтреда, а я все же больше бекен. Реакт знаю слабо и не SPA.Оба тестовых я сделал, но не в срок, и оба тестовых мне очень много дали. Так что совсем не адекватных заданий я не встречал.
>>1648718А я с тобой не везде согласен.>Приходят люди, 10+ лет опыта, устно не могут объяснить индексы, или блокировки в транзакциях. Или отвечают "я думаю, это всегда можно в гугле найти, незачем это знать".Тебе чтобы водить машину тоже досконально двигатель внутреннего сгорания надо знать - какие там давления, какие топливо-воздушные смеси и тд? Или может всё же достаточно понимания общих принципов и знания ПДД? А может и правда права вождения перестанем выдавать всем тем, кто магистратуру по автомобилестроению не сдавал?У них 10+ лет опыта построения приложений согласно требованиям бизнеса, а не дрочки индексов. Наймите уже отдельно себе аутиста для баз данных - чтобы сидел и над индексами аутировал.>Про фронтенд лучше вообще не спрашивать - никто ничего не знает.Да тебе никакой жизни не хватит чтобы полный актуальный фуллстек знать. Человек с чем работал - то и знает.Опять же - хочешь себе фронтенд если, то найми фронтендера.>Зарплату ему оплатить изволите?Дай угадаю - когда вы про фронтенд спрашиваете, то речи о, эквивалентной добавке к зарплате не идёт? Может это вы халявы хотите тогда?>Вы бы лучше вместо курсов по повышению самоуверенности запросы поучились оптимизировать и мануалы почитали.Снова туда же - программист не обязан знать базы данных досконально потому, что на его уровне это просто ещё один инструмент. Или наоборот - найми себе аутиста с БД и начни ещё возмущаться почему он неподдерживаемое говно пишет и сливает сроки вообще всегда.>из-за вас приходитсяКого нас то? Люди работают как умеют - с тупняком, косяками и прочее. Это вообще к любой деятельности относится: от подметания улиц до построения АЭС в прибрежной зоне.Думаешь сам идеальный? Твоя позиция впринципе инфантильна.Хочешь лучше? Найми фронтендера для фронтенда, бекендера для бекенда, тестеров пачку, аутиста для бд и шлюх им всем на выходные например. Но обычно же так никто не делает - не делает по-нормальному.>У большинства логика - нанялся, накривокодил, свалил, стартап в любом случае сдохнет, независимо от моего качества кода.А ты уверен, что говнокод люди по своей воле пишут? А как тогда с постоянными авралами например? А почему специалистов подороже не берём? Пряников нет на них? Ну так значит на ваших проектах будут говнокодеры учиться. Всё справедливо.
>>1648502>>1646988я вкатывальщик, но судя по логике тут два варианталибо ты хуевый спец, у которого проблемы со скиламми или с общением на собеседовании ( это вариант мы не рассматриваем, ведь ты же крепкий мидл по твоим словамлибо у них завышенные требования, которые никто не может пройти и их этого делаем вывод, что им не так уж и нужен работника вообще это похоже на какую-то пасту из бэ в тредах вкатывальщиков. потому-что сейчас во время эпидемиии я вообще сомневаюсь, что кто-то ищет кадры
>>1648718Ты же поехавший, ты себя слышишь? Вот твои требования к соискателю:1) Знает нутрянку бд. Шарит в уровнях изоляции, помнит всю эту еботу на зубок.2) Шарит в верстке, может див по центру другого дива расположить сходу, все это помнить без гугла разумеется.3) Коммуникабельный и харизматичный.4) Имеет абсолютно релевантный опыт, уже делал точно то что вам надо.5) Знает что персист это доктрина, а не симфони и может грамотно послать нахуй чсв интервьюера.6) Умеет оптимизировать запросы, шарит за планировщик базы.7) Внезапно не коммуникабельный и не харизматичный.8) Не просто знает паттерны, а как минимум несколько вывел сам и понимает когда в них возникает реальная необходимость, обычно просто пишет код, а паттерны возникают интуитивно.9) Не использует паттерны (что бля?). 10) Не знает про современные методы разработки в крупных компания, не интересуется микросервисами (чего нахуй?).11) Возрастом 15-20 лет, ковырял спектрумы.12) Может нормально работать.13) Знает чем отличается ES5 от ES6.Насколько я понимаю это требования к фуллстек мидлу. В голове не укладывается как можно быть таким ебанутым и охуевшим одновременно. Даже в этих нескольких абзацах у тебя взаимоисключающие параграфы и шизофазия. Че там у тебя на собесах я представить боюсь.Просто прикинь, что есть на свете кандидат, который соответствует этим требованиям, и подумай нахуй ты ему обосрался с твоими вопросами ебанутыми и со своей конторой? Если он это все умеет он может пойти КУДА УГОДНО БЛЯДЬ, для него, с таким набором скилов, открыты буквально все двери офисов на планете.
>>1648855Вы заебали меня пастой называть. Пойди, запости резюме на ХХ и посмотри сам, как обстоят дела, все вопросы отпадут.
>>1648538Надеюсь, я пока просто нарывался на неадекватов и всё. Я с тобой согласен, невозможно шарить во всём и сразу. Я тут полгода Java учил, хотел перекатиться (и обосрался в итоге). Но смысл в том, что через полгода Java я забыл к хуям даже PHP, начал писать public void method() и не понимать, чому оно не запускается.Я к тому, что да, знать всё - это невозможно. Но эти пидорасы думают, что возможно.
>>1648539Спасибо, бро. Так и делаю. Что характерно - узнал для себя много нового. Если бы не острая необходимость в деньгах, то собеседовался бы и радовался, т.к. их тестовые и их вопросы (даже не релевантные вакансии) на самом деле довольно полезные.
>>1648700Думаю, те, кто это спрашивают, так и работают. Ищут за 80к человека, который может всё, еще и гендиру сосать будет. Самое страшное, что даже в Джавку это проникает, разговаривал тут с другом. В один крупный российский банк (я даже переписку видел) ищут людей, которые джава сеньеры на бекенде и JS-мидлы на фронте. Вот это я охуел.
>>1649006У тебя что-то с памятью, так быть не должно. Добавь к этому свою проблем с ес5 и ес6 еще. И то и то похоже на одно и то же указывает.
>>1648718Меня отдельно порадовало, что ты даже не думаешь о том, что человек может волноваться, для него это стресс. Меня сегодня собеседовали ВПЯТЕРОМ, блядь. Догадайся с трех раз: я забыл даже то, что неплохо знаю? Все ответы сказал именно так, как хотел? Не бился ли головой в стену после собеса, т.к. неожиданно придумал ответы гораздо лучше?> Приходят люди, 10+ лет опыта, устно не могут объяснить индексы, или блокировки в транзакциях.Ты вообще спрашиваешь, какой у них именно опыт? Я, например, честно говорю, что 6 лет педалил сайты на CMS, над большими проектами не работал и т.п. И объясни, что такое индексы. Серьезно.> Про фронтенд лучше вообще не спрашивать - никто ничего не знает.Какое серьезное обобщение, бро. Ощущение, что ты вообще никого не собеседовал на самом деле.> Видимо, им еще личный раб-верстальщик нужен для работы. Зарплату ему оплатить изволите?Во-первых, ты где их ищешь? Я готов педалить всё подряд, в том числе и фронт, только возьмите. Не берут. А ты пишешь, что все такие выебистые, что личного раба хотят. Один из нас пиздит? Во-вторых, с какого хуя разработчика должны волновать твои финансовые проблемы?> вы не представляете, сколько времени и сил уходит на их составлениеБедненький ты наш. Ни сколько не уходит. Я собеседовал джунов, было наоборот прикольно перестать кодить и поделать что-то подобного рода.> Некоторые вообще разговаривают, как будто у них отклонения. На четко сформулированный вопрос вместо четкого ответа начинают уходить куда-то в сторону и вспоминать как что-то когда-то похожее делалиВо-первых, ты заранее настроен к соискателю как к идиоту. Это сказывается на всех твоих выводах. Во-вторых, и что в этом не так? Соискатель пытается показать тебе, что он разберется в твоем вопросе при необходимости и похожий опыт у него есть. Нет, ты хочешь, чтобы было как ТЕБЕ нравится. Ну ищи дальше, хули. Идеального сотрудника ты не найдешь никогда.> причем делал кто-то другой, он просто в сторонке стоялТы опять, пидорас, за других додумываешь? Не удивительно, что никого найти не можешь. А еще они все моральные уроды и по ночам ебутся в жопы, да? Хули, додумывать за других, так по-полной.> Или N лет опыта с Симфони в резюме - объяснить, что делает persist, не может. Как вы N лет используете функцию, не зная, что она делает, а?Я начинаю понимать. Ты, блядь, доебываешь людей какой-то хуетой, вопросами по каким-то мелочам. Что бы ты спросил, если я вообще с симфони не работал? А, ты сказал бы, что я конченный и послал бы, ясно.> Вы бы лучше вместо курсов по повышению самоуверенностиКакую зарплату ты предлагаешь? А то сейчас окажется, что ты ищешь за 50к фулстек макаку, помняющую за персист и симфони.> С этими паттернами вообще какая-то проблема, я видел как люди вместо функции со свитчем сделали стратегию с 16 классами с наследованием и трейтами.Я даже с тобой согласен тут. Но ты не поверишь просто. Смотри, вот я ищу работу. Собеседуюсь с тобой и рассказываю про паттерны, а ты мне говоришь, что паттерны не нужны и говно. И думаешь, что я идиот, который везде пихает паттерны. Через час я собеседуюсь с другим пидорасом и говорю ему, что паттерны не нужны и говно. А он мне говорит, что я ебанутый и без паттернов жизни нет. И как мне быть? P.S. Ты же понимаешь, что ты ты однобоко смотришь на соискателя и очень специфически (и непопулярно) смотришь на программирование?> Ваши микросерисы тут даром не нужны. У нас денег столько нету, чтобы это поддерживать.Опять же, ваши деньги меня не ебут. Нету - идите нахуй. Но вопрос в том, что почти на всех собесах меня спрашивали за микросервисы. То, что ты на них реагируешь как бешеная собака - откуда мне это знать до собеса с тобой? Я, может быть, тоже на них реагирую, как бешеная собака, но тебе буду заливать, что они охуенные, потому, что в среднем по больнице сейчас у всех микросервисы.> Как-то разговаривать еще можно с 15-20 летними и не фейспальмить, с теми, кто еще спектрумы ковырял.Шизофазия какая-то, я даже не распарсил. Мне 32, я ковырял. 15-летние про спектрумы даже не слышали. Тем не менее, от этого я тебе не расскажу лучше, как там индексы работают.> У большинства логика - нанялся, накривокодил, свалил, стартап в любом случае сдохнет, независимо от моего качества кода.Ты опять судишь за других, мудак ты этакий. Я наоборот обычно люблю своего работодателя и если всё хорошо, никуда даже не дергаюсь, а писать стараюсь как можно лучше. Я вообще редко видел людей, которым похуй на свою работу. Обычно это увлеченные своим делом люди.> крутые спецы все сидят на хорошей работе, на зарубежСами-то чьих будете? С чего ты взял, что ты так крут, что можешь оценивать? Более того, с хуяли к тебе должен пойти тот, кто может пойти в Гугл? До кучи: ты можешь знать и ожидать от человека одно. А он хорошо знает и ожидает вопросов по чему-то другому. Вы разойдетесь, думая, что оба идиоты, и даже не в курсе, что просто не поняли друг друга. Как пример: на одном собесе меня дико ебали алгоритмами и структурами данных. На другом - ларавелем, докером, микросервисами и твоими этими ебучими индексами. Это настолько разные темы, что пиздец, как по мне.> Ты хоть раз в жизни учебник JS открывал?Ясен хуй. Только если я что-то и делаю, то есть babel, есть typescript. Помнить в чем там отличия просто не нужно. И я бы сказал, что если ты хочешь возложить ответственность "откроется ли моё говно в старом браузере" на себя, а не на babel, то ты очень опасный и неопытный. Из того, что я ответил и помню - подвезли стрелочную функцию, декларацию классов не через протатип, let, вот эту хуйню "...array". Дальше хуй его знает. Ну и понятное дело, что этого не хватило для ответа, тем более я звучал неуверенно (т.к. не был уверен).> Тестовых сложнее, чем на полчаса-час-два не давал ни разу.Ну хоть где-то ты молодец.
>>1648718Хотя я могу защитить тебя в одном, пожалуй. Я писал, что собеседовал джунов. Так вот, найти джуна, который хотя бы установил ларавел и потыкал его палкой оказалось неожиданно серьезной проблемой. Взяли парня, который был просто смышленый и интересующийся, без опыта. Просто потому, что остальные не могли даже ответить, что такое PHP, что такое класс, что такое база данных, как из PHP к ней подключиться. Про индексы и паттерны даже спрашивать не пытался. Проебались, кстати, даже через полгода его код был лютым говном.
>>1649021Охуительные истории. ES5, ES6, TS, Bem, MySql, Postgres, Node, Mongo, Rabbit, Kafka, Python, Go. Все знает, все умеет. Без гугла ебать. Профессионал вещает из дурки.>>1649030Не слушай дураков, чтобы хоть что-то понять в стеке нужно убить огромное количество времени. Кнопки нажимать и обезьяна может, а вот написать что-то толковое могут единицы.
>>1649046Спасибо. Блин, я рад, что в треде есть ты. Если бы не ты, я бы уже, наверное, решил, что я слишком стар/туп/плохо-с-памятью для программирования вообще. Побольше бы таких интервьюверов как ты.Кстати, вот это:> ES5, ES6, TS, Bem, MySql, Postgres, Node, Mongo, Rabbit, Kafka, Python, GoПочти что точная копия требований к соискателю в одну очень известную контору, куда я сходил на собес через скайп недавно. Ух, как они мою самооценку пошатнули, не передать.
>>1649046Таблетки забыл принять?>Все знает, все умеет. Без гугла ебать.Я не про то, что надо помнить наизусть всю стандартную либу и всякое такое, хотя если память позволит я позавидую.Там чувак банально путает синтаксис двух хорошо известных ему языков и не сразу это понимает. И да, это уже ненормальная рассеянность.>ES5, ES6, TS, Bem, MySql, Postgres, Node, Mongo, Rabbit, Kafka, Python, Go.Если без хуйни 2 года джавы, 3 пхп и 3 питона, жс в комплекте (без тс), на шарпе сам с собой иногда. Представь себе не путаюсь в синтаксисе среди них.Базы нахуя перечислил?Алсо, кроме кафки со всем работал, чего ты тут невозможного видишь? Прямо сейчас у меня на работе ебучий мускл, ебучая монга, редис поверху и крутится на питоне. Всего-лишь небольшая апишка на ленивой поддержке (фронты и клиентские прилоги пилят тут к счастью отдельно). В проектах побольше стек технологий подлиннее твоего пука может выглядеть, скажи еще что это не так.>GoА туда планирую перекат, пока довольно халявно выглядит.
>>1649048> Там чувак банально путает синтаксис двух хорошо известных ему языков и не сразу это понимаетСлушай, ну я не такой психопат, как ты пишешь. Я имел ввиду, что, грубо говоря, целый день читал Джавку, сел за Пыху и с ходу нахерачил переменные без "$". 5 секунд потупил, ударил себя по лбу и продолжил спокойно работать. А не так, что я в принципе не способен в голове два синтаксиса держать. Ну ты чо, блядь. Это не ты, интервьювер? А то он склонен к обобщениям и гипертрофированию.
>>1649050Ну тогда мб норм, механика.Не писал бы тогда так.>через полгода Java я забыл к хуям даже PHP, начал писать public void method() и не понимать, чому оно не запускается.
>>1649051Забей, в общем. Это проблема коммуникации. Люди друг друга и в жизни неправильно иногда понимают. А уж на дваче...
>>1649048Напоминаю что ты на двощах, в треде для вкатывальщиков в пхп макакинг, кому тут пыль в глаза пускать. В джава треде расскажи как ты охуенно с джавы на пхп перекатился, не потеряв скила.Что блядь значит твое "работал"? Речь о том что помнить всю эту залупу нереально. Более того писать что-то адекватное нереально, слишком много всяких нюансов языка, я даже не говорю про фреймворки и их заебы.Взять твой текущий стек. Ты понимаешь почему используется именно монга? Почему используется редис, а не мемкешед, например? То что ты можешь написать запрос к монге не означает, что ты понимаешь что происходит.Да хули там, сам факт того что ты хочешь перекатиться в Го из-за халявы, и ты не в ужасе от этого языка говорит о том что ты нихуя не понимаешь.
>>1649048> Если без хуйни 2 года джавы, 3 пхп и 3 питонаЧто я читаю, блядь? Два года джавы, а СЕЙЧАС ты пишешь на пхп? Ты ебанутый? Или твои "два года джавы" - это туду листы в стол писал?
>>1648829>>Тебе чтобы водить машину тоже досконально двигатель внутреннего сгорания надо знатьПрофессиональный водитель я не о совеременных таксистах типа дальнобоя - отлично знает как устроен его автомобил. Какой нибудь гонщик порою механов переплюнет по знанию матчасти. Профессионал с 10+ лет опыта и отличается от нуба тем что глубоко занет свой предмет.
>>1648997Он не поехавший, а вполне адекватный. Просто высоты современного кодера - очень низок.Ты просто в ответе своем требования в абсолют вывел.Я читаю всхлипы в треде - и похоже народ просто вообще не делает тестовых, и не шляется по собесам. Все мои тестовые были вполне адекватны. Требовалось просто показать что ты в общем занешь что делать. Что знаешь язык на котором пишешь.Скулежа относительно БД вообще не пойму. Ахуеть программисты пошли, запрос в базу сами написать не могут.
>>1649068> Ахуеть программисты пошли, запрос в базу сами написать не могут.Обвинил его в том, что он возводит в абсолют и тут же сам возвел в абсолют. Ну найс аргументы, чо.
>>1648999А как там сплетать пхп и ноду? и зачем там вообще пхп?А с вэб сокетами для меня история интересная - я наешл гайд по которому этот стандарт реализуется самостоятельно. Хочу покопаться в этом , разобрать реализацию протокола пошагово.
>>1649072При чем тут "зачем", если он просил такую задачу. Не хочешь - не сплетай. Мне-то что вообще?
>>1649029Чел, я прочел твое эмоциональное выступление.1. Мне кажется ты не очень умеешь торговать ебалом2. Ты все таки как то с точки зрения "о боже мир не справедлив" смотришь на реальность.Фактически вкатывальщики демпенгуют, и чисто психологически бизнесу платить опытному человеку тяжелее. Как это мидлу 150 платить, если джун готов за 30 к пердолиться. Тем более со стороны бизнеса результат "типа" одинаков, только джун дольше делает "раз в 10".Но на "очень относительном" лайте можно въехать совсем не глубоко. И появляются такие пхп программисты, которые за 6 лет профессиональной работы с пхп не могут сказать что такое индесы. И это в пхп, который по сути обертка вокруг базы данных.Естественно руководители немного ахуевают. Все таки нулевого роста можно ожидать от офисного планктона, но никак не от профессии где на каждом углу кукарекается о том что "программист учится всю жизнь".Я тебя понимаю, ты потерял работу когда в ней нуждался, и это стрессовый момент. Соберись, и далее вперед на собеседования. Пусть сейчас и конечно штиль, но он окончится.
>>1649047>>Ух, как они мою самооценку пошатнули, не передать.А ты не будь лохом, которого можно вот так вот за нехуй делать опустить. Выводы сделай, а на самооценку и эмоции это не должно влиять никак.Цыгане из условной бизнес молодости несут такую позорную хуйню - и ниче, ходят с гордым ебалом.Личность твоя важнее чем твои навыки.
>>1649070Это не абсолют. Это элементарщина. sql - базы это достаточно сложное говно, но для разраба знать это не нужно. Но написать уж своими руками элементарный запрос с объединениями, группировками и какой то сортировкой - это не пиздец наука. Это если с ноля - 1.5 месяца. Как за 10 лет не найти на это время, и не столкнуться с необходимостью этого - я хз.
>>1649079> Как за 10 лет не найти на это время, и не столкнуться с необходимостью этого - я хз.Скажи честно, ты ебанат?
>>1649079>>1649081Можешь не отвечать, уже понятно, что ебанат. Намекну: из какой такой жопы ты вытащил идею, что "пошли кодеры", которые не могут написать запрос в базу? Я вообще не понимаю с какого хуя ты это взял.
>>1649081>>1649083А что тебе то подпекло так? От чего истерики? Максимализм голову давит? Типа раз про базы спросили - то знать нужно на уровне какого нибудь сертифицированного oracle разраба с 10+ лет опытом и увешанным сертификатами как новогодняя елка игрушками? Если react - то ебашить не менее оверхедно чем Дэн Абрамов?Как правило все что спрашивают, что не касается основного стеака - уровня - "знакомы, знаете"? Опять же хозяин - барин, это реальность, че скулить. Хочит галера ассемблер/кложур/брэйнфак разраба за 30 ты - ее право, может хотеть че ей вздумается. Пусть ищут.Просто я не очень понимаю скулежа по поводу "стока просят". Первое - большинство "стока не просит", 90% - питон, JS, пхп.Второе если где то просят дохуя а ты не знаешь - значит не твоя вакансия.Опять же ознакомиться с реактом допустим - дело пяти вечеров. Документация идеальная, гайдов море. Через месяц ленивого ковыряния в нем - ты пилишь свое кривое SPA. И можешь обновлять резюие.Я тебе с иной точки зрения скажу - программисты как правило просто очень инфантильны, и думают о всякой хуйне из своего манямирка.А те кто не инфантильны - те скачут кабанчиком, ездят на мерсах и не участвуют в беседах на макакаче.нуфф саид
>>1649057>Речь о том что помнить всю эту залупу нереально.Я отвечал на проблемы с запоминанием синтаксиса, а тебя унесло в знания "всего". Зачем? И мы уже выяснили с ним про взаимное непонимание.>кому тут пыль в глаза пускатьНикакой пыли, кроме ответа на твой бессмысленный набор кейвордов, призванный показать какую-то там надуманную сложность и тщетность бытия. Впринципе если ты не контрибьютишь в пхп, то можешь получается и не заикаться о его глубок знании Если до такого маразма доходить, то почти у всех резюме опустеют. Знать просто хорошо, иметь опыт работы, чем больше тем лучше конечно, и замечательно. В таком ключе у большинства тут кейвордов будет в резюмехе в 3-4 раза больше, чем ты в своей страшилке написал. Я ведь тоже только самым поверхностным тебе ответил. Если ты хотел показать тщетность познания в целом - ок. В частности - зря, этот фатализм тебе не поможет ничем, ведь всегда можно углубиться еще больше.>То что ты можешь написать запрос к монге не означает, что ты понимаешь что происходит.И вот на это тот же ответ, что и выше.>Более того писать что-то адекватное нереальноРеально при умеренной нагрузке на каждый из проектов на разных языках, без кранчей и прочей хуйни. А с кривой нагрузкой даже два параллельных проекта на одном и том же языке и даже стеке начнут проседать в говно. Да даже один проект, в котором тебе просто не дают шанс на подумать. Обычно работа сразу с несколькими языками/технологиями подсознательно читается как вечный завал, а не размеренность. Это не обязательно, можно как фулстачить спокойно, так и загнать себя в гроб всего на одной задаче. От кранчей бежать надо в любом случае, какими бы они не были.>Ты понимаешь почему используется именно монга?Понимаю. Будь возможность мне это сделать без монги - так бы и сделал. Увы это был лучший выбор.>Почему используется редис, а не мемкешед, например?Нужен был фолбек. У меня тут кроме житейского кеширования редис используется в достаточно нетривиальной задаче промежуточного хранилища для длительных вычислений, которые начальство очень боится поломать или просрать при падении.>в Го из-за халявыА почему нет? У всех знакомых гошников не работа, а мечта. Интересные таски, отсутствие легаси, движуха и молодость. Это временно и я хотел бы успеть на этот праздник жизни. А ты нет? Не всегда есть выстреливший молодой язык не успевший обрасти говной.>>1649060Не серверной. Андроид. Приложульки вогнали в уныние, сменил деятельность. Синтаксис я до сих пор помню и не путаю.Алсо, хронологически на андроиде перерыв от бекенда взял, и зря.
>>1649072>А как там сплетать пхп и ноду? и зачем там вообще пхп?Например есть сайт на пхп. Он достаточно большой, рабочий и тут вдруг захотели чатик на вебсокетах. Причем ноду в этой схеме можешь заменить на что-нибудь еще.Самый очевидный, но не лучший способ их связать - банальный хттп апи.
Сап, недавно вкатился, столкнулся с оптимизацией скорости, вопрос как сжимать на ходу jpeg/png всякие для анонс размеров?Также вопрос по lazyload, как правильнее всего осуществлять такие вещи?
>>1649095Причем здесь фатализм? Ты фокусируешься на чем-то одном и становишься профессионалом или пытаешься делать всего понемногу и в итоге не умеешь нихуя.Ты даже не понимаешь насколько бредово звучит "монго это был лучший выбор" для человека хоть немного разбирающегося в базах. А фоллбек с редисом это блядь взаимоисключающие понятия, если в редисе подрубить AOF и RDB, то получишь перфоманс как в реляционном постгресе, только с дополнительным гемором по настройке и поддержке этой хуйни. В реальности редисовские снапшоты используются для быстрого прогрева кеша, а не для персистенса и гарантий актуальности данных. Я уже не говорю что если есть реальная нагрузка, то нужно всю запись на диск выносить в отдельную ноду. Ведь редис сука однопоточный.Таких мелочей тысячи. Даже для того чтобы "просто" писать идиоматичный современный код на пхп 7.4 нужно пройти огромный путь, набить шишек себе и окружающим и прочитать тонны макулатуры, которая постоянно устаревает и становится не актуальной.Для того чтобы писать код на каком-то языке много ума не надо, но для понимания нюансов нужно убить кучу времени и сил. Слишком много времени и сил чтобы распыляться на что-то другое.
>>1649116На фронте JS либа https://github.com/verlok/lazyloadКартинки в теге picture, формат .webpВ параметрах ссылки на картинку указываешь размеры /picture/pic_ab4346f.webp?width=100Если такого файла нет, то генеришь картинку нужного размера, сохраняешь себе, отдаешь пользователю.Вот, все как в лучших домах европы.
>>1649116>>1649131Лучше на диск не сохранять а ложить в кеш, иначе какой-то кулхацкер в цикле засрет диск своими width=101, width=102 и т.п.
>>1649134Ну тут уже каждый дрочит как хочет. Можно фиксированный размер делать и в параметре передавать типа ?size=small. А можно хитровыебанно зашифровать размер и передавать size=ppqDgr.Я просто направление указал.
>>1649094Ты можешь не распинаться, я даже читать не хочу. Просто скажи, где в этом треде написано, что я не умею sql-запросы составлять. С чего ты это вообще взял?
>>1649095> Не серверной. АндроидАаа, тогда окей, вопросов нет. Алсо, лучше уж идти в бекенд на джаве, чем бекенд на пхп.
>>1649066>Профессиональный водитель я не о совеременных таксистах типа дальнобоя - отлично знает как устроен его автомобил.Веб-программист тоже отлично знает как работает веб и его фреймворки.БД - не его уровень. Это к байтоёбам ближе.
>>1648822Это не подходит. То есть эти капчи разные? нельзя просто заменить?Нужно писать окошко что имитирует андроид?
ISP managerСоздал почтовый домен домен.ру (как домен с сайтом) с dmarc без sslСоздал почтовый ящикВхожу в почту через roundcube - входитСкачал PHPMailer и вот тут перестал вообще ничего не пониматьИмя сервера входящей почты - mail.домен.rusmtp порт: 25Забиваю в phpmailer $mail->Host = 'mail.домен.ru';$mail->SMTPAuth = true;$mail->Username = 'support@домен.ru';$mail->Password = 'пароль'; // SMTP password$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 25; Результат: 2020-04-03 11:15:11 SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: Name or service not known (0)SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/TroubleshootingКак эту ебалу настроить нихуя не понимаю ни одного гайда внятного
>>1649194>БД - не его уровень. Это к байтоёбам ближе.Ну и че вы хотите от этих вкатывальщиков? Разве что порадоваться - очень овощной конкуренции.
>>1648829Ты ничего не понимаешь в процессе собеседования. Бизнесу нужен кандидат, который будет выполнять работу максимально хорошо и быстро и за меньшие деньги. В процессе собеседования "выгодность" кандидата полностью оценить невозможно. Это можно выявить только на реальных задачах. Но мы не можем позволить себе взять 50 человек на испытательный срок и нам некогда будет за ними следить.Единственное, что остается - задавать всем одинаковые вопросы, брать тех, кто лучше ответил и приглашать на исп. срок, на котором и проверяется, как кандидат справляется с задачами.И, естественно, людей, которые не смогли какие-то базовые вещи освоить, лучше сразу отсеивать. Сюда надо добавить тот факт, что люди не всегда пишут в резюме правду. Они напишут опыт работы с технологией X, а по факту ее внедрял и использовал какой-то из их коллег, а они про нее ничего не знают.Возвращаясь к твоей аналогии, если мы ищем водителя, и один кандидат знает устройство карбюратора, а второй нет, то первый перспективнее, даже если ему не придется его чинить. Мы предпочтем иметь человека, который будет писать эффективные запросы.То же касается фронтенда. Если человек может на фронтенде сам что-то поправить, то это плюс. Только вот по факту сами фронтендщики на простых вопросах посыплются, потому что они тоже ничего не изучали, а лепят код на глаз, как придется.Зарплата в сравнении с официальной средней по РФ очень даже хорошая предлагалась. Но по знаниям они больше на среднюю по РФ тянули. С чего вы решили, что вам просто на опыт должны зарплату повышенную давать? Ее дают за знания и навыки, хоть у вас 20 лет опыта, это не важно.>>1648997Знать, как устроен индекс это не то же самое, что знать внутренности БД. Ибо я сталкивался с человеком, который в этих внутренностях ковырялся. Индексы - это как раз для обычных разработчиков. Если человек в хоть сколько-нибудь сложных проектах работал, с идексами он столкнется. А вот если он только ворованные дизайны на CMS натягивал, то да, тут он пролетает.Про микросерисы я четко написал: мы не Гугл, у нас нет тысяч разработчиков, чтобы их поддерживать. Кстати, когда приходят люди с опытом работы с микросервсами, начинаешь их расспрашивать, и понимаешь, что они прекрасно бы жили без них и может даже сэкономили рабочее время.Про паттерны та же ерунда, я пока не видел ни одного примера их использования в реальном коде, чтобы этот код стал проще и понятнее, удобнее в поддержке. > Просто прикинь, что есть на свете кандидат, который соответствует этим требованиямТакого мы бы и хотели получить, а если нет такого, то максимально близкого к нему. А не умеющих в оптимизацию запросов, не умеющих решать задачи на проектирование любителей микросервисов и паттернов с удовольствием оставим конкурентам.
>>1649029Чтобы он не волновался, у нас вначале спокойный разговор о вакансии, о предыдущем опыте работы, ответ на его вопросы.> И объясни, что такое индексыСтруктуры в СУБД, которые позволяют ускорить выполнение SQL-запросов.> Какое серьезное обобщение, бро.Да, часто так и говорят, фронтендом не занимаюсь, во фронтенде не разбираюсь, я бекендщик.> Бедненький ты наш. Ни сколько не уходит. Уходит. Они должны быть лаконичными, понятными на слух, давать нам какую-то информацию (не годятся вопросы, на которые никто не может ответить или отвечают все). Они не должны быть привязаны к конкретным фреймворкам, библиотекам.> Соискатель пытается показать тебе, что он разберется в твоем вопросе при необходимости Любой человек разберется в любом вопросе при острой необходимости и наличии большого количества времени. Потому такой ответ ничего не значит. Наша цель отобрать более перспективных кандидатов, а не тех, кто все рабочее время будет сидеть и разбираться вместо работы.>> причем делал кто-то другой, он просто в сторонке стоял> Ты опять, пидорас, за других додумываешь? Это проверяется элементарно: человек говорит, что работал с технологией X. Задаем любой вопрос по ней (какие из фич вы использовали в технологии X?) и человек начинает уходить в сторону, из чего очевидно, что из технологии X он в лучшем случае слышал ее название на одном из стендапов и решил зачем-то вписать ее в резюме.> Что бы ты спросил, если я вообще с симфони не работал? Вопрос по той технологии, с которой работал. С чего я должен верить на слово, что ты ее знаешь? И откуда такая агрессия? Ты тоже не знаешь, что именно делает persist и ни разу не открывал исходный код этой функции? > А то сейчас окажется, что ты ищешь за 50кТы же понимаешь, что 50к это максимум какой-нибудь хреновый миддл, прошедший онлайн-курсы. > Собеседуюсь с тобой и рассказываю про паттерныСмысл в том, чтобы не заучивать их определения, а подумать, когда они могут быть полезны, а когда - нет. И честно сказать, что в твоем проекте можно было бы применить паттерн X, но код от этого стал бы только хуже, потому ты решил его не применять. А так, я вообще про паттерны не спрашиваю.> Но вопрос в том, что почти на всех собесах меня спрашивали за микросервисы. Потому что на Хабре/на конференции про них рассказали и они теперь решили что в 2020 без этого нельзя. После ответа на такой вопрос (и про паттерны тоже) надо спрашивать, а применяют ли они их сами, какие плюсы получили. И тебе ответят, что сами они их пока не используют, но конечно, думают об этом, но пока нет времени, есть более срочные задачи.15-20 летние - имелось в виду 15-20 лет опыта. Это обычно адекватные и грамотные чуваки, с которыми приятно побеседовать.
>>1649029> Меня сегодня собеседовали ВПЯТЕРОМБогатая компания, раз может выкинуть 5 ч рабочего времени на каждого кандидата.
>>1649313>>1649332Вот вроде многое ты говоришь адекватно, но чувствуется сильное отторжение от паттернов, как от явления в целом. Получается у вас поощряется линейный код? Или как вы пишете? Может ты имеешь ввиду что-то более конкретное, чем все явление обобщенно? Просто при использовании ооп (и даже без него) паттерны сами собой вырисовываются, т.к. уже практически любую схему взаимодействия кода между собой назвали каким-нибудь именным паттерном. В конце концов те же фреймы паттерны используют во всю, и многое идет на пользу, разве нет?
>>1649313>Ты ничего не понимаешь в процессе собеседования.А ты ничего не понимаешь в разработке.У меня складывается ощущёние, что ты просто залётный из треда про БД и думаешь, что самый умный на доске.
>>1649263В ПХП помимо баз данных много есть вещей.Собственно, сами бд со стороны программирвания нужны только для того, чтобы самому хранение и выборку не писать.Если человек знает про индексы, но не знает про современные инструменты для работы с БД, то никому он такой не нужен.
>>1649313>Про паттерны та же ерунда, я пока не видел ни одного примера их использования в реальном кодеВсе современные приложения на пхп основаны на PSR-7, PSR-15 и middleware, что представляет собой паттерн "Цепочка обязанностей". Без паттерна "Репозиторий" в крупном проекте сейчас вообще нихуя не делается, паттерн "Команда" обязательно используется в домене для каскадных изменений и очередей. Прокси используются в ОРМ, а как вообще можно писать ООП код, не используя декораторы? Как можно писать АПИ не используя итераторы? Как можно использовать у себя в проекте сторонние либы без адаптеров?Никто блядь не сидит и не придумывает а куда бы впихнуть еще паттерн, ты просто следуешь бест практис и здравому смыслу и твой код сам принимает форму паттерна.Сам факт того, что тебе это приходится объяснять говорит о том что ты нубас, причем с предубеждениями, а требования у тебя завышенные. У тебя даже варианта нет, что если человек толковый, то он с этими индексами разберется изи, это ж не бином ньютона в конце концов.И вообще твой спич звучит как высер манагера: "бизнесу нужны", "оставим конкурентам", "нанялся, накривокодил".Мой поинт не изменился, я твои хотелки на себя примерил, но нихуя не понял, а зачем ты мне? Нахуя ты обосрался тому, кто твоим критериям соответствует?
>>1649417Где искать такие галеры (удаленка)?На последней удаленке ничего этого не было. Писали весь код в контроллерах.
>>1649418Обращай внимание на стек. Версии фреймворков посвежее, базы. Сколько опытных программистов в команде. Можно совсем по охуевшему попросить показать код, но такое скорее на офисных собесах канает, на удаленке думаю тебе покажут хуй.
>>1649428Есть трелло в качестве таск трекера.Есть задачи зачастую с очень краткой формулировкой и частенько блокированные другими задачами.Есть дейли отчет: дублирование статусов задач в рабочий чатик.
>>1649430Нехорошо. Лучше раз в день всем созвониться хотя бы на привет/пока, если нечего обсуждать, чем безлико дрочить тасктрекер с хуй пойми какими соседями. В случае чего там все и обсуждается. Скрам версия удаленки.
>>1649348Ну и, назови мне широкие и конкурентные относительно других языков, сферы применения пхп без БД. Везде абсолютно в каждом языке есть много вещей помимо БАЗ.Но я слегонца хуею, в 2020 пхп-бекендеры оказываются решили что базы не нужны. >>1649417А ты работаешь? или кукаретник? Не ради троллинга спрашиваю - мне интересно. Какой последний проект был в котором такое пилили?
>>1649442Всмысле ты отказался разговаривать с другими разрабами на удаленке? Или просто уже ливнул и обсуждать уже поздно варианты?
>>1649468>пхп-бекендеры оказываются решили что базы не нужныТак то это ты с луны ёбнувшийся и решивший, что бд это самое главное в веб-программировании. Тогда как это просто способ хранения данных.Ещё и заявляешь тут, что пхп это приложение к бд. Сам с себя не хуеешь?
>>1649468>без БДЕсть способы хранения в жсон, статические хтмл, да куча способов хранения данных вообще. Жаль, что ты кроме индексов в бд ничего не знаешь и не умеешь.
Господа, помогите. Всю жизнь кодил на чистом пхп, а тут кинули на стек Symfony+Doctrine.Не понимаю, как реализовать триггер для бд. Нужно при каждом INSERT чистить базу от старых записей. Доки Доктрины пиздец скупые, написано про четыре типа эвентов и примеры нихера не объясняют. В гугле все примеры тоже уровня 2+2.Что мне сделать, чтобы автоматически чистить таблицу от старых Entity? Объясните русским языком, пожалуйста.
>>1649468Работаю, не кукаретик.А какое "такое"? Если проект на актуальном симфони с доктриной, то все это там уже есть.
>>1649492На мой взгляд идея крайне хуевая. Завязывать бизнес логику на инфраструктурные события, да еще и в сторонней библиотеке, хуйня полная. Ты разрушаешь саму идею использования доктрины, для тебя процесса сохранения не должно существовать, а ты триггеры какие-то на него завязать хочешь.Ты должен генерить свое "доменное" событие типа "Создал залупу коня" и хенлить его в отдельном воркфлоу, удаляя че там тебе надо. Но и это тоже говно - скачек нагрузки на запись и ты бомбишь свою базу двойной дозой радости.В идеале нужно вынеси чистку в консольную команду и дергать её раз в несколько минут.
>>1649502>для тебя процесса сохранения не должно существоватьВ смысле, а зачем я тогда вызываю persist() или merge(), а после них - flush()? Автоматически в БД ничего не падает.>В идеале нужно вынеси чистку в консольную команду и дергать её раз в несколько минут.А как добавить в проект cron, чтоб он сам потом разворачивался? Инструменты и плагины выбраны тим-лидером, там ничего менять нельзя.>>1649503Будь я не внутри волшебного фреймворка, то конечно. Но тут база должна корректно создаваться при последовательном выполнении миграций. Мне миграцию с триггером надо руками создавать?
>>1649510>В смысле, а зачем я тогда вызываю persist()persist() вещь абстрактная, она даже не означает что у тебя есть база, просто условное хранилище. Идея как раз в том чтобы не завязываться на воркфлоу реляционной базы.>Инструменты и плагины выбраны тим-лидером, там ничего менять нельзя.Ну нельзя так нельзя, хули. Тимлиду виднее. Наебашь триггеров прям в базе, как выше советуют, пусть он себе волосы на жопе рвет потом.
>>1649517>пусть он себе волосы на жопе рвет потомЕсли я скажу, что мне нужно то-то и то-то, оно будет добавлено, но я не знаю, что мне нужно. Не в реадми же писать, что при разворачивании проекта после композера и npm добавьте руками в крон вот этот милый скриптик, который чистит БД.
>>1649520>Не в реадми же писать, что при разворачивании проекта после композера и npm добавьте руками в крон вот этот милый скриптик, который чистит БД.Это функционал баз данных, гугли CREATE TRIGGER MySQL/Postgre
>>1649520Это может быть не только крон, это может быть демон или вообще отдельный сервис. Если сам не шаришь как у вас такое происходит, то спроси своего тимлида. Я лишь попытался тебе объяснить, что чистка должна происходить независимо от вставки.
>>1649526Я знаю, как создать триггер. Я не знаю, как это сделать в философии Симфони+Доктрин, где я вообще мимо Доктрины и ее миграций базу шатать не должен.
>>1649471Я пытался с ними разговаривать.1 идет на контакт кое-как.2 футболит.продакт при попытке уточнения требований и деталей по таске несет какую-то хуйню, которая ничего не уточняет.Ушел с концами, т.к. сгорел нахуй с ними.
>>1649533Я спросил, как сделать триггер, мне ответили "хз, не делал, надо гуглить". Вот я пришел на двач за советами мудрыми. Фреймворк же должен облегчать жизнь!
>>1649539>Фреймворк же должен облегчать жизнь!Так погугли же! Вряд ли это настолько редкий вопрос, что гугл промолчит
>>1649539>Фреймворк же должен облегчать жизнь!Это такая ловушка "простоты". Фреймворк не облегчает жизнь сам по себе. Точно так же jquery не облегчает жизнь сам по себе (и хуй на него, он мертв. Что впрочем ждет и некоторые фреймы).Ни то ни другое или их аналоги не обещают облегчить тебе жизнь больше, чем ты облегчаешь ее себе сам с помощью собственного скила.Меньше полагайся на чужой результат и больше думай, делай и разбирайся сам. Тогда тебе и фреймы будут помогать, и даже лучше - ты сможешь помогать им. А до тех пор такие утверждения лишние. Желание гттовой помощи на любую хуйню по запросу - это больной рак ит под названием вайтишник. Просто сиди, разбирайся, делай. Ни одна технология не должна быть проще, чем это ей позволяет предмет, так что начать надо хотя бы с этого.
>>1649562Пили свои велосипеды. Пиши какую нибудь CRM на голом php, реализовывай анимацию на голом javascript
Сап погромач, нужна ваша помощь. Сам я в этом не силен, от нечего делать решил побаловаться с накатыванием готовых сайтов и почувствовать себя программистом нет. Но вот уже с 3 мя движками возникают подобные косяки как на скринах. Делаю все как написано, прописываю БД запускаю install.php и... хуй мне!!! Аж трисет бля, то ли я че то непонимаю (хотя что там понимать три строчки скопировал вставил) то ли еще что. ЧТЯДНТ?
>>1649339Я предпочитаю простой, понятный код. Если вместо паттерна "Стратегия" можно написать функцию со свитчем и с несколькими подфункциями, то я сделаю так, а не буду городить кучу мелких классов.Пример: есть 2 вида скидок: - скидка N% от цены заказа- N-й товар идет бесплатно, если купить N товаровВопрос: нужно ли тут городить паттерн Стратегия? Ответ: нет, пока не нужно. Проще сделать по функции на каждый вид скидок. Так весь код будет рядом и его легко можно осмотреть и подправить что-то. Когда видов скидок будет десяток (никогда), тогда будем делать для них классы.
>>1649960Ебать, сам выдумал хуйню, сам её подебил. Стратегия в пхп это блядь шизофазия в чистом виде. Этот паттерн нужен для изменения поведения в КАНПЕЛИРУЕМОЙ программе. Когда у тебя просто нет другого способа обработки разных ситуаций, ведь объект уже в памяти. Нахуй она нужна в пхп, когда под каждый запрос все объекты с нуля создаешь?Вот ответь лучше на это >>1649417>как вообще можно писать ООП код, не используя декораторы?>Как можно писать АПИ не используя итераторы?>Как можно использовать у себя в проекте сторонние либы без адаптеров?
>>1649960>Когда видов скидок будет десяток (никогда)>(никогда)В смысле никогда? Это ты так за хозяина бизнеса решил?Тебе то откуда знать что он выдумает через неделю?
>>1646988>- напишите интернет-магазин на symfony + react за 6 часовЕсли ты после 3 лет работы на технологии не можешь на фреймворке написать интернет магазин за 6 часов - ну как бы тебе не надо программированием заниматься.
>>1650100Это я решил применить принцип YAGNI, и не городить масштабируемую систему на сотни видов скидок, когда фактически нужны только 2 вида.>>1650020Не понял, при чем тут компиляция. Стратегия может пригодиться при работе со сторонней библиотекой, когда ты не можешь менять ее код, но можешь добавлять свои Стратегии для работы с даннными. >>1649968Если у меня 2 вида скидок, я не собираюсь строить масштабируемую систему на сотни видов скидок. И так как желания бизнеса угадать невозможно, то и спроектировать грамотно такую систему заранее тоже малореально. Потому я делаю функцию и свитч в соответствие с принципом YAGNI. Рекомендую почитать про хлеб и пекарей: https://habr.com/ru/post/153225/Увы, замечаю нездоровую тенденцию делать десятки микроклассов (из 1-2 методов на десяток строк) там, где можно сделать несколько функций. С этим мы будем бороться, конечно.>>1649532В Доктрине есть события. Но я крайне не рекомендую их использовать, кроме каких-то исключительных случаев (пример такого случая: полное логгирование изменений в БД). В большинстве случаев вместо события можно просто вписать вызов нужной функции в код. Например: надо после правки товара пересчитать скидку на него. Не пиши события, найти сервис редактирования товара и добавь туда эту функцию. Недостаток событий в том, что они затрудняют чтение кода, не ясно, какие есть листенеры и когда они вызываются, трудно отследить последовательность действий. Почти всегда вместо события лучше влепить явный вызов нужной функции.
>>1649492 Крон-таск. Зачем тут триггеры и события - не понимаю. Просто раз в час удаляй устаревшие записи.Если же надо чистить именно сразу, то поставь после того места, где делается инсерт, вызов функции очистки без всяких триггеров и событий.> А как добавить в проект cron, чтоб он сам потом разворачивался?Договоритесь хранить кронтаб в проекте.>>1649417> Все современные приложения на пхп основаны на PSR-7, PSR-15 и middleware,Вроде в Симфони нет middleware. Да и оно хорошо работает только на уровне модификации запросов/ответов (куки зашифровать, залоггировать что-нибудь).> паттерн "Команда" обязательно используется в домене для каскадных изменений и очередейЧто мешает без команды просто вызывать нужный метод? Мне кажется, что "Команда" нужна в случае использования со всякими очередями, может быть там, где требуется их откатывать (десктопные приложения), но в большинстве случаев можно обойтись без неё.> как вообще можно писать ООП код, не используя декораторы? Берешь и пишешь. Не понимаю, что мешает обойтись без них. Приведи пример удачного использования декоратора. Я всегда рад узнать что-то новое.> Как можно писать АПИ не используя итераторы? Приведи пример, я не понимаю, где в API используются итераторы.> Как можно использовать у себя в проекте сторонние либы без адаптеров?Берешь и используешь. По принципу YAGNI. Если завтра потребуется (маловероятно) поменять библиотеку, просто найдем места, гда она вызывается и поменяем там.Такое ощущение, что ты любишь усложнять код на ровном месте и делать лишнюю работу. Какой код проще и понятней - тот, где прямолинейно и императивно все записано (паттерн Transaction Script), или тот, где есть всякие события, очереди, декораторы, команды и десятки классов из 20 строчек?
>>1649339Отторжение из-за того, что паттерны применяют просто ради того, чтобы они были. Человек прочел учебник про паттернам, увидел подходящее место для Стратегии и влепил её (или сделал класс Money, когда увидел работу с деньгами). При этом код стал сложнее читаться, разбросанным по большому числу классов. Когда требуется править код, требуется делать много изменений. Если бы он не применял паттерны, а просто сделал несколько функций, все было бы проще. Вот такой результат получается, когда человек не способен задать себе вопрос: какую выгоду я получу, использовав тут паттерн? Ты способен ответить на такой вопрос? Другая типичная ошибка - строительство сложной масштабируемой системы там, где масштабирование не требуется и с 99% вероятностью не потребуется. Каждому хочется почувствовать себя строителем звездолета, а не рядовым автомехаником. А мне потом в их коде ковыряться приходится и думать, стоит ли выпрашивать время на выкашивание всех этих паттернов.Типичный пример звездолетостроения: требуется сделать поиск по 2-3 параметрам. Звездолетчик пишет классы Query, QueryBuilder, QueryProcessor, StringTerm, NumericRange и тд. Хотя можно было просто написать функцию find($name, $minScore, $maxScore, $includeArchived). Или find(Filter $f). Ошибка зведолетчика: он думает, что завтра добавится 10 видов параметров и 10 видов условий, но только вот прошло больше года и не добавилось ни одного.Читайте про пекарей и хлеб.
>>1650329>Это я решил применить принцип YAGNI, и не городить масштабируемую систему на сотни видов скидок, когда фактически нужны только 2 вида.Вообще надо смотреть что пишешь. Если какой-то онлайн магазин, то лучше бы сразу предусмотреть эту систему, чем потом сбоку её прикручивать.
>>1650331>Вроде в Симфони нет middleware.Симфони с четвертой версии это и есть middleware. После ебли с бандлами, сервисами и прочей хуйней пришли к этой концепции. Просто, красиво, независимо и расширяемо, хули еще надо?>Что мешает без команды просто вызывать нужный метод? Мне кажется, что "Команда" нужна в случае использования со всякими очередямиПравильно кажется. Когда у тебя один бизнес процесс порождает побочные, то у тебя уже образуется очередь. Ты сам советовал для очистки устаревших записей использовать крон. Триггером для удаления может быть запрос из браузера, крон, событие из очереди, прямой вызов метода. И триггером для создания новой записи тоже. И здесь важно соблюсти единообразие. Нужно свести все эти способы к одному: команде и хендлерам. Приложение реагирует на создание команды, а не на частный способ обращения к нему.>Берешь и пишешь. Не понимаю, что мешает обойтись без них.Пишешь процедурный код. Тут без комментариев.>Приведи пример, я не понимаю, где в API используются итераторы.Итераторы используются для представления сложных объектов виде массивов. Потоки: апи отдает данные в поток вывода, клиент принимает данные из потока ввода. Запрос один, а данных дохуя. Пагинация поверх пагинации: в апи пятнадцать элементов на страницу, а у тебя сорок четыре, закрыл итератором и тебе похуй по сколько там апи отдает.>Берешь и используешь.А потом ноешь на двощах, че это никто не идет чистить твою легаси парашу. >просто найдем места, гда она вызывается и поменяем там.Ты вообще со сколькими кодовыми базами в своей жизни работал? Ты понимаешь сколько кода нужно переписать чтобы выпилить, например, доктрину или газл, сколько потенциальных ошибок и багов это повлечет? Никто в здравом уме тебе не даст в таких объемах код переписывать. Бля, щас ты наверно охуеешь, но классы фреймворка точно такие же либы, которые грузом висят в твоем коде. Ебать я насмотрелся на таких залуп понурых, которые сидят на втором симфони и мускуле замшелом просто потому что с какого-то хуя несколько лет назад решили что чужие классы не нужно своим интерфейсом закрывать.>Какой код проще и понятней - тот, где прямолинейно и императивно все записано (паттерн Transaction Script), или тот, где есть всякие события, очереди, декораторыБля, ну если у тебя бизнес логики на десять срок кода, то можешь их и в индекс.пхп прописать. А если в твоей манере написать хотябы тысяч двести строк кода, то земля пухом тому кто с этим макаронным монстром столкнется.Вообще все это звучит очень странно. Ну не может человек с опытом командной разработки не понимать зачем нужна архитектура, солид хуелид и какие-никакие абстракции. Давай колись, ты тралль или джун, косящий под бывалого?
А есть тут кто нибудь кто увлекался/увлекается ботами для телеги? Застрял на одном месте пиздец, и решения не могу найти уже пол дня
>>1650383>Давай колись, ты тралль или джун, косящий под бывалого?Может даже вордпрессник. Вп будто специально именно такому подходу следует.
>>1650407>Вп будто специально именно такому подходу следует.Там один подход - сейчас сделаем одну функцию, а дальше видно будет. В стиле:>не городить масштабируемую систему на сотни видов скидок, когда фактически нужны только 2 видаПринцип YAGNI же. Зачем блогоплатформе гибкая архитектура с кучей классов?Ну а потом понеслась - начали накручивать плагины, дополнения и имеем что имеем. Эа этот вордпресс всему пхп досталось.
Поясните пожалуйста про laravel mix. Нужен ли он мне, если я использую обычный plain css и vanila js? В laravel 7 это дело ставится принудительно, когда настраиваю авторизацию.
>>1650383> Симфони с четвертой версии это и есть middleware. Что-то в документации ничего такого не гуглится. Гуглится только middleware для Messenger компонента. А я вел речь о HTTP middleware.> Нужно свести все эти способы к одному: команде и хендлерам. Приложение реагирует на создание команды, а не на частный способ обращения к нему.Не нужно. Гораздо проще просто сделать метод, который можно напрямую вызвать. Просто и логично. Чем создавать какие-то команды, передавать в какие-то очереди, чтобы потом в коде невозможно было разобраться. Чтобы использовать очереди и команды, должна быть веская причина. Например: необходиомость вынести долгие операции в фоновый режим. И то, это влечет за собой кучу проблем (например: фоновая операция выполнилась с ошибкой, что теперь делать. Как отлаживать такие ситуации.).И вообще, я тебе предложил привести конкретные примеры, где бы пригодились эти декораторы, итераторы и что ты там еще предлагал, но ты их привести не можешь. Твой пример использования итераторов в API я просто не понял из-за сумбурного описания. > Ты понимаешь сколько кода нужно переписать чтобы выпилить, например, доктрину или газл,Ты на полном серьезе предлагаешь сделать адаптер к Доктрине? С интепретатором DQL? Ты на полном серьезе предлагаешь "заменить" Доктрину на что-то другое? Это нереально, это по сути переписывание всего кода с нуля. > Ты вообще со сколькими кодовыми базами в своей жизни работал? Ответный вопрос: опиши свой адаптер для Доктрины, который ты, по твоим уверениям, делал. Я почему-то сильно сомневаюсь в его существовании.
>>1651023>Что-то в документации ничего такого не гуглится.Ну это ты почему то считаешь, что если используешь паттерн, то должно быть огромными буквами написано его название. Вот тебе видео, в котором один из контрибьютеров рассказывает как все устроено в современных фреймворках, буквально с ноля, до симфони 4https://www.youtube.com/watch?v=pz6VdH4_BSgИ вот еще до кучи видео от автора доктрины о том как вообще пхп разработка пришла туда, где она сейчас. https://www.youtube.com/watch?v=v1I57-_Rsv0Тебя с примерами за руку проведут через десяток лет эволюции пхп кода. Расскажут как рождается сложность, и как её пытались победить тысячи людей. Если уж эти видео тебя ничему не научат, то я тогда свой ебальник закрою точно.>Не нужно. Гораздо проще просто сделать метод, который можно напрямую вызвать. Просто и логично.Ты создашь метод, я создам метод, Вася создаст метод. А потом еще методы для другого функционала, а потом я уволюсь нахуй, а ты будешь сидеть с сотней несовместимых методов и горящей жопой таской. Я не зря спрашивал про твой опыт, любой кто работал с крупным проектом знает: есть вещи, которые поменять НЕВОЗМОЖНО. Еще пол года назад было возможно, а теперь нет. Я буквально сейчас чекаю самописную либу, объекты которой используются в сотнях мест, а места, в которых они используются в тысячах. Изменяя классы этой либы ты в принципе не можешь оценить последствия своих решений.>Твой пример использования итераторов в API я просто не понял из-за сумбурного описания.Хули там непонятного. Про стримы в гугле почитаешь. Вот тебе пример итератора http://phpfiddle.org/lite/code/exbh-xipj Апи отдает по пять, ты выводишь двенадцать, при этом не замечаешь что есть какое-то апи, или какая-то пагинация вообще.>Ты на полном серьезе предлагаешь сделать адаптер к Доктрине? С интепретатором DQL?Хватит тролить тупостью. Ты создаешь свой интерфейс, который делает то что тебе нужно. И реализуешь его своим классом, который уже обращается к доктрине. Когда припрет, то ты через di просто подменишь реализацию где хочешь и на что хочешь, при этом не сломав нихуя в другом месте.>опиши свой адаптер для Доктрины, который ты, по твоим уверениям, делал. Я почему-то сильно сомневаюсь в его существовании.Когда я говрю "Доктрины", то имею ввиду EntityManager, внутри которого спрятан UnitOfWork. UnitOfWork заменяется своим Persister сервисом, через который управляешь транзакциями persist(), flush() итд. Интерфейсы репозиториев пишутся свои, к ним доктриновская реализация. EntityManager используется только внутри этой реализации, там хоть DQL пиши, хоть дрочи вприсядку, я бы выбрал последнее. Вуаля, когда выйдет третья доктрина придется переписать только классы реализаций, работа нудная, но вполне рутинная и выполнимая.
>>1645510>>1645512>>1647817Bump решением первой части вектора с учетом замечаний:https://ideone.com/aXqwbZОП, my dear, посмотри пожалуйста, когда найдешь время.Решил все-таки использовать абстрактные методы, чтобы не нарушать тот принцип, который ты упоминал в учебнике.По-прежнему очень интересно, как можно составить решение с твоим форматом входящего массива - никак в толк не возьму. Pасскажи, пожалуйста.Также есть общие соображения по поводу дальнейшего антикризисного решения. Как насчет определения метода в Company, который создает копию департаментов, производит над ними манипуляции, после чего использует их для создания нового объекта данного класса и печатает репорт?Такая практика вообще имеет место быть, когда метод определенного класса создает объект того же самого класса? Это нормально?
Анчоусы, уже третий месяц работаю джуном. В конторе три программиста, с вебом работаю я один. Подскажите следующее:1. Тесты, чтобы понять свой уровень скилла и найти темы которые херово знаю2. Полезные статьи где на пальцах объясняют ООП, на сайте где я работаю все через функции3. Как развиваться наиболее эффективно, чтобы зарплату можно было просить больше?И самый интересный вопрос, как заставить себя работать в эпоху удалёнки?
>>1651570>Полезные статьи где на пальцах объясняют ООП, на сайте где я работаю все через функцииЧитай всё подряд + практикуйся.>как заставить себя работать в эпоху удалёнки?Поработать на дноработе до этого.
>>1651570>Полезные статьи где на пальцах объясняют ООП, на сайте где я работаю все через функцииЯ ООП понял после Мейерса. где-то на середине книги щелкнуло и я познал дзен.
>>1651570>на сайте где я работаю все через функцииОр, уж не с тем ли сверхразумом отрицающим архитектуру ты работаешь?
>>1651764Как первая работа считаю нормальной, но вот поддержка старых велосипедов и внедрение новых немного напрягает
>>1651299>Вот тебе пример итератора http://phpfiddle.org/lite/code/exbh-xipjО, прикольно. Можешь еще что-то наподобии накидать ключевых слов? Мб какие-то структуры из spl, которые имеют место быть в вебе
>>1630065 (OP)ОП, помоги с SILEX разобраться с аутентификацией, я сделал класс class TokenAuthenticator extends AbstractGuardAuthenticator, настроил фаирвол, руты, отправляю хэдер с X-AUTH-TOKEN в контроллер для которого требуются определенные права - все ок, токен проверяется, доступ предоставляется или отклоняется. Но как мне сделать контроллер для проверки формы логина/пароля? Сделать свой контроллер в котором вызывать методы TokenAuthenticator как в мануале (пикрил), или для это уже реализовано, не могу понять. Исходники:Точка входа https://github.com/enotocode/birthday_reminder/blob/master/src/server/public/index.phpТокенатентификатор (я его скопировал из доков https://symfony.com/doc/current/security/guard_authentication.html)https://github.com/enotocode/birthday_reminder/blob/master/src/server/Classes/TokenAuthenticator.phpКонтроллер-Аутентификаторhttps://github.com/enotocode/birthday_reminder/blob/master/src/server/Controllers/AuthenticationController.php
>>1651299> Вот тебе пример итератора http://phpfiddle.org/lite/code/exbh-xipj Апи отдает по пять, ты выводишь двенадцать, при этом не замечаешь что есть какое-то апиПоясни, я нихуя не понимаю. Какая разница, итератор тут или нет, если ты все равно результаты загоняешь просто в форич и перебираешь до последнего?мимо пытаюсь разобраться с паттернами
>>1652022Открываешь доку по SPL и читаешь. Там список с кошкин хуй. Открываешь список паттернов и читаешь, там тоже от силы пара десятков. Это часа два времени, нихуя сложноного.>>1652364>Какая разница, итератор тут или нет, если ты все равно результаты загоняешь просто в форич и перебираешь до последнегоВ том-то и дело что без итератора мы не можем их никуда засунуть. Это ресурс, причем дискретный, который нужно теребить после каждой порции данных. А с помощью итератора мы его представляем в виде непрерывного массива.
давно тут не был, а вы тут срач развели. интеграция кун снова в деле. анон, посылаю запрос через file_get_contents чтобы получить список пунктов выдачи заказа на их апишки. и такая проблема: они зачастую и очень по долгу лежат. в связи с этим надо поставить затычку, что если типо возвращает мне 503 service unavailablee то фукнция прерывалась и просто возвращала false. так вот, как мне такое делать?
>>1652414Если по простому, то просто кладешь в кэш на минуту инфу о том что хост лежит, и вместо хоста дергаешь кэш. В идеале нужно ввести сущность "Хост" и у него чекать доступен он или нет. Тогда можно и отслеживать статус в реальном времени и логи вести удобнее будет. Можно будет в неловкой ситуации закричать "начальник он обосрался" и пруфануть, а то хули они лежат вообще.
>>1652419да зачем сущность то вводить? просто функция висит которая чекает. и вот интересует как мне это обставить? если верить ддокам по пыхе то если file_get_contents не может получить, то возвращает false. но вернет ли он мне сейчас его ?
>>1652456К нему и все вопросы.Ебать, он тебя рабочего инструмента лишил, а тебе норм. Пусть сам ебётся тогда.
>>1652463да не моя вина, начальство таких подбирает>>1652499да проблема в том что там весь модуль с интеграцией завязан на этом file_get_contents и очень глубоко в ссистему интегрирован. перелопачивать там все тоже как то не охото
Пытаюсь добавить капчу в форму обратной связи, но при добавлении возникает ошибка 256. С чем это может быть связано?
Народ, там аниме-учебник недоступен, что делать? Я только к циклам приступил, и тут это временно недоступен. Хотел пройти его, что делать?
>>1652512>начальство таких подбираетА я вот тут учил бекенд, базы данных, паттерны, пару фреймворков познал. На собеседовании говорили - ну немного верстать надо уметь, кнопочку там подправить например. Ну ок - это тоже не сложно.Посадили на вёрстку, где я говно делаю потому, что не умею во фронтенд особо. Поработаю пару недель и если ситуация не изменится - ну их нахуй. Я так смотрю - у них там все универсалы, а код на проектах уровня вордпресса, от которого я стараюсь держаться подальше.Вот так начальство работников подбирает - в вакансии было написано знание пхп, желательно фреймворков и тд. Потому и делаем говно.
>>1652884Ну ты бы хоть скрин бы кинул. Ошибка чего? Ошибка в каком то php файле? Ошибка сервера 256 лол? Ошибка в консоли браузер?
Анон, прошу объяснить, в чем я не прав.Кусок кода с проверкой логина на на уже имеющийся в БД работает, но кусок с INSERT INTO не работает. Что я делаю не так?
>>1653108Дополняю.При вводе новой инфы возвращается только "Array ( )", это, скорее всего, 66 строка, где проверяется массив fetchAll после запроса SELECT.
>>1653113Попробуй каждую строчку дампануть по очередно. Поймешь в какой у тебя что то не так работает
Αнοны, пοдϲκажитe κaκ пpaвильно вбить ϲтpοκy, пepeд ϲтилeм, чтοбы yбpaть ϲлοвο «Автообновление» вοзлe тaймepa, нο οϲтавив пpи ϶тοм видимым чeκбοκϲ и ϲaм тaймep, тaкжe, κaκ ϶тο peaлизοвaнο нa 4chan.
опенкарт кун снова на связи. нужна ваша помощь, анонсы.есть два контроллера head.php и product.php. один обрабатывает шаблон где head со всеми мета тегами и seo парашей, а второй соответственно выводит данные о товаре для контентной части. каждый из них соответственно передает обработанные данные в свой шаблон head.tpl и product.tpl соответственно. мне нужно так же доработать seo и opengraph парашу в head.tpl, и добавить туда данные о товаре которые приходят в product.tpl и который отдает контроллер product.php так вот: я могу как то вызвать из head.php функцию-обработчик из product.php или мне придется копипасть? сами функции в product.php никак не инкапсулированны и записаны через public если чо
Господа, есть объект Poll (опрос) и есть объект User. Если юзер проголосован в опросе, то вызывается Poll:addVotedUsers(User $user), который добавляет юзера в список проголосовавших.Дело в том, что каждому юзеру за участие в опросе положено начисление баллов, User::addRating($int rating).Хочу начислять их в Poll:addVotedUsers() и написать там $user->addRating($poll->getPrice()). Получается сайд-эффект, но который обязателен всегда.Так можно делать или за такое убивают нахер?Погуглил, похожий пример, в доках доктрины в методе addEntry() кроме добавления записи еще и увеличивается $balance.https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/aggregate-fields.html#using-an-aggregate-fieldПолучается, сайд-эффекты можно, или это несчитово за сайд-эффект?
>>1653382У тебя каша в голове. Я уже тут говорил кому-то: забудь нахуй все эти передать, вызвать метод, добавить. Возьми бумажку и рот вытри опиши на ней по пунктам свой бизнес процесс, без кода, базы и прочей хуйни.Пользователь голосует за пункт опроса, при этом пользователю начисляется рейтинг.Что в себе эта фраза содержит:1) Есть опрос.2) Есть пункт опроса.3) Есть пользователь.4) Есть рейтинг пользователя.5) Рейтинг пользователя увеличивается, когда пользователь проголосовал.Это твоя бизнес транзакция. Выполнив её мы подбиваем итог, что из наших сущностей участников поменялось и как. Их может быть хоть триста. Если они вписываются в бизнес процесс, то все норм. Этим и занимается доктрина, весь её сложный механизм нужен не просто для того чтобы данные в таблицы сохранять, для этого и актив рекорд подойдет. Идея как раз в том чтобы отслеживать изменения в объектах бизнес транзакции.Идем дальше. Подробно рассмотрим процесс голосования.Голосуя пользователь подписывается под пунктом опроса, внося себя в список проголосовавших за опрос.1) Есть список проголосовавших.2) Когда пользователь вносится в список проголосовавших, он считается проголосовавшим.Подробно рассмотрим процесс начисления рейтинга.У опроса есть стоимость, которая используется для начисления рейтинга проголосовавшему1) Есть стоимость опроса.2) Стоимость добавляется к рейтингуИ так далее. Ты создаешь все эти сущности по мере поступления: рейтинг, стоимость, пользователь, хуй в носу. А потом таким же образом решаешь как их компоновать, руководствуясь в первую очередь своим процессом. Потом описываешь сами процессы их взаимодействия. В итоге получается что-то примерно такое https://3v4l.org/AREPJ . И только теперь ты решаешь как сохранять изменения своих сущностей в базу. Создаешь таблицы, прописываешь маппинги доктрины и прочую хуйню-малафью.
>>1653478>$poll->vote($vote);А это вообще законно? Разве не должна такая логика храниться вне объекта, где-нибудь в классе PollService? Опрос не может голосовать, яблоко не может выжимать из себя сок.
>>1653478Алсо, как приверженца делать любую сущность классом, хочу спросить.Вот ты сделал аж 7 классов для базовой реализации опроса, а дальше - больше. В реальной жизни они лежат в разных файлах или как-то комбинируются?А если опросы бывают радио и с чекбоксами, то такие опросы будут наследоваться от AbstractPoll и определять свой vote() в CheckboxPoll и RadioPoll или распадутся на более сложную логику?А если в опросах может быть несколько вопросов? Это я не оверинженерю, я описываю реальный проект.
>>1653534Логика не может храниться вне объекта. Она может храниться в другом объекте. Ты мой пост читал? Опиши свой бизнес процесс и исходя из него реши в каком объекте хранится логика. Названия типа PollService хуевая тема. Они нихуя не говорят что на самом деле происходит. FillPoll, Voting, Polling ты пишешь код чтобы его потом читать, так пиши понятно.
>>1653108Так. По совету: >>1653133Чот у меня не выполняется последний этап. Это же пиздец. Пробовал делать через ? вместо :лог, но результат не меняется. В чем дело?
>>1652970Там никакой полезной информации.0 info it worked if it ends with ok1 verbose cli [1 verbose cli '/root/.nvm/versions/node/v12.16.1/bin/node',1 verbose cli '/root/.nvm/versions/node/v12.16.1/bin/npm',1 verbose cli 'run',1 verbose cli 'dev'1 verbose cli ]2 info using npm@6.13.43 info using node@v12.16.14 verbose run-script [ 'predev', 'dev', 'postdev' ]5 info lifecycle @~predev: @6 info lifecycle @~dev: @7 verbose lifecycle @~dev: unsafe-perm in lifecycle true8 verbose lifecycle @~dev: PATH: /root/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/var/www/node_modules/.bin:/root/.nvm/versions/node/v12.16.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin9 verbose lifecycle @~dev: CWD: /var/www10 silly lifecycle @~dev: Args: [ '-c', 'npm run development' ]11 silly lifecycle @~dev: Returned: code: 1 signal: null12 info lifecycle @~dev: Failed to exec dev script13 verbose stack Error: @ dev: `npm run development`13 verbose stack Exit status 113 verbose stack at EventEmitter.<anonymous> (/root/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)13 verbose stack at EventEmitter.emit (events.js:311:20)13 verbose stack at ChildProcess.<anonymous> (/root/.nvm/versions/node/v12.16.1/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)13 verbose stack at ChildProcess.emit (events.js:311:20)13 verbose stack at maybeClose (internal/child_process.js:1021:16)13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)14 verbose pkgid @15 verbose cwd /var/www16 verbose Linux 4.19.76-linuxkit17 verbose argv "/root/.nvm/versions/node/v12.16.1/bin/node" "/root/.nvm/versions/node/v12.16.1/bin/npm" "run" "dev"18 verbose node v12.16.119 verbose npm v6.13.420 error code ELIFECYCLE21 error errno 122 error @ dev: `npm run development`22 error Exit status 123 error Failed at the @ dev script.23 error This is probably not a problem with npm. There is likely additional logging output above.24 verbose exit [ 1, true ]
>>1653548>В реальной жизни они лежат в разных файлах или как-то комбинируются?Каждый класс это отдельный файл, ясен хуй. Без этого автозагрузка нормально работать не будет, сейчас все делается по PSR-0, PSR-4. Это в сниппете пришлось все на одной странице писать, там по другому нельзя. >А если опросы бывают радио и с чекбоксами, то такие опросы будут наследоваться от AbstractPoll и определять свой vote()Абстрактный класс используется только для переиспользования повторяющегося кода. Логика должна быть типа "одинаковые методы выносим в абстрактный класс". >CheckboxPoll и RadioPoll или распадутся на более сложную логику?Будет логика - будет и распад. Я нихуя не знаю какие у тебя там требования, хули гадать. Вообще постами на двоще такое не очень удобно описывать, даже сниппеты с несколькими классами писать залупа та еще.
>>1653599Братан, я в любой непонятной ситуации сношу node_modules и заново ставлю, попробуй и ты, и кеш нпма почисти еще
>>1653615Делал это уже. Один хуй баги эти идут.Я тут начал подозревать, что это может быть как-то связано с анальным хороводом прав и пробросом папок в докер.Хотя из-под рута запускается, должно быть вообще похуй.
>>1653643Винда сраная говна в жопу залила.Попробовал на VDS - все нормально и работает в 5 раз быстрее.Учитывая что на ноуте у меня i5, а на вдс 2 ядра 2 гига.Ты вообще в какой ОС девелопишь? В смысле в какой ОС у тебя IDE стоит?
>>1653617А хуй знает на самом деле. Прям хорошей книги по моделированию я не знаю, обычно все это в статьях. Гугли domain modelling, вот например неплохой конспект лекций http://stg-tud.github.io/eise/WS11-EiSE-07-Domain_Modeling.pdfЩас домен тесно связывают с DDD, но я бы новичку не рекомендовал в DDD упарываться. Сначала научись моделировать, а потом уже грузи башку иммутабельностью, контекстами и прочей хуйней.Хотя если есть желание, по DDD две книги основные "синяя" и "красная", правда они не по пхп. По пхп тоже есть, но там хорошие мысли сопровождаются хуевым кодом.
Аноны, у меня такой вопрос - у меня скрипт, в скрипте подключение к базе данных. Пусть это или PDO или ORM.Вопрос - я не очень понимаю как работают подключения к базе данных.Каждый раз когда в ПХП выполняется мой запрос - создается новое подключение? И когда скрипт выполняется полностью - подключение к базе данных умирает? Или подключение остается открытым? И если другой пользователь запускает этот же скрипт - я создаю новое в пхп подключение получается? Или пхп находит еще открытое подключение и использует его?А в системах которые не "умирают" после выполнения скрипта - допустим в node я создаю подключение к базе, выполняется скрипт - а после него остается открытое подключение к базе?Еще существует такая вещь как пул подключений. Для чего это нужно?
>>1653557Бамп вопросу. >>1653561Возможно, в будущем я научусь сокращать подобное. Но пока что мне удобнее расписывать так. Спасибо за это замечание, кстати.
>>1653655На убунте, и то потому что там есть i3wm, с ним очень удобно. А так на винде раньше работал с виртуалкой для дев, помню там какое-то говно в гите вечно было с символами переноса строки, и я пока не настроил гит фор шиндовс то у меня любой коммит делал весь файл зеленым
Сап, пхпач, нужна помощь.Работаю на PHPStotm, необходимо работать с БД MySQL.Добавил подключение через вкладку Database, проверил подключение, все работает.Пишу в скрипте $link= mysqli_connect('localhost', 'root','', 'forum');Запускаю и получаю ошибку: Fatal error: Uncaught Error: Call to undefined function mysqli_connect() .Помогите, анончики, молю.
>>1654110Братан, это гуглится в один клик. Надо включить расширение mysqli. Если ты на винде, то поставь OpenServer или любую WAMP хуйню, в которой дяди уже настроили все для тебя. А если ты на линухе, то тем более привыкай гуглить даже как дышать и пердеть.
>>1654123Бля, не хочу ставить эти уебанские сервера, они неудобные пиздец.Пытался гуглить, не нашел ответ, который бы мне помог.Зато нашел варнинг "Unable to load php_mysqli.dll", хз, как фиксить.В php.ini есть extension=php_mysqli.dll.
>>1654129Ну да. Поднимать все нужные сервисы и выключать одной кнопкой неудобная хуйня. Ебаться с конфигами самому тоже всяко удобней, заодно учишься сам разбираться хули dll не работает, разбираешься где их качать, pear хуйню там всякую. Интерфейс для настроек тоже неудобно нихуя, через консоль вернее получается. В общем сыглы, готовые сервера для не шарящих в админстве сплошная обуза.
>>1654129>Unable to load php_mysqli.dllПотому что у тебя его просто нет. Гугли как на винду на мыху установить mysqli. А вообще используй пдо, он просто лучше
Вот вам подгон: новая книга по Symfony 5 от создателя фреймворка на русском языке.ссылка на гугл диск — shorturl.at/cmuB1
На 7 винде ставил Докер легко, а теперь на 10-ке (правда пиратской) какая-то жопа, то со сборкой Винды колдовал для установки, то Hyper-V ошибку дает при старте Докера. Пиздец. Как я заебался. Когда-то давно на 7-ке поставил за несколько минут, сейчас же часа 3 сидел и ноль эффекта. Надо, наверное, Линукс накатить, но для этого лучше отдельный SSD брать, на этом и так места мало.
>>1654155Если совсем просто, то это софт для создания и запуска виртуальных машин. В реальности конечно не для создания, а для упаковки, и не для запуска, а для управления, и не виртуальных машин, а контейнеров. Но аналогия более-менее точная.
>>1654170Сам просил просто, а теперь в залупу лезешь. Контейнер это по сути и есть линукс система, но не совсем виртуальная. И нужна она именно для запуска "проги", но по определенным правилам.
>>1654181Допустим ты накалякал три контейнера на базе убунты: nginx, php-fpm и postgres. Еще ты накалякал между ними сеть. Потом ты накалякал что Nginx контейнер слушает 80 порт твоей машины и стучится в php-fpm контейнер. Потом накалякал что папка с твоим проектом монтируется в php-fpm контейнер.Тогда если перейти в браузере по адресу из конфига nginx, то он постучится в php-fpm контейнер, а тот загрузит файлы проекта и ты увидишь результат в браузере.
>>1654193те я как бы из винды будут видеть этот файл,но он будут работать под линуксом и сторонними прогами,как браузер я могу оттуда вытащить результат?
>>1654195Винды в уравнении нет. Докер для винды это "настоящая" виртуальныая машина с линуксом, в которой запущен докер.
>>1654201Сначала ты монтируешь диск C к виртуальной машине, потом при запуске контейнера ты монтируешь часть уже виртуального диска к контейнеру. Если у тебя прокачанная удача, то все заработает нормально и все всё увидят.
Вопрос к знающим, как себя приучить к пыхе, как не берусь делать какой-нибудь лендос, у меня возникает стойкое отвращение к этому языку. Может кто подсказать нормальный комплекс для освоения этого языка, а то схожее я видел только с питоном
>>1654406Просто у меня знакомство с пыхой было не самым лучшим, посредством моего опрокидывания, конечно же. Поэтому я бы хотел нормально ему выучиться, чтобы не выглядеть посмешищем, я же не прошу чего-то большегоДа не пишу я дважды код для лендоса, откуда ты это взял?
>>1654408Определил что у тебя в очке бутылка по кодовой фразе "отвращение к языку". Добро пожаловать в клуб.
>>1654413Ничего не знаю, клиенты не жалуются, а как я делал, это их не должно интересовать. Но мне от этого совестно, поэтому хочу заниматься делом, которое меня увлекает честно, но из-за собственной лени и возможного страха я так и не решился пылесосить документацию пыхи. Поэтому я и спросил, есть ли какие-то в тырнете комплексы для таких ленивых и красивых как я ?
>>1654415Стандартный комплекс. Принимать ректально, за пол часа до еды. Пылесосишь документацию - мое почтение.
>>1654417что ж ты такой неприветливый, сказал бы сразу - я не помощник, а агрессор. Я всего лишь хочу делать свою работу качественно, что же в этом плохого?
>>1654419Бля, так бы сразу и сказал. Тогда нужен качественно другой уровень. Тут уже нужно применять комплекс только с утра, а то джавистом станешь.
>>1654423что, нужно в рука держать такой огромный дилдо? Это и есть комплексы по изучению пыхи? Ну тогда я не так уж и далеко ушёл, пойду навёрстывать упущенное!
>>1654155Докер упаковывает программу и нужные ей файлы в "контейнер". В "контейнере" своя файловая система, изолированная от хоста. Также, в "контейнер" можно пробрасывать папки с хоста, чтобы они были в нем видны в определенном месте файловой системы. В линуксе это работает нативно, в Windows запускается виртуальная машина с линуксом, а в ней уже контейнер.>>1654129Видимо надо с сайта PHP скачать расширение и положить в нужную папку (папка ext внутри папки PHP, я думаю).>>1653917> Каждый раз когда в ПХП выполняется мой запрос - создается новое подключение? И когда скрипт выполняется полностью - подключение к базе данных умирает? Да. Да.> А в системах которые не "умирают" после выполнения скрипта - допустим в node я создаю подключение к базе, выполняется скрипт - а после него остается открытое подключение к базе?Там используется пул. Пул нужен, чтобы не создавать/убивать соединения, а "брать" их из пула на время выполнения скрипта, и после использования возвращать в пул.Пул дает выигрыш, если установка соединения медленная. В базах вроде MySQL, вроде бы такой проблемы нет. У пула есть и недостаток - возможна ситуация, когда скрипт начнет транзакцию, но не закоммитит ее, и вернет в пул такое соединение, а потом оно достанется другому скрипту и он продолжит эту транзакцию вместо того, чтобы начать с "чистого листа".
>>1653557Возможно, PDO выбрасывает исключение, а их показ на хостинге отключен. Тогда надо смотреть логи (журнал ошибок PHP), там будет причина ошибки. Как смотреть логи - зависит от хостера, у кого-то они в админке есть, у кого-то надо в консоли команды писать.>>1651299По моему, твой пример с итератором можно переписать без итератора, и код станет проще. Делаем функцию вроде getCatFacts($limit), в ней обычным циклом for() дергаем API нужное число раз. Получаем тот же результат, только без сложного класса-итератора. Еще есть вариант с использованием функции-генератора, он тоже проще, чем итератор. Но в плане читабельности, на мой взгляд, проще всего будет именно обычный цикл for(), обычный императивный код.Возможно, ты имел в виду ситуацию, где нужно выдавать данные неограниченным потоком. Тогда стоит использовать функцию-генератор. Хотя я на практике с такими случаями не сталкивался, чтобы в ответ на вызов метода API шел длинный пото данных.> Я не зря спрашивал про твой опыт, любой кто работал с крупным проектом знает: есть вещи, которые поменять НЕВОЗМОЖНО. Еще пол года назад было возможно, а теперь нет. Я буквально сейчас чекаю самописную либу, объекты которой используются в сотнях мест, а места, в которых они используются в тысячах. Изменяя классы этой либы ты в принципе не можешь оценить последствия своих решений.Разве не то же самое с командами и обработчиками? При большом объеме кода там точно так же все будет зависеть от всего и ничего нельзя будет поменять. Чем обработчик событий на шине отличается от сервиса в монолитном коде? Он точно так же выполняет какую-то логику. > Ты создаешь свой интерфейс, который делает то что тебе нужно. И реализуешь его своим классом, который уже обращается к доктрине. Когда припрет, то ты через di просто подменишь реализацию где хочешь и на что хочешь, при этом не сломав нихуя в другом месте.В реальном приложении могут быть тысячи обращений к Доктрине. И понадобятся сотни хорошо документированных интерфейсов (так как тайп-хинты в PHP ограничены в возможностях), сотни реализаций адаптеров, только ради возможности заменить Доктрину на что-то другое. Хотя это может и никогда не потребоваться.Я согласен, что твой подход действительно упростит переход на новую версию библиотеки. Но ценой больших трудозатрат.
>>1654439>Делаем функцию вроде getCatFacts($limit)А функция один хуй будет в объекте, и цикл будет в объекте, и императивный код будет в объекте. И этим объектом будет Альберт Эйнштейн контроллер.>Разве не то же самое с командами и обработчиками?Команда вещь абстрактная, там могут быть любые поля, любые данные. У метода есть сигнатура, ты ожидаешь конкретные параметры и конкретным образом их обрабатываешь. Чем больше методов, тем больше вариантов, и тем больше шансов обосраться при изменении сигнатуры.>Разве не то же самое с командами и обработчиками?Разумеется нет. Обработчики нихуя не знают друг о друге. Удалил старый, добавил новый и вообще похуй как там оно работало.>В реальном приложении могут быть тысячи обращений к Доктрине.Ты такие приложения вообще видел, кукаретик? Обращения у тебя к энтити менеджеру, хоть сто, хоть тысяча - интерфейс один.>Хотя это может и никогда не потребоваться.Всегда требуется. Кеширование, перенос сервиса в апи, nosql изъебы. >Но ценой больших трудозатрат.Заебал. Ну нахуй ты вступаешь в полемику если нихуя не понимаешь о чем говорищь? Любой крупный проект за шесть лет переписывается как минимум дважды. Я тебе дураку скинул видео где компетентный человек объясняет почему. В том числе и потому что некомпетентные дебилы плодят за месяц технический долг ТЫСЯЧЕЛЕТНИЙ. Пиздец вообще, ты рассуждаешь типа: ну сяду ебать, перепишу там хули. В крупном проекте с хотя бы пятью активными программерами в неделю прирост кодовой базы ~2К сток. Ты блядь столько не прочитаешь даже, куда там нахуй понять или переписать. Хватит хуйню нести.
>>1654451>неделю прирост кодовой базы ~2К стокБольше.В зависимости от задач каждый из этих 5 хоть каждый день по 2к+ может выдавать. Но в целом за неделю активного пердолинга в 5 лиц думаю гораздо больше 2к будет все равно.
>>1654725>каждый из этих 5 хоть каждый день по 2к+ может выдаватьАга - 4 строки в минуту. Все 8 рабочих часов.А через неделю этих уже поехавших увезут в дурку и наймут других - выжимать.
>>1654817Ты понял мою мысль.Алсо, в дурку больше шансов уехать при дебаге 5 дней в неделю, за который может и 10 строк в итоге не запушишь, зато забудешь как тебя нахуй зовут. От обычного кода настолько не заебываешься.
>>1630065 (OP)Сап, программач.Нужна небольшая консультация.Написал скрипт. Скрипт делает запрос, принимает в ответ JSON, декодирует(получается нихуевый такой ассоциативный массив с кучей вложений) Далее, он берет из него нужные мне строки и заносит в базу данных. Хочу немного ускорить скрипт(снизу прилагаю кусок кода). Нужно ли создавать переменные типо, $url, $id, $sql. Если мне нужно обработать тысяч 500 строк то я полагаю это должно сильно замедлять выполнение скрипта, правильно? Может подставлять все сразу напрямую в mysqli_query?foreach($items as $value){ $url=end($value["sizes"])["url"]; $id=$value["user_id"]; $sql="INSERT INTO users (ID, photoURL) VALUES ('$id', '$url')"; $result=mysqli_query($link, $sql);Я только учусь, поэтому сильно не ругайте)
Ентот анон >>1653557 отписывается.Разобрался, в чем прикол был. У меня в талице 4 столбца (ид, логин, пароль, число постов), а я указывал всего два параметра (логин и пароль), а поскольку столец с количеством постов не заполнялся автоматически, требовал вписчываться вручную, запрос и не уходил.Теперь другая беда - запис дублируется, блять. Как фиксить? У меня всего один раз ексекут делается, страница не перезагружается. В чем дело?
>>1655757Во первых большие JSON файлы парсятся не целиком, а постепенно. Чем нибудь вроде этого https://github.com/salsify/jsonstreamingparser . С памятью будет охуенчик, скорость соответственно тоже прибавится.Во вторых вставку в базу делай пакетно. Примерно по 2К записей за раз. В идеале использовать UPSERT или скипать уже вставленные записи. Чтобы продолжать сразу с проблемного места, если все пойдет по пизде посреди процесса.
>>1655823>Примерно по 2К записей за разЯ делаю запросы к vkapi, там ограничение на 1000 записей, соответсвенно так и получается что я делаю по 1000 записей за раз.Там не один огромный файл на 500 тыс, просто нужно прогнать много данных через скрипт. В принципе у меня все работало, просто снес базу, решил заново спарсить, да и немного доработать скрипт.
>>1653478>Этим и занимается доктрина, весь её сложный механизм нужен не просто для того чтобы данные в таблицы сохранять, для этого и актив рекорд подойдет.Можешь пояснить за отличие актив рекорд от доктрины? Я периодически слышу, что доктрина "круче", типа серьезные проекты делаются на симфони на доктрине, а вот ActiveRecord в Yii2 - хуета. И почему тогда Laravel топчик, если там тот же Eloquent по сути та же AR, или я путаю?
>>1656255Мимо проходящий анон.На просторах стак овер флоу был такой ответ:ORM - Active Record и Data Mapper. Отличаются они только тем, что в AR методы работы с БД хранятся в самом объекте, а в DM - отдельно. Вследствие чего последний считается более академически правильным (разделение ответственности) и дает больше преимуществ в сложных проектах. Примерами реализации AR являются Yii AR и Eloquent, DM - Doctrine и Atlas.Orm.
>>1649332>уходит, они должны быть лаконичными>хуета с первой ссылки гугла, подредакченная лаконичной хермакакой, в результате чего получается шизофазия, которой позавидуют любители SOLID>собеседуемый сидит с еблом Епифанцева, пытаясь проанализировать хватит ли его атлетического опыта, чтобы достигнуть двери раньше, чем буйный шиз напротив сможет что-нибудь сделатьКак оценивал "лаконичность"? Ты сеньор-помидор из гугла, чтобы знать прикладную область настолько, чтобы свободно оперировать терминами, не вкладывая в них свое "понимание"?
>>1652126Я думаю, тебе нужно сделать свой контроллер для этого, который проверит логин/пароль и выдаст нужный токен. Если ты используешь токены, то у тебя stateless аутентификация (без сессий и кук) и выдачу токенов ты организуешь сам. GuardAuthenticator лишь проверяет токены, он в такой ситуации не имеет дела с логинами/паролями.>>1651539 В функции printReport() стоило ставить перенос строки после точки, чтобы не было таких длинных строк. А так, код выглядит верно.Вместо констант вроде Employee::MANAGER можно было использовать Manager::class - это встроенная константа, которая возвращает имя класса.Для антикризисных мер стоит разобраться с клонированием объектов и магическим методом __clone(). Сделать несколько копий компании и дальше над ними проводить эксперименты. Придется также добавить методы для поиска работников по условиям, увольнения, изменения базовых ставок. Если запутаешься, то погугли в архивах тредов эту задачу и посмотри, как другие решали антикризисные меры.
>>1648171В генераторе ходов вместо констант ходов (вверх, вниз итд) можно было использовать координаты вроде [+1, 0] (смещение по X и Y). Тогда не пришлось бы копипастить кучу одинаковых блоков кода. Также, можно разделить выбор хода на этапы: - генерация возможных ходов- отсев невозможных ходов (на занятую клетку, за границы поля)- оценка оставшихся ходов - выбор лучшегоТакже, "вариант хода" можно сделать объектом с полями x, y. Поле можно реализовать еще так: просто хранить в нем массив животных и на каждом ходе генерировать текстовое представление, не сохраняя его в массив. Выгода в том, что нам не надо тогда из класса животных при ходе обновлять поле, достаточно просто поменять координаты животного. У поля были бы методы вроде displayField(), isOccupied($x, $y), occupy($x, $y) (занимает клетку, удаляя других животных с клетки).
А кто-нибудь может ответить на элементарный вопрос по рерайт-функциям в .htaccess? У меня есть сайт на вордпрессе, мне нужно, чтобы URL вида:site.com/123 (после слэша только цифры, любое количество)преобразовывались в:site.com/?p=123Нагуглил кучу гайдов по синтаксису htaccess и типичным заменам, но так и не смог написать работающее правило, сайт ложится с ошибкой 500 от моих попыток.С меня как всегда
Аноны, нужно вот этот код метрики<!-- Yandex.Metrika counter --><script type="text/javascript" > (function(m,e,t,r,i,k,a){m=m||function(){(m.a=m.a||[]).push(arguments)}; m.l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(61898841, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true });</script><noscript><div><img src="https://mc.yandex.ru/watch/61898841" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter -->Вставить вот сюда# Добавление Счётчиков посещений$wgHooks['BeforePageDisplay'][] = 'addscripts'; function addscripts( $out, $sk) { $out->addScript("<!-- Yandex.Metrika counter --> [содержимое скрипта со всеми тегами и ОБЯЗАТЕЛЬНОЙ ЗАМЕНОЙ ВСЕХ КАВЫЧЕК " на СЛЭШ С КАВЫЧКАМИ \" ] <!-- /Yandex.Metrika counter -->"); };Но где там что менять я не понимаю, в синтаксисе ноль. С меня тонна нефти
>>1653108Кодстайл просто пиздец, вырвиглаз лютый. Почитай PSR или что-нибудь. Поставь PHPSTORM и нажми там "переформатировать исходный текст" что ли, не знаю.
Хотелось бы поговорить с PHP джунами(желательно Laravel) из Беларуси. Как учились? Где сейчас работаете, что спрашивали на собеседованиях, было ли у вас кое либо портфолио для собеседований. Идеально было бы в телеге поговорить.tg: @sandfer