• В чем ошибка headers already sent?

    Adamos
    @Adamos
    До вызова session_start на страницу не должно выводиться ни одного символа, т.к. она устанавливает заголовки страницы - и не может их установить, если уже выдается тело страницы. Убирайте все эти комментарии до <?php

    А также убирайте разбивки
    ?>

    <?php
    и никогда больше так не делайте.
    Ответ написан
    Комментировать
  • Как выбрать из бд максимальное значение?

    usdglander
    @usdglander
    Yipee-ki-yay
    SELECT 
        `id`, 
        `viewed` 
    FROM `class_aqq` 
    WHERE `user_id` = 6310 
    ORDER BY `viewed` DESC 
    LIMIT 1
    Ответ написан
    3 комментария
  • Функция на php для обрезки теста?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сейчас я расскажу тебе про один секретный сайт.
    Лохи про него не знают, но по я тебе по секрету расскажу.
    Сайт называется google.com.

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

    Только, главное, никому больше про этот сайт не рассказывай.
    Если все будут про него знать, то роскомнадзор его точно закроет.
    Ответ написан
    7 комментариев
  • Где лучше пройти курсы Full-stack веб-разработчика?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    курсов фулл стак разработчика не существует.

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

    full stack это просто все вместе. Неплохие курсы на фронтенера могут занимать полгода.
    Как вы думаете сколько займут курсы по фуллстак и кому они нужны? Ни преподавателям ни студентам.
    Изучите для начала что-то одно, потом развивайтесь дальше.
    Ответ написан
    1 комментарий
  • PHP. ООП. Сухие примеры с книг, а применять на проектах не получается, как быть?

    @igorpopryduhin
    5c0640e53ed75188503117.jpeg

    Что касается ООП, как я обычно это делаю.

    Моделирую как конструктор.
    Например:

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

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

    Этаж 1 - наследует класс Дом на первом этаже уже есть вода (мы закладывали её в фундаменте).

    Этаж 2 - наследует класс Дом

    Этаж 3 - наследует класс Дом

    Комната 1 этаж 1 - наследует Этаж 1 у меня в комнате есть вода и канализации я же закладывал ее в фундаментальном классе.

    И всё в таком же духе!!!

    Не забываем про https://ru.wikipedia.org/wiki/Инкапсуляция_(програ...
    Ответ написан
    Комментировать
  • Существует ли какой-нибудь ресурс, ознакамливающий с понятиями и структурой cms?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Роутеры, шаблонизаторы и контроллеры относятся не к CMS, а в целом к проектированию ПО. Причём к более низкому уровню абстракции. Собственно разработка CMS принципиально не отличается от разработки чего-либо другого, какого-то особого сакрального знания именно для этой области просто нет. Ну, а умение проектировать приходит через чтение соответствующих книг и годы практики.
    Ответ написан
    2 комментария
  • Я правильно понимаю конструкцию php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    нет, все абсолютно не так. для начала надо выучить терминологию. никакие функции с ключевым словом нью не вызываются. конструктор - это совершенно отдельная часть класса, к слову нью отношения не имеет. от метода объект не создают
    Ответ написан
    Комментировать
  • Почему идет не полный вывод данных при SQL запросе?

    @supgordan
    Middle PHP Developer
    SELECT city.name as city, city.code_en, airport.name as airoport, airport.code_en, airport.city_code_en FROM airport INNER JOIN city ON
    city.code_en=airport.city_code_en
    Вот верный SQL запрос. У тебя перекрываются name
    Ответ написан
    3 комментария
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

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

    Можно ли себя называть миддлом, если твой код говно?

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

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев
  • Как не начать говн*кодить?

    banderos120
    @banderos120
    Играю на балалайке
    - Оу, смотрите, я сумел сделать форму и отправить ее POST запросом и вывести ответ и это все в одном файле !
    - Таак, шаблоны на Wordpress, отлично, только что за файл functions.php. О! Анонимные функции я видел такое в JQuery ! Оказывается все так просто.
    - Воот, раскидал функции (процедуры) по конкретным файлам. Думаю так будет удобнее и понятнее.
    - ООП, ооп. Везде требуют ООП. "Классы", "наследование", "инка..." чего ?! Понял ! Классы - это же такая неплохая обертка для моих любимых функций !
    - Ого ! Блин, опять приходится плодить одинаковый функционал. Наверное наследование поможет это исправить. СТАТИЧЕСКИЕ МЕТОДЫ !!!
    - Черт, везде необходимо знание фреймворка. Попробую-ка я Symfony. *!"#$^$&@мать !!! КТо придумал эту хрень ! Месяц прошел я так ничего и не запустил !!
    - Роутинг, хм, толково. Контроллеры. Сервисы. Ага, так вот что означает single responsibility.
    - Ребята ! Я предлагаю не пихать всё в один бандл, а разделить.
    - ORM, репозитории, сервисы, сущности ...
    - ТАК ВОТ ЗАЧЕМ НУЖНЫ ИНТЕРФЕЙСЫ !
    - Чё за "бизнес логика" такая ? DDD ? Чта, простите ?
    - Б*я, б*я, б*я... Так, если эту сущность вынести в этот модуль, то тогда у нас появляется зависимость в вот этом модуле, а это не хорошо. Блин, этот метод вообще не несет смысла. Тааак, а тут стандартный Chain Responsibility . Отлично, напишу-ка тест под это дело.
    - Да пофиг, что по CQRS команда не должна возвращать результат, мне так удобно.
    ...
    - Да Сережа, делать вот как ты делаешь - это и есть говнокод.
    Ответ написан
    Комментировать
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    Можно ли себя называть миддлом, если твой код говно?

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

    как писать поддерживаемый код?

    Практика. Я всегда очень гордился решениями, которые говнокодил, однако в процессе разработки выяснялось, что они не ахти (просто с кодом становилось очень неудобно работать, особенно когда проект твой собственный и ты к нему возвращался через полгода), и приходило понимание, почему. В следующем проекте я старался избегать предыдущих граблей и наступал на новые. В итоге сейчас если я и говнокодю, то уже осознанно, а это, как вы понимаете, уже совершенно иная ступень мастерства)
    Ответ написан
    1 комментарий
  • Стоит ли новичку в Python использовать сразу PyCharm?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Я уже много раз писал об этом, но повторю: Не нужно использовать IDE на этапе обучения. Во-первых, IDE избавляет вас от рутинных операций, но именно рутинные операции позволяют набить руку . Во-вторых, IDE скрывает многие процессы, выполняя их за программиста, но именно они позволяют понять базовые принципы. Так что IDE надо начинать использовать только тогда, когда ты уже профи, всё знаешь и тебе надо увеличить производительность труда.
    Ответ написан
    14 комментариев
  • Почему сигнатуру конструктора можно переопределять? Для чего эта условность?

    @green_goo
    Родитель не может знать что может понадобится для создания экземпляра наследника.
    damn, its OK !

    Не ok. В конструкторе наследника нет вызова конструктора родителя
    Ответ написан
    9 комментариев
  • Как сделать кнопку Load More с помощью PDO?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ох уж эти малленниалы. Нет видео на ютубе - и все, работа встала.
    Показываю, как сделать кнопку Load More с помощью PDO:
    function get_portfolio_all($offset = 0, $limit = 4) {
      global $connection;
      $portfolio = $connection->prepare("SELECT * FROM portfolio ORDER BY id DESC LIMIT ?,?");
      $portfolio->execute([$offset, $limit]);
      return $portfolio->fetchAll(PDO::FETCH_ASSOC);
    }

    Всё. PDO часть на этом закончена. Передавать $offset надо в пэхапе аякс запросом, пдо этом не занимается.
    Ответ написан
  • Книги, советы, курсы по архитектуре приложений?

    @red-barbarian
    Открою секрет )
    Пишите тесты. Тесты невозможно написать на плохую архитектуру. Делая новый класс, думайте как будете его тестировать. У вас сразу появится стремление выполнять половину принципов SOLID. (даже если вы их не знаете). Стремление сделать классы лаконичными. С хорошим интерфейсом. Стремление разбивать приложение на компоненты.
    Про это много есть статей. тестируемость и архитектура.
    Затем можно почитать какие-нибудь книжки. Для начала Роберта Мартина PPP - дословно не помню) но три пи легко можно найти и перевод. (он для C# вроде, но книга классная)
    Попробуйте TDD. В работе возможно она не будет нужна, но ухватить идею как создается хороший интерфейс можно.
    Затем постоянно себе напоминать, что код пишется для программиста (не для компилятора). Т.е. код это объяснение другому (более тупому))) программисту как это работает. Из этого: хорошие названия - 80% успеха. Остальное архитектура и проч.
    Читать код. Свой, чужой, бест практики.
    То что свой код бесит - это нормально. Плохо если старый код нравится - значит рост прекратился. Это тревожный звоночек.
    Итого.
    1)Начинайте свой рост с умения писать тестируемый код.
    2) когда почувствуете жжение нехватки опыта в конкретных механизмах (паттернах, принципах) начинайте читать книги.
    3) пишите код для тупых программистов (это скромность)
    4) быть вне зоны комфорта это нормально.
    5+) Почитывайте книги Чистый код Мартина и Совершенный Код Макконнелла (те главы которые вам "заходят")
    Удачи в умении сделать сложное простым.)
    Ответ написан
    1 комментарий
  • Как учиться быстрее и не тратить время зря?

    Griboks
    @Griboks
    Самое быстрое обучение - это обучение без обучения (тратиться 0 времени, меньше не бывает).

    Суть этой методики заключается в исключительной практики на реальных задачах. Чтобы в ходе работы вы могли эффективно обучаться, не тратя на обучение ни секунды, рабочая деятельность должна быть развивающей, т.е. обладать следующими этапами (вашего) развития:
    1. фрустрация
    2. позиционирование
    3. целеполагание
    4. планирование
    5. социальный контракт
    6. работа в команде
    7. моментальная обратная связь
    8. неденежное вознаграждение
    9. рефлексия
    Ответ написан
    Комментировать
  • Кодить на iPad это извращение?

    @iMaximus
    Да, это именно извращение. Вам нужен ноут, который удобно таскать с собой.
    Ответ написан
    Комментировать
  • Как удалить куки?

    @Barmunk
    Прежде чем решать Cannot modify header information обратите внимание на sql-инъекции. $_COOKIE['user_hash'] любой человек может открыть дебаг браузера и изменить ваш хэш на что-то похуже. Прочтите к чему может привести данный подход: https://habr.com/ru/post/148151/
    Ответ написан
    2 комментария
  • Как удалить куки?

    flapflapjack
    @flapflapjack
    на треть я прав
    куки, сессии - всё это нужно делать до первого появления символа на странице. У вас уже HTML код вон появился, а вы только потом с куками манипулируете. Так не будет работать. Сначала - куки и сессии, а только потом - вывод HTML/

    Если у вас был бы включен вывод ошибок PHP, то вы бы увидели "Header already send"
    Ответ написан
    Комментировать
  • Как отслеживать нажатий элемент выпадающего списка в PHP?

    @ar2rsoft
    PHP-developer
    Задать селекту аттрибут name и точно так же в $_POST ловить значение
    Ответ написан